voyage/lib/util
Kjell Tore Guttormsen 47864f91b4
merge: wave 1 order 4 (guards) into main
CLAUDE.md: the review paragraph (order 5) and the guards paragraph
(order 4) are both kept (planned union line).

The launch gate went red on the merged tree: post-approval-log reads
the session's permission_mode, and its regression test feeds that value.
Both were untracked when the branch ran its suite, so the gate never saw
them there. Operator decision 2026-10-06: a counted exemption in a new
class (mode-read: 3 + 1 hits), and the binding-rule sentence in CLAUDE.md
names it. An extra hit in either file turns the gate red again (checked).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 20:41:21 +02:00
..
approval-log.mjs feat(brief): ceremony by size, one question round, logged and committed approvals 2026-10-06 19:44:42 +02:00
artifact-commit.mjs feat(brief): ceremony by size, one question round, logged and committed approvals 2026-10-06 19:44:42 +02:00
atomic-write.mjs refactor(ultraplan-local): extract atomicWriteJson to lib/util 2026-05-01 20:21:15 +02:00
autonomy-gate.mjs feat(voyage)!: bulk content rewrite ultra -> voyage/trek prose [skip-docs] 2026-05-05 15:08:20 +02:00
cleanup.mjs feat(voyage)!: bulk content rewrite ultra -> voyage/trek prose [skip-docs] 2026-05-05 15:08:20 +02:00
frontmatter.mjs feat(graceful-handoff): 2.0 — migrate to skills/ with disable-model-invocation [skip-docs] 2026-05-01 05:45:26 +02:00
research-loop-cap.mjs feat(research-loop-cap): give the discovery ceiling a reader, not just a sentence 2026-08-12 23:09:11 +02:00
result.mjs feat(ultraplan-local): Spor 1 wave 1 — lib/parsers + 66 tests grønn 2026-05-01 05:35:28 +02:00
session-orders.mjs fix(execute): clear the wave record only on the main-merge gate's confirm (green) 2026-10-02 16:24:33 +02:00
test-census.mjs feat(eval): SKAL-1·4b offline gold-scored output eval 2026-06-30 09:00:33 +02:00
test-lock.mjs feat(hooks): wave-1 guards -- approval ask, plan gate, test lock, post-edit check 2026-10-06 20:09:32 +02:00