changelog

Changelog.

What shipped, what's next, and what to do about it. Each skill'sversion field is the source of truth — this page rolls them up by release. Vote on what's coming to signal priority.

What shipped

Latest release is open; patches and earlier releases expand in place.
released36 skills16 plugin commandsshared runtime

2.0 adds an updater, Hindsight and Evolve to the current skills. The release combines the recent reliability fixes with the Slate and Emerald design.

What’s new

oc-updateUpdates the complete Opchain skill folders and runtime files in your project. Backs up replaced files and preserves checkpoints, tracking consent and unrelated skills.
oc-hindsightTurns recorded outcomes into lessons you can review. Keeps the source evidence attached and returns approved lessons when you ask for context.
oc-evolveTests proposed working rules against a fixed baseline. Requires better task results, no regressions and external reviewer approval before adoption.

What’s changed

  1. Reliable foundations
    Progress and permission. Concurrent saves keep each update. Tracking requires permission on the local machine. Each installed skill carries the files its commands need.
  2. Useful evidence
    History and task results. Import scored outcomes, review recurring weak results, and run the existing grader with recorded instructions, outputs and case results.
  3. Reviewed changes
    Separate checks for separate decisions. Commits use explicit Git verification. Releases need a fresh audit. Learned rules need better task results and an externally trusted reviewer signature.
You stay in control Learning starts off. You choose the provider and reviewer. Lessons and rules need approval before they can be returned as context.
Upgrading from 1.9: refresh the full skill folders, including references and runtime files. Existing checkpoints and local telemetry consent are preserved. Use the bootstrap installer if /oc-update is not installed. Updater · Hindsight · Evolve
task lifecyclehooksback-compatible

The plugin’s first SessionStart hook now emits Task started: before checkpoint context. A dedicated Stop hook emits Task ended: independently of next-skill suggestions, using the host’s local timezone and IANA identifier. v2.0.2 carries the same behavior on the squash-merged production line.

Back-compatible with v2.0. No migration required.
plugin hooksrelease gatedependenciesback-compatible

The plugin now prints Task ended: in every repository, not only ones with .checkpoints/, and a resumed or compacted session prints Task resumed: instead of a second Task started:. check-release-surfaces.mjs now gates the mirror README, plugin README, styleguide badge and skill-page loop tag, and a patch release ships as one PR with its site surfaces. skills.coverage flags are documented as reserved, and zod, Astro, Markdown and Playwright are refreshed.

Back-compatible with v2.0. No migration required.
flagsCImonitoringback-compatible

skills.coverage’s flag description no longer disagrees with its namespace, Playwright e2e only comments on failing runs, the changelog/README/skill-page copy agrees on v2.0.2 at minor level (now gated by check-release-surfaces.mjs in CI), and the production monitoring baseline reflects the reviewed f196207 runtime so Canary and Deploy lag stop flagging drift.

Back-compatible with v2.0. No migration required.
shipped29 → 33 skills4 new skillsadditive

What’s new

oc-qa-opsTest-pyramid design: coverage budgets, contract-test matrix, load-test planning. The strategy layer split out of oc-bug-check, which now reads its budgets at the commit gate.
oc-data-opsIngestion patterns, staging → intermediate → marts layering, dbt, and data contracts replayed by an isolated Contract-Verifier — schema, freshness, volume, invariants.
oc-compliance-opsA standing control register plus audit-ready evidence bundles generated at deploy and release time. Evidence, not certification.
oc-security-hardeningThe execution half of the security pair: turns auditor findings into merged fixes, records every control in a manifest, and stands the per-deploy gate that replays it.
Skill and on-disk checkpoint compatibility:back-compatible with v1.8.3. All 33 skills lockstep-bump to1.9.0; no checkpoint-file migration or commands are removed. All MCP checkpoint callers must first usecreate_checkpoint_session; invented tokens and the former shared default session are rejected. The 16 pre-v1.9 hosted checkpoint records are deleted during rollout; local on-disk checkpoints are unaffected.

The audit follow-through adds executable verification and reusable local tools across the existing 33 skills.

  • Explicit repository enrollment verifies staged commits and blocks failed required checks.
  • Durable local MCP state, bundled references and typed handoffs connect the skill family.
  • Prompt/cost checks, private telemetry commands and optional execution kits have runnable local paths.
Setup and migration required. Run /oc-enroll per repository, refresh local sessions and producer evidence, and opt in to telemetry locally. Local hooks are bypassable; hosted state is advisory. Kits are not sandboxes. Provider access and target-repository CI require separate verification.
484 findingscommit gateevery skill routable33 skills

The skills described handoffs, gates and checkpoint reads that their siblings did not back. The commit gate — the one piece of machinery opchain ships — could be walked past with anexec prefix, and deadlocked in any repo that tracks.checkpoints/, which the docs recommend. No new skills and no new commands: every change here makes something already documented true.

  • The commit gate holds. A pass is bound to the exact tree being committed, at any age. Wrapper, prefix, quoting and here-document forms that slipped through now deny, and tracked checkpoints no longer deadlock it.
  • Checkpoints tell the truth. status <skill> reads its argument, the validator accepts real ISO-8601 offsets, and doctor catches a pass left behind by a squash merge.
  • Every handoff lands. Every command one skill hands to another is declared by the skill that owns it, the orchestrator map covers all 33 skills, and CI now fails when either drifts.
  • Every edge is two-sided. 66 relationships that only one skill documented now appear on both sides — or are gone, where the claim was wrong.
  • The catalog is reachable. The MCP route tool reaches every skill (17 before), and the pipeline builder recommends from the live catalog instead of a v1.5 table.
Back-compatible with v1.9.0. All 33 skills lockstep-bump to 1.9.1. No checkpoint migration; no commands, routes or flags removed. The commit gate is deliberately stricter: a pass without a tree hash is denied, and the bypass forms above now deny. “Tag the release” routes to Git Ops, which owns the tag.
shippedJul 10, 202627 → 29 skills

Every PR now runs the documentation mesh in order:oc-docs-forge writes the documentation packet,oc-repo-ops verifies it and the repository around it, oc-bug-check runs the fast code gate, and only then does oc-git-ops open the PR. The skill that writes the docs never decides whether they're good enough.

Two new skills

oc-docs-forge · /oc-docs

Generates the PR documentation packet, PR-body documentation section, optional PR comment, README deltas, and product-doc updates from the actual change set.

oc-repo-ops · /oc-repo

Runs the repo-readiness gate: generated files, docs catalogs, link hygiene, ignore-rule consistency, dirty related files, and release-surface cleanup before every PR.

Every-PR contract

  • PR body and comments: every PR body carries a ## Documentation section — "no docs needed" requires evidence — plus, when the packet runs long, a durable PR comment under a stable marker.
  • README and product docs: the repo-facing and product-facing docs that changed behavior makes stale are updated from the actual diff, not from memory.
  • Repo readiness: generated files, docs catalogs, release surfaces, ignore rules, and dirty related files are verified before PR handoff — fail closed.
Back-compatible with v1.7. All 29 skills lockstep-bump to 1.8.0; the two new skills ship gated behind their skills.registry.<id>.enabled flags, and no documented cross-skill contract was removed — the every-PR gate is additive wiring in oc-git-ops.
Apache-2.0LICENSE + NOTICEevery artifact

Every SKILL.md now declares license: Apache-2.0(releases up to v1.8.2 were published under the old license). The change is bigger than the LICENSE file: the combined and per-skill zips carryLICENSE + NOTICE inside the artifact,/LICENSE is served from this site, and/skills.json, /llms.txt and the MCP server card declare the license — so a compliance scanner can establish the terms from whatever it actually downloaded.

release ledgerOSS seams60→6 alerts29 skills

The release ledger closes

An audit compared this page to git tag and foundthirteen shipped releases and three tags. v1.0 through v1.7 all shipped untagged — and because the MCP-registry publisher triggers on v* tags, ten releases never republished the registry pointer.

