agentleFS
YOSSII812001YOSSII812001/claude-code-jarvis/skills/fortress-review/SKILL.md

fortress-review

Skill1 starsChanged 7 months agoMITView on GitHub

絶対に失敗できない実装に対する動的多角レビュー。 実装リスクをTier判定し、Codex×N + Claude SubAgent×Nを動的に配置。 Grok・Codex・Claudeの三者分析から導出した「動的N方式」を採用。 トリガー: "fortress-review", "要塞レビュー", "絶対失敗不可", "critical review", "多角レビュー", "zero-failure review", "ここぞ" 使用場面: (1) DB migration + 認証/課金が絡む重大変更、(2) アーキテクチャ変更、 (3) 本番障害の修正で再発が許されない場合、(4) ここぞという実装

The file

Files
SKILL.md

Fortress Review — 動的多角レビュースキル

概要

実装のリスクレベルを自動判定し、必要十分なエージェントチームを動的に編成する。 「エージェント数を固定で増やす」のではなく、プロンプト精度×適切なNで信頼性を最大化する設計思想。

  ┌──────────────────────────────────────────────────────┐
  │  Step 0: 入力受付(Issue URL / PR URL / 計画テキスト)│
  └──────────────┬───────────────────────────────────────┘
                 ↓
  ┌──────────────────────────────────────────────────────┐
  │  Step 1: Tier判定(A/B/C → エージェント数を決定)    │
  └──────────────┬───────────────────────────────────────┘
                 ↓
  ┌──────────────────────────────────────────────────────┐
  │  Step 2: Round 1 — 並列独立レビュー                  │
  │  (Tier A: 5体 / Tier B: 3体 / Tier C: 2体)        │
  └──────────────┬───────────────────────────────────────┘
                 ↓
  ┌──────────────────────────────────────────────────────┐
  │  Step 3: Human Gate — トリアージ(省略不可)          │
  │  → Critical/High のみ Round 2 へ                     │
  └──────────────┬───────────────────────────────────────┘
                 ↓
  ┌──────────────────────────────────────────────────────┐
  │  Step 4: Round 2 — 絞り込み深掘り(1-2体、対象限定) │
  └──────────────┬───────────────────────────────────────┘
                 ↓
  ┌──────────────────────────────────────────────────────┐
  │  Step 5: 最終判定 — Go / No-Go / 条件付きGo          │
  └──────────────────────────────────────────────────────┘

設計根拠(三者分析の統合)

提案者主張採用/却下理由
GrokN=3固定(計6体)、3ラウンド却下偽陽性の洪水、統合コスト過大
CodexN=2固定(計4体)+ 静的解析部分採用Tier C のベースラインとして採用
Claude動的N(Tier A:5, B:3, C:2)、2ラウンド+Human Gate採用リスクに比例したリソース配分

核心原則(三者一致点)

  1. プロンプトの質 > エージェント数 — チェックリスト形式でPASS/FAIL+根拠を強制
  2. Human Gateは省略不可 — エージェント間統合の自動化を試みない
  3. Round 2は全員再起動ではない — 問題箇所の深掘りのみ
  4. Codexの強みはコード操作 — 抽象的判断ではなくgrep/テスト生成/影響範囲列挙

Step 0: 入力受付

以下のいずれかを受け付ける:

入力形式例取得方法
Issue URLhttps://github.com/org/repo/issues/123gh issue view 123 --json body,title,labels
PR URLhttps://github.com/org/repo/pull/456gh pr view 456 --json body,title,files,diff
計画テキスト直接テキスト or ファイルパスRead ツール
$ARGUMENTS なし(現在のブランチの最新変更)下記フォールバック参照

引数なし時のdiffベースフォールバック:

  1. git diff staging...HEAD を試行
  2. staging が存在しなければ git diff main...HEAD
  3. diff が空(0行)なら「レビュー対象の変更がありません。/sub-review を推奨」と終了

取得すべき追加コンテキスト:

  • 変更対象ファイルのリスト(git diff --stat or PR files)
  • 関連する CLAUDE.md / プロジェクト規約
  • 直近の障害履歴(該当領域に関するもの)

Step 1: Tier判定(スコアリング方式)

入力を分析し、以下のシグナルテーブルで該当項目にチェックを入れ、合計スコアでTierを自動判定する。

シグナルテーブル

