voyage/lib/validators
Kjell Tore Guttormsen 74f75dcb7d
feat(brief): optional threat model in the brief (decision 164, 218)
A brief may carry an optional `## Threat Model` with one line per bullet,
`- Inside: <text>` or `- Outside: <text>`. Present and malformed (no such
bullet, another label or form, empty text, two sections) is
BRIEF_THREAT_MODEL_MALFORMED; absent is today's rule. No brief_version bump
(the ceremony / artifact_store precedent). Sections are found fence- and
comment-aware through intent-approval's new sectionTexts, so the validator
and the hash count the same sections; brief-validator exports
parseThreatModel for the reader.

The intent hash covers `## Threat Model` when present (two sections -> null
hash, as Intent and Goal), so an edited, added or removed threat model
makes the approval stale; a brief without one hashes exactly as before. The
stale message and the /trekplan halt table name the section.

/trekbrief offers the section in its question round when the task touches
a guard, a gate, untrusted input, secrets or publishing, writes it only
when given, shows it verbatim at the Phase 4h approval, and --approve reads
it out. The template documents it; brief-gate-coverage pairs the new code.

Part 2, step 2.1 of the E plan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 08:47:51 +01:00
..
architecture-discovery.mjs fix: round 7 of the release review of 6.3.0, for 6.3.1 2026-10-11 09:11:57 +02:00
brief-review-stamp.mjs fix: round 7 of the release review of 6.3.0, for 6.3.1 2026-10-11 09:11:57 +02:00
brief-validator.mjs feat(brief): optional threat model in the brief (decision 164, 218) 2026-11-08 08:47:51 +01:00
intent-approval.mjs feat(brief): optional threat model in the brief (decision 164, 218) 2026-11-08 08:47:51 +01:00
plan-gate.mjs fix(gate): part 1 verifier findings — stop-rule wording, guard tests, unreadable round 2026-11-08 07:39:00 +01:00
plan-validator.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
progress-validator.mjs fix: round 7 of the release review of 6.3.0, for 6.3.1 2026-10-11 09:11:57 +02:00
query-privacy-gate.mjs chore(cleanup): R-b R2 — STORM loop, cap hook and the --engine research choice removed 2026-11-07 20:32:38 +01:00
research-validator.mjs fix: round 7 of the release review of 6.3.0, for 6.3.1 2026-10-11 09:11:57 +02:00
review-validator.mjs refactor: simplify pass (trekexecute) 2026-11-03 12:48:04 +01:00
session-state-validator.mjs fix: round 7 of the release review of 6.3.0, for 6.3.1 2026-10-11 09:11:57 +02:00