voyage/tests
Kjell Tore Guttormsen c47061191c
feat(review): the brief's threat model on the review side (decision 164, 167, 218)
The code-correctness reviewer's dimension 6 shrinks to what the engines do
not read: command, skill and agent markdown carrying shell, with Claude
Code's threshold (a concrete attack path, high confidence), the keys
SECURITY_INJECTION or SECURITY_RISK, and threat_model_ref quoting the
brief's Outside: line; the code-level bullets go to the engines.

The coordinator puts a Voyage security finding with a threat_model_ref
into the trailing JSON block's known_outside, never into findings.
review-finalize gains the pass `outside`, right after engine: it only
raises. An entry the brief at the review's brief_path does not back now
(line gone, threat model not usable, an engine finding, not a security
finding) goes back into the findings at its catalogue tier with a Source
line, R-step and raised verdict, as the engine put-back does; the rest are
listed under the new `## Outside the Threat Model` section.

verdict-gate decideOpenFindings (and so scripts/release-check.mjs)
re-checks every entry against brief_path through the new
notBackedOutside and exits 2 for one not backed. review-validator
shape-checks the optional known_outside (REVIEW_KNOWN_OUTSIDE_MALFORMED).
threat-model.mjs gains reviewThreatModel and isKnownEntry for the three.

/trekreview Phase 8.8 lists the known issues outside the threat model
(not answered, not counted); the review template shows the section and
field; Handover 1 names the optional ## Threat Model and its code,
Handover 6 names known_outside and its code.

Part 2, step 2.5 of the E plan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 09:14:47 +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 refactor(cleanup): simplify pass on the R-a diff 2026-11-07 13:31:30 +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 brief's threat model on the review side (decision 164, 167, 218) 2026-11-08 09:14:47 +01:00
review 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
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 feat(gate): the brief's threat model on the plan side (decision 164, 218, 220) 2026-11-08 09:04:08 +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