## What
Prepare AgentOps 4.0.0 across the Claude plugin, Codex plugin, skills
and CLI. Claude writers capture the supplied check status during its
original invocation, and plugin conformance verifies exact skill
membership and link destinations. Full release security now scans the
repository and blocks on Python collection failures that previously
produced a false green result.
## Why
The 3.6.0-to-current interval removes published commands and 20 skill
names, so this is a major release with migration instructions. Release
validation also exposed stale skill assertions and test prerequisites
that need to match the current product contracts without weakening
acceptance.
## How I tested
- Native Claude Opus/Haiku success, failing-check and direct-writer
trials: each check ran once, and the direct child returned plain JSON.
- Actual fresh installs and upgrades from 3.6.0 in isolated Codex and
Claude homes: 34 skills, expected agents, and exact installed package
bytes.
- Exact candidate `b721d02559e1495be6095ad97b820e88ceb4a049`: all 73
full repository gates, regeneration parity, and the complete local
release rehearsal passed. All 12 security tools ran with zero skips,
tool errors, critical findings or high-severity security findings. The
unchanged advisory policy reports 35 quality-high findings on unchanged
files.
- Python: 327 tests and 72 subtests passed. Hosted Bats: 1,509 passed,
31 environment-dependent skips, zero failures. Go
lint/build/vet/race/shuffle checks and CLI smoke/integration passed.
- All 11 hosted checks passed, including Windows correctness,
macOS/Linux installation, security, and the six-target no-publish
GoReleaser snapshot. Local archive checksums and a real macOS CLI
initialization/status/version smoke also passed.
- Fresh author-distinct review passed all four acceptance criteria and
all 35 changed paths with no unchecked acceptance. Canonical subject and
caller-intent verification passed; verdict digest
`68af2c935ed0106cd91b3950f5d168e662f4071f660fcbd113c36b7cd0f0426e` binds
manifest
`7affc77e25eaff69ba36c5ce05582b4f0385c954b76b62c02b97f97041f489b2`.
## Checklist
- [x] Breaking changes documented in the migration guide and complete
release notes.
- [x] No credentials or private runtime proof included.
- [x] Final full release checks pass on the exact candidate.
- [x] Fresh author-distinct final PASS is recorded before merge.
This prepares the release candidate; it does not publish a tag or
release.
Coverage limits remain explicit: native plugin tests used isolated macOS
homes and local marketplaces, guard installation remains opt-in, and
reader instructions do not prove sandbox confinement. Semgrep retains
pre-existing warning-level parser diagnostics. Snapshot metadata follows
the existing 3.6.0 tag; this is a packaging rehearsal, not a published
4.0.0 archive.
## What
Repair the opt-in read-budget guard, installer and Claude workflows from
#1137. The fixes cover conservative literal shell parsing, preserved
installer backups, bounded worker returns, distinct filesystem targets,
actual plugin-qualified names, complete reader coverage, exact receipt
identity and measured writer line counts.
## Why
The [fresh review of
e32e88c](https://github.com/boshu2/agentops/pull/1137#issuecomment-5648513520)
found major guard, installer and workflow defects. Subsequent real
Claude Opus sessions closed the previously untested name-resolution,
hook-inheritance and reader-context gaps and exposed further writer
defects.
This is the Claude repair branch. The separately requested Codex
implementation and correction of the old Codex/no-PreToolUse paragraph
are in #1140, which incorporates these fixes.
## How I tested
Exact head: `53bcfec1480c205290f286b4a7ccd582216eb6f9`. Fresh
author-distinct review is **FAIL overall**: A1–A5 and A7 pass, while A6
fails on the retained Codex premise assigned to #1140. Reviewer context
`01a097b8-b07c-7542-8a5a-5857fab3d069` was dispatched without inherited
history and authored no candidate code. All 31 changed paths have
identical start/end manifests (SHA-256
`ca3f3ed77038cea39cff609a02b2c2cf97356d481b70a22252939d54dc0a89c2`);
acceptance `not_checked: []`, because the failing surfaces were checked.
The reviewer also independently ran 58 guard shapes and preserved the
repeated-check defect.
[Hosted CI](https://github.com/boshu2/agentops/actions/runs/34722743295)
is green at this exact head (all eight checks succeeded). This does not
clear the observed model behavior failure.
All required A7 checks pass: 33 selected gates, 197 Bats tests, 11
projection checks, Door9, hookless cold-start, doc-hook drift,
shellcheck, workflow syntax, identical changelogs and clean diff checks.
No Go source changed. New regressions failed before their repairs and
passed afterward.
Native Claude 2.1.263 resolved requested Opus to `claude-opus-5`; plugin
children used `claude-haiku-4-5-20251001`. Sessions used explicit
fixture permissions, finite wall/output bounds and private native
transcripts.
- Real hook calls refused oversized Read/Bash calls, allowed a slice,
and wrote one hashed record per refusal. Actual child agent/tool IDs
prove hook inheritance.
- Parent `e075d6ee-5e6c-4a9a-bced-f8b04c8c62b1`: direct reader and
native Workflow each covered all 1,105 fixture lines with correct refs
10, 560, 1095. Independent transcript comparison confirms coverage, no
parent file dump and truthful missing-file results. Registered names
require the `agentops:` prefix.
- Parent `4b97e6e7-8620-4319-b94e-a10216cccddc`: two Workflow writers
and one direct writer created only assigned targets, returned accurate
seven-line receipts, and passed independent Bats checks. Native parent
received no complete child write payload or raw check output. Hard-link
aliases, literal duplicate targets and missing references were rejected
before writers started.
**Known live failure remains:** two of those three final workers ran the
supplied check twice despite the ONCE instruction. The direct agent also
fenced its metadata JSON despite the plain-JSON instruction. These are
preserved observed failures, not unchecked scenarios; this PR does not
claim complete one-shot Claude writer readiness. Earlier failed attempts
are retained and excluded from clean proof.
Target-only writes, check-once behavior and content-free direct-agent
replies are model instructions, not a filesystem sandbox or output
filter. No ADR-0002 value-proof clearance, savings percentage or latency
claim. Other runtime versions/accounts and adversarial enforcement of
advisory behavior were not tested.
## Checklist
- [x] `make build && make test` passes (if Go changes) — no Go changes;
gate runner built once.
- [x] No secrets or credentials in code
- [x] Breaking changes documented — ambiguous missing batch paths fail
before writers start; use separate calls.
Bring the Spotify Claude Code context-budget setup into AgentOps as one
opt-in PreToolUse guard (skills/cc-hooks/hooks/read-budget-guard.sh, policy
core.context:unbounded-read) with its opt-in installer, two Workflow-tool
conveyors (bulk-read, code-write), two plugin subagents (bulk-reader,
code-writer), their docs, regenerated projections, and three bats suites.
Nothing ships wired by default; the skill menu is unchanged.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H2bDH2j6XDPPcLQS84PdzN