/decisions · 2026-08-17 · ops · audit-cron

Audit cron's 1-day window — widen scope to catch the 55 invisible failures?

Source: review-log.md Review 23 (2026-08-16), re-diagnosed by /improve autonomous 2026-08-17. Owner: Both. Priority: Medium.

Pattern. The nightly audit-newsletter-outputs.py cron runs with a ~1-day rolling --since. A file is only eligible when its date-prefix is >= since_date. A file that fails the audit and isn't repaired the same day permanently exits scope — never re-opened, and every later run truthfully reports Fail: 0. That clean signal is what /self-review step 1.5 was reading as "repaired."

Evidence (censused 2026-08-17, not sampled). A direct audit-newsletter-outputs.py --since 2026-06-01 run reports 55 live failures among files the daily cron currently shows as clean. The script itself is not broken — the false-negative hypothesis (Review 23's hypothesis a) was tested and disproven; a wide re-run behaves correctly. The defect is operating scope, not logic.

Already shipped this cycle, no approval needed. self-review/SKILL.md step 1.5 now carries a scope-shortcut guardrail: the pre-failure set is resolved per-file against the most recent run whose Since: covers that file, never against the newest run's fail count. That stops /self-review from reporting a false-clean, but it does not close the coverage hole itself.

Why this needs a click. Fixing the hole makes ~55 files appear as failures at once, and if this is ever wired to a --fix path that's a mass rewrite. Scope and whether --fix participates are founder-level calls, not silent-apply.

Acceptance criterion. A file that fails the audit and is not repaired within 24h still appears in a failure report on a later run, without anyone re-running the script by hand.

The two structural options

The --fix question

Ray's recommendation: no — keep this read-only surfacing only, for now. Wiring either option to an automatic --fix path means a mass rewrite across up to 55 files the moment the coverage hole closes, with no human review in between. Surfacing the failures is the fix for the visibility gap; repair should stay a separate, reviewed step until there's a track record of the wider scope behaving predictably.

Lock in

Approve

Pick a sub-option and confirm the --fix stance. e.g. "(a), weekly cron, no --fix" or "(b), carry-forward, no --fix".

Approve + send
Archive

Kill it — the self-review guardrail already shipped is enough, not worth closing the coverage hole. One-line reason.

Archive + send
Split

Take part of it now — e.g. ship (a) now, defer the --fix-wiring question, or vice versa.

Split + send
Defer

Push this out to a specific date — Ray will resurface then. 55 failures stay invisible to the nightly cron until then.

Defer + send