Skip to content

story-116: Every brief is titled for the behaviour it produces, defects included - #172

Merged
jerodw merged 2 commits into
mainfrom
story/story-116
Sep 8, 2026
Merged

story-116: Every brief is titled for the behaviour it produces, defects included#172
jerodw merged 2 commits into
mainfrom
story/story-116

Conversation

@jerodw

@jerodw jerodw commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Story

Every brief is titled for the behaviour it produces, defects included.

A brief's title is the line a developer reads in a tracker column, and nothing told a writer how to pitch it. The three places that describe a title all said the same thing about what it is not — not part of what a brief is filed under, so phrase it freely — and nothing about what it should say.

The schema went further and taught a split: "what is wrong where the brief states a defect, what should exist where it states work to be done". So defects were titled for the state the system is in today — A pending outbox entry never says why it is pending — and a tracker column read as a list of complaints in which every line describes something that will not exist once the work lands.

One rule, defects included

A title states the finished behaviour, in the present tense, as though it already holds. A pending outbox entry says why it is pending.

The fact that something is broken now is carried by category and severity, which is what those fields are for, and by the body's opening line. The title does not need to carry it a fourth time.

The clause saying a title is deliberately not part of the identity stays, with its reason: two writers of one brief will phrase it differently, and filing on the phrasing would file it twice.

Evidence

  • Suite: 5386 passed, 1 skipped (exit 0)
  • Clean clone with the story committed: exit 0
  • Verification passed, no blocking issues
  • 0 retries, 0 self-routes, no correction pass, $14.43
  • New module tests/test_a_brief_is_titled_for_its_end_state.py (782 lines); 9 files changed, +865 / −6

This is the first story planned from a filed brief

Its artifact opens "Planned from the brief filed under key 169" — issue #169, filed by the Inspector, fetched by l5-plan --brief and handed to the planner as the request. The loop story-096 built is now closed end to end: the Inspector files a brief to the tracker, l5-plan reads it back whole, and a story comes out the other side.

Notes for review

The one unverified note is honest and not closable by machine. Whether the four documents state the rule in each document's own voice, rather than as near-paraphrases of one another, is judged by reading them. No scan produces that evidence.

Naming convention, for continuity. This is the title-side counterpart to the slug convention adopted on 2026-09-07: a slug names the rule that holds after the fix rather than the defect, and now a title does too. Two open briefs were renamed by hand under that convention; this story makes it the standing rule for everything filed from here.

🤖 Generated with Claude Code

https://claude.ai/code/session_019WkxmJ5ArLEaC2RDPGkbRU

@jerodw
jerodw merged commit e1637b6 into main Sep 8, 2026
3 checks passed
@jerodw
jerodw deleted the story/story-116 branch September 8, 2026 04:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant