voyage/tests/validators
Kjell Tore Guttormsen a576391e28
feat(gate): stop rule in the plan gate (decision 217, 220)
recordVerdict appends each round's summary to a new optional verdict
field `rounds` (carried from the previous verdict; newByClass null for a
round counted in full) and stores `stop_rule`; extractVerdict shape-checks
both. After a fired stop rule --record exits 1 with PLAN_GATE_STOP_RULE
and writes nothing (--extra-round included). The bare gate stops with
PLAN_GATE_STOP_RULE and the operator line in place of the open-blocker and
open-major reasons; --json and --record output carry the decision.
--accept-open after a fired stop rule is allowed with rounds left, covers
open blockers and majors (`under: "stop-rule"`), refuses a counting
security finding (PLAN_GATE_SECURITY_OPEN); the gate then warns.

Known issue fixed: REVIEW_LOG_SECTIONS drops "Adversarial Pass 2 (v5.1.1
high-effort)"; the CHANGELOG known-issue line closes and Handover 4 names
the heading list, the new fields and codes.

Existing tests updated for the planned rule: fixtures that ran a later
round after one with no fewer blocking findings now use a falling count
(plan-gate.test round cap, plan-gate-open-major lastRound, diff-mode
5/18/27 resolve two earlier majors in round 2); the diff-mode CLI pipe
case now expects PLAN_GATE_STOP_RULE (round 3: 2 blocking) after its
clean round 2.

Part 1, step 1.2 of the E plan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 07:04:48 +01:00
..
architecture-discovery.test.mjs feat(voyage)!: bulk content rewrite ultra -> voyage/trek prose [skip-docs] 2026-05-05 15:08:20 +02:00
brief-ceremony.test.mjs chore(cleanup): R-b R3 — profiles, phase signals and the effort dialog removed, one fixed path per command 2026-11-07 21:12:57 +01:00
brief-gate-coverage.test.mjs chore(cleanup): R-b R3 — profiles, phase signals and the effort dialog removed, one fixed path per command 2026-11-07 21:12:57 +01:00
brief-review-stamp-order.test.mjs fix(trekbrief): the review stamp covers only text the reviewer saw 2026-10-12 20:03:26 +02:00
brief-review-stamp.test.mjs fix(plan): every exploration agent runs; the brief is reviewed again only when it changed 2026-10-08 07:01:44 +02:00
brief-validator.test.mjs refactor(cleanup): simplify pass on R-b 2026-11-07 21:26:25 +01:00
intent-approval.test.mjs refactor(cleanup): simplify pass on R-b 2026-11-07 21:26:25 +01:00
plan-gate-diff-mode.test.mjs feat(gate): stop rule in the plan gate (decision 217, 220) 2026-11-08 07:04:48 +01:00
plan-gate-open-major.test.mjs feat(gate): stop rule in the plan gate (decision 217, 220) 2026-11-08 07:04:48 +01:00
plan-gate-stop-rule.test.mjs feat(gate): stop rule in the plan gate (decision 217, 220) 2026-11-08 07:04:48 +01:00
plan-gate.test.mjs feat(gate): stop rule in the plan gate (decision 217, 220) 2026-11-08 07:04:48 +01:00
plan-validator-parse-once.test.mjs refactor(plan): the plan validator parses each step once 2026-10-13 14:47:33 +02:00
plan-validator-v18.test.mjs fix(validate): a check that can never run is caught when the brief or plan is written 2026-10-08 06:42:33 +02:00
plan-validator.test.mjs test(r8): move the live tests out of the round files 2026-11-07 10:19:49 +01:00
plan-version-1-9.test.mjs fix(plan): a 1.9 wrapped line keeps its paths only after a comma or in an empty entry 2026-10-14 10:29:35 +02:00
progress-validator.test.mjs fix(validators): the progress validator knows stopped and blocked 2026-10-05 17:32:54 +02:00
query-privacy-gate.test.mjs fix(validators): hard-block the token formats the run-length patterns missed 2026-08-12 22:03:43 +02:00
research-validator.test.mjs feat(voyage)!: rename type discriminators across validators + fixtures [skip-docs] 2026-05-05 14:40:25 +02:00
review-validator.test.mjs fix(review): close the gate's fail-open paths an independent review found 2026-10-06 20:03:16 +02:00
runnable-checks.test.mjs chore(cleanup): R-b R3 — profiles, phase signals and the effort dialog removed, one fixed path per command 2026-11-07 21:12:57 +01:00
session-state-validator.test.mjs feat(voyage)!: bulk content rewrite ultra -> voyage/trek prose [skip-docs] 2026-05-05 15:08:20 +02:00