## What AgentOps 3.0 goes **fully hookless**. This removes the entire hook product surface — the product is now skills + the `ao` CLI with **zero hooks**. CI is the authoritative gate. ## Deleted - `hooks/` — 46 hook scripts + `hooks.json` + examples (whole directory) - `cli/embedded/hooks/` + embedded `hooks.json` + `embedded/lib/hook-helpers.sh` - `lib/hook-helpers.sh` - `ao hooks` CLI command: `cli/cmd/ao/hooks.go`, `hooks_run.go` + 5 hook test files; `cli/internal/bridge/hooks.go`; `cli/internal/doctor/fix_hooks.go` + test - Codex hook manifest (`hooks/codex-hooks.json`) + handler/audit scripts (`scripts/audit-codex-hooks.sh`, `install-dev-hooks.sh`, `test-hooks-output.sh`, `test-codex-hookless-lifecycle.sh`, `test-hookless-rpi-phased.sh`) - Hook lease surface: `docs/contracts/hook-lease-*`, `schemas/hook-lease.v1.schema.json`, `scripts/check-hook-lease-inventory.sh`, `check-hook-port-replacements.sh`, `generate-hook-lease-inventory.py` - Hook docs: `docs/HOOKS.md`, `cli/docs/HOOKS.md`, `docs/architecture/hook-noise-audit.md`, `docs/contracts/hook-runtime-contract.md` - `tests/hooks/` (whole dir) + hook test scripts; 5 hook eval suites + fixtures ## CI gates removed `hook-preflight`, `validate-hooks-doc-parity`, `hook-output-schema-lint` (+ scripts/bats), the hook eval suites, the `test-runtime-codex-smoke` / `test-codex-native-install` / `test-codex-plugin-install` hook-handler assertions, the cli-integration hook-lifecycle steps, the bats `tests/hooks/*` glob + orphan-hooks audit, and the `--with-hooks` install path. `embedded-sync` now validates only lib/skills. Both summary `needs:` lists + the summary echo + `docs/contracts/ci-jobs.yaml` updated; `validate-ci-policy-parity` passes (66 rows). `.codex-plugin/plugin.json` drops the "Hooks" capability. ## Load-bearing PRESERVED (reported, not forced) - **`cli/cmd/ao/codex_runtime.go`** — the codex runtime *lifecycle profile* (`HookCapable`/`HookConfigured` detection) is a runtime-capability abstraction used by 6 `validate-codex-*` CI gates, distinct from the hook product. Deleting it is a separate refactor. - **`hooks-authoring` skill** + `schemas/hooks-manifest.v1.schema.json` — reframed as an opt-in "author your own hooks" guide. Deleting the skill cascades into catalog/domain-map/dispositions/context-map golden files (skill-count sync), out of scope for the hook-product removal. - **`scripts/pre-push-gate.sh`** — retired local gate (not in CI); self-skips deleted hook scripts via `[[ -x ]]` guards; its 55 bats tests still pass. - Domain-enforcement audit keeps the `enforced`-mode schema for backward-compatible JSON readers, but the hookless resolver only returns `audited`/`unavailable`. ## Verification `go build` / `go vet` clean; `go test ./...` = **11849 passed, 0 failed** (68 pkgs). gofmt clean on all touched files. Green: registry `--check` (0 hooks), `regen-codex-hashes --check`, `validate-ci-policy-parity`, `check-wiring-closure`, `validate-embedded-sync`, `validate-manifests`, `validate-agents-split`, `doc-release` (0 broken links), `generate-cli-reference --check`, `heal.sh --strict`, codex/claude/plugin smoke tests, baseline-audit (0 stale). Diff: 231 files, +354 / −39803. Closes-scenario: soc-57b7f#remove-all-hooks Bounded-context: BC5-Runtime Evidence: .github/workflows/validate.yml
5.8 KiB
AgentOps 3.0-Readiness Level-Set (2026-05-23)
Bead:
soc-hplds(W4, final wave of the 3.0 reconciliation epicsoc-9y8hd). North star: docs/3.0.md. This is the honest "where we are" against the 3.0-ready acceptance criteria after the reconciliation push. It does not claim more than is true; remaining work is named with its tracking bead.
What the reconciliation did
The operator-directed 3.0 reconciliation (2026-05-23) ran as a cron-paced /evolve loop. No new features — tighten, match reality, finish the hexagon. Waves:
| Wave | Bead | Outcome | PRs |
|---|---|---|---|
| W0 | soc-25sgs |
docs/3.0.md north star authored + woven into README/PRODUCT/GOALS/CLAUDE/docs-index/mkdocs |
#468 |
| W1a | soc-furq8 |
"2,514 LOC dead RPI code" claim was false (all load-bearing) — corrected CLAUDE.md to match reality; real removal → soc-1gbpz |
#469 |
| W1b | soc-icvff |
Aspirational features (gt convoy, bd mol/cook, curation stages 3-6) → docs/ROADMAP.md, cut from live docs |
#470 |
| W1c | soc-sb5r1 |
Workbench Δ=0 claim kept (artifact exists); unsubstantiated 3-judge-parity claim downgraded to internal finding | #471 |
| W1d | soc-onfm1 |
Stale dream_executor.go path fixed; 3 of 4 flagged items were already correct |
#472 |
| W2 | soc-qk4b |
Hexagon crank tail: 71/80 skills now carry canonical .feature acceptance (hexagonal_role already 100%) |
#473-479 |
| W3 | soc-6zihw |
Hook-noise audit then full hook removal: noise-injectors deleted, then all remaining gates/adapters removed outright (soc-57b7f) — AgentOps 3.0 ships hookless (skills + the ao CLI only) |
#480, #483, #488, #494 |
| W4 | soc-hplds |
This level-set | — |
A recurring pattern: the discovery over-stated scope, and verify-before-acting caught it every time (W1a dead-code was live; W1c only one of two claims was unbacked; W1d 3 of 4 already correct). That is the reconciliation working as intended — match what reality is, not what the gap report assumed.
Acceptance status (against docs/3.0.md "What 3.0-ready means")
- [x] North star is the single referenced source of truth —
docs/3.0.mdauthored (W0); README, PRODUCT, GOALS, docs-index, mkdocs nav, and CLAUDE.md all point to it. - [x] Docs match reality — the dead-code claim, aspirational-feature claims, unsubstantiated market claim, and stale path that the audit found are all corrected (W1a-d). Aspirational items live in
docs/ROADMAP.md; market claims are artifact-gated. - [x] Hexagon complete (stable surface) — every skill carries
hexagonal_role; 71/80 carry canonical.featureacceptance. The 9 without are intentionally exempt, not skipped:expert-council+inject(deprecated/removal-target),shared+standards+using-agentops+converter+provenance+flywheel(meta/internal/not user-invocable),llm-wiki(open proposal, no implementation — a.featurewould assert unbuilt behavior). - [x] Hooks audited for noise → none a noise-injector — audit complete (W3,
docs/architecture/hook-noise-audit.md); the 14 flagged entries split into 7 true noise-injectors (deleted acrosssoc-e2ju0S1–S3) and 7 conditional injectors (reclassified as kept-gates). 46 hooks remain, all gates or bounded adapters — none a noise-injector (soc-cul67). The separate default-install-zero-hooks lift issoc-e2ju0S4, still open and not a 3.0-close blocker. - [x] The loop is executable — the operating loop (discovery → plan → implement → validate → ratchet) is documented in operating-loop.md and was exercised end-to-end across this reconciliation's 13 PRs via
/discovery,/crank, worktree-per-bead, CI validation, and squash-merge ratchet. - [ ] Every AgentOps bead worked or closed — the reconciliation waves (W0-W4) and the off-3.0 beads are closed; remaining agentops-scoped 3.0-aligned beads (coherence/ledger hardening:
soc-ficdw,iha27,v3y80, et al.) are open and tracked, not abandoned. Fleet/other-reposoc-*beads (personal-site, mt-olympus, bushido-infra, showcase, platform-lab) are out of scope per the ratified content-scoping decision.
Net: 5 of 6 acceptance boxes met; the 1 open box (every AgentOps bead worked or closed) has named tracking beads, not unknowns.
Fitness snapshot (ao goals measure, 2026-05-23)
Score: 85.7% (26/31 gates passing). Two non-blocking fails:
flywheel-lifecycle— 30s timeout; environmental CI flakiness (soc-iwrm2), not a code regression.executable-spec-link-integrity— warn-only (F1.6,continue-on-errorin CI); flags GOALS.md directive↔scenario linkage gaps (all 14 directives show 0/0 linked scenarios), a pre-existing gap unrelated to the skill.featurecrank.
Neither blocks PRs; both are tracked signals, not reconciliation regressions.
Remaining work (named, not blocking the 3.0-reconciliation close)
soc-e2ju0S4 — default install goes to zero hooks (the hooks-noise box is already met by S1–S3 deleting the 7 noise-injectors; S4 is the remaining default-install lift, not a 3.0-close blocker).soc-1gbpz— migrate-or-remove the legacy RPI lane (caller-migration refactor; the code is live, not dead).- Coherence/ledger hardening beads (
soc-ficdwet al.) — agentops 3.0-aligned, open. - ADR-0002 S2-S5 — hookless default-install + hookless RPI; explicitly a follow-on, not a 3.0-close blocker (docs/3.0.md).
- GOALS directive↔scenario linkage (the warn-only F1.6 gap).
Verdict
The 3.0 reconciliation achieved its mandate: docs match reality, the hexagon is complete across the stable skill surface, and the hooks are audited. The repo is substantially 3.0-ready; the remaining items are bounded, tracked, and (for hookless-default) explicitly deferred. The loop that produced this is the loop docs/3.0.md describes.