Skip to content

Latest commit

 

History

History
88 lines (51 loc) · 7.21 KB

File metadata and controls

88 lines (51 loc) · 7.21 KB

AgentOps 3.1: ship the loop, prove the gate

3.1 is a minor on top of 3.0. The 3.0 north star is unchanged — AgentOps is the in-session operating loop plus the context compiler that feeds it. Read 3.0.md first for what AgentOps is. This page covers what 3.1 adds: the loop becomes installable for three runtimes, and the release gate itself becomes the product. When this page and 3.0 disagree on the core thesis, 3.0 wins; this page only extends it.

AgentOps 3.1 does not add a new practice. It does two things to the 3.0 core:

  1. Makes it installable — the three IMAGE-CORE recipes (Claude, Codex, Gemini/Antigravity) ship as real, documented, smoke-proven install paths, with Day-2 operations (update, backup, permission repair, recovery, escalation) treated as part of the product.
  2. Makes the gate the authority — the release pipeline that produces AgentOps was itself hardened: a native Go gate with workflow-parity enforcement, a verdict gate that requires cross-family validation with author exclusion, and a skill corpus canonicalized from one source of truth.

The through-line: 3.0 named the loop; 3.1 productized the loop and the discipline that ships it.


The gate-discipline story (the real headline)

The biggest change in 3.1 is invisible in ao --version but load-bearing for everyone who ships through it. Three gates tightened together.

The release gate moved native

In 3.0 the pre-push gate was a sheaf of inline bash checks. In 3.1 those checks were ported to a single native Go gate (ao gate check), and the pre-push hook runs it as the release authority. Local validation is the routine shipping path; GitHub Actions is an optional/manual backstop, not the gate of record. This matters because the project repeatedly hit GitHub Actions quota exhaustion — the local gate keeps shipping viable without it (the DSR fallback).

The gate doesn't just run checks; it enforces workflow parity. Each check reports which CI workflow backs it, and a check that is green locally but has drifted out of CI fails the gate. A check that has no enforcing workflow is not a gate — it's an orphan. 3.1 makes that distinction mechanical.

Close-admission tightened: distinct families, author excluded

The 3.0 verdict gate had a hole (LAW-3 gap): council_judge counted files, not distinct validator families, and did not exclude the author. Two verdict files from the same model — or a verdict written by the same agent that did the work — could admit a close. A self-graded "looks good" was enough.

3.1 closes it. A close now requires verdicts from distinct validator families with the author excluded. The gate can no longer trust a self-declaration. This is the close-admission discipline: work isn't done because the worker says so; it's done when an independent, cross-family verdict says so.

The skill corpus canonicalized

3.1 forces the skill corpus to have a single source of truth. Ghost skills (referenced but not materialized) were brought into the tree; registries, counts, and catalog surfaces were regenerated from that source; and bundled image copies were forced back to byte identity with the canonical skills/<slug>/SKILL.md. The image verifiers (images/{claude,gemini,codex}/verify.sh) prove that identity on every release, so a stale bundled copy can't silently drift from the skill the docs describe.

A related compliance fix landed here: the headless and team-runner paths no longer shell out to claude --print (LAW 0).


Installable: the three one-liners

The three IMAGE-CORE recipes are materialized in the repo as images/claude/, images/codex/, and images/gemini/ — each with a manifest (manifest.json / plugin.json), a README.md citing the control-plane/IMAGE-CORE.md spec, and a verify.sh. Each has a documented install path:

# Claude Code — marketplace plugin
claude plugin marketplace add boshu2/agentops
claude plugin install agentops@agentops-marketplace

# Codex CLI — native plugin curl installer (macOS/Linux/WSL)
curl -fsSL https://raw.githubusercontent.com/boshu2/agentops/main/scripts/install-codex.sh | bash

# Gemini / Antigravity (AGY) — validates and installs images/gemini via `agy plugin`
curl -fsSL https://raw.githubusercontent.com/boshu2/agentops/main/scripts/install-agy.sh | bash

The full Install section, including the Windows variants and the optional ao CLI, is in the README.

The install gate (3.1 acceptance): a fresh machine can install AgentOps 3.1 for any of the three vendors via one of these documented one-liners. The install smoke suite proves all three paths without invoking the vendor runtimes:

$ bash tests/install/test-install-smoke.sh
Results: 45 passed, 0 failed

(Figures above are measured from origin/main at the 3.1 cut.)

Day-2 operations are part of the product

Per the AT&O doctrine — install, update, backup, permission, recovery, and escalation paths are part of the product, not afterthoughts — 3.1 ships docs/install-day2-ops.md: operator guidance for each of those six paths across Claude, Codex, and Gemini/AGY. Installing is step one; staying installed and recovering cleanly is the rest of the product.


What 3.1 does NOT change

  • The 3.0 thesis stands. AgentOps is still the in-session loop plus the compounding .agents/ corpus. No new methodology; 3.1 is composition and packaging, not invention.
  • Still hookless by default. The default install registers zero hooks; skills + the ao CLI + the local gate drive the lifecycle.
  • Still no daemon, scheduler, or hosted control plane. Out-of-session orchestration remains the substrate's job (NTM/ATM + MCP + managed-agents). The in-session loop is the zero-dependency sovereignty floor.
  • State stays in .agents/. No telemetry, no cloud, portable across model and harness.

Cutting the release

ao --version is injected at build time from the git tag via goreleaser ldflags (-X main.version={{ .Version }}, see .goreleaser.yml). There is no static version file — the v3.1.0 git tag is what makes the CLI report 3.1.0, and it drives the goreleaser Homebrew/release assets. The plugin manifests (.claude-plugin, .agy-plugin, .codex-plugin, images/gemini/plugin.json) are already at 3.1.0 on main; cutting the v3.1.0 tag is the single load-bearing release step that turns this into a shipped 3.1.

Tag-cut status: the 3.1 content is fully landed on main (all four plugin manifests at 3.1.0, CHANGELOG, docs, installers, smoke-proven). The remaining external step is the v3.1.0 git-tag cut + goreleaser release-asset/Homebrew publication, gated on GitHub Actions quota (the goreleaser release workflow). The local cockpit gate is the release authority for the landed content; tag publication is the one downstream action the release owner performs when Actions quota returns.


Canonical references: 3.0.md (the north star) · CHANGELOG · install-day2-ops.md · README §Install · images/{claude,codex,gemini}/ (the materialized recipes)