Drive a fix→re-run-judge-panel loop to terminal agreement or a 3-consecutive-fail BLOCK via the Go `ao converge` command. Thin memo over the CLI — loop and gates live in Go.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add majiayu000/claude-skill-registry --skill converge-boshu2-agentops --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Converge Boshu2 Agentops?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-converge-boshu2-agentops)More formats (shields.io, HTML) on the badges page.
---
name: converge
description: Drive a fix→re-run-judge-panel loop to terminal agreement or a 3-consecutive-fail BLOCK via the Go `ao converge` command. Thin memo over the CLI — loop and gates live in Go.
practices:
- design-by-contract
- llm-eval-harness
hexagonal_role: driving-adapter
consumes:
- command-help
produces:
- stdout
context_rel: []
skill_api_version: 1
allowed-tools: Read, Bash
model: inherit
context:
window: inherit
intent:
mode: none
intel_scope: none
metadata:
tier: orchestration
dependencies: []
output_contract: 'stdout: converge claim + bounded-loop outcome'
---
# /converge — bounded judge-panel convergence
> **Quick Ref:** This is a thin memo. The implementation is the Go command
> **`ao converge`** (`cli/cmd/ao/converge.go`). Do not reimplement the loop in
> shell — invoke the binary.
**YOU MUST EXECUTE THE Go COMMAND. Do not describe or re-author the loop.**
## What it does
`ao converge` runs a bounded **fix → re-run-judge-panel** loop until the judges
agree or it blocks:
- **Converged** ⇔ ≥2 distinct **non-author contexts** PASS with zero FAIL.
- **BLOCK** after **3 consecutive** failing rounds.
- **NOT-CONVERGED** when `--max-rounds` elapses with neither terminal condition.
- **KILLED** when `<dir>/.agents/rpi/KILL` appears at a round boundary.
The **independence axis is fresh CONTEXT, not model family**: the producing model
may judge its own work from a *fresh* context; only the author's context is
excluded. `--require-cross-family` is an optional strengthener (additionally
require ≥2 model families).
## The one rule that makes it trustworthy
The command runs a **two-sided canary entry gate** before any judge dispatch: it
proves the gate **rejects** a planted self-judge verdict **and accepts** a known-good
one. An empty/PASS result is a lie until proven to bite — a failed canary aborts
the run.
## How to run it
```bash
ao converge --max-rounds 5 --min-contexts 2
ao converge --require-cross-family # add the cross-family strengthener
ao converge --help
```
## The asymmetry you must honor
The **FIX step is yours** (the orchestrating agent). The dispatched judge leg is
**non-mutating** — it emits a verdict + evidence, never edits the repo. Between
rounds: read the judges' reasons, apply the fix yourself, then re-run.
## Cross-vendor dispatch table (two legs, LAW 0)
| You are running in | Judge leg | How |
|---|---|---|
| **Claude** context | Claude → **Codex** judge | Go headless `ao codex dispatch` (Codex Pro sub), non-mutating |
| **Codex** context | Codex → **Claude** judge | **Delegated to a pane** — `codex-approval` skill / NTM Claude pane |
⛔ **LAW 0:** never a headless `claude` print-mode call, on either leg. The Codex→Claude
leg has **no Go transport** by design — it routes to an interactive pane.
## Boundary
`ao converge` emits a **CLAIM + evidence**. It never writes a binding verdict —
MTO remains the sole writer of binding verdicts. No component here decides a merge.
## See also
- `cli/cmd/ao/converge.go` — the loop, criterion, fail-tracker, transport resolver.
- `cli/cmd/ao/converge_canary.go` — the two-sided entry gate.
- `cli/internal/liveness/quorum.go` — the context-quorum floor (`CheckSignificantActionDetailed`).
- `codex-approval` — the Codex→Claude pane-delegation leg.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!