Claims tied to loaded gates, stricter validator
This release came out of a review of 490 agent sessions across twelve consumer projects, the library's own history, and one consumer's audit issues. The review produced about thirty candidate rules. Each was then replayed against v3.4.0 — five real failure cases rebuilt as fixture projects, three runs per version, scored by the fixtures' own tests and a blind judge, with keep and drop criteria written before the first run. v3.4.0 already avoided most of the logged failures, so most candidates were dropped. What ships is what the replay supports, plus corrections the validator can prove.
Routing
- Claim only what ran. In 2 of 3 adaptive runs, v3.4.0 reported a decision for every gate — Minimum, Architecture, Locality, Complexity, Enforcement, Hermetic — after reading none of their skills.
Core routeand the decision trail now name a stage's decision only when itsSKILL.mdwas read; a selected stage that did not run appears asNot runwith its reason. With the rule: 0 of 3. The cost is real: those runs read the gates they cite, so they take about twice the tokens. - The M hand-off classifies all eleven verdicts
functionality-complexity-tradeoffcan return; it listed six. The expanded record usesDrop, like the compact one. - Gate 5 and core directive 3 no longer name one stack's enforcement file.
- Companion routing lives only in
alchemy;CLAUDE.mdkeeps the invariants. The design doc had contradicted the router since July on when full traversal applies; fixed. - The change-primitive specialization table moved to
references/change-primitives.md.alchemygoes from 4596 to 4375 words,CLAUDE.mdfrom 1238 to 1142.
Skills
architecture-as-code: the assembler fails when a rule names an unregistered subsystem or a subsystem pattern matches no file — either silently drops a rule while lint stays green.architecture-as-code-javascript: flat config replaces a rule's options per rule id, so two overlapping blocks that both setno-restricted-syntaxleave only the later one active; emitted options are copied for every linted file, so one selector per category can dominate lint time.continuous-improvement: a changed decision rule is a behavioral hypothesis until a scenario fails before the change and passes after. This release is the evidence.
Library enforcement
- New checks, each proven by a mutation case: relative-link integrity across all published markdown (two links in
CLAUDE.mdhad been dead since May), stack-neutral router text, M verdict classification, a scenario-coverage list that may only shrink, and aroute_loadedscenario check. The mutation test catches 49 deliberate violations. - Nine scenarios, 40 expectations, all met. New:
worth-design-minimal-firstanddispatch-housekeeping-skip.
Upgrading
Pin this revision with L_GEVITY_SKILLS_REF=v3.5.0.
Release commit 3aeeae2, covering 2d39480 and 8a70381.