planning-and-task-breakdown
addyosmani/agent-skills
作業を、明確な受け入れ基準を備えた小さく検証可能なタスクに分解し、依存関係に基づいて順序付け、確実に実装できるよう垂直方向に細分化する。
...すべて拡張します計画とタスクの細分化
概要
作業を、明確な受け入れ基準を持つ、検証可能な小さなタスクに分解します。適切なタスクの細分化は、確実に作業を完了するエージェントと、混乱した状態を生み出すエージェントとの違いを決定づけます。すべてのタスクは、1回の集中したセッション内で実装、テスト、検証ができるほど十分に小さいものでなければなりません。
使用すべき場面
- 仕様書があり、それを実装可能な単位に分割する必要がある場合
- タスクが大きすぎたり曖昧すぎて、着手できないと感じる場合
- 作業を複数のエージェントやセッションに分散させる必要がある場合
- 人間に対して作業範囲を伝える必要がある場合
- 実装順序が明確でない場合
使用すべきでない場合:範囲が明確な単一ファイルの変更、または仕様書にすでに明確に定義されたタスクが含まれている場合。
計画プロセス
ステップ1:計画モードに入る
コードを記述する前に、読み取り専用モードで作業します:
- 仕様書および関連するコードベースのセクションを読む
- 既存のパターンや規約を特定する
- コンポーネント間の依存関係を整理する
- リスクや不確定要素を書き留める
計画段階ではコードを書いてはいけません。成果物は計画文書であり、実装ではありません。
ステップ2:依存関係グラフを特定する
何が何に依存しているかを整理する:
データベーススキーマ
│
├── APIモデル/型
│ │
│ ├── APIエンドポイント
│ │ │
│ │ └── フロントエンドAPIクライアント
│ │ │
│ │ └── UIコンポーネント
│ │
│ └── バリデーションロジック
│
└── シードデータ/マイグレーション
実装順序は依存関係グラフに従い、下から上へと進めます。まず基盤を構築します。
ステップ3:垂直方向に分割する
データベース全体、API全体、UI全体を順に構築するのではなく、1つの完全な機能パスを一度に構築します:
悪い例(水平分割):
タスク1:データベーススキーマ全体を構築
タスク2:すべてのAPIエンドポイントを構築
タスク3:すべてのUIコンポーネントを構築
タスク4:すべてを連携させる
良い例(垂直分割):
タスク1:ユーザーがアカウントを作成できる(登録用のスキーマ+API+UI)
タスク2:ユーザーがログインできる(認証用のスキーマ+API+ログイン用UI)
タスク3:ユーザーがタスクを作成できる(タスクスキーマ+API+作成用UI)
タスク4:ユーザーがタスクリストを表示できる(クエリ+API+リスト表示用UI)
各垂直スライスは、動作し、テスト可能な機能を提供します。
ステップ4:タスクの記述
各タスクは以下の構造に従います:
## タスク [N]: [簡潔な説明タイトル]
**説明:** このタスクで何を実現するかを説明する1段落。
**受け入れ基準:**
- [ ] [具体的かつテスト可能な条件]
- [ ] [具体的かつテスト可能な条件]
**検証:**
- [ ] テストが成功する: `npm test -- --grep "feature-name"`
- [ ] ビルドが成功する: `npm run build`
- [ ] 手動チェック: [検証すべき事項の説明]
**依存関係:** [このタスクが依存するタスク番号、または「なし」]
**変更される可能性のあるファイル:**
- `src/path/to/file.ts`
- `tests/path/to/test.ts`
**推定範囲:** [小:1~2ファイル | 中:3~5ファイル | 大:5ファイル以上]
ステップ5:順序とチェックポイント
以下の条件を満たすようにタスクを配置します:
- 依存関係が満たされるようにする(まず基盤を構築する)
- 各タスクの実行後、システムが正常に動作する状態になる
- 2~3つのタスクごとに検証チェックポイントを設ける
- リスクの高いタスクは早い段階で配置する(早期に失敗を特定する)
明示的なチェックポイントを追加する:
## チェックポイント:タスク1~3終了後
- [ ] すべてのテストに合格
- [ ] エラーなしでアプリケーションがビルドされる
- [ ] 主要なユーザーフローがエンドツーエンドで動作する
- [ ] 作業を進める前に、担当者が確認を行う
タスクの規模設定ガイドライン
| 規模 | ファイル | 範囲 | 例 |
|---|---|---|---|
| XS | 1 | 単一の関数または設定の変更 | 検証ルールの追加 |
| S | 1~2 | 1つのコンポーネントまたはエンドポイント | 新しいAPIエンドポイントを追加する |
| M | 3~5 | 1つの機能スライス | ユーザー登録フロー |
| L | 5-8 | マルチコンポーネント機能 | フィルタリングとページネーション機能付きの検索 |
| XL | 8以上 | 規模が大きすぎる — さらに細分化してください | — |
タスクがL以上の場合、より小さなタスクに分割する必要があります。エージェントはSおよびMのタスクで最高のパフォーマンスを発揮します。
タスクをさらに細分化するべきタイミング:
- 集中して取り組むセッションが1回以上必要となる場合(エージェントの作業時間として約2時間以上)
- 受け入れ基準を3つ以下の箇条書きで説明できない場合
- 2つ以上の独立したサブシステム(例:認証と課金)に関わる場合
- タスクのタイトルに「および」という表現が含まれている場合(これは2つのタスクに分かれる兆候です)
計画書テンプレート
# 実装計画:[機能/プロジェクト名]
## 概要
[構築する内容に関する1段落の要約]
## アーキテクチャの決定事項
- [主要な決定事項1とその根拠]
- [主要な決定事項2とその根拠]
## タスクリスト
### フェーズ1:基盤
- [ ] タスク1:...
- [ ] タスク2:...
### チェックポイント:基盤
- [ ] テストに合格、ビルドが正常に完了
### フェーズ2:コア機能
- [ ] タスク3:...
- [ ] タスク 4: ...
### チェックポイント:中核機能
- [ ] エンドツーエンドのフローが正常に動作する
### フェーズ 3:仕上げ
- [ ] タスク 5: ...
- [ ] タスク 6: ...
### チェックポイント:完了
- [ ] すべての受け入れ基準を満たしている
- [ ] レビューの準備が整っている
## リスクと対策
| リスク | 影響 | 対策 |
|------|--------|------------|
| [リスク] | [高/中/低] | [対策] |
## 未解決の課題
- [人的入力が必要な課題]
並列化の機会
複数のエージェントまたはセッションが利用可能な場合:
- 並列化が可能:独立した機能スライス、すでに実装済みの機能に対するテスト、ドキュメント
- 順次実行必須:データベースのマイグレーション、共有状態の変更、依存関係チェーン
- 調整が必要:API契約を共有する機能(まず契約を定義してから並列化する)
よくある合理化の理由
| 合理化の根拠 | 現実 |
|---|---|
| 「その都度、その場その場で考えればいい」 | そうしていると、結局は複雑に絡み合った状態になり、手直しが必要になる。10分の計画で数時間の時間を節約できる。 |
| 「タスクは明らかだ」 | それでも書き出しておこう。タスクを明確にすることで、隠れた依存関係や見落とされていたエッジケースが浮き彫りになる。 |
| 「計画は無駄な手間だ」 | 計画そのものがタスクなのです。計画なしの実装は、単なるタイピングに過ぎません。 |
| 「頭の中ですべて把握できる」 | コンテキストの窓には限りがある。書き留めた計画は、セッションの境界やメモリの圧縮を乗り越えて生き残る。 |
危険信号
- 書面によるタスクリストなしに実装を開始すること
- 受け入れ基準のない「機能を実装する」といったタスク
- 計画に検証手順が含まれていない
- すべてのタスクがXLサイズである
- タスク間のチェックポイントがない
- 依存関係の順序が考慮されていない
検証
実装を開始する前に、以下を確認してください:
- すべてのタスクに受け入れ基準が設定されていること
- すべてのタスクに検証ステップが設定されていること
- タスク間の依存関係が特定され、正しく順序付けられていること
- 1つのタスクが扱うファイル数は最大で約5ファイル以下であること
- 主要なフェーズの間にチェックポイントが設けられていること
- 担当者が計画を確認し、承認している
関連項目
受け入れ基準はタスクごとに設定され、「正しいものを構築できたか?」という問いに答えるものです。これらは、プロジェクト全体の「完了の定義(Definition of Done)」の上に位置し、各タスクが完了とみなされる前にクリアしなければならない基準となります。詳細はreferences/definition-of-done.md を参照してください。
---
name: planning-and-task-breakdown
description: Decompose work into small, verifiable tasks with explicit acceptance criteria, ordered by dependencies and sliced vertically for reliable implementation.
---
# Planning and Task Breakdown
## Overview
Decompose work into small, verifiable tasks with explicit acceptance criteria. Good task breakdown is the difference between an agent that completes work reliably and one that produces a tangled mess. Every task should be small enough to implement, test, and verify in a single focused session.
## When to Use
- You have a spec and need to break it into implementable units
- A task feels too large or vague to start
- Work needs to be parallelized across multiple agents or sessions
- You need to communicate scope to a human
- The implementation order isn't obvious
**When NOT to use:** Single-file changes with obvious scope, or when the spec already contains well-defined tasks.
## The Planning Process
### Step 1: Enter Plan Mode
Before writing any code, operate in read-only mode:
- Read the spec and relevant codebase sections
- Identify existing patterns and conventions
- Map dependencies between components
- Note risks and unknowns
**Do NOT write code during planning.** The output is a plan document, not implementation.
### Step 2: Identify the Dependency Graph
Map what depends on what:
```
Database schema
│
├── API models/types
│ │
│ ├── API endpoints
│ │ │
│ │ └── Frontend API client
│ │ │
│ │ └── UI components
│ │
│ └── Validation logic
│
└── Seed data / migrations
```
Implementation order follows the dependency graph bottom-up: build foundations first.
### Step 3: Slice Vertically
Instead of building all the database, then all the API, then all the UI — build one complete feature path at a time:
**Bad (horizontal slicing):**
```
Task 1: Build entire database schema
Task 2: Build all API endpoints
Task 3: Build all UI components
Task 4: Connect everything
```
**Good (vertical slicing):**
```
Task 1: User can create an account (schema + API + UI for registration)
Task 2: User can log in (auth schema + API + UI for login)
Task 3: User can create a task (task schema + API + UI for creation)
Task 4: User can view task list (query + API + UI for list view)
```
Each vertical slice delivers working, testable functionality.
### Step 4: Write Tasks
Each task follows this structure:
```markdown
## Task [N]: [Short descriptive title]
**Description:** One paragraph explaining what this task accomplishes.
**Acceptance criteria:**
- [ ] [Specific, testable condition]
- [ ] [Specific, testable condition]
**Verification:**
- [ ] Tests pass: `npm test -- --grep "feature-name"`
- [ ] Build succeeds: `npm run build`
- [ ] Manual check: [description of what to verify]
**Dependencies:** [Task numbers this depends on, or "None"]
**Files likely touched:**
- `src/path/to/file.ts`
- `tests/path/to/test.ts`
**Estimated scope:** [Small: 1-2 files | Medium: 3-5 files | Large: 5+ files]
```
### Step 5: Order and Checkpoint
Arrange tasks so that:
1. Dependencies are satisfied (build foundation first)
2. Each task leaves the system in a working state
3. Verification checkpoints occur after every 2-3 tasks
4. High-risk tasks are early (fail fast)
Add explicit checkpoints:
```markdown
## Checkpoint: After Tasks 1-3
- [ ] All tests pass
- [ ] Application builds without errors
- [ ] Core user flow works end-to-end
- [ ] Review with human before proceeding
```
## Task Sizing Guidelines
| Size | Files | Scope | Example |
|------|-------|-------|---------|
| **XS** | 1 | Single function or config change | Add a validation rule |
| **S** | 1-2 | One component or endpoint | Add a new API endpoint |
| **M** | 3-5 | One feature slice | User registration flow |
| **L** | 5-8 | Multi-component feature | Search with filtering and pagination |
| **XL** | 8+ | **Too large — break it down further** | — |
If a task is L or larger, it should be broken into smaller tasks. An agent performs best on S and M tasks.
**When to break a task down further:**
- It would take more than one focused session (roughly 2+ hours of agent work)
- You cannot describe the acceptance criteria in 3 or fewer bullet points
- It touches two or more independent subsystems (e.g., auth and billing)
- You find yourself writing "and" in the task title (a sign it is two tasks)
## Plan Document Template
```markdown
# Implementation Plan: [Feature/Project Name]
## Overview
[One paragraph summary of what we're building]
## Architecture Decisions
- [Key decision 1 and rationale]
- [Key decision 2 and rationale]
## Task List
### Phase 1: Foundation
- [ ] Task 1: ...
- [ ] Task 2: ...
### Checkpoint: Foundation
- [ ] Tests pass, builds clean
### Phase 2: Core Features
- [ ] Task 3: ...
- [ ] Task 4: ...
### Checkpoint: Core Features
- [ ] End-to-end flow works
### Phase 3: Polish
- [ ] Task 5: ...
- [ ] Task 6: ...
### Checkpoint: Complete
- [ ] All acceptance criteria met
- [ ] Ready for review
## Risks and Mitigations
| Risk | Impact | Mitigation |
|------|--------|------------|
| [Risk] | [High/Med/Low] | [Strategy] |
## Open Questions
- [Question needing human input]
```
## Parallelization Opportunities
When multiple agents or sessions are available:
- **Safe to parallelize:** Independent feature slices, tests for already-implemented features, documentation
- **Must be sequential:** Database migrations, shared state changes, dependency chains
- **Needs coordination:** Features that share an API contract (define the contract first, then parallelize)
## Common Rationalizations
| Rationalization | Reality |
|---|---|
| "I'll figure it out as I go" | That's how you end up with a tangled mess and rework. 10 minutes of planning saves hours. |
| "The tasks are obvious" | Write them down anyway. Explicit tasks surface hidden dependencies and forgotten edge cases. |
| "Planning is overhead" | Planning is the task. Implementation without a plan is just typing. |
| "I can hold it all in my head" | Context windows are finite. Written plans survive session boundaries and compaction. |
## Red Flags
- Starting implementation without a written task list
- Tasks that say "implement the feature" without acceptance criteria
- No verification steps in the plan
- All tasks are XL-sized
- No checkpoints between tasks
- Dependency order isn't considered
## Verification
Before starting implementation, confirm:
- [ ] Every task has acceptance criteria
- [ ] Every task has a verification step
- [ ] Task dependencies are identified and ordered correctly
- [ ] No task touches more than ~5 files
- [ ] Checkpoints exist between major phases
- [ ] The human has reviewed and approved the plan
## See Also
Acceptance criteria are per-task and answer "did we build the right thing?". They sit on top of the project-wide Definition of Done, the standing bar every task clears before it counts as done. See `references/definition-of-done.md`.
すべてのファイル
0件のファイルplanning-and-task-breakdownをインストール
スキルファイルをダウンロードし、.claude/skills/ ディレクトリに解凍してください。
ZIPをダウンロードリポジトリをクローンし、スキルファイルをプロジェクトにコピーしてください。
git clone https://github.com/addyosmani/agent-skills/tree/main/skills/planning-and-task-breakdown # Copy SKILL.md to your .claude/skills/ directory
コピー





家
