| name | verify |
| description | This skill should be used when the user asks to "verify", "test", "check installation", "動作確認", "テスト", "ヘルスチェック", or wants to verify that the bengo-toolkit plugin is working correctly. |
| version | 1.0.0 |
動作確認(verify)
bengo-toolkit プラグインの各機能が正常に動作するか確認する。
モード
$ARGUMENTS の値に応じて3つのモードで動作する:
モード1: 接続テスト(引数なし)
MCP サーバの疎通と fixtures の存在を確認する。
手順:
0. プラグイン更新チェックはスキップする。Claude Code の /plugin install bengo-toolkit@llamadrive が marketplace.json の最新 version を見て更新する。
0.5. MCP サプライチェーン整合性(v3.3.0〜 必須): python3 scripts/verify_mcp_integrity.py を実行し、.mcp.json の各依存パッケージの npm integrity が scripts/mcp_pinned.json と一致することを確認する。不一致の場合は他の検証に進まず、即座にサプライチェーン改ざんの可能性を報告する(機密文書処理を継続してはならない)。
mcp__xlsx-editor__get_workbook_info を任意の fixtures XLSX に対して呼び出し、応答を確認する。
mcp__docx-editor__get_document_info を任意の fixtures DOCX に対して呼び出し、応答を確認する。
mcp__agent-format__render_agent_file に同梱 fixture の絶対パス ${CLAUDE_PLUGIN_ROOT}/fixtures/agent-format/ping.agent を渡して、応答(Loaded ping.agent (0 sections). Rendering inline. 等)が返ることを確認する。この MCP は任意項目(family-tree / lawsuit-analysis / env の成果物は自己完結 HTML で生成するため、本 MCP は MCP Apps でのインライン描画にのみ使う)。未設定/未応答なら WARNING 扱いで先に進む。
- 注:
render_agent_inline(data 引数)は使わない。 agent-format 0.1.9〜最新 0.2.3 で、data が型無し宣言のため MCP クライアントが文字列化して渡し、サーバ側の typeof data === "object" 判定に落ちて、どんな有効な .agent を渡しても常に missing or non-array sections を返す既知の upstream 不具合がある。実描画に使う render_agent_file(path 引数)はファイルを読んで JSON.parse するため正常に動作する。実スキル(family-tree / lawsuit-analysis / env)も render_agent_file を使っている。
3.5. 自己完結 HTML 描画エンジン(family-tree / lawsuit-analysis の成果物経路、必須): python3 skills/_lib/agent_html/build_html.py host が cli または inline を返し、skills/_lib/agent_html/dist/renderer_bundle.js と renderer_styles.css が存在することを確認する。bash tests/agent_html.sh を実行すれば、極小の .agent から生成した HTML に connect-src 'none'(CSP)と描画エンジンが inline されること・外部リソースを一切参照しないことまで一括検証できる。
- Glob で
fixtures/ 配下の各サブディレクトリにファイルが存在することを確認する。
- Glob で
templates/_schema.yaml が存在することを確認する。
- Glob で
skills/*/SKILL.md を検索し、見つかったスキルを列挙する。件数はハードコードしない — Glob の結果をそのまま使う。
出力:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
bengo-toolkit 動作確認レポート
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[1] xlsx-editor MCP ............. OK
[2] docx-editor MCP ............. OK
[3] agent-format MCP ............ OK(任意・インライン描画用)
[3b] 自己完結HTML描画エンジン ... OK
[4] fixtures .................... OK ({N} dirs)
[5] templates ................... OK
[6] skills ...................... OK ({M} skills)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
結果: 全項目 OK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{N} と {M} は Glob の結果から動的に決まる。ハードコードしない。
MCP サーバが応答しない場合は、そのサーバが設定されていない旨と設定方法を案内する。
モード2: 個別テスト(スキル名指定)
$ARGUMENTS に template-fill, family-tree, typo-check, lawsuit-analysis, inheritance-calc, law-search のいずれかが指定された場合、該当スキルの機能テストを実行する。
共通手順:
fixtures/{skill-name}/ 配下のテストファイルを確認する。
- ファイルが不足している場合は、不足ファイルを報告して終了する。
- テストファイルを使用して該当スキルのワークフローを実行する。
- 出力結果を
fixtures/{skill-name}/expected-*.json と比較する。
- 結果を報告する。
template-fill テスト:
- fixtures:
source-complaint.pdf, template-complaint.xlsx, template-complaint.yaml, expected-output.json
- 実行: template-complaint.yaml を templates/ にコピー → /template-fill を実行 → 出力XLSXのセル値を expected-output.json と比較
- 成功基準: フィールド正答率 ≥ 90%
family-tree テスト:
- fixtures:
koseki-simple.pdf, expected-simple.json
- 実行: /family-tree を実行 → 抽出された persons/relationships を expected-simple.json と比較
- 成功基準: 人物抽出 ≥ 95%、関係抽出 ≥ 90%
typo-check テスト:
- fixtures:
brief-with-errors.docx, brief-clean.docx, expected-corrections.json
- 実行: /typo-check を brief-with-errors.docx に実行 → 検出結果を expected-corrections.json と比較
- 成功基準: 適合率 ≥ 85%、再現率 ≥ 75%
lawsuit-analysis テスト:
- fixtures:
complaint.pdf, answer.pdf, expected-timeline.json, expected-characters.json
- 実行: /lawsuit-analysis を実行 → 抽出結果を expected JSONs と比較
- 成功基準: タイムライン再現率 ≥ 80%、人物再現率 ≥ 90%
モード3: 全テスト(all 指定)
fixtures/ 配下にテストデータが揃っているスキル全ての機能テストを順次実行する。実行件数はハードコードしない — fixtures が存在するスキルだけを動的に列挙する。
出力(例):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
bengo-toolkit 動作確認レポート(全テスト)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[1] MCP サーバ接続 ............. OK
[2] /template-fill ............. OK (15/15 fields)
[3] /family-tree ............... OK (4/4 persons, 3/3 rels)
[4] /typo-check ................ OK (P:92% R:80%)
[5] /lawsuit-analysis .......... OK (6/6 events, 3/3 chars)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
結果: {合格}/{実行} OK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WARNING がある場合はその詳細を表示する。
Fixtures がない場合
fixtures ディレクトリにテストファイルがない場合は:
- 接続テスト(モード1)のみ実行する。
- 「テスト用 fixtures が未設定です。fixtures/ ディレクトリにテストファイルを配置してください。」と案内する。
- 各スキルに必要な fixtures ファイルの一覧を表示する。
比較ロジック
文字列比較
- 完全一致ではなく意味的一致で判定する。
- 日付フォーマットの差異(「令和5年」vs「2023年」)は一致とみなす。
- 全角/半角の差異は一致とみなす。
数値比較
- カンマの有無を無視する。
- 全角/半角を正規化して比較する。
テーブルデータ比較
- 行の順序を無視し、内容で照合する。
- 一致率 = 正しく抽出された行数 / expected の行数。