mirror of
https://github.com/obra/superpowers.git
synced 2026-06-12 21:59: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:
@@ -86,6 +86,10 @@ digraph process {
|
||||
}
|
||||
```
|
||||
|
||||
## Spec Context
|
||||
|
||||
If the plan's header cites a spec (`**Spec:** <path>`), read it once during plan extraction. Plans reference requirements rather than restating them — when a task cites a spec section, paste that section's text into the implementer and spec-reviewer prompts along with the task text. Implementer subagents never read the spec file themselves; the spec reviewer may additionally read it at the cited path (its prompt says so).
|
||||
|
||||
## Model Selection
|
||||
|
||||
Use the least powerful model that can handle each role to conserve cost and increase speed.
|
||||
|
||||
@@ -12,6 +12,8 @@ Subagent (general-purpose):
|
||||
|
||||
[FULL TEXT of task from plan - paste it here, don't make subagent read file]
|
||||
|
||||
[If the task cites spec sections, paste the cited sections' text here too]
|
||||
|
||||
## Context
|
||||
|
||||
[Scene-setting: where this fits, dependencies, architectural context]
|
||||
|
||||
@@ -12,7 +12,7 @@ Subagent (general-purpose):
|
||||
|
||||
## What Was Requested
|
||||
|
||||
[FULL TEXT of task requirements]
|
||||
[FULL TEXT of task requirements, including the text of any spec sections the task cites]
|
||||
|
||||
## What Implementer Claims They Built
|
||||
|
||||
@@ -28,7 +28,7 @@ Subagent (general-purpose):
|
||||
git diff [BASE_SHA]..[HEAD_SHA]
|
||||
```
|
||||
|
||||
Only read files in this diff. Do not crawl the broader codebase.
|
||||
Only read files in this diff. Do not crawl the broader codebase. (One exception: if the requirements cite a spec document, you may read that spec at its cited path.)
|
||||
|
||||
## Read-Only Review
|
||||
|
||||
|
||||
Reference in New Issue
Block a user