rollout-watch

rollout-watch is a skill for OpenCode from EZotoff/ez-omo-config. It costs 92 tokens per session (1,575 once invoked), scanned A, original, MIT.

A rollout-monitoring procedure for enabling new automated capabilities, long-running services, or agent write paths. A rollout is the controlled release of a change, with checks that watch its progress and failure signals.

In plain words
What is it for?
Use it when deploying a daemon, watcher, pipeline stage, or other new harness behavior that needs durable monitoring and rollout gates.
Why use it?
It ensures monitoring and restart behavior are set up before a change that could act autonomously or fail silently is enabled.

Skill for OpenCode

Written for OpenCode: installed under .opencode/. Also seen: mentions subagents; mentions OpenCode.

Good fit Use it when deploying a daemon, watcher, pipeline stage, or other new harness behavior that needs durable monitoring and rollout gates.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ezotoff/ez-omo-config/rollout-watch
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add EZotoff/ez-omo-config --skill rollout-watch
Clone the repo
git clone --depth 1 https://github.com/EZotoff/ez-omo-config

Made for: OpenCode.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for rollout-watch

README.md
[![agentmods](https://agentmods.dev/badge/skills/ezotoff/ez-omo-config/rollout-watch/github.svg)](https://agentmods.dev/skills/ezotoff/ez-omo-config/rollout-watch)
Your own site
<a href="https://agentmods.dev/skills/ezotoff/ez-omo-config/rollout-watch"><img src="https://agentmods.dev/badge/skills/ezotoff/ez-omo-config/rollout-watch/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for rollout-watch

Your own site · 80×15
<a href="https://agentmods.dev/skills/ezotoff/ez-omo-config/rollout-watch"><img src="https://agentmods.dev/badge/skills/ezotoff/ez-omo-config/rollout-watch.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 92 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,575 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00092 $0.01575
Opus 5.5 $0.00037 $0.00630
Sonnet 5.5 $0.00018 $0.00315
Haiku 4.5 $0.00009 $0.00158

Measured 11d ago against content hash d962e81485e9, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

rollout-watch scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.opencode/skill/rollout-watch/SKILL.md · 104 lines

How it starts

The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.

rollout-watch — OMO binding for the rollout protocol

Base (harness-agnostic): docs/rollout-protocol.md, scripts/rollout-monitor.py. This skill adds ONLY the opencode/OMO-specific wiring. The base must stay usable without anything on this page.

When this fires

Any task that (a) adds a write-path or autonomous behavior to a harness component, (b) flips an enabled flag that activates previously-shadow behavior, or (c) deploys a new long-running service. If the change cannot fail silently, the protocol still applies — it just terminates early.

1. Arming the ladder (durably — never an agent promise)

A turn-based agent has no clock; the ladder's 12h plateau gaps exceed any subagent's 30-min inactivity window. Therefore the monitor runs as a systemd transient unit, not a background subagent and not a nohup &:

systemd-run --user --unit="rollout-<feature>" \
  -p Restart=on-failure -p RestartSec=15 \
  python3 ~/ez-omo-config/scripts/rollout-monitor.py \
    --config ~/.local/state/opencode-rollout/<feature>.rollout.json
# daemon mode sleeps ≤600s between due-checks. Restart=on-failure (NOT always):
# the monitor exits 0 on ladder completion/stopped — an always-restart would
# respawn-churn a finished rollout.

Check arming: systemctl --user status rollout-<feature>. State + rounds log live under ~/.local/state/opencode-rollout/ — killing the unit loses nothing; relaunching resumes from state (idempotent by design).

The deploying agent's obligation after arming: verify the unit is active AND the state file exists in the same turn. Then end the turn — the wake trigger is the unit itself; findings surface via the rounds log and gate records.

2. Evidence sources (detector → OMO adapter)

Protocol detector Adapter on this host
Availability probe systemctl --user is-active <unit>; ps -eo pid,lstart,args start-time check for bare processes
Error-class histogram journalctl --user -u <unit> --since <ts> -p err; for ledger-keeping services: jq -r 'select(.type=="ERROR") | .payload.error' <ledger> | normalize | sort | uniq -c
Telemetry motion status JSON counters (~/.local/state/<svc>/status.json) — any counter that can read 0 must be checked for motion once its path was active
Three-way cross-exam claims ledger vs ~/.local/share/opencode/opencode.db (read-only sqlite: message+part tables) vs published read models (operator-view.json etc.)
Timeline correlation for each produced artifact, grep the consumer's log/ledger for the corresponding event id within tolerance
Ground-truth reconstruction run the feature's real modules over a captured real input (bun/python import from the repo) — never trust the green test suite alone
Human review render outputs to the operator (paste rendered artifact in the final message, or screenshot for UI) — mandatory at presentation rounds

Read the full file on GitHub · 104 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 104 lines · 92 tokens per session scan A d962e81485e9

Subscribe to this mod's changes

rollout-watch is a skill published in the GitHub repository EZotoff/ez-omo-config (6 stars, last pushed 2d ago), licensed MIT. It adds 92 tokens to every session and 1,575 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-05.