From sdd
Breaks a spec and plan into small, ordered, self-contained tasks. Each task is completable in a single agent session with tests. Creates a GitHub issue and feature branch. Use when user says "break into tasks", "create tasks", "task breakdown", "decompose", "create issue", or after running /plan. Do NOT use without a spec and plan in context. Requires gh CLI authenticated and a Git repository.
npx claudepluginhub robertraf/rob-agent-workflow --plugin sddThis skill is limited to using the following tools:
You are breaking down the plan into executable tasks: **Divide and conquer.**
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
You are breaking down the plan into executable tasks: Divide and conquer.
Each task must be self-contained and unambiguous. The agent should not need to make assumptions or search for missing context. If a task requires the agent to guess, it's not ready yet.
You need the spec and plan from /spec and /plan. If they are not in context:
$ARGUMENTS
If $ARGUMENTS is empty and no spec/plan is in context, ask the user to paste them before continuing.
gh auth status # GitHub CLI authenticated
git remote -v # Has a GitHub remote
git branch --show-current # On a clean branch
If any check fails, report and stop.
From the plan, create an ordered task list. Each task must be:
### Task N: [imperative description]
**Depends on:** [task numbers, or "none"]
**Parallel:** [yes/no — can run alongside other tasks]
**What to do:**
1. [specific action]
2. [specific action]
3. [specific action]
**Acceptance criteria:**
- [ ] [testable criterion from spec]
- [ ] [testable criterion]
- [ ] Tests pass
**Files to create/modify:**
- `path/to/file` — [what changes]
Show the complete task list, then use the AskUserQuestion tool to present an interactive approval prompt:
Task breakdown complete — N tasks identified.
Task 1: [title]
Task 2: [title] (depends on 1)
Task 3: [title] (parallel with 2)
...
Parallelism: Tasks [X, Y] can run concurrently.
Estimated commits: N
Question: "Task breakdown complete — N tasks identified. How do you want to proceed?"
Header: "Task review"
Options:
If the user selects Go: proceed to create the GitHub issue and branch.
If the user selects Go with comments: read their feedback, carry it forward as context for implementation, and proceed to create the issue.
If the user selects Request changes (or selects "Other" with feedback): revise the breakdown incorporating their feedback, then present the gate again.
Do NOT create the issue until the user approves the task breakdown.
Once approved, create the GitHub issue with the full spec, plan, and task checklist.
All issue content — title, description, task names — must be written in English, regardless of what language the user, the spec, or the plan used. This is non-negotiable: GitHub issues are the shared contract across sessions and agents, and they must be unambiguous for any reader.
Use conventional commit style for the issue title:
<type>(<scope>): <imperative description>
feat, fix, refactor, chore, perf, docs — same as conventional commitsauth, api, ui)Examples:
feat(auth): add OAuth2 login with Google and GitHubfix(checkout): prevent double-charge on concurrent submissionsrefactor(api): migrate REST endpoints to GraphQL schemagh issue create \
--title "<type>(<scope>): <imperative description — IN ENGLISH>" \
--body "## Objective
<1-2 sentence summary of WHAT this feature/fix achieves and WHY it matters>
## Acceptance criteria
- [ ] Given [precondition], when [action], then [expected result]
- [ ] Given [precondition], when [action], then [expected result]
- [ ] All tests pass
## Architecture overview
<technical plan summary — architecture decisions, patterns, affected components>
\`\`\`mermaid
graph TD
A[Component/Module affected] --> B[New/Modified component]
B --> C[Downstream dependency]
B --> D[Downstream dependency]
\`\`\`
> Replace with an actual architecture diagram showing the components involved
> and how they interact. Use flowchart for data/control flow, classDiagram for
> structural changes, or sequenceDiagram for interaction patterns.
> Omit this section if the change is trivial (e.g., single-file fix).
## Tasks
- [ ] Task 1: [title] — [brief what and why]
- [ ] Task 2: [title] — [brief what and why]
- [ ] Task 3: [title] — [brief what and why]
### Dependency graph
\`\`\`mermaid
graph LR
T1[Task 1: title] --> T2[Task 2: title]
T1 --> T3[Task 3: title]
T2 --> T4[Task 4: title]
T3 --> T4
\`\`\`
> Show task dependencies. Tasks without arrows between them can run in parallel.
> Omit if all tasks are sequential or there are fewer than 3 tasks.
## Context for implementers
- **Branch:** \`feat/<issue-number>-<short-kebab-name>\`
- **Key files:** \`path/to/main/file\`, \`path/to/other/file\`
- **Constraints:** [any technical constraints, API limits, backward compatibility, etc.]
## References
- Spec produced by: /spec
- Plan produced by: /plan" \
--label "<feature|bug|chore>"
Include Mermaid diagrams when they add clarity — not for every issue:
| Include diagram when | Skip diagram when |
|---|---|
| Multiple components interact | Single-file change |
| Task dependencies are non-linear | All tasks are sequential |
| Data flows through multiple layers | Simple CRUD operation |
| Architecture changes affect boundaries | Cosmetic or config change |
Capture the issue number and URL.
Before creating the branch, confirm you are in the correct repository:
git remote get-url origin # verify this is the expected repository
Show the remote URL to the user and ask them to confirm it is the correct repo before creating any branch. If the user's project has multiple repos (e.g., frontend and backend), this prevents creating branches in the wrong one.
Once confirmed, create the branch:
git checkout -b feat/<issue-number>-<short-kebab-name>
Where:
<issue-number> is the GitHub issue number<short-kebab-name> is a 2-5 word kebab-case summaryPush the branch immediately so it is tracked on the remote and linked to the issue:
git push -u origin feat/<issue-number>-<short-kebab-name>
This ensures:
✓ Tasks: N tasks defined
✓ Issue: #<number> — <title> (<URL>)
✓ Branch: feat/<number>-<name> (pushed to remote)
✓ Repository: <remote URL>
──────────────────────────────────────────────
Next steps:
1. Run /clear (fresh context for implementation)
2. Enable auto-accept mode
3. Run /implement (paste the tasks if asked)
──────────────────────────────────────────────
These are common failure modes when breaking down tasks. Watch for them:
git remote get-url origin before creating a branch. A branch in the wrong repo wastes time and causes confusion.src/services/auth.ts will create merge conflicts when parallelized. Restructure so each task owns distinct files.git remote get-url origin with the user. A branch in the wrong repo is worse than no branch at all./ship. Early push ensures the branch is visible, trackable, and linked to the issue.