PlanGate 検証監査 (W チェック) · v0.1.0 · 2026-07-01 · sha256 e133140ec544082f
PlanGate 検証監査 (W チェック) v0.1.0A
Immutable. This exact content is served forever at /api/v1/blob/e133140ec544082f.
--- id: 'plangate-verification-audit' name: PlanGate 検証監査 (W チェック) description: 既存のレビュー結果 (review-self / review-external) を再点検し、漏れ・誤検知・ハルシネーション・根拠欠落を検出する W チェック skill version: 0.1.0 category: upstream phase: upstream applyTo: - '**/review-self.md' - '**/review-external.md' tags: [plangate, verification, w-check, audit, upstream] severity: major inputContext: [diff, fullFile] outputKind: [summary, findings, actions, questions, review-audit] modelHint: balanced --- ## Pattern declaration Primary pattern: Reviewer Secondary patterns: Inversion Why: 既存レビュー(`review-self` / `review-external`)を artifact として読み込み、差分および上流 artifact と突き合わせて「レビューに対するレビュー(META finding)」を返す再照合型の skill。入力となるレビューが揃わない場合は実行を止めるゲート(Inversion)として機能する。 ## Goal / 目的 - 既に生成されたレビュー(`review-self` / `review-external`)を W チェック(二重レビュー)し、漏れ・誤検知・ハルシネーション・根拠欠落・過剰指摘を検出する。 - 元コードに対する直接指摘ではなく、**レビューそのものの品質**を対象とする META finding を返し、後続の人間判断や Riverbed Memory に再評価材料を提供する。 - `river review verify` CLI(`pages/reference/cli-review-verify-spec.md`)から呼び出される verify 系 skill として、verify ファミリー制限に適合した単一責務の監査を行う。 ## Non-goals / 扱わないこと - 実装コード自体の品質レビュー(midstream / downstream skill の責務)。 - 計画アーティファクト(`plan` / `pbi-input` / `todo` / `test-cases`)の内部整合性チェック(姉妹 skill `plangate-plan-integrity` の責務)。 - 差分が plan と整合しているかの検査(姉妹 skill `plangate-exec-conformance` の責務)。 - 既存レビューの severity 再マッピング全般(本 skill は「過剰指摘」観点のみに限定し、妥当な severity の再評価は行わない)。 - レビューアーの意図や主観の推定。書かれた内容から客観的に判断できる範囲のみを扱う。 ## Pre-execution Gate / 実行前ゲート このスキルは以下の条件が**すべて**満たされない限り`NO_REVIEW`を返す。 - [ ] 入力 artifact に `review-self` または `review-external` のいずれか1つ以上が解決できている(`pages/reference/artifact-input-contract.md` の ID に準拠) - [ ] `diff` artifact が解決できている(未指定時は `git diff <mergeBase>..HEAD` による fallback を許容) ゲート不成立時の出力: `NO_REVIEW: plangate-verification-audit — レビュー入力 (review-self / review-external) または diff が不足` **Gate と抑制条件の違い:** - Gate = 監査対象となるレビューまたは差分が揃わなければ W チェックは成立しない。 - 抑制条件 = 実行した上で個別の META finding を抑える。 ## False-positive guards / 抑制条件 - 既存レビューが「info」や「参考」として明示的に弱い推奨にとどめている項目を、漏れ・過剰指摘として指摘しない。 - 既存レビューが「推測」「要確認」「後続 Issue に回す」と明示的に不確実性を宣言している項目は、根拠欠落として扱わない。 - diff の fallback 取得で `mergeBase` が曖昧(浅い clone 等)な場合、差分に該当行が見つからない指摘を即ハルシネーションと断定しない。`[q]` として質問に回す。 - `plan` / `test-cases` が未提供の場合、受け入れ条件カバレッジに関する漏れ検出は抑制し、`info` レベルの補足通知にとどめる。 - 既存レビューが自動生成コメント(依存更新、フォーマット)に向けた定型的な観察のみで構成される場合、過剰指摘として扱わない。 ## Rule / ルール 既存レビューを以下の観点で再点検する。1 観点=1 指摘を原則とし、最大 8 件まで。 ### 1. 漏れ検出 (omissions) - `pbi-input` / `plan` の主要な受け入れ条件や明示された重大リスクが、既存レビューで一切カバーされていないか。 - diff に含まれる明らかな懸念点(エラー処理欠落、破壊的変更、テスト不足)が既存レビューで触れられていないか。 ### 2. 誤検知検出 (false positives) - 既存レビューの指摘が、diff に実在しない条件(コード、分岐、API 使用)を前提にしていないか。 - `plan` / `pbi-input` / `test-cases` で明示的にスコープ外・対応済みと宣言されている項目を、既存レビューが問題視していないか。 ### 3. ハルシネーション検出 (hallucination) - 既存レビューが参照する `<file>:<line>` が diff に存在するか。存在しない file / line / symbol を名指ししていれば指摘する。 - 実在しない API、ライブラリ、仕様名を根拠として使っていないか。 ### 4. 根拠欠落 (missing grounding) - 既存レビューの finding が、どの artifact(`plan` / `pbi-input` / `test-cases` / diff の具体行)を根拠にしているか不明瞭でないか。 - 「一般論としてこうあるべき」のみで具体的 evidence を欠く指摘を抽出する。 ### 5. 過剰指摘 (over-flagging) - 既存レビューの severity が、diff の実態(影響範囲、発生確率、回復容易性)と比較して明らかに高く付けられていないか(例: 局所的な nit を critical としている等)。 - 単一の根拠から派生する複数指摘を重複して高 severity で列挙していないか。 ## Evidence / 根拠の取り方 - 各 META finding は「どのレビューの何行目が、どの artifact のどこと、どう食い違うか」を具体的に示す。 - Evidence 行には `review-self: L<n>` または `review-external: L<n>` と、対応する `artifact: <ref>`(例: `diff: src/foo.ts:42` / `plan: §設計判断` / `pbi-input: 受け入れ条件#3`)をペアで示す。 - 推測ではなく、参照した artifact の記述(または欠落)を根拠にする。既存レビュー本文の引用は最小限(1 文以内)にする。 - diff に存在しないコードへの推測に基づく META finding は禁止(`review-core` ルール遵守)。 ## Output / 出力 すべて日本語。`<file>:<line>: <message>` 形式。 - 先頭に要約を 1 行: `(summary):1: <W チェック総評:健全 / 軽微な漏れ / 重大な誤検知あり 等>` - 以降は META finding(最大 8 件): - `<message>` に `[severity=critical|major|minor|info]` を必ず含める。 - 「どの既存レビューの、どの観点(漏れ/誤検知/ハルシネーション/根拠欠落/過剰指摘)に該当するか」を 1 文で示す。 - `Evidence — review-self: L<n>` または `review-external: L<n>` と `artifact: <ref>` を併記する。 - `Fix: <最小の是正案>`(追記 / 取り下げ / severity 見直し / Evidence 追加)を 1 行で付す。 例: - `(summary):1: review-external は主要観点を概ね網羅。ハルシネーション 1 件、過剰指摘 1 件を検出。` - `review-external.md:18: [severity=major] diff に存在しない関数 'validateToken()' を根拠にした指摘(ハルシネーション)。Evidence — review-external: L18, artifact: diff に該当 symbol なし。Fix: 指摘を取り下げるか対象関数名を修正。` - `review-self.md:7: [severity=minor] 「命名が不適切」との指摘に diff の具体行参照がなく根拠が不明瞭。Evidence — review-self: L7, artifact: diff の対応行なし。Fix: 対象 <file>:<line> を併記するか取り下げ。` ## Severity の割り当て方針 META finding の severity は**外部語彙**(`critical` / `major` / `minor` / `info`)で直接付与し、`.claude/rules/review-core.md` のマッピング(内部語彙 blocker/warning/nit/info → 外部語彙 critical/major/minor/info)に整合させる。詳細は `docs/review/output-format.md`(severity の SSoT)を参照。 - `critical`: 既存レビューが diff に存在しない重大事項を critical / blocker として指摘している(誤検知による CI ブロック等)、または重大リスクを完全に見落としている。 - `major`: 主要観点の漏れ 1 件以上、明確なハルシネーション、または severity が 2 段階以上過大な過剰指摘。 - `minor`: 軽微な根拠欠落、1 段階の過剰指摘、軽微な漏れ(info 相当の補足)。 - `info`: 改善余地の提案、既存レビューが妥当であることの確認通知、`plan` 未提供による部分監査の旨。 不明な severity 値が発生した場合は fail-safe として `major` に分類する(`.claude/rules/review-core.md`)。 ## Heuristics / 判定の手がかり - 既存レビューの `<file>:<line>` を抽出し、diff の hunk ヘッダと突き合わせてハルシネーションを判定する。 - `pbi-input` / `plan` の箇条書き受け入れ条件数と、既存レビューで言及されている条件数の差を漏れ検出の手がかりにする。 - 既存レビュー内で severity ラベル(`[severity=...]` / `Critical` / `blocker` 等)の分布を取り、diff の規模・影響範囲と著しく乖離していれば過剰指摘を疑う。 - 既存レビューの指摘から Evidence 行(`diff:` / `plan:` / `test-cases:` などの参照)の有無を抽出し、欠落件数を根拠欠落のスコアに用いる。 - `plan` / `pbi-input` に「スコープ外」「別 PR で対応」と明記された項目に対する既存レビューの指摘は誤検知候補として優先確認する。 ## 評価指標(Evaluation) - 合格基準: 各 META finding が既存レビューの具体行(`review-self` / `review-external` の L<n>)と、対応する artifact 上の根拠(または欠落)を双方示している。severity が 5 観点(漏れ/誤検知/ハルシネーション/根拠欠落/過剰指摘)のいずれかに明確に紐づく。 - 不合格基準: 既存レビューの内容を抽象化した一般論、diff に存在しないコードへの推測に基づく META finding、抑制条件の無視、「既存レビューが不十分」のみの漠然指摘。 ## 人間に返す条件(Human Handoff) - 既存レビューが多数の指摘を持ち、監査結果が 8 件の上限を超える可能性が高い場合(`questions` で優先度判断を仰ぐ)。 - `review-self` と `review-external` で指摘が真っ向から対立しており、どちらが妥当か artifact のみでは判断できない場合。 - 既存レビューが主観的・裁量的な設計判断(命名、アーキテクチャ選好)を主題とし、W チェックの客観的根拠に乏しい場合。 - diff や artifact が W チェック継続に十分な情報を含まないと判断される場合(部分監査の旨を `info` で明示しつつ、`questions` で再実行条件を提示する)。 ## Execution Steps / 実行ステップ 1. **Gate**: `review-self` または `review-external` のいずれかが解決でき、かつ `diff` が解決できているか確認。不成立なら `NO_REVIEW`。 2. **Extract**: 既存レビューから `<file>:<line>` 参照、severity ラベル、Evidence 行を抽出。diff の hunk 構造と `plan` / `pbi-input` / `test-cases` の受け入れ条件を対応表に整理。 3. **Cross-check**: 5 観点(漏れ / 誤検知 / ハルシネーション / 根拠欠落 / 過剰指摘)で突き合わせ、候補を列挙。抑制条件に該当するものを除外。 4. **Rank**: 重大リスクの見落とし・ハルシネーションを高 severity に、軽微な根拠欠落・1 段階の過剰指摘を低 severity に並べる。最大 8 件に絞る。 5. **Output**: 要約 + META finding を日本語で出力。Human Handoff 条件に該当する場合は `questions` で返す。 ## 関連ドキュメント - `pages/reference/cli-review-verify-spec.md` — `river review verify` CLI の呼び出し契約と verify ファミリー制限 - `pages/reference/artifact-input-contract.md` — 入力 artifact の契約(ID / 形式 / 欠損時挙動) - `docs/review/output-format.md` — severity とコメント形式の SSoT - 姉妹 skill: `plangate-plan-integrity` — 計画アーティファクト自体の整合性チェック - 姉妹 skill: `plangate-exec-conformance` — 差分と plan の整合性チェック - 親: Capability #510 / Epic #507 / Task #577