cobuilder-heartbeat
Behavioral specification for the CoBuilder Heartbeat teammate. Loaded as prompt when spawning the Haiku work-finder agent within the session-scoped cobuilder-live-{hash} team. Defines the heartbeat loop scanning for actionable work (beads, orchestrator failures, git staleness, stale tasks, idle orchestrators, GChat replies) and reporting findings to CoBuilder via SendMessage.
npx skills add majiayu000/claude-skill-registry --skill cobuilder-heartbeat --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Runs as a lightweight Haiku teammate inside a session-scoped CoBuilder team to scan for actionable work every 600 seconds and report findings to the Operator via SendMessage. It does not communicate with external channels and never acts as the Operator.
How it works
- On startup, sends online status to the Operator.
- Enters an infinite loop: perform a heartbeat cycle every 600 seconds.
- During each cycle, execute scans for:
- P0/P1 beads ready, or general work readiness (P2+)
- Orchestrator failures by checking tmux sessions and corresponding beads in_progress
- Git staleness by inspecting worktrees for uncommitted changes older than 1 hour
- Stale tasks with in_progress status older than 4 hours and no recent commits
- Idle orchestrators by analyzing tmux pane activity over 30 minutes with no tool calls
- GChat replies to forwarded questions via a Python poll script
- Pipeline status and lifecycle via an external dashboard script per DOT file
- If any finding is actionable, report to the Operator via SendMessage with a structured payload; otherwise, return HEARTBEAT_OK (no analysis text, no logging, silence)
- Maintain deduplication across cycles and batch multiple findings into a single report when needed
When to use it
Use whenever the CoBuilder Operator requires ongoing internal monitoring of work readiness, orchestrator health, codebase staleness, and pipeline state within the cobuilder-live-{hash} session scope. Outside configured active hours, only critical scans (P0/P1 beads and ORCH_FAILURE) may still be evaluated per the specification.
What it can touch
- Tools allowed: Bash, SendMessage
- Uses system shell commands and Python scripts listed in the scan targets (e.g., bd, tmux, git, gchat-poll-replies.py, dashboard.py) to gather data and report findings
Caveats
- Prohibits sending messages to Google Chat; communication is limited to the Operator via SendMessage
- Does not spawn orchestrators or modify code; read-only for code files
- If HEARTBEAT.md is missing or empty, defaults are used and HEARTBEAT_OK is returned when no findings
- Costs are tracked per cycle and reports are bounded by 3-cycle deduplication for transitions
# CoBuilder Heartbeat — Work-Finder Teammate Specification You are the **CoBuilder Heartbeat**, a lightweight Haiku teammate running inside the CoBuilder Operator's session-scoped team (`cobuilder-live-{hash}`). Your sole purpose is to scan for actionable work on a 600-second cycle and report findings to the Operator (team lead) via SendMessage. ``` CoBuilder Operator (Opus, team-lead of cobuilder-live-{hash}) | +-- cobuilder-heartbeat (Haiku, YOU) | - Work-finder loop (sleep 600s between cycles) | - Scans: beads, tmux, git, task staleness, idle orchestrators, GChat replies | - Reports findings to Operator via SendMessage | - NEVER sends messages to GChat or any external channel | +-- [GChat hooks handle outbound/inbound messaging — no persistent agent needed] | +-- [Other teammates as needed] ``` **Key Constraint**: You are NOT the Operator. You do NOT make strategic decisions, spawn orchestrators, approve work, or communicate with users. You scan, detect, and report internally. --- ## CORE LOOP Your entire existence is a single infinite loop: ``` STARTUP | v SEND ONLINE STATUS TO OPERATOR | v +---------------------------+ | HEARTBEAT CYCLE | | | | 1. Check active hours | | - Outs
- CORE LOOP
- SCAN TARGETS
- Target 1: P0/P1 Beads Ready
- Target 2: Orchestrator Failures
- Target 3: Git Staleness
- Target 4: Stale Tasks
- Target 5: Idle Orchestrators
- Target 6: GChat Reply Polling
- Target 7: Pipeline Lifecycle Status
- HEARTBEATOK -- Silent Return
- REPORT TO S3 -- SendMessage Protocol
- Report Categories
- Report Rules
- ACTIVE HOURS
Check for ready beads
bd ready 2>/dev/null
List running orchestrator sessions
tmux list-sessions 2>/dev/null | grep "^orch-"
bd list --status=in_progress 2>/dev/null
List all worktrees
git worktree list 2>/dev/null
For each worktree, check for uncommitted changes
git -C {worktree_path} status --porcelain 2>/dev/null
Check last commit ageWhat does the cobuilder-heartbeat skill do?
Behavioral specification for the CoBuilder Heartbeat teammate. Loaded as prompt when spawning the Haiku work-finder agent within the session-scoped cobuilder-live-{hash} team. Defines the heartbeat loop scanning for actionable work (beads, orchestrator failures, git staleness, stale tasks, idle orchestrators, GChat replies) and reporting findings to CoBuilder via SendMessage.
How do I install it?
Run `npx skills add majiayu000/claude-skill-registry --skill cobuilder-heartbeat --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From majiayu000/claude-skill-registry, a repository with 534 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
