voyage/lib
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
..
parsers fix(cleanup): R-b review round — retired flags in the prose parsers 2026-11-07 21:36:13 +01:00
review fix(gate): part 1 verifier findings — stop-rule wording, guard tests, unreadable round 2026-11-08 07:39:00 +01:00
skills refactor(cleanup): simplify pass on the R-a diff 2026-11-07 13:31:30 +01:00
util 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(brief): optional threat model in the brief (decision 164, 218) 2026-11-08 08:47:51 +01:00
verification 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