カテゴリシグナル重み判定基準
データ層DB migration5ALTER TABLE / CREATE TABLE / マイグレーションファイルの存在
データ層データモデル・型定義変更3interface/type の変更、Supabase型再生成
データ層キャッシュ戦略変更3キャッシュ無効化ロジック、TTL変更
認証・課金認証/認可ロジック変更5auth middleware、JWT、RLS、getUserIdFromRequest
認証・課金課金・サブスク変更5Stripe連携、billingスキーマ、クレジット消費
認証・課金RLSポリシー変更4CREATE/ALTER POLICY、service_role制約変更
アーキテクチャ公開API契約変更4エンドポイント追加/削除、レスポンス型変更
アーキテクチャ新規外部依存の導入2package.json に新パッケージ追加
アーキテクチャアーキテクチャパターン変更4SSE→WebSocket移行、新ミドルウェア層など
影響範囲変更ファイル6個以上2git diff --stat のファイル数
影響範囲複数モジュール横断3api/ + ui/ + db/ など3層以上に跨る
影響範囲データ経路3本以上3SSE + REST + polling + confirmation等
運用リスクロールバック困難5破壊的migration、データ変換、外部API契約変更
運用リスク過去障害領域3git log / Issue履歴で障害が記録された領域
運用リスクフィーチャーフラグなし2本番直接反映(段階的ロールアウト不可)

Tier閾値

Tierスコアエージェント数想定ケース
A: 要塞≥ 125体(Codex×2 + Claude×3)DB migration + 認証 + 課金が絡む変更
B: 重要≥ 63体(Codex×1 + Claude×2)API変更 or アーキテクチャ変更
C: 標準< 62体(Codex×1 + Claude×1)既存パターン踏襲の機能追加

Tier判定チェックリスト

- [ ] DB migration が含まれるか(ALTER/CREATE TABLE、マイグレーションファイル)
- [ ] データモデル・型定義の変更があるか
- [ ] キャッシュ戦略の変更があるか
- [ ] 認証/認可ロジックの変更があるか
- [ ] 課金・サブスクリプション関連の変更があるか
- [ ] RLSポリシーの変更があるか
- [ ] 公開API契約(型・レスポンス形式)の変更があるか
- [ ] 新規外部依存の導入があるか
- [ ] アーキテクチャパターンの変更があるか
- [ ] 変更ファイルが6個以上か
- [ ] 複数モジュール(3層以上)を横断するか
- [ ] データ経路が3本以上影響を受けるか
- [ ] ロールバックが困難か
- [ ] 過去に障害が発生した領域か
- [ ] フィーチャーフラグなしの本番直接反映か

スコアシミュレーション(代表ケース)

ケース該当シグナルスコアTier
新画面追加(既存パターン踏襲)なし or ファイル6+のみ0〜2C
CRUDエンドポイント1本追加API契約(4)+ファイル6+(2)6B
DB migration + 新APIDB(5)+API(4)+ファイル6+(2)11B
認証変更 + RLS + 課金認証(5)+課金(5)+RLS(4)14A
全面リアーキテクチャ多数該当20+A

判定手順

  1. 入力(Issue/PR/計画)からシグナルを自動スキャン
  2. 該当シグナルの重みを合算
  3. スコア0の場合: fortress-reviewは不要。/sub-review を推奨して終了
  4. Tier閾値と照合 → --tier オプションで手動上書き可能
  5. 判定結果をユーザーに提示(--dry-run の場合はここで終了)
【Tier判定結果】
対象: Issue #XXX — {タイトル}
スコア: {N}点(内訳: データ層{N} + 認証課金{N} + アーキ{N} + 影響範囲{N} + 運用{N})
Tier: {A/B/C}
エージェント構成: {Codex×N + Claude×N}

Step 2: Round 1 — 並列独立レビュー

Tier別エージェント構成

TierCodexClaude Sub合計起動条件
ACodex-A(影響範囲)+ Codex-B(テスト網羅)Sub1(要件整合)+ Sub2(障害シナリオ)+ Sub3(データ整合+セキュリティ)5スコア ≥ Tier A閾値
BCodex-A(影響範囲+テスト統合)Sub1(要件整合)+ Sub2(障害シナリオ+セキュリティ統合)3スコア ≥ Tier B閾値
CCodex-A(影響範囲+テスト+セキュリティ統合)Sub1(要件整合+障害シナリオ統合)2それ以下

エージェント起動ルール

  1. 全エージェントを1メッセージで並列起動する(直列禁止)
  2. Claude SubAgent: Agent ツール(subagent_type: general-purpose)で起動。差分埋め込み方式 — diffをプロンプトに直接含め、ファイル探索させない
  3. Codexエージェント: Agent ツール(subagent_type: general-purpose)で起動し、サブエージェント内でBashから codex exec --cd を実行。diff はCodex自身が取得(Windows 8191文字制限回避)
  4. 各エージェントのプロンプトテンプレートは references/agent-prompts.md を参照
  5. エージェントに 「あなたは絶対に失敗を許されないプロジェクトの最終責任者です」 と明記

プロンプト組み立て手順(CRITICAL: 省略禁止)

