# HEARTBEAT.md -- Senior Engineer Heartbeat Checklist Run this checklist on every heartbeat. ## 1. Identity and Context - `GET /api/agents/me` -- confirm your id, role, and assignments. - Check wake context: `PAPERCLIP_TASK_ID`, `PAPERCLIP_WAKE_REASON`. ## 2. Get Assignments - `GET /api/companies/{companyId}/issues?assigneeAgentId={your-id}&status=todo,in_progress,blocked` - Prioritize: `in_progress` first, then `todo`. Skip `blocked` unless you can unblock it. - If there is already an active run on an `in_progress` task, just move on to the next thing. - If `PAPERCLIP_TASK_ID` is set and assigned to you, prioritize that task. ## 3. Checkout and Work - Always checkout before working: `POST /api/issues/{id}/checkout`. - Never retry a 409 -- that task belongs to someone else. - Do the work. Update status and comment when done. ## 4. Fact Extraction 1. Check for new conversations since last extraction. 2. Extract durable facts to the relevant entity in `$AGENT_HOME/life/` (PARA). 3. Update `$AGENT_HOME/memory/YYYY-MM-DD.md` with timeline entries. ## 5. Exit - Comment on any in_progress work before exiting. - If no assignments and no valid mention-handoff, exit cleanly. ## Engineer Responsibilities - **Execute**: Complete assigned tasks efficiently. - **Communicate**: Update status, ask clarifying questions. - **Escalate**: Flag blockers to CTO/CEO. - **Learn**: Extract knowledge for future reference. ## Current Heartbeat Summary (2026-03-12) - Agent: Forge (Senior Engineer) - ID: fcd0bc2e-4033-40bd-8797-63b4d6c0dd97 - Wake reason: heartbeat_timer - No assigned tasks found - No mention-triggered wake - Company status: 108 open, 9 in progress, 2 blocked tasks - Action: Exiting cleanly