From fbc67e89e1b6486cfc99de1ad42f6724e710bc6f Mon Sep 17 00:00:00 2001 From: Erik LaBianca Date: Fri, 16 Jan 2026 18:30:04 -0500 Subject: [PATCH] fix(formulas): witness patrol deacon check for town-level service (#561) --- internal/formula/formulas/mol-witness-patrol.formula.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/formula/formulas/mol-witness-patrol.formula.toml b/internal/formula/formulas/mol-witness-patrol.formula.toml index 12c612b9..630c2f0b 100644 --- a/internal/formula/formulas/mol-witness-patrol.formula.toml +++ b/internal/formula/formulas/mol-witness-patrol.formula.toml @@ -38,7 +38,7 @@ needs = ['check-timer-gates'] title = 'Check if active swarm is complete' [[steps]] -description = "Send WITNESS_PING to Deacon for second-order monitoring.\n\nThe Witness fleet collectively monitors Deacon health - this prevents the\n\"who watches the watchers\" problem. If Deacon dies, Witnesses detect it.\n\n**Step 1: Send ping**\n```bash\ngt mail send deacon/ -s \"WITNESS_PING \" -m \"Rig: \nTimestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)\nPatrol: \"\n```\n\n**Step 2: Check Deacon health**\n```bash\n# Check Deacon agent bead for last_activity\nbd list --type=agent --json | jq '.[] | select(.description | contains(\"deacon\"))'\n```\n\nLook at the `last_activity` timestamp. If stale (>5 minutes since last update):\n- Deacon may be dead or stuck\n\n**Step 3: Escalate if needed**\n```bash\n# If Deacon appears down\ngt mail send mayor/ -s \"ALERT: Deacon appears unresponsive\" -m \"No Deacon activity for >5 minutes.\nLast seen: \nWitness: /witness\"\n```\n\nNote: Multiple Witnesses may send this alert. Mayor should handle deduplication." +description = "Send WITNESS_PING to Deacon for second-order monitoring.\n\nThe Witness fleet collectively monitors Deacon health - this prevents the\n\"who watches the watchers\" problem. If Deacon dies, Witnesses detect it.\n\n**Step 1: Send ping**\n```bash\ngt mail send deacon/ -s \"WITNESS_PING \" -m \"Rig: \nTimestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)\nPatrol: \"\n```\n\n**Step 2: Check Deacon health**\n```bash\n# Check Deacon agent bead for last_activity\nbd list --type=agent --json | jq '.[] | select(.description | contains(\"role_type: deacon\"))'\n```\n\nLook at the `last_activity` timestamp. If stale (>5 minutes since last update):\n- Deacon may be dead or stuck\n\n**Step 3: Escalate if needed**\n```bash\n# If Deacon appears down\ngt mail send mayor/ -s \"ALERT: Town-level Deacon appears unresponsive\" -m \"Town Deacon (hq-deacon) has no activity for >5 minutes.\nLast seen: \nWitness: /witness\"\n```\n\nNote: Multiple Witnesses may send this alert. Mayor should handle deduplication." id = 'ping-deacon' needs = ['check-swarm-completion'] title = 'Ping Deacon for health check'