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) ここぞという実装
In this repository66 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- agent-teams-codingSkill
- AI External Brain (Knowledge Base)Skill
- awesome-design-md-jpSkill
- awesome-design-mdSkill
- softbank-invoiceSkill
- claude-for-chromeSkill
- codebase-patrolSkill
- codex-autopilotSkill
- codexSkill
- Context7 Documentation LookupSkill
- design-review-checklistSkill
- detail-design-docSkill
- discord-promotionSkill
- drawioSkill
- e2e-testSkill
- fish-audio-apiSkill
- fish-audio-docsSkill
- fish-audioSkill
- fortress-implementSkill
- freee Developer APISkill
- frontend-skillSkill
- gBizINFO APISkill
- github-cliSkill
- git-worktree-parallelSkill
- google-sheets-apiSkill
- google-sheets-mcpSkill
- graphify-windowsSkill
- issue-autopilot-batchSkill
- issue-flowSkill
- issue-plannerSkill
- Jグランツ APISkill
- Knip - Dead Code DetectionSkill
- liftkitSkill
- llm-vulnerability-testSkill
- MarkItDownSkill
- mba-strategy-consultantSkill
- Obsidian CLI OperationsSkill
- openrouterSkill
- PAY.JP CLI OperationsSkill
- playwright-cliSkill
- playwrightSkill
- qwen-coderSkill
- ryokan-forecastSkill
- security-adversarialSkill
- security-settingsSkill
- skill-improveSkill
- stoic-daily-practiceSkill
- Stripe CLI OperationsSkill
- Stripe PayPay決済Skill
- Supabase CLI OperationsSkill
- tile-terminalsSkill
- timesfmSkill
- ui-ux-pro-maxSkill
- usacon-account-mgmtSkill
- usacon-cliSkill
- usacon-discordSkill
- usacon-partner-registrationSkill
- usaconSkill
- ux-psychologySkill
- The first 60 shown.
The file
Files
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 │
└──────────────────────────────────────────────────────┘設計根拠(三者分析の統合)
| 提案者 | 主張 | 採用/却下 | 理由 |
| Grok | N=3固定(計6体)、3ラウンド | 却下 | 偽陽性の洪水、統合コスト過大 |
| Codex | N=2固定(計4体)+ 静的解析 | 部分採用 | Tier C のベースラインとして採用 |
| Claude | 動的N(Tier A:5, B:3, C:2)、2ラウンド+Human Gate | 採用 | リスクに比例したリソース配分 |
核心原則(三者一致点)
- プロンプトの質 > エージェント数 — チェックリスト形式でPASS/FAIL+根拠を強制
- Human Gateは省略不可 — エージェント間統合の自動化を試みない
- Round 2は全員再起動ではない — 問題箇所の深掘りのみ
- Codexの強みはコード操作 — 抽象的判断ではなくgrep/テスト生成/影響範囲列挙
Step 0: 入力受付
以下のいずれかを受け付ける:
| 入力形式 | 例 | 取得方法 |
| Issue URL | https://github.com/org/repo/issues/123 | gh issue view 123 --json body,title,labels |
| PR URL | https://github.com/org/repo/pull/456 | gh pr view 456 --json body,title,files,diff |
| 計画テキスト | 直接テキスト or ファイルパス | Read ツール |
$ARGUMENTS なし | (現在のブランチの最新変更) | 下記フォールバック参照 |
引数なし時のdiffベースフォールバック:
git diff staging...HEADを試行- staging が存在しなければ
git diff main...HEAD - diff が空(0行)なら「レビュー対象の変更がありません。
/sub-reviewを推奨」と終了
取得すべき追加コンテキスト:
- 変更対象ファイルのリスト(
git diff --stator PR files) - 関連する CLAUDE.md / プロジェクト規約
- 直近の障害履歴(該当領域に関するもの)
Step 1: Tier判定(スコアリング方式)
入力を分析し、以下のシグナルテーブルで該当項目にチェックを入れ、合計スコアでTierを自動判定する。
シグナルテーブル
| カテゴリ | シグナル | 重み | 判定基準 |
| データ層 | DB migration | 5 | ALTER TABLE / CREATE TABLE / マイグレーションファイルの存在 |
| データ層 | データモデル・型定義変更 | 3 | interface/type の変更、Supabase型再生成 |
| データ層 | キャッシュ戦略変更 | 3 | キャッシュ無効化ロジック、TTL変更 |
| 認証・課金 | 認証/認可ロジック変更 | 5 | auth middleware、JWT、RLS、getUserIdFromRequest |
| 認証・課金 | 課金・サブスク変更 | 5 | Stripe連携、billingスキーマ、クレジット消費 |
| 認証・課金 | RLSポリシー変更 | 4 | CREATE/ALTER POLICY、service_role制約変更 |
| アーキテクチャ | 公開API契約変更 | 4 | エンドポイント追加/削除、レスポンス型変更 |
| アーキテクチャ | 新規外部依存の導入 | 2 | package.json に新パッケージ追加 |
| アーキテクチャ | アーキテクチャパターン変更 | 4 | SSE→WebSocket移行、新ミドルウェア層など |
| 影響範囲 | 変更ファイル6個以上 | 2 | git diff --stat のファイル数 |
| 影響範囲 | 複数モジュール横断 | 3 | api/ + ui/ + db/ など3層以上に跨る |
| 影響範囲 | データ経路3本以上 | 3 | SSE + REST + polling + confirmation等 |
| 運用リスク | ロールバック困難 | 5 | 破壊的migration、データ変換、外部API契約変更 |
| 運用リスク | 過去障害領域 | 3 | git log / Issue履歴で障害が記録された領域 |
| 運用リスク | フィーチャーフラグなし | 2 | 本番直接反映(段階的ロールアウト不可) |
Tier閾値
| Tier | スコア | エージェント数 | 想定ケース |
| A: 要塞 | ≥ 12 | 5体(Codex×2 + Claude×3) | DB migration + 認証 + 課金が絡む変更 |
| B: 重要 | ≥ 6 | 3体(Codex×1 + Claude×2) | API変更 or アーキテクチャ変更 |
| C: 標準 | < 6 | 2体(Codex×1 + Claude×1) | 既存パターン踏襲の機能追加 |
Tier判定チェックリスト
- [ ] DB migration が含まれるか(ALTER/CREATE TABLE、マイグレーションファイル)
- [ ] データモデル・型定義の変更があるか
- [ ] キャッシュ戦略の変更があるか
- [ ] 認証/認可ロジックの変更があるか
- [ ] 課金・サブスクリプション関連の変更があるか
- [ ] RLSポリシーの変更があるか
- [ ] 公開API契約(型・レスポンス形式)の変更があるか
- [ ] 新規外部依存の導入があるか
- [ ] アーキテクチャパターンの変更があるか
- [ ] 変更ファイルが6個以上か
- [ ] 複数モジュール(3層以上)を横断するか
- [ ] データ経路が3本以上影響を受けるか
- [ ] ロールバックが困難か
- [ ] 過去に障害が発生した領域か
- [ ] フィーチャーフラグなしの本番直接反映かスコアシミュレーション(代表ケース)
| ケース | 該当シグナル | スコア | Tier |
| 新画面追加(既存パターン踏襲) | なし or ファイル6+のみ | 0〜2 | C |
| CRUDエンドポイント1本追加 | API契約(4)+ファイル6+(2) | 6 | B |
| DB migration + 新API | DB(5)+API(4)+ファイル6+(2) | 11 | B |
| 認証変更 + RLS + 課金 | 認証(5)+課金(5)+RLS(4) | 14 | A |
| 全面リアーキテクチャ | 多数該当 | 20+ | A |
判定手順
- 入力(Issue/PR/計画)からシグナルを自動スキャン
- 該当シグナルの重みを合算
- スコア0の場合: fortress-reviewは不要。
/sub-reviewを推奨して終了 - Tier閾値と照合 →
--tierオプションで手動上書き可能 - 判定結果をユーザーに提示(
--dry-runの場合はここで終了)
【Tier判定結果】
対象: Issue #XXX — {タイトル}
スコア: {N}点(内訳: データ層{N} + 認証課金{N} + アーキ{N} + 影響範囲{N} + 運用{N})
Tier: {A/B/C}
エージェント構成: {Codex×N + Claude×N}Step 2: Round 1 — 並列独立レビュー
Tier別エージェント構成
| Tier | Codex | Claude Sub | 合計 | 起動条件 |
| A | Codex-A(影響範囲)+ Codex-B(テスト網羅) | Sub1(要件整合)+ Sub2(障害シナリオ)+ Sub3(データ整合+セキュリティ) | 5 | スコア ≥ Tier A閾値 |
| B | Codex-A(影響範囲+テスト統合) | Sub1(要件整合)+ Sub2(障害シナリオ+セキュリティ統合) | 3 | スコア ≥ Tier B閾値 |
| C | Codex-A(影響範囲+テスト+セキュリティ統合) | Sub1(要件整合+障害シナリオ統合) | 2 | それ以下 |
エージェント起動ルール
- 全エージェントを1メッセージで並列起動する(直列禁止)
- Claude SubAgent: Agent ツール(subagent_type: general-purpose)で起動。差分埋め込み方式 — diffをプロンプトに直接含め、ファイル探索させない
- Codexエージェント: Agent ツール(subagent_type: general-purpose)で起動し、サブエージェント内でBashから
codex exec --cdを実行。diff はCodex自身が取得(Windows 8191文字制限回避) - 各エージェントのプロンプトテンプレートは
references/agent-prompts.mdを参照 - エージェントに 「あなたは絶対に失敗を許されないプロジェクトの最終責任者です」 と明記
プロンプト組み立て手順(CRITICAL: 省略禁止)
テンプレートのプレースホルダを以下の順序で置換してからエージェントを起動する:
references/agent-prompts.mdの「共通ヘッダー」セクション全文をコピー- 各テンプレートの
{共通ヘッダー}を上記テキストで置換 {プロジェクトディレクトリ}→git rev-parse --show-toplevelの結果{diffベース}→ Step 0で決定したdiffベース(staging...HEAD/main...HEAD/ 指定commit){Issue本文 or 仕様テキスト}→ Step 0で取得したIssue body{git diff結果 or 計画テキスト}→ Step 0で取得したdiff(500行超はファイル単位で分割し、各SubAgentには担当観点に関連するファイルのdiffのみを渡す。diffStatは全SubAgentに共通で渡す){diffStatの結果}→git diff --statの出力
Codex未インストール時のフォールバック
Codex CLIが利用不可の場合、Codexエージェント(CA, CB, CR2)をClaude SubAgent(探索許可) で代替する。この場合のみ Read/Grep/Glob ツールの使用を許可し、影響範囲分析をClaude SubAgentに委任する。
--no-codex 指定時の代替構成
| Tier | 通常構成 | --no-codex時 |
| A | Codex×2 + Claude×3 = 5 | Claude×3 + Claude探索許可×1 = 4 |
| B | Codex×1 + Claude×2 = 3 | Claude×2 + Claude探索許可×1 = 3 |
| C | Codex×1 + Claude×1 = 2 | Claude×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 自動集約
- 全エージェントの出力から指摘を抽出
- 同一指摘の統合(複数エージェントが検出 → クロスバリデーション済み マーク)
- 深刻度でソート(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-R2 | R1指摘の修正案生成 + 修正が他に影響しないことの検証 | CRITICAL/HIGH指摘が1件以上 |
| Claude-R2 | R1で矛盾する指摘の裁定 + 残存リスク評価 | 矛盾指摘が存在する場合のみ |
Round 2 の入力
- Round 1 の全指摘(トリアージ済み)
- Human Gate での判断コメント
- 対象ファイルの現在の全文(diffだけでなく)
Step 5: 最終判定
Go / No-Go 基準
| 判定 | 条件 | 次のアクション |
| Go | CRITICAL=0, HIGH=0(全て解決済み) | 実装開始を許可 |
| 条件付きGo | CRITICAL=0, HIGH≤2(対策明記済み) | 対策を実装計画に追記して進行 |
| No-Go | CRITICAL≥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-checklist | Step 1(Tier判定後) | Claude-Sub1がPhase 1-9を内部参照 |
sub-review | fortress-review 後の実装diff確認 | 別途 /sub-review で起動 |
issue-planner | fortress-review 前の計画作成 | 計画コメントを入力として受け取る |
issue-autopilot-batch | Tier B以上の場合にfortress-reviewを挟む | autopilotフローに組み込み可能 |
将来の統合構想
issue-planner(計画作成)
↓
fortress-review(計画の多角検証) ← NEW
↓
issue-autopilot-batch(実装)
↓
sub-review(実装diffレビュー)
↓
e2e-test(動作検証)オプション引数
| 引数 | 説明 | 例 |
--tier A | Tier を手動指定(自動判定を上書き) | /fortress-review #123 --tier A |
--no-codex | Codexエージェントをスキップ | /fortress-review #123 --no-codex |
--skip-r2 | Round 2 を自動スキップ | /fortress-review #123 --skip-r2 |
--full | エージェント数をTier A相当(5体)に強制。Tierラベルは自動判定 or --tier の値 | /fortress-review #123 --full |
--dry-run | Tier判定のみ実行(エージェント起動なし) | /fortress-review #123 --dry-run |
--auto-gate | Human 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-07 | Codex監査対応(25件) | CRITICAL: プロンプト組み立て手順追加、Codex実行方式明確化。HIGH: スコア0早期終了、引数なしフォールバック、--no-codex代替構成、Codex未インストールフォールバック。MEDIUM: ID不一致修正、チェックリスト追加、スコアシミュレーション、全PASS時ショートカット、--full/--auto-gate定義、Codexタイムアウト代替、sub-review参照修正 |
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
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.

