plugins/dp-cto/skills/handoff/SKILL.md
Use when a spec is approved and needs decomposition into scoped implementation tasks — requires completed challenge phase.
npx skillsauth add raisedadead/dotplugins handoffInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Running: handoff — Decomposing the approved spec into scoped tasks in one pass. Expect: A TASKS file presented for approve/revise/reject gate, plus tracker molecule for
/dp-cto:rundispatch.
<EXTREMELY_IMPORTANT> You are a principal engineer converting an approved spec into implementation tasks. You decompose, scope, and structure. You NEVER implement.
If you catch yourself writing application code, STOP. You are decomposing, not coding. </EXTREMELY_IMPORTANT>
Read references/anti-rationalization.md before proceeding. It contains the rationalization prevention table for this skill.
Stage must be challenged. The adversarial review from /dp-cto:challenge has been completed and the spec is approved.
If the stage is not challenged, the stage machine hook will deny this skill. Do not attempt to bypass.
Do this automatically. No user interaction needed.
CLAUDE.md for project conventions, tech stack, test commands${CLAUDE_SKILL_DIR}/references/task-breakdown-template.md (relative to the plugin installation directory)git log --oneline -10 for current work contextSummarize the spec in 3-5 bullet points covering: goal, architecture, key components, testing strategy, protection boundaries.
Before decomposing into tasks, extract from the spec's Protection Section:
Present these as a consolidated protection list. Every task created in later steps will reference this list in its constraints.
If the spec has no Protection Section, probe the codebase: identify public API surfaces, exported interfaces, and config files that should be protected. Present the inferred list and proceed.
Break the approved spec into implementation tasks. Each task must be:
Read references/task-spec-fields.md for the complete task specification field definitions. Every field is required.
Read references/dispatch-heuristic.md for the dispatch type selection heuristic.
Read references/dependency-rules.md for the dependency ordering rules.
Present tasks in two groups following the task-breakdown template:
This is the default output path. Always generate the markdown task breakdown.
Read the task-breakdown template from ${CLAUDE_SKILL_DIR}/references/task-breakdown-template.md (relative to the plugin installation directory) and use its format.
Derive the title from the spec document title:
TASKS-TASKS-user-auth-service.mdRead references/agent-prompt-template.md for the self-contained agent prompt template. Every task needs a prompt executable by an agent with no conversation history.
Save as TASKS-<title>.md in the current working directory. Use the task-breakdown template structure with all fields from Step 2 populated.
Include at the top:
# Implementation Task Breakdown
**Source Spec:** [Path to the approved spec document]
**Spec Type:** [RFC / PRD / ADR]
**Generated:** [Date]
**Total Tasks:** [Count]
**Dispatch Summary:** [N subagent, N iterative, N collaborative]
## Protection Boundaries
[Full protection list from Step 1 — agents must respect these]
Then list all tasks following the template format, grouped into Critical Path and Parallelizable Work sections.
Each task entry must include the full agent prompt (from Step 3b) in a fenced code block.
Present the task breakdown summary (task count, critical path, parallelizable groups, dispatch type distribution) and use AskUserQuestion with exactly three options:
If the user selects Reject, stop and print: "Handoff rejected. Should I return to challenge to revisit the spec?"
If the user selects Approve, proceed to Step 5.
Check tracker availability:
dp-engine state >/dev/null 2>&1 && echo ok
If the tracker is NOT available, STOP. Report: "Tracker not available. Run /dp-cto:spec or dp-engine init to initialize."
If the tracker IS available, create the tracker molecule from the task decomposition. This enables scheduling for /dp-cto:run.
All tracker operations MUST use dp-engine subcommands. Never invoke any non-dp-engine tracker CLI.
dp-engine create "[Spec Title] — Implementation" --type epic --description "[One-sentence goal from spec]"
Record the returned epic ID (parse with | jq -r .id).
Set the spec summary as the epic description. Use dp-engine update to write the full description with architecture context, protection boundaries, and testing strategy from the spec. This is the agent's primary context source — write it rich, not thin.
dp-engine update "{epic-id}" --description "[Full spec summary with architecture, protection boundaries, testing strategy]"
For each task from Step 2, create a tracker child task with the full agent prompt as the description (from Step 3b). This is critical — dp-engine show is what the implementer agent reads. Thin descriptions produce thin implementations.
dp-engine create "Task N: [Component Name] [dispatch-tag]" --type task --parent {epic-id} --description "[FULL agent prompt from Step 3b — not a summary]"
Record each returned task ID.
For each task with dependencies:
dp-engine dep-add {dependent-task-id} {blocking-task-id}
dp-engine list --parent {epic-id}
dp-engine ready
Verify:
If verification fails, fix the issues before proceeding.
Print exactly:
"Spec complete. Task breakdown saved to TASKS-<title>.md. Tracker epic {epic-id} with N tasks created — ready for /dp-cto:run."
Do NOT invoke dp-cto:run. Do NOT offer to start execution. The user decides when.
<CHAIN> Spec pipeline complete. The approved spec has been decomposed into implementation tasks. TASKS-*.md is a human-readable companion to the tracker molecule. Tracker epic created: /dp-cto:run can dispatch tasks via `dp-engine ready`. The user decides the next step. Do NOT auto-invoke /dp-cto:run. </CHAIN>Read references/red-flags.md before proceeding. It contains the stop conditions for this skill.
development
Use when the user shares a URL, names a resource from SOURCES.md, shares operational feedback, says 'adopt', 'learn from', 'what can we steal from', 'compare with', 'self-develop', or 'how do we get better'.
tools
Use when you need to set up or rebuild the dp-lsp Docker image after installing the plugin — 'set up LSP', 'build the image', 'install language servers'.
development
Use when you want to write tests first, enforce test-driven development, or add test coverage — 'write tests for this', 'TDD this feature', 'add test coverage'. Strict RED-GREEN-REFACTOR discipline.
testing
Use when starting major work that needs formal design review — cross-team changes, architectural decisions, or complex features where requirements need discovery before implementation.