Releases: boshu2/agentops
v2.20.0
brew update && brew upgrade agentops · bash <(curl -fsSL https://raw.githubusercontent.com/boshu2/agentops/main/scripts/install.sh) · checksums · verify provenance
Release v2.20.0
Highlights
- The knowledge flywheel now closes its own loop — learnings are extracted automatically at session boundaries, bridged from handoffs, and promoted to MEMORY.md without manual intervention.
- Production RPI orchestration (
ao rpi serve) brings SSE streaming, auto mode, and phased execution to goal-driven workflows. - Context declarations let skills declare what knowledge they need —
ao inject --for <skill>reads frontmatter and retrieves scoped context. - Knowledge mining with
ao mineandao defragautomates codebase intelligence gathering and deduplication. - Behavioral guardrails ship as a 3-layer hook system (intent echo, research loop detection, task validation gate) with warn-then-fail ratchet progression.
What's New
ao session close --auto-extractproduces lightweight learnings and auto-handoff when sessions end.ao handoffbridges decisions into.agents/learnings/automatically — no more lost context between sessions.ao inject --session-typeboosts learnings matching the current session context (career, debug, research, brainstorm).ao inject --profilesurfaces the durable identity artifact (.agents/profile.md) in every session.ao mineandao defragfor automated knowledge mining and deduplication.ao rpi serve <goal>with SSE streaming and auto execution mode.ao inject --for <skill>reads skill context declarations for scoped retrieval.- Coverage ratchet gate, fuzz targets, property tests, and golden file contracts harden the test suite.
- Release cadence gate warns when releasing too frequently.
All Changes (Condensed)
Added
- Flywheel loop closure: auto-extraction, handoff bridge, MEMORY.md promotion, session-type scoring.
- Context declarations with sections allowlist and artifact directory support.
- RPI orchestration engine, headless runner, and knowledge mining pipeline.
- Behavioral guardrails (3-layer hooks), git worker guard, embedded parity gate, swarm evidence validation.
- Nightly CI athena job, BATS integration tests, fuzz targets, golden file contracts.
Changed
- Coverage floor raised to 84% (cmd/ao), average to 95%; complexity ceiling tightened to 20.
- Session-start defaults to lean mode; injection gets hard quality gate (maturity + utility filter).
- Post-mortem redesigned as knowledge lifecycle processor; legacy RPI orchestrator retired (-1,121 lines).
- 10k LOC of coverage-padding tests deleted; 72 stale tests quarantined.
- Skill hardening with web security controls, CSRF protection, and crank pre-flight.
Fixed
- Flywheel signal chain (confidence decay, ordering, glob errors), path traversal in context hook, handoff race condition.
ao minestability (dedup IDs, error propagation,--sincewindow, empty output guard).- Hook tests aligned with warn-then-fail ratchet (strict env required); pre-mortem gate exit code corrected.
- RPI serve pipeline hardened, jq injection fix, goals parser edge cases, rune-safe UTF-8 truncation.
Full CHANGELOG
See CHANGELOG.md for the complete list of changes.
Full changelog
Added
- Flywheel loop closure —
ao session close --auto-extractproduces lightweight learnings and auto-handoff at session boundary - Handoff-to-learnings bridge —
ao handoffnow extracts decisions into.agents/learnings/automatically - Session-type scoring in
ao inject --session-type— 30% boost for matching session context (career, debug, research, brainstorm) - Identity artifact support —
ao inject --profilesurfaces.agents/profile.mdin session context - MEMORY.md auto-promotion in
ao flywheel close-loop(Step 7) after maturity transitions - Session-type detection in
ao forgeoutput metadata - Production RPI orchestration engine —
ao rpi serve <goal>with SSE streaming and auto mode - Knowledge mining —
ao mineandao defragcommands for automated codebase intelligence - Context declarations —
ao inject --for <skill>reads skill frontmattercontext:block for scoped retrieval - Sections include allowlist and context artifact directories for skill-scoped injection
ao handoffcommand for structured session boundary isolation- Behavioral guardrails — 3-layer hook defense-in-depth (intent-echo, research-loop-detector, task-validation-gate)
- Context enforcement hook and run-id namespaced artifact paths
- Headless invocation standards and RPI phase runner
- Nightly CI athena job for automated knowledge warmup
- Coverage ratchet gate with BATS integration tests for shell scripts
- Fuzz targets, property tests, and golden file contracts for CLI
- Git worker guard, embedded parity gate, and swarm evidence validation hooks
- Release cadence gate warns on releases within 7 days of previous
Changed
- Coverage floor raised to 84% for
cmd/ao, average floor to 95% - Complexity ceiling tightened to 20 (from 25)
- Default session-start hook mode switched from manual to lean
- Hard quality gate on injection — maturity + utility filter
- Post-mortem redesigned as knowledge lifecycle processor
- RPI god-file split — 1,363 lines reduced to 203 with structured handoff schema
- Legacy RPI orchestrator retired — serve now uses phased engine (-1,121 lines)
- Council V2 findings synthesized into agent instructions and skill contracts
- 10k LOC of coverage-padding tests deleted; 72 stale tests quarantined
- Skill hardening — web security controls across 5 skills, CSRF protection, crank pre-flight
- Session-end hook wires
ao session close --auto-extractbefore existing forge pipeline
Fixed
- Flywheel signal chain — confidence decay, close-loop ordering, glob errors
- Path traversal in context enforcement hook and frontmatter parsing
- Race condition in handoff consumption at session boundary
ao minestabilized — dedup IDs, error propagation,--sincewindow, empty output guard- Hook test assertions aligned with warn-then-fail ratchet pattern (strict env required)
- Pre-mortem gate exit code corrected to 2 in strict mode (was 1)
- RPI serve event pipeline and coherence gate hardened
- jq injection via bare 8-hex run IDs in serve classifier
- Goals parser edge cases — paired backtick strip and rune-aware truncation
- UTF-8 truncation across six functions converted to rune-safe slicing
- CORS headers and stale doc references cleaned up
- Cross-wave worktree file collisions prevented
- hookEventName added to hookSpecificOutput JSON schema
Full Changelog: v2.19.3...v2.20.0
v2.19.3
brew update && brew upgrade agentops · bash <(curl -fsSL https://raw.githubusercontent.com/boshu2/agentops/main/scripts/install.sh) · checksums · verify provenance
Changed
- README highlights
ao search(built on CASS) — indexes all chat sessions from every runtime unconditionally; adds Second Brain + Obsidian vault section with Smart Connections local/GPU embeddings and MCP semantic retrieval
Full Changelog: v2.19.2...v2.19.3
v2.19.2
brew update && brew upgrade agentops · bash <(curl -fsSL https://raw.githubusercontent.com/boshu2/agentops/main/scripts/install.sh) · checksums · verify provenance
Fixed
- CHANGELOG retrospectively updated to document all v2.19.1 post-tag commits (skills namespace fixes were shipped but not recorded)
Full Changelog: v2.19.1...v2.19.2
v2.19.1
brew update && brew upgrade agentops · bash <(curl -fsSL https://raw.githubusercontent.com/boshu2/agentops/main/scripts/install.sh) · checksums · verify provenance
Fixed
- Quickstart skill rewritten from 275 lines to 68 lines — removes 90-line ASCII diagram and 50-line intent router that caused 3+ minute runtime; now outputs ~8 lines and completes in under 30 seconds
truncateTextedge case: maxLen 1–3 now returns"..."[:maxLen]instead of the original string unchanged- Dead anti-pattern promotion functions removed from
ao maturity(promoteAntiPatternsCmd,filterTransitionsByNewMaturity,displayAntiPatternCandidates, ~99 LOC) - Windows file-lock and signal support — replace no-op
filelock_windows.gowith realLockFileEx/UnlockFileExvia kernel32.dll; extractsyscall.Flockandsyscall.Killinto platform-specific helpers so the binary compiles on Windows without POSIX-only syscalls heal.shCheck 7 false positive — script reference integrity check now strips URLs before pattern matching, preventing remotehttps://…/scripts/foo.shreferences from being validated as local files- Security gate
BLOCKED_HIGH— three persistent findings resolved: gosec G118 false positive (context cancel func returned to caller), golangci-lint nolint syntax (space in// nolint:directive), radon double-countingreverse_engineer_rpi.pyfromskills-codex/copy
Added
- Spec-consistency gate (
scripts/spec-consistency-gate.sh) validates contract files before crank spawns workers - Command-surface parity gate (
scripts/check-cmdao-surface-parity.sh) ensures all CLI leaf commands are tested scripts/post-merge-check.shnow validatesgo mod tidysync and blocks on symlinksscripts/merge-worktrees.shnow propagates file deletions and preserves permissions- Post-mortem preflight script checks reference file existence before council runs
- Hooks.json preflight validates script existence
- Windows binaries added to GoReleaser and SLSA attestation subject list
Changed
- Coverage floor raised 78% → 80% with CI enforcement gate; Codecov threshold aligned to 75%
- Six truncation functions converted to rune-safe Unicode slicing
truncateIDin pool.go delegates to sharedtruncateText- Crank skill invokes spec-consistency gate before spawning workers
- Vibe skill carries forward unconsumed high-severity next-work items as pre-flight context
- Release skill warns on unconsumed high-severity next-work items
- next-work JSONL schema formalized to v1.2
- Skills installation switched from
npx skillsto native curl installer (bash <(curl -fsSL …/install.sh)) - README updated with 5-command summary, compound effect section, and
/vibebreakdown
Full Changelog: v2.19.0...v2.19.1
v2.19.0
brew update && brew upgrade agentops · npx skills@latest update · checksums · verify provenance
Release v2.19.0
Highlights
- RPI operations are more observable and steerable with new stream/worker surfaces and stronger nudge flows.
- CLI and hooks are fully aligned on the flat command namespace, reducing drift and stale command usage.
- Reliability hardening from multiple post-mortem waves landed across CLI, RPI, swarm, and docs/skill parity.
- Codex delivery matured with modular skill generation, runtime-specific overrides, and improved install/bootstrap paths.
What's New
- Added
ao mindfor knowledge graph operations. - Added RPI operational surfaces:
ao rpi streamandao rpi workers. - Improved tmux worker visibility and nudge telemetry in phased RPI runs.
- Added Windows build output support in GoReleaser.
All Changes (Condensed)
Added
- New command surfaces for knowledge graph and RPI event/worker observability.
- Codex install/bootstrap improvements, including native
~/.codex/skillshandling and one-liner install flow.
Changed
- Completed CLI namespace flattening and aligned hooks/docs/tests around canonical command paths.
- Regenerated codex-native skills with modular layout and codex-specific overrides.
- Hardened CI/release policy enforcement (runtime sections, parity checks, release-e2e checks).
- Refactored high-complexity CLI paths to improve maintainability and reduce risk.
Fixed
- Post-mortem remediation findings for CLI/RPI/swarm reliability and edge cases.
- Flat-namespace delegation/integration regressions in hooks and tests.
- False positives and stale-path hints in heal/doctor workflows.
- Skill/documentation parity and cross-reference drift.
Removed
- Legacy inbox/mail command surface and stale/dead catalog references.
Full Changelog
See CHANGELOG.md for full contributor-facing details.
Full changelog
Added
ao mindcommand for knowledge graph operations.- New RPI operator surfaces: normalized C2/event plumbing plus
ao rpi stream,ao rpi workers, and tmux worker nudge visibility. - Codex install/bootstrap improvements, including native
~/.codex/skillsinstall and one-line installer flow. - Windows binaries added to GoReleaser build outputs.
Changed
- CLI namespace migration completed and aligned across hooks, docs, integration tests, and generated command references.
- Codex skill system moved to regenerated modular layout with codex-specific overrides and runtime prompt tailoring.
- CI/release gates hardened (codex runtime sections, release e2e validation, parity checks, stricter policy enforcement).
- High-complexity CLI paths refactored (
runRPIParallel,runDedup,parseGatesTable) to lower cyclomatic complexity.
Fixed
- Multiple post-mortem remediation waves landed for CLI/RPI/swarm reliability and edge-case handling.
- Hook delegation and integration behavior corrected for flat command namespace.
heal.shfalse-positive behavior reduced and doctor stale-path detection improved.- Skill/doc parity and cross-reference drift issues corrected across codex and core skill catalogs.
Removed
- Legacy inbox/mail command surface and stale/dead skill references from active catalogs.
Full Changelog: v2.18.2...v2.19.0
v2.18.2
brew update && brew upgrade agentops · npx skills@latest update · checksums · verify provenance
Fixed
ao seednow creates.gitignoreand storage directories — reusessetupGitProtection,ensureNestedAgentsGitignore, andinitStoragefromao initao seedtext updated from staleao inject/ao forgeto current MEMORY.md + session hooks paradigm- MemRL feedback loop closed —
ao feedback-loopcommand wired,ao maturity --recalibratedry-run guard added - Quickstart skill updated to reference
ao seedand current flywheel docs - CLI reference regenerated after
ao feedback-loopand seed help text changes
Changed
.agents/session artifacts removed from git tracking- PRODUCT.md updated — Olympus section removed, value props and skill tier counts corrected
- GOALS.md coverage directive updated to measured 78.8% (target 85%)
Full Changelog: v2.18.1...v2.18.2
v2.18.1
brew update && brew upgrade agentops · npx skills@latest update · checksums · verify provenance
v2.18.1 — Knowledge Flywheel Integrity Hotfix
Addresses 6 findings from a council e2e validation of the knowledge pipeline. The flywheel now prunes, injects, and compounds as advertised.
Highlights
- Flywheel injection fires every session — default startup mode switched from
manual(pointer-only) tolean(utility-weighted knowledge injection) - Empty learnings can no longer game metrics — extract skips empty files, pool ingest rejects stubs, 13 existing stubs removed
- Pruning is no longer dormant — auto-prune enabled by default, eviction and anti-pattern thresholds relaxed to match real data distributions
What's New
Knowledge Pipeline Fixes
- Extract prompt no longer creates "No significant learnings" stub files
- Pool ingest rejects bodies containing the sentinel phrase as a safety net
ao pool ingestnow runs automatically at session end after forge (was manual-only)
Threshold Recalibration
- Anti-pattern detection:
harmful_count >= 5lowered to>= 3(no learning ever accumulated 5 harmful events) - Eviction confidence:
< 0.2relaxed to< 0.3(enables eviction to actually fire) - Help text synced with code: promotion threshold documented as
0.55(was incorrectly showing0.7)
Default Changes
AGENTOPS_STARTUP_CONTEXT_MODEdefaults tolean(wasmanual)AGENTOPS_AUTO_PRUNEdefaults to1(was0). Set to0to disable.
All Changes
See CHANGELOG.md for the complete list.
Full changelog
Changed
- SessionStart hook default mode changed from
manualtolean— flywheel injection now fires every session - Auto-prune enabled by default (
AGENTOPS_AUTO_PRUNEdefaults to1, opt-out via=0) - Anti-pattern detection threshold lowered from
harmful_count >= 5to>= 3 - Eviction confidence threshold relaxed from
< 0.2to< 0.3 - Maturity promotion threshold in
--helptext synced with code (0.7→0.55)
Fixed
- Empty learnings no longer inflate flywheel metrics — extract prompt skips empty files, pool ingest rejects "no significant learnings" stubs
ao pool ingestnow runs automatically in session-end hook after forge (was manual-only)- 8 stale doc/comment references to old thresholds updated across hooks, ENV-VARS.md, HOOKS.md, using-agentops skill
- 13 empty stub learnings removed from
.agents/learnings/
Full Changelog: v2.18.0...v2.18.1
v2.18.0
brew update && brew upgrade agentops · npx skills@latest update · checksums · verify provenance
v2.18.0 Release Notes
Highlights
- Knowledge plumbing overhaul — New commands (
seed,lookup,curate,dedup,contradict,context assemble) connect the knowledge flywheel end-to-end, from planting AgentOps in a fresh repo to assembling context briefings for tasks. - Memory sync across runtimes —
ao memory syncwrites structured MEMORY.md with managed block markers so Codex, OpenCode, and other runtimes can read session history without AgentOps hooks. - 79% cmd/ao test coverage — Five waves of parallel test generation added 500+ tests covering Cobra commands, RunE entry points, output formatters, and edge cases. Cobra pflag state pollution fixed for reliable test isolation.
- Codex-native skill delivery — New
skills-codex/format with install and sync scripts brings AgentOps skills to Codex and other non-Claude runtimes.
What's New
Commands
ao notebook update— compound MEMORY.md loop merging session insightsao memory sync— repo-root MEMORY.md with managed block markersao seed— plant AgentOps with auto-detected templates (go-cli, python-lib, web-app, rust-cli, generic)ao lookup— retrieve knowledge artifacts by ID or relevanceao constraintfamily — manage compiled constraints (list, activate, retire, review)ao curatefamily — curation pipeline operations (catalog, verify, status)ao dedup/ao contradict— detect duplicates and contradictions in learningsao metrics health— flywheel health metrics (sigma, rho, delta)ao context assemble— build 5-section context packet briefings
Knowledge Pipeline
- Work-scoped injection:
ao inject --bead <id>boosts learnings tagged with active work - Predecessor context:
ao inject --predecessor <handoff>surfaces handoff context - Compact index:
ao inject --index-onlyoutputs ~200 token index for JIT retrieval - Global
~/.agents/tier for cross-repo learning sharing - Citation-to-utility feedback pipeline in flywheel close-loop
Hooks & Infrastructure
- SessionStart rewritten with 3 startup modes (manual, lean, legacy)
- SessionEnd gates notebook update and memory sync on successful forge
- Platform-specific process-group isolation for goal timeouts (Unix SIGKILL pgid, Windows taskkill /T)
- Constraint compiler hook and Type 3 setup hook template
Testing
- 500+ new cmd/ao tests across 5 parallel waves (64% -> 79.2% coverage)
- Cobra pflag state pollution fix ensures reliable test isolation
- Coverage floor ratcheted to 78%, zero-coverage max to 20
All Changes
See CHANGELOG.md for the complete list of 53 commits in this release.
Full changelog
Added
ao notebook updatecommand — compound MEMORY.md loop that merges latest session insights into structured sectionsao memory synccommand — sync session history to repo-root MEMORY.md with managed block markers for cross-runtime access (Codex, OpenCode)ao seedcommand — plant AgentOps in any repository with auto-detected templates (go-cli, python-lib, web-app, rust-cli, generic)ao lookupcommand — retrieve specific knowledge artifacts by ID or relevance query (two-phase complement toao inject --index-only)ao constraintcommand family — manage compiled constraints (list, activate, retire, review)ao curatecommand family — curation pipeline operations (catalog, verify, status)ao dedupcommand — detect near-duplicate learnings with optional--mergeauto-resolutionao contradictcommand — detect potentially contradictory learningsao metrics healthsubcommand — flywheel health metrics (sigma, rho, delta, escape velocity)ao context assemblecommand — build 5-section context packet briefings for tasks- Work-scoped knowledge injection:
ao inject --bead <id>boosts learnings tagged with the active bead - Predecessor context injection:
ao inject --predecessor <handoff-path>surfaces structured handoff context - Compact knowledge index:
ao inject --index-onlyoutputs ~200 token index table for JIT retrieval - Learning schema extended with
source_beadandsource_phasefields for work-context tracking ao extract --bead <id>tags extracted learnings with the active bead ID- Citation-to-utility feedback pipeline in flywheel close-loop (stage 5)
- Global
~/.agents/knowledge tier for cross-repo learning sharing (0.8 weight penalty, deduped) - Bead metadata resolver reads from env vars (
HOOK_BEAD_TITLE,HOOK_BEAD_LABELS) or cache file - Goal templates embedded in binary (go-cli, python-lib, web-app, rust-cli, generic) for
ao goals init --templateandao seed - Platform-specific process-group isolation for goal check timeouts (Unix: SIGKILL pgid, Windows: taskkill /T)
- SessionStart hook rewritten with 3 startup modes: manual (default), lean, legacy — via
AGENTOPS_STARTUP_CONTEXT_MODE - SessionEnd hook now gates notebook update and memory sync on successful forge
- Type 3 setup hook template:
hooks/examples/50-agentops-bootstrap.sh - Constraint compiler hook:
hooks/constraint-compiler.sh - Codex-native skill format (
skills-codex/) with install and sync scripts for cross-runtime skill delivery - Comprehensive cmd/ao test coverage push — 500+ tests across 5 waves reaching 79.2% statement coverage (13 untestable functions excluded)
Changed
- SessionStart hook default mode changed from full inject to
manual(pointer-only context, MEMORY.md auto-loaded by Claude Code) ao flywheel close-loopnow applies ALL maturity transitions (not just anti-pattern)ao hooksgenerated config uses script-based commands instead of inline ao invocationsao rpiprefers epic-type issues before falling back to any open issue
Fixed
truncateTextnow uses rune-safe[]runeslicing to avoid breaking multi-byte UTF-8 characterssyncMemoryextracted from Cobra handler for testabilityparseManagedBlockdetects duplicate markers and refuses to parse (prevents data loss)readNLatestSessionEntrieswarns on skipped unreadable session filesreadSessionByIDdetects ambiguous matches and returns error instead of first substring matchfindMemoryFilebroad contains-fallback removed (was matching wrong projects)pruneNotebookiteration capped at 100 to prevent runaway loopsMEMORY_AGE_DAYSsentinel initialized to -1 (was 0, causing false lean-mode activation when file missing)- Lean-mode guard now requires
MEMORY_AGE_DAYS >= 0before comparing freshness - Memory sync moved inside forge success gate in session-end hook
ao search --jsonreturns[](empty JSON array) when no results, instead of human-readable textao doctorreturnsDEGRADEDstatus for warnings without failures (previously only HEALTHY/UNHEALTHY)ao rpi statusgoroutine leak fix — signal channel properly cleaned up- Inline rune truncation in
formatMemoryEntryreplaced with sharedtruncateText - 6 new tests for dedup, ambiguity detection, iteration cap, duplicate markers
- Cobra pflag state pollution between test invocations — explicit flag reset in
executeCommand()helper - Goals validate.sh outdated checks and missing validate.sh for 7 skills
- 10 tech debt findings from ag-8km+ag-chm post-mortem (stale nudge, scanner, docs)
- ao binary codesigned with stable Mach-O identifier
- Hook integration tests updated — removed 8 stale standalone ao-* hook tests consolidated into session-end-maintenance.sh
Full Changelog: v2.17.0...v2.18.0
v2.17.0
brew update && brew upgrade agentops · npx skills@latest update · checksums · verify provenance
Highlights
Goals are no longer just a YAML checklist. The new GOALS.md format adds strategic direction — mission statements, north stars, and steerable directives that tell the evolve loop what to work on when nothing else is queued. This directly addresses the 58% idle rate in autonomous evolve sessions.
What's New
- GOALS.md intent layer — A markdown-based goals format with mission, north/anti stars, and directives. Evolve can now act on strategic priorities when gates and beads are empty.
- Six new
ao goalscommands —init,steer,prune,migrate --to-md,measure --directives, andvalidategive full lifecycle control over goals. - Format-aware writeback —
ao goals addauto-detects whether your goals file is YAML or Markdown and writes in the correct format. - RPI fallback fix — When Phase 1 creates a task instead of an epic,
ao rpinow falls back to any open issue instead of failing (#50).
All Changes
Added
- Markdown-based goals format (v4) with mission, north/anti stars, and steerable directives
- Interactive goals bootstrap command with non-interactive mode
- Commands to add, remove, and prioritize directives
- Command to remove stale gates referencing missing file paths
- YAML-to-Markdown goals format converter
- JSON output of active directives for evolve consumption
- Goals format validation and directive counting
- Format-aware goals writeback (auto-detects md or yaml)
- Markdown parser library with round-trip rendering and 26 tests
- Goals skill rewritten with OODA-style verbs
- Evolve directive-based cascade for reducing idle cycles
Fixed
- RPI falls back to any open issue when no epic exists
- RPI phased processing test coverage added for core functions
Full changelog
Added
- GOALS.md (v4) OODA-driven intent layer — markdown-based goals format with mission, north/anti stars, and steerable directives
ao goals initinteractive GOALS.md bootstrap with--non-interactivemodeao goals steercommand to add, remove, and prioritize directivesao goals prunecommand to remove stale gates referencing missing pathsao goals migrate --to-mdconverter from GOALS.yaml to GOALS.md formatao goals measure --directivesJSON output of active directivesao goals validatereports format and directive count- Format-aware
ao goals addwriteback (auto-detects md or yaml) - Go markdown parser library with case-insensitive heading matching and round-trip rendering (26 tests)
/goalsskill rewritten with 5 OODA verbs (init/measure/steer/validate/prune)/evolveStep 3 rewritten with directive-based cascade for idle reduction
Fixed
ao rpifalls back to any open issue when no epic exists (#50)- RPI phased processing tests added (~230 lines) for writePhaseResult, validatePriorPhaseResult, heartbeat, and registry directory
Full Changelog: v2.16.1...v2.17.0
v2.16.0
brew update && brew upgrade agentops · npx skills@latest update · checksums · verify provenance
v2.16.0
Highlights
- Evolve idle hardening — 52% of evolve commits in production were idle noise. Now idle cycles aren't committed, stagnation is disk-derived (survives compaction), and a 60-minute circuit breaker stops runaway sessions.
- Evolve
--qualitymode — New flag inverts the priority cascade: post-mortem findings before goals. Harvested work has 100% first-attempt success rate in production (15/15 items). Quality scoring tracks unconsumed findings. - 6-phase RPI E2E tests — Full lifecycle validation: gate retries, complexity scaling, phase summaries, promise tags. Catches integration regressions that unit tests miss.
- 8
aoCLI bug fixes — Pool matching, artifact counts, score display, symlink detection, JSON truncation, and more (#41-#48).
What's New
Evolve Skill Overhaul
The evolve skill received three major improvements based on analysis of 179 production cycles (117 commits, 7.5 days of autonomous operation):
- Idle cycles are no longer committed to git, reducing commit noise by ~52%
- Rolling fitness files (
fitness-latest.json) replace per-cycle snapshots - Canonical
cycle-history.jsonlschema standardized across all entry types - New
--qualitymode prioritizes unconsumed post-mortem findings
CLI Fixes
Eight bugs fixed across ao subcommands, all with issue tracking (#41-#48). Notable: v1 GOALS.yaml now accepted with deprecation warning + migration path.
Skill Maintenance
13 skills received targeted fixes: dead links, stale references, missing catalog entries, vaporware sections removed, fixture paths corrected.
Testing
Fixture-based CLI regression tests and a 6-phase RPI E2E test suite added for comprehensive lifecycle validation.
All Changes
Full changelog (click to expand)
Added
- Evolve idle hardening,
--qualitymode, schema standardization heal-skillchecks 7-10 with--strictCI gate- 6-phase E2E validation for RPI lifecycle
- Fixture-based CLI regression and parity tests
ao goals migratecommand (#48)- Goal failure taxonomy script and tests
Changed
- 6 architecture concerns addressed (CLI taxonomy, shared resolver, skill versioning, doctor dogfooding)
- GoReleaser action v6 → v7
- Evolve build detection generalized to multi-language
Fixed
ao pool list --wideand prefix matching (#47)- Artifact count consistency (#46)
- Vibe-check score double multiplication (#45)
- Symlink skill detection (#44)
- Learnings frontmatter ID resolution (#43)
- JSON output truncation (#42)
- Hook event count display (#41)
- 13 skill fixes (post-mortem, handoff, quickstart, openai-docs, provenance, oss-docs, reverse-engineer-rpi, evolve, crank, codex-team, security, using-agentops, vibe)
- Post-mortem schema migration
- Evolve oscillation detection
- Embedded skills and CLI docs sync
Full Changelog: See CHANGELOG.md
Full changelog
Added
- Evolve idle hardening — disk-derived stagnation detection, 60-minute circuit breaker, rolling fitness files, no idle commits
- Evolve
--qualitymode — findings-first priority cascade that prioritizes post-mortem findings over goals - Evolve cycle-history.jsonl canonical schema standardization and artifact-only commit gating
heal-skillchecks 7-10 with--strictCI gate for automated skill maintenance- 6-phase E2E validation test suite for RPI lifecycle (gate retries, complexity scaling, phase summaries, promise tags)
- Fixture-based CLI regression and parity tests
ao goals migratecommand for v1→v2 GOALS.yaml migration with deprecation warning (#48)- Goal failure taxonomy script and tests
Changed
- CLI taxonomy, shared resolver, skill versioning, and doctor dogfooding improvements (6 architecture concerns)
- GoReleaser action bumped from v6 to v7
- Evolve build detection generalized from hardcoded Go gate to multi-language detection
Fixed
ao pool list --wideflag andpool showprefix matching (#47)- Consistent artifact counts across
doctor,badge, andmetrics(#46) - Double multiplication in
vibe-checkscore display (#45) - Skills installed as symlinks now detected and checked in both directories (#44)
- Learnings resolved by frontmatter ID;
.mdfile count in maturity scan (#43) - JSON output truncated at clean object boundaries (#42)
- Misleading hook event count removed from display (#41)
- Post-mortem schema
modelfield and resolverDiscoverAllmigration - 15+ missing skills added to catalog tables in
using-agentops - Handoff example filename format corrected to
YYYYMMDDTHHMMSSZspec - Quickstart step numbering corrected (7 before 8)
- OpenAI docs skill: added Claude Code MCP alternative to Codex-only fallback
- Dead link to
conflict-resolution-algorithm.mdremoved from post-mortem ao forge search→ao searchin provenance and knowledge skills- OSS docs: root-level doc path checks, removed golden-init reference
- Reverse-engineer-rpi fixture paths and contract refs corrected
- Crank: removed missing script refs, moved orphans to references
- Codex-team: removed vaporware Team Runner Backend section
- Security skill: bundled
security-gate.sh, fixedsecurity-suitepath - Evolve oscillation detection and TodoWrite→Task tools migration
- Wired
check-contract-compatibility.shinto GOALS.yaml - Synced embedded skills and regenerated CLI docs
Full Changelog: v2.15.3...v2.16.0