mirror of
https://github.com/obra/superpowers.git
synced 2026-06-13 06:09:04 +08:00
fix(skills): plans reference the spec instead of restating it — end to end (SUP-333 A)
Consolidates the reference-discipline change with every consumer of it, so this PR is independently mergeable (previously split across two stacked PRs whose intermediate state left the SDD spec reviewer blind). writing-plans: plans reference the spec — never restate, paraphrase, or summarize it; spec owns WHAT/WHY, plan owns HOW; cite by path in the header (**Spec:** template line) and by section where a task needs context; No Placeholders repetition stays intra-plan; no-spec branch scoped to conversational-requirements-only (eval-caught: an agent used an unscoped no-spec branch to skip writing the spec entirely). brainstorming: spec path loophole closed (claude shortened docs/superpowers/specs/ to docs/specs/, documented run); an existing differently-named docs dir is not a "user preference". subagent-driven-development: Spec Context section — the controller reads the plan-cited spec and pastes cited sections into implementer and spec-reviewer prompts; the spec reviewer's diff-only rule gets a spec-document exception. Without this, reference discipline starves the pipeline of requirements. executing-plans: Step 1 reads the spec the plan cites (the non-subagent path; plans are no longer self-contained). Eval evidence (quorum, full-stack text): cost-spec-plan-duplication claude 3/3 pass (RED: 5/5 agents failed), codex pass, pi pass (the 683-line duplication RED agent); sdd-spec-context-consumed functional pass with deterministic dispatch-prompt check; writing-plans-no-spec-conversational 2/2 pass; triggering-writing-plans canary 3/3. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,16 +7,18 @@ description: Use when you have a spec or requirements for a multi-step task, bef
|
||||
|
||||
## Overview
|
||||
|
||||
Write comprehensive implementation plans assuming the engineer has zero context for our codebase and questionable taste. Document everything they need to know: which files to touch for each task, code, testing, docs they might need to check, how to test it. Give them the whole plan as bite-sized tasks. DRY. YAGNI. TDD. Frequent commits.
|
||||
Write comprehensive implementation plans assuming the engineer has zero context for our codebase and questionable taste. Document everything they need to execute: which files to touch for each task, code, testing, docs they might need to check, how to test it. Give them the whole plan as bite-sized tasks. DRY. YAGNI. TDD. Frequent commits.
|
||||
|
||||
Assume they are a skilled developer, but know almost nothing about our toolset or problem domain. Assume they don't know good test design very well.
|
||||
|
||||
**Plans reference the spec; they never restate, paraphrase, or summarize it.** The spec owns the WHAT and WHY — requirements, acceptance criteria, design decisions; the plan owns the HOW — tasks, files, code, commands. Cite it by path in the header and by section where a task needs context. Reference discipline never means skipping the spec: if brainstorming produced one, it exists and the plan cites it. No Placeholders still requires repeating code and commands WITHIN the plan; copying FROM the spec is different: a step that needs a requirement's prose is under-specified — turn it into a concrete action. Snapshotting spec text into the plan hides drift, not prevents it. "Zero context" means each step is mechanically executable, not that the plan repeats the spec.
|
||||
|
||||
**Announce at start:** "I'm using the writing-plans skill to create the implementation plan."
|
||||
|
||||
**Context:** If working in an isolated worktree, it should have been created via the `superpowers:using-git-worktrees` skill at execution time.
|
||||
|
||||
**Save plans to:** `docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md`
|
||||
- (User preferences for plan location override this default)
|
||||
- (An explicit user instruction overrides this default; an existing differently-named docs directory does not)
|
||||
|
||||
## Scope Check
|
||||
|
||||
@@ -53,6 +55,8 @@ This structure informs the task decomposition. Each task should produce self-con
|
||||
|
||||
**Goal:** [One sentence describing what this builds]
|
||||
|
||||
**Spec:** [Path to the spec doc, e.g. `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` — requirements and design decisions live there; do not restate them here. Only if no spec doc exists (requirements arrived conversationally; brainstorming never ran): write "none — requirements:" and state them once here, not per task]
|
||||
|
||||
**Architecture:** [2-3 sentences about approach]
|
||||
|
||||
**Tech Stack:** [Key technologies/libraries]
|
||||
|
||||
Reference in New Issue
Block a user