- review-2026-07.md: uavhengig Fable 5-review (19 funn, 1 BLOCKER/8 MAJOR, M1-M11 avgjort, verifiseringslogg) committet som levert - masterplan.md: promotert fra replan-proposed.md (status FORSLAG -> AKTIV); sesjonsko A-F til v1.0.0, B1 (reell round-trip) foran videre brief-produksjon - roadmap.md: markert erstattet av masterplanen; revideres i sesjon A1 - STATE.md (local-only, gitignored): overskrevet fra STATE-proposed.md; NESTE = sesjon A1 (dok-resync). STATE-proposed.md slettet etter promotering Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GD2GDkdMZsNWy2hoiGjeLR
49 KiB
Uavhengig kryssmodell-review av app-creator
Reviewer: Fable 5 (xhigh) · Dato: 2026-07-10 · Oppdrag: fable-review-prompt.local.md
Metode: Alt arbeid under er skrevet av Opus 4.8; hver påstand i repoet og i oppdragets orientering er behandlet som premiss, ikke fakta, og verifisert mot disk, søsterrepoer og web. Hvert funn har fil:linje- eller kommando-belegg og et konkret feilscenario. Verifiseringslogg nederst.
Skrivedisiplin: Dette dokumentet, replan-proposed.md og STATE-proposed.md er de eneste filene skrevet. Ingen live-filer er endret.
Sammendrag
Repoets kjerneidé — fase-pipeline fra app-konsept til Voyage-briefer, filhandover, human-in-the-loop — står seg. Prototypen har levert reell, brukbar empiri. Men design-dokumentasjonen har råtnet mot to bevegelige mål den selv utpekte som kritiske: Voyage (som har flyttet seg fem minor-versjoner og slettet flaten app-creator bygger drill-down på) og sin egen prototype (hvis viktigste lærdommer fra S14–S15 aldri nådde friksjonsloggen). I tillegg er den mest siterte suksesspåstanden — «Voyage strict-mode round-trip-test PASS» — en mental simulering, aldri en kjøring. Ingen Voyage-kjøring har startet; voyage_running: 0.
De tre alvorligste realitetene:
- Drill-down-leveransen er udefinert. Voyage v5.0.0 (2026-05-12) slettet
playground/, Handover 8 og/trekrevise. Fire app-creator-filer og begge app-factory-briefene bygger fortsatt på dem. (R-01) - Fase 7-templaten er pinnet til en kontraktversjon to skjemaversjoner bak, midt i kontraktens dokumenterte «producer-elective»-hull — og handoverens operasjonelle inngang (
How to continuemed--project) peker på en katalog som ikke finnes. Voyage ville likevel ikke avvist F-001-briefen (M2 delvis felt). (R-02, R-03) - Reviewens eget instrument er upålitelig: friksjonsloggen stopper 26 kalenderdager og 8 sesjoner før virkeligheten, og versjonsdisiplinen for domain-packs brøt ved første reelle test (tre ulike pack-versjoner i omløp: 0.1.0 / 0.2.0 / «0.2.1»). (R-08, R-12)
Ingen av disse er dødelige. Alle er reparerbare med dokumentarbeid + én tidlig, reell round-trip. Re-planen (replan-proposed.md) starter der.
Mistanke-oppgjør (M1–M11)
Orienteringens elleve mistanker, felt eller bekreftet uavhengig:
| # | Verdikt | Belegg | Funn |
|---|---|---|---|
| M1 | Bekreftet — og verre | Voyage CHANGELOG.md:499-505 («Breaking. /trekrevise is removed. The playground/ directory, Handover 8 … gone», v5.0.0, 2026-05-12); ls playground/ → finnes ikke. Utover M1: phase-design-draft.md:882,938 foreskriver Handover 8 + /trekrevise som gjeldende Voyage-mønster. |
R-01 |
| M2 | Delvis felt / nyansert | framing + ## TL;DR er påkrevd kun ved brief_version ≥ 2.2 (HANDOVER-CONTRACTS.md:76,79,103); 2.0-briefer er eksplisitt gyldige (N-1-vindu, :46,:105). Papir-round-trip av F-001 rev 6: PASS på 5.9.1. Voyage ville ikke avvist. Men templaten er to versjoner bak, i kontraktens dokumenterte forsvars-hull. |
R-02 |
| M3 | Bekreftet — og eskalert | Flat grense står (phase-design-draft.md:21,62,211,581); målt 1830→4523 ord. Revisjonslogg-i-artefakt gjør fase 7-filer ubegrensede: F-001 brief.md er nå 4523 ord (wc -w), 9× grensen. |
R-07 |
| M4 | Bekreftet | friksjon.md siste entry #15/S13 (2026-05-14, friksjon.md:449-499); Akashic state.json:88-94 viser S14b–g + S15 med design-relevante lærdommer som aldri ble logget. |
R-08 |
| M5 | Bekreftet (orienteringens linjenumre delvis feil) | «iOS 18/iOS 19» på phase-design-draft.md:315,386,524,625 (grep); domain-pack-spec.md:158 korrigerer eksplisitt. Eksternt verifisert: iOS 26 gjeldende, iOS 19–25 finnes ikke, iOS 27 GA ~sept 2026. |
R-13 |
| M6 | Bekreftet | Fase 2 gis pack-input på phase-design-draft.md:423; utelatt i :66, tabellen :70-77, domain-pack-spec.md:9,99-106, ios-app/pack.json:7 (phases: [1,3,4,5,6,7]). |
R-14 |
| M7 | Bekreftet — og verre | Frontmatter-enum :204 (4 verdier, mangler pending-review); state.json-spec :934 (6 strenger + 2 objektformer); Akashic bruker i praksis en tredje form ingen spec dekker (state.json:13-14). |
R-06 |
| M8 | Bekreftet | annotate.mjs:933-934 skriver kun <input>.html; annotasjoner i localStorage (5 treff). find-søk: null .review.md i Akashic. Sidecar refereres normativt i phase-design-draft.md:58,903,926-931,1021,1042-1048. |
R-05 |
| M9 | Bekreftet på papir — de facto omgått | Fase 5-input :596 + 3 core-checklists + gotchas.md = 4 filer > max-3 (:68, spec :108). Akashic leste i praksis snapshotet (alle 5 core-filer i ett dokument) — regelen er både brutt og meningsløs slik den står. |
R-15 |
| M10 | Bekreftet | CHANGELOG.md:8 refererer «ROADMAP, TODO»; TODO.md finnes ikke (find), roadmap heter docs/roadmap.md. |
R-17 |
| M11 | Bekreftet | git remote -v → tom. 25 commits, aldri pushet. |
R-18 |
Orienteringens småfeil, for ordens skyld: repoet har 42 tracked filer (git ls-files | wc -l), ikke 41; ios-app-packen har 18 filer, ikke 16; pack-versjonen på disk er 0.2.0, ikke 0.2.1 (se R-12).
Akse 1 — Premiss- og kontrakt-integritet mot ekstern virkelighet
R-01 [BLOCKER] Den arkitektoniske forfaren er slettet; drill-down-leveransen er udefinert; døde kontraktsreferanser i normativ tekst
Belegg: Voyage v5.0.0 (2026-05-12) fjernet playground/, Handover 8, /trekrevise og anchor-/revisjonsbibliotekene (voyage/CHANGELOG.md:499-505). Erstatningen er scripts/annotate.mjs (v5.0.2, CHANGELOG.md:443-449) — per-artefakt annoterings-HTML, ikke en playground-flate. Gjeldende Voyage: 5.9.1 (plugin.json:4).
Rammet tekst som fortsatt behandler det slettede som eksisterende:
docs/roadmap.md:25(v0.4.0-boks: «drill-down til Voyage Plugin Playground») og:38CLAUDE.md:24,30,56,58,84(«klikk en feature → åpne v4.3-flaten»),README.md:19phase-design-draft.md:882(foreskriver «Voyages anchor-format (Handover 8)» medANN-NNNN+annotation_digestfor fase 7-briefer) og:938(«scripts/annotate.mjs+/trekrevise-flyten, Handover 8»)- Utenfor skrivemandatet, men rammet:
app-factory/docs/architecture-brief.md:26,66-68,75,125,133(«Tier 1 (Voyage v4.3): under utvikling per Voyages egen roadmap» — flaten er tvert imot slettet) ogalignment-brief.md:112
Feilscenario: En Opus-sesjon som implementerer per-app HTML per roadmap-boksen leter etter en playground-flate å lenke til, finner ingen, og enten (a) stopper, eller (b) finner på en kobling (generere Voyages HTML selv, kjøre Voyage) som bryter «aldri eksekvere Voyage»-invarianten. En sesjon som følger :882 produserer anchor-kommentarer og digests ingen Voyage-versjon lenger konsumerer.
Foreslått fiks: (1) Merk «v4.3 Plugin Playground» som historisk forfar overalt (mønstrene — single-file, vendored DS, polling, theme — er fortsatt arven; flaten er borte). (2) Redefiner drill-down: klikk en feature → åpne dens voyage_run_dir-artefakter og/eller annotate-HTML-filer; ellers vis briefen. (3) Fjern Handover 8-/trekrevise-referansene fra normativ tekst. (4) Foreslå (ikke utfør) tilsvarende synk i app-factory-briefene. → Sesjon A1/A7/E1 i re-planen.
R-02 [MAJOR] Fase 7-templaten er to kontraktversjoner bak og sitter i kontraktens dokumenterte forsvars-hull; verifikasjonspåstanden er stale
Belegg: phase-design-draft.md:780 hevder formatet er «verifisert mot Voyage-kildekode 2026-05-11» og pinner brief_version: "2.0" (:786). Gjeldende kontrakt er 2.2 (HANDOVER-CONTRACTS.md:13,63): v5.1 innførte 2.1 (sequencing-gate: phase_signals ELLER phase_signals_partial påkrevd ved ≥2.1, :95), v5.5 innførte 2.2 (framing-enum + ## TL;DR påkrevd ved ≥2.2, :76,79,103). Voyages egen templates/trekbrief-template.md:3 emitterer 2.2. Kontrakten sier eksplisitt at hullet templaten sitter i er kjent: «any producer can sidestep the entire defense — deliberately or by shipping a legacy template — simply by declaring brief_version: "2.1"» (:105), og at remedien er «require upstream producers to emit brief_version: "2.2"» — formulert med adresse: «downstream producers (e.g. a Tier-2 per-app producer) that emit brief_version: "2.2" MUST also emit framing + ## TL;DR» (:103).
Papir-round-trip F-001 rev 6 mot 5.9.1-validatoren, felt for felt: type: trekbrief ✓ · brief_version: "2.0" ✓ (gyldig under N-1) · created ✓ · task ✓ · slug ✓ · project_dir ✓ format · research_topics: 1 ✓ · research_status: pending ✓ · state-machine (topics>0 ∧ skipped ⇒ partial) ikke trigget ✓ · sequencing-gate trigger kun ≥2.1 ✓ · framing-gate trigger kun ≥2.2 ✓ · ukjente frontmatter-nøkler (app-creator-interne felter) tolereres eksplisitt (:46) ✓ · ingen nestede dicts ✓ · body ## Intent/## Goal/## Success Criteria ✓. Resultat: PASS, også strict. M2s «hva ville Voyage avvise?» har svaret: ingenting — i dag.
Feilscenario (to retninger): (a) Generatoren blir stående på 2.0: hver app-creator-brief omgår hele framing-alignment-forsvaret Voyage bygget i v5.5, og ryker den dagen Voyage fjerner legacy-stier i neste major (:101). (b) En sesjon «oppdaterer til gjeldende kontrakt» naivt: bump til 2.1 uten phase_signals → BRIEF_V51_MISSING_SIGNALS strict-halt; bump til 2.2 uten framing+TL;DR → BRIEF_MISSING_FRAMING/BRIEF_MISSING_SECTION strict-halt. Begge feiler først ved neste reelle /trekplan, med kostnaden hos operatøren.
Foreslått fiks: Beslutt 2.2 som mål (anbefalt). Design: framing-avledningsregel for fase 7 (brief avledet av operatør-godkjent backlog ⇒ normalt preserve; ved revisjon av eksisterende feature ⇒ refine), ## TL;DR-generering (≤5 linjer), phase_signals-strategi (settes av generatoren eller phase_signals_partial: true), re-datert verifikasjonsnote med kontraktversjon. → Sesjon A5, testet i B1.
R-03 [MAJOR] Handoverens operasjonelle inngang er brutt: How to continue peker på en project_dir som ikke finnes
Belegg: F-001 brief.md:306-317 instruerer /trekresearch --project .claude/projects/2026-05-13-sun-position/ …, /trekplan --project …, /trekexecute --project …. Kontraktens project-dir-modus forventer briefen på .claude/projects/{date}-{slug}/brief.md (HANDOVER-CONTRACTS.md:54-55). Katalogen finnes verken i Akashic-repoet eller ~/.claude/projects/ (ls begge → finnes ikke), og ingen mekanikk i phase-design-draft.md legger briefen der. Draftens egen operatør-flyt (:777) bruker loose-modus (--brief <sti>) — men kun for /trekplan, og F-001s egne instruksjoner gjør det ikke.
Feilscenario: Operatøren limer inn How to continue fra den «Voyage-klare» briefen → BRIEF_NOT_FOUND-halt på første kommando. Papir-round-tripen (friksjon #14:402) fanget ikke dette fordi den validerte skjema, ikke invokasjonssti.
Foreslått fiks: Definér handover-mekanikken eksplisitt i § Fase 7: enten (a) loose-modus konsekvent (--brief features/{NN}-{slug}/brief.md) også for research, eller (b) et kopieringssteg («operatør kopierer brief.md til {project_dir} før kjøring») som del av handoveren. Verifiseres i den reelle round-tripen. → Sesjon A5 + B1.
R-04 [MAJOR] «Round-trip-test PASS» er en papirpåstand som siver oppover som fakta; research.md-konsum er en utestet antakelse om Voyage-adferd
Belegg: Friksjon #14:402: «Voyage strict-mode round-trip-test PASS: Mental simulering av /trekplan --brief …». Akashic state.json:85 (S12-loggen): «Voyage strict-mode round-trip-test PASS» — uten simulerings-forbeholdet. voyage_running: 0, shipped: 0 (state.json:61-67): ingen Voyage-kommando har noensinne konsumert en app-creator-brief. Roadmap-forutsetning #3 (roadmap.md:13, «round-trip-testet på reell brief») er uinnfridd. I tillegg antar F-001 brief.md:131 at «Voyage konsumerer den fila [research.md] som primær-input til /trekresearch» — ingen Handover-kontrakt omtaler en produsent-levert research.md (Handover 2 er Voyages egne research-filer i {project_dir}, HANDOVER-CONTRACTS.md:131-133), og fila ligger i features/01-sun-position/, utenfor project_dir.
Feilscenario: v0.4.0-kontraktlåsing skjer på papir-PASS; første reelle kjøring avslører sti-/konsum-gap (R-03, research.md-antakelsen), og «låst» format må brytes opp igjen — nøyaktig det låsingen skulle forhindre.
Foreslått fiks: Reell round-trip på F-001 (/trekresearch for AQ-001 + /trekplan) som egen, tidlig sesjon — den krever ingen signert build og er uavhengig av Apple-portalen. Observer hva Voyage faktisk gjør med research.md. → Sesjon B1, foran all videre brief-produksjon.
R-05 [MAJOR] Review-gaten hviler på en ukontraktfestet Voyage-intern fil — og den dokumenterte kommando-stien er allerede død
Belegg: Review-gaten er «adoptert 1:1» fra scripts/annotate.mjs (phase-design-draft.md:936-958; operatør-direktiv i STATE.md:16-20). annotate.mjs er ikke del av noen Handover-kontrakt — Handover 1 er «the only public integration boundary» (HANDOVER-CONTRACTS.md:46). Voyage har dokumentert vilje til å slette interne flater uten varsel: playground (v5.0.0), render-artifact.mjs (v5.0.1 — slettet dagen etter innføring), /playground-invokasjonen (v5.0.2 — samme). Første konsekvens har allerede inntruffet: den dokumenterte stien ~/.claude/plugins/marketplaces/ktg-plugin-marketplace/plugins/voyage/scripts/annotate.mjs (STATE.md:20, phase-design-draft.md:950, tilsv. :865 for kontrakts-stien) finnes ikke (test -f → FINNES IKKE); den installerte pluginen ligger i ~/.claude/plugins/cache/ktg-plugin-marketplace/voyage/5.9.1/. Akashic-snapshotet oppgir en tredje rot (00-context/domain-pack-ios-app.md:6: …/marketplaces/ktg-privat/plugins/app-creator/…).
Feilscenario: Neste sesjon følger STATE.md-ens obligatoriske review-gate-kommando → ENOENT → improvisasjon under tidspress. På lengre sikt: Voyage v6 endrer annotate.mjs → hele gate-mekanikken (og dermed operatør-direktivet) dør uten varsel.
Foreslått fiks: (1) Kortsiktig: kanonisk sti-referanse via cache (…/cache/ktg-plugin-marketplace/voyage/<nyeste>/scripts/annotate.mjs), dokumentert ett sted. (2) Strukturelt: vendor en kopi av annotate.mjs inn i app-creator (self-contained .mjs, zero deps — forenlig med alle invarianter; «aldri modifisere Voyage» berøres ikke av å kopiere fra den), med notat om opphavsversjon og resync-rutine. Se også Akse 3, angrep 1. → Sesjon A1 (sti), D7 (vendoring — operatør-beslutning).
R-13 [MINOR] Ekstern versjonering: pack-ene holder; utkastet og HTML-invarianten spriker
Belegg (web-verifisert 2026-07-10 av hovedsesjon + kryssbekreftet av uavhengig research-agent; kilder i verifiseringsloggen): iOS 26 er gjeldende (iOS 19–25 finnes ikke; siste stabile punktversjon 26.5.2, 2026-06-29 — 26.6 er kun beta). iOS 27 annonsert WWDC juni 2026; offisiell utgivelse «this fall» — september-dato er presse-estimat, ikke Apple-bekreftet. Pack-ens drift-prognose i domain-pack-spec.md:198 traff. Xcode: siste stabile 26.6 (25. juni 2026); STATE.md-ens «Xcode 26.5» var plausibel i mai, nå datert. App Store-byggekravet i ios-app/pack.json:10 («build-krav siden 2026-04-28» — Xcode 26+/iOS 26 SDK) er uavhengig bekreftet mot Apple Developer Upcoming Requirements. MASVS 2.1.0 (jan 2024) fortsatt gjeldende. WCAG 2.2 gjeldende Rec (nå også ISO/IEC 40500:2025); WCAG 3.0 er Working Draft, Rec tidligst ~2029. ios-app/pack.json:8-11 er altså korrekt per sin verified-dato. Sprikene: «iOS 18/iOS 19» i phase-design-draft.md:315,386,524,625 (M5) og «WCAG 2.1 AA-kontrast» som HTML-invariant (CLAUDE.md:105, app-factory/docs/architecture-brief.md:103) mot WCAG 2.2 AA i fase 5 og pack-ene.
Feilscenario: Neste app som bruker fase 1-templaten arver «{iOS 18 / iOS 19}»-eksemplet (:386) — samme feil friksjon #9 dokumenterte at kostet en revisjonsrunde. HTML-en bygges mot 2.1-kriterier mens constraints-laget krever 2.2.
Foreslått fiks: Rett template-eksemplene til domene-nøytrale plassholdere («{min-versjon — verifiser mot domain-pack conventions}»); avklar WCAG-nivå for HTML-flaten (anbefalt: 2.2 AA, konsistent med resten). Planlegg pack-reverifisering ved iOS 27-GA (~sept 2026). → Sesjon A1; kø-oppføring for pack-refresh.
R-16 [MINOR] Runtime-asymmetrien er dok-brutt — bevisst, og med lav kostnad; app-creators formulering er nå usann
Belegg: CLAUDE.md:74: «Voyage vet ikke om app-creator finnes, og skal ikke vite det.» Voyage HANDOVER-CONTRACTS.md:48 navngir «Tier 2 app-creator» og «Tier 3 app-factory» i en «Trinity producer context (informational)»-blokk — som samtidig presiserer det som faktisk bærer verdien: «No producer is privileged … Voyage stays unaware of Tier 2/3 — this Handover is the only coupling.»
Vurdering: Bruddet er reelt på kunnskaps-/dok-nivå, kosmetisk på arkitektur-nivå. Skjema-asymmetrien (ingen privilegert produsent, ingen runtime-kobling) er intakt og er den som gjør lagene uavhengig utviklbare. Å kreve at Voyage «avlærer» app-creator ville vært teater.
Feilscenario: En fremtidig sesjon håndhever CLAUDE.md-formuleringen bokstavelig og «retter» Voyage-dokumentasjonen (bryter «aldri modifisere Voyage»), eller avviser nyttige design-valg med henvisning til en invariant som allerede er redefinert i praksis.
Foreslått fiks: Omformuler invarianten i CLAUDE.md til det den faktisk beskytter: «Ingen runtime-kobling; briefen er en umerket, velformet Voyage-brief; Handover 1 er eneste koblingspunkt; ingen produsent er privilegert.» → Sesjon A1.
R-19 [SUGGESTION] Alignment-briefens Funn 1 er innfridd av Voyage — sterkere enn skissert — uten at noen har notert det
Belegg: app-factory/docs/alignment-brief.md:64-83 etterlyser en «Stability promise»/STABILITY.md. Voyage v5.5.0 leverte mer: Handover 1 som PUBLIC CONTRACT med breaking-change-protokoll og N-1-vindu (HANDOVER-CONTRACTS.md:44-46,20-26). Positiv drift — men udokumentert på app-creator/app-factory-siden, og v0.4.0-definisjonen har samtidig driftet (alignment-brief Funn 4 lister 4 punkter, roadmap.md:23-27 lister 5 — «Per-app HTML klar» mangler i alignment-briefen, i strid med Funn 4s egen synk-regel alignment-brief.md:125).
Foreslått fiks: Synk-notat i A7-sesjonen (cross-repo, krever operatør-mandat).
Akse 2 — Design-koherens
R-06 [MAJOR] phase_status-vokabularet finnes i tre innbyrdes uforenlige varianter — og virkelighetens variant er udokumentert
Belegg: (a) Frontmatter-spec: in-progress | complete | revised | skipped (phase-design-draft.md:204) — mangler pending-review, tilstanden hele review-gaten hviler på (:58). (b) state.json-spec: complete | in-progress | not-started | revised | pending-review | revision-in-progress + to objektformer (:934). (c) Akashic i praksis: "revised"-objekt med revision/revised_at/driver/open_questions (state.json:13) og "complete"-objekt med completed/total/completed_at/completed_note (state.json:14) — ingen av dem i noen spec. Attention-typene har samme sprik: spec-en nevner review-pending/decision/review (:925-929); virkeligheten bruker decision-pending, action-pending, environment-blocker, revision-pending (state.json:97-139). phase-feltet i attention er fritekst («xcode-bootstrap», «pre-submission») uten definisjon. Toppnivå-feltene review_gate_history (state.json:16-50) og implementation (:142-158) finnes ikke i spec-en. state.json har intet schema-/versjonsfelt.
Feilscenario 1 (gjentakelse av friksjon #15): En sesjon som følger frontmatter-spec-en kan bare skrive complete når den mener pending-review — nøyaktig forvekslingen som utløste operatør-stoppen i S13. Feilscenario 2 (Tier 3): En app-factory-parser bygget mot :890-932 knekker eller feiltolker på første reelle instans; spesifikt leser den phase_status."7": "complete" som «fase 7 ferdig» mens feature_summary.brief_pending: 11 (state.json:63) sier 11 av 12 briefer gjenstår.
Foreslått fiks: Én autoritativ enum-tabell + JSON Schema for state.json (med "schema"-felt); redesign av fase 7-status til per-feature-semantikk (fase 7 er kontinuerlig, ikke skalar); normaliser Akashic-instansen mot skjemaet. → Sesjoner A1 (enum-samling), C2 (schema), D3 (validator).
R-07 [MAJOR] Lengdegrense-regimet er empirisk motbevist åtte ganger, tabell-fiksen er aldri applisert — og revisjonslogg-konvensjonen har gjort kontraktsfila ubegrenset
Belegg: Flat ≤500-ordsgrense: phase-design-draft.md:21,62,211,581. Målt (wc -w, 2026-07-10): app-brief 1855, research 1317, arkitektur 1827, constraints 3535, features 4435 (rev 1), F-001 brief.md 4523 (rev 6), context.md 641, research.md 5611 (rev 6). Friksjon #10/#12/#13/#14 foreslo en differensiert per-artefakt-tabell i fire iterasjoner (friksjon.md:205-213,285-295,340-351,404-410) — aldri skrevet inn i utkastet. Ny driver ingen friksjonsentry fanger: ## Revisjons-logg-seksjonen skrives inn i brief.md (:990-1000), så seks S14-runder la ~3800 ord norsk beslutningshistorikk inn i selve kontraktsfila som overleveres Voyage.
Feilscenario: (a) En brief-forfatter-sesjon som lyder spec-en strammer bort substans (Success Criteria er det som ryker — det Voyage faktisk konsumerer) eller drukner i review-flagg. (b) Voyages planner leser 4523 ord der ~740 er kontrakt og resten er audit-trail; intern historikk («operatør valgte Alt 5», forkastede alternativer 1–4) lekker inn i planleggingen og kan feilvekte den.
Foreslått fiks: (1) Applisér #14-tabellen i § Hard lengde-grense. (2) Beslutt Revisjons-logg-plassering — tre alternativer: (a) egen fil features/{NN}/revisions.md, (b) flytt til context.md, (c) strip ved handover (krever kopieringssteg, jf. R-03). Anbefaling: (a) — audit-trail er app-creator-intern state, ikke kontrakt. → Sesjon A2 (operatør-valg + applisering).
R-08 [MAJOR] Friksjonsloggen — metodens primærinstrument — ligger 8 sesjoner bak, og de tapte lærdommene er de viktigste
Belegg: friksjon.md slutter med #15/S13 (2026-05-14). Akashic state.json:87-94 dokumenterer S14–S14g + S15 med minst fire design-relevante lærdommer som aldri nådde loggen: (1) S14e: F-001 rev 0–3 bar en faktafeil (AI oppfant et fjerde tidspunkt / «30° synkende»; verifisering mot Isha-kilder viste tre) — og den retroaktive S14-reviewen med 0 annotasjoner godkjente den feilaktige briefen (state.json:39-49); feilen ble fanget først da operatøren ba om å få reglene vist. (2) Review-gaten virker iterativt — fire runder S14→S14g, dokumentert konklusjon i state.json:93. (3) Ny artefakt-praksis (revisjonslogg-eksplosjonen, R-07). (4) b59928b-lærdommen («rask validering med echo {initialize} | server-cmd før scaffold-templates publiseres», commit-melding 2026-05-15) — ble stående i git, aldri i friksjon/spec. Siste substansielle commit i app-creator: 2026-05-15; STATE-innhold datert 2026-05-29.
Feilscenario: Neste phase-design-draft-revisjon bruker friksjon.md som kilde (det er dens deklarerte rolle, friksjon.md:3) og går glipp av prototypens sterkeste empiri: at passive gates (åpnet HTML, ingen annotasjoner) ikke validerer, og at gate-timing er avgjørende. Review-gate-designet låses da på svakere grunnlag enn dataene tillater.
Foreslått fiks: Etterregistrering som friksjon #16–#18 (kilde: Akashic state.json-loggen + git) før neste design-revisjon. → Sesjon A4, foran A5.
R-09 [MAJOR] Flersesjons-protokollen i utkastet foreskriver et mønster operatøren har forbudt og repoet selv har migrert bort fra
Belegg: phase-design-draft.md:83-89 formaliserer SESSION-ROADMAP.local.md + NEXT-SESSION-PROMPT.local.md + SESSION-LOG.local.md; :979 instruerer «start neste sesjon med "Les og følg NEXT-SESSION-PROMPT.local.md nøyaktig"». prototype-run/README.md (tabellen) beskriver de samme filene som levende. Repoets egen git-historikk viser at mønsteret er avviklet og konsolidert til STATE.md-konvensjonen (commits 8eb625f, c8e6aa5, b8a6a31, 2026-05-29–06-26); filene finnes ikke på disk (find → kun fable-review-prompt.local.md). Operatørens globale konvensjon forbyr eksplisitt lokale kontinuitetsmekanismer av denne typen.
Feilscenario: En Opus-sesjon som følger § Flersesjons-protokoll gjenoppretter det forbudte mønsteret i neste app-instans; eller en sesjon leter etter NEXT-SESSION-PROMPT.local.md som re-entry og finner ingenting.
Foreslått fiks: Omskriv § Flersesjons-protokoll til STATE.md-konvensjonen (per-instans STATE.md med 👉 NESTE-blokk; state.json.session-feltet beholdes som maskinlesbart eksport-speil). Oppdater prototype-run/README-tabellen. → Sesjon A1.
R-12 [MINOR] Versjonsdisiplinen for domain-packs brøt ved første reelle test: tre versjoner i omløp, stale snapshot
Belegg: Commit b59928b (2026-05-15) endret pack-innhold (patterns/xcode-mcp-toolchain.md, scaffold/mcp.json) og annonserte «v0.2.1» i commit-meldingen — men pack.json:4 står på 0.2.0, uten 0.2.1-changelog-entry (git show b59928b --stat; git log -p -- …/pack.json). Dette er nøyaktig patch-bump-tilfellet domain-pack-spec.md:123 definerer. Konsekvens-kjeden: STATE.md:44 hevder «v0.2.1» (matcher commit-melding, ikke manifest); Akashic state.json:4 pinner ios-app@0.1.0; F-001 brief.md:21 pinner 0.1.0; implementation.domain_pack_version_at_bootstrap sier 0.2.0 (state.json:152); snapshotet er materialisert fra 0.1.0 (2026-05-13, 00-context/domain-pack-ios-app.md:4-5) og aldri re-materialisert gjennom to innholdsendringer — i strid med sin egen disclaimer («re-materialiser ved pack-bump», :8). Spec-en innrømmer at verified ikke håndheves (domain-pack-spec.md:196) — dette er beviset på at disiplin alene ikke holdt én eneste bump.
Feilscenario: En sesjon premiss-verifiserer «pack er v0.2.1» mot disk, finner 0.2.0, og bruker tid på å avgjøre hvilken som er sann. Verre: en re-materialisering tar utgangspunkt i feil versjon, og fase 7-context-utdrag genereres fra et snapshot uten MCP-toolchain-lærdommene.
Foreslått fiks: pack.json → 0.2.1 + changelog-entry; re-materialiser Akashic-snapshotet; oppdater pins. Vurder check-pack.mjs-lint (se Ambisiøse utvidelser, B). → Sesjon A3.
R-14 [MINOR] Fase 2s pack-konsum er selvmotsigende (M6)
Belegg: phase-design-draft.md:423 gir fase 2 gotchas.md + patterns/ som input; :66 («fasene 1/3–7»), tabellen :70-77, domain-pack-spec.md:9,99-106 og ios-app/pack.json:7 utelater alle fase 2. Feilscenario: En fase 2-implementasjon (D-fasen) må velge side; velger den :423, bryter den pack-manifestets phases-kontrakt og en evt. validator. Foreslått fiks: Ta stilling: enten legg fase 2 inn i phases overalt (Akashic-erfaringen: fase 2 klarte seg uten pack-filer — taler for å fjerne), eller stryk input-linjen på :423. Anbefaling: stryk. → Sesjon A1.
R-15 [MINOR] Max-3-regelen er både brutt på papir og omgått i praksis (M9)
Belegg: Fase 5-input (:596): checklist.md + gotchas.md; checklist-splitten gjør «checklist» til tre core-filer (ios-app/pack.json:28-30); fase 5-templaten dekker alle tre domenene (:604-667) ⇒ 4 filer > max-3 (:68, spec :108). I praksis leste Akashic fase 5 snapshotet — som inneholder alle fem core-filene i ett dokument (00-context/domain-pack-ios-app.md:8), altså mer innhold enn regelen tillater, gjennom ett filhandle. Feilscenario: En implementert fase-agent håndhever max-3 bokstavelig og må velge bort én av tre obligatoriske checklists i fase 5. Foreslått fiks: Redefiner regelen til det den faktisk skal beskytte (kontekstbudsjett): «snapshot teller som én lasting; utover snapshot maks 3 supplementary-filer», og oppdater fase 5-inputlisten. → Sesjon A1.
R-17 [MINOR] CHANGELOG refererer filer som ikke finnes, og er selv 25 commits gammel (M10)
Belegg: CHANGELOG.md:8: «Initial repo scaffolding (CLAUDE.md, README, ROADMAP, TODO, CHANGELOG)» — TODO.md finnes ikke; roadmap heter docs/roadmap.md. Hele fila har 13 linjer og dekker ingenting etter scaffolding (25 commits, inkl. to spec-låsinger og en pack-release). Feilscenario: Kosmetisk i dag; villedende den dagen repoet publiseres på Forgejo. Fiks: Rett referansene; etabler changelog-disiplin fra A-fasen. → Sesjon A1.
R-20 [SUGGESTION] Småsprik: «6-tema-intervju» har 8 temaer; interne teller-avvik
Belegg: phase-design-draft.md:112,258 sier «6-tema-intervju»; sjekklisten :271-279 og prioriteringen :291 lister 8 (Eierskap, Problem, Brukere, Suksess, Omfang, Appetite, Plattform, Tidshorisont). Friksjons-tallene for ordtelling avviker litt fra dagens disk (1830→1855, 3497→3535 osv. — filer har driftet etter måling). Fiks: Tell om og rett i A1; ingen strukturell konsekvens.
Akse 3 — Arkitektur-invarianter under press
Mandat: hvert angrep krever konkret feilscenario + navngitt alternativ. Vetorett hos operatør.
1. Tre-tier-oppdelingen — grensen holder, men Tier 2 har allerede én ulisensiert import fra Tier 1.
Angrep: Review-gaten (kjerne-mekanikk i Tier 2) avhenger av annotate.mjs — en Voyage-intern fil utenfor eneste public contract (R-05). Feilscenario: som R-05; presedensen er at Voyage sletter interne flater med én dags varsel. Navngitt alternativ: vendor annotate.mjs (fork-and-own-kopi i app-creator, opphavsversjon notert, resync-rutine) — bevarer «Handover 1 er eneste kobling» og zero-deps/single-file-invariantene, uten å røre Voyage. Ellers står tre-tier-oppdelingen seg: ingen funn tyder på at Tier 2 må absorbere task- eller portefølje-ansvar; fristelsen dokumentert i alignment-brief Funn 5 er reell men adressert med test-spørsmålene der.
2. Runtime-asymmetrien — omformuler, ikke gjenopprett. Angrep + vurdering: se R-16. Alternativ: invariant-tekst som beskytter det som faktisk bærer verdi (skjema-konformitet, ingen runtime-kobling, ingen privilegert produsent) i stedet for en kunnskaps-påstand som allerede er usann. Ingen handling mot Voyage.
3. De syv fasene — riktig meny, misvisende som lineær skala.
Angrep: Empirien (n=1) kjørte 1, 2, 3, 5, 6, 7; fase 4 er designet for som regel aldri å trigge (:565). En «fase-progress 1–7»-visning (CLAUDE.md:52, roadmap:25) viser dermed et permanent hull for de fleste apper, og phase_status."7": "complete" ved 1/12 briefer (R-06) viser at fase 7 ikke er en fase men en kontinuerlig aktivitet. Feilscenario: app-factory-aggregering («hvilken fase er appen i?», alignment-brief:92) gir meningsløse svar for fase 4/7. Navngitt alternativ: behold de syv kapabilitetene og artefakt-nummereringen (innarbeidet), men modellér progresjon som status-per-kapabilitet (kjørt/hoppet/utrigget/kontinuerlig med teller) i state-eksporten og HTML-en — ikke som posisjon på en 1–7-linjal. Ikke slå sammen faser nå: empirien er for tynn (én app, eskaleringssti only — se Akse 5).
4. Brief-som-filhandover vs. validerbart schema — behold filen, tilfør validatoren.
Angrep: Uten egen validering oppdages kontraktsbrudd først i Voyages validator, med kostnaden hos operatøren (alignment-brief:119 forutså dette). Feilscenario: R-02(b). Navngitt alternativ: validate-brief.mjs i app-creator som implementerer Handover 1 (public contract) for målversjonen — ikke å kjøre Voyages brief-validator.mjs (gråsone mot eksekverings-grensen, og skaper enda en intern avhengighet). Filhandover som prinsipp: uangripelig gitt målene; ingen alternativ fremmes.
5. Filsystem som state-backend / state.json som sannhet — backend holder; sannhets-påstanden gjør ikke.
Angrep: state.json er i dag ikke eneste sannhet: review-gate-annotasjoner lever i nettleserens localStorage (nøklet på absolutt sti — tapt ved maskinbytte/rydding), og revisjonshistorikk lever i artefaktene. Feilscenario: operatør bytter maskin → åpne annotasjonsrunder (AQ-003-svaret!) er borte; state.json sier decision-pending med ref til en HTML hvis tilstand ikke finnes lenger. Navngitt alternativ: hold fast på filsystem-backend, men gjør annotasjons-eksport til fil til en del av gate-protokollen (Copy Prompt limes inn og committes som del av revisjonen — allerede de facto praksis via Revisjons-logg; formaliser det, jf. R-07-beslutningen). SQLite o.l. vurdert og forkastet: bryter zero-deps-ånden uten gevinst på denne skalaen.
6. Verktøy-agnostisk — står. Ingen funn gir feilscenario. Ingen alternativ fremmes. (Prototypen har klart seg uten PM-verktøy gjennom 15+ sesjoner — svak men reell bekreftelse.)
7. Single-file HTML, zero deps, polling — står; polling er upraktisert.
annotate.mjs (single-file output, zero deps) og Akashic index.html (385 linjer, data-theme, statisk) bekrefter mønsterets levedyktighet. Merk: Akashic-index-en poller ikke (grep etter fetch/setInterval: null treff) — polling-invarianten er fortsatt utestet på Tier 2. Ikke et angrep; en åpen verifikasjon for E-fasen.
8. Hard 500-ordsgrense — fell den flate grensen, behold prinsippet.
Angrep: R-07; åtte målinger mot, null for. «Én skjerm»-formuleringen (:62) er uoperasjonaliserbar. Navngitt alternativ: #14-tabellen (differensiert per artefakt-type, review-flagg over terskel) + bredde/dybde/fokus-typologien fra friksjon #13 — empirisk fundert av prototypens egne tall.
Fem-nivå-vurdering (Shapiro-rammeverket; bindende ramme: nivå 3 fast, muliggjør nivå 4)
Plassering i dag: nivå 2, med nivå 3-stillas på plass for R og P — og et åpent hull der I og V skulle vært.
Begrunnelse: R-PIV-loopen på app-nivå er lukket til og med P: research (fase 2, reelle kjøringer), plan (fase 1/3/5/6-artefakter med operatør-gates), og review-gate-mekanikken etter S13 er et ekte nivå 3-trekk — mennesket planlegger og validerer ved hver fasegrense. Men I og V har aldri kjørt: voyage_running: 0, shipped: 0. Ingen brief er implementert, ingen validering av at pipelinens output faktisk bærer implementering. Tilliten som definerer nivå 3 («delegerer all koding, stoler på systemet») kan ikke være opptjent når systemets nedstrøms-halvdel er ukjørt. Det er ikke et designproblem — det er hvor prototypen står — men reviewens dom er at påstander om nivå 3 er premature før B-fasen i re-planen er gjennomført.
Gate-kvaliteten er dokumentert ujevn — det er den viktigste nivå-3-empirien repoet har: S14e (R-08) viser at en passiv gate (åpnet HTML, null annotasjoner) godkjente en faktafeil, mens en aktiv operatør-spørring fanget den. Nivå 3 hviler på gate-kvalitet; systemet mangler i dag mekanismer som gjør gates aktive (sjekkliste-spørsmål per gate, «vis meg reglene»-prompter, diff-mot-forrige-revisjon).
Muliggjør dagens design nivå 4 for app-factory? Ikke ennå. Nivå 4 krever at aggregatoren kan stole på signalene uten å lese artefaktene. I dag: state-eksport udesignet (alignment-brief Funn 2 åpen), phase_status-semantikk villedende (R-06), attention-vokabular udefinert i praksis, session.next_action er prosa. En app-factory bygget på dagens state.json ville tatt feil beslutninger om «hvilken app trenger meg» — f.eks. lest Akashic som «fase 7 complete».
Hva som mangler for å klatre (konkret, i re-planens rekkefølge): (1) reell round-trip → første I/V-datapunkt (B1); (2) brief-validator + state-schema → maskinsjekkbare kontrakter (C2/D2/D3); (3) Voyage-retur-ingest → lukker V→R-loopen på app-nivå (parkert til første retur, se Ambisiøse utvidelser D); (4) friksjon→systemforbedring-disiplinen håndhevet (R-08 viser at loopen henger; b59928b viser lærdom som ble patch-notat, ikke mekanisme); (5) aktive gate-sjekklister. Invarianten «ingen autonome loops uten human-in-the-loop» er respektert i alt over — nivå 4 muliggjøres av eksport-kvalitet, ikke av at app-creator selv kjører autonomt.
Akse 4 — Plan-fullstendighet og manglende features
docs/roadmap.md er 43 linjer; null avkryssede bokser; ingen sesjonskø. Re-planen (Del 2) bygger køen fra grunnen. Hull som må inn i planen, utover roadmapens egne punkter:
- Premiss-vedlikehold har ingen plass i roadmapen. Ingen mekanisme fanger at Voyage flytter seg (R-01/R-02 lå uoppdaget i ~8 uker). → A-fasen + «kontrakt-resync»-sjekk som fast innslag i STATE-ens NESTE-blokk ved lengre pauser.
- Brief-generatoren trenger mer enn «riktig frontmatter» (roadmap:37): målversjon 2.2, framing-avledning, TL;DR-generering,
phase_signals-strategi, stripping-/plasseringsregel for interne felter og revisjonslogg (R-07), handover-mekanikk forproject_dir(R-03), og en validator å testes mot (D2). state.json-schema (roadmap nevner eksport, ikke schema): JSON Schema +"schema"-felt + validator + semantikk-fiks for fase 7 (R-06). Alignment-brief Funn 2 gir felt-listen aggregatoren trenger.- Per-app HTML: rendering-listen finnes (CLAUDE.md:50-56), men drill-down må redefineres (R-01), attention-heuristikkene er ulåst (
:1067), polling er upraktisert (Akse 3.7), og Akashicindex.htmlbør høstes som de facto prototype. - App-state-eksport til app-factory er udesignet i det hele tatt — bekreftet; eneste spec er ønskelisten i alignment-brief:91-97.
- Levende arkitektur-fil / Voyage-retur-ingest:
voyage_run.md«skrives av state-eksport» (:188) — en mekanisme som ikke finnes noe sted. Kan ikke designes empirisk før første Voyage-retur; planlegg observasjon, ikke spekulasjon. - Backtracking-propagering
[åpent](:1063): korrekt holdt åpent; planlegg en observasjons-sesjon ved første reelle backtrack i stedet for design nå. - Versjonering av app-creator selv: repoet er ikke en plugin ennå (ingen
plugin.json); implementeringsfasen må definere plugin-identitet, versjonssync-disiplin (jf. R-12) og CHANGELOG-vedlikehold (R-17). - Domain-pack-versjonsdrift: iOS 27-reverifisering ~sept 2026 (pack-ens egen prognose, nå web-bekreftet); pack-lint (utvidelse B under).
claude-code-plugin-packen er ærlig merket stub (pack.json:22) men er samtidig eneste forsvar mot n=1-generaliseringen — se Akse 5 for billigste mottiltak; planen må eksplisitt si om den er i eller ute av v1.0.0.- Forgejo-remote (R-18/M11): operatør-steg; per global konvensjon skal repoet ligge på Forgejo, aldri GitHub.
- Multi-platform
[åpent](:1075): hold eksplisitt utenfor v1.0.0. - v0.4.0-definisjons-synk mot app-factory (R-19).
Ambisiøse utvidelser (utover godkjent scope) — FORSLAG, flettes ikke inn uten operatør-godkjenning
Hver testet mot scope-testen i CLAUDE.md § Arbeidsregler 5: (i) per-app-disiplin? (ii) hører i en av de syv fasene eller per-app HTML? (iii) tjener reell friksjon?
A. validate-brief.mjs — egen Handover 1-validator som pre-handover-gate i fase 7. Kost: S–M (én sesjon, TDD; kontrakten er presist dokumentert). Scope-test: (i) ja — per-brief-disiplin i fase 7; (ii) ja — fase 7; (iii) ja — R-02/R-03/R-04 er nettopp friksjonen den fanger. PASS. Sterkeste kandidat; allerede innarbeidet som D2 i re-planen (fjernes derfra hvis operatør avviser).
B. check-pack.mjs — pack-lint (components↔disk-konsistens, verified-alder-flagg, versjon↔changelog-samsvar). Kost: S. Scope-test: (i) delvis — det er pakke-forfatter-disiplin, ikke app-disiplin; (ii) indirekte (pakkene konsumeres av fase 1/3–7); (iii) ja — R-12 er dokumentert friksjon. PASS med anmerkning om at det er verktøy for pack-vedlikeholdet, ikke pipelinen.
C. Annotasjons-eksport til committet fil — utvid den vendorede annotate-kopien (forutsetter Akse 3.1-beslutningen) med «Export annotations» til f.eks. <artefakt>.annotations.md, slik at audit-trail overlever localStorage og revisjonslogg kan flyttes ut av kontraktsfila (R-07). Kost: M. Scope-test: (i) ja; (ii) ja — review-gate/per-app HTML; (iii) ja — R-07 + Akse 3.5. PASS, betinget av vendoring-beslutningen. NB: modifiserer vendored kopi, aldri Voyage.
D. Voyage-retur-ingest (les progress.json/review.md fra voyage_run_dir → voyage_run_status + attention). Scope-test: (i) ja; (ii) ja — fase 7/HTML; (iii) nei — ingen Voyage-run har returnert; friksjonen er hypotetisk. FAIL i dag. Parkeres til første retur (da blir den trolig obligatorisk, ikke ambisiøs).
E. Friksjon-capture som sesjonsslutt-gate («har sesjonen produsert friksjon? → friksjon.md før commit»). Scope-test: (iii) ja — R-08 er beviset. Men (i)/(ii): dette er en kontinuitetssystem-utvidelse, og global konvensjon krever at slike utvides globalt, ikke lokalt per repo. FAIL som app-creator-feature; noteres som forslag til operatørens globale system.
Akse 5 — Prototypens bevisverdi
1. Dekning: fem av syv faser er kjørt — men bare langs den ene grenen. Akashic kjørte full-variant fase 1, reell fase 2, 3, 5, 6 og 1/12 av fase 7 (state.json:7-15). Det som aldri er kjørt: minimal-variant fase 1, rapid mode, skip av fase 2/5, fase 4-trigging — altså hele default-stien i eskalerings-stigen (phase-design-draft.md:16-25,163). Designets deklarerte default («default er kort») er 100 % hypotese; kun eskaleringsgrenen har belegg. Det er ikke tilstrekkelig grunnlag for å låse stige-modellen i v0.4.0 — det er tilstrekkelig for å låse eskaleringsgrenens artefakt-kontrakter (som er det v0.4.0 faktisk trenger).
2. Round-trip: aldri reell (R-04). Risikoen for at fase 7-formatet er feil er lav (papir-PASS mot dokumentert kontrakt); risikoen for at fase 7-prosessen er feil er reell og udekket: project_dir-mekanikken (R-03), research.md-konsum-antakelsen (R-04), stripping-spørsmålet (R-07). Alle tre avgjøres av én reell kjøring.
3. n=1-domene. Systematisk blindsone: alt som er iOS-spesifikt kan ha lekket inn i det domene-nøytrale laget uten at noen merker det (spec-en er «domene-nøytral» kun på papir — claude-code-plugin-packen er en ukonsummert stub, pack.json:22). Billigste mottiltak, og det dekker to hull samtidig: kjør én rapid mode-runde med claude-code-plugin-packen på en reell, liten plugin-oppgave (forfatteren produserer plugins løpende). Én sesjon gir (a) første datapunkt på den utestede default-stien og (b) n=2-domene. Foreslått som egen sesjon i re-planen (B6).
4. Friksjonsloggen som instrument: upålitelig i dagens tilstand (R-08). Instrumentet er godt når det føres — #1–#15 er konkrete, daterte, med foreslåtte revisjoner. Men det føres ikke lenger: loggen har 0 entries etter 2026-05-14 tross 8 sesjoner med sterk empiri. En metode som hviler på «friksjons-data låser designet» (CLAUDE.md § Status) har da mistet målekjeden sin. Etterregistrering (A4) er mulig fordi Akashic state.json-loggen er uvanlig god — denne gangen. Disiplinen må inn i sesjonsprotokollen, ikke bero på flaks.
5. Er Apple-portal-blokkeren en app-creator-blokker? Nei — og dette avgjør kritisk sti. /trekresearch og /trekplan konsumerer filer og trenger verken signert build eller simulator (HANDOVER-CONTRACTS.md Handover 1/2). Round-trip-testen (roadmap-forutsetning #3) kan altså kjøres nå. Blokkeren gjelder først /trekexecute (bygg/test): simulator-runtime-installasjonen er et reelt operatør-steg; om App Groups-entitlement krever DEVELOPMENT_TEAM også for simulator-bygg er ikke verifisert — planlegges som eksplisitt sjekk i B7. Konsekvens: prototypens gjenstående verdi hentes i rekkefølgen round-trip → briefer → execute, med portal-stegene parallelt — ikke som forutsetning for alt.
Samlet dom over metoden: Én manuell kjøring av én iOS-app har produsert mer enn nok friksjon til å revidere designet (15 nummererte punkter + 8 sesjoner ulogget empiri) — metoden virker. Men den har ikke produsert nok til å låse kontraktene: null Voyage-kjøringer, null default-sti-empiri, n=1-domene. Roadmapens egen formulering («låses når prototypen viser hva som faktisk fungerer», roadmap.md:21) er riktig standard; dagens tilstand oppfyller den ikke, og papir-PASS-retorikken (R-04) er den ene stedet repoet er i ferd med å lure seg selv.
Verifiseringslogg
Nøkkelpåstand → kilde/kommando som bekrefter den (alle kjørt 2026-07-10):
| Påstand | Belegg |
|---|---|
| 25 commits, ingen remote, rent tre, 42 tracked filer | git log --oneline | wc -l = 25; git remote -v → tom; git status --short → tom; git ls-files | wc -l = 42 |
| Voyage gjeldende versjon 5.9.1 | voyage/.claude-plugin/plugin.json:4; ~/.claude/plugins/cache/ktg-plugin-marketplace/voyage/ inneholder 5.6.0–5.9.1 |
Playground + Handover 8 + /trekrevise slettet i v5.0.0 (2026-05-12) |
voyage/CHANGELOG.md:499-505 (verbatim «Breaking … gone»); ls voyage/playground/ → No such file or directory |
annotate.mjs skriver kun <input>.html; ingen sidecar |
grep -n writeFileSync scripts/annotate.mjs → linje 934 (én skriving, :933 default <input>.html); find akashic -name "*.review.md" → 0 treff |
| Dokumentert annotate-sti død | test -f ~/.claude/plugins/marketplaces/ktg-plugin-marketplace/plugins/voyage/scripts/annotate.mjs → FINNES IKKE; fungerende: …/cache/…/5.9.1/scripts/annotate.mjs (41 368 B) |
| Handover 1: 2.2 gjeldende; framing/TL;DR kun ≥2.2; 2.0 gyldig (N-1); ukjente nøkler tolereres; Tier-2 navngitt | voyage/docs/HANDOVER-CONTRACTS.md:13,44-105 (lest i sin helhet) |
| Voyages egen template emitterer 2.2 + framing + phase_signals + TL;DR | voyage/templates/trekbrief-template.md:3,18,24,43 |
| F-001 rev 6 papir-PASS felt-for-felt | akashic/features/01-sun-position/brief.md:1-27 mot kontraktstabellen :60-84 (gjennomgang i R-02) |
project_dir finnes ingen steder |
ls akashic/.claude/projects/ → No such file; ls ~/.claude/projects/ | grep sun-position → 0 treff |
Akashic-status: fase-tabell, 1/12, voyage_running: 0 |
akashic/state.json:7-15,61-67 (lest i sin helhet) |
| Ordtellinger (1855/1317/1827/3535/4435/4523/641/5611) | wc -w på artefaktene i akashic-repoet |
| Snapshot fra 0.1.0, aldri re-materialisert | akashic/00-context/domain-pack-ios-app.md:4-8 |
| Pack-versjonskaos (0.1.0/0.2.0/«0.2.1») | ios-app/pack.json:4 = 0.2.0; git show b59928b --stat (endret 2 pack-filer, bumpet ikke manifest); STATE.md:44; akashic/state.json:4,152 |
| Friksjonslogg stopper #15/S13 2026-05-14 | prototype-run/friksjon.md:449-499 (lest i sin helhet); Akashic S14b–S15: state.json:88-94 |
| SESSION-*.local.md-filene finnes ikke; STATE-migrering | find . -name "*.local.md" → kun oppdragsfila; commits 8eb625f/c8e6aa5/b8a6a31 |
| iOS 26 gjeldende (26.5.2 stabil; 26.6 kun beta); iOS 27 WWDC juni 2026, GA offisielt «this fall» (sept = presse-estimat) | WebSearch: Apple Newsroom, TechCrunch WWDC 2026, Tom's Guide; kryssbekreftet av research-agent (Wikipedia iOS 26, support.apple.com/100100) |
App Store-byggekrav Xcode 26+/iOS 26 SDK siden 2026-04-28 (bekrefter pack.json:10); privacy-manifest-krav 2024-05-01 + SDK-utvidelse 2025-02-12 |
Research-agent: Apple Upcoming Requirements, Apple privacy-manifest-doc |
| Xcode 26.6 siste stabile (2026-06-25) | Apple Developer Releases, xcodereleases.com |
| MASVS 2.1.0 fortsatt gjeldende | mas.owasp.org/MASVS, GitHub OWASP/masvs |
| WCAG 2.2 gjeldende Rec (ISO/IEC 40500:2025); 3.0 = WD, Rec ~2029 | W3C TR WCAG22, W3C WAI-oversikt |
Ikke verifisert (eksplisitt): (a) Om App Groups-entitlement krever DEVELOPMENT_TEAM for simulator-bygg — planlagt sjekk i B7. (b) Voyages faktiske adferd overfor en produsent-levert research.md — avgjøres av B1. (c) Nøyaktig hvilken CC-versjonsendring som flyttet plugin-stien fra marketplaces/ til cache/ — irrelevant for fiksen, ikke undersøkt. (d) Fire Opus-subagenter ble spawnet for bredde-sveip (Voyage-historikk, app-factory, Akashic, ekstern versjonering). Kun versjonerings-agenten leverte rapport (etter førsteutkastet av dette dokumentet); den kryssbekreftet samtlige eksterne versjonspåstander uten motsigelser og bidro med presisjonene om iOS 26.5.2/26.6-beta, «this fall» og SDK-byggekravet (flettet inn over). De tre øvrige avsluttet uten leverte funn. Alle påstander i dette dokumentet er uansett verifisert direkte av hovedsesjonen med kommandoene/kildene over.