TLDR zero-input false PASS — MC #900160
TLDR zero-input false PASS — MC #900160
Incident
On 2026-08-23 the TLDR briefing/actionizer chain produced no actionable output. The absence of input is the incident signal; it must not be reported as a healthy run.
Verified current behavior
com.john.tldr-briefingfinds zero eligible emails, writes a JSON sentinel withreason: no_unbriefed_emails, and exits 0.com.john.tldr-actionizerreads zero insights, emits no result/task, and exits 0.com.john.tldr-watchmaps the zero-input sentinel toVERDICT=PASS.
This is fail-open observability: missing input is converted into green health and the operator receives no useful run result.
Required outcome
- Explicitly distinguish a day when no TLDR run is expected from a scheduled run that expected input.
- Any unexplained zero-input scheduled run returns actionable
UNKNOWNorFAIL, neverPASS. - The run output names the missing stage/source and preserves evidence.
- Positive no-content policy, if retained for weekends/holidays, must be explicit and tested rather than inferred from a sentinel.
Implemented result
Live commits: 854aa1a5f (fail-closed zero input) and a853184cc (publication-day schedule).
The three stages now fail closed on zero input:
- briefing writes
error: true,reason: zero_input_error, emitsZERO_INPUT_ERROR, exit 2; - actionizer emits the source reason and exits 2 without fabricating a successful run;
- watcher reports
Verdict=FAIL, sends the actionable alert, and exits 2.
Positive control with five insights still completes with exit 0. Independent Gemini review returned PASS with zero unresolved P0/P1 findings.
Debugged source and schedule root cause
The mail database and direct IMAP search agree: no TLDR message exists after Friday 2026-08-21. Historical delivery data over 120 days contains messages only Monday-Friday, normally arriving after the old 09:00 briefing slot. The jobs nevertheless ran every day, so Sunday and Monday were guaranteed zero-input runs.
The active schedule is now explicit:
- briefing: Tuesday-Saturday 09:00;
- actionizer: Tuesday-Saturday 09:30;
- watcher: Tuesday-Saturday 09:40.
This processes the prior Monday-Friday publication day. RunAtLoad was removed from briefing. On a scheduled Tuesday-Saturday run, missing input remains ZERO_INPUT_ERROR/FAIL; on Sunday/Monday no run is scheduled. Active plists were reloaded and launchd shows weekdays 2-6 with zero immediate Sunday runs.
Evidence
/Users/makinja/system/evidence/tldr-incident-2026-08-23/status.md/Users/makinja/system/logs/tldr-briefing.log/Users/makinja/system/logs/tldr-actionizer.log/Users/makinja/system/logs/tldr-watch.log/Users/makinja/system/logs/tldr-insights/2026-08-23.json/Users/makinja/system/evidence/900160/runtime-controls.json/Users/makinja/system/evidence/900160/live-chain-verification.txt/Users/makinja/system/evidence/900160/gemini-review-clarification.json/Users/makinja/system/evidence/900160/gemini-schedule-review.json/Users/makinja/system/evidence/900160/pre-schedule-plists/