Match the record to what the owners were told, and stop the tracker hiding ids
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 <noreply@anthropic.com>
This commit is contained in:
parent
78d4914808
commit
623f7ccb2e
2 changed files with 9 additions and 2 deletions
|
|
@ -10,7 +10,8 @@ date_reported: "2026-08-18"
|
||||||
system: ops-warden
|
system: ops-warden
|
||||||
environment: production
|
environment: production
|
||||||
fix_owner: ops-warden
|
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]
|
related: [RISK-F-0001]
|
||||||
# Graded by risk-nexus 2026-08-19 — docs/rulings/2026-08-19-first-grading.md
|
# Graded by risk-nexus 2026-08-19 — docs/rulings/2026-08-19-first-grading.md
|
||||||
severity: medium
|
severity: medium
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,13 @@ def report() -> list[str]:
|
||||||
if not tracking or str(tracking).startswith("unset"):
|
if not tracking or str(tracking).startswith("unset"):
|
||||||
lines.append(f"{f['id']} ({f.get('severity')}) — NO FIX TRACKING; owner {f.get('fix_owner')}")
|
lines.append(f"{f['id']} ({f.get('severity')}) — NO FIX TRACKING; owner {f.get('fix_owner')}")
|
||||||
continue
|
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"]:
|
if r["moved"]:
|
||||||
age = (now - r["moved"]).days
|
age = (now - r["moved"]).days
|
||||||
window = STALL_DAYS.get(f.get("severity"), 30)
|
window = STALL_DAYS.get(f.get("severity"), 30)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue