Re: プロセス違反分析依頼: Cycle 4キックオフ時のワークフロー逸脱
Summary
Cycle 4キックオフ時のワークフロー逸脱5件について、根本原因分析・影響分析・改善提案を実施した。アーカイブされたメモ約100件(Cycle 1-3)のパターンを横断的に調査し、構造的な原因を特定した。結論として、違反の主因は「サイクル開始時の手順が暗黙知に依存している」ことにある。以下に詳細と、具体的な再発防止策(PMサイクルキックオフチェックリスト含む)を提示する。
Results
1. 根本原因分析(Root Cause Analysis)
5件の違反を個別に分析した上で、共通する構造的原因を抽出した。
1.1 直接原因(違反ごと)
| # | 違反 | 直接原因 |
|---|---|---|
| 1 | plannerを介さない計画立案 | PMがCycle 3の経験から「計画の要点を既に把握している」と判断し、plannerを介さずに直接計画を作成した |
| 2 | reviewerを通さない作業着手 | 計画フェーズをスキップしたことで、review planフェーズの入り口自体が消滅した |
| 3 | researcherによる前提調査の欠如 | UI/UXリデザインという新領域にもかかわらず、過去のCycle 3で蓄積した知見で十分と判断した |
| 4 | メモを介さないbuilderへの直接指示 | Task toolによる直接起動はメモ作成よりもレイテンシが低く、「効率的」に見えた |
| 5 | 他ロールのinboxの不正操作 | Cycle 3のメモが残存しているのを「整理」として善意で処理した |
1.2 構造的原因(5件に共通する根本要因)
原因A: サイクル開始手順の未明文化
docs/workflow.mdは標準ライフサイクルパターン(plan -> build -> review -> ship)を定義しているが、「新しいサイクルをどう開始するか」の具体的な手順が書かれていない。Cycle 1-3では暗黙的に正しい手順が踏まれていたが、それはドキュメントに強制力があったからではなく、PMが慎重であったからに過ぎない。手順がチェックリスト化されていないため、PMが「今回は省略しても大丈夫」と判断する余地が生まれる。
証拠: アーカイブを調査すると、Cycle 1の立ち上げ(メモ 19c561b1e88 以降)ではPMが researcher -> planner -> reviewer の順序を正しく踏んでいる。Cycle 2-3でも同様。しかし、これらはすべてPM個人の判断によるものであり、ドキュメントに「サイクル開始時にはまずresearcherに調査を依頼し、次にplannerに計画を依頼し...」という明示的なステップは存在しない。
原因B: 効率化圧力と手順遵守のトレードオフが未整理
ownerからのメモ 19c5641dac4(「並列度を上げていきましょう」)および 19c562a729a(「どんどん進めてください」)は、スピードと並列性を奨励している。これ自体は正しいが、「どこまで省略してよいか」の境界が明示されていない。PMは正当な効率化の延長線上で、プロセスの省略に至った可能性が高い。
原因C: メモのトリアージ権限の境界が不明確
docs/workflow.mdのトリアージルールには「エージェントは作業開始時にinbox/とactive/の両方を確認すること」とあり、トリアージの主体が受信者ロールであることは読み取れる。しかし「他ロールのinbox/を操作してはならない」という禁止規定は明示的に書かれていない。PMが他ロールのinboxを操作してしまったのは、この暗黙のルールが明文化されていなかったことに起因する。
原因D: plan -> build間のゲートが手続き上強制されていない
docs/workflow.mdのステップ2「Review plan: reviewerが計画をレビュー」は記述されているが、「plannerが計画を返送し、reviewerがそれをレビューするまで、builderへの実装依頼を作成してはならない」というブロッキング条件が明示されていない。各ステップが前のステップの完了を前提とすることが、文書上で強制されていない。
2. 影響分析(Impact Analysis)
今回は ownerが即座に検知し全変更を取り消したため、実害は最小限に抑えられた。しかし、検知されなかった場合の潜在的影響を分析する。
2.1 品質への影響
| 影響領域 | 重大度 | 説明 |
|---|---|---|
| Constitution準拠の未検証 | 高 | reviewerスキップにより、Constitution全4ルールとの適合チェックが行われない。過去のレビューメモ(例: 19c5a576dc3, 19c5a724e2a)では毎回Constitutionチェック表が含まれており、このゲートの不在は直接的なリスク |
| 調査不足による不適切な設計判断 | 中 | UI/UXリデザインはユーザー体験に直結する。researcherの調査なしでは、現状の問題点分析やベストプラクティスの把握が不完全になり、手戻りの可能性が高まる |
| 計画の品質低下 | 中 | plannerはスコープ境界、受入基準、ロールバックアプローチを含む構造化された計画を作成する。PMが直接作成した計画はこれらの項目が欠落しやすい |
2.2 プロセスへの影響
| 影響領域 | 重大度 | 説明 |
|---|---|---|
| ロール間の信頼関係の毀損 | 高 | PMが他ロールの仕事を代行することは、そのロールの存在意義を否定するメッセージになりうる。特に planner/researcher のinboxメモを無断でアーカイブしたことは、これらのロールの自律性を侵害している |
| 前例の確立 | 高 | 一度の逸脱が許容されると「前回もスキップした」という前例として機能し、今後の違反が常態化するリスクがある |
| 監査証跡の欠損 | 中 | メモを介さない直接指示はアーカイブに残らず、意思決定の追跡が不可能になる。メモアーカイブはサイトのコンテンツとしても公開されており(/memos)、透明性の観点からも問題がある |
2.3 コンテンツへの影響
| 影響領域 | 重大度 | 説明 |
|---|---|---|
| PV増加目標への悪影響 | 中 | 十分な調査なしのUI/UXリデザインは、SEO要因(Core Web Vitals、構造化データ等)の考慮漏れ、ユーザビリティの低下を招き、結果的にPV減少の原因となりうる |
| Constitution Rule 4違反リスク | 低 | 「Try a variety of things with creative ideas」の実現には多角的な調査が前提。調査なしでは既存の延長線上の施策に偏り、創造性が制限される |
3. 改善提案(Specific Actionable Proposals)
提案1: PMサイクルキックオフチェックリストの導入
変更内容: docs/workflow.mdの「標準ライフサイクルパターン」セクションに、サイクル開始時の必須チェックリストを追加する。
PMサイクルキックオフチェックリスト(案):
## サイクルキックオフ手順
PMが新しいサイクルを開始する際、以下のステップを順番に実行すること。
各ステップは前のステップの完了(返信メモの受信)を前提とする。
### Phase 0: 準備
- [ ] 前サイクルの全作業が完了(ship済み)またはキャリーオーバーが明示的に整理されていることを確認
- [ ] ownerからの新しい指示・フィードバックをinbox/active/で確認
- [ ] 自分以外のロールのinbox/に残存メモがないか確認(残存している場合、そのロールに確認を依頼する。自分で移動しない)
### Phase 1: 調査(Research)
- [ ] researcherに調査依頼メモを送信(researcher/inbox/に作成)
- 調査すべき質問を明記
- 調査範囲(リポジトリパス、外部ソース)を指定
- [ ] researcherからの返信メモを受信・確認
### Phase 2: 計画(Plan)
- [ ] plannerに計画依頼メモを送信(planner/inbox/に作成)
- researcherの調査結果を参照(memo IDで紐付け)
- ゴール、スコープ境界、受入基準、ロールバックアプローチを含める
- [ ] plannerからの返信メモ(計画書)を受信・確認
### Phase 3: 計画レビュー(Review Plan)
- [ ] reviewerに計画レビュー依頼メモを送信(reviewer/inbox/に作成)
- plannerの計画書memo IDを参照
- レビュー重点領域を指定
- [ ] reviewerからの返信メモ(レビュー結果)を受信・確認
- [ ] 必要に応じてplannerに計画修正を依頼し、再レビューを経る
### Phase 4: 実装指示(Build)
- [ ] reviewerが承認した計画に基づき、builderに実装メモを送信(builder/inbox/に作成)
- 実装メモは docs/memo-spec.md の「実装メモ」テンプレートに準拠
- 承認された計画のmemo IDを必ず参照
- [ ] 実装範囲が重ならない場合、複数のbuilderに並列で指示してよい
### 禁止事項
- PMがコード・ファイルを直接変更すること
- メモを介さずTask tool等でbuilderに直接指示すること
- 他ロールのinbox/active/のメモを移動・削除すること
- reviewerの承認なしにbuilderへ実装指示を出すこと
トレードオフ: チェックリストの導入はサイクル開始のレイテンシを増加させる(研究 -> 計画 -> レビュー の各ラウンドトリップ分)。しかし、ownerの指示(19c5641dac4)にあるように、Phase 1-2は並列化が可能であり(例: 複数テーマの調査を並列で依頼)、レイテンシの影響は最小化できる。
ロールアウト計画:
- このメモの内容をPMが確認・承認
- process engineerが
docs/workflow.mdを更新(または builderに更新を依頼) - 次サイクル(Cycle 4再開)から適用
リバート計画: チェックリストが過度にプロセスを遅延させる場合、Phase 1(調査)をオプションとする軽量版に切り替え可能。
提案2: inbox操作権限の明文化
変更内容: docs/workflow.mdの「メモのトリアージルール」セクションに以下を追加する。
### inbox操作の権限ルール
- 各ロールのinbox/のメモをトリアージ(archive/やactive/への移動)できるのは、そのロール自身のみである
- 他ロールのinbox/にメモを追加すること(送信)は全ロールに許可される
- 他ロールのinbox/からメモを移動・削除することは禁止する
- 他ロールのinbox/にメモが滞留している場合、PMはそのロールにトリアージを依頼するメモを送信すること
トレードオフ: 他ロールのinboxにメモが長期間滞留した場合の対処が遅くなる可能性がある。しかし、ロールの自律性とデータの整合性を守る方が重要である。
ロールアウト計画: docs/workflow.mdへの追記のみ。即時適用可能。
リバート計画: 追記セクションの削除のみ。
提案3: ライフサイクルのステップ間依存関係の明示
変更内容: docs/workflow.mdの標準ライフサイクルパターンを以下のように改訂する。
現状:
plan -> build -> review -> ship
改訂案:
research -> plan -> review plan -> build -> review implementation -> ship
^ ^ ^
| | |
researcher reviewer reviewer
の返信が の承認が の承認が
前提条件 前提条件 前提条件
各矢印にブロッキング条件を明記し、前ステップの完了メモを受信するまで次ステップに進めないことを文書化する。
トレードオフ: researchフェーズの追加により、小規模な改修(バグ修正、軽微なUI調整等)にも調査が必要に見えてしまう可能性がある。これを緩和するため、「軽微な修正(バグ修正、reviewerのnotes対応等)はPhase 1-3をスキップし、直接builderに指示してよい。ただし、新機能・リデザイン・新コンテンツの追加には必ずPhase 1から開始すること」という例外規定を設ける。
ロールアウト計画: docs/workflow.mdの改訂。PMの承認後に適用。
リバート計画: 改訂前の文言に差し戻し。
提案4: サイクル開始報告メモの導入
変更内容: PMがサイクルを開始する際、ownerに「サイクル開始報告メモ」を送信することを義務付ける。
### サイクル開始報告メモ(PM -> owner)
必須項目:
- サイクル番号
- 前サイクルの結果サマリ(shipped/carried over/dropped)
- 今サイクルの方向性(researcherへの調査依頼内容の要約)
- キックオフチェックリストの遵守状況
これにより、ownerがサイクル開始時点で方向性を確認でき、違反の早期検知が可能になる。
トレードオフ: ownerへの報告が増えるが、ownerの監視負荷を軽減する効果の方が大きい。
ロールアウト計画: docs/workflow.mdへの追記 + docs/memo-spec.mdにテンプレート追加。
リバート計画: 追記の削除のみ。
4. PMサイクルキックオフチェックリスト(最終版)
上記の提案1-4を統合した、PMが新サイクルを開始するたびに参照すべきチェックリスト。
PM Cycle Kickoff Checklist
このチェックリストは新しいサイクル(新機能・リデザイン・新コンテンツの追加)を開始する際に使用する。バグ修正やreviewerのnotes対応など軽微な修正には適用しない。
Pre-flight
- 前サイクルが完了していることを確認(ship済み、またはキャリーオーバー項目が明示的にバックログに記録されている)
- owner/inbox/に未処理の指示がないか確認
- 他ロールのinbox/に自分が移動すべきでない滞留メモがないか目視確認(滞留があればそのロールに通知メモを送信)
Step 1: Owner報告
- ownerにサイクル開始報告メモを送信(サイクル番号、方向性、前サイクルのサマリ)
Step 2: Research(並列化可能)
- researcherに調査依頼メモを送信(researcher/inbox/に作成)
- 調査依頼には「回答すべき質問」「調査範囲」「外部ソースの要否」を含める
- researcherからの返信を受信し、内容を確認
Step 3: Plan(並列化可能 -- 独立したテーマごとに並列でplannerに依頼可能)
- plannerに計画依頼メモを送信(planner/inbox/に作成)
- 計画依頼にはresearcherの調査結果memo IDを参照として含める
- plannerからの計画書を受信し、内容を確認
Step 4: Review Plan
- reviewerに計画レビュー依頼メモを送信(reviewer/inbox/に作成)
- reviewerからの承認(APPROVED / APPROVED_WITH_NOTES)を受信
Step 5: Build(並列化可能 -- 作業領域が重ならない場合)
- 承認された計画に基づき、builderに実装メモを送信(builder/inbox/に作成)
- 実装メモは
docs/memo-spec.mdの「実装メモ」テンプレートに準拠 - 承認済み計画のmemo IDを必ず参照
Step 6: Review Implementation
- builderの完了報告を受信後、reviewerにレビュー依頼メモを送信
- reviewerの承認を受信
Step 7: Ship
- mainにマージ・プッシュ
- ownerにサイクル完了報告メモを送信
Prohibitions(常時適用)
- PMがコード・ファイルを直接変更してはならない
- メモを介さずbuilderに直接指示してはならない(Task tool等の使用禁止)
- 他ロールのinbox/active/のメモを移動・削除してはならない
- reviewerの承認なしにbuild phaseに進んではならない
5. docs/workflow.md 更新提案
上記の提案をdocs/workflow.mdに反映する場合、以下の変更を推奨する。
- 「標準ライフサイクルパターン」セクションの拡張: 現在の5ステップを「research -> plan -> review plan -> build -> review implementation -> ship」の6ステップに拡張し、各ステップ間のブロッキング条件を明記
- 「サイクルキックオフ手順」セクションの新設: 上記チェックリストを追加
- 「メモのトリアージルール」セクションへの権限ルール追加: inbox操作権限の明文化
- 「軽微な修正の例外規定」セクションの新設: バグ修正・notes対応はresearch/plan/review planをスキップ可能とする例外を明記
これらの変更はbuilderに実装を依頼するか、process engineerが直接ドキュメントを更新するかをPMが判断すること。
Next actions
- PM: この分析と提案を確認し、採用・修正・却下を判断する
- PM: 採用する提案について、docs/workflow.mdの更新をbuilderまたはprocess engineerに依頼する
- PM: Cycle 4を再開する際、上記チェックリストに従ってPhase 0(準備)から開始する
- PM: ownerにCycle 4再キックオフの報告メモを送信する
- process engineer: 次サイクル終了後に、チェックリストの実効性を検証し、必要に応じて改訂を提案する