From 623f7ccb2eb8bd964ce30a032d05c315e72fd73b Mon Sep 17 00:00:00 2001 From: tegwick Date: Fri, 21 Aug 2026 09:34:57 +0200 Subject: [PATCH] Match the record to what the owners were told, and stop the tracker hiding ids MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RISK-F-0002's fix_tracking now names ZONE-WP-0001 / WARDEN-WP-0032, with the superseded pair kept beside it — the register had told ops-warden the path had changed and then left the old ids in the file. An unresolvable fix_tracking (TEN-IN-0002 is an intake, not a workplan) printed nothing at all, which reads identically to a finding with no tracking. It now says so by name. Both ZONE-WP-0001 and WARDEN-WP-0032 read proposed, which is the true state of the successor. Co-Authored-By: Claude Opus 5 --- findings/RISK-F-0002-ops-warden-sign-ungated.md | 3 ++- tools/fix_tracker.py | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/findings/RISK-F-0002-ops-warden-sign-ungated.md b/findings/RISK-F-0002-ops-warden-sign-ungated.md index 8290b02..0e877e5 100644 --- a/findings/RISK-F-0002-ops-warden-sign-ungated.md +++ b/findings/RISK-F-0002-ops-warden-sign-ungated.md @@ -10,7 +10,8 @@ date_reported: "2026-08-18" system: ops-warden environment: production fix_owner: ops-warden -fix_tracking: WARDEN-WP-0007 (gate shipped, disabled) / FLEX-WP-0007 (runtime deploy) +fix_tracking: ZONE-WP-0001 / WARDEN-WP-0032 (successor; the original framing is superseded) +fix_tracking_superseded: "WARDEN-WP-0007 (archived 2026-07-08) / FLEX-WP-0007 (finished 2026-06-29)" related: [RISK-F-0001] # Graded by risk-nexus 2026-08-19 — docs/rulings/2026-08-19-first-grading.md severity: medium diff --git a/tools/fix_tracker.py b/tools/fix_tracker.py index 7aaca3d..7baf80b 100644 --- a/tools/fix_tracker.py +++ b/tools/fix_tracker.py @@ -83,7 +83,13 @@ def report() -> list[str]: if not tracking or str(tracking).startswith("unset"): lines.append(f"{f['id']} ({f.get('severity')}) — NO FIX TRACKING; owner {f.get('fix_owner')}") continue - for r in resolve(tracking): + resolved = resolve(tracking) + if not resolved: + # An id the tracker cannot parse is not the same as no tracking, and + # silently printing neither is how a gap hides. + lines.append(f"{f['id']} — fix_tracking '{tracking}' names no workplan this tool can resolve") + continue + for r in resolved: if r["moved"]: age = (now - r["moved"]).days window = STALL_DAYS.get(f.get("severity"), 30)