テンプレートのプレースホルダを以下の順序で置換してからエージェントを起動する:

  1. references/agent-prompts.md の「共通ヘッダー」セクション全文をコピー
  2. 各テンプレートの {共通ヘッダー} を上記テキストで置換
  3. {プロジェクトディレクトリ} → git rev-parse --show-toplevel の結果
  4. {diffベース} → Step 0で決定したdiffベース(staging...HEAD / main...HEAD / 指定commit)
  5. {Issue本文 or 仕様テキスト} → Step 0で取得したIssue body
  6. {git diff結果 or 計画テキスト} → Step 0で取得したdiff(500行超はファイル単位で分割し、各SubAgentには担当観点に関連するファイルのdiffのみを渡す。diffStatは全SubAgentに共通で渡す)
  7. {diffStatの結果} → git diff --stat の出力

Codex未インストール時のフォールバック

Codex CLIが利用不可の場合、Codexエージェント(CA, CB, CR2)をClaude SubAgent(探索許可) で代替する。この場合のみ Read/Grep/Glob ツールの使用を許可し、影響範囲分析をClaude SubAgentに委任する。

--no-codex 指定時の代替構成

Tier通常構成--no-codex時
ACodex×2 + Claude×3 = 5Claude×3 + Claude探索許可×1 = 4
BCodex×1 + Claude×2 = 3Claude×2 + Claude探索許可×1 = 3
CCodex×1 + Claude×1 = 2Claude×1 + Claude探索許可×1 = 2

Claude探索許可エージェントは Read/Grep/Glob を使い、Codex-Aの「影響範囲分析」を担当する。

出力フォーマット(全エージェント共通・強制)

【検出項目】
- ID: FR-{Agent番号}-{連番}
- ファイル: {パス}:{行番号}
- カテゴリ: ARCHITECTURE | LOGIC | SECURITY | DATA_INTEGRITY | REQUIREMENT | OPERATIONAL
- 深刻度: CRITICAL | HIGH | MEDIUM | LOW | INFO
- 判定: PASS | FAIL | WARN
- 問題: {1-2文}
- 根拠: {コードから直接証明可能な事実}
- 修正案: {深刻度HIGH以上の場合のみ、具体的コード}
- 残存リスク: {修正後も残るリスクがあれば記載}

問題なしの場合: 「全項目PASS」と1行で報告。

Step 3: Human Gate(省略不可)

Round 1 の全エージェント結果を受け取った後:

3.1 自動集約

  1. 全エージェントの出力から指摘を抽出
  2. 同一指摘の統合(複数エージェントが検出 → クロスバリデーション済み マーク)
  3. 深刻度でソート(CRITICAL → HIGH → MEDIUM → LOW → INFO)

3.2 トリアージテーブルの提示

## Fortress Review — Round 1 結果

### Tier: {A/B/C}(スコア: {N}点)
### エージェント: {起動したエージェント一覧}

| # | ID | カテゴリ | ファイル | 深刻度 | 判定 | クロス検証 | 問題概要 |
|---|-----|---------|---------|--------|------|-----------|---------|
| 1 | FR-CA-01 | SECURITY | src/... | CRITICAL | FAIL | Codex+Sub3 | ... |
| 2 | FR-S2-01 | LOGIC | src/... | HIGH | FAIL | | ... |

### Round 2 推奨
- CRITICAL/HIGH: {N}件 → Round 2 深掘り推奨
- MEDIUM以下: {N}件 → 記録のみ(Round 2不要)

**判断をお願いします:**
1. Round 2 に進む(CRITICAL/HIGH指摘を深掘り)
2. 指摘を確認して実装に進む(リスク受容)
3. 計画を修正してから再レビュー

3.3 全エージェントPASS時のショートカット

全エージェントが「全項目PASS」を返した場合: → トリアージテーブルに「指摘なし」と表示 → Step 5(最終判定: Go)に自動進行 → ユーザーに確認: 「全レビューアがPASS判定。Go で進行しますか?」

3.4 Human Gate の意義

エージェント間の矛盾解消を自動化しようとしない。 6体のエージェントが矛盾する指摘を出した場合、正しいのは「人間の判断」。 Human Gate は「ノイズフィルタ」であり「責任の所在を明確にする」仕組み。


Step 4: Round 2 — 絞り込み深掘り

Human Gateで「Round 2 に進む」が選択された場合のみ実行。

起動エージェント(最大2体)

エージェント役割起動条件
Codex-R2R1指摘の修正案生成 + 修正が他に影響しないことの検証CRITICAL/HIGH指摘が1件以上
Claude-R2R1で矛盾する指摘の裁定 + 残存リスク評価矛盾指摘が存在する場合のみ

