Skip to content

Releases: TheLucidTech/torque-loop

v0.6.0 — Fog Gate

Choose a tag to compare

@TheLucidTech TheLucidTech released this 06 Jul 10:40
29ac763

0.2 gated proof; 0.3 gated the seam; 0.4 metered the depth; 0.5 gave it a cockpit. 0.6 gates the fog — high-uncertainty work maps its unknowns before it builds: no map → no confident build.

Added

  • /ratchet:map — the pre-build fog gate. Walks the task through the four unknown-quadrants — known knowns (settled ground with file:line evidence), known unknowns (one blast-radius-ordered question at a time), unknown knowns (tacit taste surfaced by putting concrete options in front of the user), unknown unknowns (a swept landmine field) — and hands over one durable four-quadrant map, a build plan, and a copy-paste implementation prompt before any code is written. CLI-backed (artifact kind:"unknown-map", decisions, assumptions, open loops); its open items drain ratchet score confidence until closed.
  • Aperture routes through the map. ratchet score aperture folds /ratchet:map into the A3–A4 metered sequences (before build) and returns a 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). /ratchet:ignite routes high-uncertainty work through the fog gate instead of relying on the operator to remember. A4 still builds nothing.
  • The map lives through the build. New templates/unknowns-map.md (four-quadrant file shape + a Deviations during build section) and templates/deviation-note.md (map said X → code revealed Y → call made). /ratchet:build builds against an existing unknown-map artifact and records deviations as decisions/open-loops/defects instead of silently absorbing them; /ratchet:handoff surfaces them so the receiver never re-litigates what the build discovered.

Notes

  • Method grafted from dzhng/skills explore-unknowns, expressed in ratchet's own vocabulary — no prose copied.
  • Zero new runtime dependencies. npm test green across Node 18/20/22 on Ubuntu and Windows.

Full changelog: v0.5.0...v0.6.0

v0.4.0 — Aperture

Choose a tag to compare

@TheLucidTech TheLucidTech released this 03 Jul 19:15

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 dialratchet 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 — from build → verify (A0 Snap) up to lock → cut → decide with 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:lock gained a matching "meter what follows" note.

Changed

  • /ratchet:ignite reframed 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.

v0.3.0 — Seam Gate

Choose a tag to compare

@TheLucidTech TheLucidTech released this 03 Jul 17:55

Where 0.2 made the loop require proof, 0.3 asks whether the proof is about the thing you are actually shipping. A proxy evaluation can produce the right-looking number and still point at the wrong decision, so a production KEEP now needs evidence from the exact ship seam — and remediated defects can finally be cleared, waived, or superseded through the CLI instead of blocking confidence forever.

No proof → no keep (0.2). Wrong proof → no ship (0.3).

Added

  • Defect lifecycleratchet defect resolve | reopen | waive | supersede, plus list and get. resolve requires --evidence; waive requires --owner and --reason; supersede links the replacement with --by. Each transition is logged per-defect and mirrored into the QA ledger. This is the mutation 0.2 lacked: a defect could be born but never cleared, so remediated work stayed confidence-blocking forever.
  • Seam-fidelity metadata on evolution events — a verification can now record evidenceType, method, independentFromBuilderMethod, testedSeam, shipSeam, seamMatch, and proxyWarning.
  • Seam gate — a production-code (mode: code) KEEP is rejected unless the evidence seam is an exact match for the ship seam, or a named human waiver is supplied. Verification that repeats the builder's own method is rejected as not independent.
  • ratchet retract <id> — retract an artifact whose claim became false or obsolete (--reason, --superseded-by). Provenance is preserved (keptForProvenance), and a retracted artifact's holes stop draining confidence.
  • ratchet git status-refs — base-qualified git status: every ahead/behind count names the ref it was measured against — never a bare "ahead of main".
  • ratchet doctor cold-start — scans for stale steering that would start the next session in the wrong world. Generic ratchet-state checks always run; project operator surfaces (goal files, decision sheets) are an opt-in adapter via .ratchet/cold-start.json. No workspace path is hardcoded, and a declared-but-unimplemented check warns rather than silently passing. See templates/cold-start.example.json.
  • REVERTED_AND_LEARNED — a first-class successful evolve outcome for a mutation reverted after verification that still left a reusable lesson. Evolve status counts it distinctly: corrected knowledge, no bad code kept.
  • Codex install metadata: .codex-plugin/plugin.json plus a repo-local .agents/plugins/marketplace.json, so the plugin can be registered and installed by Codex CLI and surfaced in the Codex app.

Changed

  • Confidence scoring now treats waived and superseded defects as terminal (like resolved / closed) — a change proven necessary by a failing test before it was made. resolved handling was already correct and was left untouched.
  • The terminal-defect predicate is centralized in scoring.isDefectOpen and consumed by the scorer, the state summary, and the QA ledger, so a cleared defect can never read as open on one surface while draining on another.
  • The ratchet CLI gained a real --key value flag parser for subcommands that carry values (the router previously treated every --flag as boolean).
  • Package metadata, ratchet doctor, and plugin-shape tests now cover both Claude Code and Codex manifests.
  • Bumped package, both plugin manifests, and the marketplace manifest to 0.3.0.

Fixed

  • Remediated defects could never be cleared through the CLI, so they blocked confidence permanently. They can now be resolved, waived, or superseded.
  • A production KEEP could be justified by a proxy evaluation that measured a different seam than the one it ships on. The seam gate now blocks that.

59 tests pass (27 cli · 19 evolve · 13 plugin-shape). Versions aligned at 0.3.0 across all surfaces; ratchet doctor healthy.