Planning and task breakdown
Skill codexskills/agent-forge/skills/planning-and-task-breakdown
Production-grade AI agent skills — enhanced alternative to addyosmani/agent-skills. 23 lifecycle skills for Define, Plan, Build, Verify, Review, Ship. Works with OpenCode, Claude Code, Codex, Cursor, Gemini CLI.
npx -y skills add codexskills/agent-forge --skill planning-and-task-breakdownAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Decomposes spec-driven specifications into small, independently verifiable tasks with explicit dependency ordering, acceptance criteria, effort estimation, and clear ownership. Ensures no task is larger than one day and every task has a definition of done.
SKILL.md
9.6 KB, as published. Nobody here has run it
Planning and Task Breakdown
Overview
A spec tells you WHAT to build. Task breakdown tells you HOW to sequence the work. Without it, you get: missed dependencies (built the UI before the API), oversized tasks (takes 2 weeks, status is always "80% done"), and invisible blockers (blocked on design that hasn't started).
This skill decomposes any spec into a directed graph of small, independently verifiable tasks. Each task has:
- A clear owner
- An effort estimate (1-8 hours, never more than one day)
- Acceptance criteria (pass/fail, no subjectivity)
- Dependencies (what must be done first)
- Artifacts (what is produced: code, test, doc, config)
The golden rule: If a task takes longer than one day, it's not a task — it's a project.
When to Use
| Trigger | Description |
|---|---|
| After spec is approved | Before any implementation begins |
| Sprint/iteration planning | Breaking user stories into workable units |
| Onboarding new team member | Giving someone a clear, bounded first task |
| Unblocking stalled work | Finding the smallest next step |
| Estimating delivery date | Summing task estimates with dependency paths |
| Parallel work opportunities | Identifying tasks that can happen simultaneously |
Do NOT use when: the task is trivial (< 1 hour, single person, no dependencies), or when the spec already includes a perfect task breakdown.
Process
Step 1: Extract Tasks from Spec
Read the spec section by section and extract candidate tasks.
Each task candidate should answer:
- What is the specific piece of work?
- What file(s) will be created or modified?
- How do we verify it's done?
Granularity rules:
- A task is too large if it touches more than 3 files
- A task is too large if it would take longer than 8 hours for an experienced engineer
- A task is too small if it's less than 15 minutes (combine with adjacent tasks)
- A task is just right if an engineer can complete it and verify it independently
Step 2: Define Acceptance Criteria
For each task, write 2-5 pass/fail criteria.
Good acceptance criteria:
- "All fields validate correctly" — NO
- "Email field rejects invalid formats. Password field requires 8+ characters." — YES
- "API works" — NO
- "GET /users returns 200 with user list. GET /users/:id returns 404 for nonexistent user." — YES
Step 3: Identify Dependencies
For each task, ask: "What must be true before this task can be completed?"
Common dependency types:
| Type | Example |
|---|---|
| Data dependency | API schema must be defined before UI can consume it |
| Interface dependency | Interface must be agreed before both sides implemented |
| Infrastructure dependency | Database must be provisioned before migrations run |
| Knowledge dependency | Must research X before implementing Y |
| Review dependency | Design must be approved before frontend work |
Step 4: Estimate Effort
Use T-shirt sizing with hourly ranges:
| Size | Hours | Confidence | Action |
|---|---|---|---|
| XS | 0.5-1 | Certain | Do it now |
| S | 1-3 | High | Normal task |
| M | 3-5 | Medium | Break down if > 5 |
| L | 5-8 | Low | Break down. Must not exceed 8. |
| XL | 8+ | Very Low | Must decompose into smaller tasks |
Estimation rule: The person doing the work provides the estimate. Never estimate for someone else.
Step 5: Order the Work
Create a dependency graph.
Dependency graph patterns:
Pattern 1: Sequential (A → B → C)
Task A (API schema) → Task B (Backend logic) → Task C (Frontend UI)
Risk: Blocked if A is delayed.
Mitigation: Start A early, or build a mock for B/C.
Pattern 2: Parallel (A, B → C)
Task A (Auth) ──┐
├──→ Task C (Protected route)
Task B (DB) ────┘
Risk: Merge conflicts on C.
Mitigation: Clear interface contract between A, B, and C.
Pattern 3: Fan-in (A → B, C)
Task A (Shared utility) → Task B (Feature 1)
→ Task C (Feature 2)
Risk: A becomes a bottleneck.
Mitigation: Validate A early, freeze its interface.
Pattern 4: Fan-out (A, B → C, D)
Task A (API) ──→ Task C (Web UI)
Task B (Auth) ─→ Task D (Mobile UI)
Risk: C and D diverge.
Mitigation: Shared types between C and D.
Step 6: Assign Ownership
Every task must have exactly one owner. Shared ownership is no ownership.
If a task truly requires multiple people, it's too large. Break it into sub-tasks.
Step 7: Create the Plan
Output a structured task list with all the above.
Task Template
## Task: [Short, verb-first name]
**ID:** T-001
**Owner:** [name]
**Effort:** [XS/S/M/L] (~[hours]h)
**Depends on:** [T-XXX, T-YYY]
**Blocking:** [T-XXX, T-YYY] (tasks that depend on this)
### Description
[2-3 sentence description of the work]
### Acceptance Criteria
- [ ] Criterion 1 (pass/fail, observable)
- [ ] Criterion 2
- [ ] Criterion 3
### Files
- `src/path/to/file.ts` (create)
- `src/path/to/another.ts` (modify)
### Artifacts
- Code changes
- Tests
- Documentation update (if applicable)
Anti-Rationalization Table
| Temptation | Why It Happens | Why It's Dangerous | What To Do Instead |
|---|---|---|---|
| "This task is too complex to estimate" | Genuine uncertainty | Task becomes a black hole | Break it down until you can estimate each piece |
| "I'll just start and figure it out" | Action bias | You miss dependencies, cause rework | List top 3 unknowns as separate research tasks first |
| "This is obvious, no need to write it down" | Laziness | Team can't see progress, can't parallelize | Write one line per task. 10 minutes saves hours. |
| "Let's estimate in story points" | Process cargo-culting | Points are relative, hours are absolute | Use hours. They map to real calendar time. |
| "All tasks are independent" | Wishful thinking | You discover mid-sprint you're blocked | Check: "Can I deliver task B without task A being done?" |
| "This task will take 2 weeks" | Crunch thinking | No one can see progress | Break into 8-hour chunks with milestones |
| "I'll own everything" | Control issues | Bottleneck — no parallel work | Delegate bounded sub-tasks |
| "We can estimate as a team" | Collaboration theater | Group estimate is the loudest voice, not the most accurate | Each person estimates their own work |
Red Flags
- Any task estimated > 8 hours — must be decomposed
- Dependency chain is longer than 5 tasks deep — risk of serial blocking
- No tasks have dependencies listed — you missed something
- Acceptance criteria include "works properly" or "looks good" — not measurable
- All tasks assigned to one person — bottleneck
- Task descriptions are features, not actions — "Authentication" instead of "Implement login endpoint"
- Estimates are all the same size — no real thinking happened
- Milestone named but no tasks attached — placeholder, not a plan
- No explicit "done" state for any task — can't verify completion
- Plan doesn't include testing tasks — tests are treated as afterthought
Verification
- Every task has an ID — T-001, T-002, etc.
- Every task has an owner — exactly one person
- No task exceeds 8 hours — if it does, decompose it
- Acceptance criteria are pass/fail — no subjective language
- Dependencies are explicit — what must be done first
- Dependency graph is acyclic — no circular dependencies
- Critical path identified — longest dependency chain
- Parallel tasks exist — work can be distributed
- Testing tasks are included — not implicit
- Total effort estimated — sum of all task hours
- Milestones defined — checkpoints with clear outputs
- Risks identified — what could delay each milestone
Plan Output Template
# Implementation Plan: [Feature Name]
## Summary
- **Total tasks:** 12
- **Total effort:** 32 hours (estimated)
- **Critical path:** T-001 → T-003 → T-007 → T-010 → T-012 (18 hours)
- **Parallel tracks:** 3 maximum
- **Estimated calendar time:** 3-4 days (with 2 engineers)
## Dependency Graph
T-001 (Auth schema) ├──→ T-002 (Auth service) ──→ T-005 (Session middleware) │ └──→ T-007 (Protected routes) │ T-003 (DB migrations) ├──→ T-004 (User model) ──→ T-006 (User API) │ └──→ T-008 (User UI) │ T-009 (E2E test setup) └──→ T-010 (Auth E2E tests) ──→ T-011 (User E2E tests) └──→ T-012 (Integration tests)
## Milestones
| Milestone | Tasks | Estimated | Verifiable Outcome |
|-----------|-------|-----------|--------------------|
| M1: Auth foundation | T-001, T-002, T-003 | 8h | Users can register and log in |
| M2: Core API | T-004, T-005, T-006 | 10h | CRUD operations working |
| M3: User interface | T-007, T-008 | 8h | UI connected to API |
| M4: Tests | T-009, T-010, T-011, T-012 | 6h | All scenarios automated |
## Task List
### T-001: Define Auth API schema
**Owner:** Alice
**Effort:** S (~2h)
**Depends on:** None
**Blocking:** T-002, T-005
**AC:**
- [ ] POST /auth/register accepts email + password
- [ ] POST /auth/login returns JWT token
- [ ] Schema validated with Zod
- [ ] OpenAPI spec updated
### T-002: Implement auth service
...