AX Kit
UXは人間の体験です。Agent Experience(AX)は、ある人が製品を使用するためにAIエージェントが行う体験です。 エージェントには目がなく、CAPTCHAに対する忍耐もなく、人間に質問することもできません。エージェントが使用できるのは、製品が機械に公開するものだけです。
このスキルは、サイト、API、SaaSアプリ、またはストアのエージェント向けレイヤーを改善します。 エージェントが使用する標準を実装し、その結果をスキャナーで測定します。 スコアは作業に対するフィードバックです。スコア自体が目的ではありません。
セットアップ
<skill-dir> は、この SKILL.md を含むディレクトリです。作業ディレクトリはユーザーのプロジェクト内に保ってください。
スキャナーは <skill-dir>/scripts/ax.mjs です。Node.js 18以降が必要で、依存関係はありません。
node <skill-dir>/scripts/ax.mjs scan <url> --profile <content|api|webapp|commerce> --json
node がないか、バージョンが18より古い場合は、ユーザーに伝えてください。その後、スキャナーなしでプレイブックを使って続行します。
コマンド
ユーザーのリクエストからコマンドを見つけてください。次に、そのコマンドのガイドを読み、それに従ってください。
| コマンド | 使用するタイミング | ガイド | コード編集 |
|---|---|---|---|
improve | 製品をエージェント向けに改善したい場合(スキャン、修正、検証のループ) | references/improve.md | はい |
add <capability> | 特定の機能を実装したい場合(例:llms-txt や mcp-server) | references/add.md | はい |
audit <url> | 変更なしで完全な診断とレポートを取得したい場合 | references/audit.md | いいえ |
score <url> | 迅速にAXスコアと主要なギャップを取得したい場合 | references/score.md | いいえ |
design | コードが存在する前に計画中のAPI、サイト、機能をレビューしたい場合 | references/design.md | いいえ |
ci | スコアにパイプラインゲートとバッジを追加したい場合 | references/ci.md | はい |
リクエストにコマンドが指定されておらず、推測できない場合は、この表を表示し、ユーザーがどのコマンドを希望するか尋ねてください。 メニューから作業を開始しないでください。
すべてのコマンドに適用されるルール
これらのルールはリファレンスファイルよりも優先されます。
- 編集前に確認する。 ユーザーの同意を2回得てください。まず、解決すべきギャップについて合意します。次にプレイブックを読み、変更する正確なファイルを提示します。2回目の同意後にのみ編集します。
- 稼働中のサイトでは読み取り専用を維持する。 データを読み取るリクエストのみを送信します。アカウントを作成したり、フォームを送信したり、何かを購入したりしないでください。サイトの所有者が明示的に例外を承認できます。スキャナーは1つの
POST(/mcpへのserver/discoverリクエスト)を送信します。このリクエストはデータの読み取りのみを行います。 - 外部スキャナーを使用する前に尋ねる。 ホスト型スキャナーはURLを受け取ります。事前に同意を得てください。
- セキュリティを保護する。 ボット保護を無効にしたり、プライベートデータに対してCORSを開放したり、スコアを上げるためにプライベートコンテンツを公開したりしないでください。各プレイブックにはセキュリティに関する注意事項があります。それらに従ってください。人間向けのページにCAPTCHAがある場合は、それを維持してください。エージェント向けに別のパス(例:APIからのキー、不正使用コントロール付き)を追加してください。
- 所有者のボットポリシーを尊重する。 AIトレーニングクローラーのブロックは有効な判断です。ユーザーが要求しない限り、変更しないでください。
- 標準の日付を確認する。 各プレイブックには
Reviewed日付があります。その日付が6ヶ月以上前の場合は、実装前に一次情報源を読んでください。 - 真実を報告する。 スコア、カバレッジ、およびスキャナーが評価しなかった各チェックを表示します。未評価のチェックを合格として表示しないでください。
- 原因を修正する。 チェックを満たすためだけにファイルを追加しないでください。正しくないリンクを持つ
llms.txtは、ファイルがないよりも悪いです。
7つの柱
各柱はエージェントのジャーニーに従います。初期の柱での失敗は、その後の柱をブロックします。
| 柱 | 質問 | プレイブック |
|---|---|---|
| Reach | エージェントは応答を得られますか?ボットポリシーは明示されていますか? | bot-access |
| Discover | エージェントは何が存在するかを見つけられますか? | llms-txt, sitemap-and-links, api-catalog, agent-discovery |
| Read | エージェントはブラウザなしでコンテンツを理解できますか? | markdown-for-agents, server-rendering, structured-data |
| Act | エージェントは製品を呼び出せますか? | openapi-quality, mcp-server, webmcp, api-design |
| Authorize | エージェントは人間を介さずにアクセスを得られますか? | oauth-for-agents, self-serve-access |
| Recover | エージェントはエラー後に自分自身を修正できますか? | errors-and-limits |
| Transact | エージェントは支払いができますか? | agentic-commerce |
各プレイブックはファイル references/<name>.md です。
プロファイル
プロファイルは、どのチェックを適用するかをスキャナーに指示します。--profile で指定します。省略した場合、スキャナーが検出します。
| プロファイル | 対象 |
|---|---|
content | マーケティングサイト、ドキュメンテーションサイト、ブログ |
api | HTTP API |
webapp | アカウントを持つSaaSアプリケーション |
commerce | ストア |
製品は複数のサーフェスを持つことができます。各サーフェスを独自のプロファイルでスキャンしてください。
例:example.com を content としてスキャンし、api.example.com を api としてスキャンします。
APIの場合は、API全体に応答するURLを指定します。ホストルートがAPIで応答する場合は、ホストルートを使用します。APIが /api/v1 のようなパスの下にあり、ホストルートが別のものを提供する場合は、そのパスを使用します。
スキャナーは、ホストの既知の場所と、指定したURLの隣でAPI記述を探します。
スキャナー出力の読み方
JSONレポートには3つのバケットのチェックがあります。
| バケット | 内容 | スコアへの影響 |
|---|---|---|
score | 安定した標準に関する測定されたチェック | スコアのすべて |
review | 判断が必要なチェック(例:「エージェントはCAPTCHAなしでAPIキーを取得できる」) | なし。あなたが評価します。 |
watch | 新興標準、レガシーパス、観察結果 | なし |
scoreは0から100までの検証済みの下限値です。upperBoundは、未評価の各チェックが合格した場合のスコアです。coverageは、スキャナーが評価できたスコアの割合を示します。タイムアウトはこれを減少させます。gradeは、scoreとupperBoundが異なるグレード帯にある場合にnullになります。capは、ゲートが失敗した場合に設定されます。ゲートは、プレーンなリクエストがボットチャレンジを受けた場合、またはJavaScriptなしでページにコンテンツがない場合に失敗します。キャップは59です。opportunitiesは、各修正が追加できるポイントを大きい順にリストします。すべてのギャップが含まれます。テキスト出力は最初の8つのみを表示します。- 各チェックには
playbookがあります。これは修正があるリファレンスファイルです。 blockedByがあるチェックは、別のチェックが先に失敗したために失敗しました。そのステータスはfailであり、not_assessedではないため、カバレッジは減少しません。最初にblockedByのチェックを修正してください。reviewは、プロファイルに適用されるレビューチェックをリストします。これらだけを評価してください。
--json なしの場合、スキャナーはスコア行と柱行を含む短いテキストレポートを出力します。ユーザーにはテキストレポートを、作業にはJSONを使用してください。
終了コード: 0 OK、1 ゲート失敗、2 使用法エラー、3 ゲート不明、4 スコアなし、5 内部エラー。
node <skill-dir>/scripts/ax.mjs catalog --json はカタログを出力します。その checks 配列の各エントリには bucket があります。レビューチェックには、メンバー pass、partial、fail、evidence を持つ rubric もあります。
JSONレポートは会話内、またはプロジェクト外の一時ディレクトリに保持してください。ユーザーが要求しない限り、プロジェクト内に書き込まないでください。
計算式については、references/scoring.md を読んでください。チェックのリストについては、references/checks.md を読んでください。
リファレンスファイル
条件が真の場合にのみファイルを読んでください。
| ファイル | 読み取るタイミング |
|---|---|
| references/stacks.md | プロジェクトのフレームワーク内でファイル、ヘッダー、ルートがどこにあるかを見つける必要がある場合 |
| references/standards.md | 標準が安定、新興、レガシーのいずれであるか、またはパスが名前を変更したかどうかを知る必要がある場合 |
| references/checks.md | チェックIDの意味、またはレビューチェックのルーブリックが必要な場合 |
| references/scoring.md | ユーザーがスコアの仕組みについて尋ねた場合 |
references/<playbook>.md | そのプレイブックの機能を実装または説明する場合 |
一般的なファイルのテンプレートは <skill-dir>/assets/ にあります。各プレイブックは、使用するテンプレートを指定しています。