---
name: task-breakdown
description: Break a very complicated request into durable numbered JSON briefs under `.tasks/`. Use when the problem is too broad, ambiguous, or multi-track to plan in one pass. Do not use for narrow tasks or work that already has a concise executable plan.
---
## Use when
- the request spans multiple subproblems that should be tracked separately
- the original ask is broad or ambiguous enough that one plan would stay vague
- you want durable machine-readable narrowed problem briefs under `.tasks/`

## Do not use when
- the task is already a single concrete bug fix or feature
- one concise plan is enough
- the work is docs-only and does not need separate execution tracks

## Inputs
- original user request
- relevant constraints already known from repository instructions or current context
- any existing `.tasks/*.json` files

## Outputs
- root `.tasks/` exists
- one new numbered JSON file per narrowed subproblem
- each JSON file is small, specific, and ready to hand off to `plan` or `implement`

## Task file contract
Create files named `NNN-short-slug.json` with a three-digit zero-padded prefix.
Continue from the highest existing numeric prefix in `.tasks/`; start at `001` when the directory is empty.

Each JSON file should contain:
- `id`: the numeric identifier as a zero-padded string
- `title`: short human-readable problem name
- `status`: start as `pending`
- `source_request`: the original broader request in one sentence
- `narrowed_problem`: the specific problem this file isolates
- `constraints`: array of hard constraints or invariants
- `unknowns`: array of unresolved questions
- `acceptance_criteria`: array of outcomes that make this narrowed problem done
- `next_skill`: usually `plan` or `implement`

Keep every file under roughly 40 lines and avoid embedding full plans, transcripts, or speculative solutions.

If the original request decomposes into only one real problem after narrowing, create a single JSON file anyway rather than forcing fake subproblems.

## Template
Use `assets/task.template.json` in this skill folder as the starting shape.

## Success criteria
- `.tasks/` exists at the repo root
- numbering is monotonic and gap-tolerant
- each JSON brief describes one actionable problem only
- the follow-on skill is obvious from the file contents

## Routing
Calling this skill means execute this flow:
1. ensure `.tasks/` exists at the repo root
2. inspect existing `.tasks/*.json` files to determine the next number
3. spawn `planner` to narrow the original request into discrete subproblems
4. write one numbered JSON file per narrowed problem
5. hand each resulting problem to `plan` or `implement` as appropriate

Do not stop at prose-only decomposition. The skill is complete only after the numbered JSON files exist.
If `planner` cannot be spawned, report the skill as blocked.
