A failed mining-checkpoint write could truncate the saved watermark and cause retry to replay older events. The CLI also wrote evidence to external roots that status could not inspect. This batch fixes those behaviors and removes duplicate normalization from skill search. - Mining checkpoints use the existing atomic storage writer. A real partial-write regression test proves old bytes survive and retry retains stable event IDs. Existing mode bits are preserved; new checkpoints use 0600. Symlink and special-file destinations are rejected before reading. Before replacement, an empty same-directory probe checks ownership and permission metadata, including ACLs and inherited permissions. Unverifiable or different metadata returns an error and leaves the prior checkpoint intact. This is a conservative refusal, not ACL migration. A directory-sync error after rename can leave the new state visible. - `ao status --evidence-root PATH` inspects an explicit existing non-Git store, with matching text/JSON/YAML reports, no fallback on invalid roots, and no reads through evidence symlinks. Omitted-flag behavior remains unchanged. - Skill-query normalization has one implementation, preserving repetition versus first-occurrence semantics. Nine fixed shipped-catalog queries remain byte-identical against a source-pinned baseline. Validation: Go build, vet, tests, race/shuffle with atomic coverage, repository Bats and aggregate suites, regeneration, applicable gates and lint passed. Final Linux and Windows correctness CI and all required checks passed. A fresh author-distinct review verified every acceptance criterion across all 23 changed paths with no unchecked scope. Nine production-query outputs match the source-pinned baseline. The first CI attempt exposed a test-child coverage flush under its temporary file-size limit; the test now restores that limit before exit. Fresh review then exposed ACL loss despite green CI. The permission guard and native regression tests repair that defect while preserving the original access requirement. The failure cases and repair costs are retained in the evaluation.
ao — AgentOps CLI
ao supplies deterministic repository utilities and evidence inspection. It
is the optional checks/linking CLI of the AgentOps operations layer; the
semantic protocol lives in the skills:
RPI → Plan → Implement → fresh Validate → repair to convergence → report
The CLI does not own retries, queues, work claims, Git delivery, release, closure, or semantic validation. Consumer repositories choose their own Git and CI policy.
Install
go install github.com/boshu2/agentops/cli/cmd/ao@latest
Current executable truth
ao capabilities
ao robot-docs
ao --help
The generated command reference follows the published Cobra tree. Removed lifecycle commands are not registered at all: invoking one fails as an unknown command with a pointer to its replacement, and no build tag or compatibility profile restores their implementation.
Development
make build
make test
Add deterministic utilities only when they do not become lifecycle or delivery authorities. Keep semantic judgment in the Validate skill, optional verdict persistence with declared consumers, and external delivery in the consumer repository.