document structure
文書全体の構成
本文書の位置づけ: Issue #143 組織アーキテクチャ要件定義書の別紙。組織構造・Division定義・UC定義は #143 本体に記載済み。本文書はPJ推進にフォーカスした運用・実行レベルのガイドである。#143を参照せずとも本文書単体で運用可能な自己完結型とする。移行計画は Issue #154 で別管理。
9タブ構成
| タブ | 名称 | 内容 | 対象読者 |
| T1 | 全体構成 | 5大分類の全体マップ・用語・前提知識の整理 | 全員 |
| T2 | 立ち上げ・要件定義 | 工程1〜5:発見→調査→要求整理→要件定義→委託 | CEO / VDU / PMO |
| T3 | 設計 | 工程6:アーキテクチャ設計・IF定義 | VDU / PJM / architect |
| T4 | 製造 | 工程7:コード実装 | PJM / coder |
| T5 | テスト | 工程8〜9:テスト・受入レビュー | PJM / tester / VDU |
| T6 | 移行 | 工程10〜12:リリース・記録・解散 | PJM / PMO / CEO |
| T7 | PJM運用ガイド | PJM生成・管理・Division間連携・エスカレーション | PMO / PJM / VDU |
| T8 | 品質ゲート | 各工程の通過条件・CEO承認ゲート・OA監査基準 | OA / VDU / PJM |
| T9 | 推進ナレッジ | 案件ごとの知見蓄積・テンプレート・パターン集 | 全員(随時追記) |
process map
5大分類 × 12工程 全体マップ
立ち上げ・要件定義
1発見
→
2調査
→
3要求整理
→
4要件定義
→
5委託
各大分類の概要
立ち上げ・要件定義(工程1〜5)
課題発見から要件確定・委託までの上流工程。VDU主管。CEO承認ゲート2箇所(工程3・4)。
設計(工程6)
要件を技術設計に落とし込む。PJMがarchitectに委譲。VDUレビュー+OA監査。
製造(工程7)
設計に基づくコード実装。PJMがcoderに委譲。ruff・py_compileエラーゼロ必須。
テスト(工程8〜9)
品質保証と受入確認。テスト必須カバレッジ6項目。VDU受入レビュー。
移行(工程10〜12)
リリースから完了・知見蓄積まで。CEO承認ゲート(リリース時)。PJM消滅。
フェーズスキップ規則: 軽微な修正→工程6〜11のみ。中程度→工程1〜11。大規模→工程1〜12全工程。スキップ判断はVDUが行い、PMOが追認する。
prerequisites
前提:組織構造サマリ
本文書が前提とする組織構造を要約する(詳細は #143 本体を参照)。
四層構造
| 層 | 役割 | 常駐/都度 |
| CEO | 最終意思決定・MVV定義・社外折衝 | — |
| IF層 | CEO専属窓口・要求言語化・ルーティング | 常駐 |
| M層 | Division単位の責任者(判断と承認) | 常駐 |
| W層 | スキルプール(実作業AI) | 都度起動→消滅 |
Division一覧
| 線 | Division | 略称 | 責務 |
| 1線(事業) | Value Delivery Unit | VDU | 事業/プロダクトの成果責任。要求発見→要件定義→受入 |
| 2線(管理) | Business Admin | BA | 経理・法務・調達 |
| Project Management Office | PMO | PJ推進・重複チェック・ナレッジ・資産管理 |
| Human & AI Resources | H&A | 採用・育成・評価・エージェント定義 |
| 3線(監査) | Operational Audit | OA | 業務プロセス・品質・横展開監査 |
| System Audit | SA | 死活監視・リソース管理・セキュリティ |
PJ関連ロール
VDU 事業オーナー
PJの起点(発見〜要件定義)と終点(受入レビュー)を担う。技術的な成果物の品質に最終責任を持つ。
PMO PJ管理統括
PJ重複チェック、PJM生成・管理、ナレッジ蓄積、リソース配分の最適化。複数PJの優先度調整。
PJM プロジェクトマネージャー
PMOが生成する有期ロール。起案→工程管理→完了で消滅。W層を起動し各工程を実行管理する。
OA 独立監査
VDUレビューとは別の第三者監査。三線防御の原則に基づき、成果物の品質・プロセス遵守を独立検証。
glossary
用語定義
| 用語 | 定義 |
| PJ | 課題解決のために開始され、完了で終了する有期の活動単位 |
| PJM | PJ単位で生成される有期のプロジェクトマネージャー。PMOが生成し、工程管理を担い、PJ完了で消滅 |
| CEO承認ゲート | IF層経由でCEOの承認を取得する必須チェックポイント。スキップ不可 |
| OA監査 | VDUレビューとは独立した第三者監査。三線防御の原則に基づく |
| NG差し戻し | 品質基準未達時にPJMへ修正指示とともに該当工程に戻す処理 |
| 三線防御 | 1線(事業)・2線(管理)・3線(監査)の分離原則。同一主体が作成と監査を兼ねない |
| CONSULT | M層がIF層経由でCEOに相談するステータス。判断に必要な情報が不足している場合に使用 |
目的
PJの起点となる課題・機会を発見し、技術的な実現可能性を調査した上で、要求をMECE分解し要件に落とし込む。最終的にPMOへPJ化を委託し、PJMを生成するまでがこのフェーズの責務。CEO承認ゲートを2箇所設け、スコープ・コストの合意を取得することで、後工程での手戻りを最小化する。
1 発見
- 概要
- 課題・機会を検出する。PJの起点。
- トリガー
- CEO指示 / VDU自律ループ / SA異常検知 / 日次経営会議
- 担当
- VDU(課題の言語化・初期評価)
- 成果物
- 課題・機会の記述
- 異常系
- 既存PJとの重複 → PMOが検出・マージ判断 or 却下
- 次工程条件
- 課題が明確に記述されていること
2 調査
- 概要
- 技術的な実現可能性と既存資産の調査。
- 担当
- VDU → W層(researcher)に委譲
- 成果物
- 技術調査レポート(実現可能性・既存資産・制約)
- 異常系
- 実現不可能 → CEO報告・代替案検討 or 中止
- 次工程条件
- 技術的に実現可能であることが確認されていること
3 要求整理
- 概要
- 要求をMECE分解し、優先順位を付ける。
- 担当
- VDU
- 成果物
- 要求一覧(MECE分解・優先順位付き)
- 異常系
- 要求不明確 → CONSULT → CEO明確化
- 次工程条件
- CEOが要求範囲を承認していること
CEO承認ゲート:要求範囲の合意
4 要件定義
- 概要
- 機能・非機能・制約を定義する。
- 担当
- VDU → W層(architect)に委譲
- 成果物
- 要件定義書(機能・非機能・制約・コスト見積)
- 異常系
- 要件矛盾 → 工程3に戻る
- 次工程条件
- CEOが要件を最終承認していること
CEO承認ゲート:要件の最終承認(コスト・スコープ合意)
5 委託
- 概要
- VDUがPMOにPJ化を依頼し、PMOがPJMを生成する。
- フロー
- VDU → PMO(要件定義書を添付) → PMO(重複チェック・リソース確認) → PJM生成 → 工程計画策定
- 成果物
- PJM CLAUDE.md、工程計画
- 異常系
- リソース不足 → H&Aが優先度調整 → CEO報告
- 次工程条件
- PJMが生成され、工程計画が策定されていること
この大分類の成果物
| 工程 | 成果物 |
| 工程1: 発見 | 課題・機会の記述 |
| 工程2: 調査 | 技術調査レポート |
| 工程3: 要求整理 | 要求一覧(MECE分解・優先順位付き) |
| 工程4: 要件定義 | 要件定義書(機能・非機能・制約・コスト見積) |
| 工程5: 委託 | PJM生成、工程計画 |
品質基準
CEO承認ゲート2箇所を通過すること:
・工程3: 要求範囲の合意
・工程4: 要件の最終承認(コスト・スコープ合意)
論点・注意事項
- 要求の曖昧さ排除: MECE分解の徹底。曖昧な表現はCONSULTでCEOに明確化を依頼する
- 既存PJとの重複検知: PMOの棚卸責務。工程5で重複チェックを必ず実施する
- 実現可能性の早期判断: 工程2での技術調査を省略しない。不可能な要件は早期に除外する
- CEO承認の粒度: 工程3は「何を作るか」の合意、工程4は「どこまで作るか+コスト」の合意
Division間連携
| 連携パターン | 工程 | 内容 |
| VDU → W層(researcher) |
工程2 |
技術調査を委譲。調査結果を受け取り実現可能性を判断 |
| VDU → W層(architect) |
工程4 |
要件定義を委譲。機能・非機能・制約の定義を作成 |
| VDU → CEO |
工程3・4 |
CEO承認ゲート。IF層経由で要求範囲・要件の最終承認を取得 |
| VDU → PMO |
工程5 |
PJ化を依頼。要件定義書を添付してPJM生成を要求 |
| PMO → H&A |
工程5 |
W層リソースの確認・割当を依頼 |
| SA → VDU |
工程1 |
SA異常検知をトリガーとした課題発見の連携 |
よくある失敗パターンと対策
| 失敗パターン | 原因 | 対策 | 関連工程 |
| 要件の曖昧さが後工程で手戻りを引き起こす |
MECE分解が不十分なまま工程4に進む |
工程3でMECE分解を徹底。曖昧な表現はCONSULTでCEOに明確化を依頼 |
工程3 |
| 既存PJとの重複に気づかずPJ化 |
PMOの棚卸チェック未実施 |
工程5で必ずPMO重複チェックを実施。Issue一覧との突合 |
工程5 |
| 実現不可能な要件がそのまま進行 |
工程2の技術調査をスキップまたは形骸化 |
工程2ではresearcherに実機検証を含む調査を必ず委譲。「できると思う」は不可 |
工程2 |
| CEO承認を取らずに設計に着手 |
承認ゲートの存在を見落とし |
Issue #102教訓。工程3・4のCEO承認ゲートは絶対にスキップしない |
工程3・4 |
| 要件定義書にコスト見積が欠落 |
機能要件のみに注力し非機能・コストを後回し |
工程4の成果物チェックリストにコスト見積を含める。CEO承認の判断材料 |
工程4 |
目的
要件定義書をもとに、アーキテクチャ設計・IF定義・ファイル構成・データモデルを策定する。セキュリティ・バイ・デザインの原則に従い、API設計(リソース所属検証)・データモデル(Int型金額)・UI設計(二重送信防止)を設計段階で組み込む。設計書はHTML形式で出力し、Cloudflare Pagesにデプロイして共有する。
6 設計
- 概要
- アーキテクチャ設計・IF定義・ファイル構成を策定する。
- 担当
- PJM → W層(architect)に委譲
- 入力
- 要件定義書(工程4成果物)、工程計画(工程5成果物)
- 成果物
- 設計書HTML(architect出力)— アーキテクチャ設計・IF定義・ファイル構成
- 異常系
-
・設計方針対立 → VDUが技術裁定
・OA監査NG → 修正指示付きで差し戻し
・要件不備発見 → 工程3/4に戻る
- PJMチェック
- 設計が要件定義書の全項目をカバーしているか
成果物
| 成果物 | 形式 | 内容 |
| 設計書 | HTML(Markdown不可) | アーキテクチャ設計・IF定義・ファイル構成・データモデル |
品質基準
| ゲート | 内容 | 実行者 |
| VDUレビュー | reviewer 25項目チェックリスト(セキュリティ5項目含む) | VDU |
| OA監査 | プロセス遵守・セキュリティ・横展開チェック | OA |
論点・注意事項
- 設計書はHTML形式で出力: Markdown不可。Cloudflare Pagesにデプロイして公開URLを共有する
- セキュリティ・バイ・デザイン: API設計(リソース所属検証)・データモデル(Int型金額)・UI設計(二重送信防止)を設計段階で組み込む
- 設計方針対立時のエスカレーション: PJM → VDU(技術裁定) → CEO(事業判断が必要な場合)
- 非機能要件の設計反映: パフォーマンス(ページネーション・N+1防止)・スケーラビリティを設計書に明記する
よくある失敗パターンと対策
| 失敗パターン | 原因 | 対策 |
| セキュリティが後付けになる |
機能設計のみに注力し、セキュリティ観点を後回し |
セキュリティ・バイ・デザイン: API設計時にリソース所属検証、データモデル設計時にInt型金額、UI設計時に二重送信防止を組み込む |
| 設計書がMarkdownで出力される |
W層(architect)のデフォルト挙動 |
設計書は必ずHTML形式。Cloudflare Pagesにデプロイして公開URLを共有 |
| 要件定義書の全項目をカバーしていない設計 |
PJMチェックの形骸化 |
PJMが要件定義書と設計書の項目を1対1で突合。漏れがあれば差し戻し |
| N+1問題やページネーション未設計 |
機能要件のみで非機能要件を無視 |
設計書にパフォーマンス設計セクションを必須化。一覧系APIは必ずページネーション設計を含める |
Division間連携
| 連携パターン | 内容 |
| PJM → W層(architect) |
設計を委譲。要件定義書と工程計画を入力として渡す |
| PJM → VDU |
設計方針対立時にVDUへ技術裁定を依頼 |
| VDU → W層(reviewer) |
設計書の25項目チェックリストによるレビュー |
| OA |
独立第三者監査。プロセス遵守・セキュリティ・横展開チェック |
目的
設計書に基づいてコードを実装し、単体テストを作成する。ruffフォーマット・py_compile構文チェックをエラーゼロで通過させ、品質の担保されたコードをコミットする。実装品質ルール(整数演算・リソース所属検証・fetchエラーハンドリング・二重送信防止)を遵守し、過去のインシデント(danketsu-app教訓)を踏まえた安全な実装を行う。
7 実装
- 概要
- 設計書に基づいてコードを実装する。
- 担当
- PJM → W層(coder)に委譲
- 入力
- 設計書HTML(工程6成果物)
- 成果物
- 実装コード、単体テスト
- 異常系
-
・実装困難 → 工程6に戻る(設計見直し)
・構文エラー → 自己修正ループ(最大3回)
・3回失敗 → PJMにエスカレーション
- PJMチェック
- コミットが意味のある単位か、機密ファイル混入なし
成果物
| 成果物 | 品質条件 |
| 実装コード | ruffフォーマット通過・py_compileエラーゼロ |
| 単体テスト | 正常系・異常系のテストケース |
品質基準
| チェック | ツール | 通過条件 |
| フォーマットチェック | ruff | エラーゼロ |
| 構文チェック | py_compile | エラーゼロ |
| VDUレビュー | 25項目チェックリスト | 全項目OK |
| OA監査 | 独立第三者監査 | 重大NG無し |
実装品質ルール(必須)
金額・数値計算
- 金額の按分は整数演算のみ:
Math.floor(amount / n) + 余り(amount % n)を先頭に加算
- 除数が0になりうる箇所は事前にガード(空配列、フィルタ後の0件等)
API実装
- リソース所属検証: ネストAPIでは子が親に属するか検証してからupdate/delete
- 入力バリデーション: APIハンドラの先頭で型・範囲・必須チェック
- エラーレスポンス:
{ error: "日本語メッセージ" }。内部情報を含めない
フロントエンド
- fetchエラーハンドリング:
res.okチェック + .catch()
- 二重送信防止:
disabled={submitting}
- フォームページ: 戻るリンク・キャンセルボタン・エラーフィードバック必須
- レスポンシブ: 390px幅で表示崩れなし
論点・注意事項
- コミットルール: 意味のある単位で英語メッセージ。機密ファイル(.env, credentials)混入禁止
- エラー時リカバリ: git stash退避 → クリーンツリー確認 → リトライ
- worktree活用: 複数coder並行時はgit worktreeでファイル競合を回避
- 自己修正ループ: py_compile → pytest → 失敗時は自力修正(最大3回) → 超過でエスカレーション
よくある失敗パターンと対策
| 失敗パターン | 原因 | 対策 |
| 金額計算で1円の消失 |
Float除算の浮動小数点誤差 |
danketsu-app教訓。整数演算のみ使用: Math.floor(amount / n) + 余り加算 |
| ネストAPIでクロスリソースアクセス可能 |
リソース所属検証の欠落 |
findFirst({ where: { id: childId, parentId: id } }) で必ず検証 |
| fetch失敗時に画面クラッシュ |
res.okチェック漏れ |
fetchエラーハンドリング: res.okチェック + .catch() を必須化 |
| テスト未実施で完了報告 |
LLMが推測で「テスト全PASS」と報告 |
Issue #102教訓。py_compile / pytest を実際に実行し、出力を引用して報告 |
| 機密ファイルのコミット混入 |
git add .で全ファイルをステージング |
コミット前に git diff --staged で .env / credentials の混入をチェック |
Division間連携
| 連携パターン | 内容 |
| PJM → W層(coder) |
実装を委譲。設計書HTMLを入力として渡す |
| W層(coder) → PJM |
実装困難時のエスカレーション。自己修正ループ3回失敗時に報告 |
| PJM → W層(architect) |
設計との乖離が発覚した場合、工程6に戻して設計修正を依頼 |
| PJM(コミット管理) |
W層は単独pushしない。PJMがdiff確認後にpush判断 |
目的
実装されたコードの品質を多層的に検証する。テスト必須カバレッジ6カテゴリ(正常系・異常系・境界値・認可・レスポンシブ・クリーンアップ)を全て網羅し、VDU受入レビュー(25項目チェックリスト)で事業価値・品質の観点から最終確認を行う。W層の報告を鵜呑みにせず、M層レビュー原則に基づいた独自検証を実施する。
8 テスト
- 概要
- テストケースの作成・実行。
- 担当
- PJM → W層(tester)に委譲
- 入力
- 実装コード(工程7成果物)、設計書(工程6成果物)
- 成果物
- テスト結果レポート(正常系・異常系・境界値・認可・レスポンシブ・クリーンアップ)
- 異常系
- テスト失敗 → 工程7に戻る(coder修正)
- PJMチェック
- テスト網羅率が基準(6カテゴリ全網羅)を満たしているか
9 受入(VDU Rv)
- 概要
- VDUが成果物を受入レビューする。
- 担当
- VDU(reviewer 25項目チェックリスト使用)
- 入力
- 実装コード + テスト結果レポート
- 成果物
- レビュー結果(OK / NG + 修正指示)
- 異常系
- VDU差し戻し → PJMが修正指示 → 該当工程(6/7/8)に戻る
CEO承認ゲート:重要マイルストーン・外部影響あり(条件付き発動)
テスト必須カバレッジ(6カテゴリ)
| カテゴリ | 内容 | 例 |
| 正常系 | 期待される入力で期待される出力が返るか | ユーザー作成→200 OK |
| 異常系 | 不正入力・エラー状態で適切にハンドリングされるか | 必須項目未入力→422 |
| 境界値 | 上限・下限・空・最大長の入力 | 金額0円、文字列上限 |
| 認可 | 他ユーザー・他リソースへの不正アクセスが拒否されるか | 別イベントの明細操作→403 |
| レスポンシブ | モバイル表示でレイアウトが崩れないか | 390px幅でフォーム操作可能 |
| クリーンアップ | テストデータが後片付けされるか | テスト後にDBが汚染されない |
品質基準
| ゲート | 内容 | 実行者 |
| テスト網羅 | 6カテゴリ全てに最低1ケース | PJM(確認) |
| VDU受入レビュー | 25項目チェックリストOK | VDU |
論点・注意事項
- ハッピーパスのみにならないこと: danketsu-app教訓。異常系・境界値・認可テストを必ず含める
- 外部連携は実際に動かして検証: 「テスト全PASS」の推測報告は禁止。ツール実行結果を引用すること
- 三線防御: VDUレビュー(1線) → OA監査(3線) → CEO承認(最終)
- NG差し戻し時の修正指示: 具体的な修正箇所・期待する結果を明記する。「修正してください」のみは不可
よくある失敗パターンと対策
| 失敗パターン | 原因 | 対策 |
| ハッピーパスのみのテスト |
正常系だけテストして異常系・境界値を無視 |
danketsu-app教訓。テスト必須カバレッジ6カテゴリ(正常系・異常系・境界値・認可・レスポンシブ・クリーンアップ)全てに最低1ケース |
| 外部連携の検証省略 |
「動くはず」の推測で完了報告 |
外部API・サービス連携は実際に呼び出して結果を確認してから報告。ツール実行結果を引用 |
| VDU受入レビューの形骸化 |
W層の「テスト全PASS」報告を鵜呑みにする |
M層レビュー原則: W層の報告を無条件に信頼しない。25項目チェックリストで独自検証 |
| 認可テストの欠落 |
クロスリソースアクセスのテストケースを作成しない |
別ユーザー・別リソースへの不正アクセスが拒否されるテストケースを必須化 |
Division間連携
| 連携パターン | 工程 | 内容 |
| PJM → W層(tester) |
工程8 |
テスト作成・実行を委譲。実装コードと設計書を入力として渡す |
| PJM → W層(coder) |
工程8 |
テスト失敗時、coderに修正を依頼し工程7に戻す |
| PJM → VDU |
工程9 |
成果物をVDUに提出。VDUが25項目チェックリストでレビュー |
| VDU → OA |
工程9後 |
VDU受入完了をトリガーにOAが独立監査を開始(三線防御) |
| VDU → CEO |
工程9 |
重要マイルストーン・外部影響ありの場合、IF層経由でCEO承認を取得 |
目的
VDU受入OKの成果物を本番環境にデプロイし、PJの知見・教訓を推進ナレッジ(T9)に記録する。全成果物の完全性を確認した上でPJMを消滅させ、CEOに完了報告を行う。リリース時のCEO承認ゲート(main直接push・破壊的変更)を遵守し、ロールバック手順を事前に策定することで安全なデプロイを実現する。
10 リリース
- 概要
- 本番デプロイを実行する。
- 担当
- PJM → W層(coder)に委譲
- 入力
- VDU受入OK済みの実装コード
- 成果物
- デプロイ完了報告
- 異常系
- デプロイ失敗 → ロールバック判断
- PJMチェック
- M層がdiff確認後にpush判断
CEO承認ゲート:main直接push・破壊的変更・外部影響
11 記録
- 概要
- PJの知見・教訓を記録する。推進ナレッジ(T9)に蓄積。
- 担当
- PJM → W層(docs)に委譲
- 入力
- PJ全工程の成果物・差し戻し履歴
- 成果物
- PJ記録(ナレッジDB登録用)— T9のテンプレートに準拠
- 異常系
- 記録不備 → OAが横展開チェック時に発見
- PJMチェック
- 記録が推進ナレッジテンプレート(T9参照)に準拠しているか
12 解散
- 概要
- PJ完了確認、PJMを消滅させ、CEOに完了報告。
- フロー
-
・PMO: PJ完了確認 → PJMを消滅 → ナレッジをT9に登録
・IF層: CEO完了報告
- 成果物
- 完了報告
- 異常系
- 完了後に問題発見 → 新PJ(工程1から新規起票)
成果物一覧
| 工程 | 成果物 |
| 工程10: リリース | リリース済みシステム、デプロイ完了報告 |
| 工程11: 記録 | ナレッジ記録(T9テンプレート準拠) |
| 工程12: 解散 | 完了報告 |
品質基準
CEO承認ゲート(リリース時): main直接push・破壊的変更・外部影響がある場合、CEO承認必須。force pushは原則禁止(CEO明示的承認必須)。
ナレッジ記録の完全性: T9テンプレートの全項目が記入されていること。
論点・注意事項
- リリース前のCEO承認フロー: force push・main直接pushは禁止。W層単独pushも禁止(M層が判断)
- ロールバック方針の事前策定: デプロイ前にロールバック手順を確認しておく
- 知見の構造化: 随時追記可能な形式(T9のテンプレート)で記録する
- PJM消滅のタイミング: PMOが全成果物・ナレッジ記録の完全性を確認してから消滅させる
よくある失敗パターンと対策
| 失敗パターン | 原因 | 対策 |
| force pushによるコード消失 |
コンフリクト解消時にforce pushを実行 |
force push原則禁止。CEO明示的承認必須。コンフリクトはgit pull --rebaseで解消 |
| ナレッジ記録の未作成 |
リリース完了で達成感から記録を省略 |
工程11をスキップ不可。PMOが完了チェックリストで記録の有無を確認 |
| ロールバック手順の未策定 |
デプロイ成功前提で進行 |
工程10開始前にロールバック手順を確認。失敗時の復旧手順を事前にPJMが策定 |
| PJM消滅後に問題発覚 |
PMOの完了確認が不十分 |
PMOが全成果物・ナレッジ記録の完全性を確認してからPJMを消滅。問題発覚時は新PJとして工程1から起票 |
Division間連携
| 連携パターン | 工程 | 内容 |
| PJM → W層(coder) |
工程10 |
デプロイを委譲。M層がdiff確認後にpush判断 |
| PJM → CEO |
工程10 |
main直接push・破壊的変更の場合、PMO→IF層経由でCEO承認 |
| SA → PJM |
工程10 |
デプロイ失敗をSAが検知し、PJMに通知。ロールバック判断を支援 |
| PJM → W層(docs) |
工程11 |
ナレッジ記録の作成を委譲。T9テンプレート準拠 |
| PMO |
工程12 |
PJ完了確認、PJMの消滅、ナレッジのT9登録。全成果物の完全性チェック |
| IF層 → CEO |
工程12 |
CEO完了報告。PJ全体の結果サマリを提出 |
pjm lifecycle
PJMのライフサイクル
PJMは有期ロール。PMOがPJ単位で生成し、PJ完了時に消滅する。PJMは独自の判断権を持つが、VDU(技術裁定)とPMO(リソース管理)の指示には従う。
生成〜消滅フロー
| ステップ | 実行者 | アクション | 成果物 |
| 1. 生成要求 | VDU | 工程5(委託)でPMOにPJ化を依頼 | 要件定義書(工程4の成果物) |
| 2. 重複チェック | PMO | 既存PJとの重複・類似を確認 | 重複チェック結果 |
| 3. PJM生成 | PMO | PJMインスタンスを生成、工程計画を策定 | PJM CLAUDE.md、工程計画 |
| 4. 工程実行 | PJM | 工程6〜11をW層に委譲しながら管理 | 各工程の成果物 |
| 5. 完了報告 | PJM | 全工程完了をPMOに報告 | 完了報告書 |
| 6. 消滅 | PMO | 完了確認後、PJMを消滅させる | ナレッジ記録 |
division coordination
Division間連携ルール
| ID | 連携パターン | トリガー | フロー |
| UC-CROSS-001 |
VDU→PMO |
工程5(委託) |
VDUが要件定義書をPMOに渡す→PMOがPJM生成→PJMが工程6〜11を管理 |
| UC-CROSS-002 |
VDU→OA |
工程9(受入)完了後 |
VDUの受入完了をトリガーにOAが独立監査を開始。三線防御の連携 |
| UC-CROSS-003 |
SA→VDU |
SA異常検知 |
SAが検知した異常をVDUに通知→VDUがW層に修正を委譲→修正PJ起票 |
| UC-CROSS-004 |
SA→CEO |
リソース逼迫 |
SA閾値超過→IF層経由でCEO→PMOがPJ優先度調整 |
| UC-CROSS-005 |
PJM→VDU |
設計方針対立 |
PJM内で技術判断が分かれた場合、VDUに技術裁定を依頼 |
通信ルール: IF層がM層の窓口。IF層がM層に指示を出し、結果を受け取る。M層間(VDU→PMO、OA←VDU等)は自律連携が許可されている。W層からM層への報告はPJM経由。
escalation
エスカレーション判断基準
| 条件 | 起点 | 対象 | 対応 | 判断根拠 |
| 技術実現不可 |
VDU |
CEO |
代替案を提示し、CEO判断を仰ぐ |
researcher調査で不可能と判明 |
| 要求不明確 |
VDU |
CEO |
CONSULT→明確化してから工程3再開 |
MECE分解時に矛盾・欠落を検出 |
| リソース不足 |
H&A |
CEO |
PJ優先度調整・新エージェント生成 |
CLI同時起動上限超過 |
| 設計方針対立 |
PJM |
VDU |
VDUが技術裁定(最終判断) |
architect間で方針が分岐 |
| レート制限 |
SA |
システム |
exponential backoff(30s→60s→120s)、max3回 |
API応答429/529 |
| プロセス異常 |
SA |
CEO |
自動復旧試行→失敗時にCEO報告 |
プロセス停止・メモリ超過 |
| OA監査NG(重大) |
OA |
CEO |
リリース差し止め→CEO判断 |
セキュリティ脆弱性・データ破損リスク |
ng-loop
NG差し戻しフロー
品質基準未達時の差し戻しパターン。無限ループ防止のため、同一工程への差し戻しは最大3回。3回超過時はVDUにエスカレーション。
| 検知者 | NG種別 | 差し戻し先 | 修正指示要件 | 上限 |
| VDU(工程9) |
受入NG |
工程6/7/8(該当箇所に応じる) |
具体的な修正箇所・期待する結果を明記 |
3回 |
| OA |
監査NG |
PJM→該当工程 |
監査項目ID・違反内容・是正要求を明記 |
3回 |
| PJM(工程8) |
テスト失敗 |
工程7(実装) |
失敗テストケース・エラー内容を明記 |
3回 |
| PJM(工程7) |
構文エラー |
工程7(自己修正ループ) |
ruff/py_compileエラー出力を添付 |
3回 |
差し戻し上限超過時: PJMはVDUにエスカレーション。VDUが要件・設計の見直しを含めた判断を行う。根本原因が要件不備の場合は工程3/4に戻る可能性がある。
checklists
工程別チェックリスト
PJM用:工程開始前チェック
- 前工程の成果物が揃っているか
- 前工程の品質ゲートを通過しているか
- 必要なW層のスキルが利用可能か(rate limit等で制約がないか)
- 差し戻しの場合:前回の修正指示が明確に記述されているか
- CEO承認ゲートの対象工程か(対象なら承認済みか確認)
PJM用:工程完了チェック
- 成果物が定義されたフォーマットに準拠しているか
- W層の成果物を自分(PJM)がレビュー済みか(W層報告を鵜呑みにしない)
- コミットメッセージが英語で、意味のある単位か
- 機密ファイル(.env, credentials等)が含まれていないか
- ruff / py_compile がエラーゼロか
- 次工程に渡すべき情報(申し送り)を整理したか
PMO用:PJM生成チェック
- 要件定義書(工程4成果物)が添付されているか
- 既存PJとの重複チェックを実施したか
- PJM CLAUDE.mdが工程計画を含んでいるか
- リソース(CLI同時起動数)に余裕があるか
- フェーズスキップの妥当性を確認したか(軽微/中程度/大規模の判断)
PMO用:PJ完了チェック
- 全工程の成果物が揃っているか
- VDU受入レビューがOKか
- OA監査(対象の場合)がOKか
- ナレッジ記録(工程11成果物)が推進ナレッジテンプレートに準拠しているか
- PJMの消滅処理が完了しているか
quality gates
品質ゲート体系
品質ゲートは5種類。各ゲートは独立しており、該当ゲートを全て通過しないとリリースできない。
1. コミット・プッシュゲート
| チェック項目 | ツール | 通過条件 | 実行タイミング |
| フォーマットチェック | ruff | エラーゼロ | コミット前 |
| 構文チェック | py_compile | エラーゼロ | コミット前 |
| 機密ファイル混入チェック | git diff --staged | .env, credentials, tokens未含 | コミット前 |
| コミットメッセージ | 目視 | 英語、意味のある単位 | コミット時 |
| 差分確認 | git diff --staged | M層がレビュー済み | プッシュ前 |
| 最新取得 | git pull --rebase | リモートと同期済み | プッシュ前 |
禁止事項: force push(CEO承認なしで絶対禁止)、main直接push(CEO承認必須)、W層単独push(M層判断必須)
2. W層成果物ゲート(VDUレビュー)
VDUが reviewer の25項目チェックリストを使用して成果物をレビューする。W層の報告を無条件に信頼しない(M層レビュー原則)。
セキュリティ必須チェック(5項目)
- SQLインジェクション・XSS・コマンドインジェクションの脆弱性がないか
- ネストAPIでクロスリソースアクセスが不可能か(リソース所属検証)
- 認証・認可のバイパスが不可能か
- 機密情報(APIキー、トークン)がハードコードされていないか
- 入力バリデーションが全エンドポイントに適用されているか
金額計算チェック(3項目)
- 金額フィールドがInt型か(Float/Decimal不可)
- 除算で1円の消失が起きないか(整数演算のみ)
- 合計と明細の整合性が保たれるか
エラーハンドリングチェック(3項目)
- fetch失敗時に画面クラッシュしないか(res.okチェック)
- API呼び出しにタイムアウト設定があるか
- ユーザーに適切なエラーメッセージが表示されるか
UI/UXチェック(5項目)
- フォームページに戻るリンク・キャンセルボタンがあるか
- 送信ボタンに二重送信防止(submittingガード)があるか
- エラーフィードバックがユーザーに表示されるか
- モバイル(390px)で表示が崩れないか
- 3箇所以上で使うコンポーネントが共通化されているか
3. OA監査ゲート
VDUレビューとは独立した第三者監査。三線防御の原則に基づき、VDUが見落とした問題を検出する。
| 監査カテゴリ | チェック内容 | NG時の対応 |
| プロセス遵守 | 12工程の手順が正しく踏まれているか | PJMに差し戻し、工程をやり直し |
| 品質基準 | コーディング規約・テスト網羅率が基準を満たしているか | PJMに差し戻し、修正を指示 |
| セキュリティ | OWASP Top 10の脆弱性がないか | リリース差し止め→CEO報告 |
| ドキュメント | ナレッジ記録が完備しているか | 工程11のやり直しを指示 |
| 横展開 | 同種の問題が他のコードベースにないか | 追加PJの起票を提案 |
OA監査NG(重大)の場合: セキュリティ脆弱性・データ破損リスクが検出された場合、OAはリリースを差し止め、IF層経由でCEOに報告する。CEO判断を待つ。
4. CEO承認ゲート
| 工程 | ゲート名 | 発動条件 | 判断内容 | 通信経路 |
| 3 |
要求範囲合意 |
常時(全PJ) |
スコープ・優先度が妥当か |
VDU→IF層→CEO |
| 4 |
要件最終承認 |
コスト大・スコープ変更 |
コスト・スコープのトレードオフ |
VDU→IF層→CEO |
| 9 |
重要マイルストーン |
外部影響・不可逆な変更 |
事業影響の最終確認 |
VDU→IF層→CEO |
| 10 |
リリース承認 |
main直接push・破壊的変更 |
リリース実行のGo/No-Go |
PJM→PMO→IF層→CEO |
CEO承認の省略条件(Phase 3以降で検討): 低リスクPJ(内部ツール改善、ドキュメント更新等)については、実績に基づきVDU判断への委任を段階的に検討する。Phase 1〜2では全ゲートをスキップ不可とする。
5. セキュリティゲート
設計〜実装〜テスト全工程を通じたセキュリティ確保。セキュリティ・バイ・デザインの原則。
| 工程 | セキュリティチェック |
| 工程6: 設計 | API設計(リソース所属検証)・データモデル(Int型金額)・UI設計(二重送信防止) |
| 工程7: 実装 | ORMパラメータバインディング使用・サーバー側バリデーション・機密情報非露出 |
| 工程8: テスト | 認可テスト(クロスリソースアクセス拒否)・境界値テスト |
| 工程9: 受入 | VDU セキュリティ5項目チェック |
| OA監査 | OWASP Top 10 独立検証 |
knowledge base
推進ナレッジ
目的: 案件ごとの知見を蓄積し、後続PJの品質・効率を向上させる。PJ完了時(工程11:記録)にPJMがdocsに作成を委譲し、PMOが管理する。
ナレッジ記録テンプレート
工程11(記録)で作成するナレッジ記録は以下のテンプレートに準拠する。
- PJ概要
- PJ名、Issue番号、開始日〜完了日、スコープの要約
- 工程サマリ
- 各工程の所要時間・差し戻し回数・特記事項
- 技術的判断
- 設計で採用した方針とその理由。却下した代替案とその理由
- 品質指標
- NG差し戻し回数・OA監査指摘件数・テスト結果サマリ
- 問題と対処
- 発生した異常系パターン(T7の番号で参照)と実際の対処内容
- 学び・改善提案
- 次回以降のPJに活かすべき知見。プロセス改善の提案
- 関連資産
- 成果物のファイルパス、設計書URL、関連Issue番号
ナレッジの分類体系
| 分類 | 内容 | 例 |
| 設計パターン |
繰り返し使える設計判断・アーキテクチャパターン |
pydantic-settings の設定管理パターン、エラーハンドリング方針 |
| アンチパターン |
失敗した設計・実装パターンとその理由 |
金額計算でFloat使用→1円消失(danketsu-app教訓) |
| プロセス改善 |
工程の進め方で得た知見・改善案 |
テスト未実施で完了報告→手戻り発生(Issue #102教訓) |
| 外部連携 |
外部API・サービスとの連携で得た知見 |
MS Graph APIのトークン更新タイミング、rate limit挙動 |
| ツール・環境 |
開発ツール・環境に関する知見 |
Claude CLI の同時起動上限、worktreeのマージ注意点 |
蓄積済みナレッジ(初期登録)
過去のPJ・インシデントから得られた知見を初期ナレッジとして登録。
アンチパターン: 金額計算の浮動小数点
出典: danketsu-app レビュー(Issue #143 品質ゲート策定の契機)
問題: 精算計算でFloat除算を使用し、1円の消失が発生
対策: 金額フィールドは必ずInt型。除算は整数演算のみ許可
適用工程: 設計(工程6)・レビュー(工程9)
アンチパターン: ネストAPIのクロスリソースアクセス
出典: danketsu-app レビュー
問題: 別イベントの明細を操作可能だった(リソース所属検証なし)
対策: ネストAPIは子リソースが親に属するか必ず検証する
適用工程: 設計(工程6)・レビュー(工程9)
アンチパターン: テスト未実施の完了報告
出典: Issue #102
問題: 表面的実装→テスト未実施→revert。手戻りコスト大
対策: 外部連携は実際に動かして検証してから完了報告
適用工程: テスト(工程8)・記録(工程11)
アンチパターン: 結果捏造
出典: M層/W層運用で検出
問題: LLMが推測で「テスト全PASS」「ダウンロード成功」等を報告
対策: 実行結果は必ずツール(Bash等)を実際に呼び出して取得。推測で報告禁止
適用工程: 全工程
プロセス改善: 実装前の要件確認
出典: Issue #102
学び: 設計判断を含むタスクは、実装前にCEO承認を取得する
対策: 工程3(要求整理)・工程4(要件定義)のCEO承認ゲートを厳守
適用工程: 要求整理(工程3)・要件定義(工程4)
プロセス改善: Rate limit対策
出典: Issue #102/103
学び: exponential backoff + 再起動をまたぐ永続カウンタで無限ループ防止
対策: Task.retry_count(永続化)、合計上限MAX_RETRY_COUNT=3
適用工程: 全工程(SA監視対象)
ナレッジの運用ルール
| 項目 | ルール |
| 登録タイミング | 工程11(記録)でdocsが作成。PMOがレビュー・登録 |
| 更新タイミング | 同種の問題が再発した場合、PMOが既存ナレッジを更新(重複登録しない) |
| 参照タイミング | 工程5(委託)でPMOがPJM生成時に関連ナレッジを添付。工程6(設計)でarchitectが参照 |
| 保管場所 | 本文書のT9セクション(随時追記)。将来的には構造化データベースへの移行を検討 |
| 廃止判定 | 技術スタック変更等でナレッジが陳腐化した場合、OAの横展開チェック時に廃止提案 |
追記エリア
今後のPJ完了時に、この領域にナレッジカードを追加していく。
分類体系(設計パターン / アンチパターン / プロセス改善 / 外部連携 / ツール・環境)に従い、カードを追加する。
— 以下、PJ完了ごとに追記 —