voyage/tests
Kjell Tore Guttormsen cb7c13b408
feat(review): the security engine chosen and Claude Security converted (E 3.1)
lib/review/security-engine.mjs (decisions 175, 196, 219):
- choose: Claude Security when available and base..head has committed
  changes; else /security-review when origin/HEAD resolves and
  origin/HEAD...HEAD is non-empty; else no engine (no-engine, no-origin,
  empty-diff), which is "not measured", never 0. A git failure or bad
  usage is exit 2, never a reason.
- convert: reads the newest CLAUDE-SECURITY-<ts>/ report whose stamp is a
  changes scan of exactly base..head; confidence high becomes engine
  findings through toReviewerPayload, the rest go to below_threshold and
  never into findings. An unverified scan, missing researcher counts,
  fewer researchers returned than dispatched, an empty diff or scope, or
  a malformed record is exit 2.
- NO_ENGINE_REVIEWER: with no engine chosen the expected reviewer
  security-engine never reports, so the verdict gate exits 2.

ENGINES gains claude-security (its own reviewer and brief_ref, the
engines' key) with a per-engine label for the written action; it is a
security engine in isSecurityFinding, RAN_ENGINES, the coordinator
contract (out-of-scope and brief-conflict rules) and the coordinator
prose; engine:below-threshold is an unverified reason fed like
engineOutOfScope. Pins of the changed coordinator prose follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 13:29:59 +01:00
..
commands docs(cleanup): R-b CHANGELOG, scope-aware full swarm, stale wording 2026-11-07 21:16:47 +01:00
fixtures 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
helpers feat(review): the security engine chosen and Claude Security converted (E 3.1) 2026-11-08 13:29:59 +01:00
hooks chore(cleanup): R-b R2 — STORM loop, cap hook and the --engine research choice removed 2026-11-07 20:32:38 +01:00
lib feat(review): the security engine chosen and Claude Security converted (E 3.1) 2026-11-08 13:29:59 +01:00
review feat(review): the security engine chosen and Claude Security converted (E 3.1) 2026-11-08 13:29:59 +01:00
scripts chore(cleanup): R-b R2 — STORM loop, cap hook and the --engine research choice removed 2026-11-07 20:32:38 +01:00
validators fix(gate): the threat model applies to new findings only (decision 221) 2026-11-08 12:17:57 +01:00
e2e-fix-round-4-5b2-a.sh fix(hooks): the args-heredoc guard blocks a heredoc operator a second shell would read, with a bypass corpus 2026-11-02 09:57:28 +01:00
guard-bypass-corpus-4-5b2-a.sh fix(hooks): the args-heredoc guard blocks a heredoc operator a second shell would read, with a bypass corpus 2026-11-02 09:57:28 +01:00