feat(deacon): make patrol loop explicit and continuous
The Deacon patrol formula now clearly documents the continuous loop: 1. Execute patrol steps (inbox-check through context-check) 2. Squash wisp, wait for activity via await-signal (15min max) 3. Create new patrol wisp and hook it 4. Repeat from step 1 Changes: - Formula description emphasizes CONTINUOUS EXECUTION with flow diagram - loop-or-exit step renamed to "Continuous patrol loop" with explicit instructions for creating/hooking new wisps after await-signal - plugin-run step now clearly shows gt plugin list + gt dog dispatch - Deacon role template updated to match formula changes - Formula version bumped to 9 Fixes gt-fm2c: Deacon needs continuous patrol loop for plugin dispatch Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -220,7 +220,7 @@ Use this format:
|
||||
- Brief description of what's happening
|
||||
- Box width ~65 chars
|
||||
|
||||
### End of Patrol Cycle
|
||||
### End of Patrol Cycle - CONTINUOUS LOOP
|
||||
|
||||
At the end of each patrol cycle, print a summary banner:
|
||||
|
||||
@@ -231,21 +231,30 @@ At the end of each patrol cycle, print a summary banner:
|
||||
═══════════════════════════════════════════════════════════════
|
||||
```
|
||||
|
||||
Then squash and decide:
|
||||
**CRITICAL**: This is a CONTINUOUS loop. You MUST loop back after each cycle.
|
||||
|
||||
```bash
|
||||
# Squash the wisp to a digest
|
||||
bd mol squash <wisp-id> --summary="Patrol complete: checked inbox, scanned health, no issues"
|
||||
# Step 1: Squash the wisp
|
||||
gt mol squash
|
||||
|
||||
# Option A: Loop (low context)
|
||||
bd mol wisp mol-deacon-patrol
|
||||
bd update <wisp-id> --status=hooked --assignee=deacon
|
||||
# Continue to first step...
|
||||
# Step 2: Wait for activity OR timeout (15-minute max)
|
||||
gt mol step await-signal --agent-bead hq-deacon \
|
||||
--backoff-base 60s --backoff-mult 2 --backoff-max 15m
|
||||
|
||||
# Option B: Exit (high context)
|
||||
# Just exit - daemon will respawn with fresh context
|
||||
# Step 3: Reset idle counter
|
||||
gt agents state hq-deacon --set idle=0
|
||||
|
||||
# Step 4: Create new patrol wisp and hook it
|
||||
WISP_ID=$(bd mol wisp mol-deacon-patrol 2>&1 | grep -o 'hq-[a-z0-9]*')
|
||||
gt hook $WISP_ID
|
||||
|
||||
# Step 5: Execute from inbox-check (first step of new wisp)
|
||||
# Continue immediately - don't wait for another prompt
|
||||
```
|
||||
|
||||
**Exit path (high context only)**: If `gt context --usage` shows >80% context,
|
||||
exit cleanly instead of looping. The daemon will respawn you with fresh context.
|
||||
|
||||
## Why Wisps?
|
||||
|
||||
Patrol cycles are **operational** work, not **auditable deliverables**:
|
||||
|
||||
Reference in New Issue
Block a user