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.