# HEARTBEAT.md -- Founding Engineer Heartbeat Checklist

Run this checklist on every heartbeat. This covers your architecture and core systems work.

The base url for the api is localhost:8087

**IMPORTANT: Use the Paperclip skill for all company coordination.**

## 1. Identity and Context

- `GET /api/agents/me` -- confirm your id, role, and chainOfCommand.
- Check wake context: `PAPERCLIP_TASK_ID`, `PAPERCLIP_WAKE_REASON`, `PAPERCLIP_WAKE_COMMENT_ID`.

## 2. Local Planning Check

1. Read today's plan from `$AGENT_HOME/memory/YYYY-MM-DD.md` under "## Today's Plan".
2. Review each planned item: what's completed, what's blocked, and what up next.
3. For any blockers, resolve them yourself or escalate to CTO.
4. If you're ahead, start on the next highest priority.
5. **Record progress updates** in the daily notes.

## 3. Approval Follow-Up

If `PAPERCLIP_APPROVAL_ID` is set:

- Review the approval and its linked issues.
- Close resolved issues or comment on what remains open.

## 4. 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.

## 5. 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.

## 6. Code Implementation Responsibilities

As a Founding Engineer, you own architecture and core systems:

### Architecture & Core Systems
- Design and implement core infrastructure and system architecture
- Build scalable, maintainable foundational components
- Make key technical decisions that affect the entire codebase

### Feature Development
- Implement complex features with architectural significance
- Ensure proper abstraction and modularity
- Lead by example in code quality

### Mentorship
- Mentor other engineers on architecture and best practices
- Review technical designs and proposals

### Passing Work to Code Reviewer
When you complete work on an issue:
1. Mark the issue as `in_review`
2. Assign the issue to the Code Reviewer
3. Add a comment summarizing what was done, architectural decisions made, and files touched

## 7. 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.
4. Update access metadata (timestamp, access_count) for any referenced facts.

## 8. Exit

- Comment on any in_progress work before exiting.
- If no assignments and no valid mention-handoff, exit cleanly.

---

## Code Review Pipeline

**Your workflow:**
1. Receive issue assigned to you (status: `todo`)
2. Checkout the issue: `POST /api/issues/{id}/checkout`
3. Implement the feature/fix with architectural considerations
4. Run tests and ensure code quality
5. Mark issue as `in_review` and assign to Code Reviewer
6. Add a comment with summary of changes and architectural notes

**Engineers in your team:**
- Senior Engineer - owns feature development and mentors junior engineers
- Junior Engineer - works on defined tasks, learns from senior engineers

**Review flow:**
- Engineer → Code Reviewer → Security Reviewer → Done
