Sprint plan
Start the Plan phase of the SPARK loop: the Engineering Manager turns an approved spec into a technical plan — architecture decision with rejected alternatives, ordered task breakdown with definitions of done, test strategy and risks. Use after the spec is approved, or to revise a plan after review/QA findings.From its SKILL.md
npx -y skills add a-lottes/aSPARK --skill sprint-planAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 24 stars24 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.
SKILL.md
4.0 KB, as published. Nobody here has run it
/sprint-plan — Plan (Engineering Manager)
You are running the Plan ceremony. The Engineering Manager locks the
"how" so that /increment never has to invent architecture on the fly.
Input
Optional argument: the feature name. Resolve as usual (single feature in
.spark/ → use it; several → ask).
Steps
- Check the gate.
.spark/<feature-name>/spec.mdmust exist with statusapproved. If not, STOP and tell the user what's missing —/story-timeor/look-and-feelcome first. Never plan against a draft. The gate needs the spec'sStatusrow, not the spec: theengineering-manageragent reads it whole in its own context, and a copy in this conversation would only crowd out the phases still to come.- Only after the gate has passed, resolve optional tool availability,
once: if the session exposes MCP tools whose names end in
stalenessandimpact(they are normally namespaced, e.g.mcp__aspark-graph__staleness), treat that as the available surface and run no command; otherwise probe once, read-only, withcommand -v aspark-graph >/dev/null 2>&1 && echo runner=yes || echo runner=no; test -f .aspark-graph/graph.json && echo graph=yes || echo graph=no— it reports both facts and always exits 0, so the absent case never looks like a failed command. Resolve both facts — is there a surface, and does.aspark-graph/graph.jsonexist — and act on the four states in${CLAUDE_PLUGIN_ROOT}/tools/aspark-graph.md: pass the tool file in step 2 only when both hold; say its one-sentence hint, at most once, in either mixed state; and when neither holds, say nothing at all and continue exactly as you would otherwise. Never probe in a run that already stopped, and never let the outcome change a gate.
- Only after the gate has passed, resolve optional tool availability,
once: if the session exposes MCP tools whose names end in
- Delegate to the Engineering Manager. Invoke the
engineering-manageragent with the feature paths and the plan template from${CLAUDE_PLUGIN_ROOT}/templates/plan.md. Point it at.spark/constitution.mdif it exists — the architecture must live within its technical constraints. If a tool resolved as available in step 1, pass${CLAUDE_PLUGIN_ROOT}/tools/aspark-graph.mdtoo — one more path alongside the template, nothing else. For a plan revision (rework after/peer-reviewor/demo-dayfindings), pass those findings along and say explicitly that this is a revision. - Relay questions. If the agent returns technical questions that change
the architecture, put them to the user (AskUserQuestion for enumerable
choices), then re-invoke with the answers.
- The agent may also return a tool query request — it has no shell of
its own. Run only the read-only
querycall it names, exactly as the tool file documents it, and re-invoke with the result. Never run a build, an install, or anything that writes. If the call fails or returns nothing, say so and let the agent proceed without it.
- The agent may also return a tool query request — it has no shell of
its own. Run only the read-only
- Present the plan. Show the user: the architecture decision with the rejected alternatives, the task table (count, order, walking-skeleton start), the test strategy, and the top risks. This is the moment for the user to veto the approach — say so.
- Iterate on feedback via the agent until the user is satisfied.
- Close the gate. Walk the PLAN GATE checklist with the user. On their
explicit approval: set the plan status to
approved.
Rules
- Never set
approvedwithout the user's explicit approval. - If planning surfaced a spec problem, don't patch the spec here — offer to
run
/story-timeto rework it, then return.
Handoff
- Plan approved →
/increment(build it)