-
v6.3.0 Stable
released this
2026-10-11 06:33:07 +00:00 | 157 commits to main since this releaseWave 2 of the practice build (five orders, merged 2026-10-09) and the fix round
after it, which closes finding 1 of the test repo's third trial: a step of only
tests can never be proven red. Every fix began with a test that failed on the
old code. Suite 2194 (2192 pass, 0 fail, 2 skipped).Two changes ask something of users (see Doors):
/trekexecutenow refuses a
plan that has no logged approval for its current content, and a check in a
brief or plan runs with no shell, as plain words with a runner's read-only
options. Plan 1.7/1.8, brief
2.0–2.2 and review 1.0/1.1 files still validate; the new step fields are
optional.Doors
- one-way:
/trekexecuterefuses a plan whose logged approval does not cover its current sha256 (K2) — a plan written before 6.2.0, written by hand, or edited after its approval stops at Phase 1; run/trekplan --project <dir>and answer "Approve" (from 6.3.0). - two-way:
/trekexecutereviews by itself in the closing run (/simplify→/trekreview→ verdict gate, K7) and keeps the main merge closed on BLOCK or an undecided verdict; step check (K9),Regression:(K10), architecture rules (K5) and plan-file sweep (K6) run at step end and after the last step — a revert restores the old executor; nothing to do for users. - two-way: the approval guard refuses a merge into main, a push, a tag or publish and destructive git in the permission mode that shows no prompts — a revert lets them through again; nothing to migrate.
- two-way:
progress-validatorrejects the runner'sexitCodeinplan_verification.failed_criteria(C15) — the executor's own prose always wroteexit_code. - two-way: skills workshop — form check, model-free routing test,
test-firstanddebuggingpreloaded intostep-implementer— new files and oneskills:line; a revert removes them. - two-way:
researching-sourcesskill, preloaded by the five web-search agents and named by/trekresearch— the agents' copied rule text moved into the skill; a revert puts it back. - two-way:
Regression:(K10) andOn failure:action words (K11) — an optional field and a warning; plans without them validate as before. - two-way: trial 2's minor fixes (B8, B11, B12, C13, C14, C16, C17) — checks, prose and agent text; a revert restores the old behaviour.
- two-way: release check and runbook — new files; a revert removes them, and nothing else reads them.
- two-way: tests-only steps (
PLAN_STEP_TESTS_ONLY, red-proof--plan/--step→tests_only, which also reads the step's own diff, executor routes them to the plan) — a warning and an optional flag; a revert removes them, plans stay valid. - two-way: timing tests under load (hook helper kill limit 30 s, SC #14 fastest of three against 800 ms) — test-only.
- two-way: example plan
On failure:lines open with a K11 word, and its verbose-content test moves into the step that wires the output (6 steps, progress.json follows) — text in an example. - two-way:
/trekreviewsaves the reviewer's whole answer for the findings check and namesFINDING_PROSE_LINE_OUT_OF_RANGE— command text. - two-way: the criteria runner's commands run without
NODE_TEST_CONTEXT— a false green undernode --testis now red; nothing to do for users. - two-way: the fixes from the release review of 6.3.0 (rounds 1-6) — checks and prose;
progress.jsonmay now saysimplify: "revert-refused"(an optional value); a revert restores the old behaviour. - one-way: a check in a brief or plan (criteria,
Regression:, proof of red, the done line, the test lock) runs with no shell: its words reach the runner as written, so only plain words run (no quote, backslash,$, brace, or~/@at a word's start; a glob only fornode --teston Node 21 and later; no path that climbs out with..or starts at/, git included; a trailing# commentin a shell fence is dropped) with a short list of read-only options per runner — git without--outputor--no-index,node --testwith a built-in--test-reporteronly, nothing aftermake test, only paths afternpm test --; an option that writes a file or loads code is refused — a criterion that used one (git log --grep="x",pytest -k foo,pytest tests/test_*.py,jest --coverage,go test -timeout 30s) is now NOT RUN at review and not runnable on a 1.8 plan; wrap it inbash tests/<script>.sh(from 6.3.0). - two-way: the phase-model resolver text says
effortcomes only from the brief's phase signal — prose only, no code change.
Added
/trekexecuteis coupled to the gates (order 6).- Plan approval (K2):
approval-log.mjs verify --kind planbefore step 1;
not-logged,mismatch,expired,brokenanddivergedhalt with what
to do. Exit 2 is never a pass. - Step end: the step check (K9; exit 2 is "not measured") and the step's
Regression:command (K10, newlib/verification/regression-check.mjs
through the criteria runner) run green before the checkpoint. - After the last step: architecture rules (K5) and the plan-file sweep
(K6); a violation or a file no step names turnscompletedinto
partial. - The closing run reviews by itself (Phase 7.2): run the thing,
/simplify,/trekreview, verdict gate. A BLOCK adds the review's
remediation steps after the plan validator accepts them and the operator
re-approves the plan, at mostTREKEXECUTE_MAX_REVIEW_ROUNDS(3) times. - The main-merge gate is a lock on the verdict, and where the guard asks,
the executor does not ask again (one question per merge). progress.jsongains optional coupling fields (Handover 5).
- Plan approval (K2):
- Skills (orders 7a and 7b), the first three:
voyage:test-firstand
voyage:debugging, preloaded bystep-implementer, and
voyage:researching-sources, preloaded by the five web-search agents and
named by/trekresearchat spawn.lib/skills/skill-lint.mjschecks the
form;lib/skills/routing.mjsis a model-free routing test over the
skills, the 7 commands and the 21 spawnable agents (collision at 0.75 fails;
thresholds pinned). Eval casesevals/skill-*are written, not run.
Authoring method:docs/skills-authoring.md. - Release and rollback (order 8).
docs/release-runbook.md(before, the
release, both rollback paths drilled in a sandbox) and
scripts/release-check.mjs: clean tree,npm testat HEAD, review verdict
not BLOCK and covering HEAD, a### Doorslist. 0 ready, 1 not ready, 2
could not run. - Plan step rules (order 9).
Regression:— one allowlisted command,
unpiped (PLAN_STEP_REGRESSION_NOT_RUNNABLE);On failure:opens with
revert | retry | skip | escalate, orPLAN_STEP_ON_FAILURE_UNKNOWNwarns.
Minors open after the last critic round are listed for the operator, and
--extra-roundrecords the round they pick. - Tests-only steps (order 10).
PLAN_STEP_TESTS_ONLYwarns on a step
whose files are all tests;red-proof --plan/--stepreportstests_only,
and/trekexecutesends such a step to the plan instead of into fix rounds
that cannot succeed./trekplan, the plan template andplan-criticsay
the test belongs in the step that builds the behaviour.
Fixed
- The approval guard refused only a merge into main and a push in the
permission mode that shows no prompts; a tag, a publish and destructive git
went through unattended. Now every call it would ask about is refused there. - Plan-review dedup merges two findings on the same file:line with the same
content; the Jaccard threshold for every other pair is unchanged. /trekbriefStep 4c says the brief reviewer runs in the background and is
waited for.- The Phase 4 size count includes
.mjs,.cjs,.mts,.cts. criteria-runner --evidenceshows the first output line on PASS rows.- The findings schema checks
path:linecitations in finding prose against
the file;/trekreviewchecks the reviewer's whole answer and names
FINDING_PROSE_LINE_OUT_OF_RANGE. git-historiannever proposes changing a file the brief froze, and names
the remote fromgit remote -v.- The criteria runner's commands run without
NODE_TEST_CONTEXT, so a test
run insidenode --testcan no longer pass falsely. - Timing tests tolerate load (fastest of three; hook helper kill limit 30 s),
and the K2 hook tests use unique session ids per run. - The example plan's
On failure:lines use the K11 words, and its
verbose-content test moves into the step that wires the output. Steps 1-2
(golden capture, stability harness) keep their tests-only warning; a step
type for them is a later question, and step 2's heading no longer says it
must fail. - The resolver text in four commands says
effortcomes only from the
brief's phase signal. - Release review of 6.3.0 (seven rounds; rounds 1-3 BLOCK, rounds 4-7 WARN;
every finding of rounds 1-6 fixed with a test that failed first, round 7's
under Known issues): the guard refuses where
no one can be asked also when its rules will not load; review steps appended
by/trekexecuteare held to the step rules on any plan version and need a
Verify:(plan-validator --steps-from); a restore the guard refuses is
recorded asrevert-refusedand stops the run before review, never as
reverted; every check Voyage runs runs with no shell (round 5, the
operator's structural fix after the patching of the shell screen did not
converge), as plain words and each runner's read-only options; the release
check compares version files without their version, lets the README change
only in the badge's version, readsscope_sha_endas a commit sha, sees a
file moved after the review, ignores Voyage's own artifacts committed after
the review, runs the cheap checks first, stops a suite that never ends,
works for a plugin in a subdirectory and never reports a crash as "not
ready"; the plan-file sweep readsFiles:as v6.2.0 did, and the
tests-only check has its own reader, and red proof also reads the step's
diff (see Known issues); skill frontmatter and routing read YAML values, comments and tags
as YAML does;regression-checkprints the progress.json status and runs
through the criteria runner itself./trekexecutesays plainly that review
steps in the template's own form stop with a re-plan.
Known issues — for 6.3.1
The seventh round of the release review is WARN: 0 BLOCKER, 12 MAJOR, 0
MINOR. The operator chose to release 6.3.0 with it (2026-10-11); the findings
go into 6.3.1.- Tests-only steps: when red proof decides, the step's diff in the documented
flow holds only the test, so it cannot overrule the plan'sFiles:reading;
a change already in the working tree when the step started counts against
tests-only; an unbackticked file next to a backticked path inFiles:is
not read. - Red proof reports a command killed by its timeout as "could not start". The
release check calls a suite killed for too much output a timeout, and reads
--reviewfrom the current directory instead of--repo. - A trailing
# commentis dropped in a fenced check but not in a backticked
one. - The example plan's steps 1-2 keep their tests-only warning (operator
decision 2026-10-09; a step type for them is a later question). - Four cleanups: the 15-minute timeout defined in three places, a line count
read once per citation,isMaincopied into five more CLIs, and a
roundabout condition in the guard. - Found while writing the review, and present in 6.2.0 too: the findings check
ends a reviewer's json block at the first triple backtick, even one inside a
JSON string.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
3 downloads
- one-way: