v2.4.0 — one home per held fact
A shape pass over the skills, README, and validators, scored in concepts a reader must hold rather than lines: 106 added, 109 removed.
Skills
- One reason had four homes.
duck-run,duck-review, andduck-raceeach re-derived, in their own words, why a receipt goes to the durable records home and never the scratchpad or a candidate-branch commit. They now state the contract and citeduck-proof, which owns it. duck-race's pin proof had drifted. Its copy of the model-pin procedure omitted the roster lineduck-reviewrequires recorded, so a race run from that skill alone produced a receipt that could not prove cross-family. It cites the bar instead of carrying a copy.- Two paragraphs a reader could not stop inside.
duck-runstage 6 fused remediation lanes with the circuit breaker;duck-landstep 1 fused remote policy, history shape, and base pinning. Both split under labelled headings, text unchanged. duck-runsays what trust-touching means at first use; the term was defined only induck-review.
README
- Prerequisites had no heading and sat under "Works well with". Own section, before Install.
- Install uses
ln -sfn, so installing and relinking after a pull are the same command. Measured: a symlink install made before v2.1.0 never gainedduck-shapeuntil relinked by hand. - The skill count leaves the prose; it was a fact maintained by hand.
Validators
render-catalog.py --checkduplicated the validator's staleness check. Removed, with its CI step.- A
REQUIRED_REFERENCESentry naming a retired skill now fails the gate instead of being skipped silently. Mutation-tested. importlibreplaces theexecplus__name__trick; the dotted-entry exemption has one home.
Minor rather than patch: the validator gains a rejection and CI loses a step.
How it was reviewed
Not gated. One model family authored and self-checked it; the owner waived the duck-review gate and the PR approval on #16 in writing, and directed the version bump to land directly on master. CI and the validator's corruption self-test are green on the merged head.
Full changelog: v2.3.0...v2.4.0