voyage/lib/review
Kjell Tore Guttormsen d402b0088b
fix(review): the review's fix round - engines' key in rule_key, --brief only with --record, the gate's threat model from the review's work tree
The one narrow fix round after /code-review high on E (three findings of
new classes; the between-rounds findings are known issues, decision 226):

- threat-model.mjs isOwnSecurityFinding: the engines' key in rule_key is
  never Voyage's own, also when rule_keys names a key of its own (keysOf
  reads rule_keys alone when it is a list, so an entry with rule_key
  SECURITY_REVIEW_VULNERABILITY and rule_keys [SECURITY_RISK] could be
  backed, against decision 218).
- plan-gate.mjs: --brief without --record is a usage error (exit 2); the
  bare gate and --accept-open read the verdict's brief_path, and a --brief
  there was silently ignored.
- verdict-gate.mjs: the known_outside check reads the threat model from the
  answers' repo (--repo, else the review file's own work tree); with no
  work tree nothing is backed. A review outside any work tree, gated from
  another repo, was backed by that repo's brief (ALLOW).

Each with a test seen failing on an assertion first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 21:43:46 +01:00
..
coordinator-contract.mjs refactor(review): simplify pass over E (reuse, simplification, efficiency) 2026-11-08 21:27:59 +01:00
critic-diff.mjs fix(review): plan dedup ranks a merged pair by what rule B counts, so reviewer order never lowers a blocker 2026-10-16 16:46:10 +02:00
engine-compare.mjs refactor(review): simplify pass over E (reuse, simplification, efficiency) 2026-11-08 21:27:59 +01:00
engine-findings.mjs refactor(review): simplify pass over E (reuse, simplification, efficiency) 2026-11-08 21:27:59 +01:00
fill-finding-ids.mjs fix(review): one reviewer's two findings on one triplet keep a row each 2026-10-18 19:50:20 +02:00
findings-schema.mjs chore(cleanup): remove the June trials, orchestrator docs, dormant agent, caller-less code and the fix-round chain 2026-11-07 12:51:54 +01:00
instruction-scope.mjs refactor: simplify pass (trekexecute) 2026-11-04 11:29:46 +01:00
merge-evidence.mjs refactor: simplify pass (trekexecute) 2026-11-04 11:29:46 +01:00
plan-review-dedup.mjs fix(gate): part 2 verifier findings — non-object findings, carried backed copy, rule_keys, marks, approval prose, brief_path, engine put-back once 2026-11-08 10:50:20 +01:00
pre-existing.mjs feat(review): stop rule in the review rounds (decision 217, 220) 2026-11-08 07:13:07 +01:00
recurrence.mjs refactor: simplify pass (trekexecute) 2026-10-28 16:34:32 +01:00
review-answers.mjs refactor(review): simplify pass over E (reuse, simplification, efficiency) 2026-11-08 21:27:59 +01:00
review-finalize.mjs refactor(review): simplify pass over E (reuse, simplification, efficiency) 2026-11-08 21:27:59 +01:00
review-policy.mjs feat(review): a REVIEW.md policy caps and skips MINOR findings only 2026-11-02 19:43:54 +01:00
review-rounds.mjs refactor(review): simplify pass over E (reuse, simplification, efficiency) 2026-11-08 21:27:59 +01:00
reviewed-commit.mjs fix(review): R6 checks every parent of a commit after the review 2026-11-03 11:07:08 +01:00
rule-catalogue.mjs feat(review): the security engine chosen and Claude Security converted (E 3.1) 2026-11-08 13:29:59 +01:00
security-engine.mjs refactor(review): simplify pass over E (reuse, simplification, efficiency) 2026-11-08 21:27:59 +01:00
stop-rule.mjs feat(review): one shared stop rule for the plan loop and review rounds (decision 217) 2026-11-08 06:58:45 +01:00
threat-model.mjs fix(review): the review's fix round - engines' key in rule_key, --brief only with --record, the gate's threat model from the review's work tree 2026-11-08 21:43:46 +01:00
verdict-gate.mjs fix(review): the review's fix round - engines' key in rule_key, --brief only with --record, the gate's threat model from the review's work tree 2026-11-08 21:43:46 +01:00