Repository navigation
feat: release 0.24.0 with every skill written as direction plus named invariants - #237
Merged
Merged
Conversation
… invariants Remote baseline: origin/main @ 144127b Scope: Issue #226 ships as version 0.24.0. Every bundled SKILL.md opens with a short direction paragraph and an Invariants section of three to six named rules that bind in every phase, including the references that phase loads; everything else in a skill is a default the model may adapt, saying so. The blanket "every other rule binds" clauses are gone from the twelve skills that carried them, agents-architect folds its Decision Latitude and Always-On Rules into six invariants, and no sentence in bundled skill text exceeds 300 characters (twenty-one over-long sentences in entry files and references were split without changing their rules). The startup gate defines the shared terms once (route, host-native, selection surface, explicit invocation, invariant and default, handoff contract, envelope, write set), lists six invariants in place of its binding bullet, and states explicit invocation in each host's own syntax: $skill-name in Codex and /axiom:skill-name in Claude Code; the offline route model and a new fixture accept both forms. Two dated references owned by the gate, codex-host.md and claude-code-host.md, consolidate the host mechanics that were spread over agents-architect, continuous-progress, delegate-simple-task, and the permission reference, each verified against the installed host on 2026-10-30 with documentation-derived facts marked; continuous-progress drops its two operations references and keeps their host-neutral rules. The agents-architect reconcile modes run in one session as sequential independent reviews with one writer, with separate subagents optional. axiom_validation/skill_text.py enforces the readability contract in the publication aggregate with unit tests and a documented check. Release artifacts: manifests 0.24.0, repository policy revision 122 with the new runtime digest, routing-context record v0.24.0 (gate 6,976 bytes, reviewed growth with justification; description set 5,077 bytes), version note, Changelog entry, release status, and rendered surfaces. Fresh-session observation records for both hosts follow in a separate commit before the pull request opens. Validation: python3 -B scripts/check-publication.py: passed on the exact tree (155 required files, 167 Markdown files, 97 offline route contract fixtures, 14 skill readability contracts, 89 canonical installed-runtime inputs) python3 -B scripts/measure-routing-context.py --check, scripts/render-release-facts.py --check, and scripts/check-runtime-identity.py --check: passed python3 -B -m unittest discover -s tests -p 'test_*.py': 320 tests OK in a disposable clone of the tree claude plugin validate --strict plugin and .claude-plugin/marketplace.json: passed on Claude Code 2.1.308 git diff --check: clean; ASCII scan of the changed Markdown, JSON, and YAML files: passed; every instruction file below 8,192 bytes
… completion claims and indirect choices Remote baseline: feature/release-0.24.0 @ 6e82f9c (origin/main @ 144127b) Scope: Issues #233 and #234 join the 0.24.0 release. The startup gate gains a Before Acting section: before an action that changes state, say in one sentence what outcome you intend, name any material ambiguity the user left open, and mark the first irreversible or externally visible step; it adds no question, stop, or authority and stays silent for read-only requests and conversation. The verify-completion description names a completion claim carried by a compaction summary even without the word verify, and the clarify-intent description names alternatives offered across sentences or without the word either; the offline route model resolves both forms and their near-miss controls. Routing contract v8 replaces v7 for new observations: every v7 case keeps its ID and expectation, nine cases are added (two no-route cases for the before-acting behavior, a summary-carried completion claim with its post-compaction status control, two indirect choices with their routine controls, and one post-compaction route reselection case), and codex-core-v8 and claude-code-core-v8 select the 40 v7 cases plus the nine new ones with the v7 host profiles unchanged. The v7 corpus, benchmarks, and bindings stay frozen, and candidate records of either contract validate. Repository policy revision 122 now binds the final runtime digest; the routing-context record v0.24.0 records the gate at 7,217 bytes (reviewed growth with justification) and the description set at 5,204 bytes; the version note, Changelog, architecture, trust model, examples, and evals README follow. Fresh-session observation records for both hosts follow in a separate commit before the pull request opens. Validation: python3 -B scripts/check-publication.py: passed on the exact tree (155 required files, 167 Markdown files, 97 offline route contract fixtures, 188 black-box routing cases, 79 fixed host benchmark cases, 14 skill readability contracts, 89 canonical installed-runtime inputs) python3 -B scripts/measure-routing-context.py --check, scripts/render-release-facts.py --check, and scripts/check-runtime-identity.py --check: passed python3 -B -m unittest discover -s tests -p 'test_*.py': 320 tests OK in a disposable clone of the tree claude plugin validate --strict plugin and .claude-plugin/marketplace.json: passed on Claude Code 2.1.308 git diff --check: clean; ASCII scan of the changed Markdown, JSON, and YAML files: passed (the multilingual corpus cases are non-ASCII by design)
…h hosts Remote baseline: feature/release-0.24.0 @ 0f3c906 (origin/main @ 144127b) Scope: evals/results/v0.24.0/claude-code/linux.json and evals/results/v0.24.0/codex/linux.json record one complete passing fresh-session run of the current benchmark per host against commit 0f3c906 (tree 0127d80, runtime digest sha256:85fbd5f1554b2f99a7e7764c4efcea409401364a529d1d45ff0ee5f89f2fcd14): Claude Code 2.1.308 with claude-opus-5-5 at maximum effort passes 49 of 49 claude-code-core-v8 cases, and Codex CLI 0.166.0 with gpt-6-astra at maximum effort passes 49 of 49 codex-core-v8 cases, each in a single attempt. The version note's Host Evidence section names both records and reports the two private checks: the paraphrase check, in which one fresh Claude Code session per skill reproduced 78 of 78 invariants without drift, and the same-batch before-acting sample on both hosts with the released 0.23.0 plugin as the baseline. No installed runtime input changes; the runtime digest is unchanged. Validation: python3 -B scripts/check-publication.py: passed on the exact tree (155 required files, 167 Markdown files, 188 black-box routing cases, 79 fixed host benchmark cases, 4 candidate observation records, 89 canonical installed-runtime inputs) python3 -B scripts/measure-routing-context.py --check and scripts/render-release-facts.py --check: passed python3 -B -m unittest discover -s tests -p 'test_*.py': 320 tests OK in a disposable clone of the tree Release observation gate rehearsal (require_route_observations from origin/main to this tree in a disposable clone): 13 changed routes, both host records accepted at the unchanged digest git diff --check: clean; ASCII scan of the changed files: passed
This was referenced Oct 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Refs #226, #233, #234. The three Issues ship as one installed-runtime change set, version 0.24.0, in three GitHub-signed commits on this branch: the skill rewrite, the gate behavior with the recall cases and routing contract v8, and the checked-in fresh-session observation records that the release gate requires.
SKILL.mdopens with a short direction paragraph and an## Invariantssection of three to six named rules that bind in every phase, including the references that phase loads; everything else in a skill is a default the model may adapt, saying so. The "Defaults you may adapt ... Every other rule ... binds" paragraphs are gone from the twelve skills that carried them, andagents-architectfolds its Decision Latitude and Always-On Rules into six invariants. Each invariant restates a rule that already bound; no authority widens.## Termswhere they first appear. No sentence in bundled skill text exceeds 300 characters, measured per paragraph, list item, heading, or frontmatter field with code blocks and tables excluded; twenty-one over-long sentences were split without changing their rules.$skill-namein Codex,/axiom:skill-namein Claude Code, or the skill named in plain words; the offline route model and a new fixture accept both host forms.using-axiom/references/codex-host.mdandclaude-code-host.mdconsolidate the host mechanics that were spread overagents-architect,continuous-progress,delegate-simple-task, and the permission reference, each verified against the installed host on 2026-10-30 with documentation-derived facts marked.continuous-progresskeeps three references instead of five; its host-neutral supervisor and acceptance rules move intosupervision-and-recovery.mdandexecution-and-handoff.md.agents-architect/references/maintenance/implementation-reconciliation.mdreplaces the mandatory coordinator-plus-three-subagents contract with an independent review contract that one session can run as sequential passes, keeping the three independent read-only reviews, the direct recheck of decisive evidence, and the single writer.axiom_validation/skill_text.pyenforces the Invariants list, the sentence maximum, and the absence of a blanket binding clause in the publication aggregate, with unit tests and a documented check in the validation guide.## Before Actingsection asks the model, before an action that changes state, to say in one sentence what outcome it intends, name any material ambiguity the user left open, and mark the first irreversible or externally visible step. It adds no question, stop, or authority and stays silent for read-only requests and conversation. Two corpus cases show that the behavior selects no route and that a read-only request gets no restatement.verify-completiondescription names a completion claim carried by a compaction summary even without the word verify, and theclarify-intentdescription names alternatives offered across sentences or without the word either. The offline route model resolves both forms and their near-miss controls; a post-compaction route reselection case records the gate's reselection rule.codex-core-v8andclaude-code-core-v8select the 40 v7 cases plus the nine new ones (49) with the v7 host profiles unchanged. The v7 corpus, benchmarks, and bindings stay frozen; candidate records of either contract validate.evals/results/v0.24.0/claude-code/linux.jsonandevals/results/v0.24.0/codex/linux.jsonrecord one complete passing fresh-session run per host against commit 0f3c906, 49 of 49 cases each in a single attempt: Claude Code 2.1.308 withclaude-opus-5-5at maximum effort, and Codex CLI 0.166.0 withgpt-6-astraat maximum effort. The version note's Host Evidence section also reports the two private checks: a paraphrase check in which one fresh Claude Code session per skill reproduced 78 of 78 invariants without drift, and a same-batch sample of the before-acting behavior on both hosts against the released 0.23.0 plugin as the baseline.Affected files and surfaces
plugin/skills/*/SKILL.md(fourteen);plugin/skills/using-axiom/references/codex-host.mdandclaude-code-host.md(new),host-permission.md;plugin/skills/agents-architect/references/inventory-audit.md,project-initialization.md,runtime-and-updates.md,maintenance/implementation-reconciliation.md;plugin/skills/continuous-progress/references/execution-and-handoff.md,supervision-and-recovery.md(changed),codex-operations.md,claude-code-operations.md(removed);plugin/skills/delegate-simple-task/references/host-evidence.md;plugin/skills/traceable-git-submit/references/baseline-and-preflight.md,checkpoint.md,consolidation.md,prepared-release-submit.md,remote-targets.mdplugin/.codex-plugin/plugin.json(version)plugin/.claude-plugin/plugin.json(version)README.md,CHANGELOG.md,docs/architecture.md,docs/examples.md,docs/trust-model.md,docs/runtime-identity.md,docs/repository-policy-revisions.md,docs/reference/skills.md,docs/maintainers/runtime-changes.md,docs/maintainers/validation.md,docs/releases/v0.24.0.md(new),docs/releases/v0.16.0.md(two links to the removed references become code spans);evals/README.md,evals/schema-v8.json,evals/routing-v8/current.jsonl,evals/benchmarks/codex-core-v8.json,evals/benchmarks/claude-code-core-v8.json,evals/context-budget/results/v0.24.0.json,evals/results/v0.24.0/claude-code/linux.json,evals/results/v0.24.0/codex/linux.json(new);evidence/runtime-identity.json,evidence/release-status.json,evidence/repository-policy-revisions-v1.json;axiom_validation/skill_text.py(new),axiom_validation/aggregate.py,axiom_validation/routing_contracts.py,axiom_validation/cases/routing.py,axiom_validation/routing_evals/__init__.py,candidates.py,constants.py,current.py,external.py,observations.py,schemas.py;tests/test_skill_text.py(new),tests/test_current_routing.py,tests/test_release_facts.py,tests/test_routing_contracts.py,tests/test_routing_evals.py,tests/test_validator_isolation.pyRouting and authorization impact
verify-completionandclarify-intentwiden to the forms their descriptions now name (a summary-carried completion claim without a verification verb; alternatives across sentences or without "either"); the before-acting behavior selects no route. Every description except these two is unchanged apart from one split sentence inagents-architect. Because the gate and every skill body change, the fresh-session records cover all thirteen routes.agents-architectreconcile modes no longer stop for a missing subagent facility; they run as sequential independent passes with one writer. No other stop condition changes.Documentation
docs/releases/v0.24.0.mdcarries the reasoning, changed passages, routing contract v8, host evidence, and evidence boundary;CHANGELOG.mdcarries the 0.24.0 entry with its behavioral impact and required action (none).docs/architecture.md,docs/trust-model.md,docs/examples.md,docs/maintainers/runtime-changes.md,docs/maintainers/validation.md,evals/README.md,docs/reference/skills.md,docs/runtime-identity.md, anddocs/repository-policy-revisions.mdfollow the invariants, the invocation syntax, the before-acting behavior, contract v8, and revision 122. Installation and hook commands are unchanged.Validation
python3 -B scripts/check-publication.pypython3 -B -m unittest discover -s tests -p 'test_*.py'git diff --checkpython3 -B scripts/measure-routing-context.py --check,python3 -B scripts/render-release-facts.py --check, andpython3 -B scripts/check-runtime-identity.py --check: passed.claude plugin validate --strictforpluginand.claude-plugin/marketplace.json: passed on Claude Code 2.1.308. Release observation gate rehearsal in a disposable clone (require_route_observationsfrommainto this tree): 13 changed routes, both host records accepted at the unchanged runtime digest. ASCII scan of the changed Markdown, JSON, and YAML files: passed; the multilingual corpus cases are non-ASCII by design.Cross-platform parity
The fresh-session records install the 0.24.0 subject on Codex CLI 0.166.0 (local marketplace install into an isolated configuration, documented hook-trust handshake) and load it on Claude Code 2.1.308 (plugin directory with the installed copy disabled per invocation); both hosts delivered the startup gate in every case. The host references label each host's mechanics in its own words and map neither onto the other. Hook commands are unchanged.
Unrelated work