watchdog — Claude Code skill: keep idle agents moving
A skill for configuring rig watchdog policies: it picks the right intervention when an agent goes idle, drifts, or needs a checkpoint.
npx skills add mvschwarz/openrig --skill watchdog -a claude-codeWhat watchdog does
watchdog lays out three intervention levels. Wake is a small liveness nudge for an owner that looks idle, stale, or missing a next handoff. Refocus is the middle level: it re-centers the agent on its role, the approved workstream, and stop conditions when output shows drift or approval regression. Alignment checkpoint is a deliberate pause at a phase boundary or a product-intent decision, and the agent runs a full refocus before continuing.
The level comes from evidence, not from the clock. cron, timers and rig watchdog are scheduling substrates, and a tick does not have to mean the same action every time. Scan cadence and wake cadence are separate: the worked example scans every 30 seconds and wakes at most every 600 seconds while work stays actionable. Those numbers are illustrative; the separation is the durable part.
The skill lists seven failure modes, among them a cadence so frequent it pollutes the workstream and waking the wrong seat instead of the stale owner. It also says to prefer a no-op when the agent is actively closing artifacts. Until queue state and lifecycle evidence are productized at that granularity, the author advises keeping config small: one workflow watchdog plus targeted exceptions beats per-seat nag loops.
What it helps with
- wake a stalled loop when the owner goes quiet
- pull an agent back to the approved workstream after drift
- choose the right intervention level for a stale-owner case
- set scan and wake intervals as two separate numbers
- stop an approved workflow from turning into re-approval theater
Example prompts for the agent
- Set up a watchdog policy for this rig: scan every 30 seconds, wake at most every 600 seconds
- The owner looks stale — pick the intervention level and draft the message text
- Write a refocus message for an agent that drifted off the current workstream
How to install watchdog
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill watchdog -a claude-code2Manually: put the files in place
~/.claude/skills/watchdog/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/watchdog/
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill watchdog -a codex2Manually: put the files in place
.agents/skills/watchdog/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill watchdog -a cursor2Manually: put the files in place
.cursor/skills/watchdog/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install mvschwarz/openrig watchdog2Manually: put the files in place
.github/skills/watchdog/SKILL.md1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill watchdog -a gemini-cli2Platform CLI
gemini skills install https://github.com/mvschwarz/openrig --path skills/_canonical/core/watchdogManually: put the files in place
.devin/skills/watchdog/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill watchdog -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about watchdog
How do I install watchdog in Claude?
Run npx skills add mvschwarz/openrig --skill watchdog -a claude-code. The skill file lands at ~/.claude/skills/watchdog/SKILL.md.
What does watchdog do?
It helps you configure rig watchdog policies and pick an intervention level for a stale owner: wake, refocus, or alignment checkpoint. It also covers message text for each level.
When should I skip watchdog?
When the agent is actively working and closing artifacts, the guidance is to prefer a no-op. It also should not paper over bad startup or workflow design — fix the cause instead.
Source text
SKILL.md · Apache-2.0
---
name: watchdog
description: Use when configuring `rig watchdog` policies, authoring wake/refocus/alignment-checkpoint messages, or choosing the right intervention level for a stale-owner situation. The 3-level continuity-check stack (wake / refocus / alignment-checkpoint), the discipline that prevents cadence pollution and bureaucracy theater, and the artifact-pool loop-edge pattern for evidence-aware waking.
metadata:
openrig:
stage: factory-approved
sibling_skills:
# Sibling sweep 2026-07-19 audit: superseded control-plane-* family
# dropped (control-plane-watchdog now redirects HERE); kept the
# genuinely adjacent set.
- queue-handoff
- workflow-runtime
- refocus
- looping-workflows
- intake-routing
- human-in-the-loop
- status-not-chat-orchestrator
- oversight-team
---
# Watchdog
Continuity checks are timed or evidence-triggered interventions that
keep an agent workflow from going idle, drifting, or entering needless
bureaucracy. They operationalize the refocus doctrine.
## Use this when
- **Authoring a watchdog policy** for a long-running rig (artifact-pool
edges, stale-owner detection, periodic reminders).
- **Choosing the intervention level** for a stale-owner situation: is
this a wake, a refocus, or an alignment checkpoint?
- **Drafting wake/refocus/alignment-checkpoint message text** that
prevents cadence pollution and bureaucracy theater.
- **Deciding cadence** — scan vs wake intervals, conservative vs
aggressive nudging.
## Don't use this when
- The agent is actively working and closing artifacts. Prefer no-op.
- The intervention is masking bad startup or workflow design — fix the
underlying cause, don't compensate via watchdog.
- The work has a clear next-action handoff already in queue. Use queue
nudges instead of a watchdog policy.
## The 3-level intervention stack
| Level | Goal | When | What it does |
|---|---|---|---|
| **Wake** | Restart motion | Owner appears idle, stale, blocked, or missing a next handoff | Small liveness nudge — does NOT reframe the work |
| **Refocus** | Correct drift | Output shows mode drift, approval regression, weak stop-condition reasoning | Medium alignment nudge — re-centers on role, north star, current approved workstream, coordination mode, stop conditions; does NOT interrupt valid work |
| **Alignment checkpoint** | Rebuild shared map | Phase boundary, lifecycle mutation, product-intent decision, confusing contradiction | Larger deliberate pause — agent runs full refocus before proceeding |
`cron`, timers, and `rig watchdog` are scheduling substrates. They
should NOT imply that every tick means the same semantic action. The
intervention level is chosen by evidence, not cadence.
## Current best practice for refocus message text
A well-shaped refocus message:
- Starts with: **finish current action first**.
- Names the intervention kind: wake, refocus, or alignment checkpoint.
- Names the current approved workstream or says none is known.
- Says what continuity means: continue, verify, hand off, or explicitly park.
- Names stop conditions: scope/risk/posture changes, failed gate, contradictory evidence, or no continuity chain naming a sensible next step.
- Does NOT convert itself into a fresh approval gate.
- Does NOT wake delivery seats unless an approved workflow exists and the owner is stale.
## Failure modes (7; verbatim)
1. Cadence is too frequent and pollutes the workstream.
2. Watchdog wakes the wrong seat instead of the stale owner.
3. Refocus text is too rule-shaped and creates brittle behavior.
4. Watchdog compensates for bad startup or workflow design instead of revealing it.
5. Refocus is misread as a new top-priority task and interrupts the current action.
6. Refocus becomes bureaucracy theater: an already-approved workflow stops for re-approval.
7. Repeated static nudges teach agents to answer the reminder instead of progressing the artifact.
## Artifact-pool loop edges (the first evidence-aware pattern)
The first evidence-aware watchdog use that should remain small and
explicit:
- **Consumer-pool wake**: if a ready artifact exists, wake the consumer loop head.
- **Producer-edge repair**: if upstream completion exists but the downstream artifact is missing, wake the producer loop head.
**Scan cadence and wake cadence are separate.** Worked example (the numbers
are illustrative; the scan-vs-wake separation is the durable rule): scan every
30 seconds, wake at most every 600 seconds while work remains actionable.
This is not a generic workflow engine. It's a guardrail against cold
pools and missing edge artifacts.
## Active surface
Daemon `rig watchdog` is the active host coordination surface for new
work. History records only loud evaluations (`sent` / `terminal`);
quiet skip reasons are NOT recorded — POC parity so agents are not
woken about scheduler polls.
## Future shape (current limit)
The mature primitive should be evidence-aware: inspect durable
queue/workflow state, pane activity, transcript/context growth, and
known workstream frontier; classify the intervention as no-op / wake /
refocus / alignment-checkpoint; prefer no-op for active owners; render
message text from the active orientation graph instead of hard-coding
static policy.
Until queue substrate, activity state, and lifecycle evidence are fully
productized at this level of granularity: keep config-layer use small
and explicit, prefer one workflow watchdog plus targeted exception
handling over many per-seat nag loops.
## See also
- `refocus` skill — the doctrine this primitive operationalizes; full and light trace templates
- `queue-handoff` skill — durable handoff via queue items; watchdog is complementary (watchdog wakes; queue routes)
- `looping-workflows` skill — operating discipline for self-driving rig-shaped loops; uses watchdog policies for loop edges
© mvschwarz · Apache-2.0 · mvschwarz/openrig