--- name: triage-review description: 別のエージェントが調べた Coverity の警告の結果を、独立に確かめる手順と、検証の結果(review.json)の形。合格・要確認・差し戻しの決め方。検証エージェントが使う。ほかのスキルとサブエージェントが読む手順書で、人が直接頼むものではない。 --- # 結果の独立した確かめ方 指示ファイル(呼び出し元の prompt にあるパス)に、警告の情報と警告経路、調べるコードの場所、確かめる結果(見立て・推奨・確信度・根拠の場所・逸脱案・修正案)、修正の差分と修正後のファイルの場所があります。結果を作ったエージェントの考えた過程は、わざと渡していません。 ## 基本の考え方 - **自分で判断します。** 確かめる結果を読む前に、警告経路の ★ の場所と、経路が成り立つ条件を、調べるコードで自分で読みます。 - 根拠は、すべてコードの場所(ファイルと行)で示します。 - あなたにできるのは、合格・要確認・差し戻しの 3 つだけです。推奨を変えたり、結果ファイルやコードを直したりはしません。 - 差し戻しは、直す点を具体的に言えるときだけにします。言い回しや好みの違いは差し戻しません。 ## 手順 1. **警告経路を読む**:進み具合を `read` にする。警告経路を順に、調べるコードの該当行の前後を読む。チェッカー別の観点は、スキル `checker-knowledge` を見る。 2. **コードで確かめる**:進み具合を `check` にする。次を 1 つずつ確かめ、それぞれを `findings` に書く。 - **根拠の場所**:結果の根拠の場所に、書かれたとおりのコードがあるか。 - **判定**:経路の条件が成り立つか、成り立たないか。結果の見立て(本物のバグ・誤検知・意図的・分からない)がコードと合うか。 - **修正**(差分があるとき):★ の場所に至る経路を断っているか。最小限か。関数の外から見た動きを変えていないか。新しい違反(MISRA / CERT)を作りそうか。 - **逸脱コメント**:理由と根拠の場所がコードと合うか。判定区分が見立てと合うか。 - **確信度**:スキル `triage-investigation` の確信度の基準に合うか。高すぎないか。 - **グループ・統合**(指示ファイルにあるとき):すべての CID が同じ原因か。修正がすべての警告に効くか。 - 指示ファイルの「スクリプトが決まった方法で気づいたこと」があれば、それも確かめる(重みは自分で判断する)。 3. **結果を決める**(`outcome`) - `pass`(合格):判定・修正・逸脱コメント・確信度に、直すべき点が無い。 - `flag`(要確認):誤りとは言い切れないが、人に確かめてほしい点がある(確信度が高すぎる、根拠の一部を追いきれない など)。`confidence_cap` に、あなたが妥当と考える確信度の上限を書く。 - `rework`(差し戻し):はっきりした誤りがある(根拠の行にそのコードが無い、判定がコードと合わない、修正が ★ の経路を断っていない、逸脱コメントの根拠の場所が違う、グループに原因の違う CID がある)。`rework` に、作業エージェントが直す点を、1 点ずつ具体的に書く。 4. **検証の結果を書く**:進み具合を `write` にする。下の形で書く。 5. 呼び出し元に 1 行だけ返す。 ## 検証の結果の形 指示ファイルの「検証の結果(書く)」の場所に、次の JSON を書きます。 ```json { "item": "20001(指示ファイルの見出しの ID)", "outcome": "pass | flag | rework", "findings": [ {"check": "根拠の場所", "ok": true, "detail": "src/reader.c:20 に fclose の前の return がある", "file": "src/reader.c", "line": 20}, {"check": "修正", "ok": false, "detail": "エラーのときの戻り値が変わっている", "file": "src/reader.c", "line": 24} ], "confidence_cap": null, "rework": [], "note": "人向けの 1〜2 文(例:根拠と経路の条件を確かめ、判定と修正は正しい)" } ``` - `confidence_cap`:`high` / `medium` / `low` / `null`(上限なし)。`flag` のときは必ず書く。 - `rework`:`outcome` が `rework` のときだけ書く。それ以外は空の配列。 - `note`:空にしない。一覧とレポートに、そのまま載ります。 - 文字列は空にしません。JSON として正しい形にします。 検証の結果に不備があると、呼び出し元から直す点が伝えられます。そのときは検証の結果だけを直します。