The cause was structural. Release Ops handed off “the merge / tag” to Git Ops —a skill with no tag verb. The handoff named a step that did not exist, and nothing checked whether it happened.

  • /oc-git-release gives Git Ops the tag it was always supposed to cut. It refuses an unmerged HEAD, a version that disagrees with the catalog, or a tag that already exists.
  • The deploy refuses. A production deploy is blocked when the catalog version has moved somewhere no tag follows. It reads the lockstep skill version, so content deploys never trip it.
  • One check, two callers. The release verify step and the deploy path run the same script, so the check you run and the check that blocks you cannot drift apart.
  • A daily backstop tracks any shipped release still missing a tag — catching what the gate cannot, like a tag made locally and never pushed.

Repository seams

Five changes let the skills tree build and ship independently of the site tooling: input-path overrides for every skills-tree reader, flag validation split out of the product validator, internal identifiers scrubbed from shipped text, the site building against a vendored skills tree, and the plugin’s skills directory materialised. Groundwork for making the public repository the primary one.

Also in this patch

  • The roadmap on this page is sourced from GitHub Issues instead of Linear, with contact details kept out of public issues.
  • Vulnerability reports become security incidents rather than ordinary issues.
  • Scrollable code blocks on /install and elsewhere are keyboard-focusable.
  • Open dependency alerts cut from 60 to 6, including a move to Astro 7.
  • Licensing moved to Apache-2.0 — see Apache-2.0, everywhere it ships above.
Back-compatible with v1.8.2. All 29 skills lockstep-bump to 1.8.3. No checkpoint migration; no commands or routes removed. The one behavioural change is that a production deploy now refuses an untagged release — deliberate, and overridable out loud.
plugin installcommit gatehonesty pass29 skills

The catalog used to describe gates it could not enforce. Everything it shipped was markdown, so an instruction like “always run bug-check before committing” was a request, not a rule — and across 87 measured sessions, cross-skill auto-invocation firedzero times. This patch ships the mechanism instead of the description.

New: install as a plugin

/plugin marketplace add asfbay-bit/opchain-skills
/plugin install opchain

The skills-only zip still works and is unchanged. The plugin adds what markdown can't carry:

  • A commit gate that blocks. git commit is refused unless oc-bug-check recorded a pass bound to the exact code being committed — so a stale or hand-written verdict doesn't count.
  • Session state, unprompted. Stale checkpoints, open findings and the next action are computed at session start instead of waiting to be asked for.
  • A pointer to the next skill. When a skill finishes, the one to run next is named as something you can type. It fires on real transitions, not on standing state, and stays quiet otherwise.

Honesty pass

Every Auto-invokes X and Trigger liberally claim is gone from all 29 skills and the shared orchestrator protocol. They described a chaining mechanism that had never once fired on its own. oc-git-ops also stops claiming a hook that existed in exactly one repository while shipping to everyone.

Fixed

  • oc-bug-check gained Swift support and an UNSUPPORTED verdict distinct from pass — an unrecognised stack used to report green on code it never read. Secret scanning no longer skips non-JavaScript files.
  • Checkpoint staleness now covers complete checkpoints, not just in-progress ones; a finished checkpoint asserting a long-shipped release drew no warning for a month.
  • Next-action drift — the two highest-priority paths skipped the already-shipped filter entirely, which is how the tool recommended tagging a release that had shipped twelve days earlier.
Back-compatible with v1.8.1. All 29 skills lockstep-bump to 1.8.2. No checkpoint migration, no routes or commands removed; the plugin is an additive install channel.
checkpoint readsno repo-local CLIcorroborated status29 skills

The checkpoint protocol was leaning on an optional in-repo scaffolder that installed skill bundles don't ship. This patch makes a direct read of .checkpoints/*.checkpoint.jsonthe authoritative path, so "where did I leave off?" answers the same in a consumer repo as it does here — and insists that answer be checked against reality, not taken on faith.

What shipped

  • oc-orchestrator treats a direct checkpoint-file read as the authoritative fallback and no longer recommends a repo-local scaffolder where it cannot exist.
  • oc-checkpoint-protocol requires agents to corroborate the checkpoint state they read against specs, git, tests, and release artifacts; missing CLI output is neither a blocker nor evidence of progress.
  • Lockstep patch bump — all 29 skills move to 1.8.1.
Back-compatible with v1.8.0. No routes, storage, environment variables, or user-facing commands changed, and existing checkpoint JSON requires no migration.
shippedJul 01, 202624 → 27 skills

oc-signal-forge ships first as 1.7; theoc-modularize-ops → oc-fleet-ops chain follows in1.7.1. All three lockstep-bump the catalog to1.7.0.

Three new skills

oc-signal-forge · /oc-signal 1.7

Question → trustworthy metric. Designs the instrumentation, builds the harvester + transform, and adversarially proves the signal answers the question before wiring it to oc-dash-forge. The product-analytics backend none of the instrumentation skills owned.

oc-modularize-ops · /oc-modularize 1.7.1

Decompose a live monolith with provably zero functionality/data loss — golden fixtures captured from real traffic as the equivalence oracle. Willing to say "don't." Hands the code-move + cutover to oc-migration-ops and deploy to oc-fleet-ops.

oc-fleet-ops · /oc-fleet 1.7.1

Provision, deploy, and operate one-or-more containers across self-managed infra (k8s/Nomad/Compose, IaC, on-prem VMs, GCE). Terraform when it fits, not by reflex. Claims the bare-metal/VPS territory oc-deploy-ops routes away — its peer, not its rival.

Resolves existing seams

  • oc-signal-forge finally executes oc-app-architect's 08-analytics.md plan and feeds validated metrics to oc-dash-forge; oc-monitoring-ops enforces each signal's freshness SLA.
  • oc-modularize-ops owns the decision plus the real-data equivalence oracle, then hands the bulk code-move and live cutover to oc-migration-ops (Structural type).
  • oc-fleet-ops claims the bare-metal / self-managed-fleet territory oc-deploy-ops routes away — the two are peers (managed app → deploy-ops; self-managed fleet → fleet-ops).
Shipped from the 1.7 "Seams & Signals" plan (docs/releases/1.7-plan.md).
Back-compatible with v1.6. All 27 skills lockstep-bump to 1.7.0; the three new skills ship gated behind their skills.registry.<id>.enabled flags, and no documented cross-skill contract was removed.
installed skillscheckpoint writesprotocol bundlescatalog guards

This patch fixes the gap between the repo-local experience and a user's installed skill bundle. Checkpoint writes no longer depend on a repo-only CLI, every bundle carries the shared orchestrator and checkpoint references it asks the model to read, and the catalog generator now blocks missing bootstraps, dangling reference citations, and overlong descriptions before a release can ship.

What shipped

  • Checkpoint writes are self-contained. The protocol now allows direct `.checkpoints/*.checkpoint.json` writes with file tools, with `scripts/checkpoint.mjs` kept as an optional in-repo fast path.
  • Shared protocol files are bundled everywhere. Missing `references/orchestrator.md` and `references/checkpoint-protocol.md` copies are created and checked rather than silently skipped.
  • Catalog validation catches portability drift. Missing bootstrap lines, dangling `references/...` citations, and overlong descriptions fail the build.
  • The audit trail is durable. The verified portability audit lives at docs/audits/2026-07-04-portability-audit.md.
Back-compatible with v1.7. No routes, storage, environment variables, or user-facing commands changed. Existing checkpoint JSON remains valid.
checkpoint auditwrite triggersdrift-aware nextCLI commands

The audit found that checkpoint infrastructure exists, but it detected more drift than it prevented. This patch closes the first reliability gaps instead of leaving them as a plan:checkpoint:next now checks completed/merged work before recommending an action, and the shared protocol now names the lifecycle events where checkpoint writes are mandatory.

