Skip to content

/heartbeat-log

This skill should be used when the user asks to "show heartbeat log", "heartbeat history", "what has woterclip done", "show agent activity", "summarize heartbeats", or wants to analyze past heartbeat activity. Parses heartbeat-log.jsonl for summaries and analytics.

From plugin
woterclip
597 skills1 agent3 commands

Claude Code

$ npx -y skills add wotai-dev/woterclip --skill heartbeat-log --agent claude-code

SKILL.md

heartbeat-log.SKILL.md
name: heartbeat-log
description: This skill should be used when the user asks to "show heartbeat log", "heartbeat history", "what has woterclip done", "show agent activity", "summarize heartbeats", or wants to analyze past heartbeat activity. Parses heartbeat-log.jsonl for summaries and analytics.
version: 0.1.0

Heartbeat Log

Parse and summarize the WoterClip heartbeat log file (`.woterclip/heartbeat-log.jsonl`).

Log Format

Each line is a JSON object in one of two kinds, distinguished by `type`. Full field definitions live in `${CLAUDE_PLUGIN_ROOT}/references/beat-economics.md`.

**Issue line** — one per issue worked. A line with **no `type` key is an issue line**, which is what makes every pre-contract line readable without migration:

{"heartbeat": 7, "timestamp": "2026-03-25T10:15:00Z", "issue": "#79", "persona": "backend", "duration_sec": 720, "status": "in_progress", "actions": ["committed a1b2c3d", "created sub-issue #83"]}

**Beat line** — one per beat, carrying the beat's cost and why it stopped:

{"type": "beat", "started_at": "2026-03-25T10:03:00Z", "ended_at": "2026-03-25T10:17:05Z", "beat_elapsed_sec": 845, "issues_worked": 2, "stop_reason": "time_ceiling"}

**Treat a missing field as unavailable, never as zero.** Lines written before this contract carry no `duration_sec` value and have no accompanying beat line. Render those as `—`; counting them as `0` would report a beat that ran for minutes as free, and would drag any average toward zero.

Procedure

Step 1: Read Log

Read `.woterclip/heartbeat-log.jsonl`. If missing or empty, report "No heartbeat history found."

Parse each line as JSON. Handle malformed lines gracefully (skip with warning).

Step 2: Summarize

**Recent activity** (default: last 10 **issue lines** — beat lines are excluded from this view; see the aggregate stats below for beat-level figures):

Heartbeat History
─────────────────
#7  10:15  backend   #79  In Progress  (12 min)
#6  09:45  backend   #81  Completed    (8 min)
#5  09:15  ceo       #80  Triaged      (4 min)

**Aggregate stats** (when asked for analytics or summary):

  • Total issue lines, and total beats (count of beat lines)
  • Heartbeats per persona (breakdown)
  • Average duration per persona — **over issue lines that carry `duration_sec` only**, stating how many lines were excluded as unavailable
  • Total and average `beat_elapsed_sec` across beat lines
  • Stop-reason breakdown (how many beats hit `time_ceiling` vs `issue_budget` vs `complete`)
  • Completion rate (completed / total)
  • Most active issues (by heartbeat count)
  • Blocked issues and duration blocked

Step 3: Filter Options

Support filtering when the user asks:

  • **By persona**: "show backend heartbeats" → filter by `persona` field
  • **By issue**: "show activity for #79" → filter by `issue` field
  • **By date range**: "show today's heartbeats" → filter issue lines by `timestamp` and beat lines by `started_at`; beat lines carry no `timestamp`
  • **By status**: "show blocked heartbeats" → filter by `status`

Notes

  • The log file is append-only and informational — safe to truncate if it grows too large
  • Heartbeat numbers are per-issue (derived from comments), not global sequence numbers
  • Field definitions — including what `duration_sec` and `beat_elapsed_sec` each measure — are in `${CLAUDE_PLUGIN_ROOT}/references/beat-economics.md`
Read more
@wotai-dev
Ships withwoterclip

GitHub Issues-backed agent orchestration for Claude Code. A single Claude instance wears different "hats" (personas) based on GitHub issue labels – an Orchestrator routes work, a CEO makes strategic calls, and worker personas execute.

Stars on GitHub

Momentum

stars in total
59
Star history of wotai-dev/woterclip on GitHub, a chart by star-history.com

Other skills on woterclip.

heartbeat
Auto-invoked

heartbeat

This skill should be used when the user asks to "run a heartbeat", "run the agent loop", "process GitHub issues", "check for…

@wotai-dev@wotai-devInstall Skill
init
Auto-invoked

init

This skill should be used when the user asks to "initialize woterclip", "set up woterclip", "woterclip init", "configure…

@wotai-dev@wotai-devInstall Skill
persona-create
Auto-invoked

persona-create

This skill should be used when the user asks to "create a persona", "add a new persona", "set up a new agent role", "add a…

@wotai-dev@wotai-devInstall Skill
persona-import
Auto-invoked

persona-import

This skill should be used when the user asks to "import a paperclip agent", "convert paperclip to woterclip", "migrate from…

@wotai-dev@wotai-devInstall Skill
persona-list
Auto-invoked

persona-list

This skill should be used when the user asks to "list personas", "show personas", "what personas are configured", "show woterclip…

@wotai-dev@wotai-devInstall Skill
status
Auto-invoked

status

This skill should be used when the user asks to "check woterclip status", "show agent status", "what is woterclip doing", "show…

@wotai-dev@wotai-devInstall Skill

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n13d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about heartbeat-log.

Which coding agents can use heartbeat-log?
heartbeat-log installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.