From a6e2f2691378dd22864d39dda1d8767a23c81518 Mon Sep 17 00:00:00 2001 From: Kjell Tore Guttormsen Date: Fri, 29 May 2026 20:29:51 +0200 Subject: [PATCH] chore(voyage): consolidate continuity into STATE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove REMEMBER.md / TODO.md / ROADMAP.md / NEXT-SESSION-PROMPT.local.md mechanisms per ~/.claude/CLAUDE.md (2026-05-26 rule): the three layers are STATE.md + auto-memory + plugin-CLAUDE.md; local mechanisms are abolished and consolidated into the layers + git + docs/-reference. - .gitignore: drop REMEMBER.md / TODO.md / ROADMAP.md entries; add STATE.md (gitignored — overskrives ved sesjonsslutt, lokal state-of-play). - CLAUDE.md: cross-cutting-invariant note now points to STATE.md instead of ROADMAP.md (linter update, same theme). Forward-looking version specs (v5.2 TDD, v5.3 sesjons-konsolidering, v5.4 brief-format public contract, v5.5 brief framing alignment) lived in the gitignored ROADMAP.md and are NOT recoverable from git. If reactivated they go through the brief→plan pipeline (proper Voyage discipline anyway). Co-Authored-By: Claude Opus 4.7 --- plugins/voyage/.gitignore | 6 +++--- plugins/voyage/CLAUDE.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/voyage/.gitignore b/plugins/voyage/.gitignore index 82487ef..b494b59 100644 --- a/plugins/voyage/.gitignore +++ b/plugins/voyage/.gitignore @@ -18,9 +18,9 @@ blob-report/ # Local configuration / session files *.local.* -REMEMBER.md -TODO.md -ROADMAP.md + +# STATE.md — current state-of-play (overskrives ved sesjonsslutt, gitignored per ~/.claude/CLAUDE.md). +STATE.md # Local planning docs (briefs, design notes, observations) — never committed. # Existing tracked files in docs/ predate this rule; new planning docs stay local. diff --git a/plugins/voyage/CLAUDE.md b/plugins/voyage/CLAUDE.md index 26c9d74..dad4d5c 100644 --- a/plugins/voyage/CLAUDE.md +++ b/plugins/voyage/CLAUDE.md @@ -8,7 +8,7 @@ Voyage — a contract-driven Claude Code pipeline: brief, research, plan, execut > **Trinity context (2026-05-13, informational).** Voyage is Tier 1 (per-task) of a three-tier architecture in active design under the author's private marketplace: Tier 2 `app-creator` (per-app — "what does the app need, what's the next brief?") produces briefs Voyage consumes; Tier 3 `app-factory` (per-portfolio — "which app needs me now?") aggregates state across multiple app-creator instances. Both are pre-implementation and will ship to Forgejo when ready. **Asymmetry is a hard invariant:** Voyage stays unaware of Tier 2/3. Handover 1 (brief format) is the only integration point — any compatible producer can feed Voyage, app-creator is not privileged. Brief-schema changes are therefore breaking changes for downstream consumers, formalized as a public contract in v5.4. -> **Cross-cutting invariant: brief framing must match operator intent (2026-05-15).** Etablert etter residiv. Briefen er pipelinens source of truth; operatørens intent lever i hodet + i memory-filer (`feedback_*`, `project_*`); pipelinen tvinger ikke alignment. Høyere reasoning-kraft polerer feil premiss istedenfor å utfordre det. **Tre lag av forsvar (input-siden), alle BLOCKER ved brudd når v5.5 shipper:** (1) eksplisitt `framing: preserve|refine|replace|new-direction` i brief-frontmatter, `AskUserQuestion`-validert før brief-prosa skrives; (2) memory-alignment check som ny dimensjon i `brief-reviewer` — sammenlikner brief-prosa mot relevante memory-filer og rapporterer eksplisitte motsigelser; (3) obligatorisk `## TL;DR`-seksjon (≤ 5 linjer) øverst i `brief.md`. Implementeres i v5.5 — se [ROADMAP.md](ROADMAP.md). Inntil shipping: operatør må manuelt sjekke at briefens framingord ikke motsier intent, særlig etter avvist iterasjon hvor "delta fra forrige" er en farlig default-ankring. +> **Cross-cutting invariant: brief framing must match operator intent (2026-05-15).** Etablert etter residiv. Briefen er pipelinens source of truth; operatørens intent lever i hodet + i memory-filer (`feedback_*`, `project_*`); pipelinen tvinger ikke alignment. Høyere reasoning-kraft polerer feil premiss istedenfor å utfordre det. **Tre lag av forsvar (input-siden), alle BLOCKER ved brudd når v5.5 shipper:** (1) eksplisitt `framing: preserve|refine|replace|new-direction` i brief-frontmatter, `AskUserQuestion`-validert før brief-prosa skrives; (2) memory-alignment check som ny dimensjon i `brief-reviewer` — sammenlikner brief-prosa mot relevante memory-filer og rapporterer eksplisitte motsigelser; (3) obligatorisk `## TL;DR`-seksjon (≤ 5 linjer) øverst i `brief.md`. Implementeres i v5.5 (tracket i `STATE.md` § NESTE STEG når aktivt). Inntil shipping: operatør må manuelt sjekke at briefens framingord ikke motsier intent, særlig etter avvist iterasjon hvor "delta fra forrige" er en farlig default-ankring. ## Commands