docs(a1): dok-resync mot verifisert virkelighet per review-2026-07

Sesjon A1 i docs/masterplan.md § Fase A. Fjerner utdaterte/usanne premisser
fra normativ tekst, med docs/review-2026-07.md som fasit. Ingen nye
design-beslutninger (de hører i A2/A5/C2); domain-packs urørt (A3).

- R-01: «v4.3 Plugin Playground» merket historisk overalt (flaten slettet i
  Voyage v5.0.0, 2026-05-12; mønstrene er arven). Drill-down redefinert til
  feature-ens voyage_run_dir-artefakter + annotate-HTML. Handover 8 og
  /trekrevise fjernet som gjeldende mønster — S5-beslutningen om «to
  gate-nivåer» faller bort; det er én, den lette.
- R-05: død annotate-/kontrakt-sti (plugins/marketplaces/…) erstattet med
  cache-sti-regel + oppslag av nyeste versjon. Sidecar-fila
  <artefakt>.review.md korrigert: den finnes ikke — annotasjoner lever i
  localStorage; eksport-til-fil er D7.
- R-09: § Flersesjons-protokoll omskrevet til STATE.md-konvensjonen;
  prototype-run/README-tabellen rettet.
- R-13: iOS-versjonseksempler gjort domene-nøytrale; HTML-invarianten
  avklart til WCAG 2.2 AA.
- R-14: fase 2s pack-input strøket (motsa pack-manifestets phases).
- R-15: max-3-regelen redefinert — snapshot = én lasting, maks 3
  supplementary utover; fase 5-inputlista rettet.
- R-16: runtime-asymmetrien omformulert til skjema-asymmetri (ingen
  runtime-kobling, Handover 1 eneste kobling, ingen privilegert produsent).
- R-06 (delvis): phase_status samlet i én autoritativ enum-tabell,
  pending-review lagt til i frontmatter-enumen; kjente avvik henvist til C2.
- R-04/R-02: § Fase 7 merket STALE (2.0-pin, stale verifikasjonsnote,
  «round-trip PASS» = mental simulering, ikke kjøring).
- R-17: CHANGELOG-referansene rettet + Unreleased-entry for denne resyncen.
- R-20: «6-tema-intervju» → «8-tema» (sjekklisten lister 8).

Verifisering: iOS 19 → 0; iOS 18 → 0; 6-tema-intervju → 0; WCAG 2.1 i
CLAUDE.md → 0; «ROADMAP, TODO» → 0; pending-review → 7; Handover
8/trekrevise og plugins/marketplaces kun i eksplisitt historisk-merkede
eller advarende treff.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJ99ZtNvvxaDPfNTED7gnC
This commit is contained in:
Kjell Tore Guttormsen 2026-08-10 20:48:01 +02:00
commit daaadb4a15
6 changed files with 97 additions and 47 deletions

View file

