voyage/lib/review
Kjell Tore Guttormsen 5cb2918baa
feat(review): the critic's own security key SECURITY_RISK (decision 167)
lib/review/rule-catalogue.mjs gains SECURITY_RISK (BLOCKER, category
security, memory route rule): Voyage's own security key for a finding by
its own reviewers that SECURITY_INJECTION does not cover.
SECURITY_REVIEW_VULNERABILITY is described as the engines' key only.
plan-critic and scope-guardian name SECURITY_INJECTION or SECURITY_RISK
and no longer the engines' key.

The count moves from 17 to 18 in every pin: rule-catalogue.test,
claude-md-scope [CAT] (which now also refuses a stale 17), doc-consistency,
review-prose-pins, docs/architecture.md and the two reviewer agents.
critic-severity-rules pins three security keys; its "every security key
named" check leaves out the engines' key, and a new pin says the critic
never names it.

Existing tests changed for the planned rule: the four count pins above
(17 -> 18), and critic-severity-rules' two-key test (now three keys).
tests/lib/engine-findings.test.mjs: a comment naming the "(17 keys)" pin
now says 18.

Part 2, step 2.3 of the E plan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 08:55:34 +01:00
..
coordinator-contract.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
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(cleanup): simplify pass on the R-a diff 2026-11-07 13:31:30 +01:00
engine-findings.mjs fix: close the gaps the review of the trial-5 fixes found 2026-10-18 20:11:08 +02: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(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
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): stop rule in the review rounds (decision 217, 220) 2026-11-08 07:13:07 +01:00
review-finalize.mjs refactor: simplify pass (trekexecute) 2026-11-03 12:48:04 +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(gate): part 1 verifier findings — stop-rule wording, guard tests, unreadable round 2026-11-08 07:39:00 +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 critic's own security key SECURITY_RISK (decision 167) 2026-11-08 08:55:34 +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 feat(review): one reader of the brief's threat model (decision 164, 218) 2026-11-08 08:51:04 +01:00
verdict-gate.mjs refactor: simplify pass (trekexecute) 2026-11-04 11:29:46 +01:00