chore(release): 6.3.0 — The executor is coupled to the review gate, three skills, and a drilled release runbook
Version 6.3.0 in plugin.json, package.json, package-lock.json and the README badge; the 6.3.0 CHANGELOG section with its Doors list and the Known issues for 6.3.1 (release review round 7: WARN, 0 BLOCKER, 12 MAJOR; the operator chose to release with it on 2026-10-11). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
45aa9e107a
commit
e86aa8ddbf
5 changed files with 156 additions and 5 deletions
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "voyage",
|
||||
"description": "Voyage — brief, research, plan, execute, review, continue. Contract-driven Claude Code pipeline. /trekbrief, /trekplan, and /trekreview each end by building a self-contained operator-annotation HTML (scripts/annotate.mjs, pencil-toggle annotation pattern): select text or click any element, pick intent (Fiks/Endre/Spørsmål), write comment, copy structured prompt, paste back, Claude revises the .md.",
|
||||
"version": "6.2.0",
|
||||
"version": "6.3.0",
|
||||
"author": {
|
||||
"name": "Kjell Tore Guttormsen"
|
||||
},
|
||||
|
|
|
|||
151
CHANGELOG.md
151
CHANGELOG.md
|
|
@ -4,6 +4,157 @@ All notable changes to this project will be documented in this file.
|
|||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
|
||||
## v6.3.0 — 2026-10-11 — The executor is coupled to the review gate, three skills, and a drilled release runbook
|
||||
|
||||
Wave 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): `/trekexecute` now 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: `/trekexecute` refuses 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: `/trekexecute` reviews 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-validator` rejects the runner's `exitCode` in `plan_verification.failed_criteria` (C15) — the executor's own prose always wrote `exit_code`.
|
||||
- two-way: skills workshop — form check, model-free routing test, `test-first` and `debugging` preloaded into `step-implementer` — new files and one `skills:` line; a revert removes them.
|
||||
- two-way: `researching-sources` skill, 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) and `On 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: `/trekreview` saves the reviewer's whole answer for the findings check and names `FINDING_PROSE_LINE_OUT_OF_RANGE` — command text.
|
||||
- two-way: the criteria runner's commands run without `NODE_TEST_CONTEXT` — a false green under `node --test` is 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.json` may now say `simplify: "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 for `node --test` on Node 21 and later; no path that climbs out with `..` or starts at `/`, git included; a trailing `# comment` in a shell fence is dropped) with a short list of read-only options per runner — git without `--output` or `--no-index`, `node --test` with a built-in `--test-reporter` only, nothing after `make test`, only paths after `npm 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 in `bash tests/<script>.sh` (from 6.3.0).
|
||||
- two-way: the phase-model resolver text says `effort` comes only from the brief's phase signal — prose only, no code change.
|
||||
|
||||
### Added
|
||||
|
||||
- **`/trekexecute` is coupled to the gates** (order 6).
|
||||
- Plan approval (K2): `approval-log.mjs verify --kind plan` before step 1;
|
||||
`not-logged`, `mismatch`, `expired`, `broken` and `diverged` halt 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, new `lib/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 turns `completed` into
|
||||
`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 most `TREKEXECUTE_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.json` gains optional coupling fields (Handover 5).
|
||||
- **Skills** (orders 7a and 7b), the first three: `voyage:test-first` and
|
||||
`voyage:debugging`, preloaded by `step-implementer`, and
|
||||
`voyage:researching-sources`, preloaded by the five web-search agents and
|
||||
named by `/trekresearch` at spawn. `lib/skills/skill-lint.mjs` checks the
|
||||
form; `lib/skills/routing.mjs` is a model-free routing test over the
|
||||
skills, the 7 commands and the 21 spawnable agents (collision at 0.75 fails;
|
||||
thresholds pinned). Eval cases `evals/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 test` at HEAD, review verdict
|
||||
not BLOCK and covering HEAD, a `### Doors` list. 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, or `PLAN_STEP_ON_FAILURE_UNKNOWN` warns.
|
||||
Minors open after the last critic round are listed for the operator, and
|
||||
`--extra-round` records the round they pick.
|
||||
- **Tests-only steps** (order 10). `PLAN_STEP_TESTS_ONLY` warns on a step
|
||||
whose files are all tests; `red-proof --plan/--step` reports `tests_only`,
|
||||
and `/trekexecute` sends such a step to the plan instead of into fix rounds
|
||||
that cannot succeed. `/trekplan`, the plan template and `plan-critic` say
|
||||
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.
|
||||
- `/trekbrief` Step 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 --evidence` shows the first output line on PASS rows.
|
||||
- The findings schema checks `path:line` citations in finding prose against
|
||||
the file; `/trekreview` checks the reviewer's whole answer and names
|
||||
`FINDING_PROSE_LINE_OUT_OF_RANGE`.
|
||||
- `git-historian` never proposes changing a file the brief froze, and names
|
||||
the remote from `git remote -v`.
|
||||
- The criteria runner's commands run without `NODE_TEST_CONTEXT`, so a test
|
||||
run inside `node --test` can 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 `effort` comes 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 `/trekexecute` are held to the step rules on any plan version and need a
|
||||
`Verify:` (`plan-validator --steps-from`); a restore the guard refuses is
|
||||
recorded as `revert-refused` and 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, reads `scope_sha_end` as 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 reads `Files:` 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-check` prints the progress.json status and runs
|
||||
through the criteria runner itself. `/trekexecute` says 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's `Files:` reading;
|
||||
a change already in the working tree when the step started counts against
|
||||
tests-only; an unbackticked file next to a backticked path in `Files:` 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
|
||||
`--review` from the current directory instead of `--repo`.
|
||||
- A trailing `# comment` is 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, `isMain` copied 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.
|
||||
|
||||
## v6.2.0 — 2026-10-08 — Intent, plan gate, step helpers, guards and a review that is a gate
|
||||
|
||||
Wave 1 of the practice build (five parallel orders, merged 2026-10-06), the
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Contract-driven Claude Code pipeline: brief, research, plan, execute, review. Agent swarms, research triangulation, adversarial review, multi-session resumption.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
|
|
|
|||
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "voyage",
|
||||
"version": "6.2.0",
|
||||
"version": "6.3.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "voyage",
|
||||
"version": "6.2.0",
|
||||
"version": "6.3.0",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "voyage",
|
||||
"version": "6.2.0",
|
||||
"version": "6.3.0",
|
||||
"private": true,
|
||||
"description": "Voyage — brief, research, plan, execute, review, continue. Contract-driven Claude Code pipeline. /trekbrief, /trekplan, and /trekreview each end by building a self-contained operator-annotation HTML (scripts/annotate.mjs, pencil-toggle annotation pattern): select text or click any heading/paragraph/list-item, pick intent (Fiks/Endre/Spørsmål), write comment, copy structured prompt, paste back, Claude revises the .md.",
|
||||
"type": "module",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue