--- name: decompose-task description: Decompose a phase plan into atomic beads and sub-beads. Use when breaking down a phase into tasks, when the user mentions "decompose" or "break down", when creating beads from a plan, or when structuring work for parallel execution. --- # Decompose Task — Orchestrator Break a phase into atomic beads and sub-beads for agent execution. > **Pattern:** This skill uses the orchestrator-subagent pattern. Each phase runs in a fresh context to prevent "context bombing" on large phases. See `docs/guides/ORCHESTRATOR_SUBAGENT_PATTERN.md`. ## When This Applies | Signal | Action | |--------|--------| | User says "decompose" or "break down" | Run full protocol | | Have a phase plan ready | Decompose into beads | | User says "/decompose-task" | Run full protocol | | Need to structure work for agents | Create bead hierarchy | --- ## Tool Reference ### File Operations | Tool | Purpose | |------|---------| | `Read(phase_doc_path)` | Read phase document | | `Read(north_star_path)` | Read North Star for context | | `Write(file_path, content)` | Write manifest, reports | ### Beads (Task Tracking) | Command | Purpose | |---------|---------| | `bd create --title "..." --body "..."` | Create parent bead | | `bd create --parent --title "..."` | Create sub-bead | | `bd dep add ` | Set dependency | | `bd list --json` | List all beads | ### BV (Graph Intelligence) | Command | Purpose | |---------|---------| | `bv --robot-suggest` | Find missing dependencies | | `bv --robot-plan` | Validate execution order | | `bv --robot-alerts` | Check for risks/cycles | ### Sub-Bead Suffix Convention | Suffix | Purpose | |--------|---------| | `.1` | Schema/types/models | | `.2-.3` | Core implementation | | `.4-.8` | Tests | | `.9` | Integration/wiring | | `.10` | Documentation | --- ## Architecture ``` ┌─────────────────────────────────────────────────────────────────┐ │ DECOMPOSE-TASK ORCHESTRATOR │ │ - Creates session: sessions/decompose-{timestamp}/ │ │ - Manages TodoWrite state │ │ - Spawns subagents with minimal context │ │ - Passes manifest (not phase doc) to Create Beads phase │ └─────────────────────────────────────────────────────────────────┘ │ ┌────────────────────┼────────────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Understand │ │ Manifest │ │ Create Beads │ │ agents/ │ │ agents/ │ │ agents/ │ │ understand.md │ │ manifest.md │ │ create-beads.md│ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │ │ │ 01_understanding 02_manifest.md 03_beads_created │ │ │ └────────────────────┼────────────────────┘ │ ┌────────────────────┼────────────────────┐ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ │ Dependencies │ │ Validate │ → Ready for execution │ agents/ │ │ agents/ │ │ dependencies.md│ │ validate.md │ └────────┬────────┘ └────────┬────────┘ │ │ 04_dependencies 05_validation ``` ## Subagents | Phase | Agent | Input | Output | |-------|-------|-------|--------| | 1 | `agents/understand.md` | phase_doc | goals, components, ambiguities | | 2 | `agents/manifest.md` | understanding | lossless item list | | 3 | `agents/create-beads.md` | manifest (NOT phase doc) | parent + sub-beads | | 4 | `agents/dependencies.md` | beads created | dependency graph | | 5 | `agents/validate.md` | dependencies | validation report | --- ## Why Subagents for Decomposition **The "Create Beads" phase is the most lossy.** When an agent reads a 1000-line phase doc directly, it summarizes. With subagents: | Monolithic | Subagent Pattern | |------------|------------------| | Agent reads phase doc, summarizes | Manifest captures everything first | | Create Beads sees summarized version | Create Beads sees manifest (lossless) | | "4 tests for X" | Actual test code in manifest | | Context bombing | Fresh context per phase | **Key insight:** The manifest becomes the source of truth. Create Beads never reads the original phase doc—it reads the manifest. --- ## Execution Flow ### 1. Setup (Orchestrator) ```markdown 1. Create session directory: mkdir -p sessions/decompose-{timestamp} 2. Initialize TodoWrite with phases: - [ ] Phase 1: Understand - [ ] Phase 2: Manifest - [ ] Phase 3: Create Beads - [ ] Phase 4: Dependencies - [ ] Phase 5: Validate 3. Gather inputs: - phase_doc_path: Path to phase document - north_star_path: Path to North Star Card ``` ### 2. Phase 1: Understand **Spawn:** `agents/understand.md` **Input:** ```json { "phase_doc_path": "PLAN/phase-2.md", "session_dir": "sessions/decompose-{timestamp}", "north_star_path": "PLAN/00_north_star.md" } ``` **Output:** understanding_path + goals + ambiguities ### 3. Phase 2: Manifest **Spawn:** `agents/manifest.md` **Input:** ```json { "session_dir": "sessions/decompose-{timestamp}", "understanding_path": "", "phase_doc_path": "PLAN/phase-2.md" } ``` **Output:** manifest_path + item counts + gaps ### 4. Phase 3: Create Beads (CRITICAL) **Spawn:** `agents/create-beads.md` **Input:** ```json { "session_dir": "sessions/decompose-{timestamp}", "manifest_path": "", "north_star_path": "PLAN/00_north_star.md", "phase_name": "Phase 2: User Auth" } ``` **CRITICAL:** Input is `manifest_path`, NOT `phase_doc_path`. The manifest is the lossless source of truth. **Output:** beads_created_path + bead IDs ### 5. Phase 4: Dependencies **Spawn:** `agents/dependencies.md` **Input:** ```json { "session_dir": "sessions/decompose-{timestamp}", "beads_created_path": "" } ``` **Output:** dependencies_path + execution order ### 6. Phase 5: Validate **Spawn:** `agents/validate.md` **Input:** ```json { "session_dir": "sessions/decompose-{timestamp}", "dependencies_path": "", "manifest_path": "" } ``` **Output:** validation_path + ready_for_execution ### 7. Finalize (Orchestrator) 1. Update TodoWrite (all phases complete) 2. If validation failed, report issues 3. Output summary to user --- ## Templates Located in `.claude/templates/planning/`: - `content-manifest.md` — Pre-decomposition checklist - `sub-bead-structure.md` — Standard suffix pattern - `decompose-output.md` — Output summary format --- ## 1. Understand Read the phase. Identify: - Goal - Components/files - Dependencies (what must exist first) - Deliverables (how we know it's done) **If vague → ask for clarification before decomposing.** --- ## 2. Manifest Use content-manifest template. List everything: - Components - Files to create/modify - Tests required - Dependencies - Acceptance criteria --- ## 3. Create Beads ### Terminology Clarification | Term | When Created | Purpose | |------|--------------|---------| | **Phase/Epic bead** | Planning | Container for a phase's work | | **Task beads** | Planning | Individual work items under a phase | | **ADaPT sub-beads** | Execution (after 3 failures) | Decompose failing task | **Phase/Epic bead (container for the phase):** ```bash bd create "Phase N: " -t epic -p 1 -d '<description>' ``` **Task beads (the actual work items):** ```bash bd create "<Task title>" --parent <phase-id> --priority 1 -d '<Full description>' ``` > **Note:** Task beads use suffixes `.1`, `.2`, etc. for organization. This is DIFFERENT from ADaPT sub-beads which are created when execution fails. See `templates/planning/sub-bead-structure.md` for ADaPT. ### Critical Rules | Rule | Why | |------|-----| | **LOSSLESS** | Every detail from phase must appear in a sub-bead | | **FULL CODE** | Complete code with all imports, not snippets | | **FULL TESTS** | Actual test code, not "4 tests for X" | | **NO SUMMARIZING** | Copy verbatim, don't paraphrase | | **STANDALONE** | Each sub-bead executable without referencing others | | **NORTH STAR** | Copy North Star Card into every sub-bead | --- ## 4. Set Dependencies ```bash bd dep add <child-id> <blocker-id> --type blocks ``` Common pattern: - Schema (.1) → blocks → Implementation (.2, .3) - Implementation → blocks → Tests (.4-.8) - All sub-beads → block → Parent completion --- ## 5. Validate ```bash bv --robot-suggest # Duplicates, missing deps, cycle breaks bv --robot-plan # Can work proceed in order? bv --robot-alerts # Stale, cascades, drift signals ``` **Fix issues before agents start executing.** --- ## Sizing Guidelines | Metric | Target | |--------|--------| | Sub-bead size | ~500 lines | | Work duration | 30-120 min | | Responsibility | Single thing done well | | Testability | Independently verifiable | If too large → decompose further. --- ## When to STOP and Ask 1. **Phase too vague** — Can't identify concrete deliverables 2. **Phase too large** — Would result in 20+ sub-beads (split phase) 3. **Unclear dependencies** — Don't know what must exist first 4. **Multiple valid approaches** — Need architectural decision first --- ## Task Bead Suffix Convention (Planning-Time) > **IMPORTANT DISTINCTION:** > - **Planning-time task beads** (this section): Created upfront when decomposing phases > - **ADaPT sub-beads**: Created ONLY when execution fails after 3 iterations > > Both use the same `.1`, `.2` naming, but serve different purposes. See `.claude/templates/planning/sub-bead-structure.md` for ADaPT sub-beads. | Suffix | Purpose | |--------|---------| | `.1` | Schema/types/models | | `.2-.3` | Core implementation | | `.4-.8` | Tests | | `.9` | Integration/wiring | | `.10` | Documentation (if needed) | **Example:** For epic `user-auth` (Phase bead): - `user-auth.1` → User model schema (task bead) - `user-auth.2` → JWT validation logic (task bead) - `user-auth.3` → Session management (task bead) - `user-auth.4` → Unit tests for JWT (task bead) - `user-auth.5` → Integration tests (task bead) **If `user-auth.2` fails after 3 iterations during execution:** - `user-auth.2.1` → ADaPT sub-bead for specific failing component --- ## Anti-Patterns | Don't | Do | |-------|-----| | Summarize: "4 tests for validation" | Include full test code | | Reference elsewhere: "See phase plan" | Copy verbatim | | Skip imports: Partial code | Full runnable code | | Huge beads: 2000+ lines | Split further | | Forget tests: Implementation without .4-.8 | Always include | --- ## Output Format Use decompose-output template. Include: - Parent bead ID - Sub-beads table with IDs, titles, estimates, dependencies - Verification checklist - Next steps --- ## See Also - `bead-workflow/` — Bead lifecycle - `.claude/templates/planning/` — Templates - `docs/workflow/DECOMPOSITION.md` — Full guide