fix(briefings): correct eleven decision-id mis-citations from the f4c72e148 pass (T-1199)
The 2026-03-13 'update all 18 briefings' commit transcribed a family of adjacent-id slips while summarizing the Where's the Fun? workshop batch, copied forward by every later maintenance pass: D-126<->D-134 swapped, D-136 written as D-131, D-137 as D-136, D-130 as D-131, D-120 as D-137. Fixed in gore/mellanie/ozzie/stig/nigel briefings; every correction verified against the record's actual body (D-130's emergent-moral-arc and D-120's no-skill-ceiling were resolved beyond the clerk's audit by body-matching — the nigel D-137 fix would otherwise have created contradictory citations in one file). Governance records untouched (they were always correct); sprint archives verified already-correct. Remaining 13 briefings from the same commit: T-1205. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -3123,3 +3123,11 @@ INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, chang
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPPM0KP850FN6WQ5PDEX9ZS4', 'assigned_to', NULL, 'dudley', NULL, '2026-07-25 21:16:12', '2026-07-25 21:16:12.993', '2026-07-25 21:16:12.993', NULL, '5a1279c95e7f72db48cd78cbc492cc35', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FSP7HT5ES8D83VZA6ETACRAW', 'assigned_to', NULL, 'justine', NULL, '2026-07-25 21:16:13', '2026-07-25 21:16:13.465', '2026-07-25 21:16:13.465', NULL, 'c00c4231a9e967524b556aadf3255cb8', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FSP4MX7C66N76V31EB88YC78', 'assigned_to', NULL, 'clerk', NULL, '2026-07-25 21:16:14', '2026-07-25 21:16:14.050', '2026-07-25 21:16:14.050', NULL, 'a1bb4b5b3f1fba52fc7fa1a6be8e5e02', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FSP4MX7C66N76V31EB88YC78', 'description', 'Found during the T-1053 briefing rewrite (2026-07-25): D-126 and D-131 have been repurposed to content unrelated to what v0.2-era documents cite them for. The old araminta briefing cited ''D-126 = character customisation dimensions'' — current D-126 reads ''Groundhog Day alarm clock homage — first game day only'' (the customisation work actually shipped as D-159–D-164). The old briefing cited ''D-131 = apartment/insert first-moment priority'' — current D-131 is ''broad economic verb vocabulary (life verbs, not tycoon-specific)''. This is ID-drift, not staleness: any document still citing the old meanings cites the WRONG decision entirely. Task: (1) first establish the MECHANISM — were these IDs renumbered during the DQR-tree migration, or were the era documents mis-cited at write time? If renumbering, derive the full affected-ID set from the migration mapping, not just these two. (2) Repo-wide grep for D-126/D-131 (and any other affected IDs) across docs/, wiki/, governance/ prose, and .claude/, classifying each hit as current-meaning (fine) vs era-meaning (fix or annotate). (3) Fix or annotate the stale citations; note the outcome here. The rewritten araminta.md (T-1053) is already clean. Clerk-profile work — D-record consistency audit.
|
||||
|
||||
Batch-7 Si pre-answer (2026-07-25): the ticket''s question (1) is RESOLVED — the pql migration did NOT renumber decision ids. tooling/pql-migrate/restructure_decisions.py''s own docstring states the migration is token-preserving (''the [D-NNN] bracket text and #d-nnn-... anchor stay byte-identical'' — only file locations and link paths changed), and seed_tickets.py preserves decision_ref verbatim. Therefore the D-126/D-131 drift is write-time mis-citation in the era documents (or later reuse/repurposing through ordinary record editing), and the sweep scope is exactly D-126/D-131 (plus any other ids the sweep itself surfaces as suspicious), not a migration-derived affected set. Start at step (2).', 'Found during the T-1053 briefing rewrite (2026-07-25): D-126 and D-131 have been repurposed to content unrelated to what v0.2-era documents cite them for. The old araminta briefing cited ''D-126 = character customisation dimensions'' — current D-126 reads ''Groundhog Day alarm clock homage — first game day only'' (the customisation work actually shipped as D-159–D-164). The old briefing cited ''D-131 = apartment/insert first-moment priority'' — current D-131 is ''broad economic verb vocabulary (life verbs, not tycoon-specific)''. This is ID-drift, not staleness: any document still citing the old meanings cites the WRONG decision entirely. Task: (1) first establish the MECHANISM — were these IDs renumbered during the DQR-tree migration, or were the era documents mis-cited at write time? If renumbering, derive the full affected-ID set from the migration mapping, not just these two. (2) Repo-wide grep for D-126/D-131 (and any other affected IDs) across docs/, wiki/, governance/ prose, and .claude/, classifying each hit as current-meaning (fine) vs era-meaning (fix or annotate). (3) Fix or annotate the stale citations; note the outcome here. The rewritten araminta.md (T-1053) is already clean. Clerk-profile work — D-record consistency audit.
|
||||
|
||||
Batch-7 Si pre-answer (2026-07-25): the ticket''s question (1) is RESOLVED — the pql migration did NOT renumber decision ids. tooling/pql-migrate/restructure_decisions.py''s own docstring states the migration is token-preserving (''the [D-NNN] bracket text and #d-nnn-... anchor stay byte-identical'' — only file locations and link paths changed), and seed_tickets.py preserves decision_ref verbatim. Therefore the D-126/D-131 drift is write-time mis-citation in the era documents (or later reuse/repurposing through ordinary record editing), and the sweep scope is exactly D-126/D-131 (plus any other ids the sweep itself surfaces as suspicious), not a migration-derived affected set. Start at step (2).
|
||||
|
||||
SWEEP COMPLETE (2026-07-25/26). Root cause pinned to ONE commit: f4c72e148 (2026-03-13, ''update all 18 briefings for v0.2 pivot'') — adjacent-id transcription slips from the Where''s the Fun? workshop batch (eea3f3cf2), copied forward by every later briefing-maintenance pass, never a renumbering. Eleven mis-citations fixed on main across five briefings: gore.md (D-131->D-130 emergent-moral-arc — lead-verified against D-130''s near-verbatim body; D-131->D-136 first-moment), mellanie.md (D-131->D-136, D-134->D-126 x2), ozzie.md (D-126->D-134, D-131->D-136, D-134->D-126), stig.md (D-126->D-134 x2, D-131->D-136), nigel.md (D-136->D-137 x3, plus a knock-on the sweep''s grep could not see: D-137->D-120 x2 ''no skill ceiling'' — found when the D-136->D-137 fix would have created contradictory D-137 citations in one file; D-120 verified as the real record, scope.md, itself SUPERSEDED). The slip family: D-126<->D-134 swapped; D-136 as D-131; D-137 as D-136; D-130 as D-131; D-120 as D-137. Sprint/discussion archives verified already-correct (all postdate the workshop and cite current meanings) — no annotations needed. Governance records themselves correct, untouched. Remaining 13 briefings from the same commit: T-1205.', NULL, '2026-07-26 10:50:32', '2026-07-26 10:50:32.969', '2026-07-26 10:50:32.969', NULL, '735a5bcd8dbce0897f4a77a76ff3ff3b', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FSP4MX7C66N76V31EB88YC78', 'status', 'in_progress', 'done', NULL, '2026-07-26 10:50:38', '2026-07-26 10:50:38.896', '2026-07-26 10:50:38.896', NULL, 'a73745109833b6478ce0d7ff2ed673b5', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
|
||||
@@ -5297,3 +5297,14 @@ INSERT INTO tickets (record_id, type, parent_record_id, title, description, stat
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FSP4MX7C66N76V31EB88YC78', 'task', '06FBPPMZNNEV052DBYYY3A897C', 'Sweep stale D-126/D-131 citations — decision-ID drift audit', 'Found during the T-1053 briefing rewrite (2026-07-25): D-126 and D-131 have been repurposed to content unrelated to what v0.2-era documents cite them for. The old araminta briefing cited ''D-126 = character customisation dimensions'' — current D-126 reads ''Groundhog Day alarm clock homage — first game day only'' (the customisation work actually shipped as D-159–D-164). The old briefing cited ''D-131 = apartment/insert first-moment priority'' — current D-131 is ''broad economic verb vocabulary (life verbs, not tycoon-specific)''. This is ID-drift, not staleness: any document still citing the old meanings cites the WRONG decision entirely. Task: (1) first establish the MECHANISM — were these IDs renumbered during the DQR-tree migration, or were the era documents mis-cited at write time? If renumbering, derive the full affected-ID set from the migration mapping, not just these two. (2) Repo-wide grep for D-126/D-131 (and any other affected IDs) across docs/, wiki/, governance/ prose, and .claude/, classifying each hit as current-meaning (fine) vs era-meaning (fix or annotate). (3) Fix or annotate the stale citations; note the outcome here. The rewritten araminta.md (T-1053) is already clean. Clerk-profile work — D-record consistency audit.
|
||||
|
||||
Batch-7 Si pre-answer (2026-07-25): the ticket''s question (1) is RESOLVED — the pql migration did NOT renumber decision ids. tooling/pql-migrate/restructure_decisions.py''s own docstring states the migration is token-preserving (''the [D-NNN] bracket text and #d-nnn-... anchor stay byte-identical'' — only file locations and link paths changed), and seed_tickets.py preserves decision_ref verbatim. Therefore the D-126/D-131 drift is write-time mis-citation in the era documents (or later reuse/repurposing through ordinary record editing), and the sweep scope is exactly D-126/D-131 (plus any other ids the sweep itself surfaces as suspicious), not a migration-derived affected set. Start at step (2).', 'in_progress', 'medium', 'clerk', 'server', NULL, '2026-07-25 20:58:36.219', '2026-07-25 21:16:14.050', NULL, '6af3687d11dbacd7098b1b479876423e', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FSW30GPFFEB05M6EXD1WFANW', 'task', '06FBPPMZNNEV052DBYYY3A897C', 'Audit remaining 13 briefings for f4c72e148 citation slips', 'Follow-up to T-1199 (done): the 2026-03-13 commit f4c72e148 (''update all 18 briefings for v0.2 pivot'') is a CONFIRMED source of decision-id transcription errors — five briefings (gore, mellanie, ozzie, stig, nigel) carried eleven mis-citations from a consistent adjacent-id slip family: D-126<->D-134 swapped, D-136 written as D-131, D-137 written as D-136, D-130 written as D-131, D-120 written as D-137. All eleven fixed on main (T-1199). This ticket: audit the OTHER 13 briefings touched by that commit (git show f4c72e148 --stat lists them; araminta.md already rewritten clean by T-1053) for the same slip pattern — check every D-1xx citation in each against the record''s actual title/content, not just the ids from the known family (the family grew twice during the T-1199 fix pass: D-130 and D-120 were found only by verifying claims against record bodies). Method that worked: grep the briefing''s D-ids, read each record''s header, flag any citation whose prose describes different content. Note that several of these briefings are wholesale-stale (pre-cascade framing, like araminta.md was before T-1053) — this ticket fixes CITATIONS only; wholesale rewrites are separate per-briefing work (T-1053 is the model).', 'backlog', 'medium', NULL, 'server', NULL, '2026-07-26 10:50:18.675', '2026-07-26 10:50:18.675', NULL, '7b9349dfa0a61bcf3715328c79de4fa5', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FSP4MX7C66N76V31EB88YC78', 'task', '06FBPPMZNNEV052DBYYY3A897C', 'Sweep stale D-126/D-131 citations — decision-ID drift audit', 'Found during the T-1053 briefing rewrite (2026-07-25): D-126 and D-131 have been repurposed to content unrelated to what v0.2-era documents cite them for. The old araminta briefing cited ''D-126 = character customisation dimensions'' — current D-126 reads ''Groundhog Day alarm clock homage — first game day only'' (the customisation work actually shipped as D-159–D-164). The old briefing cited ''D-131 = apartment/insert first-moment priority'' — current D-131 is ''broad economic verb vocabulary (life verbs, not tycoon-specific)''. This is ID-drift, not staleness: any document still citing the old meanings cites the WRONG decision entirely. Task: (1) first establish the MECHANISM — were these IDs renumbered during the DQR-tree migration, or were the era documents mis-cited at write time? If renumbering, derive the full affected-ID set from the migration mapping, not just these two. (2) Repo-wide grep for D-126/D-131 (and any other affected IDs) across docs/, wiki/, governance/ prose, and .claude/, classifying each hit as current-meaning (fine) vs era-meaning (fix or annotate). (3) Fix or annotate the stale citations; note the outcome here. The rewritten araminta.md (T-1053) is already clean. Clerk-profile work — D-record consistency audit.
|
||||
|
||||
Batch-7 Si pre-answer (2026-07-25): the ticket''s question (1) is RESOLVED — the pql migration did NOT renumber decision ids. tooling/pql-migrate/restructure_decisions.py''s own docstring states the migration is token-preserving (''the [D-NNN] bracket text and #d-nnn-... anchor stay byte-identical'' — only file locations and link paths changed), and seed_tickets.py preserves decision_ref verbatim. Therefore the D-126/D-131 drift is write-time mis-citation in the era documents (or later reuse/repurposing through ordinary record editing), and the sweep scope is exactly D-126/D-131 (plus any other ids the sweep itself surfaces as suspicious), not a migration-derived affected set. Start at step (2).
|
||||
|
||||
SWEEP COMPLETE (2026-07-25/26). Root cause pinned to ONE commit: f4c72e148 (2026-03-13, ''update all 18 briefings for v0.2 pivot'') — adjacent-id transcription slips from the Where''s the Fun? workshop batch (eea3f3cf2), copied forward by every later briefing-maintenance pass, never a renumbering. Eleven mis-citations fixed on main across five briefings: gore.md (D-131->D-130 emergent-moral-arc — lead-verified against D-130''s near-verbatim body; D-131->D-136 first-moment), mellanie.md (D-131->D-136, D-134->D-126 x2), ozzie.md (D-126->D-134, D-131->D-136, D-134->D-126), stig.md (D-126->D-134 x2, D-131->D-136), nigel.md (D-136->D-137 x3, plus a knock-on the sweep''s grep could not see: D-137->D-120 x2 ''no skill ceiling'' — found when the D-136->D-137 fix would have created contradictory D-137 citations in one file; D-120 verified as the real record, scope.md, itself SUPERSEDED). The slip family: D-126<->D-134 swapped; D-136 as D-131; D-137 as D-136; D-130 as D-131; D-120 as D-137. Sprint/discussion archives verified already-correct (all postdate the workshop and cite current meanings) — no annotations needed. Governance records themselves correct, untouched. Remaining 13 briefings from the same commit: T-1205.', 'in_progress', 'medium', 'clerk', 'server', NULL, '2026-07-25 20:58:36.219', '2026-07-26 10:50:32.968', NULL, '6426a6b8ea7e8b620ba39ceb0965c5fc', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FSP4MX7C66N76V31EB88YC78', 'task', '06FBPPMZNNEV052DBYYY3A897C', 'Sweep stale D-126/D-131 citations — decision-ID drift audit', 'Found during the T-1053 briefing rewrite (2026-07-25): D-126 and D-131 have been repurposed to content unrelated to what v0.2-era documents cite them for. The old araminta briefing cited ''D-126 = character customisation dimensions'' — current D-126 reads ''Groundhog Day alarm clock homage — first game day only'' (the customisation work actually shipped as D-159–D-164). The old briefing cited ''D-131 = apartment/insert first-moment priority'' — current D-131 is ''broad economic verb vocabulary (life verbs, not tycoon-specific)''. This is ID-drift, not staleness: any document still citing the old meanings cites the WRONG decision entirely. Task: (1) first establish the MECHANISM — were these IDs renumbered during the DQR-tree migration, or were the era documents mis-cited at write time? If renumbering, derive the full affected-ID set from the migration mapping, not just these two. (2) Repo-wide grep for D-126/D-131 (and any other affected IDs) across docs/, wiki/, governance/ prose, and .claude/, classifying each hit as current-meaning (fine) vs era-meaning (fix or annotate). (3) Fix or annotate the stale citations; note the outcome here. The rewritten araminta.md (T-1053) is already clean. Clerk-profile work — D-record consistency audit.
|
||||
|
||||
Batch-7 Si pre-answer (2026-07-25): the ticket''s question (1) is RESOLVED — the pql migration did NOT renumber decision ids. tooling/pql-migrate/restructure_decisions.py''s own docstring states the migration is token-preserving (''the [D-NNN] bracket text and #d-nnn-... anchor stay byte-identical'' — only file locations and link paths changed), and seed_tickets.py preserves decision_ref verbatim. Therefore the D-126/D-131 drift is write-time mis-citation in the era documents (or later reuse/repurposing through ordinary record editing), and the sweep scope is exactly D-126/D-131 (plus any other ids the sweep itself surfaces as suspicious), not a migration-derived affected set. Start at step (2).
|
||||
|
||||
SWEEP COMPLETE (2026-07-25/26). Root cause pinned to ONE commit: f4c72e148 (2026-03-13, ''update all 18 briefings for v0.2 pivot'') — adjacent-id transcription slips from the Where''s the Fun? workshop batch (eea3f3cf2), copied forward by every later briefing-maintenance pass, never a renumbering. Eleven mis-citations fixed on main across five briefings: gore.md (D-131->D-130 emergent-moral-arc — lead-verified against D-130''s near-verbatim body; D-131->D-136 first-moment), mellanie.md (D-131->D-136, D-134->D-126 x2), ozzie.md (D-126->D-134, D-131->D-136, D-134->D-126), stig.md (D-126->D-134 x2, D-131->D-136), nigel.md (D-136->D-137 x3, plus a knock-on the sweep''s grep could not see: D-137->D-120 x2 ''no skill ceiling'' — found when the D-136->D-137 fix would have created contradictory D-137 citations in one file; D-120 verified as the real record, scope.md, itself SUPERSEDED). The slip family: D-126<->D-134 swapped; D-136 as D-131; D-137 as D-136; D-130 as D-131; D-120 as D-137. Sprint/discussion archives verified already-correct (all postdate the workshop and cite current meanings) — no annotations needed. Governance records themselves correct, untouched. Remaining 13 briefings from the same commit: T-1205.', 'done', 'medium', 'clerk', 'server', NULL, '2026-07-25 20:58:36.219', '2026-07-26 10:50:38.896', NULL, 'eb63bfa9711770fedfcecd1773145fad', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
|
||||
Reference in New Issue
Block a user