Builder Guide · Protocol v1.0
Publish your artifact to Unfragile
The Capability Protocol is open. Drop an unfragile.ymlin your repo, submit your URL, claim your trust passport — and you're live in the match graph. The schema is yours; the intelligence is what we add on top.
Write unfragile.yml
Place a file named unfragile.yml at the root of your repository (or alongside your service). The minimal valid manifest has an artifact block and at least one capability. Five complete examples ship in the repo at app/src/lib/protocol/examples/; pick the one that most resembles your artifact type and adapt it.
unfragile_version: "1.0"
artifact:
name: "My AI Tool"
slug: "my-ai-tool"
type: "mcp" # one of 19 artifact types — see /schema
maintainer: "Your Name or Org"
repository: "https://github.com/you/my-ai-tool"
homepage: "https://your-site.com"
license: "MIT"
capabilities:
- id: "my_tool.primary"
name: "Primary capability in one phrase"
description: >
At least 100 characters of architecturally deep description.
Describe HOW it works — transport, data model, scope, side effects —
not just what it claims. This is what agents read to decide.
intents_served:
- "the natural-language user need this satisfies"
conditions:
bestFor: ["who gets the most value"]
limitations: ["honest failure modes"]
requires: ["prerequisites"]
unique_aspect: >
What makes this stand out vs alternatives.
pricing:
model: "open-source"
failure_modes:
- mode: "Common failure surface"
frequency: "occasional"
mitigation: "How to avoid or recover from it"
execution:
protocol: "mcp" # or http, https, stdio, websocket, grpc
auth_method: "none"Validate locally or in CI
Before submission, run the manifest through the validator. The endpoint returns structured errors (missing fields, too-short descriptions, invalid enum values) and warnings (no failure modes declared, fewer than 3 capabilities, no execution block).
# From a shell
curl -s -X POST https://unfragile.ai/api/v1/validate \
-H "Content-Type: application/json" \
--data "$(jq -n --arg y "$(cat unfragile.yml)" '{yaml: $y}')"{
"valid": true,
"schema_version": "1.0",
"errors": [],
"warnings": [
{ "path": "capabilities[0]", "message": "capability \"...\": add unique_aspect ..." }
],
"parsed_manifest": { ... },
"_links": { "schema": "https://unfragile.ai/schema.json", "...": "..." }
}Returns HTTP 200 when valid, 422 when invalid. Rate-limited 10/min unauthenticated, 100/min with an API key.
Submit your URL
Open /submit and paste your repository or homepage URL. The orchestrator scrapes the page, finds the unfragile.yml if present, decomposes capabilities, and creates an artifact record. You can also submit programmatically:
curl -X POST https://unfragile.ai/api/submit \
-H "Content-Type: application/json" \
-d '{"url": "https://github.com/you/my-ai-tool", "type": "mcp"}'Claim your trust passport
Claim activates verification and gives you Studio analytics. The flow is six-digit email verification — no payment, no contracts.
- Visit /submit?claim=YOUR-SLUG (replace YOUR-SLUG).
- Enter your email at the maintainer domain (or any contact we found in the README).
- Paste the 6-digit code we send.
- You're verified — verified badge live, UnfragileRank boost applied.
Once verified, your trust passport is available at https://unfragile.ai/api/v1/passport/YOUR-SLUG with verified=true and live observed outcomes.
Receive match data
From Studio, you can see every search where your artifact appeared, the intents it matched, the success rate, and the categories where you have presence — or gaps where you don't. Match data updates daily; consolidation runs Friday and refreshes capability confidence scores.
- Per-artifact intent breakdown
- Click-through and dwell signals
- Side-by-side with alternatives
- Demand-gap alerts in your categories
Visit /studio after verifying to access your dashboard.
The schema is open
Both unfragile_manifest_v1 (what you publish) and trust_passport_v1 (what we return) are open and permissively licensed. Fetch them at /schema.json and integrate them into CI, IDE linters, registries, or competing platforms. Unfragile is one implementation — the intelligence layer we add (the match graph) is what compounds.
Neutrality is the moat. Unfragile distributes; it never competes with the artifacts in the graph.
Quick reference
- Manifest spec: /protocol
- Validate:
POST /api/v1/validate - Schemas: /schema.json
- Examples:
app/src/lib/protocol/examples/ - Submit: /submit
- Studio: /studio
- Agent surface:
claude mcp add unfragile -- npx -y @unfragile/mcp-server
FAQ
Is the schema open?+
Yes. unfragile_manifest_v1 and trust_passport_v1 are published at /schema.json and are permissively licensed. The intelligence layer — ranking, matching, observed outcomes — is what Unfragile adds on top. Any platform may read or extend the schemas.
Do I need to write all 50 capabilities up front?+
No. Start with 3–8 high-signal capabilities that differentiate your artifact. The decomposer also runs against your README/docs/repo and proposes additional capabilities you can approve.
What if I don't have unfragile.yml yet?+
You can still submit a URL. We index from your repo, README, and homepage and decompose with the Haiku model. unfragile.yml just gives you authoritative control over the data — you say it, we trust it.
How long until matches start flowing?+
Within minutes of submission for first-time appearance in search results, faster for verified builders. Match volume scales with category demand; check /studio for daily updates on your artifacts.
What does claiming get me?+
Verified status (15-point UnfragileRank boost), Studio analytics on every match, per-artifact intent breakdown, and the ability to push updates to your manifest directly. Email-based verification — no payment, no contracts.
Ready to publish?