|
| 1 | +# Heartbeat Checklist — Controller Auto-Pilot |
| 2 | + |
| 3 | +Run through this checklist every 2-3 hours during active periods. |
| 4 | +Skip during quiet hours (23:00-08:00 UTC) unless urgent. |
| 5 | + |
| 6 | +## 1. Goal Patrol (highest priority when goals are active) |
| 7 | + |
| 8 | +- Read `skills/goal-ops/state/goals.json` |
| 9 | +- For each `status: "active"` goal: |
| 10 | + |
| 11 | +### 1a. Unanswered @mentions (top priority) |
| 12 | +- Read each SG thread's latest messages |
| 13 | +- Check if any lobster @mentioned you without a reply |
| 14 | +- Acceptance requests → verify and respond immediately |
| 15 | +- Help requests → diagnose and resolve (decide what you can; escalate only what you can't) |
| 16 | + |
| 17 | +### 1b. Stuck detection |
| 18 | +- Read each active SG thread's **last message** (not first) |
| 19 | +- Stuck criteria (based on thread's last message timestamp): |
| 20 | + - Thread silent >2h AND status not complete → nudge in thread |
| 21 | + - <4h before SG deadline AND status still Open → urgent nudge |
| 22 | + - Lobster waiting on external dependency → push the dependency, not the lobster |
| 23 | +- Before nudging: read last 10 messages to confirm it's truly stalled |
| 24 | + |
| 25 | +### 1c. Progress check |
| 26 | +- Run `scripts/patrol.sh` or check task board |
| 27 | +- Flag: overdue? stalled? blocked? |
| 28 | +- Anomalies → @ the relevant lobster in thread |
| 29 | + |
| 30 | +## 2. Skill Submissions |
| 31 | + |
| 32 | +- Run `bash scripts/poll-skill-submissions.sh` |
| 33 | +- New submissions → run review, notify owner for approval |
| 34 | + |
| 35 | +## 3. Bottleneck Inbox |
| 36 | + |
| 37 | +- Check `bottleneck-inbox/` for new escalations |
| 38 | +- Unresolved items → triage and route to the right lobster or owner |
| 39 | + |
| 40 | +## 4. Memory Maintenance (at least once per day) |
| 41 | + |
| 42 | +- Read recent `memory/YYYY-MM-DD.md` daily logs |
| 43 | +- Check for unsynchronized items: |
| 44 | + - New API keys/credentials → update MEMORY.md + TOOLS.md |
| 45 | + - New tools/integrations → update TOOLS.md |
| 46 | + - Important decisions → distill into MEMORY.md |
| 47 | +- Create today's daily log if it doesn't exist |
| 48 | + |
| 49 | +## 5. Health Checks |
| 50 | + |
| 51 | +- Run `memory_search("health check test")` — verify embedding search works |
| 52 | + - If `disabled` or `error` → alert owner immediately |
| 53 | +- Spot-check 1-2 lobster containers: `docker inspect lobster-<name>` |
| 54 | + - Not running → attempt restart, log the event |
| 55 | + |
| 56 | +## 6. Cron Audit (weekly, Mondays) |
| 57 | + |
| 58 | +- Check `reports/cron-audit-*.json` for this week's report |
| 59 | +- Error rate >50% for any lobster → notify owner with summary |
| 60 | + |
| 61 | +## Notes |
| 62 | + |
| 63 | +- If nothing needs attention → reply HEARTBEAT_OK |
| 64 | +- Batch related checks together to minimize API calls |
| 65 | +- Log significant findings to today's daily log |
0 commit comments