Description
The /create-stories skill (.claude/skills/create-stories/SKILL.md
line 224-229) embeds a distilled ADR Decision Summary + Implementation
Notes into every story file and states the contract explicitly:
Implementation Notes — Derived from ADR-NNNN Implementation Guidelines:
[Specific, actionable guidance from the ADR... This is what the
programmer reads instead of the ADR.]
But /dev-story (.claude/skills/dev-story/SKILL.md Phase 2, lines
74–104) violates this contract on every invocation by instructing the
agent to re-read the full ADR file:
"Read all of the following simultaneously..."
"### The governing ADR — Read docs/architecture/[adr-file].md. Extract:
The full Decision section / The Implementation Guidelines section /
The Engine Compatibility section / The ADR Dependencies section."
"Do not rely on any inline text in the story file (may be stale)."
This creates two problems:
/create-stories' distillation work is wasted. Every /dev-story
invocation re-reads ~70k tokens of ADR content that /create-stories
already distilled into the story.
- Single-story sessions hit 67%+ context capacity for one story.
Empirically measured in a fresh session: ~133k of a 200k window
consumed before implementation begins, mostly from full ADR reads.
A typical story (3-5k tokens) already embeds Decision Summary +
Implementation Notes + Acceptance Criteria with concrete worked examples
- QA test cases. The full ADR (often 35k+ per file, two ADRs = 70k+) is
redundant at implementation time.
Steps to Reproduce
- Open Claude Code in a project using this template
- Run
/create-stories <epic-slug> to generate stories from an ADR
- Open one of the generated story files — confirm the Context section
contains **ADR Decision Summary**: and an ## Implementation Notes
section
- Run
/dev-story <story-path> against that story
- Observe in the tool-call trace:
/dev-story calls Read on the
governing ADR file (often hitting the 25k Read cap on larger ADRs
and requiring offset/limit retries)
- The Decision Summary already in the story is ignored
Expected Behavior
/dev-story should treat the story's embedded **ADR Decision Summary**:
## Implementation Notes as the primary source of truth for ADR
content at implementation time, in line with /create-stories' stated
contract.
/story-readiness already catches staleness (Manifest Version checks),
and /code-review catches violations post-implementation — these two
gates make full ADR re-read redundant.
Actual Behavior
/dev-story re-reads the full ADR file in Phase 2, ignoring the
distilled summary in the story. On ADRs exceeding the 25k Read cap
(common for non-trivial decisions), it hits the cap, retries with
offset+limit, doubling the read cost.
Environment
- OS: macOS 14 (also reproduced on Linux containers)
- Shell: zsh / bash
- Claude Code version: any recent
- Template version: v1.0.0 (commit 984023d)
- jq installed: N/A
- Python installed: N/A
Affected Component
Description
The
/create-storiesskill (.claude/skills/create-stories/SKILL.mdline 224-229) embeds a distilled ADR Decision Summary + Implementation
Notes into every story file and states the contract explicitly:
But
/dev-story(.claude/skills/dev-story/SKILL.mdPhase 2, lines74–104) violates this contract on every invocation by instructing the
agent to re-read the full ADR file:
This creates two problems:
/create-stories' distillation work is wasted. Every/dev-storyinvocation re-reads ~70k tokens of ADR content that
/create-storiesalready distilled into the story.
Empirically measured in a fresh session: ~133k of a 200k window
consumed before implementation begins, mostly from full ADR reads.
A typical story (3-5k tokens) already embeds Decision Summary +
Implementation Notes + Acceptance Criteria with concrete worked examples
redundant at implementation time.
Steps to Reproduce
/create-stories <epic-slug>to generate stories from an ADRcontains
**ADR Decision Summary**:and an## Implementation Notessection
/dev-story <story-path>against that story/dev-storycallsReadon thegoverning ADR file (often hitting the 25k Read cap on larger ADRs
and requiring offset/limit retries)
Expected Behavior
/dev-storyshould treat the story's embedded**ADR Decision Summary**:## Implementation Notesas the primary source of truth for ADRcontent at implementation time, in line with
/create-stories' statedcontract.
/story-readinessalready catches staleness (Manifest Version checks),and
/code-reviewcatches violations post-implementation — these twogates make full ADR re-read redundant.
Actual Behavior
/dev-storyre-reads the full ADR file in Phase 2, ignoring thedistilled summary in the story. On ADRs exceeding the 25k Read cap
(common for non-trivial decisions), it hits the cap, retries with
offset+limit, doubling the read cost.
Environment
Affected Component
dev-story(primary),create-stories(contract definer)