- phase-runner: レポートを上書きせずタイムスタンプ付きで同ディレクトリに保存し、fix が過去指摘の傾向を追跡できるよう改善
- output-contracts: persists/reopened/family_tag フィールドを追加してレビュー指摘の継続性を明示
- pieces: 全ビルトインピースに reviewers↔fix の loop_monitors を追加し、発散ループを自動検知
- fix.md: 過去レポートの参照方法を「Glob で {レポート名}.* を検索、最大2件読む」と具体化
- loop-monitor-reviewers-fix.md: ループモニタ判定用の共通インストラクションを新規追加
1.9 KiB
1.9 KiB
# セキュリティレビュー
## 結果: APPROVE / REJECT
## 重大度: None / Low / Medium / High / Critical
## チェック結果
| カテゴリ | 結果 | 備考 |
|---------|------|------|
| インジェクション | ✅ | - |
| 認証・認可 | ✅ | - |
| データ保護 | ✅ | - |
| 依存関係 | ✅ | - |
## 今回の指摘(new)
| # | finding_id | family_tag | 重大度 | 種類 | 場所 | 問題 | 修正案 |
|---|------------|------------|--------|------|------|------|--------|
| 1 | SEC-NEW-src-db-L42 | injection-risk | High | SQLi | `src/db.ts:42` | 生SQL文字列 | パラメータ化クエリを使用 |
## 継続指摘(persists)
| # | finding_id | family_tag | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|---|------------|------------|----------|----------|------|--------|
| 1 | SEC-PERSIST-src-auth-L18 | injection-risk | `src/auth.ts:18` | `src/auth.ts:18` | 未解消 | バリデーションを強化 |
## 解消済み(resolved)
| finding_id | 解消根拠 |
|------------|----------|
| SEC-RESOLVED-src-db-L10 | `src/db.ts:10` はバインド変数化済み |
## 再開指摘(reopened)
| # | finding_id | family_tag | 解消根拠(前回) | 再発根拠 | 問題 | 修正案 |
|---|------------|------------|----------------|---------|------|--------|
| 1 | SEC-REOPENED-src-auth-L55 | injection-risk | `前回: src/auth.ts:20 で修正済み` | `src/auth.ts:55 で再発` | 問題の説明 | 修正方法 |
## 警告(非ブロッキング)
- {セキュリティに関する推奨事項}
## REJECT判定条件
- `new`、`persists`、または `reopened` が1件以上ある場合のみ REJECT 可
- `finding_id` なしの指摘は無効
認知負荷軽減ルール:
- 問題なし → チェック表のみ(10行以内)
- 警告のみ → + 警告1-2行(15行以内)
- 脆弱性あり → + 指摘表(30行以内)