Skip to content

[Bug] /dev-story re-reads full ADRs despite /create-stories embedding Decision Summary as "what programmer reads instead of the ADR" #63

Description

@Shtruk

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:

  1. /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.
  2. 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

  1. Open Claude Code in a project using this template
  2. Run /create-stories <epic-slug> to generate stories from an ADR
  3. Open one of the generated story files — confirm the Context section
    contains **ADR Decision Summary**: and an ## Implementation Notes
    section
  4. Run /dev-story <story-path> against that story
  5. 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)
  6. 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

  • Skill: dev-story (primary), create-stories (contract definer)
  • Agent
  • Hook
  • Rule
  • Template
  • Documentation

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions