You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Status (2026-07-23): On hold — do not implement yet. This ticket adds a named rule to prose that the #1055 reframe is expected to replace; the reframe's direction (kind-keyed lede archetypes vs the density framing) is being settled by the #1056 gold-set eval. Fold this ticket's substance (no how-to-invoke register; flag naming vs usage enumeration) into the reframe, or revive it standalone if the reframe stalls.
Problem
Changelog and release-notes ledes (the ## What section) keep coming out in an instruction-manual register — sentences that enumerate flags and tell the reader how to invoke a feature. A recent example shipped on #681: the ## What ended with "Use --kb to choose which knowledge base to scan and --stale-after to set how old verification may be before it counts as stale." That is reference-doc content in the wrong channel: it buries the actual delta and makes the lede less likely to be read.
Context
lede-voice.md (source: packages/agents/content/skills/_data/lede-voice.md) is the single source of truth for the changelog-writer subagent. That agent is instructed to read only that file — not CLAUDE.md, AGENTS.md, or saved house-style memories — and explicitly not to work from recall.
The doctrine already catches the instructional case, but only by inference: such a sentence fails Rule 1 (it is neither outcome nor migration) and the "Allowed is not the same as worth it" test. There is no sharply named proscription against how-to-invoke / per-flag usage enumeration.
The rule must live in lede-voice.md to take effect. The agent is single-sourced on that file by design; pointing it at CLAUDE.md is both ineffective (subagents do not auto-load it) and contrary to the agent's one-doctrine-file model.
A named rule with a concrete bad→good example is far harder to miss than inferential coverage, consistent with the principle that agents imitate the nearest concrete example more reliably than a directive read once.
The rule must distinguish permitted flag naming (e.g., --apply named as the load-bearing report-vs-fix distinction the reader acts on) from prohibited usage enumeration (teaching how to invoke). The existing "earns its place" guidance is the natural hook.
lede-voice.md in the consuming environment is a generated/synced file; edits go to the repo source and propagate via codeassembly-agents install.
Proposed solution
Add a named rule to lede-voice.md stating that the lede narrates the change, not how to invoke it: no how-to-invoke phrasing and no per-flag usage enumeration. A flag may be named when the reader must act on it as a behavioral distinction, but the entry must not enumerate flags and their usage — that is reference-doc content, routed to the docs or ## Details. Include a bad→good pair drawn from the #681 case:
Bad: "...pass --apply to also have it fix the two cases... Use --kb to choose which knowledge base to scan and --stale-after to set how old verification may be before it counts as stale."
Good: "...It reports findings without touching the vault by default; run with --apply and it additionally repairs the two issues it can fix safely..."
Acceptance criteria
Must have
lede-voice.md (repo source) gains a named rule proscribing how-to-invoke phrasing and per-flag usage enumeration, with a bad→good example.
The rule distinguishes permitted flag naming (reader acts on it as a behavioral distinction) from prohibited usage enumeration.
Status (2026-07-23): On hold — do not implement yet. This ticket adds a named rule to prose that the #1055 reframe is expected to replace; the reframe's direction (kind-keyed lede archetypes vs the density framing) is being settled by the #1056 gold-set eval. Fold this ticket's substance (no how-to-invoke register; flag naming vs usage enumeration) into the reframe, or revive it standalone if the reframe stalls.
Problem
Changelog and release-notes ledes (the
## Whatsection) keep coming out in an instruction-manual register — sentences that enumerate flags and tell the reader how to invoke a feature. A recent example shipped on #681: the## Whatended with "Use--kbto choose which knowledge base to scan and--stale-afterto set how old verification may be before it counts as stale." That is reference-doc content in the wrong channel: it buries the actual delta and makes the lede less likely to be read.Context
lede-voice.md(source:packages/agents/content/skills/_data/lede-voice.md) is the single source of truth for thechangelog-writersubagent. That agent is instructed to read only that file — notCLAUDE.md,AGENTS.md, or saved house-style memories — and explicitly not to work from recall.changelog-writerhad self-approved the draft — soft, inferential coverage was easy to rationalize past.Relevant considerations
lede-voice.mdto take effect. The agent is single-sourced on that file by design; pointing it atCLAUDE.mdis both ineffective (subagents do not auto-load it) and contrary to the agent's one-doctrine-file model.--applynamed as the load-bearing report-vs-fix distinction the reader acts on) from prohibited usage enumeration (teaching how to invoke). The existing "earns its place" guidance is the natural hook.lede-voice.mdin the consuming environment is a generated/synced file; edits go to the repo source and propagate viacodeassembly-agents install.Proposed solution
Add a named rule to
lede-voice.mdstating that the lede narrates the change, not how to invoke it: no how-to-invoke phrasing and no per-flag usage enumeration. A flag may be named when the reader must act on it as a behavioral distinction, but the entry must not enumerate flags and their usage — that is reference-doc content, routed to the docs or## Details. Include a bad→good pair drawn from the #681 case:--applyto also have it fix the two cases... Use--kbto choose which knowledge base to scan and--stale-afterto set how old verification may be before it counts as stale."--applyand it additionally repairs the two issues it can fix safely..."Acceptance criteria
Must have
lede-voice.md(repo source) gains a named rule proscribing how-to-invoke phrasing and per-flag usage enumeration, with a bad→good example.Should have
--kb/--stale-aftercase (or an equivalent), so the nearest concrete example models the rule.Nice to have