From armory
Decomposes feature requests into phased task boards with dependency mapping, parallelization flags, risk flags, edge cases, and test matrices.
How this skill is triggered — by the user, by Claude, or both
Slash command
/armory:task-decomposerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Transforms ambiguous feature requests into concrete, implementable task sequences:
Transforms ambiguous feature requests into concrete, implementable task sequences: identifies acceptance criteria, decomposes into tracer-bullet vertical slices with effort sizing, maps dependencies and parallelization, enumerates edge cases, plans testing, labels HITL/AFK readiness, and flags risks — producing a ready-to-execute task board.
When to use this skill vs native decomposition: The base model decomposes features well in an ad-hoc format. Use this skill specifically when you need the structured output: phased task tables with dependency mapping, parallelization flags, risk flags, and integrated test strategy. If you just need a quick list of steps, ask directly without invoking this skill.
| File | Contents | Load When |
|---|---|---|
references/decomposition-patterns.md | Feature → task decomposition strategies, granularity guidelines | Always |
references/edge-case-checklist.md | Common edge case categories by domain (web, API, data, CLI) | Edge case identification needed |
references/dependency-mapping.md | Dependency graph construction, critical path identification | Multi-task breakdown |
references/sizing-guide.md | Effort estimation guidance (S/M/L), complexity indicators | Effort sizing needed |
Before decomposing, check for repo-local agent context:
docs/agents/domain.md for CONTEXT.md, CONTEXT-MAP.md, and ADR lookup rulesdocs/agents/triage-labels.md for readiness labels when tasks become issuesCONTEXT.md or relevant context-local glossary for task titles and acceptance criteria.out-of-scope/ for durable rejections that may affect scopeContinue if these files are absent, but state that the plan is using inferred vocabulary.
Break the feature into tracer-bullet slices first, then split oversized slices into tasks. Each slice should deliver a narrow but complete path through the affected layers. Avoid horizontal breakdowns where one issue only creates schema, another only creates API, and another only creates UI unless the work is pure infrastructure.
| Granularity | Size | Example |
|---|---|---|
| Too coarse | "Build the search feature" | Not actionable |
| Right level | "Exact-match product search returns results end-to-end" | Single PR, testable |
| Too fine | "Import the search library" | Not independently meaningful |
Right granularity test: Each task should be completable in a single PR, testable in isolation, and deliverable independently. A completed vertical slice should be demoable or verifiable without waiting for unrelated slices.
Group tasks into phases:
| Phase | Purpose | Contains |
|---|---|---|
| Setup | Shared contracts or migrations that unblock slices | Types, schemas, fixtures |
| Slice 1 | First end-to-end behavior | Minimal data, logic, API, UI/CLI path |
| Slice N | Incremental capability | One user-visible behavior or operational capability |
| Hardening | Cross-slice edge cases and quality gates | Performance, security, docs, cleanup |
Label each slice:
For each task, enumerate edge cases:
For each task, identify what to test:
| Test Level | What to Test | Who Writes |
|---|---|---|
| Unit | Individual functions, pure logic | During implementation |
| Integration | Component interactions, API endpoints | After integration phase |
| Manual | User flows, visual correctness | After polish phase |
Identify which tasks depend on others:
For each risk, identify mitigation:
| Risk Type | Example | Mitigation |
|---|---|---|
| Technical unknown | "Never used WebSockets before" | Spike/prototype first |
| External dependency | "Requires API access we don't have" | Request early, use mocks |
| Scope uncertainty | "Requirements may change" | Implement core first, defer edge cases |
| Performance risk | "May be slow with 1M rows" | Add benchmark task, define acceptable threshold |
## Task Decomposition: {Feature Name}
### Feature Summary
{One paragraph describing what this feature does and why}
### Acceptance Criteria
- [ ] {Testable statement 1}
- [ ] {Testable statement 2}
- [ ] {Testable statement 3}
### Scope
- **In scope:** {what's included}
- **Out of scope:** {what's excluded}
### Task Breakdown
#### Phase 1: Foundation
| # | Slice / Task | Type | Effort | Dependencies | Parallel |
|---|--------------|------|--------|--------------|----------|
| 1.1 | {task description} | {AFK/HITL} | {S/M/L} | None | Yes |
| 1.2 | {task description} | {AFK/HITL} | {S/M/L} | 1.1 | No |
#### Phase 2: Vertical Slices
| # | Slice / Task | Type | Effort | Dependencies | Parallel |
|---|--------------|------|--------|--------------|----------|
| 2.1 | {end-to-end behavior} | {AFK/HITL} | {S/M/L} | 1.x | Yes |
| 2.2 | {end-to-end behavior} | {AFK/HITL} | {S/M/L} | 1.x | Yes |
#### Phase 3: Hardening
| # | Task | Type | Effort | Dependencies | Parallel |
|---|------|------|--------|--------------|----------|
| 3.1 | {cross-slice quality gate} | {AFK/HITL} | {S/M/L} | 2.x | No |
### Edge Cases
| # | Edge Case | Handling | Phase |
|---|-----------|----------|-------|
| 1 | {edge case} | {how to handle} | {which phase} |
### Test Strategy
#### Unit Tests
- {Component}: {what to test}
#### Integration Tests
- {Flow}: {what to test}
#### Manual Verification
- {Scenario}: {what to check}
### Risk Flags
- {Risk}: {mitigation strategy}
### Agent Brief Notes
- {Any interface contracts, acceptance criteria, or out-of-scope boundaries that should be copied into ready-for-agent issues}
| Problem | Resolution |
|---|---|
| Feature description is vague | State assumptions, decompose what's known, mark uncertain tasks with "pending clarification." |
| Feature is too large (20+ tasks) | Split into multiple features. A feature that takes months is a project, not a feature. |
| No clear acceptance criteria | Help the user define them: "What does done look like? What would you demo?" |
| Technical stack unknown | Decompose at the logical level (data model, business logic, API, UI) without implementation specifics. |
Push back if:
npx claudepluginhub mathews-tom/armory --plugin armoryDecomposes specs into ordered, verifiable tasks with acceptance criteria using vertical slicing and dependency graphs. Use for large tasks, scope estimation, or parallel agent work.
Breaks complex features into atomic JSON subtasks with dependencies, acceptance criteria, deliverables, and agent assignments. Use for multi-file changes or parallelizable work.
Breaks a designed feature into atomic ≤1-day tasks with a dependency graph, per-task Definition of Done, and a machine-readable tasks.json for the implement engine. Refuses unless spec.md, sad.md, and an Accepted ADR exist.