From agentops
Defines the renewal tick contract, two-tick stall rule, and escalation via Agent Mail for supervised multi-agent lanes. Use when wiring a loop's continuity step or diagnosing a stalled lane.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agentops:continuity-loopThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill owns the renewal contract behind the live multi-agent substrate the
This skill owns the renewal contract behind the live multi-agent substrate the repo CLAUDE.md declares: NTM panes + MCP Agent Mail + renewal ticks. It does not run agents and it does not schedule anything — it defines what a tick is, what every supervised lane must do per tick, how a stall is detected, and when a stall becomes an escalation. Loop skills compose it; they do not reimplement it.
Use when: a loop skill needs a continuity step, a lane looks dead and you need a verdict (suspect / stalled / converged), or you are deciding whether to nudge, relaunch, or escalate.
.agents/continuity/state.json is the only continuity state surface, because
two state surfaces guarantee a split-brain stall verdict; every consumer
reads and renews the same file.rpi or bd — retired legacy — to prevent
reviving a SPOF the substrate already paid to remove: the in-session ao-rpi
loop is retired as the live workflow and bd/Dolt was retired 2026-06-11 (see
Retired legacy).A renewal tick is one bounded observation pass over the supervised lanes: read each lane's pane activity (NTM robot state) and Agent Mail traffic, decide per lane whether forward progress happened since the last tick, and renew that lane's entry in the state surface. A tick observes and records; intervention is a separate decision the tick's output feeds.
Forward progress evidence (any one suffices):
| Signal | Source |
|---|---|
| New pane output delta since last tick | NTM pane/robot state |
| New Agent Mail message or reservation activity | am inbox / reservations |
Lane self-renewed its state.json entry | the state surface |
| Work-product delta (commit, closed item, new artifact) | git / tracker / .agents/ |
state.json so consumers can compute staleness.last_renewal and
tick_seq advanced each tick — either self-renewed by the lane or renewed by
the tender on observed evidence. An entry whose tick_seq is behind the
global tick counter by one is SUSPECT; behind by two or more is STALLED.converged and leaves supervision; it
is never reported as stalled.suspect. No action.stalled. Now intervene, in
order: one nudge → if the next tick shows no recovery, relaunch the lane and
route it through recover → if the relaunched lane
stalls again on the same work item, escalate.active.Path: .agents/continuity/state.json — single file, renewed in place per
tick (write temp + rename).
{
"schema": "continuity-state.v1",
"tick_seq": 42,
"cadence_minutes": 10,
"last_tick": "2026-06-12T14:30:00Z",
"lanes": [
{
"lane": "ntm:agentops:pane-3",
"agent": "claude-worker-3",
"work_item": "ag-xxxx",
"status": "active",
"tick_seq": 42,
"last_renewal": "2026-06-12T14:30:00Z",
"evidence": "am message 2026-06-12T14:28Z; pane delta +214 lines"
}
]
}
status ∈ active | suspect | stalled | converged | escalated. Every status
change cites its evidence string — a bare status flip is invalid.
state.json instead of
inventing its own liveness probe.state.json entry; that
renewal closes the stall.Escalate (Agent Mail message to the operator/tender lane + lane status
escalated) when any of these hold:
evidence trail shows complete (loop without
progress — context saturation).state.json never syncs into it.Both are listed here only so nobody routes a continuity step back into them.
Format: JSON file (continuity-state.v1, shown above) renewed atomically
each tick, plus an Agent Mail escalation message when a lane reaches escalated.
Path: .agents/continuity/state.json, written to in place (temp + rename);
escalations go to the operator/tender lane via am.
Exit signal: a tick reports lanes: N active / N suspect / N stalled / N converged to the tender.
state.json carries an evidence string.agents/continuity/state.jsonnpx claudepluginhub boshu2/agentops --plugin agentopsCoordinates NTM agent swarms: unsticks panes, manages rate limits, and triggers convergence checks with observable artifact discipline.
Manages continuous autonomous agent loops with quality gates, evaluation harnesses, and recovery controls. Supports loop selection flow (sequential, parallel, RFC decomposition) and combined patterns.
Provides patterns for continuous autonomous agent loops with quality gates, evals, recovery controls, and loop selection flows. Use for reliable production agent workflows avoiding churn and stalls.