chore(release): 6.4.0 — plan_version 1.9, the trial-4 findings, session-clean tests, the converging critic loop

Version 6.4.0 in plugin.json, package.json, package-lock.json and the
README badge; the Unreleased CHANGELOG section becomes v6.4.0 with its
title unchanged, and its Doors list (all two-way) unchanged.

Release review over v6.3.1..main (a97efb6..4e28dc5, 82 files, operator
decision 52): WARN, 0 BLOCKER, 4 MAJOR, 6 MINOR, verdict gate exit 0.
Under decision 52 the four MAJOR go to Known issues, no fix round:
ef1633b6 (a dedup merge lets rule A lower a major in the changed text),
38a8ad34 (regression A also reads a mentioned plain path below 1.9),
20b626e2 and c614baad (two fail-closed exit-2 paths in the verdict gate).
Each was reproduced by running the code at HEAD before it was written
here; 38a8ad34 also against v6.3.1.

Between the review and this commit, b794958 (test-only) lets two docs
tests find the section under its release heading; its own quick review
(4e28dc5..b794958) is WARN, 0 BLOCKER, 6 MAJOR, 2 MINOR, all in test
code, verdict gate exit 0.

The session-id entry under Fixed is narrowed to what the suite does: a
test file run on its own still passes the id to a child it starts
without an env (43 such files measured).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-10-16 21:28:34 +02:00
commit db6ba1c246
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
5 changed files with 30 additions and 10 deletions

View file

@ -1,7 +1,7 @@
{ {
"name": "voyage", "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.", "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.3.1", "version": "6.4.0",
"author": { "author": {
"name": "Kjell Tore Guttormsen" "name": "Kjell Tore Guttormsen"
}, },

View file

@ -4,7 +4,7 @@ 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/). The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## Unreleased — plan_version 1.9, the trial-4 findings, session-clean tests, the converging critic loop ## v6.4.0 — 2026-10-17 — plan_version 1.9, the trial-4 findings, session-clean tests, the converging critic loop
A new plan version, 1.9, in which every path in a step's `Files:` and on its A new plan version, 1.9, in which every path in a step's `Files:` and on its
`Test first:` `File:` line stands first, in backticks, so the reader no longer `Test first:` `File:` line stands first, in backticks, so the reader no longer
@ -18,7 +18,7 @@ measured by `npm test` on the third remediation's Step 2 commit
The converging critic loop came after that measurement (decisions 43 and The converging critic loop came after that measurement (decisions 43 and
44). From round 2 the plan gate counts a critic round by rule A, and both 44). From round 2 the plan gate counts a critic round by rule A, and both
reviewers state rule B. Suite 2602 (2600 pass, 0 fail, 2 skipped), measured reviewers state rule B. Suite 2602 (2600 pass, 0 fail, 2 skipped), measured
by `npm test` on this branch. by `npm test` on `main` at `4e28dc5`, the tree this release review covered.
Nothing here asks anything of users. Older plans warn, they do not fail: a plan Nothing here asks anything of users. Older plans warn, they do not fail: a plan
below 1.9 is read as in 6.3.1, apart from the fixes under Fixed, and gets one below 1.9 is read as in 6.3.1, apart from the fixes under Fixed, and gets one
@ -99,9 +99,11 @@ warning per step whose `Files:` names a path that is not backticked.
### Fixed ### Fixed
- **The suite no longer hands the session id to the lock CLI.** `npm test` - **The suite no longer hands the session id to the lock CLI.** `npm test`
preloads a helper that removes `CLAUDE_CODE_SESSION_ID`, and every test that preloads a helper that removes `CLAUDE_CODE_SESSION_ID` for the whole run,
starts a child process passes an environment without it. A live session's and every test that spreads the process environment into a child uses a
stop guard is no longer pointed at a temp-repo lock. shared helper without it. A live session's stop guard is no longer pointed
at a temp-repo lock. A test file run on its own with `node --test` still
passes the id to a child it starts without an `env` (release review).
- **The three `Files:` regressions from 6.3.1's Known issues** give 6.3.0's - **The three `Files:` regressions from 6.3.1's Known issues** give 6.3.0's
answer again: a source file after a described test is kept, a path that a answer again: a source file after a described test is kept, a path that a
description only mentions is not read as a file, and a backticked bare name description only mentions is not read as a file, and a backticked bare name
@ -345,6 +347,24 @@ warning per step whose `Files:` names a path that is not backticked.
leaves the count without being marked resolved. This predates the critic leaves the count without being marked resolved. This predates the critic
loop's diff mode (review `4c340d4a`; deferred by operator decision 51, loop's diff mode (review `4c340d4a`; deferred by operator decision 51,
16.10). 16.10).
- A near-duplicate merge in plan dedup keeps only the survivor's place, so
rule A can lower a new major in the changed text to minor when its partner
cites an unchanged line, and the round can record PASS. 6.3.1 counted that
merge major (review `ef1633b6`; deferred by operator decision 52, 16.10).
- Below 1.9, regression A's restored reading also takes a plain slash path
that a description only mentions after a comma (`` `tests/a.test.mjs` —
covers the parser, lib/parse.mjs stays as is ``). 6.3.1 read only the test
file; now the step is no longer tests-only, and the validator warns
`PLAN_STEP_PATH_UNTICKED` on the mentioned path (review `38a8ad34`;
deferred by operator decision 52, 16.10).
- The verdict gate's brief-lowering check compares severities in upper case
only, so an engine finding written `"severity": "major"` reads as an
illegal lowering and the gate exits 2 (fail-closed) (review `20b626e2`;
deferred by operator decision 52, 16.10).
- The opt-in workflow review's floor raises an illegally lowered or marked
reviewer finding but keeps its `brief_lowered_from` and `contradicts_brief`,
so the verdict gate still exits 2 on that review (fail-closed) (review
`c614baad`; deferred by operator decision 52, 16.10).
## v6.3.1 — 2026-10-11 — Fixes from the release review of 6.3.0, and two verdict-gate holes closed ## v6.3.1 — 2026-10-11 — Fixes from the release review of 6.3.0, and two verdict-gate holes closed

View file

@ -2,7 +2,7 @@
Contract-driven Claude Code pipeline: brief, research, plan, execute, review. Agent swarms, research triangulation, adversarial review, multi-session resumption. Contract-driven Claude Code pipeline: brief, research, plan, execute, review. Agent swarms, research triangulation, adversarial review, multi-session resumption.
![Version](https://img.shields.io/badge/version-6.3.1-blue) ![Version](https://img.shields.io/badge/version-6.4.0-blue)
![License](https://img.shields.io/badge/license-MIT-green) ![License](https://img.shields.io/badge/license-MIT-green)
![Platform](https://img.shields.io/badge/platform-Claude%20Code-purple) ![Platform](https://img.shields.io/badge/platform-Claude%20Code-purple)

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{ {
"name": "voyage", "name": "voyage",
"version": "6.3.1", "version": "6.4.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "voyage", "name": "voyage",
"version": "6.3.1", "version": "6.4.0",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=18" "node": ">=18"

View file

@ -1,6 +1,6 @@
{ {
"name": "voyage", "name": "voyage",
"version": "6.3.1", "version": "6.4.0",
"private": true, "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.", "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", "type": "module",