AgentSkillsCN

decompose-task

将阶段计划分解为原子珠子和子珠子。当把阶段分解为任务、用户提到“分解”或“拆分”、从计划创建珠子,或为并行执行安排工作时,请使用此技能。

SKILL.md
--- frontmatter
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

SignalAction
User says "decompose" or "break down"Run full protocol
Have a phase plan readyDecompose into beads
User says "/decompose-task"Run full protocol
Need to structure work for agentsCreate bead hierarchy

Tool Reference

File Operations

ToolPurpose
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)

CommandPurpose
bd create --title "..." --body "..."Create parent bead
bd create --parent <id> --title "..."Create sub-bead
bd dep add <child> <blocker>Set dependency
bd list --jsonList all beads

BV (Graph Intelligence)

CommandPurpose
bv --robot-suggestFind missing dependencies
bv --robot-planValidate execution order
bv --robot-alertsCheck for risks/cycles

Sub-Bead Suffix Convention

SuffixPurpose
.1Schema/types/models
.2-.3Core implementation
.4-.8Tests
.9Integration/wiring
.10Documentation

Architecture

code
┌─────────────────────────────────────────────────────────────────┐
│                  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

PhaseAgentInputOutput
1agents/understand.mdphase_docgoals, components, ambiguities
2agents/manifest.mdunderstandinglossless item list
3agents/create-beads.mdmanifest (NOT phase doc)parent + sub-beads
4agents/dependencies.mdbeads createddependency graph
5agents/validate.mddependenciesvalidation 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:

MonolithicSubagent Pattern
Agent reads phase doc, summarizesManifest captures everything first
Create Beads sees summarized versionCreate Beads sees manifest (lossless)
"4 tests for X"Actual test code in manifest
Context bombingFresh 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": "<from Phase 1>",
  "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": "<from Phase 2>",
  "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": "<from Phase 3>"
}

Output: dependencies_path + execution order

6. Phase 5: Validate

Spawn: agents/validate.md

Input:

json
{
  "session_dir": "sessions/decompose-{timestamp}",
  "dependencies_path": "<from Phase 4>",
  "manifest_path": "<from Phase 2>"
}

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

TermWhen CreatedPurpose
Phase/Epic beadPlanningContainer for a phase's work
Task beadsPlanningIndividual work items under a phase
ADaPT sub-beadsExecution (after 3 failures)Decompose failing task

Phase/Epic bead (container for the phase):

bash
bd create "Phase N: <Title>" -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

RuleWhy
LOSSLESSEvery detail from phase must appear in a sub-bead
FULL CODEComplete code with all imports, not snippets
FULL TESTSActual test code, not "4 tests for X"
NO SUMMARIZINGCopy verbatim, don't paraphrase
STANDALONEEach sub-bead executable without referencing others
NORTH STARCopy 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

MetricTarget
Sub-bead size~500 lines
Work duration30-120 min
ResponsibilitySingle thing done well
TestabilityIndependently 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.

SuffixPurpose
.1Schema/types/models
.2-.3Core implementation
.4-.8Tests
.9Integration/wiring
.10Documentation (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'tDo
Summarize: "4 tests for validation"Include full test code
Reference elsewhere: "See phase plan"Copy verbatim
Skip imports: Partial codeFull runnable code
Huge beads: 2000+ linesSplit further
Forget tests: Implementation without .4-.8Always 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