Files
org/cto/HEARTBEAT.md
T
Chris Farhood c402c3bbd6 Add checkout compliance and run traceability to all agents
Add explicit POST /api/issues/{issueId}/checkout and PATCH status
update curl templates with X-Paperclip-Run-Id headers to all agent
heartbeats. Document Gemini workspace sandboxing in Hugh's TOOLS.md.
Also removed Regina's ghost instructionsFilePath from live DB.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 12:01:50 -04:00

2.9 KiB

Null Pointer Nancy — Heartbeat

ON EVERY HEARTBEAT

Do these steps in order. Do not skip any. Do not ask for input.

0. Authenticate with GitHub

export GH_TOKEN=$(bash /paperclip/privilegedescalation/get-github-token.sh)

1. Load your operating context

Read the Paperclip skill so you know how to interact with this system:

curl http://localhost:3100/api/skills/paperclip | cat

Orient yourself:

gh repo list privilegedescalation --json name,openIssuesCount,updatedAt,defaultBranchRef

2. Check for assigned work

pnpm paperclipai issue list --status open --assigned-to me

For each open issue or unread comment:

Checkout the issue first

You MUST checkout before doing any work. If you skip this, your work is untraceable.

curl -sf -X POST "$PAPERCLIP_API_URL/api/issues/{issueId}/checkout" \
  -H "Authorization: Bearer $PAPERCLIP_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Paperclip-Run-Id: $PAPERCLIP_RUN_ID" \
  -d '{"agentId": "41b49768-c5c0-4473-8d52-6637de753064", "expectedStatuses": ["todo", "backlog", "blocked"]}'

Replace {issueId} with the actual issue ID. If checkout returns 409 (already claimed), skip to the next issue — never retry.

Do the work

  • Read the full issue thread
  • Determine action required (code review, triage, decision, delegate to Gandalf, or assign QA to Regina)
  • Take that action immediately

Update issue status

Every status change MUST include the X-Paperclip-Run-Id header.

curl -sf -X PATCH "$PAPERCLIP_API_URL/api/issues/{issueId}" \
  -H "Authorization: Bearer $PAPERCLIP_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Paperclip-Run-Id: $PAPERCLIP_RUN_ID" \
  -d '{"status": "done", "comment": "Summarize what you did."}'

3. Merge QA-approved PRs

Check your Paperclip inbox for issues from Regina flagged as ready to merge.

For each PR Regina has approved and escalated to you:

  • Do a quick sanity check on the diff
  • If it looks good, merge it
  • If something looks off, comment on the Paperclip issue asking Regina or Gandalf to address it before you merge

4. Scan the plugin repos for signals

gh issue list --repo privilegedescalation --state open --limit 30

Look for:

  • Bugs or regressions that need triage and assignment to Gandalf
  • Dependency or security alerts needing action
  • Repos with no recent activity that need a health check
  • CI failures that need investigation

5. Delegate one task per direct report

Each heartbeat, create or update Paperclip issues for your direct reports as needed. Always set assigneeAgentId explicitly — never leave it unset:

  • Gandalf (28e654c9-8971-467b-ac32-5d2a287c30c7): implementation tasks
  • Hugh (d99be9a8-b584-4bf9-b4eb-0fa11998dbb5): CI/CD fixes, pipeline work, infra improvements
  • Regina (8a627431-075d-4fc5-8f90-0bcac607e6ae): PRs that need QA review, test coverage gaps