to-tickets
To Tickets
Break plan/spec/conversation into tickets — tracer-bullet vertical slices, each declaring tickets that block it. Publish per consumer repo's tracker conventions (AGENTS.md).
Reproducibility invariant
Full issue set, replayed in dependency order — features and bugfixes alike — must build roughly same application, regardless of who or what implements.
Issue stream = buildable spec. Every rule below serves this.
Self-containedness
Every outcome-shaping decision lives in issue itself, or durable docs it references — ADRs (writing-adrs), glossary terms (docs/glossary/). Never conversation context, tribal knowledge, implementer discretion.
Litmus test: two independent implementers could build meaningfully different things → ticket underspecified. Add decision to ticket, or record as ADR/glossary term + reference.
New vocabulary
Ticket introducing a domain concept declares it under ## Introduces — one slug per line, each linked as if the term file already existed (docs/glossary/<slug>.md, link-as-if-exists convention). Implementation creates the file; until then --lint reports broken cross-reference — that IS the enforcement, not a bug. The list = durable record of vocabulary the ticket adds.