TL;DR
- フラクタル分解(Fractal Decomposition) とは、どの階層でも同じパターンでタスクを分解する手法
- 数学の「フラクタル図形」から着想 — 部分が全体と同じ構造を持つ
- AIPOでは Sense → Focus → Discover → Deliver を各階層で再帰的に適用
- AIエージェントが「迷子にならない」ための設計パターン
フラクタルとは
フラクタル(Fractal) は、数学者ブノワ・マンデルブロが提唱した概念。
「部分が全体と同じ構造を持つ図形」
身近なフラクタルの例
| 自然界 | 説明 |
|---|---|
| 雪の結晶 | どの枝も同じパターンで分岐 |
| シダの葉 | 小さな葉が全体と同じ形 |
| 海岸線 | どの縮尺でも同じ複雑さ |
| 木の枝 | 幹→枝→小枝が同じパターン |
木の構造:
幹
/ \
枝 枝
/ \ / \
葉 葉 葉 葉
↑
どの階層も「分岐」という同じパターン
タスク管理における「フラクタル分解」
従来のWBS(作業分解構造)の問題
従来のプロジェクト管理では、タスクを階層的に分解する:
プロジェクト
├── フェーズ1
│ ├── タスク1.1
│ └── タスク1.2
└── フェーズ2
├── タスク2.1
└── タスク2.2
問題点:
- 各階層で「分解の仕方」が異なる
- 担当者によって粒度がバラバラ
- AIが分解しようとすると「どこまで分解すればいい?」が曖昧
フラクタル分解の解決策
どの階層でも同じパターンで分解する:
Goal: プロダクトv1.0リリース
├── [Sense → Focus → Discover → Deliver]
│
├── SubGoal 1: 設計完了
│ ├── [Sense → Focus → Discover → Deliver]
│ │
│ └── SubGoal 1.1: DB設計
│ └── [Sense → Focus → Discover → Deliver]
│
└── SubGoal 2: 実装完了
└── [Sense → Focus → Discover → Deliver]
ポイント: 「プロジェクト」も「タスク」も「サブタスク」も、すべて Sense → Focus → Discover → Deliver で処理される。
AIPOでのフラクタル分解実装
5つの設計原則
| 原則 | 説明 |
|---|---|
| 1. PO思考の再現 | Sense → Focus → Discover → Deliver サイクル |
| 2. Fractal Decomposition | どの階層も同じパターンで分解 |
| 3. Context Cascade | 親から子へ文脈を継承(途中で忘れない) |
| 4. Self-Describing Executable Task | タスク自体が実行命令を内包 |
| 5. Feedback Loop | Deliver → 次のSenseへ学習をフィードバック |
実際のフォルダ構造
📁 カレーパーティ懇親会/
├── 📄 layer.yaml ← Goal定義
├── 📄 context.yaml ← 文脈情報
├── 📄 tasks.yaml ← 分解されたタスク
├── 📁 sublayers/
│ ├── 📁 SG1_イベント企画/
│ │ ├── 📄 layer.yaml ← 同じ構造!
│ │ ├── 📄 context.yaml
│ │ └── 📄 tasks.yaml
│ ├── 📁 SG2_物資調達/
│ │ └── ... 同じ構造
│ └── 📁 SG3_当日運営/
│ └── ... 同じ構造
└── 📁 Commands/
なぜフラクタル分解がAIに効くのか
1. コンテキスト圧縮
同じパターンを繰り返すため、AIは「次に何をすべきか」を迷わない:
人間: 「プロジェクトを進めて」
AI (フラクタルなし):
「どこから手をつければ...?」
「このタスクはどう分解する...?」
「終了条件は...?」
AI (フラクタルあり):
「まずSense → 情報収集」
「次にFocus → 優先順位決定」
「次にDiscover → 計画生成」
「最後にDeliver → 実行」
2. 全員がPO的に動く
従来: PMがすべてを指揮、メンバーは指示待ち
フラクタル分解: 各サブゴールの担当者(人間でもAIでも)が、自分の範囲で Sense → Focus → Discover → Deliver を回す
┌────────────────────────────────────┐
│ Goal Owner (PO) │
│ Sense→Focus→Discover→Deliver │
└────────────────────────────────────┘
↓ 委譲
┌─────────────┐ ┌─────────────┐
│ SubGoal 1 │ │ SubGoal 2 │
│ (担当A/AI) │ │ (担当B/AI) │
│ S→F→D→D │ │ S→F→D→D │
└─────────────┘ └─────────────┘
↓ さらに委譲
┌─────────────┐
│ SubSubGoal │
│ S→F→D→D │
└─────────────┘
3. 無限に分解可能
- タスクが大きすぎる → さらに分解
- 分解したサブタスクも大きい → さらに分解
- どこまでも同じパターン
個人開発者への実践的示唆
1. 自分のタスク管理に適用
すべてのタスクに対して:
- Sense: 何が必要か情報収集
- Focus: 優先順位決定
- Discover: 具体的な手順を計画
- Deliver: 実行
2. AIエージェントの設計に適用
Claude Code、Cursor、Codexなどのエージェントプロンプトに:
## タスク実行パターン
1. Sense: 現状と要件を理解する
2. Focus: 優先すべきことを決める
3. Discover: 実行計画を立てる
4. Deliver: 実行し、成果物を出す
サブタスクが発生したら、同じパターンを適用する。
3. Context Cascadeを意識
親タスクの文脈を子タスクに明示的に引き継ぐ:
## 親タスクの文脈
- Goal: ECサイトのカート機能改善
- 制約: React + Next.js、リリースは来週
## 現在のサブタスク
- SubGoal: カートUIのレスポンシブ対応
参考リンク
- AIPO GitHub: miyatti777/aipo
- Jeff Patton 原典: The Continuous Product Improvement Cycle
- みやっち note: 汎用AI課題解決システム「AIPO」をリリースしました