From system-spec-harness
Evaluates generated specification document sets for completeness using 6 criteria: traceability, decision rationale, matrix coverage, design knowledge, doc freshness, prompt quality. Returns PASS/FAIL with deficiency list.
How this skill is triggered — by the user, by Claude, or both
Slash command
/system-spec-harness:assign-system-spec-completeness-evaluator [--spec-dir <path>] [--output <report_path>][--spec-dir <path>] [--output <report_path>]spec_diroutputThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> 生成された仕様書ドキュメントセットを、上位概念trace / 意思決定根拠 / マトリクス網羅性 / deep knowledge目的適合 / 最新出典 / prompt品質の観点で評価し、観点別スコア + 総合判定 (PASS/FAIL) + 不足事項一覧を返す independent evaluator。`context:fork` で生成者と評価者を分離する。
生成された仕様書ドキュメントセットを、上位概念trace / 意思決定根拠 / マトリクス網羅性 / deep knowledge目的適合 / 最新出典 / prompt品質の観点で評価し、観点別スコア + 総合判定 (PASS/FAIL) + 不足事項一覧を返す independent evaluator。
context:forkで生成者と評価者を分離する。
入力: system-spec/*.md + index (C03 出力) / spec-state.json (C01) / fetched-references.json (C02)
出力: 評価レポート (schemas/completeness-findings.schema.json 準拠) — 観点別スコア + 総合判定 + 不足事項一覧
完了条件: 全観点 verdict 付与 + findings[] (info 以上を最低 1 件) + 総合判定が観点スコアからの fail-closed 再導出値と一致 + 総合 FAIL 時は不足事項一覧が非空。
各 skill 単独では見えない全体網羅性の欠落を、生成物から独立した context で評価し客観的合否を返す。
本 skill は全 6 観点 (上位概念trace / 意思決定 / マトリクス網羅性 / 設計知識反映 / 最新ドキュメント出典 / prompt品質) を採点する (schema/rubric/aggregate-completeness の正本)。うち foundation_trace / decision_guidance / prompt_quality は C05 R1-score の自前評価。以下は監査 sub-agent の関与が判定に効く 3 観点の対応表。
| 観点 (aspect id) | ラベル | 評価主体 (component) | 一次根拠 |
|---|---|---|---|
matrix_coverage | マトリクス網羅性 | system-spec-matrix-auditor (C07) + sub-input system-spec-hearing-auditor (C06) | validate-coverage-matrix.py --require-complete の exit0 + 意味層。C06 の 4 軸 (聞き漏れ/誘導/早期停止/トレーサビリティ) を網羅性・トレースの補助根拠に併せる |
design_knowledge_reflection | 設計知識反映 | C05 R1-score が自前評価 (独立 auditor なし) | 機械層=各章の設計知識ポインタ存在 (compile 注入) + 意味層=そのポインタ原則の確定セルへの具体適用 (存在確認だけで PASS にしない = Goodhart 防止) |
doc_freshness | 最新ドキュメント出典 | system-spec-doc-freshness-auditor (C08) | 二層監査 (形式=validate-source-citation.py / 内容鮮度=公式再照合) |
system-spec/*.mdを読まない C06 (hearing-auditor) を設計知識反映へ束縛するのは虚偽対応のため撤去した。C06 はヒアリング品質を担い matrix_coverage の sub-input へ再配置し、設計知識反映は C05 が system-spec/*.md と resource-map から自前評価する。監査 sub-agent (C07/C08 と matrix sub-input の C06) は Task tool でそれぞれ独立 context (fork) に起動する (R2-delegate)。監査ロジックは各 agent の SSOT prompt に委ね、本 skill は結果を集約するだけで書き換えない。
上位 6 観点の top-level 構造 (aggregate-completeness.py の 6 aspect fail-closed 集約) は不変。C13-C16 の知識グラフ / doctrine 要件は新 aspect を増やさず、既存 aspect の追加評価次元として折り込む (各
validate-knowledge-graph.py --profile ...の exit0 を機械層、生成物への反映を意味層で採点)。
| 追加次元 | 折込先 aspect | 機械層ゲート | 意味層で拾う失敗 |
|---|---|---|---|
| C13 知識カタログが typed 辺グラフ | design_knowledge_reflection | validate-knowledge-graph.py --profile knowledge exit0 (循環/dangling/孤立/root到達不能 0) | knowledge-catalog の depends_on/refines/conflicts_with 型則違反・孤立 node の設計知識への未接地 |
| C14 elicit/compile が同一 topo_order で知識消費 | design_knowledge_reflection | 上記 --profile knowledge --order の topo_order を C01 R5 / C03 R2 が同一順で消費 | 上位概念→下位概念の位相順を破って下位技術を先に確定した章 |
| C15 doctrine anchor 1正本 + 全 category 写像全射 | design_knowledge_reflection | validate-knowledge-graph.py --profile doctrine exit0 (7 concern の concern_id 一意 + 各 authority 非空・全 category→concern 写像全射。authority は 4 種で concern 間共有可・authority 一意性は非検査) | 生成章に concern authority (Apple HIG/Clean Arch/OWASP/SRE) の上流指針が具体反映されず汎用ポインタ止まり |
| C16 必須情報カタログの被覆 + block ゲート | matrix_coverage | validate-knowledge-graph.py --profile required-info exit0 (全 in-scope domain 被覆・item 最低形状・収集順序・coverage certificate) | missing_effect=block の item 未回答のまま confirmed に進んだ確定セル (C01 R5 収集ゲート素通り。機械層ゲート validate-knowledge-graph.py (component C14) は blocking_items 列挙のみで runtime 施行せず・決定論 writer 施行は follow-up) |
C15 の意味層は「存在確認だけで PASS にしない」= design_knowledge_reflection の Goodhart 防止と同一原則で、doctrine anchor が確定セル要件へ具体適用されているかを照合する。C16 は matrix_coverage の網羅性判定に「必須情報が block ゲートを通って確定に接地しているか」を加える。
{
"evaluator": {"name": "assign-system-spec-completeness-evaluator", "version": "0.1.0", "context": "fork"},
"verdict": "PASS" | "FAIL",
"aspects": {
"foundation_trace": {"verdict": "...", "auditor": "assign-system-spec-completeness-evaluator", "component": "C05", "summary": "...", ...},
"decision_guidance": {"verdict": "...", "auditor": "assign-system-spec-completeness-evaluator", "component": "C05", "summary": "...", ...},
"matrix_coverage": {"verdict": "PASS|FAIL|INDETERMINATE", "auditor": "system-spec-matrix-auditor", "component": "C07", "summary": "...", "evidence": [...]},
"design_knowledge_reflection": {"verdict": "...", "auditor": "assign-system-spec-completeness-evaluator", "component": "C05", "summary": "...", ...},
"doc_freshness": {"verdict": "...", "auditor": "system-spec-doc-freshness-auditor", "component": "C08", "summary": "...", ...},
"prompt_quality": {"verdict": "...", "auditor": "assign-system-spec-completeness-evaluator", "component": "C05", "summary": "...", ...}
},
"gate_results": [ {"id": "G-matrix", "name": "validate-coverage-matrix", "exit_code": 0, ...} ],
"findings": [ {"severity": "high|medium|low|info", "bucket": "...", "observation": "...", "suggested_fix": "..."} ],
"gaps": [ "不足事項1", ... ]
}
scripts/aggregate-completeness.py の aggregate_verdict で再導出でき、レポートの verdict と一致すること (総合判定が観点スコアに接地しているかの整合検査 = Goodhart 防止)。validate-coverage-matrix.py の exit code を一次根拠にし、自然言語で PASS 判定しない。正本責務は prompts/R1-score.md (スコアリング) と prompts/R2-delegate.md (監査 fork 集約)。要約:
Task tool で監査 sub-agent (system-spec-matrix-auditor (C07) / system-spec-hearing-auditor (C06) / system-spec-doc-freshness-auditor (C08)) をそれぞれ fork する。C07 は matrix_coverage、C08 は doc_freshness の一次根拠。C06 はヒアリング品質を監査し matrix_coverage の sub-input として併せる。design_knowledge_reflection は独立 auditor を立てず Step 3 で C05 自身が評価する。
PLUGIN_ROOT=plugins/system-spec-harness
python3 "$PLUGIN_ROOT/scripts/validate-coverage-matrix.py" --matrix <spec-state.json> --require-complete
exit0 をマトリクス網羅性観点の一次根拠にする (scripts/aggregate-completeness.py --matrix ... でも回収可)。
続けて C13-C16 の機械層ゲートを python3 "$PLUGIN_ROOT/skills/assign-system-spec-completeness-evaluator/scripts/aggregate-completeness.py" --knowledge-graph (出荷 3 カタログを validate-knowledge-graph.py の knowledge/doctrine/required-info/cross 4 profile で独立再実行) の全 exit0 で確認する。C13/C14/C15 は design_knowledge_reflection (Step 3)、C16 は matrix_coverage の追加評価次元として意味層採点に併せる。
C05 R1-score が system-spec/*.md 各章を直接読み、ref-system-design-knowledge/references/resource-map.yaml 由来の設計知識ポインタの (1) 存在 (機械層) と (2) その原則が確定セル要件へ具体適用されているか (意味層) を評価する。存在確認だけで PASS にしない (compile が機械注入するポインタを自己循環で肯定しない = Goodhart 防止)。汎用ポインタ (resource-map 索引) のみで具体適用が無い章は medium 以上で拾う。C06 のヒアリング品質監査は本観点でなく matrix_coverage の sub-input として使う。
schemas/completeness-findings.schema.json 準拠で評価レポートを出力。scripts/aggregate-completeness.py --report <report.json> で形状 + 総合判定整合 (fail-closed 再導出との一致) を検証する。
references/scoring-rubric.json — 全 6 観点機械判定ルールと fail-closed 集約ポリシーreferences/aspect-criteria.md — 観点別意味判定の詳細基準 + 観点↔監査 agent 対応schemas/completeness-findings.schema.json — 評価レポート出力スキーマscripts/aggregate-completeness.py — レポート形状検証 + 総合 fail-closed 集約 (決定論)prompts/R1-score.md / prompts/R2-delegate.md — R1 (スコアリング) / R2 (監査 fork 集約) 責務正本../../agents/system-spec-{matrix,hearing,doc-freshness}-auditor.mdnpx claudepluginhub p/daishiman-system-spec-harness-plugins-system-spec-harnessUse when the user asks to review or critique a prose planning document — a plan, spec, PRD, requirements doc, or design doc.
Reviews PRDs and specs for completeness, ambiguities, edge cases, acceptance criteria quality. Structures findings by severity and offers direct fixes.
Audits lifecycle specs (requirements, tech-spec, architecture) for YAGNI/KISS violations using a 3-phase process with Codex adversarial debate. Identifies over-designed elements via a 6-dimension rubric.