ADR 014 Ticket Goal Identity - joeroberts/release-radar GitHub Wiki
- ID: ADR-014
- Status: Accepted
- Date: 2026-08-25
- Date meaning: Original dated decision/source section; extraction recorded 2026-10-02.
- Implementation: No implementation information was recorded in the source status; tickets own progress.
- Approval qualification: Recorded accepted decision; dated delivery conditions are historical, not new execution authorization.
Context
An observed runtime goal becomes linked to a ticket only through an explicit persistent identity.
Decision
A ticket's approved goal is an explicit, persistent (project, ticket, thread, goal) identity. The goal must belong to the ticket's existing linked thread,
and composite storage constraints preserve that relationship after later
observations. Project-local ticket/goal links are one-to-one:
UNIQUE(project_id, ticket_id) and UNIQUE(project_id, goal_id) reject
cross-ticket goal reuse transactionally.
Backfill occurs only when a candidate goal maps to exactly one ticket
project-wide; ambiguous legacy thread data remains unlinked and is never
recency-guessed.
Projections and notifications are read-only consumers of the approved identity.
Existing tickets.outcome remains the sole concise outcome; migration never
rewrites owner content.