v0.4.0 — Aperture
0.2 gated proof; 0.3 gated the seam of that proof. 0.4 adds the dial that decides how much of the loop to run at all: spend the full ratchet only when uncertainty earns it, and snap when it doesn't.
Added
- Aperture dial —
ratchet score aperture <json>scores five uncertainty dimensions (ambiguity,terrain,taste,blastRadius,reversibility, each 0–2), maps the total to a level A0–A4, and returns the exact ratchet skill sequence to run at that depth — frombuild → verify(A0 Snap) up tolock → cut → decidewith no build until constraints are locked (A4 Max). A missing dimension defaults to neutral (1), never certain (0), so unknown uncertainty opens the aperture rather than closing it. - Aperture Read in
/ratchet:ignite— the master loop now meters itself: it scores the task first and runs only the depth uncertainty earns, instead of always running all seven steps./ratchet:lockgained a matching "meter what follows" note.
Changed
/ratchet:ignitereframed from "run all seven; do not skip" to "run the aperture's metered sequence" — the seven-step pipeline is now the A2 default, not the floor.- Bumped package, both plugin manifests, and the marketplace manifest to
0.4.0.
63 tests pass (31 cli · 19 evolve · 13 plugin-shape). Versions aligned at 0.4.0; ratchet doctor healthy.
Provenance: grafted from an auto-aperture skill fork — we imported only its novel primitive (the uncertainty-scored dial) in ratchet's own dialect, and dropped the phases that already existed as cut/lock/decide/build/verify/compile.