feat(aperture): route A3–A4 through /ratchet:map before build#9
Merged
Conversation
The aperture dial named the loop depth but not the pre-build fog gate, so /ratchet:ignite relied on the operator to remember /ratchet:map. Fold it into the metered sequence: A3 = lock -> map -> auction -> cut -> decide -> build ..., A4 = lock -> map -> cut -> decide (still builds nothing). Add a derived mapRequired flag — true at A3+, or when a single dimension the summed score under-weights demands it (taste=2, or terrain=2 with any ambiguity) — so a high-taste "know it when I see it" task earns a map even at a low overall score. md.aperture() renders "Pre-build map: required" and /ratchet:ignite routes into the map on its own. Guarded by a new cli.test assertion: sequence routing, the flag, the render line, the two low-score overrides, and the negative case. npm test green (cli 49 · evolve 19 · plugin-shape 14); ratchet doctor healthy. No schema change; A0-A2 sequences untouched; A4 still produces options, not code. Author-model: claude-opus-4-8[1m] Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
What
Wires
/ratchet:map(PR1) into the aperture dial so/ratchet:igniteroutes high-uncertainty work through the fog gate instead of relying on the operator to remember it.map, beforebuild:lock → map → auction → cut → decide → build → attack → patch → compilelock → map → cut → decide(still builds nothing)mapRequiredflag onscoreAperture()output — true at A3+, or when a single dimension the summed score under-weights demands it:taste = 2("I'll know it when I see it"), orterrain = 2with anyambiguity. So a high-taste task earns a map even at a low overall score.md.aperture()renders**Pre-build map:** requiredwhen the flag is set.Why the single-dimension override
Pure score bands miss the case where one dimension dominates:
taste=2with everything else0sums to 2 → A0, yet "make this feel right, I'll know it when I see it" is exactly when you should show options first. The flag catches that; the band sequence doesn't have to.Verification
npm test→ green: cli 49 (incl. newaperture routes high-uncertainty work through /ratchet:map) · evolve 19 · plugin-shape 14.node bin/ratchet doctor→ healthy.md.aperture()emits the line.Scope / safety
mapRequiredis an additive field — no consumer deep-compares the aperture object.[Unreleased]; no version bump.Known residual
At A0/A1 with the single-dimension override, the render shows a low-depth loop and
Pre-build map: required— intentional (the flag overrides the loop and says "map first"), documented inskills/ignite/SKILL.md, but it relies on the reader heeding the flag line.🤖 Generated with Claude Code
https://claude.ai/code/session_016zHEHzbyqKYJZhDpSJfkq5