Proposed Retro Actions — Tracker Hardening

Sprint retrospective proposal for human review (Paul). Deliberated by Claude + Codex; both did independent, evidence-backed passes (D25 / agentic-retro §4) and converged. Each action is categorized (type), tagged with who found it (D27), given an owner, and a home.

tooling process bug / correctness plan hygiene doc hygiene deferred

Gate outcomes TH1–TH5

GateIntentResultItem
TH1tracker:check gates the buildpassedWI-039 (Claude)
TH2Honest points + one sprint-complete rulepassedWI-040 (Claude)
TH3Reseed decoupled; seed preserves live HITLpassedWI-041
TH4Gate↔req + req↔item coverage backfill + ownerspassedWI-042 (Codex)
TH5Doc/link hygiene; plan-doc refresh trackedpassedWI-043 (Claude)

A · Make "done" mean done enforce D28 / D29 in tooling

A1Warn when a done item has no evidencetooling

What tracker:check warns (offline) if an item is done but has empty log/tools/artifacts — enforces D28.
Tracked in Backlog item Owner: Claude Found: Claude

A2Opt-in git↔board parity audittooling

What tracker:audit-live (or tracker:check --live) flags items done in git but not on the board — catches the WI-042 class automatically. Needs TRACKER_SUPABASE_KEY; never in CI. Include the A7 promote-identity fix here (same tool family).
Tracked in Backlog item Owner: Codex Found: Both

B · Close the tooling seams from the code review

A6Gate the other generation entrypointstooling risk

Why prebuild (every web build), deploy, and tracker:sync run build-sprint-tracker with no tracker:check; docs:sync also distributes to partners — so unchecked tracker HTML can ship.
What Route those paths through tracker:check, or document them as unchecked and reserve docs:tracker for tracker deploys.
Tracked in Backlog item / maintenance note Owner: Claude Found: Codex

A7Fix tracker-promote audit identitybug / correctness

Why It defaults actor_label to Claude while hardcoding actor_profile_id to Paul's UUID — inconsistent attribution in the very tool meant to keep the audit clean.
What Resolve label + profile together (map via PEOPLE), or require --actor explicitly. Pure fix — applyable immediately on your OK.
Tracked in Script fix Owner: Codex Found: Codex

C · Hygiene & housekeeping

A3Triage the 18 tracker:check warningsplan hygiene

What Classify each (owner-TBD vs coverage gap) as real backlog (create item) or acceptable (annotate/suppress) — don't let them stay anonymous.
Tracked in status.json / check config Owner: Codex Found: Claude

A8Fix decision-log D28/D29 orderingdoc hygiene

Why The log renders D27 → D29 → D28 (D29 inserted above D28). Pure fix — applyable immediately.
Tracked in decision-log.md Owner: Claude Found: Codex

A5Confirm WI-041 ownerplan hygiene

What status.json records owner: Codex; the reseed-decouple work was done by Claude this session. Your call — I recommend Claude to match authorship.
Tracked in status.json Owner: Paul to decide Found: Claude

D · Decision needed no default

A4How do we visually QA app.html?process

Context The Live Board needs live Supabase data behind Access, so it can't be visually verified offline (the closed-sprint badge shipped unverified locally).
Options (a) accept manual board QA after deploy; (b) add a lightweight offline render-smoke with mock data. Your call.
Tracked in decision-log / backlog Owner: Paul Found: Claude

E · Deferred parked, not dropped

WI-049 reviewer auth · WI-050 live tech-debt surfacedeferred

Proposal Both stay parked in Backlog — no reshuffle into Platform & Contracts. Both agents agree.

F · Where this work lives

G · Execution order (if approved)

  1. Apply the pure fixes: A7 + A8.
  2. Create backlog items for A1, A2, A6; record A3 triage; set A5 owner + A4 decision per your call.
  3. Close the retro: move this to retrospectives/tracker-hardening-retro.md, rename the deliberation closed-claude-…-retro.md, add Tracker Hardening to status.retros, regenerate — clears the board's "run a retrospective" alert.
  4. Proceed to Platform & Contracts.
Your call. Approve all, approve a subset, decide A4/A5, or change anything. Nothing is applied until you say proceed.
Source: open-claude-2026-06-19-tracker-hardening-retro.md — Claude + Codex independent passes (D25), combined findings 1–8, actions A1–A8, both agree. Gate outcomes from roadmap.json phase-th; live status verified against Supabase.