voyage/lib/review
Kjell Tore Guttormsen 3be2bd3386
fix(review): an engine finding raised again outside findings stays counted (decision 222)
A Claude Security finding counted at confidence high in round N that Claude
Security raises again at a lower confidence in round N+1 landed in that
payload's below_threshold, never in findings. Finalize passed only findings
to carry, the engine was in ran.engines, so the round-N finding was marked
resolved and the verdict fell from BLOCK to WARN (part 3 verifier, F1).

carry takes a new option, raised: the engine entries a round raised outside
findings. A previous engine finding that no current finding matches stays
carried, never resolved, when an entry of its own engine matches it (the
same file, then the same rule_key or content overlap); each entry holds at
most one previous finding. Without the option carry behaves as before.
Finalize's carry pass builds raised from every engine payload's
below_threshold and out_of_scope, the engine taken from the payload's
reviewer, never from the entry.

The carry rule is restated in the review-rounds and review-finalize headers,
/trekreview's round prose and Handover 6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 18:22:49 +01:00
..
coordinator-contract.mjs feat(review): the security engine chosen and Claude Security converted (E 3.1) 2026-11-08 13:29: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 feat(review): the security engine chosen and Claude Security converted (E 3.1) 2026-11-08 13:29:59 +01:00
engine-findings.mjs feat(review): the security engine chosen and Claude Security converted (E 3.1) 2026-11-08 13:29: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 feat(review): the security engine chosen and Claude Security converted (E 3.1) 2026-11-08 13:29:59 +01:00
review-finalize.mjs fix(review): an engine finding raised again outside findings stays counted (decision 222) 2026-11-08 18:22:49 +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 fix(review): an engine finding raised again outside findings stays counted (decision 222) 2026-11-08 18:22:49 +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 feat(review): the security engine chosen and Claude Security converted (E 3.1) 2026-11-08 13:29: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(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
verdict-gate.mjs feat(review): the brief's threat model on the review side (decision 164, 167, 218) 2026-11-08 09:14:47 +01:00