Skip to content

v3.9.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 20:03
· 60 commits to main since this release
4ba6ed4

brew update && brew upgrade agentops · update skills · checksums · verify provenance


Highlights

AgentOps 3.9 narrows the product to its own guidance. The ten bundled external tool skills are removed. Three repository delivery workflows are retired. The Codex plugin now reads the same skills/ tree every other install uses, instead of a generated copy. Installation has three supported paths: the Claude Code plugin, the Codex plugin, and npx skills for every other agent.

Validation is now spent where a mistake is costly. For an ordinary change the checks and CI are the gate; the skills call for one fresh review only when you ask, when a mistake can't be cheaply undone, or when no check covers what changed. A review is one round, and a fix does not start another.

Two skills are new. Interview settles a large outcome with you one question at a time before agents work alone. Navigate picks the next wave on a bead graph and keeps the graph honest toward the acceptance you froze. Council gains duel and interview-panel modes, and you can give each member its own model, effort and perspective.

The optional menu goes from 36 to 28 skills. Native coding still requires none of them.

Upgrade Notes

  • Update your managed plugin or selected source checkout using the update guide, then start a fresh session.
  • Codex plugin users: refresh the marketplace and re-add the plugin. The plugin now ships skills/ instead of the generated skills-codex/ copy; skill names, descriptions and bodies are unchanged.
  • AgentOps no longer ships account-rotation, agent-mail, cass, cc-hooks, dcg, ms, ntm, rch, sbh or using-flywheel, and provides no replacement for them. The README's recommended tools section links the projects it still recommends: DCG, CASS, Meta Skill, the Agentic Coding Flywheel and Gas City. Get those tools, and any skills for them, from their authors. Copies you installed earlier with npx skills are not deleted by this release.
  • If you track a source checkout, upgrade ao to 3.9 before running any ao command from it: brew upgrade agentops, or cd cli && go install ./cmd/ao in the checkout. A 3.8 ao looks for the deleted skills-codex/ directory and refuses the updated checkout.
  • If you track a source checkout with ao skills link, pulling 3.9 removes the ten skills from the checkout and leaves a dangling link for each in every runtime's skill directory. ao skills link adds missing links and never removes one. From the checkout, run ao skills unlink (preview with --dry-run), then repeat the ao skills link command you first used. Pass the same --dest to both if you linked into a custom directory. unlink has no --skill selector, so repeat any --skill options on the second command; a bare ao skills link links all 28 skills.
  • If you install with an old curl … | bash line, switch to a plugin or npx skills@latest add boshu2/agentops. Those scripts already refused to install in 3.8; their URLs now return 404.
  • If you copied the retired workflow files instead of linking them, replace the copies. For ~/.claude/workflows, run bash scripts/install-workflows.sh from the AgentOps checkout and name only the retired files you have, for example bash scripts/install-workflows.sh bdd-foundry.js ship-beads.js. Each named file becomes a link to the current one, and a file that differs is backed up first; without file names the script installs every workflow. For another project's .claude/workflows, remove the old file, then run ao workflows link --into <project>/.claude/workflows from the AgentOps checkout, which links every workflow that has no entry there yet.
  • If you call the hook guard scripts directly, update skills/cc-hooks/scripts/install-hooks.sh and skills/cc-hooks/hooks/* to scripts/install-policy-dispatch.sh and hooks/guards/. Plugin users and already-installed guards need no action.
  • A skill-only install (npx skills) no longer carries a hook installer. The guards come with the Claude plugin, which activates them itself, or with a source checkout through scripts/install-policy-dispatch.sh. If you move to the plugin, remove the npx skills copy first so each skill is not loaded twice.
  • If you use Skill Builder's scripts outside a source checkout, install ao 3.9 or later. Inside a checkout they build ao with Go.
  • If you installed the Gemini package, run agy plugin disable agentops-core-gemini and then agy plugin uninstall agentops-core-gemini, and install through npx skills.
  • If an earlier ao skills link put Pi links in ~/.pi/skills, remove them with ao skills unlink --dest ~/.pi/skills. Pi loads user-level skills from ~/.pi/agent/skills.
  • If upgrading from 3.6 or earlier, follow the migration guide first.

Breaking Changes

  • Ten skills are removed from the bundle: account-rotation, agent-mail, cass, cc-hooks, dcg, ms, ntm, rch, sbh and using-flywheel.
  • The bdd-foundry, ship-beads and bead-crank Claude workflows are retired. Each name still resolves, and fails with a migration message before doing any work.
  • The 3.x curl and PowerShell skill installer stubs are deleted: scripts/install.sh, install-claude.sh, install-codex.sh, install-agy.sh, install-opencode.sh and install-codex.ps1. They already refused to install; their raw URLs now return 404.
  • The images/gemini package (agentops-core-gemini) is removed.
  • The generated skills-codex/ copy and its tooling are removed. Anything that read skills-codex/ directly must read skills/.
  • The skills/cc-hooks/ paths are gone. AgentOps' own guards now live under hooks/guards/. The skill-first-coord-guard.sh hook is removed, not moved.
  • scripts/install-ms-reindex-hook.sh and scripts/ms-reindex.sh are deleted.
  • The fixed-dispatch RPI reference adapter (skills/rpi/scripts/run_once.py) is removed.
  • Skill Builder's scripts require ao. Build no longer writes a default report under .agents/scratch/skill-builder/, and invalid creation inputs exit 1 instead of 2.
  • ao skills check --json no longer has parity_drift or a per-skill codex_parity, and skills/catalog.json no longer has codex_override_present.

At a Glance

Area What changes for the user
Skill menu 28 skills instead of 36: Interview and Navigate are new, ten external tool skills are removed.
Validation Checks and CI are the gate; one fresh review only where a mistake is costly; one round, no re-review after a fix.
Codex plugin Reads skills/ directly; the generated copy is gone. Refresh the marketplace and re-add the plugin.
Shaping work Interview settles a large outcome question by question; Navigate walks the resulting bead graph one wave at a time.
Council Duel and interview-panel modes; per-member model, effort and perspective.
Delivery workflows bdd-foundry, ship-beads and bead-crank fail with a migration message. Deliver with native Git and your tracker.
Installation Claude Code plugin, Codex plugin, or npx skills. The curl installer stubs and the Gemini package are gone.
Skill authoring Skill Builder runs through ao skills build, audit and check-source, and reports structure separately from evidence that a skill helps.

Product Areas

Skills and Workflows

  • Changed: Validation is spent where a mistake is costly. For an ordinary change the author's checks and CI are the gate. RPI, Validate, Implement, Orchestrate, Craft Goal and Navigate call for one fresh review only when the caller asks, a mistake cannot be cheaply undone after it lands, or no deterministic check covers the changed behavior. The reviewer answers one question, does not re-run checks, and reports as defects only what would mislead a user, break install or the CLI, or remove protection for the product. A fix is confirmed by a check and does not start another review.
  • Added: Interview shapes a large outcome with the caller one question per turn. Each question carries a recommendation and its main tradeoff, and acceptance is recorded as Given/When/Then examples. It is invoked by a person and creates no goal or bead.
  • Added: Navigate picks the next wave on a bead graph: the acceptance matrix, the ready frontier, a small wave, then results and discoveries recorded on the beads. It never dispatches, judges or closes work. The bead graph contract and wave loop move here from Craft Goal.
  • Added: Council duel mode. Each member writes its own ranked ideas, scores every other member's ideas on a rubric fixed before launch, then concedes or defends in one bounded round. Ideas rank by cross-member agreement.
  • Added: Council interview-panel mode. Each member answers Interview's questions in its own context. Agreed answers are marked, one bounded debate covers the open ones, and the caller accepts or amends the result.
  • Changed: The caller may give each council member its own model, effort and perspective. A perspective steers what a member examines, never what evidence it receives. The same model in separate contexts counts as one model's confirmation.
  • Changed: Craft Goal, Interview and Navigate are marked stable. Craft Goal's frozen goal prompt states acceptance as Given/When/Then examples and names domain terms once.
  • Changed: Skill Builder creates a minimal scaffold that is explicitly incomplete. Its audit script reports conformance, effect observations, behavioral evidence and review suspicions separately; the earlier report format stays available through skills/skill-builder/scripts/audit.sh --legacy.
  • Changed: Skill Builder's build, check, heal and audit scripts run through ao skills: outside a source checkout they need ao 3.9 or later, and inside one they build ao with Go. Build no longer writes a default report under .agents/scratch/skill-builder/; pass --report or read stdout. Invalid creation inputs exit 1 instead of 2.
  • Fixed: Skill Builder's heal.sh --check exits 2 with a message when ao cannot run; it used to report a pass.
  • Removed: The ten bundled external tool skills listed under Breaking Changes. AgentOps keeps its own session-identity and source-reading guidance.
  • Removed: The bdd-foundry, ship-beads and bead-crank workflows. In place of bdd-foundry, state accepted behavior in the conversation or a bead. In place of ship-beads and bead-crank, deliver with native Git and BD under your repository's policy, or dispatch to a software factory through its coordinator.
  • Removed: The fixed-dispatch RPI reference adapter, which modelled repeated review rounds, with its tests and reference page.

CLI and Operator Commands

  • Added: ao skills build <from-scratch|from-template|absorb-external> <slug> creates an incomplete skill scaffold and its generated projections. All three modes write the same scaffold; --source is recorded as a hint and no content is imported.
  • Added: ao skills audit reports static conformance, effect observations and unmeasured behavior as separate results for one skill package.
  • Added: ao skills check-source checks named source packages without claiming they are semantically complete.
  • Changed: ao skills check audits skills/ only. Its JSON no longer has parity_drift or a per-skill codex_parity, and --strict fails on errors alone.
  • Fixed: ao skills link, ao skills unlink and ao doctor use Pi's user-level skills directory, ~/.pi/agent/skills, and detect Pi by ~/.pi/agent. Before, Pi user skills were linked into ~/.pi/skills, which is not Pi's user-level directory.
  • Removed: The ao doctor check that flagged running Claude headless in print mode (claude -p), and the doctor failure mode that synced the deleted Codex copy into Codex's plugin cache.

Install, Upgrade, and Distribution

  • Changed: Installation is documented as three paths: the Claude Code plugin, the Codex plugin, and npx skills@latest add boshu2/agentops for Cursor, OpenCode, Gemini CLI/Antigravity, Pi, Grok Build and OpenClaw. Grok Bot takes the same SKILL.md files through its own skill settings.
  • Changed: ao skills link is documented as the contributor path. The docs no longer suggest --all -g, which creates config directories for agents you do not have.
  • Changed: The metadata-derived skill inventory is 28. The Claude plugin and the Codex plugin both ship it from skills/ at version 3.9.0.
  • Changed: A skill-only install no longer carries a hook installer. The Claude plugin and a source checkout keep theirs.
  • Removed: The six curl and PowerShell skill installer stubs and the Gemini package, as listed under Breaking Changes. install-ao.ps1, the Windows CLI installer, is kept.
  • Removed: scripts/install-ms-reindex-hook.sh and scripts/ms-reindex.sh. Get Meta Skill maintenance guidance from its upstream project.

Codex and Runtime Integrations

  • Changed: The Codex plugin reads skills/ directly. Checked with codex-cli 0.156.1: a plugin install and a linked install each load all 28 skills with no load errors. The plugin now ships the full AgentOps frontmatter; Codex ignores the extra fields. prompt.md and the generated markers are no longer shipped; Codex did not read them.
  • Changed: Each explicit-only skill (craft-goal, interview, postmortem, rpi) carries its own agents/openai.yaml with policy.allow_implicit_invocation: false, so Codex does not select it implicitly. The files are hand-maintained in skills/.
  • Fixed: The Codex policy check fails on the agents/openai.yaml shapes Codex silently ignores: a non-object interface, dependencies without a tools list, and a boolean spelled other than true or false.
  • Changed: The skill evaluation fixtures moved from skills/_fixtures/ to tests/fixtures/skill-eval/; Codex loads every SKILL.md under the plugin's skill tree and would have shipped them.
  • Removed: The generated skills-codex/ copy, its override catalog, generator, hash and parity tooling, and the Gemini image, which was a second generated copy of every skill. The Skill Builder converter's Codex target no longer writes prompt.md.

Hooks and Lifecycle

  • Changed: AgentOps' own guards move from skills/cc-hooks/ to hooks/guards/: the policy dispatcher, the Claude and Codex read-budget guards and the installed-skill-edit guard, with their policies and installers. The plugin's hooks/hooks.json and the scripts/install-* entry points keep working.
  • Removed: The skill-first-coord-guard.sh hook and its reference page.
  • Removed: The generic Claude Code hook reference pages that shipped inside cc-hooks. The guard docs link the official hooks reference instead.

Eval, Validation, and Release Gates

  • Fixed: The repository's skill evaluation suite under evals/skills-rpi/ runs task-bank controls through the exact packaged verifier, prepares both arms with shared task and image identities, and rechecks both before launch. Packaging and identity mismatches are rejected before model resources are spent. The Skill Eval skill itself is unchanged.
  • Added: A gate checks that each retired workflow file contains only its metadata and an immediate failure, so code placed ahead of the failure is rejected. The install drift check now fails on a stale installed copy of any retired workflow, in ~/.claude/workflows and in a project's .claude/workflows.
  • Added: A test requires the checked-in version to have exactly one curated release-notes file, so a version bump without notes fails before the tag instead of at publish.
  • Changed: docs.cli-snippets is a blocking gate that resolves ao commands cited in code spans and fenced blocks of the live docs against the real command tree. It is one of the fact checks that replaced documentation tests which froze wording.
  • Fixed: The conformance probe that checks the Validate helper makes no Git, tracker or delivery calls now intercepts calls made in-process; before, those reached the real binaries unnoticed.
  • Removed: The four gates that policed the Codex copy, the repository gate that banned Claude print mode, and several gates with no live consumer.
  • Fixed: The CI job that syntax-checks workflow scripts parses them the way the harness runs them, so a top-level return no longer fails it.

Docs and Onboarding

  • Changed: The README is rebuilt around the operational loop, with a goals section, Beads as the work graph, and a grouped skill chart. It adds BDD/DDD links and a fuller Gherkin example, and recommends upstream projects for some external tools by link.
  • Changed: The contract (AGENTS.md), the workflow reference and the product, architecture and how-it-works pages describe validation as checks and CI plus one fresh review where a mistake is costly.
  • Changed: The migration guide covers the removed skills, the deleted installer stubs, the moved guards, the Codex plugin change and the retired workflows.
  • Changed: The release body's header links the update guide instead of a one-line source-checkout update command.
  • Fixed: The documentation site banner no longer shows the retired 3.3 tagline, and the site build no longer publishes its internal generator scripts.
  • Docs: The AgentOps logo is redrawn.

Known Issues

  • ao skills link does not remove a link whose skill was removed from the checkout. Until it does, use ao skills unlink and then repeat your original ao skills link command (with the same --dest, and ao 3.9) after an update that removes skills.
  • The retired-workflow checks identify a workflow by its file name. An old workflow body installed under a different file name is not detected.
  • Codex's own bundled plugin validator rejects this plugin on fields unrelated to loading, as it did in 3.8. Skills load normally.
  • Structural checks do not establish that any skill improves outcomes. No efficacy or token-cost improvement is claimed for Interview, Navigate or the new Council modes.
  • Restricted-source enforcement remains unavailable, as in 3.8.

Full changelog


Full changelog

AgentOps 3.9 narrows the product to its own guidance. The ten bundled external tool skills are removed, three repository delivery workflows are retired, the Codex plugin reads skills/ directly instead of a generated copy, and installation has three supported paths: the Claude Code plugin, the Codex plugin, and npx skills for every other agent. Validation is now spent where a mistake is costly instead of on every change. Interview and Navigate are new, and Council gains duel and interview-panel modes. The optional menu goes from 36 to 28 skills; native work still requires none of them.

See the curated release notes for upgrade instructions, breaking changes and known limits.

Added

  • Interview shapes a large outcome with the caller one question at a time before agents work alone. Each question carries a recommendation and its main tradeoff; acceptance is recorded as Given/When/Then examples. It creates no goal or bead.
  • Navigate picks the next wave on a bead graph and records results and discoveries on the beads. It never dispatches, judges or closes work. The bead graph contract and wave loop move here from Craft Goal.
  • Council gains two modes. In a duel, members rank their own ideas, score every other member's ideas on a rubric fixed before launch, then concede or defend in one bounded round. In an interview panel, each member answers Interview's questions in a separate context; agreed answers are marked and the caller accepts or amends the result. The caller may give each member its own model, effort and perspective.
  • ao skills build creates an explicitly incomplete skill scaffold and its generated projections; its three modes write the same scaffold and import no content. ao skills audit reports static conformance, effect observations and unmeasured behavior separately. ao skills check-source checks named source packages.
  • A gate checks that each retired workflow file contains only its metadata and an immediate failure. A test requires the checked-in version to have exactly one curated release-notes file.

Changed

  • Fresh validation is no longer owed on every change. For an ordinary change the author's checks and CI are the gate. RPI, Validate, Implement, Orchestrate, Craft Goal and Navigate call for one fresh read only when the caller asks, a mistake cannot be cheaply undone after it lands (a published release or instructions users will follow, a security boundary, destroying data or tracker state, deleting a check that protects the product), or no deterministic check covers the changed behavior. A review is one round: the reviewer does not re-run checks, reports as defects only what fails accepted behavior or would mislead a user, break install or the CLI, or remove protection for the product, and a repair does not start another review. A requested binding verdict keeps its PASS rule; NOT_PROVEN is reported with its gaps instead of being chased.
  • Craft Goal, Interview and Navigate are marked stable; the README no longer labels goals experimental.
  • The Codex plugin now loads skills/ directly. .codex-plugin/plugin.json ships ./skills, the same tree ao skills link and npx skills already install, instead of a generated copy. Skill names, descriptions and bodies are unchanged. Codex plugin users should refresh the marketplace and re-add the plugin. Checked against codex-cli 0.156.1: a plugin install and a linked install each load all 28 skills with no load errors.
  • Each explicit-only skill carries its Codex invocation policy in its own agents/openai.yaml, hand-maintained in skills/; the generator no longer derives it. scripts/validate-codex-api-conformance.sh fails when one is missing or does not parse.
  • scripts/validate-codex-api-conformance.sh checks skills/ against what the Codex loader enforces (unique frontmatter keys, a non-empty description, a name of at most 64 characters, no nested SKILL.md) and the explicit-only policy. It no longer enforces the portable Agent Skills field allowlist.
  • ao skills check audits skills/ only. Its JSON no longer has parity_drift or a per-skill codex_parity, and --strict fails on errors alone. skills/catalog.json no longer has codex_override_present.
  • The skill-eval fixtures moved from skills/_fixtures/ to tests/fixtures/skill-eval/. Codex loads every SKILL.md under the plugin's skill tree, so the fixtures would have shipped as a skill and a load error.
  • Craft Goal's frozen goal prompt states acceptance as Given/When/Then examples and names domain terms once.
  • Skill Builder's build, check, heal and audit scripts run through ao skills: outside a source checkout they need ao 3.9 or later; inside one they build ao with Go. Its audit reports conformance, effect observations, behavioral evidence and review suspicions separately; skills/skill-builder/scripts/audit.sh --legacy keeps the earlier format. Build no longer writes a default report under .agents/scratch/skill-builder/, and invalid creation inputs exit 1 instead of 2.
  • AgentOps' own guards (policy dispatcher, read-budget, Codex read-budget and installed-skill-edit guards) moved from skills/cc-hooks/ to hooks/guards/. Plugin users and already-installed guards need no action; update any direct call to skills/cc-hooks/scripts/install-hooks.sh or skills/cc-hooks/hooks/* to scripts/install-policy-dispatch.sh or hooks/guards/. A skill-only install no longer carries a hook installer.
  • docs.cli-snippets is a blocking gate that resolves ao commands cited in code spans and fenced blocks of the live docs against the real command tree. It is one of the fact checks that replaced documentation tests which froze wording.
  • The install drift check fails on a stale installed copy of any retired workflow, in ~/.claude/workflows and in a project's .claude/workflows.
  • The release body's header links the update guide instead of a one-line source-checkout update command.
  • The README is rebuilt around the operational loop, with a goals section and a grouped skill chart. It recommends upstream projects for some external tools by link instead of bundling their skills.
  • Install narrowed to three paths: the Claude Code plugin, the Codex plugin, and npx skills@latest add boshu2/agentops for every other agent (Cursor, OpenCode, Gemini CLI/Antigravity, Pi, Grok Build, OpenClaw). Grok Bot takes the same SKILL.md files through its own skill settings. ao skills link is now documented as the contributor path. The docs no longer suggest --all -g, which creates config directories for agents you don't have.

Removed

  • The generated Codex copy of the skills: skills-codex/ (278 files) and skills-codex-overrides/catalog.json, with the generator and everything that only policed the copy. Gone: scripts/codex-sync.sh, regen-codex-hashes.sh, register-new-codex-skill.sh, append-codex-override-entry.sh, mirror-codex-references.sh, refresh-codex-artifacts.sh, audit-codex-parity.{py,sh}, check-codex-parity-drift.sh, lint-codex-native.sh, smoke-test-codex-skills.sh, export-claude-skills-to-codex.sh, the validate-codex-generated-*, -install-bundle, -override-coverage, -runtime-sections and -skill-parity validators, scripts/lint/, their tests, and the gates skill.codex-parity-drift, skill.codex-runtime-sections, skill.codex-override-coverage and skill.codex-generated-artifacts. scripts/regen-all.sh no longer takes --skills, and scripts/test-ci-deterministic-gates.sh no longer takes --skip-codex.
  • What Codex plugin users lose with the copy. Each skill's prompt.md, .agentops-generated.json and the .agentops-manifest.json inventory are no longer shipped; Codex did not read them (the string prompt.md does not occur in the codex-cli 0.156.1 binary, and skills load without it). The plugin now ships the full AgentOps frontmatter instead of only name and description; Codex ignores the extra fields, but the packages are no longer strict portable Agent Skills frontmatter. Skill text is shipped as written: the generator's rewrites (Claude Code to Codex, ~/.claude to ~/.codex, /skill to $skill) no longer run. They changed nothing in the current 28 bodies.
  • ao doctor no longer has the fm-skills-stale-codex-sync failure mode, and its fixers can no longer write to ~/.codex/plugins/cache/agentops-marketplace or ~/.codex/.agentops-codex-install.json.
  • The fixed-dispatch RPI reference adapter, which modelled repeated review rounds: skills/rpi/scripts/run_once.py, its tests, its reference page and skills/rpi/references/rpi.feature, plus tests/e2e/rpi-phased-domain.sh, a no-op tombstone that existed only to keep that feature file's scenario link resolving.
  • The Skill Builder converter's Codex target no longer writes prompt.md; Codex does not read it.
  • Bundled Flywheel tool skills (account-rotation, agent-mail, cass, cc-hooks, dcg, ms, ntm, rch, sbh, using-flywheel) and their generated Codex copies. AgentOps provides no replacement. The README recommends the upstream projects for DCG, CASS, Meta Skill, the Agentic Coding Flywheel and Gas City; get those tools and any skills for them from their authors. Copies installed earlier with npx skills are not removed; a source link to a removed skill is left dangling (see the release notes).
  • The skill-first-coord-guard.sh hook and its reference page, and the generic Claude Code hook reference pages that shipped inside cc-hooks.
  • scripts/install-ms-reindex-hook.sh and scripts/ms-reindex.sh.
  • The ao doctor check and repository gate that banned running Claude headless in print mode (claude -p). Print mode is an ordinary dispatch option again.
  • The bdd-foundry, ship-beads and bead-crank Claude workflows. The names stay as tombstones that fail with a migration message before doing any work, like operating-loop. In place of bdd-foundry, state accepted behavior in the conversation or a bead. In place of ship-beads and bead-crank, deliver with native Git and BD under your repository's policy, or dispatch to a software factory through its coordinator. An installed copy of the old files now fails the workflow.install-drift gate. ao workflows link does not replace a copied file. For ~/.claude/workflows, run bash scripts/install-workflows.sh from the AgentOps checkout and name only the retired files you have (for example bdd-foundry.js): each becomes a link to the current file, and a file that differs is backed up first. Without file names the script installs every workflow. For another project's .claude/workflows, remove the old file, then run ao workflows link --into <project>/.claude/workflows from the checkout. scripts/check-bdd-foundry-markers.sh is removed.
  • The 3.x curl and PowerShell skill installer tombstones (scripts/install.sh, install-claude.sh, install-codex.sh, install-agy.sh, install-opencode.sh, install-codex.ps1). Their raw URLs now 404, so an old curl … | bash line installs nothing; switch to a plugin or npx.
  • The images/gemini package (agentops-core-gemini) and its generator branch. Remove an installed copy with agy plugin disable agentops-core-gemini and then agy plugin uninstall agentops-core-gemini.

Fixed

  • The repository's skill evaluation suite under evals/skills-rpi/ checks task-bank controls through the exact packaged verifier and prepares both arms with shared task and image identities before any trial starts, so packaging and identity mismatches are rejected before model resources are spent.
  • The documentation site banner no longer shows the retired 3.3 tagline, and the site build no longer publishes its internal generator scripts.
  • The CI job that syntax-checks workflow scripts parses them the way the harness runs them, so a top-level return no longer fails it.
  • ao skills link, unlink and ao doctor use Pi's user skills dir, ~/.pi/agent/skills, and detect Pi by ~/.pi/agent. Links an earlier version made in ~/.pi/skills are no longer swept by default; remove them with ao skills unlink --dest ~/.pi/skills.
  • Skill Builder's heal.sh --check exits 2 with a message when ao cannot run. It used to report a pass in non-strict mode.
  • The Codex policy check also fails on agents/openai.yaml shapes Codex silently ignores: a non-object interface, dependencies that is not a mapping with a tools list, and a boolean spelled other than true or false. Any of these made an explicit-only skill implicitly selectable.
  • The conformance probe that checks the Validate helper makes no Git, tracker or delivery calls now also intercepts calls made in-process; before, those reached the real binaries unnoticed.
  • The user-facing docs (PRODUCT.md, the docs index, how-it-works, architecture, philosophy, migration and CI pages) describe validation as checks and CI plus one fresh read where a mistake is costly, matching the skills.

Full Changelog: v3.8.0...v3.9.0