ard-registry-builder
Build, validate, test, and update registries and catalogs that follow the Agentic Resource Discovery (ARD) specification. Use this whenever the user works with an ai-catalog.json, a capability manifest, an ARD/AIR catalog or Agent Registry, urn:air: identifiers, trustManifest/attestations, representativeQueries, or an Agent Finder / discovery service — including authoring a new manifest, scaffolding one, fixing schema or URN errors, running conformance/validation, probing a registry's /search, /explore, or /agents REST endpoints, reviewing trust and federation metadata, or preparing to publish at /.well-known/ai-catalog.json. Trigger it even when the user only says "ARD", "agentic resource discovery", "AI catalog manifest", "agent registry", or "make agents discoverable" without naming the file.
How do I install this agent skill?
npx skills add https://github.com/webmaxru/ai-native-dev --skill ard-registry-builderIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill provides a suite of tools for authoring and validating Agentic Resource Discovery (ARD) capability manifests and registry APIs. It follows industry standards for manifest validation and testing.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
ARD Registry Builder
Agentic Resource Discovery (ARD) lets AI clients discover agents, MCP servers, skills, and
APIs at runtime by search instead of hardcoding them. Publishers describe their resources in a
static ai-catalog.json capability manifest; dynamic Agent Registries index those
manifests and answer POST /search. This skill helps you engineer both — author, validate,
test, and maintain them so they actually pass conformance and get discovered.
Two artifacts, one mental model — identity vs location:
- The manifest (
ai-catalog.json, static) lists entries. Each entry'sidentifieris a permanenturn:air:URN (identity); itsurl/datais the movable endpoint (location). - The registry (REST API, dynamic) is a service that searches indexed entries.
Never bake a hostname into a URN; never treat a URL as an identity. Almost every ARD mistake traces back to confusing these two.
Bundled tools (use these — don't reinvent them)
All scripts are stdlib-only Python 3.8+; validate_catalog.py uses the jsonschema library
when present (recommended: pip install jsonschema) and falls back to a built-in checker.
| Tool | Purpose |
|---|---|
scripts/validate_catalog.py <path-or-url> [--json] [--strict] | Validate a manifest: JSON Schema plus ARD semantic rules. Exit 1 on errors. |
scripts/test_registry.py <base-url> [--query T] [--json] | Probe a live registry's /search (required), /agents, /explore for conformance. |
scripts/new_catalog.py --template minimal|enterprise|local-dev [--publisher D] [--host N] --out F | Scaffold a starter manifest. |
assets/ai-catalog.schema.json | JSON Schema for the ai-catalog.json manifest format (Draft 2020-12), bundled for offline validation. |
assets/ard-entry.schema.json | JSON Schema for a standalone ARD entry and ArdManifest (the v0.91 ard.json format). Use this to validate entries individually or a bare-entries manifest. |
assets/templates/*.json | Valid starting points: minimal, enterprise (trust + registry entry), local-dev. |
Always validate after every edit, and validate the live URL after publishing — not just the local file.
Decide what the user needs
- "Create / scaffold / start a catalog" → Workflow 1.
- "Validate / check / is this valid / why won't it pass conformance / fix this manifest" →
Workflow 2 (run
validate_catalog.pyfirst, before reading anything). - "Test / probe my registry / does my /search work / is my API ARD-compliant" → Workflow 3.
- "Add an agent / bump a version / change an endpoint / maintain" → Workflow 4.
- "How does X work" (data model, API, trust, publishing) → read the matching reference below.
Workflow 1 — Build a manifest
- Pick the closest template and scaffold it:
python scripts/new_catalog.py --template enterprise --publisher mycorp.com --host "MyCorp AI" --out ./ard.json. (Without scaffolding, copy a file fromassets/templates/.) - For each resource, set
identifier(urn:air:<publisher>:<namespace?>:<name>),displayName,type(the artifact's media type), and exactly one ofurlordata. - Add
description,tags,capabilities, and especiallyrepresentativeQueries(2–5 natural-language queries) — the single biggest lever for being found by semantic search. Absence is a conformance warning in v0.91; presence is still strongly recommended. - Add
trustManifestonly when you have real identity/attestations; keep simple entries lean. - Choose the publisher domain to match the deployment context (enterprise FQDN, public
namespace like
github.com:you, oragent.localhost/example.comfor local-only). Seereferences/data-model.md. - Validate:
python scripts/validate_catalog.py ./ard.json. Fix until it passes.
Workflow 2 — Validate / debug a manifest
- Run the validator first, before reading the file by hand — it pinpoints issues fast:
python scripts/validate_catalog.py <path-or-url>. - Read findings by severity. ERROR must be fixed; WARN should be (use
--strictin CI to enforce); INFO is advice. Every finding names a JSON path and a stablecode. - Map the
codeto a fix usingreferences/validation-rules.md. The high-frequency ones:urn-wrong-nid→ changeurn:ai:tourn:air:.value-or-reference→ keep exactly one ofurl/data.schema(oneOf/required/pattern/minItems) → fix the structure the message names.urn-localhost/urn-publisher-fqdn→ use a verifiable or reserved-placeholder domain.trust-domain-mismatch→ make thetrustManifest.identitydomain match the URN publisher.
- Re-run until clean. For CI, use
--json(machine output) and/or--strict(fail on warnings).
Workflow 3 — Test a live registry API
- Probe it:
python scripts/test_registry.py https://registry.example.com/api/v1. The tester sends a realPOST /search, validates theresultsenvelope (each item is a catalog entry carrying ascore0–100 and asource), confirms a malformed request is rejected with400 + errorCode + message, and checks optional/agentsand/explore(skipped, not failed, when a server returns404/501). - Required checks failing → the server is not ARD-conformant on the mandated floor (
/search). Fix the envelope/status againstreferences/registry-api.md. - For exploratory calls, hit endpoints directly with
curl(seereferences/registry-api.md).
Workflow 4 — Update / maintain
- Edit the entry. Keep the
identifierURN stable — it is a permanent contract. To move an endpoint, changeurl(ordata), never the URN. - Bump the entry's
versionand refreshupdatedAt(ISO 8601) when the artifact changes. - Adding a resource → append an entry; ensure its
identifieris unique (the validator flags duplicates). - Re-validate the file; if it is already published, also validate the live URL and re-probe any registry. Treat "passes validation" as the definition of done.
Golden rules (the why behind the checks)
- URN = identity, url/data = location. Stable URNs keep search indexes, client references, and orchestration working while infrastructure moves underneath them.
- The publisher segment must be a verifiable FQDN. Registries extract it and bind it to
trustManifest.identityto stop namespace squatting.localhostand bare words break this. - Exactly one of
urlordata. Predictable parsing in enterprise pipelines depends on it. scoreis relevance, not trust. Never gate safety on a search score; verifytrustManifestindependently.- Validate early, validate often, validate the live URL. Most "it won't index" problems are schema or hosting issues a 1-second validator run would have caught.
Reference files
Read the one matching the task; each has a table of contents.
references/data-model.md— manifest/entry fields, URN format, media types, value-or-reference, trust manifest, JSON-LD context extension, and the knownurn:air:vsurn:ai:doc inconsistencies.references/registry-api.md—/search,/explore,/agents, the query/filter model, federation modes, and error codes.references/validation-rules.md— every check the validator runs, with itscodeand severity.references/publishing.md— well-known URI (ard.json), CORS, DNS discovery, and public reference registries to test against.
Evals
evals/evals.json holds realistic task prompts for the skill-creator evaluation loop. Use it to
benchmark or regression-test changes to this skill.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/webmaxru/ai-native-dev/ard-registry-builder">View ard-registry-builder on skillZs</a>