aboutsummaryrefslogtreecommitdiff
path: root/.ai/workflows/triage-intake.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-20 13:39:29 -0500
committerCraig Jennings <c@cjennings.net>2026-07-20 13:39:29 -0500
commit0e9958abfbe97540b348b2118a863f7995e73b9e (patch)
treea26fcb26659693b156ea923179f2b79775687537 /.ai/workflows/triage-intake.org
parentaf565bae3fe18ba750a223074624e644d85e01ce (diff)
downloadrulesets-0e9958abfbe97540b348b2118a863f7995e73b9e.tar.gz
rulesets-0e9958abfbe97540b348b2118a863f7995e73b9e.zip
feat: extend the silent-until-signal heartbeat to the two MCP monitor loops
Auto triage-intake and auto inbox-zero now collapse an empty check to a single "<workflow> at HH:MM: nothing" line, matching the sentry quiet-fire heartbeat from Phase 1. Detection stays in-session, so the MCP-auth sources are scanned in full and only the output collapses. Inbox already had an acknowledge-only-on-empty rule, now unified to the standard format; triage's three-section sweep output gains the empty-sweep collapse. Completes the silent-until-signal spec (Phases 2-5): the spec is the shared-policy home the three workflows reference, and a manual-testing entry covers the live-loop verification. Spec flipped to IMPLEMENTED.
Diffstat (limited to '.ai/workflows/triage-intake.org')
-rw-r--r--.ai/workflows/triage-intake.org8
1 files changed, 5 insertions, 3 deletions
diff --git a/.ai/workflows/triage-intake.org b/.ai/workflows/triage-intake.org
index d476ac3..4f7c7b8 100644
--- a/.ai/workflows/triage-intake.org
+++ b/.ai/workflows/triage-intake.org
@@ -220,11 +220,13 @@ Each sweep runs Phase 0 (load *both* plugin dirs — the loud requirement still
- DOES update an active daily-prep in Update mode and re-open it on change (per =daily-prep.org=).
- DOES report, deltas-only, with loud scan-failure banners (Phase C rules unchanged).
-** End-of-sweep output — three sections
+** End-of-sweep output — three sections, or one heartbeat
-1. *Deltas* — what changed since the *previous sweep* (the standard Phase C summary scoped to the inter-sweep delta; one line if nothing: "HH:MM sweep: no changes").
+*Silent-until-signal (see =docs/specs/2026-07-20-silent-until-signal-monitors-spec.org=).* An *empty sweep* — no deltas since the previous sweep and no change to the awaiting-acknowledgment list — collapses to a single heartbeat line and nothing else: =triage intake at HH:MM: nothing= (HH:MM local, from =date=). Detection still runs in full (Phase 0 plus the A-D scan, against the session's inherited MCP auth); only the output collapses, so a long unattended run stops filling the session with identical "no changes" blocks. A sweep with real deltas or an unacked-list change prints the full three sections below.
+
+1. *Deltas* — what changed since the *previous sweep* (the standard Phase C summary scoped to the inter-sweep delta).
2. *Responses awaiting your acknowledgment* — every Slack reply, email, or message directed at Craig that he hasn't acknowledged or had the agent answer. A *running list carried forward across sweeps* until Craig acks each item or closes the triage. An away user's first need is "who's waiting to hear back from me," which a delta-only sweep loses the moment it scrolls past.
-3. *Timestamp* — the current date, time, and timezone on the sweep's own final line, so an away reader sees how fresh the summary is without computing it. Print it on *every* sweep, including a quiet "no changes" one — on a quiet sweep the stamp is the proof the loop ran. Generate it with:
+3. *Timestamp* — the current date, time, and timezone on the sweep's own final line, so an away reader sees how fresh the summary is without computing it. Print it on every sweep that prints these three sections. On an *empty* sweep there is no separate timestamp line — the heartbeat (=triage intake at HH:MM: nothing=) is itself the freshness stamp and the proof the loop ran. Generate it with:
#+begin_src bash
date "+%A %Y-%m-%d %H:%M:%S %Z (%z)"