Repository navigation
Releases
v2.0.1
User-visible outcomes
This patch makes the public install path work out of the box and publishes the Azhou skin so a fresh Agent Skin clone builds without a private overlay.
npx skills add TeFuirnever/azhou-ai-hubcan now install all 12 public skills. The unquoted YAMLdescriptionvalues insuper-archify,super-asd-ste100andsuper-ask-azhouthat contained:are quoted;scripts/check_repository.pynow strictly parses every publicSKILL.mdfrontmatter.migrate-receiptsprintsnothing to migrateand exits 0 when no legacy receipts directory exists, instead of crashing.- The 21 project-local
.agents/skillspackages setmetadata.internal: true, so they stay out of the publicnpx skills add --listcatalog. They remain installable by name, and local Cursor/Codex discovery is unchanged. - A fresh Agent Skin clone builds the Azhou skin without a private overlay: the four build assets (
working.png,wallpaper-scene-q-v3.png,entry-avatar.png,app-icon/source.png, about 6.5 MB) are tracked underpackages/agent-skin/assets/azhou/as CC BY-NC-ND 4.0, separate from the MIT code, with a rootTRADEMARKS.md. The resolver prefers an ignoredassets/private/<name>overlay when present. Bundles built from the library art may only be shared non-commercially, unmodified and attributed. - Agent Skin's code license is recorded as the repository root MIT license after the independent rewrite in #441. The historical legacy bytes from the unlicensed upstream remain unlicensed and are not redistributable.
- The maintained pstack marketplace identifier is now
pstack-azhouzhou@azhou-hub(renamed from the fork-erapstack-claude). Two Hub-authored pstack overlays were corrected to match the shipped setup steps; the pstack distribution version stays0.15.37. - Documentation, README layout/hero, governance wording, and a docs-only CI fast lane were brought in line with current repository reality.
Affected skills
- Fixed install metadata:
super-archify,super-asd-ste100,super-ask-azhou. No skill runtime behavior or schema change. - Docs only: Agent Skin Pet commands now state the Pillow prerequisite.
- Package:
packages/agent-skin(published Azhou library assets and license record). - Overlays only: pstack Hub-authored setup references. No pstack runtime, manifest or patch change; version stays
0.15.37. - No canonical skill was added or removed; the catalog remains 12 public skills.
Upgrade / migration action
- If you installed from
v2.0.0or frommainbefore #465 and could not add those three skills, reinstall from this tag or from currentmain:
npx skills add TeFuirnever/azhou-ai-hub --skill <skill-name> - Compare an installed skill directory against this tag with the snapshot in the installation guide:
git clone --depth 1 --branch v2.0.1 https://github.com/TeFuirnever/azhou-ai-hub /tmp/azhou-tag - If you use the maintained pstack marketplace, the identifier is
pstack-azhouzhou@azhou-hub. Existing installs that still showpstack-azhouzhou@pstack-claudeneed a marketplace-root update; see the support matrix and the pstack closeout notes in the changelog. - Agent Skin users who want the published Azhou art can build from a fresh clone. A local
assets/private/overlay, when present, still wins; overlay-built bundles are not part of this public release.
Verification summary
python3 scripts/verify.pypassed on the release-prep tree and again on a clean checkout in the Draft release workflow (run 43421454114).- Release-prep PR #466: Required, CodeQL and dependency review passed. The docs-only fast lane skipped the heavy platform legs because this cut changes only
CHANGELOG.mdand the installation-guide tag example. The 16 preceding commits already landed through #450–#465 with their own checks.
Security / privacy
- Agent Skin code is MIT; Azhou artwork under
packages/agent-skin/assets/azhou/is CC BY-NC-ND 4.0; the Azhou name, character and art are reserved byTRADEMARKS.md. Provenance records, prompts, raw source material, the Codex Pet spritesheet and anyassets/private/overlay stay out of this release. - No secrets, private paths or unpublished raw assets were added to Git for this cut.
Known holds
- Pet real-machine visual acceptance remains open.
- Release artifacts ship unsigned. This tag has no downloadable assets; signing stays on the rehearsed keyless sigstore path and will apply once downloadable artifacts exist. Git tags remain unsigned.
- pstack
0.15.37remains a candidate, not an accepted pstack product release (inventory, mirror-gap and patch-debt receipts record holds H1–H5). This Hub patch does not change that status.
Full changelog
v2.0.0
User-visible outcomes
Three surfaces are physically retired in this cut (spec #442, PR #449):
- agent-orchestration-kit (model router) — deleted with its entire Hub integration surface; never released, so no shipped version is affected.
- Legacy
codex-startup-animationroot — deleted after the maintainer-reviewed receipt-ownership handoff; the maintained Pet toolchain lives in agent-skin. - agent-skin's ZCode host layer — removed; Codex and DSH hosts and the shared core keep their behavior. Last supported ZCode build:
0.9.0/build 41.
A permanent retired-surface reverse-scan gate is now part of scripts/verify.py.
Affected packages
- Removed:
packages/agent-orchestration-kit(unreleased),packages/codex-startup-animation(last0.7.1/build 8). - Changed:
packages/agent-skin(ZCode host layer removed; frozen persisted identifiers kept verbatim for installed-state migration). No canonical Skill changed.
Upgrade / migration action
- An installed ZCode skin keeps working as a frozen install; to retire one, follow the exit statement in the README (restore the retained original launcher or remove the entry with its receipts).
- If you ever installed the model router, uninstall it before installing pstack.
- All pre-deletion releases and tags are retained as the recovery/uninstall source.
Verification summary
Per-ticket verify.py gates, final verify on the branch tip, an independent review of the whole branch diff (14 findings, all low, each with evidence; residuals swept in 3befab0), CI 14/14 green, the release workflow's clean-checkout gate, and a maintainer-checkout gate run after archiving the retired root's untracked remnants.
Security / privacy
No redistribution rights changed: THIRD_PARTY_NOTICES rows for the retired sources are rewritten as historical statements; the no-license source remains non-distributable; private artwork and receipts stay outside Git.
Known holds
- The squash merge skipped the standard no-mistakes pass under the maintainer's explicit waiver (recorded in commit e937b48): its claude agent shares a provider quota capped until 2026-11-17.
- Pet real-machine visual acceptance (the #441 tail) remains open.
- Release artifacts ship unsigned; signing activates via the rehearsed keyless sigstore path once downloadable artifacts exist.
Full changelog
v1.0.0
What's Changed
🧰 Repository
- feat(hub): brand-prefix all skills and unfreeze super-caveman metadata by @TeFuirnever in #326
- docs(changelog): record 1.0.0 brand-prefix and metadata-unfreeze release by @TeFuirnever in #328
- chore(super-caveman): rebind beb0568c Git-external approval and review by @TeFuirnever in #329
Full Changelog: v0.12.0...v1.0.0
Breaking changes
- Every canonical package path moved to
skills/super-<name>/. Relink or copy installs withazhou-setup. - Old canonical names remain description/compatibility triggers; check residual host hooks with
azhou-doctor --host-root.
Upgrade
git pull
python3 scripts/azhou_hub.py setup --target "$SKILLS_HOME"
python3 scripts/azhou_hub.py doctor --target "$SKILLS_HOME"Verification
python3 scripts/verify.pyand--promotion-evidencepassed on the release commit in the Draft release workflow (run 39939809945).- Windows full-flow and required status checks passed on PRs #326, #328, #329.
Known holds
- Release artifacts are not yet attached; tag signing remains unsigned per docs/releasing.md until a tag-signing step is rehearsed.
v0.12.0
What's Changed
🔐 Security and dependencies
- chore(deps): Bump source-map-js from 1.2.1 to 1.2.2 in /skills/excalidraw-diagram/scripts by @dependabot[bot] in #279
🧰 Repository
- fix(ci): run the signing rehearsal with the pinned sigstore CLI (T7) by @TeFuirnever in #281
- fix(ci): point the signing bundle at its own output path by @TeFuirnever in #282
- docs(evidence): record the keyless signed-release rehearsal (T7) by @TeFuirnever in #283
- fix(skills): pin skill CLIs' stdio to UTF-8 against console locale (#236) by @TeFuirnever in #284
- fix(skills): pin the remaining UTF-8 console surfaces and harness pipes (#236) by @TeFuirnever in #285
- docs(evidence): windows full-flow fully green after the #236 console fix by @TeFuirnever in #286
- chore(super-lavish): bump the locked lavish-axi CLI baseline to 0.1.89 by @TeFuirnever in #289
- docs(research): record the 2026-10-17 upstream freshness re-scan by @TeFuirnever in #290
- feat(skills): add the asd-ste100 controlled-English rewrite skill (#288) by @TeFuirnever in #291
- chore(super-repo-pedant): re-baseline the neat-freak reference onto upstream v3.0.0 by @TeFuirnever in #293
- feat(skills): add the archify presentation-diagram skill (#292) by @TeFuirnever in #294
- docs(research): record the super-caveman rule-9 adoption ride attempt-1 rejection by @TeFuirnever in #295
- docs(research): record the super-caveman rule-9 ride-2 rejection (revision-12b5552a) by @TeFuirnever in #296
- fix(state): enforce private boundaries and modes at every default write site (F01) by @TeFuirnever in #308
- fix(super-repo-pedant): require majority of all judges and reject unresolved holds (F03) by @TeFuirnever in #310
- fix(benchmarks): share one first-pass criterion and require the exact attempt-1 matrix (F04) by @TeFuirnever in #311
- fix(super-llm-wiki): validate the archive lock before freezing the page (F05) by @TeFuirnever in #312
- fix(super-llm-wiki): isolate bad MCP requests and align the archive page contract (F06) by @TeFuirnever in #313
- fix(azhou-hub): judge host-migration residue by rename record and dead references (F08) by @TeFuirnever in #315
- ci(windows): propagate receipt-step exit codes instead of echoing past them (F09) by @TeFuirnever in #316
- docs(setup): publish per-command apply forms and correct stale lavish paths (F11) by @TeFuirnever in #317
- fix(super-repo-pedant): serialize append against the whole archive transaction (F02) by @TeFuirnever in #319
- fix(session-insights): treat a damaged cache hit as a miss, not a crash (F07) by @TeFuirnever in #314
- docs(audit): record the 2026-10-18 repository audit report by @TeFuirnever in #318
- docs(support): distinguish the recorded caveman run from the invariance rebind (F10) by @TeFuirnever in #320
- docs(reconcile): record the transaction lock, pre-write lock validation, and cache miss semantics by @TeFuirnever in #323
- feat(brand-layer): paren-field broadcast grammar with memory credit protocol by @TeFuirnever in #324
- feat(brand-layer): S1 chat presentation + brand-effect audit by @TeFuirnever in #325
Full Changelog: v0.11.0...v0.12.0
v0.11.0
This cycle closes the 2026-10-07 upstream freshness evaluation batch at all three decision gates (#272).
User-visible outcomes
- super-lavish moves its locked npm baseline
lavish-axi@0.1.47→0.1.83(#274): the relay-contract regression (optimistic revision guards, stale-write rejection, exact visible-ledger projection, responsive layout, fuzz, entry-budget suites) and a two-baseline isolated-prefix artifact-mode smoke (visible-state block byte-identical across both CLIs) passed on the new CLI. Documented 0.1.83 command-surface deltas: an additivereplycommand, an 8thexplanationplaybook,share --private/--site/--unpublish, and hand-authored inline SVG as the diagram default. - super-repo-pedant's neat-freak capability account is re-audited against upstream v3 (pin
bab17831→ upstream HEAD322346de, 50 commits / 117 files) and judged an equivalent evolution — kept 18 / changed 10 / removed 0 across the 28 baseline rows.neat-freak-compatibility.mdmoves to contract v2 with a "Baseline and upstream v3 delta" section; parity tests gain positive and negative controls (#275). - super-caveman's pinned i-have-adhd contract stays byte-identical by decision (T1, #273): the upstream rule-9 rewrite is a presentation-completeness strengthening that contradicts no current benchmark criterion. The corrected decision, rationale and a maintainer-triggered promotion-ride adoption path are recorded in
docs/research/2026-10-07-upstream-freshness-scan.md; no skill byte or pin was touched.
Affected skills
super-lavish (locked baseline), super-repo-pedant (contract docs + tests), super-caveman (decision record only). Dependency bumps touch only excalidraw-diagram's local script tooling (jsdom 30.1.2, undici 8.11.2) and pinned CI actions.
Upgrade or migration action
None required. Re-run the super-lavish setup step to pick up the re-locked baseline on existing installs; no schema, receipt or trigger changes ride this release.
Verification summary
python3 scripts/verify.py passed all 8 gates and verify.py --promotion-evidence passed with the Git-external record pair; the release candidate re-passed the full promotion-evidence gate on CI (run 39014807574). The 0.1.83 landing carried its relay regression, fuzz, entry-budget and two-baseline byte-identity smoke; the contract v2 landing carries positive and negative parity controls.
Security and privacy changes
Dependency bumps only. No receipt, permission or data-handling behavior changes.
Known holds
- Tags remain unsigned pending the signed-release rehearsal (#225).
- The neat-freak 28/28 parity claim is scoped to the pinned implementation baseline (
bab17831), re-audited against upstream322346de— not a claim about upstream HEAD. - super-caveman's pin
b42a45a0is immutable; upstream adoption rides only a maintainer-triggered promotion.
What's Changed
🔐 Security and dependencies
- chore(deps): Bump the actions-minor-patch group across 1 directory with 4 updates by @dependabot[bot] in #278
- chore(deps): Bump jsdom from 30.0.1 to 30.1.2 in /skills/excalidraw-diagram/scripts in the npm-minor-patch group across 1 directory by @dependabot[bot] in #248
- chore(deps): Bump undici from 8.10.0 to 8.11.2 in /skills/excalidraw-diagram/scripts by @dependabot[bot] in #249
🧰 Repository
- docs(research): upstream freshness scan with first-pass evaluations by @TeFuirnever in #271
- docs(research): record the t1 decision to keep the pinned i-have-adhd hard cap by @TeFuirnever in #273
- chore(super-lavish): bump the locked lavish-axi CLI baseline to 0.1.83 by @TeFuirnever in #274
- docs(super-repo-pedant): audit upstream neat-freak v3 delta into contract v2 by @TeFuirnever in #275
- chore(changelog): record the landed upstream freshness evaluation batch in Unreleased by @TeFuirnever in #276
- docs(changelog): align the evaluation-batch entry with the review-corrected records by @TeFuirnever in #277
- chore(release): cut 0.11.0 by @TeFuirnever in #280
Full Changelog: v0.10.0...v0.11.0
v0.10.0
v0.10.0 — cross-harness evidence batch and gate restoration
Repository-level minor release (SemVer): lands the accepted u1–u14 upgrade batch (#252) from the 2026-10-06 cross-harness execution-evidence research, plus the promotion-receipt restoration that keeps the public gate honest.
Affected skills
azhou-doctor: new read-only--host-rootprobe for stale hook paths and residual installs left by canonical renames, with a host-migration runbook (u2).ask-azhou: the routing catalog is now generated from every canonical SKILL.md description with a fail-closed drift gate, and unrouted requests can be recorded as hash-only telemetry (u4).eli5: paired MUST-trigger / anti-over-trigger phrase list, and the receipt now carries an audience read-back assertion (u4, u14).excalidraw-diagram: GUI-free sandbox fallback for render verification; "sandbox blocked preview" is now an explicit hold instead of a silent skip (u5).azhou-setup: same-source conflicts are separated from real conflicts and exit 3 (u6).session-insights: zcode 3.14.4 store scout concludes a bounded go (metadata-only, read-only); the Kimi Code support-matrix column lands behind a fresh receipt (u1, u9).- Super Caveman promotion machinery: validators name the exact stale field on re-derive, raw record shapes are versioned, and two receipt rebinds (#253, #269) restore the
--promotion-evidencereplay (u7). - Repository gate: per-skill platform view derived 1:1 from the support matrix with a consistency check (u3), reference-doc script-path check with negative control (u13), verify.py ends on a single aggregate verdict with a machine-readable summary (u8); docs additions cover the interrupt/quota resume protocol (u10), treehouse lease-return cwd step (u11) and the offline dependency recovery runbook (u12).
Upgrade / migration action
- Re-run
azhou-setup/azhou-doctoragainst your install; if you scripted against setup exit code 1, matchconflict-same-sourcevia exit 3 or the JSONstatus. - If your host hooks still reference
skills/llm-wiki/,skills/repo-pedant/or other pre-rename paths, run the new doctor--host-rootprobe and followskills/azhou-doctor/references/host-migration.md.
Verification summary
Every landing rode the full deterministic gate (python3 scripts/verify.py) locally and 12/12 CI checks before merge; the release cut ran scripts/verify.py --promotion-evidence against the receipt-only rebind locally and in this release workflow.
Security / privacy
Unrouted telemetry stores SHA-256 hashes, counts and day stamps only; the zcode scout read metadata and schema, never transcript content.
Known holds
Tags are not signed yet (signed-release rehearsal pending, #225); the pre-rebind review record remains missing from Git-external storage (#170); the session-insights zcode adapter stays fail-closed pending an adapter ticket (scout verdict: bounded go).
What's Changed
🧰 Repository
- docs(agents): repoint the promotion-record bookkeeping at the 0.9.0 cut receipt by @TeFuirnever in #205
- docs(readme): regenerate bilingual READMEs with azhou-covers hero image by @TeFuirnever in #206
- feat(hub): retire the super-ci-test-reliability and super-prose-standard canonical skills by @TeFuirnever in #207
- docs(support-matrix): correct the neutral availability count to fourteen by @TeFuirnever in #208
- feat(session-insights): roast tone over the same numbers (#164) by @TeFuirnever in #209
- feat(session-insights): offline single-file HTML artifact (#165) by @TeFuirnever in #210
- feat(session-insights): Codex adapter for the shared pipeline (#166) by @TeFuirnever in #211
- feat(session-insights): deliver the zcode fail-closed hold as final (#168) by @TeFuirnever in #212
- docs(research): OpenSSF Best Practices pre-enrollment draft (#27) by @TeFuirnever in #213
- docs: reconcile stale facts after the session-insights M2/M3 landings by @TeFuirnever in #214
- docs(research): production-readiness gap audit + autoresearch non-NVIDIA feasibility by @TeFuirnever in #215
- docs(readme): correct the benchmark-integrity suite count to four by @TeFuirnever in #216
- docs(agents): scaffold the matt-pocock skills configuration by @TeFuirnever in #217
- docs(installation): teach consumers to verify what they installed (#220) by @TeFuirnever in #227
- docs: minimal behavior eval-case contract for the no-benchmark tier (#222) by @TeFuirnever in #228
- feat(autoresearch): named unsupported holds for non-NVIDIA accelerators (#219) by @TeFuirnever in #226
- docs(evidence): named threat-review of distribution path and receipt parsing (#221) by @TeFuirnever in #229
- feat(ci): coverage and regression-rate baseline job (#223) by @TeFuirnever in #231
- feat(ci): windows full-flow receipt workflow (#224) by @TeFuirnever in #233
- fix(ci): use RUNNER_TEMP in the windows full-flow steps by @TeFuirnever in #234
- fix(super-llm-wiki): never render store-controlled text into SessionStart context (#230) by @TeFuirnever in #232
- fix(ci): windows receipt steps tee output and never abort mid-flow by @TeFuirnever in #235
- docs(evidence): windows full-flow receipt with encoding divergence (#224) by @TeFuirnever in #237
- feat(ci): keyless signed-release rehearsal workflow (#225) by @TeFuirnever in #238
- fix(ci): sign via the sigstore CLI (composite action outside the allowlist) (#225) by @TeFuirnever in #240
- chore(assets): ignore azhou-scenes generation scratch by @TeFuirnever in #242
- docs(readme): unify skill effect previews as azhou-scenes showcase sections by @TeFuirnever in #243
- docs(skill-standard): bind readme showcase sections to scene figures 1:1 by @TeFuirnever in #244
- docs(closeout): sync promotion pointer and changelog for readme showcase landing by @TeFuirnever in #245
- fix(policy): separate local tool installations from public packages by @TeFuirnever in #246
- docs(closeout): record local tool installation boundary by @TeFuirnever in #247
- docs(readme): embed promo video under hero by @TeFuirnever in #251
- fix(promotion): rebind super-caveman receipt for post-#251 protected-blob drift by @TeFuirnever in #253
- docs(research): scout zcode 3.14.4 sqlite session store as bounded go by @TeFuirnever in #254
- feat(azhou-doctor): detect stale host hook paths and residual installs after renames by @TeFuirnever in #255
- docs(platform-view): derive per-skill platform view from the support matrix by @TeFuirnever in #257
- feat(router): generate the routing catalog and record unrouted misses (u4) by @TeFuirnever in #256
- fix(setup): separate conflict-same-source from real conflicts with exit 3 (u6) by @TeFuirnever in #258
- fix(verify): end on a single aggregate verdict with a machine-readable summary by @TeFuirnever in #260
- feat(eli5): assert audience read-back in the receipt judgment layer (u14) by @TeFuirnever in #259
- feat(excalidraw-diagram): add GUI-free sandbox fallback and explicit preview holds (u5) by @TeFuirnever in #261
- feat(promotion): name stale fields on re-derive and version raw record shapes (u7) by @TeFuirnever in #265
- docs(kimi): add Kimi Code support-matrix column behind a fresh receipt (u9) by @TeFuirnever in #264
- docs(skill-standard): document the interrupt and quota resume protocol (u10) by @TeFuirnever in #263
- docs(worktree-policy): cd out of the worktree before returning a lease by @TeFuirnever in #262
- docs(installation): add offline dependency recovery runbook (u12) by @TeFuirnever in #266
- feat(policy-gate): verify reference docs cite existing script paths (u13) by @TeFuirnever in #267
- chore(changelog): record the ...
v0.9.0
v0.9.0 (2026-09-12)
User-visible outcomes — the hub grows to sixteen canonical skills and Windows becomes an enforced platform rather than a sensor:
- New skill
session-insights(#161/#163): fact-bound agent-usage insight reports from local session stores, with a Claude Code adapter, a deterministic aggregate/report pipeline, and an incremental metadata cache (#161/#167) whose cold/warm/deleted/corrupt states are byte-identical under benchmark and unit negative controls. - Fidelity axis (#176/#177–#183): every skill now carries an evidence-cited classification; the five adapted skills were renamed under the
super-prefix (ci-test-reliability →super-ci-test-reliability, prose-standard →super-prose-standard, repo-pedant →super-repo-pedant, lavish →super-lavish, llm-wiki →super-llm-wiki); the repository gate fails prefix-fidelity contradictions and rename residue. - Windows enforced (win-01..win-13):
Verify on Windowsflipped into theRequiredgate (#188) after the POSIX-onlyos.fchmodroot-cause fix (#184) and two further Windows-only divergences were closed;docs/support-matrix.mdand both READMEs claim Windows as enforced. - Runtime state: chained migrations no longer travel a prior migration receipt as content (#199), with a regression test across all three
azhou_runtime_state.pycopies.
Affected skills — session-insights (new), super-caveman, super-repo-pedant, super-lavish, super-llm-wiki, super-prose-standard, super-ci-test-reliability, plus the repository gate and runtime-state machinery.
Upgrade / migration action — reinstall the five renamed skills under their new canonical names. Existing runtime state under .azhou/<old-name>/ is migrated by migrate_state.py under the documented dry-run plan / atomic apply / source-preserved protocol; legacy receipt schema spellings remain dual-accepted; old names survive only as compatibility triggers.
Verification summary — python3 scripts/verify.py exit 0 (951-file repository policy, 467 unit tests, six benchmark-integrity suites, whitespace); CI green on Python 3.11/3.14, the Windows Required leg, CodeQL, Scorecard and Fuzz; super-caveman revision-8f493670 re-bound through the producer-context invariance pathway with workspace-owner exact-diff approval (PR #204).
Security/privacy changes — none new. The session-insights metadata cache stores no transcript text (first-prompt repetition is counted on SHA-256 only) and the skill remains a read-only observer that never writes inside a session store.
Known holds — session-insights ships wiring-integrity benchmarks only (no behavior benchmark yet); its Codex and zcode adapters fail closed pending format verification; super-caveman's invocation-class declaration remains held by the gate declaration table until its next whole-tree promotion ride.
What's Changed
🧰 Repository
- feat(skill-standard): hold super-caveman's invocation class in the gate, require the rest by @TeFuirnever in #169
- feat(skills): windows/macos cross-platform compatibility groundwork (win-01..09) by @TeFuirnever in #171
- feat(ci): collect windows verification evidence as a non-blocking job by @TeFuirnever in #172
- test(gates): skip posix-bound check and benchmark tests on windows by @TeFuirnever in #173
- feat(super-caveman): promote revision 74f8d585 (windows atomic-write hardening + command surface) by @TeFuirnever in #174
- fix(super-caveman): land Windows fchmod guard via producer-context invariance pathway (revision-8f493670) by @TeFuirnever in #184
- feat(ci): enforce the deterministic gate on Windows with OS support declarations (win-10) by @TeFuirnever in #185
- test(super-caveman): preserve PATH in cleared test environments (win-13) by @TeFuirnever in #186
- docs(evidence): win-13 windows CI root-cause diagnosis and green receipt by @TeFuirnever in #187
- feat(ci): enforce the deterministic gate on Windows (win-13 required flip) by @TeFuirnever in #188
- docs(specs): land session-insights and super-prefix specs with backing research by @TeFuirnever in #189
- fix(super-caveman): authenticate invariance-pathway landings in promotion-evidence replay (#170) by @TeFuirnever in #190
- docs(github): add approved proof visuals by @TeFuirnever in #191
- chore(treehouse): raise the worktree pool to 8 by @TeFuirnever in #192
- docs(research): zcode session store format scout (session-insights #162) by @TeFuirnever in #193
- feat(session-insights): sixteenth canonical skill with Claude Code aggregate/report pipeline (#161, #163) by @TeFuirnever in #194
- docs(skill-standard): fidelity axis with evidence-cited classification for all sixteen skills (#176, #177) by @TeFuirnever in #195
- refactor(super-ci-test-reliability): rename from ci-test-reliability under the fidelity axis (#176, #178) by @TeFuirnever in #196
- refactor(super-prose-standard): rename from prose-standard under the fidelity axis (#176, #179) by @TeFuirnever in #197
- refactor(super-repo-pedant): rename from repo-pedant under the fidelity axis (#176, #182) by @TeFuirnever in #198
- fix(runtime-state): chained migrations no longer travel the prior receipt as content by @TeFuirnever in #199
- refactor(super-lavish): rename from lavish under the fidelity axis (#176, #181) by @TeFuirnever in #200
- refactor(super-llm-wiki): rename from llm-wiki under the fidelity axis (#176, #180) by @TeFuirnever in #201
- feat(gate): enforce prefix-fidelity and rename-residue in the repository gate (#176, #183) by @TeFuirnever in #202
- feat(session-insights): incremental metadata cache for aggregate runs (#161, #167) by @TeFuirnever in #203
- docs(changelog): cut 0.9.0 by @TeFuirnever in #204
Full Changelog: v0.8.0...v0.9.0
v0.8.0
What's Changed
🧰 Repository
- test: pin docs-to-code contracts and completion criteria by @TeFuirnever in #138
- feat(llm-wiki): optional decision lifecycle with alternatives gate by @TeFuirnever in #139
- feat(llm-wiki): archive freeze with content-hash tamper detection by @TeFuirnever in #140
- feat(llm-wiki): supersession hint, receipt v3, migration half-state pin by @TeFuirnever in #141
- feat(repo-pedant): consumer classification for simplification candidates by @TeFuirnever in #142
- feat(skills): add ci-test-reliability canonical skill by @TeFuirnever in #143
- feat(skills): add prose-standard canonical skill with recall batteries by @TeFuirnever in #144
- feat(skills): add ask-azhou router with gate-enforced coverage by @TeFuirnever in #145
- docs(changelog): land the absorption batch under promotion record evolution by @TeFuirnever in #146
- docs(changelog): cut 0.7.0 by @TeFuirnever in #147
- feat(skill-standard): standardize the invocation-class axis by @TeFuirnever in #151
- bench(repo-pedant): consumer-classification end-to-end case and first run by @TeFuirnever in #152
- feat(llm-wiki): surface decision lifecycle on the MCP tools by @TeFuirnever in #154
- docs(changelog): land the invocation-axis, eval-case, and MCP-lifecycle entries by @TeFuirnever in #155
- docs(agents): align the promotion-record parenthetical with the re-bound receipt by @TeFuirnever in #157
- docs(readme): refresh catalog facts and add the invocation-axis overview by @TeFuirnever in #158
- feat(skill-standard): declare the invocation class for fourteen canonical skills by @TeFuirnever in #159
- docs(changelog): cut 0.8.0 by @TeFuirnever in #160
Full Changelog: v0.6.0...v0.8.0
v0.6.0
- Promoted the
super-cavemanpromotion ride (revision93f38a6b) through a fresh-producer evaluation after the landing simulation proved the package's promotion digest binds its whole tree: the brand layer gains theStartup value disciplinesection (the English twin of the promoted startup-line rule) and apass/scope consistency bullet, the SKILL.md Persistence paragraph is deduplicated against Runtime boundary, and the duplicatedsetup.mdheading is fixed. The byte-reuse chain is retired for this revision: all 19 response and 19 lifecycle cases were re-evaluated by GLM through isolated zcode subagents (criteria panel 19/19 three times; blind paired A/B against a baseline set produced from the pre-change tree under the same producer voted 3:0 candidate with two judges finding the candidate strictly better), a pre-flight run without the contracted fixtures is disclosed and discarded in the summary limitations, and the shared brand-startup discipline test now covers all four brand layers. Raw output sets, the review record, and the exact-diff approval records are Git-external; the in-repo approval record binds seven reviewed blobs including the extended test, manifest inputs, bookkeeping, and this entry. - Promoted the second same-day evolution batch from the maintainer exact-diff checkpoint (all candidates 3:0 in independent paired reviews with reversed A/B order; the landing simulation passed the public gate before apply): the
excalidraw-diagramstyle verdict rewritesreferences/design-system.mdModern Aesthetics as a user-named opt-in aligned with the live hand-drawn gate —roughness: 1/fontFamily: 1(Virgil) stay the defaults,roughness: 0/ Cascadia exist only inside the named style, and the dangling "Deliverables & Export" pointer is gone — pinned by a new docs-alignment regression test that also fixes the entry,json-schema.mdandelement-templates.mddefault statements; the startup-line value discipline rolls out to thellm-wiki,repo-pedant, andarch-docbrand layers as purely additive sections (concrete values,unresolvedas the only legal pending marker backfilled at each skill's scope-lock point, angle brackets contract-only) with per-skill status-consistency rules and a shared public-gate regression test that pins every startup contract line verbatim and guards the promotedexcalidraw-diagramdiscipline; and a nine-file wording-prune batch (nine skills) removes the duplicated "emit the startup protocol" workflow step in six single-stage skills (timing moves into each Brand protocol line), collapsesarch-doc's duplicated note-format,Planned-synonym and parameter-drift rules into pointers at the canonical references, deletes one redundantrepo-pedantprohibition that restates the body verbatim, and fixes two dangling pointers indiagram-types.md(an orphan-period defect a judge flagged was fixed and re-reviewed before landing). - Approved but not landed: the
super-cavemanvariant of the startup-line discipline (English brand layer, approved_deferred) rides the next super-caveman promotion — the landing simulation proved that package's promotion digest binds its whole tree includingreferences/brand-layer.md, so any text change there requires a fresh benchmark attempt and approval record; the same constraint moved two prune items (SKILL.md adapter-overview dedupe, duplicated setup.md heading) onto thesuper-caveman-promotion-rideticket. - Promoted four evidence-gated skill evolutions from recorded zcode/Claude/Codex usage (signals + isolated regressions + 3-judge paired reviews, all 3:0, maintainer approval on green gates):
repo-pedantroutes real audit phrasings (tech-debt/repo-health-check) with an anti-over-trigger guard and its description is pruned to body-covered content;azhou-verifyderives its verdict mechanically (green requires exit 0, the gate's passing tail and no failure verdict line anywhere) with a stdlibcheck-gate-report.pyvalidator;excalidraw-diagrambrand-layer gains a startup-line value discipline (unresolvedas the only legal pending value, template text rejected in real broadcasts) with a stdlibcheck-brand-startup.pyvalidator. Regression tests pin all validator fixtures in the public gate. - Amended
docs/skill-standard.mdsection 3 with the startup-line value discipline promoted by the excalidraw-diagram evolution (real broadcasts carry concrete values, the machine-stable literalunresolvedis the only legal pending marker, angle-bracket templates stay contract-only); fixed thearch-docentry and provenance template pointing at a repo-rootscripts/verify_doc.pythat never existed (scripts live under the skill directory) with a new regression test pinning every referenced script path; published the cross-harness trigger-phrase inventory underdocs/research/. - Promoted the
lavishentry slimming evolution: the artifact-mode workflow, visual guidance, playbooks, and command rules moved verbatim into a newreferences/artifact-mode.md(relay workflow, authorization boundaries, receipts, mode selection, and the locked npx baseline stay in the entry), cutting the always-loaded entry from 15,479 to 8,512 bytes against the frozen 12,000-byte budget derived from the recorded zcode context-overflow sessions; a public-gate regression test pins the byte budget and the reference wiring. 3:0 paired judge majority; pointer issues flagged by judges (relay polling-rule scoping, relay<skill-dir>resolution, in-reference relative link) fixed before landing. - Completed the
arch-docskill backlog: brand layer, setup contract, controlled-evolution files, benchmark runner with evidence receipt, demo document, read-only template provenance and deterministic gate refinements (--plantuml-cli,--trace).
Added
- Completed the Super Caveman Codex lifecycle adapter (spec #115, implementation #116):
codex_adapter.pynow owns oneUserPromptSubmitregistration besideSessionStartin the same explicit scope and addsprompt/enable/disable/status;renderandpromptdelegate to the canonicalclaude_adapterhandlers so the capsule builder, mode hierarchy, stop phrases, one-shot routes and persistent defaults stay single-source — the Codex SessionStart capsule becomes the mode-aware canonical capsule (disclosed codex-host-visible change), covered by the existing contract tests plus a new lifecycle suite; live firing stays unclaimed until a trusted real-host receipt exists. Landed via the byte-reuse promotion chain with two isolated response-output-neutral delta reviews and fresh exact-diff approval. - Added the opt-in zcode lifecycle adapter to
super-caveman(scripts/zcode_adapter.py): two proven events (SessionStart plus UserPromptSubmit) managed in.zcode/cli/config.jsonfor one explicit scope, reusing the canonical Claude adapter handlers so the capsule builder, mode hierarchy and session state machine stay single-source; a defensive camelCase-to-snake_case payload bridge, a 15-case deterministic contract test file, a config-registration smoke receipt carrying the verified headless-pno-hooks negative, and a re-derivedevidence/zcode-hook-surface-2026-09-04.mdreplacing the 2026-09-02 receipt found committed empty. Promotion followed the byte-reuse chain re-bind: the 19-case output set is byte-identical, two isolated delta reviews confirmed response-output neutrality, and the supersededrevision-ed8a4b80evaluation is re-bound to the new tree digest. - Added the
relaymode tolavishby merging Spec Relay into it as the single canonical package with two modes:artifactremains the unchanged general rich-HTML review loop whilerelayserves the portable handoff packet with embeddedspec-relay.html-state.v1state, stabledata-review-ids, feedback disposition, next-owner handoff, optimistic revision guards andspec-relay.receipt.v1receipts;relay_state.pymoved byte-identical intoskills/lavish/scripts/alongside the Spec Relay reference, machine-stable names (the state schema,spec-relay.receipt.v1, thespec-relay:CLI error prefix and the pinnedlavish-axi@0.1.47baseline) are preserved, receipts and the fuzz workflow re-point at the single package, and the canonical package count drops from twelve to eleven.
Fixed
- Fixed the
llm-wikihook-wiring renderer emitting a bare"*"matcher: runtimes that compile hook matchers as regular expressions reject it as invalid ("nothing to repeat"), sorender-hooksnow emits the valid match-all".*"and a regression test pins all three event matchers as compilable regular expressions ending at the canonical event name, and theSessionEndwiring now requests 3 seconds, matching the short session-end budget hook hosts enforce instead of triggering a clamp at load time.
Changed
- Unified the Azhou identity anchor across all canonical packages: every
SKILL.mdnow carries the🦊 阿舟 · <Skill>identity and motto in its own body, Super Caveman included — its stage-event protocol stays byte-identical inreferences/brand-layer.mdand ordinary terse replies still add no lifecycle emoji.check_skill_brand_contractenforces identity and motto againstSKILL.mditself instead of the combined skill+brand surface, a regression test proves identity removal fromSKILL.mdalone fails the gate even when the brand layer retains it, anddocs/skill-standard.mdstates the uniform rule without the previous Super Caveman exemption. The Super Caveman package tree digest changes, so the passing evaluation re-binds only through fresh promotion evidence.
Planned
- First complete cross-harness evidence set.
v0.5.0
What's Changed
🧰 Repository
- fix(spec-relay): add bounded fuzzing for the relay state parser (#27 fuzzing slice) by @TeFuirnever in #91
- docs(evidence): canonical SKILL.md package load receipt (zcode) by @TeFuirnever in #93
- docs(evidence): zcode hook-surface receipt by @TeFuirnever in #94
- docs(evidence): repo-pedant manual invocation receipt (zcode) by @TeFuirnever in #95
- docs(evidence): lavish rich-HTML review-loop receipt (zcode) by @TeFuirnever in #96
- docs(research): zcode lifecycle adapter feasibility (two-event design on receipt-backed contract) by @TeFuirnever in #97
- docs(evidence): super-caveman compact delegation receipt (zcode) by @TeFuirnever in #98
- docs(evidence): spec-relay review-loop receipt (zcode) by @TeFuirnever in #99
- docs(support-matrix): receipt-back zcode cells via fresh SC promotion (b829d7c5) by @TeFuirnever in #100
- feat(skills): absorb eli5 and autoresearch as canonical Azhou skills by @TeFuirnever in #101
Full Changelog: v0.4.1...v0.5.0
Note on the tagged tree: the
v0.5.0tag is immutable under this repository's tag-protection ruleset and was cut fromcebe9dd, minutes before the[0.5.0]CHANGELOG section itself landed in4ad46db(#102). The section onmainis authoritative for this release; the tagged tree carries the same code delta with the changelog section arriving one commit later.