What shipped

  • Lifecycle writes are mandatory. The protocol now requires writes on session resume/pause, phase or gate completion, user decisions, blockers, cross-skill handoffs, PR open/merge, deploys, release ship, conflict resolution, and doctor drift.
  • checkpoint:next is drift-aware. It skips queued actions that reference already-merged PRs or completed tickets; if every queued action is stale, it recommends checkpoint reconciliation instead.
  • The missing command surface is real. checkpoint list, checkpoint show [skill], and checkpoint reset <skill> now exist in the shared CLI.
  • Bug-check filename mismatch is resolved. The tracked wrong-name bug-check.checkpoint.json is removed; the canonical local-only path remains oc-bug-check.checkpoint.json.
  • Stale resume state is reconciled. oc-app-architect no longer points the next agent at merged PR #351 or the completed v1.6 launch queue.
  • Obsolete writer references are cleaned up. oc-reverse-spec now points to scripts/checkpoint.mjs, not the old scripts/checkpoint.sh.

Still queued

  • oc-orchestrator: trim stale oversized checkpoint state and deepen the v1.7 routing map.
  • oc-signal-forge, oc-modularize-ops, and oc-fleet-ops: add richer resume/action examples and context-primer guidance.
  • oc-code-auditor, oc-stack-forge, and oc-ux-engineer: shorten oversized summaries into structured checkpoint fields.
  • oc-telemetry-ops: add missing progress_table and context_primer.
  • oc-release-ops: add a release-complete guard requiring relevant skill checkpoints to match shipped state.
Back-compatible. Existing checkpoint JSON keeps validating; the patch adds stricter recommendation behavior and new utility commands without changing the wire schema.

Two new skills

oc-cost-ops · /oc-cost

Attributes Anthropic spend to each skill phase, sets per-phase and per-suite budget gates in the checkpoint, and recommends model-tier routing (Haiku for cheap phases, Opus for spec/audit/migration).

oc-telemetry-ops · /oc-telemetry

Opt-in, local-first usage metering to .checkpoints/usage.sqlite — anonymized aggregates only, default OFF. No prompt content or PII ever leaves the machine.

protocol wire 1.1

First bump since v1.2's pm_refs: additive optional cost, eval_scores, and telemetry_handle fields. Wire 1.0 and 1.1 both validate — fully backward compatible.

public /dashboard + /showcase

Anonymized aggregate usage and cost-per-feature, fed by opt-in telemetry, plus a /showcase of projects shipped with opchain.

Cross-skill ripples

  • oc-prompt-ops — the cost_per_eval contract it already advertised is now fulfilled by oc-cost-ops, pairing the cost-regression gate with the score gate.
  • oc-bug-check and oc-code-auditor now emit eval scores against a stable rubric, not just pass/fail.
  • New GTM surfaces: /dashboard and /showcase.
Back-compatible with v1.5. All 24 skills lockstep-bump to 1.6.0; the two new skills ship gated behind their skills.registry.<id>.enabled flags, and the checkpoint wire 1.0 → 1.1 is additive — both validate.

Four new skills

oc-claude-api · /oc-claude-api

Model routing (Opus/Sonnet/Haiku/Fable), prompt caching by default, streaming vs. batch, tool use, and migration playbooks for model-version bumps.

oc-rag-forge · /oc-rag

Tri-agent. Vector-DB decision tree, embedding choice, chunking, hybrid search, and retrieval eval with golden sets and recall@k / nDCG.

oc-agent-forge · /oc-agent

Tri-agent. Claude Agent SDK scaffold, subagent topology, tool-budget design, harness-loop shapes, and eval over task fixtures.

oc-prompt-ops · /oc-prompt

Prompts as artifacts: file-shaped versioning, eval datasets, regression detection. /oc-prompt regress blocks on a score drop.

Cross-skill ripples

  • oc-app-architect gained an “AI app?” branch in /oc-discover that routes to the four new skills.
  • oc-stack-forge added vector-DB packs (pgvector, Turbopuffer, Pinecone, Supabase Vectors) to the pack registry.
  • oc-code-auditor learned a prompt-injection + tool-use AI-safety sweep; opchain published its own dogfooding eval set under oc-prompt-ops.
  • New GTM surfaces: /ai-recipes, /blog, /for-agencies.