Round 2 の入力

  • Round 1 の全指摘(トリアージ済み)
  • Human Gate での判断コメント
  • 対象ファイルの現在の全文(diffだけでなく)

Step 5: 最終判定

Go / No-Go 基準

判定条件次のアクション
GoCRITICAL=0, HIGH=0(全て解決済み)実装開始を許可
条件付きGoCRITICAL=0, HIGH≤2(対策明記済み)対策を実装計画に追記して進行
No-GoCRITICAL≥1 未解決計画の根本修正が必要

最終レポート

## Fortress Review 最終レポート

### 基本情報
- 対象: {Issue/PR/計画の概要}
- Tier: {A/B/C}(スコア: {N}点)
- エージェント総数: {R1: N体 + R2: N体}

### 判定: {Go / 条件付きGo / No-Go}

### 指摘サマリ
| 深刻度 | 検出 | 解決済 | 未解決 |
|--------|------|--------|--------|
| CRITICAL | N | N | N |
| HIGH | N | N | N |
| MEDIUM | N | N | N |

### クロスバリデーション(Codex+Claude双方が検出)
- {リスト}

### 残存リスク
- {修正後も残るリスクのリスト}

### 統計
- Round 1: {N}体 × {所要時間}
- Round 2: {N}体 × {所要時間}
- 総トークン: 約{N}
- Human Gate判断: {選択肢}

既存スキルとの連携

連携先スキル連携タイミング連携方法
design-review-checklistStep 1(Tier判定後)Claude-Sub1がPhase 1-9を内部参照
sub-reviewfortress-review 後の実装diff確認別途 /sub-review で起動
issue-plannerfortress-review 前の計画作成計画コメントを入力として受け取る
issue-autopilot-batchTier B以上の場合にfortress-reviewを挟むautopilotフローに組み込み可能

将来の統合構想

issue-planner(計画作成)
     ↓
fortress-review(計画の多角検証)  ← NEW
     ↓
issue-autopilot-batch(実装)
     ↓
sub-review(実装diffレビュー)
     ↓
e2e-test(動作検証)

オプション引数

引数説明例
--tier ATier を手動指定(自動判定を上書き)/fortress-review #123 --tier A
--no-codexCodexエージェントをスキップ/fortress-review #123 --no-codex
--skip-r2Round 2 を自動スキップ/fortress-review #123 --skip-r2
--fullエージェント数をTier A相当(5体)に強制。Tierラベルは自動判定 or --tier の値/fortress-review #123 --full
--dry-runTier判定のみ実行(エージェント起動なし)/fortress-review #123 --dry-run
--auto-gateHuman GateでCRITICAL=0なら自動Go、CRITICAL≥1なら自動No-Go(autopilot連携用)/fortress-review #123 --auto-gate

トラブルシューティング

問題対処法
CodexがタイムアウトClaude SubAgent の結果のみで判定を継続。Tier Cで唯一のCodexがタイムアウトした場合は追加Claude SubAgent(探索許可)を1体起動して代替
偽陽性が多い信頼度閾値を引き上げ(デフォルト80 → 90)、または --tier C で縮小実行
エージェント間で矛盾する指摘Human Gate で人間が裁定。Round 2 Claude-R2 に裁定を依頼することも可能
Windows 8191文字制限Codex は --cd 方式で自身がdiff取得。Claude SubAgent は差分埋め込み(500行超はファイル分割)
結果が長大でコンテキスト圧迫全エージェントをサブエージェント経由で実行(メインコンテキスト保護)

関連スキル

  • design-review-checklist: 設計前の品質チェックリスト(Phase 1-9)。fortress-review の Claude-Sub1 が内部参照
  • /sub-review (コマンド: ~/.claude/commands/sub-review.md): 実装後の5エージェント並列diffレビュー。fortress-review の後に実行
  • agent-teams: 並列コーディングの所有権管理。fortress-review とは直交(レビュー vs 実装)
  • issue-planner: 実装計画の自動生成。fortress-review の前に実行
  • issue-autopilot-batch: バッチ実装パイプライン。Tier B以上で fortress-review を挟む構想
  • skill-improve: スキル品質管理。fortress-review 自体の改善にも使用

改訂履歴

日付変更内容変更理由
2026-04-07初版作成Grok×Codex×Claude三者分析から「動的N方式」を導出
2026-04-07Codex監査対応(25件)CRITICAL: プロンプト組み立て手順追加、Codex実行方式明確化。HIGH: スコア0早期終了、引数なしフォールバック、--no-codex代替構成、Codex未インストールフォールバック。MEDIUM: ID不一致修正、チェックリスト追加、スコアシミュレーション、全PASS時ショートカット、--full/--auto-gate定義、Codexタイムアウト代替、sub-review参照修正

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.