@ -21,13 +21,13 @@ Tier 2 i et tre-tier HTML-system. Per-app-disiplin.
| Tier | Plugin | Disiplin | Spørsmål den svarer på |
|------|--------|----------|------------------------|
| 1 | Voyage | Per-task (Plugin Playground) | Hvordan utfører vi denne oppgaven riktig? |
| 1 | Voyage | Per-task (brief → research → plan → execute → review) | Hvordan utfører vi denne oppgaven riktig? |
| 2 | app-creator (dette) | Per-app (per-app HTML) | Hva trenger appen, og hva er neste brief? |
| 3 | app-factory | Per-portefølje (portefølje-HTML) | Hvilken app trenger meg nå, og hvilken handling er nødvendig? |
app-creator er en pipeline fra app-konsept til feature-klare briefer. Voyage konsumerer briefene og leverer features. app-creator er pre-Voyage — den løser problemet "hva skal bygges" før Voyage løser "hvordan bygges det".
Hver tier har samme arkitektoniske form: AI skriver state i filer, tynt HTML rendrer dem, menneske handler i terminal. Mønsteret arvet fra Voyages v4.3 Plugin Playground.
Hver tier har samme arkitektoniske form: AI skriver state i filer, tynt HTML rendrer dem, menneske handler i terminal. Mønsteret er arvet fra Voyages v4.3 Plugin Playground — **historisk forfar: flaten ble slettet i Voyage v5.0.0 (2026-05-12), mønstrene er arven.**
## Hva app-creator skal levere
@ -53,9 +53,9 @@ Et tynt HTML-grensesnitt per app som rendrer:
- **Fase-progress** — hvor i pipelinen er appen, visuell 1-7
- **Alle artefakter** — intervju-transkript, research-notater, arkitektur-beslutninger, designsystem (med visuelle prøver), constraints, feature-backlog, alle briefer
- **Attention per app** — hva må gjøres nå (godkjenn brief, ta arkitektur-beslutning, start neste fase, review feature-backlog)
- **Drill-down til Voyage Playground** — klikk en feature → åpne v4.3-flaten for den feature-en hvis kjørt; ellers vis dens brief
- **Drill-down til feature-ens Voyage-artefakter** — klikk en feature → åpne artefaktene fra dens Voyage-kjøring (`voyage_run_dir`) og/eller annotate-HTML-filene; er den ikke kjørt, vis dens brief
HTML-grensesnittet gjenbruker v4.3-mønstre 1:1: single-file, vendored DS, polling, theme-bootstrap, WCAG.
HTML-grensesnittet gjenbruker **mønstrene** fra v4.3 Plugin Playground 1:1: single-file, vendored DS, polling, theme-bootstrap, WCAG. Selve playground-flaten finnes ikke lenger (slettet i Voyage v5.0.0) — den er forfar, ikke lenke-mål.
## Hva app-creator IKKE skal absorbere
@ -71,7 +71,9 @@ HTML-grensesnittet gjenbruker v4.3-mønstre 1:1: single-file, vendored DS, polli
app-creator skal aldri eksekvere Voyage og aldri modifisere Voyage. Briefer overleveres som markdown-filer. Voyage kjøres separat med brief-fila som input.
Voyage vet ikke om app-creator finnes, og skal ikke vite det. Briefen er ikke merket som "app-creator-generert" — den er bare en velformet Voyage-brief. Den asymmetrien er bevisst og er det som gjør at lag 1 og lag 2 kan utvikles uavhengig uten å lekke ansvar.
Asymmetrien som skal beskyttes er **skjema-asymmetrien, ikke en kunnskaps-påstand**: ingen runtime-kobling i noen retning; briefen er umerket og bare en velformet Voyage-brief; Handover 1 er eneste koblingspunkt; ingen produsent er privilegert. Det er dette som gjør at lag 1 og lag 2 kan utvikles uavhengig uten å lekke ansvar.
Voyages egen kontrakt navngir «Tier 2 `app-creator`» i en informasjonell produsent-kontekst (`HANDOVER-CONTRACTS.md`) samtidig som den slår fast at ingen produsent er privilegert og at Handover 1 er eneste kobling. Å kreve at Voyage «ikke vet om» app-creator er derfor både usant og verdiløst — kravet er at ingenting i Voyage *avhenger* av app-creator. Ikke «rett» Voyage-dokumentasjon på dette punktet (det ville brutt «aldri modifisere Voyage»).
Verktøy-agnostisk er **hard invariant** — kjerne-arkitekturen forutsetter ingen eksterne PM-verktøy. Sync-plugins er valgfri tredjepart. Se `../app-factory/docs/architecture-brief.md` for full begrunnelse.
@ -81,7 +83,7 @@ app-creator produserer briefer. Voyage konsumerer briefer. Handover er en filove
Brief-format-kontrakten er det eneste integrasjonspunktet. app-creator må produsere briefer som Voyage `/trekplan` kan konsumere uten endringer (Handover 1). Hvis Voyage endrer brief-formatet, må app-creator oppdatere sin generator — Voyage skal ikke kjenne til app-creator som downstream-konsument.
Voyages v4.3 Plugin Playground er den **arkitektoniske forfaren** for app-creators per-app HTML — samme single-file-mønster, vendored DS, polling, theme-bootstrap. app-creator gjenbruker disse 1:1.
Voyages v4.3 Plugin Playground er den **arkitektoniske forfaren** for app-creators per-app HTML — samme single-file-mønster, vendored DS, polling, theme-bootstrap. app-creator gjenbruker disse mønstrene 1:1. **Forfaren er historisk:** Voyage v5.0.0 (2026-05-12) slettet `playground/`, Handover 8 og `/trekrevise`; dagens Voyage-flate for annotering er `scripts/annotate.mjs` (per-artefakt HTML). Mønstrene er fortsatt arven — flaten er ikke noe å lenke til.
## Forholdet til app-factory
@ -102,7 +104,7 @@ app-creator vet ikke om app-factory finnes. Den eksporterer kun strukturert stat
- **Filsystem som primær state-backend** (fase-artefakter er filer)
- **Browser-state er ephemeral** — sannheten lever i filer
- **Polling, ikke websockets** — sub-30s latency er nok
- **`data-theme` med bootstrap-script + WCAG 2.1 AA-kontrast**
- **`data-theme` med bootstrap-script + WCAG 2.2 AA-kontrast** (2.2 er gjeldende W3C Rec; konsistent med fase 5 og domain-pack-ene, som alle krever 2.2 — avklart i A1, jf. R-13)
- **Markdown for alt menneske-leselig** (intervju-transkripter, arkitektur-notater, briefer)
## Arbeidsregler for Claude Code