Communitygithub.com

agent-verify

AIコーディングエージェント向けの、トークン最小限のCLI検証ハーネス。機能と一緒にチェックを構築し、エージェントはDOMダンプではなくPASS/FAILを読み取る。約20トークンで、20,000トークンではない。

agent-verify とは?

agent-verifyは、AIコーディングエージェント(Claude Code、Cursor、Codexなど)向けに設計された、トークン消費を最小限に抑えた検証ハーネスです。このスキルの核となる考え方は、機能を実装するたびに、最も軽量な仕組みで検証可能にすることです。具体的には、各機能に対して1行のCLIチェック(`PASS`または`FAIL: line`を出力)を書き、それを`VERIFICATION_MAP.md`にマッピングします。エージェントは次回の実行時にこのマップを読み取り、結果だけを解釈します。これにより、従来のように数万トークン分のDOMダンプやスクリーンショットをコンテキストに送る必要がなくなり、トークン消費を劇的に削減できます。論理、データ、API契約、フローの90%はブラウザなしで検証可能であるという原則に基づき、Playwrightなどのヘッドレスブラウザは視覚的なUI検証が必要な最後の手段としてのみ使用します。対応スタックとしてFastAPI、Supabase、Next.jsなどのレシピが`reference/stacks/`に用意されており、`scripts/detect-stack.sh`が自動でスタックを検出します。

対応~Claude Code~Codex CLI~Cursor
npx skills add kmloureiro/agent-verify

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

agent-verify は何をしますか?

構築したものを、それを偽造できる最も安価なメカニズムで検証可能にしなさい。デフォルトでCLI経由で検証する。モデルは約20トークン(PASS / FAIL: line)を読むべきであり、DOMダンプやスクリーンショットを決して読んではいけない。

唯一のルール

機能が間違っていることを証明できる、最も軽量なメカニズムを使いなさい。それができない場合にのみ、より重い手段にエスカレーションする。

インプロセスアサート  →  CLI / curl + exit code  →  DBテスト(TAP)  →  ヘッドレスブラウザ(視覚のみ、最後の手段)
   最も安価                                                               最も高価

エージェントが構築するものの90%(ロジック、データ、API契約、フロー)はブラウザなしで検証可能です。ブラウザはピクセル用に取っておきましょう。

ループ(機能ごと)

  1. 一度検出する。 scripts/detect-stack.sh を実行する。テスタランナーとスタックを数行で表示する。新しいフレームワークを押し付けない — 既存のものを使う。
  2. 機能を構築する。
  3. スタックのインプロセス / CLIプリミティブを使って、1つのトークン最小限のチェックを書く(reference/stacks/ を参照)。チェックは PASS または単一の FAIL: 行を出力しなければならない — ダンプは絶対にしない。
  4. VERIFICATION_MAP.md に1行追加する: feature | command | pass-signal。これが次回エージェントが読み取る契約である。
  5. scripts/verify.sh [feature] を実行し、結果だけを読む。 編集 → 検証 → 結果に基づいて繰り返す。ログには基づかない。

やってはいけないこと

  • ロジック、データ、APIレスポンスをチェックするためにPlaywrightやブラウザに手を出してはいけない。これこそが、このスキルが止めようとしているトークン漏れである。
  • TDDの儀式を規定してはいけない。手順ではなく、どのチェックがこの機能を証明するかを表面化しなさい。(手順だけをターゲットコンテキストなしで行うと、測定可能な形で逆効果になる — reference/patterns.md を参照。)
  • 生の出力をコンテキストに返してはいけない。サンドボックス内でフィルタリングし、結果だけを表面化しなさい。(console.log(result) であって、1万行のデータではない。)
  • チェックを増やしてはいけない。1機能につき、1つの高速で決定論的なチェック。VERIFICATION_MAP.md は短く保つ — 短いマップは長いマップよりも性能が良い。

出力契約(常に)

PASS auth-login
FAIL create-invoice: expected 201, got 500

終了コード 0 = すべて合格。非ゼロ = 何かが失敗した。モデルに必要なのはこれだけである。

ブラウザが避けられない場合

純粋に視覚的なUI(レイアウト、スタイリング、ビジュアルリグレッション)の場合に限り、そして最後の手段としてのみ。その場合でも、1回のヘッドレス実行で、PASS/FAILまたは差分判定を返す — 完全なスクリーンショットやDOMをコンテキストに決して入れない。reference/stacks/nextjs.md を参照。

ファイル

  • scripts/detect-stack.sh — スタックとランナーを表示する、トークン最小限。
  • scripts/verify.sh — マッピングされたチェックを実行し、PASS/FAILと失敗行のみを出力する。
  • VERIFICATION_MAP.md — 短い機能→コマンドマップ(エージェントが管理する)。
  • reference/stacks/ — コピペ用レシピ:FastAPI(インプロセスTestClient)、Supabase(シード+リセット+pgTAP)、Next.js(ルートハンドラー+最終手段のビジュアル)。
  • reference/patterns.md — トークン最小限の検証パターンとその根拠となるエビデンス。
  • reference/anti-patterns.md — フレーキーテスト、誤ったPASS、過剰エンジニアリングガード。
  • templates/ — マップ、FastAPIテスト、Supabaseシードの出発点。

関連スキル