ard-registry-builder について
ARD Registry Builderは、Agentic Resource Discoveryのマニフェストとレジストリを作成・保守するスキルです。開発者がカタログを作成し、ARDルールに照らして検証し、レジストリAPIの適合性をテストできます。
主な機能
- 01テンプレートからマニフェストを生成
- 02スキーマとARDルールを検証
- 03稼働中のレジストリエンドポイントを調査
- 04安定したリソース識別子を維持
- 05検索レスポンスの適合性をテスト
活用シーン
- 01テンプレートからリソースカタログを作成
- 02マニフェストの検証問題を特定・修正
- 03レジストリの/search APIを確認
- 04識別子を変えずにリソースのエンドポイントを更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ webmaxru/ ai-native-dev --skill ard-registry-builderインストール後、Claude Code で/ard-registry-builderを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/ai-catalog.schema.jsonard-entry.schema.jsonassets/templates/enterprise.jsonlocal-dev.jsonminimal.jsonevals/evals.jsonevals/files/broken-catalog.jsonreferences/data-model.mdpublishing.mdregistry-api.mdvalidation-rules.mdscripts/new_catalog.pytest_registry.pyvalidate_catalog.py詳細
ARD Registry Builder
Agentic Resource Discovery(ARD)を使うと、AI クライアントはエージェント、MCP サーバー、スキル、API をハードコードする代わりに、検索によって実行時に発見できます。公開者は静的な ai-catalog.json ケイパビリティマニフェストでリソースを記述し、動的なエージェントレジストリがそれらのマニフェストをインデックス化して POST /search に応答します。このスキルは、両方を設計するのに役立ちます。作成、検証、テスト、保守を行い、適合性を満たして実際に発見されるようにします。
2 つのアーティファクトを 1 つの考え方で捉えます — 識別情報と場所:
- マニフェスト(
ai-catalog.json、静的)はエントリーを列挙します。各エントリーのidentifierは永続的なurn:air:URN(識別情報)であり、url/dataは移動可能なエンドポイント(場所)です。 - レジストリ(REST API、動的)は、インデックス化されたエントリーを検索するサービスです。
ホスト名を URN に埋め込んではいけません。URL を識別情報として扱ってはいけません。ARD で起こる誤りのほとんどは、この 2 つを混同することに起因します。
同梱ツール(これらを使い、独自に作り直さないでください)
すべてのスクリプトは標準ライブラリのみを使用する Python 3.8 以降対応です。validate_catalog.py は jsonschema ライブラリがある場合に使用し(推奨:pip install jsonschema)、ない場合は組み込みのチェッカーにフォールバックします。
| ツール | 目的 |
|---|---|
scripts/validate_catalog.py <path-or-url> [--json] [--strict] | マニフェストを検証します。JSON Schema および ARD の意味規則を検査します。エラーがある場合は終了コード 1 を返します。 |
scripts/test_registry.py <base-url> [--query T] [--json] | 稼働中のレジストリの /search(必須)、/agents、/explore を調査し、適合性を確認します。 |
scripts/new_catalog.py --template minimal|enterprise|local-dev [--publisher D] [--host N] --out F | 初期マニフェストのひな形を作成します。 |
assets/ai-catalog.schema.json | ai-catalog.json マニフェスト形式の JSON Schema(Draft 2020-12)。オフライン検証用に同梱されています。 |
assets/ard-entry.schema.json | 単独の ARD エントリーと ArdManifest(v0.91 の ard.json 形式)用の JSON Schema。エントリー単体、または entries のみのマニフェストを検証する際に使用します。 |
assets/templates/*.json | 有効な開始用テンプレート:minimal、enterprise(信頼情報とレジストリーエントリーを含む)、local-dev。 |
編集のたびに必ず検証し、公開後はローカルファイルだけでなく、公開中の URL も検証してください。
ユーザーのニーズを見極める
- 「カタログを作成/ひな形を作成/始めたい」 → ワークフロー 1。
- 「検証/チェック/これは有効か/適合性を満たせないのはなぜか/このマニフェストを修正したい」 →
ワークフロー 2(何かを読む前に、まず
validate_catalog.pyを実行します)。 - 「レジストリをテスト/調査したい/
/searchは動作するか/API は ARD に準拠しているか」 → ワークフロー 3。 - 「エージェントを追加/バージョンを上げる/エンドポイントを変更/保守したい」 → ワークフロー 4。
- 「X の仕組みを知りたい」(データモデル、API、信頼、公開) → 以下の該当するリファレンスを読みます。
ワークフロー 1 — マニフェストを作成する
- 最も近いテンプレートを選び、ひな形を作成します:
python scripts/new_catalog.py --template enterprise --publisher mycorp.com --host "MyCorp AI" --out ./ard.json。 (ひな形を作成しない場合は、assets/templates/のファイルをコピーします。) - 各リソースについて、
identifier(urn:air:<publisher>:<namespace?>:<name>)、displayName、type(アーティファクトのメディアタイプ)、およびurlかdataのどちらか一方のみを設定します。 description、tags、capabilities、特にrepresentativeQueries(自然言語のクエリを 2~5 件)を追加します。これはセマンティック検索で発見される可能性を高める、最も効果の大きい要素です。 これがない場合、v0.91 では適合性に関する警告が出ます。存在していても、引き続き強く推奨されます。- 実際の本人確認情報や証明がある場合に限り
trustManifestを追加します。シンプルなエントリーは簡潔に保ちます。 - デプロイ環境に合った公開者ドメインを選びます(エンタープライズ FQDN、
github.com:youのようなパブリック名前空間、またはローカル専用のagent.localhost/example.com)。references/data-model.mdを参照してください。 - 検証します:
python scripts/validate_catalog.py ./ard.json。合格するまで修正します。
ワークフロー 2 — マニフェストを検証/デバッグする
- ファイルを手作業で読む前に、まずバリデーターを実行します。問題をすばやく特定できます:
python scripts/validate_catalog.py <path-or-url>. - 指摘事項を重大度ごとに確認します。ERROR は必ず修正し、WARN も修正するのが望ましいです(CI で強制するには
--strictを使用します)。 INFO は参考情報です。各指摘事項には JSON パスと安定したcodeが記載されています。 codeをreferences/validation-rules.mdで確認し、修正方法を特定します。特に頻度の高いもの:urn-wrong-nid→urn:ai:をurn:air:に変更します。value-or-reference→urlとdataのどちらか一方だけを指定します。schema(oneOf/required/pattern/minItems)→ メッセージで示された構造を修正します。urn-localhost/urn-publisher-fqdn→ 検証可能なドメイン、または予約済みのプレースホルダードメインを使用します。trust-domain-mismatch→trustManifest.identityのドメインを URN の発行者と一致させます。
- 問題がなくなるまで再実行します。CI では
--json(機械可読な出力)および/または--strict(警告がある場合に失敗)を使用します。
ワークフロー 3 — 稼働中のレジストリ API をテストする
- 接続を確認します:
python scripts/test_registry.py https://registry.example.com/api/v1。 テスターは実際のPOST /searchを送信し、resultsエンベロープ(各項目はscoreが 0~100 のカタログエントリーで、sourceを含みます)を検証します。また、不正なリクエストが400 + errorCode + messageで拒否されることを確認し、オプションの/agentsと/exploreも確認します(サーバーが404/501を返す場合は失敗ではなくスキップされます)。 - 必須チェックに失敗する場合、そのサーバーは必須の最低要件(
/search)において ARD に準拠していません。references/registry-api.mdを参照し、エンベロープ/ステータスを修正します。 - 探索的な呼び出しについては、
curlでエンドポイントに直接アクセスします(references/registry-api.mdを参照)。
ワークフロー 4 — 更新/保守する
- エントリーを編集します。
identifierURN は安定した状態に保ちます。これは永続的な契約です。エンドポイントを移動する場合は、URN ではなくurl(またはdata)を変更します。 - アーティファクトが変更されたら、エントリーの
versionを上げ、updatedAt(ISO 8601)を更新します。 - リソースを追加する場合は、エントリーを追加し、
identifierが一意であることを確認します(重複はバリデーターが検出します)。 - ファイルを再検証します。すでに公開済みの場合は、ライブ URL も検証し、レジストリがあれば再度プローブします。「検証に合格すること」を完了の定義とします。
基本原則(チェックを行う理由)
- URN はアイデンティティ、url/data は場所です。 安定した URN により、インフラストラクチャが移動しても検索インデックス、クライアント参照、オーケストレーションを維持できます。
- 発行者セグメントは検証可能な FQDN である必要があります。 レジストリはこれを抽出し、
trustManifest.identityに紐付けて名前空間の不正占有を防ぎます。localhostや一般的な単語では機能しません。 urlまたはdataのどちらか一方だけを指定します。 エンタープライズパイプラインで予測可能な解析を行うには、これが必要です。scoreは関連性を示すものであり、信頼性を示すものではありません。 検索スコアを安全性の判断基準にしてはいけません。trustManifestは個別に検証してください。- 早めに、頻繁に、ライブ URL を検証します。 「インデックスに登録されない」問題の多くはスキーマまたはホスティングの問題であり、1 秒で終わるバリデーターの実行で見つけられます。
リファレンスファイル
タスクに合ったファイルを参照してください。各ファイルには目次があります。
references/data-model.md— マニフェスト/エントリーのフィールド、URN 形式、メディアタイプ、値と参照の指定方法、トラストマニフェスト、JSON-LD コンテキストの拡張、urn:air:とurn:ai:に関する既知のドキュメント間の不整合。references/registry-api.md—/search、/explore、/agents、クエリ/フィルターモデル、フェデレーションモード、エラーコード。references/validation-rules.md— バリデーターが実行するすべてのチェックと、そのcodeおよび重大度。references/publishing.md— well-known URI(ard.json)、CORS、DNS 検出、テスト対象となる公開リファレンスレジストリ。
評価
evals/evals.json には、skill-creator の評価ループに使用する現実的なタスクプロンプトが含まれています。このスキルの変更をベンチマークまたは回帰テストするために使用します。