• v6.2.0 4ee711a6ac

    v6.2.0 Stable

    ktg released this 2026-10-08 18:53:31 +00:00 | 188 commits to main since this release

    Signed by ktg
    SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q

    Wave 1 of the practice build (five parallel orders, merged 2026-10-06), the
    fixes from two end-to-end trials in a separate test repo, and the defects an
    independent reader found in those fixes. Every fix began with a test that
    failed on the old code. Suite 1972 (1970 pass, 0 fail, 2 skipped).

    Nothing that was valid becomes invalid: plan 1.7, brief 2.0–2.2 and review 1.0
    files still validate. The new fields are optional, and the new rules apply only
    from plan 1.8 and review 1.1.

    Added

    • Intent (/trekbrief). A size class
      (ceremony: small|bounded|architectural; absent = architectural) sets the
      question budget, and the brief asks one round of questions with the
      recommendation first. "høres bra ut", "gjør som du vil" and an empty answer
      are not approval. lib/util/approval-log.mjs keeps an append-only,
      hash-chained approval log in the target repo, bound to the approved
      content's sha256. lib/util/artifact-commit.mjs commits it.
      /trekplan Phase 1 halts on a broken, missing or mismatched entry.
    • Plan 1.8 and the plan gate (/trekplan).
      • Plan 1.8 requires Test first: on every step and one End-to-end: step.
        New optional fields: Interface in:, Interface out:, Review focus:.
      • An architectural plan gets a ## Design part.
      • The critic loop has at most 3 rounds, and the plan records them.
        lib/validators/plan-gate.mjs decides: 0 go, 1 stop, 2 could not run.
        An open MAJOR stops the plan, and after the last round the operator
        decides.
      • plan-critic now checks 12 dimensions.
      • New lib/verification/arch-rules.mjs runs the target repo's own
        dependency-cruiser or import-linter.
      • New lib/verification/plan-scope-sweep.mjs lists changed files that no
        step names.
    • Step helpers and proof by command (/trekexecute).
      • One fresh step-implementer helper per plan step (new agent: opus, effort
        high, no Agent tool).
      • One controller reads the diff and gives two verdicts: does the step meet
        the plan, and does it hold the quality.
      • Fix rounds go up, at most 5: helper, then plan, then operator.
      • New lib/verification/red-proof.mjs: the step's test must fail at the
        start point and pass at the result.
      • New lib/verification/test-integrity.mjs (the floor guard) catches
        removed asserts, skipped tests, stubs and loosened thresholds.
      • New lib/verification/done-line.mjs writes the done line only when the
        test command exits 0.
      • A closed stop list and a decision log appear in the final report.
    • Guards (command hooks only, none runs a model).
      • pre-bash-executor answers "ask" before a merge into main, a push, a
        tag or publish, and destructive git. post-approval-log records the
        answer.
      • pre-plan-gate runs the plan gate when a Voyage plan leaves plan mode.
      • The test lock (lib/util/test-lock.mjs, pre-write-executor,
        stop-test-lock) refuses edits to a locked test file, and refuses "done"
        until the step's own test command is seen green.
      • post-edit-check runs the target repo's own formatter or linter. It runs
        only during a Voyage plan run or after opt-in.
      • New lib/verification/step-check.mjs checks each step when it ends.
    • The review is a gate (/trekreview, review 1.1).
      • verdict: ALLOW | WARN | BLOCK is required.
        lib/review/verdict-gate.mjs reads it: 0 ALLOW/WARN, 1 BLOCK, 2 could not
        decide (never green). A control that did not run gives exit 2.
      • Claude Code's /code-review and /security-review run as the engine.
        Their findings enter through lib/review/engine-findings.mjs under three
        rule keys. CODE_REVIEW_IMPROVEMENT (MINOR) covers simplification,
        efficiency, reuse, style and readability. The rule catalogue now has 15
        keys.
      • No finding is struck for length. Only MINOR and SUGGESTION text is
        trimmed, and the trims are counted.
      • The coordinator lists what it declined to judge.
      • Every BLOCKER becomes a numbered remediation step.
      • A finding class seen in two reviews is proposed as a project-memory line
        (lib/review/recurrence.mjs). The operator approves each line.
    • Checks when a brief or plan is written. A success criterion or Verify
      line that the criteria runner could never run is caught when the brief or
      plan is written, not when the review runs. The brief validator warns
      (BRIEF_SC_NOT_RUNNABLE, BRIEF_SC_SUBPOINTS, BRIEF_SC_BASH_NOT_PINNED).
      For a 1.8 plan, the plan validator reports PLAN_VERIFICATION_NOT_RUNNABLE,
      PLAN_STEP_VERIFY_NOT_RUNNABLE, PLAN_END_TO_END_NOT_RUNNABLE and
      PLAN_END_TO_END_NOT_VERIFIED: as errors under --strict, otherwise as
      warnings.

    Fixed

    • The write guard covers Edit and NotebookEdit, not only Write, and
      fails closed.
    • The review keeps findings that are right:
      • an engine finding is never set aside for Actionability;
      • recommended_action is the engine's own fix, or otherwise a test-first
        step, never the failure scenario;
      • a cited line past the end of a file is caught;
      • finding ids are computed, not typed by a model.
    • A MINOR /code-review finding outside the reviewed range no longer holds
      ALLOW back. A MAJOR one still does.
    • The plan template's checkpoint stages the step's files
      (git add … && git commit). The pre-compact hook reads that form.
    • The brief template's examples are commands the runner accepts.
      /trekcontinue and /trekexecute call lib/ through the plugin root.
    • Manifest must_contain uses grep -E -e … --, so a pattern such as
      --sep is not read as an option.
    • /trekreview, /trekresearch and /trekcontinue write stats through
      stats-append and report a failed write.
    • annotate prints an absolute path.
    • A test lock marked green may stop while it waits for its controller.
    • /trekplan runs every exploration agent, and reviews the brief again only
      when it has changed since /trekbrief reviewed it.
    Downloads