Back-compatible with v1.4. All 22 skills version-bump to 1.5.0; the four new skills ship gated behind theirskills.registry.<id>.enabled flags.
earlier releases

What's new

MCP server

A POST /mcp endpoint exposes the catalog, intent routing, the orchestrator protocol, and checkpoints as MCP tools, prompts, and resources — for Codex and any MCP client.

two ways in

Point Codex at the hosted opchain.dev/mcpendpoint, or drop the skills into .codex/skills/— Codex Agent Skills use the same SKILL.md format.

/oc-* as prompts

Every /oc-* command is re-exposed as an MCP prompt for clients that surface them (e.g. Claude Desktop). Codex doesn't consume MCP prompts — there you trigger skills by description, or use the .codex/skills drop-in.

checkpoints anywhere

Session state persists across MCP sessions, so you resume where you left off — the same contract Claude Code uses.

New on /install

  • Codex / any MCP agent — a fourth install flow with the ~/.codex/config.toml snippet and the.codex/skills drop-in.
  • local stdio server — an offlinemcp/local-server.mjs for air-gapped setups.
Back-compatible with v1.4. The skills are unchanged — only their packaging — so Claude Code installs are untouched. All 18 skills lockstep-bump to 1.4.3.
complete bundlesoc- nameshonest checkpointsdrift detection

The “download all” bundle was dropping each skill'sreferences/, scripts/, andexamples/; it now ships full skill trees again. Every skill also gained an oc-<name> alias, the persistence docs were rewritten to the git-tracked checkpoint they actually use, and the validator, spec, and README were reconciled onto one checkpoint schema with drift detection. All 18 skills lockstep-bumped to 1.4.2.

pack registry32 packs5 skills bumped

v1.4 turns oc-stack-forge's coverage from hardcoded prose into a versioned pack registry — one pack.ymlper language, framework, mobile platform, or deploy target, validated on every build. /coverage is the user-visible catalog; total coverage grows from 6 stacks in v1.3 to 32 packs.

What's new

  • Pack registry architecture. scripts/gen-stack-packs.mjs validates every pack on every build.
  • Hybrid dispatch. oc-deploy-ops reads packs at runtime; oc-api-dev reads them at build time for typed scaffold metadata.
  • Modern web + enterprise + mobile bulk. elixir / bun / deno / java / csharp / kotlin / php / swift packs; phoenix / remix / sveltekit / solid / spring / dotnet / laravel frameworks; iOS / Android / Flutter / React-Native mobile packs.
  • Hosting adapters. railway / netlify / heroku / aws-amplify deploy-target packs.
Back-compatible with v1.3. Five skills bump in lockstep to 1.4.0.
oc-release-ops18th skillPM-MCP live

v1.3 makes the v1.2 PM-MCP prose executable end-to-end and ships oc-release-ops — the 18th skill — to automate the scope → /changelog → bump → ship cadence opchain uses for itself.

What's new

  • The PM-MCP loop is real. Concrete tool-name registry, retry/backoff, idempotency markers, deferred-action queue.
  • oc-release-ops is the 18th skill. /oc-release plan|draft|bump|announce|ship: reads checkpoints to propose the next semver, drafts the changelog entry, bumps all skill versions atomically.
  • Platform menu grew. Django + Postgres + Render, Rails + Postgres + Heroku, Go + Fly.io, Rust + Axum + Shuttle.rs.
Back-compatible with v1.2. All 18 skills lockstep at 1.3.0.
PM-MCPLinearJira

The ticket becomes the thread of execution. oc-app-architect, oc-git-ops, oc-deploy-ops, and oc-monitoring-ops all become PM-tool aware.

Back-compatible with v1.1. The PM loop is enrichment, never a hard dependency.

Tri-agent harness across oc-app-architect, oc-code-auditor, oc-integrations-engineer; full-pipeline flow from /oc-discover to /oc-deploy; oc-checkpoint-protocol v1.0 across every skill; static Astro site; first set of six in-action scenarios.

First public cut of the opchain skill catalog as a set of Markdown files installable into Claude Code. No site, no scenarios — just the skills.