Advisor-funn på forrige commit (a0854a6): verified.date ble flyttet 2026-05-14 -> 2026-05-15, men domain-pack-spec.md:89 definerer feltet som pakke-hele sist-verifisert-dato, ikke per-komponent. Kun XcodeBuildMCP-tieret ble faktisk presisert (v2.3.x-tier -> v2.5.2); de andre elementene (iOS 26, HIG, MASVS, WCAG, XcodeGen, mcpbridge) er ikke re-verifisert. Reverterer datoen i både pack.json og patterns/xcode-mcp-toolchain.md; beholder kun tier-tekstfiksen. masterplan.md § A3s Fremgangsmåte/Mål/Verifisering instruerte fortsatt Akashic-halvdelen (ikke kjørt ennå) om å pinne ios-app@0.2.1 — stale etter 0.2.2-bumpen ia0854a6. Oppdatert til 0.2.2 gjennomgående. Korreksjon sendt til akashic-intelligence (coord-melding 20260811T121244Z) før de rakk å handle på den utdaterte 0.2.1-instruksen i sin uhåndterte innboks. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XpFPJDg8XKNxSHxH9uxGZr
34 KiB
Masterplan: app-creator → v1.0.0
Forfattet av: Fable 5 (xhigh), 2026-07-10, som Del 2 av kryssmodell-review-oppdraget. Status: AKTIV — promotert av operatør 2026-07-10. Levert som docs/replan-proposed.md; docs/review-2026-07.md refererer planen under det navnet. Funn-grunnlag: docs/review-2026-07.md.
Definition of done (v1.0.0, bindende ramme): full fase-pipeline + per-app HTML + brief-generator + app-state-eksport. v0.4.0 (kontrakt-låsing, docs/roadmap.md:19-27) er milepæl underveis. Prototypen (11 gjenstående briefer, Voyage-kjøringene, shipping av Akashic) er del av planen, ikke ekstern forutsetning. Nivå 3 fast; muliggjør nivå 4; ingen sesjon introduserer autonome loops uten human-in-the-loop.
Repo-skille (gjelder hele planen): app-creator-sesjoner skriver i /Users/ktg/repos/app-creator; Akashic-instans-arbeid skriver i /Users/ktg/repos/akashic-intelligence (etablert arbeidsform, jf. STATE); app-factory-endringer krever eksplisitt operatør-mandat (tidligere eksemplifisert ved A7, strøket 2026-08-11 — se § A7). Voyage kjøres alltid av operatøren — ingen sesjon eksekverer Voyage (invariant, CLAUDE.md:71-75).
Endringslogg: review-funn → sesjoner
| Funn (review-2026-07.md) | Skaper/endrer |
|---|---|
| R-01 playground slettet, drill-down udefinert, døde Handover 8-refs | Skaper A1 (dok-resync), endrer E1 (drill-down redefineres før HTML-spec); app-factory-siden dekket av deres egen H0-1 (A7 strøket 2026-08-11) |
| R-02 brief_version 2.0-pin, forsvars-hull, stale verifikasjon | Skaper A5 (2.2-design), endrer B1 (round-trip på 2.2), endrer D4 (generator-mål) |
R-03 How to continue/project_dir brutt |
Endrer A5 + B1 (handover-mekanikk eksplisitt + testes) |
| R-04 round-trip aldri reell; research.md-antakelse | Skaper B1 som tidligste prototype-sesjon, foran all videre brief-produksjon |
| R-05 review-gate på ukontraktfestet intern fil; død sti | Endrer A1 (sti-fiks), skaper D7 (vendoring-beslutning) |
| R-06 phase_status/attention-sprawl; fase 7-semantikk | Skaper C2 (schema-design), D3 (validator), endrer A1 (enum-samling) |
| R-07 lengdegrenser motbevist; revisjonslogg i kontraktsfila | Skaper A2 (tabell + plasseringsbeslutning), endrer B3–B5 (brief-konvensjon) |
| R-08 friksjonslogg 8 sesjoner bak | Skaper A4 (etterregistrering), endrer alle B-sesjoner (friksjonsføring i exit-kriteriene) |
| R-09 forbudt flersesjons-mønster i normativ tekst | Endrer A1 |
| R-12 pack-versjonskaos, stale snapshot | Skaper A3 |
| R-13 iOS 18/19-eksempler; WCAG 2.1/2.2-sprik; iOS 27-drift | Endrer A1; skaper vedlikeholds-oppføring V1 (pack-reverifisering ved iOS 27) |
| R-16 asymmetri-formulering usann | Endrer A1 |
| R-18/M11 ingen remote | Skaper A6 (operatør) |
| R-19 v0.4.0-definisjons-drift | Endrer C3; app-factory-siden dekket av deres egen H0-1 (A7 strøket 2026-08-11) |
| Akse 5.1 default-sti utestet; n=1 | Skaper B6 (rapid mode × claude-code-plugin-pack) |
| Akse 5.5 portal ikke round-trip-blokker | Endrer kritisk sti: B1 foran B7; B7 gater kun B8+ |
| Akse 3.5 localStorage-varighet | Endrer A2 (plasseringsbeslutning) + D7 (eksport-utvidelse, betinget godkjenning) |
| Fem-nivå-vurderingen: passive gates | Endrer B3–B5 (aktiv gate-sjekkliste i fremgangsmåten) |
Ambisiøse utvidelser (review § Akse 4): A/validator er absorbert som D2 (mandatets minimumsliste krever den); B/pack-lint ligger som valgfri D8; C/annotasjons-eksport er betinget del av D7; D/retur-ingest er parkert til første Voyage-retur (blir da del av F1); E/friksjon-gate er henvist til operatørens globale system.
Masterplan-kø
Én oppføring ≈ én sesjon. Størrelse S/M/L. [OPERATØR] = manuelt operatør-steg, ikke Opus-eksekverbart. Design-/prototype-sesjoner: Iron Law gjelder ikke, men verifiserbare exit-kriterier gjelder alltid. Kode-sesjoner (D/E/F): failing test først.
Fase A — Premiss-opprydding og kontrakt-resync
A1 — Dok-resync av app-creator mot verifisert virkelighet · M
- Mål: Fjerne alle utdaterte/usanne premisser fra normativ tekst, med review-2026-07.md som fasit.
- Scope-grense: Ingen nye design-beslutninger (de hører i A2/A5); ingen endringer i
domain-packs/**(A3) eller andre repos. - Avhengigheter: Ingen. Operatør har godkjent denne planen.
- Filer:
CLAUDE.md,README.md,CHANGELOG.md,docs/phase-design-draft.md,docs/roadmap.md,prototype-run/README.md. - Fremgangsmåte: Applisér funn-for-funn: (1) R-01: merk «v4.3 Plugin Playground» historisk i CLAUDE.md:24,30,56,58,84 / README:19 / CHANGELOG:12-13; omformuler drill-down i roadmap:25,38 til «drill-down til feature-ens Voyage-run-artefakter (voyage_run_dir) og annotate-HTML»; fjern Handover 8/
trekrevisefra phase-design-draft:882,938 (behold annotate.mjs-beskrivelsen). (2) R-05: erstatt død sti i :865,:950 med cache-sti-regel. (3) R-09: omskriv § Flersesjons-protokoll (:83-89,:979) til STATE.md-konvensjonen; rett prototype-run/README-tabellen. (4) R-13/M5: rett iOS-eksempler :315,:386,:524,:625 til domene-nøytrale plassholdere; avklar WCAG 2.2 AA i CLAUDE.md:105. (5) R-14/M6: stryk fase 2-pack-input :423. (6) R-15/M9: redefiner max-3 («snapshot = én lasting»), rett fase 5-input :596. (7) R-16: omformuler CLAUDE.md:74. (8) R-06 (delvis): samle phase_status-enum i én tabell, legg tilpending-reviewi frontmatter-enum :204. (9) R-17/M10: rett CHANGELOG:8 + ny Unreleased-entry for denne oppryddingen. (10) R-20: «6-tema» → «8-tema». (11) R-04: omformuler friksjon-#14-siteringer i draft der de fremstår som reell test (kun draft-tekst — friksjon.md er logg og røres ikke). - Nøkkelantakelser: Review-funnenes linjenumre stemmer fortsatt (test: grep før hver edit).
- Verifisering:
grep -rn "Handover 8\|trekrevise" docs/ CLAUDE.md README.md→ 0 treff;grep -n "iOS 19" docs/phase-design-draft.md→ 0;grep -rn "NEXT-SESSION-PROMPT" docs/ prototype-run/README.md→ 0;grep -c "pending-review" docs/phase-design-draft.md≥ frontmatter-forekomst;grep -n "plugins/marketplaces" docs/→ 0; commit.
A2 — Lengdegrense-tabell + revisjonslogg-plassering · S · [OPERATØR-beslutning inngår]
- Mål: Erstatte flat 500-ordsgrense med friksjon-#14-tabellen og beslutte hvor revisjonshistorikk bor.
- Scope-grense: Ingen omskriving av eksisterende Akashic-artefakter (B-fasen tar F-001 ved B1).
- Avhengigheter: A1 (ren base).
- Filer:
docs/phase-design-draft.md(§ Hard lengde-grense, § Fase 7, § Review-gate). - Fremgangsmåte: Presentér operatøren for de tre plasserings-alternativene fra R-07 (a:
features/{NN}/revisions.md-sidecar, b: context.md, c: strip ved handover; anbefaling a). Applisér valget + #14-tabellen (app-brief ~2000, research ~1500, arkitektur ~2000, constraints ~3500, features ~3000 skalert, fase 7 brief ~750/context ~650/research ~600; unntak uendret). - Verifisering:
grep -n "≤500 ord eller én skjerm" docs/phase-design-draft.md→ 0 treff; tabellen til stede; beslutning + begrunnelse nedfelt i § Fase 7; commit.
A3 — Pack-versjonsreparasjon + Akashic-resync · M · (cross-repo: Akashic)
- Mål: Én sann pack-versjon (0.2.2) overalt; ferskt snapshot i Akashic.
- Scope-grense: Ingen innholdsendringer i pack-filene utover manifest/changelog; ingen re-verifisering mot iOS 27 (egen oppføring V1).
- Avhengigheter: Ingen (kan gå parallelt med A1/A2).
- Filer:
domain-packs/ios-app/pack.json(app-creator);00-context/domain-pack-ios-app.md,state.json,features/01-sun-position/brief.mdfrontmatter-pin,app.md(akashic-intelligence). - Fremgangsmåte: (1) pack.json
version→ 0.2.1 (commit4f152c7, MCP-gotcha-changelog) → 0.2.2 (commita0854a6, 2026-08-11: verified.against-drift-fix, egen liten oppføring — se § verified.against nedenfor). Begge patch (D5). Målversjonen for Akashic-halvdelen flyttet derfor fra 0.2.1 (opprinnelig coord-melding 2026-08-10) til 0.2.2 — korrigert i en oppfølgings-coord-melding samme dag meldingen ble funnet fortsatt uhåndtert. (2) Re-materialiser Akashic-snapshotet fra 0.2.2 per den LÅSTE mekanikken (domain-pack-spec.md:184-192), inkl. korrekt kilde-sti. (3) Oppdaterdomain_pack-pins (state.json:4, brief-frontmatter, app.md) tilios-app@0.2.2. (4) Kontroller at pack-overrides fortsatt gjelder mot nytt snapshot. - Nøkkelantakelser:
b59928bvar eneste umanifesterte endring (test:git log --oneline -- domain-packs/ios-app/og diff 0.2.0-tag-punkt→HEAD). - Verifisering:
grep '"version"' domain-packs/ios-app/pack.json→ 0.2.2;head -6 akashic…/00-context/domain-pack-ios-app.mdviser 0.2.2 + ny dato;grep -rn "ios-app@0.1.0" akashic…/→ 0 treff; begge repo committet.
A4 — Friksjon #16+ etterregistrering · S
- Mål: Gjenopprette friksjonsloggen som pålitelig instrument før neste design-revisjon.
- Scope-grense: Kun etterregistrering (kilder: Akashic state.json S14–S15-loggen, git-historikk, review R-08); ingen nye design-forslag utover det kildene bærer.
- Avhengigheter: Ingen.
- Filer:
prototype-run/friksjon.md(append). - Fremgangsmåte: Skriv minst: #16 passiv-gate-svikten (S14e: retroaktiv 0-annotasjons-review godkjente faktafeil; aktiv operatør-spørring fanget den) med foreslått revisjon (aktiv gate-sjekkliste); #17 revisjonslogg-eksplosjonen (brief.md 743→4523 ord over 6 revisjoner; kobling til A2-beslutningen); #18 versjonsdisiplin-brudd (
b59928b; kobling til A3 og evt. pack-lint D8). Dater ærlig: «observert S14/S15, etterregistrert 2026-07-XX». - Verifisering:
grep -c "^## #1[678]" prototype-run/friksjon.md= 3; hver entry har Fase/Type/Observert/Beskrivelse/Foreslått revisjon; commit.
A5 — Fase 7-kontraktdesign: brief_version 2.2 · M · [OPERATØR-beslutning inngår]
- Mål: Omskrevet § Fase 7 som produserer 2.2-briefer og en eksplisitt handover-mekanikk.
- Scope-grense: Design i utkastet, ikke omskriving av F-001 (B1) og ikke generator-kode (D4).
- Avhengigheter: A1, A2, A4. Operatør bekrefter 2.2 som mål (anbefalt; alternativet — bli på 2.0 — betyr bevisst å stå utenfor framing-forsvaret og dokumenteres i så fall som risiko).
- Filer:
docs/phase-design-draft.md(§ Fase 7). - Fremgangsmåte: (1) Re-les
HANDOVER-CONTRACTS.md§ Handover 1 ogtemplates/trekbrief-template.mdFØRST (kontrakten kan ha flyttet seg siden 2026-07-10 — premiss-verifisering). (2) Oppdater frontmatter-blokken:brief_version: "2.2",framingmed avledningsregel (ny feature fra godkjent backlog →preserve; revidert feature →refine; operatør kan overstyre),phase_signals-strategi (generator setter liste, ellerphase_signals_partial: truesom ærlig fallback — begrunn valget),## TL;DR-regel (≤5 linjer, genereres fra task+Goal). (3) Definér handover-mekanikk (R-03): anbefalt loose-modus konsekvent (--brief <sti>for research og plan) ELLER dokumentert kopieringssteg til{project_dir}; rettHow to continue-templaten. (4) Avklarresearch.md-rollen ærlig: merk som «konsum av Voyage IKKE verifisert — avgjøres i B1». (5) Ny verifikasjonsnote med dato + kontraktversjon. - Nøkkelantakelser: Handover 1 er fortsatt 2.2 (test i steg 1);
phase_signals-enum[research, plan, execute, review]× effort[low, standard, high]uendret (test: grep i kontrakten). - Verifisering:
grep -n '"2.2"' docs/phase-design-draft.md≥1;grep -n "framing" docs/phase-design-draft.mdviser avledningsregel;grep -n "2\.0" docs/phase-design-draft.md§ Fase 7 → 0 normative treff; How-to-continue-templaten inneholder ikke--projectuten kopieringssteg; commit.
A6 — Forgejo-remote · S · [OPERATØR]
- Mål: Repoet tracked på privat Forgejo (aldri GitHub).
- Avhengigheter: Ingen; bør skje tidlig (backup av 25 commits).
- Operatør-steg: Opprett repo på
git.fromaitochitta.com. Deretter (sesjon eller operatør):git remote add origin <forgejo-url>+git push -u origin main. - Merk: STATE.md forblir gitignored (privat remote ville tillatt tracking per konvensjon — operatørvalg; dagens
.gitignore-linje beholdes til det er besluttet). - Verifisering:
git remote -vviser Forgejo-URL;git statusviserorigin/main-tracking; push uten feil.
A7 — app-factory-brief-synk · [STRØKET 2026-08-11 — operatør-beslutning] · (cross-repo: app-factory)
- Opprinnelig mål: app-factory-briefene sluttet å referere slettede Voyage-flater; v0.4.0-definisjonene identiske.
- Hvorfor strøket: app-factory utførte samme arbeid selv i sesjon H0-1 (2026-08-10, commit
954c99b) — de identifiserte overlappet i sin egen review (app-factory/docs/review-2026-07.md:74: «app-creators uratifiserte A7-sesjon foreslår å gjøre deler av dette derfra — eierskapet må avklares (anbefaling: H0-1 eier det)») og anbefalte selv at H0-1 eier det. Varslet app-creator via coord-melding 2026-08-10; operatør besluttet å stryke A7 fremfor å redusere den til en kryss-sjekk-sesjon. - Re-verifisert herfra 2026-08-11:
grep -rn "Handover 8\|v4\.3" app-factory/docs/→ samtlige treff er enten historisk-merket («flaten er slettet i Voyage v5.0.0», «v4.3-tiden») eller negerende («Ikke Handover 8», «Handover-settet er 1–7», «tidligere referanser … var feil og er fjernet»). Ingen normativ tekst hevder lenger v4.3/Handover 8 er gjeldende. - Konsekvens: C3s avhengighet til A7 er innfridd via app-factory H0-1, ikke via en app-creator-sesjon (se C3). R-01/R-19 lukkes av samme arbeid.
Fase B — Prototypen: reell round-trip, briefer, Voyage-kjøringer, shipping
B1 — F-001: første reelle Voyage-round-trip · M · [OPERATØR kjører Voyage] · (cross-repo: Akashic)
- Mål: Én app-creator-produsert brief konsumert av Voyage
/trekresearch+/trekplanuten ad-hoc-reparasjon — roadmap-forutsetning #3 innfridd reelt. - Scope-grense: IKKE
/trekexecute(gates av B7); ingen nye feature-briefer. - Avhengigheter: A5 (og A3 for korrekt pack-pin). Krever IKKE Apple-portal/Xcode (review Akse 5.5).
- Filer:
features/01-sun-position/brief.md(oppgradering til 2.2 + revisjonslogg-flytting per A2-beslutning), evt.revisions.md;state.json;prototype-run/friksjon.md(app-creator-repo, ved funn). - Fremgangsmåte: (1) Sesjon: oppgrader F-001 til 2.2 per A5 (framing, TL;DR, phase_signals, korrigert How-to-continue); flytt revisjonslogg per A2; review-gate på endringen (annotate via fungerende cache-sti). (2) Operatør kjører
/trekresearch(AQ-001: NOAA-pakke vs egen impl) og deretter/trekplanper den korrigerte handover-mekanikken. (3) Sesjon: dokumentér utfallet — validator-respons, omresearch.mdble konsumert (lukker review-«Ikke verifisert (b)»), AQ-001-svar, plan-kvalitet; oppdatervoyage_run_dir/status i state; friksjonsfør ALT som skurret. - Nøkkelantakelser: (a) 2.2-brief passerer strict (test: selve kjøringen; ved avvisning er feilmeldingen funnet — logg og fiks). (b) Voyage leser produsent-levert research.md (test: observasjon i steg 2; ved nei: A5-designet justeres — merket risiko).
- Verifisering: Voyage-validator uten strict-halt (operatør-bekreftet output);
{project_dir}/plan.mdeksisterer;state.jsonviservoyage_running: 1eller research/plan-fase gjennomført; friksjon ført; begge repo committet.
B2 — AQ-003-lukking + backlog rev 2 + revision-pending-lukkinger · S · [OPERATØR-beslutning inngår] · (cross-repo: Akashic)
- Mål: Åpne tråder fra S14 lukket: AQ-003 (F-001 pre-fetch — alt. 1/2/3), app-brief § Omfang #6/#7, constraints § F6/F7-policy.
- Avhengigheter: Operatør-svar på AQ-003 (
state.json:111-114har alternativene; AI-anbefaling der: 2 eller 3). - Fremgangsmåte: Applisér valget i 06-features-brief (rev 2) med review-gate; lukk de to revision-pending-attention-postene (
state.json:117-127) med små revisjoner av app-brief/constraints-brief; oppdater state. - Verifisering:
state.json.attentionutendecision-pending/revision-pending-entries for disse; revisjons-logger oppdatert; commit.
B3 — Fase 7-briefer: F-007 + F-002 · M · (cross-repo: Akashic; operatør annoterer) B4 — Fase 7-briefer: F-003 + F-004 + F-005 · M · (dito) B5 — Fase 7-briefer: resterende funksjonelle + F-T01–T03 · L, splittes ved behov (B5a/B5b) · (dito)
- Mål (felles): Alle 12 features har operatør-godkjent
brief.md(2.2) +context.mdper validert B1-mønster. - Scope-grense: Ingen Voyage-kjøringer i disse sesjonene; ingen template-endringer (avvik → friksjon + evt. A-fase-revisjon).
- Avhengigheter: B1 (validert mønster), B2 (stabil backlog). B3 før B4 før B5 (mønster-modning); innbyrdes uavhengig av B7/B8.
- Fremgangsmåte (per feature): Les 06-features-entry + relevante ADR/constraints/snapshot-utdrag; skriv brief.md + context.md innenfor A2-tabellen; aktiv review-gate (fra friksjon #16): annotate-HTML + eksplisitt sjekkliste til operatør («vis meg reglene»-spørsmål: er vindu-/domene-regler verifisert mot kilde? sporer Success Criteria til backlog-entry? er Non-Goals fullstendige?); applisér annotasjoner; friksjonsfør.
- Nøkkelantakelser: F-001-mønsteret generaliserer (test: første brief i B3 sammenlignes strukturelt mot F-001 rev 6 + validator-sjekk når D2 finnes — inntil da papir-sjekk mot kontrakt).
- Verifisering:
ls features/*/brief.md | wc -l→ 3 (B3) / 6 (B4) / 12 (B5); hver medphase_status-gate gjennomført (state.json per-feature-status per C2-semantikk når den finnes, inntil da feature_summary-tellere); ordtellinger innenfor A2-tabell eller flagget; commit per sesjon.
B6 — Rapid mode × claude-code-plugin-pack: n=2-test · M · (egen instans-katalog, IKKE Akashic)
- Mål: Første empiri på (a) den utestede default-stien (minimal app-brief → fase 7 direkte) og (b) domene-nøytralitet (n=2).
- Scope-grense: Én liten, reell plugin-oppgave fra operatørens faktiske behov; maks én feature-brief; ingen pack-utbygging utover det kjøringen krever (stub-hull dokumenteres som friksjon, tettes bare hvis kjøringen blokkeres).
- Avhengigheter: A1 (korrekt doc-base). Uavhengig av B1–B5 — kan kjøres når som helst etter A-fasen.
- Fremgangsmåte: Operatør velger reell plugin-idé; kjør pre-pipeline init + minimal-variant fase 1 + rapid-mode-hopp til fase 7 per utkastet, med
claude-code-plugin-packen; friksjonsfør hvert punkt der templater/pack er iOS-farget eller stub-hull stopper flyten. - Verifisering: Instans-katalog med
app.md, minimal01-app-brief.md,state.json(mode: "rapid"), énfeatures/01-*/brief.md; ≥1 ny friksjons-entry om default-stien; commit.
B7 — Xcode-miljø + Apple Developer Portal · M · [OPERATØR]
- Mål: Bygg-miljøet klart for
/trekexecute: simulator-runtime installert, portal-stegene (Team ID, Bundle ID + capabilities, App Group) fullført perakashic…/00-context/apple-developer-portal-checklist.md(8 steg). - Avhengigheter: Ingen (kan gå parallelt med B1–B5). Gater B8.
- Eksplisitt verifikasjon som del av steget: Test om simulator-bygg fungerer FØR portal-stegene er komplette (
xcodebuild build -scheme AkashicApp -destination 'generic/platform=iOS Simulator') — lukker review-«Ikke verifisert (a)» (App Groups-entitlement vs. tomt DEVELOPMENT_TEAM på sim). - Verifisering:
xcodebuild build→ BUILD SUCCEEDED (sim); portal-checklistens 8 punkter avkrysset; Xcode-versjon notert (26.6+ per juli 2026).
B8 — F-001 gjennom /trekexecute + /trekreview: pipelinen lukket ende-til-ende · M · [OPERATØR kjører Voyage] · (cross-repo: Akashic)
- Mål: Første feature implementert og reviewet via Voyage — roadmap-forutsetning #1 innfridd; første I/V-datapunkt (fem-nivå-vurderingen).
- Avhengigheter: B1 (plan finnes), B7 (byggmiljø).
- Fremgangsmåte: Operatør kjører
/trekexecute+/trekreview; sesjon etterpå: observér og dokumentér Voyage-retur-artefaktene (progress.json,review.mdivoyage_run_dir) — dette er den empiriske inputen til retur-ingest-designet (parkert utvidelse D) og C2; oppdater feature-status + state; friksjonsfør. - Verifisering:
{voyage_run_dir}/review.mdeksisterer; F-001-statusvoyage-complete(eller ærlig blocked-status med årsak);state.json.feature_summaryoppdatert; friksjon ført; commit.
B9–B12 — Featurevis Voyage-syklus til ≥5 shipped · L (serie; ~1 kø-oppføring per 1–2 features) · [OPERATØR kjører Voyage] · (cross-repo: Akashic)
- Mål: ≥5 features fra brief til ferdig (v0.4.0-boks 4,
roadmap.md:26); Akashic reelt byggbar app. - Avhengigheter: B8; briefer fra B3–B5 etter dependency-grafen i 06-features-brief (F-001 → F-002/F-003 → …).
- Mønster per syklus: operatør:
/trekresearch?+/trekplan+/trekexecute+/trekreview→ sesjon: status-ingest, evt. backtrack-håndtering (første reelle backtrack = observasjons-sesjon for[åpent]-mekanikken,phase-design-draft.md:1063), friksjonsføring. - Verifisering (per syklus + samlet):
state.json.feature_summary.shippedteller; ved ≥5: boks 4 kan krysses. Commit per syklus.
B13 — Pre-submission-sporet · M · [OPERATØR: Isha-brev, App Store Connect] · (cross-repo: Akashic)
- Mål: Submission-forutsetningene lukket: Isha-forespørsel sendt (5.2.2-autorisasjon + AQ-004/Alt 5-spørsmålene,
state.json:129-133), App Privacy re-screen («Data Not Collected»-posisjon), App Store-metadata per pack-scaffold. - Avhengigheter: B9–B12 (nær-ferdig app). Selve submission er operatør-milepæl utenfor sesjonskøen.
- Verifisering: attention-postene
action-pending(pre-submission) lukket eller datert sendt; metadata-artefakter finnes; commit.
Fase C — Konsolidering og kontrakt-låsing
C1 — Friksjonssammenstilling + pre-brief · M
- Mål: Roadmap-forutsetning #2 og #5: friksjons-data sammenstilt; pre-brief for implementeringen skrevet basert på observert mønster.
- Avhengigheter: A4, B1, B8 (+ løpende friksjon fra B-serien; trenger ikke ≥5 shipped).
- Filer:
docs/pre-brief.md(ny; input til/trekbrieffor D-fasen),prototype-run/friksjon.md(sammenstillings-seksjon). - Fremgangsmåte: Destillér #1–#18+ til: hva av utkastet er
[testet], hva ble[justert], hva forblir[hypotese](og hvorfor det er akseptabelt); skriv pre-brief med intent/goal/non-goals/constraints/success criteria for plugin-implementeringen — Voyage-kompatibel form slik at D-fasen kan startes med/trekbrief-disiplin om ønsket. - Verifisering:
docs/pre-brief.mdfinnes med de fem forutsetningene adressert punkt for punkt; roadmap-forutsetningene #1–#5 kan krysses av (eller gjenstående eksplisitt datert); commit.
C2 — state.json-schema + eksport-design · M
- Mål: Dokumentert, versjonert schema for
state.jsonog app-state-eksporten app-factory skal lese (alignment-brief Funn 2-feltene), med R-06-fiksene:"schema"-felt, samlet enum, per-feature fase 7-semantikk, attention-vokabular. - Scope-grense: Design + JSON Schema-fil; validator-kode er D3.
- Avhengigheter: B8 (eksporten designes mot observert bruk, ikke hypotese — roadmap-forutsetning #4).
- Filer:
docs/state-schema.md+schemas/app-state.schema.json(ny katalog). - Fremgangsmåte: Modellér: identitet, per-fase status (kapabilitet-semantikk, jf. review Akse 3.3), feature_summary, per-feature status inkl. voyage_run_status-enum, attention (lukket type-enum: decision-pending/action-pending/revision-pending/environment-blocker/review-pending + definert
phase-domene), session-felt, review_gate_history, implementation. Valider Akashic-instansen mot skjemaet på papir; avvik → normaliserings-liste. - Verifisering: Skjemafilen parser (
node -e 'JSON.parse(...)'); alle felter i dagensakashic/state.jsoner enten dekket eller eksplisitt avvist med migrasjonsnote; commit.
C3 — Kontrakt-låsing + roadmap-oppdatering · S
- Mål: Brief-handover-format erklært låst (v0.4.0-boks 1) og app-state-schema låst (boks 2); roadmap + alignment-synk oppdatert.
- Avhengigheter: B1 + minst tre reelle Voyage-konsumerte briefer (B8/B9-serien påbegynt), C1, C2. (A7 strøket 2026-08-11 — innfridd via app-factory H0-1, commit
954c99b, ikke via en app-creator-sesjon.) - Verifisering: roadmap-bokser 1–2 krysset med dato + commit-referanse;
phase-design-draft.md§ Fase 7 merket[testet <dato> — reell round-trip]; commit.
Fase D — Implementering (plugin) — gate: roadmap-forutsetningene #1–#5 reelle (C1 bekrefter)
Iron Law gjelder alle D-sesjoner: ingen produksjonskode uten feilende test først (node --test, zero deps).
D1 — Plugin-skjelett + test-harness · M
- Mål:
.claude-plugin/plugin.json(navn/versjon 0.5.0-dev), katalogstruktur (commands/skills/scripts/schemas/domain-packs),node --test-oppsett med første røyk-test. - Avhengigheter: C1 (pre-brief), C3.
- TDD: Failing test:
node --testkjører og finner testkatalog; manifest-validering (plugin-validator) grønn. - Verifisering:
node --test→ pass; plugin-validator uten feil; commit.
D2 — validate-brief.mjs · M
- Mål: Egen Handover 1-validator (målversjon 2.2) som pre-handover-gate — implementerer PUBLIC CONTRACT, kjører ikke Voyage-kode.
- Avhengigheter: D1; A5 (kontraktmål). Premiss-sjekk først: re-les HANDOVER-CONTRACTS for drift siden C3.
- TDD: Failing tests først: F-001 rev 6-fixture (2.0 → forventet pass m/advarsel om versjon under mål), syntetiske: manglende framing ved 2.2, topics>0∧skipped uten partial, nestet dict, manglende TL;DR, ugyldig phase_signals.
- Filer:
scripts/validate-brief.mjs,tests/validate-brief.test.mjs, fixtures. - Verifisering:
node --testgrønn;node scripts/validate-brief.mjs akashic…/features/01-sun-position/brief.md→ exit 0; dokumentert i README-seksjon; commit.
D3 — validate-state.mjs · M — Avh: D1, C2. TDD mot schemas/app-state.schema.json; fixture: normalisert Akashic-state. Verifisering: node scripts/validate-state.mjs akashic…/state.json → exit 0 etter normalisering (normaliseringen av Akashic-instansen er del av sesjonen, cross-repo).
D4 — Brief-generator (fase 7) · L — Avh: D2. TDD: generator tar 06-features-entry + upstream-utdrag → brief.md+context.md som passerer D2 i strict; fixtures fra Akashic (F-007). Scope-grense: ingen interaktivitet utover det § Fase 7 spec-er; revisjonslogg per A2-beslutning. Verifisering: generert brief → validate-brief.mjs exit 0; diff mot håndskrevet F-007 vurdert i review-gate.
D5 — init + snapshot-generator · M — Avh: D1. TDD mot den LÅSTE materialiserings-mekanikken (domain-pack-spec.md:184-192); fixture: ios-app@0.2.1 → sammenlign strukturelt med Akashic-snapshotet. Verifisering: generert snapshot byte-diffes mot forventet struktur (H1/metadata/patterns-pekere/H2-per-core-fil/overrides-tabell).
D6a/D6b/D6c — Fase-commands 1–2 / 3+5 / 6+readiness · M×3 — Avh: D1, D5. Hver: command/skill-tekst per phase-design-draft (som revidert i A-fasen), med review-gate-steg innebygd (aktiv sjekkliste fra friksjon #16); TDD for evt. skript-deler, prompt-artefakter verifiseres med tørrkjøring på fixture-app. Scope-grense: fase 4 implementeres IKKE som command (trigges-på-bruk-dokumentasjon holder til behovet oppstår — YAGNI).
D7 — annotate-vendoring · S · [OPERATØR-beslutning] — Avh: D1. Beslutning per review R-05/Akse 3.1: vendor kopi av annotate.mjs (opphav: voyage@, resync-notat) slik at review-gaten ikke avhenger av Voyage-interne stier. Hvis utvidelse C (annotasjons-eksport til fil) godkjennes: legg til i den vendorede kopien med TDD. Verifisering: node scripts/annotate.mjs <fixture.md> → <fixture>.html; gate-dokumentasjonen peker på vendored sti.
D8 (valgfri) — check-pack.mjs · S — Kun hvis operatør godkjenner utvidelse B. TDD: components↔disk, verified-alder, versjon↔changelog. Verifisering: kjørt mot begge packs → 0 feil.
Fase E — Per-app HTML
E1 — HTML-spec · M — Avh: C2 (state-schema er datakilden), A1 (drill-down-redefinisjon). Høst Akashic index.html (385 l) som prototype; spesifisér: rendering av alle artefakter, fase-progress med kapabilitet-semantikk, attention-liste, drill-down til voyage_run_dir-artefakter + annotate-HTML, polling-design (intervall, re-render-guard), theme-bootstrap, WCAG 2.2 AA. Verifisering: spec-dokument med eksplisitt DOM-datakontrakt mot app-state.schema.json; operatør-godkjent.
E2 — HTML-implementasjon · L — Avh: E1, D1. TDD der logikk er testbar (state→DOM-transformasjoner som rene funksjoner testet i node); single-file, vendored DS, zero deps. Verifisering: åpne mot Akashic-instansen via file:// → alle artefakter rendret, attention synlig, polling observert (endre state.json → UI oppdatert <30s); node --test grønn.
E3 — HTML-verifisering + Akashic-adopsjon · S · (cross-repo) — Kontrast-sjekk begge tema (WCAG 2.2 AA), erstatt/suppler statisk index.html i Akashic. Verifisering: kontrastverdier dokumentert; Akashic-commit.
Fase F — Eksport og v1.0.0
F1 — App-state-eksport + Voyage-retur-ingest · M — Avh: C2, D3, B8 (observerte retur-artefakter). Implementér eksport-skriving (om eksporten er state.json selv eller derivat avgjøres i C2) + ingest av progress.json/review.md → voyage_run_status/attention (utvidelse D, nå empirisk fundert). TDD. Verifisering: validate-state.mjs exit 0 på eksport; papir-test: alignment-brief Funn 2-spørsmålene besvarbare fra eksporten alene.
F2 — v0.4.0-erklæring · S — Avh: alle fem roadmap-bokser reelle (C3: 1–2; E2/E3: 3; B9–B12: 4; C1: 5). Verifisering: roadmap alle bokser krysset m/dato; CHANGELOG-entry; tag v0.4.0; push.
F3 — v1.0.0 · M — Avh: F1, F2 + at DoD-en (pipeline + HTML + generator + eksport) er verifisert i bruk på Akashic. Versjonssync (plugin.json, README, CHANGELOG), lisensvalg (README:38 «TBD»), tag, push. Verifisering: git tag viser v1.0.0; alle versjonsreferanser konsistente (grep); Forgejo viser taggen.
Vedlikeholds-oppføringer (utenfor sekvensen)
V1 — ios-app-pack reverifisering ved iOS 27-GA (~sept 2026) · S — conventions/gotchas/checklists/pack.json verified mot iOS 27 + ny Xcode; bump per D5-reglene i spec-en.
Avhengighetsgraf
graph TD
A1[A1 dok-resync] --> A2[A2 lengde+revlogg]
A1 --> A5[A5 fase7 2.2-design]
A2 --> A5
A4[A4 friksjon 16-18] --> A5
A3[A3 pack 0.2.1 + resync] --> B1
A5 --> B1[B1 F-001 round-trip ⚙]
A6[A6 Forgejo ⚙]
B1 --> B3[B3 F-007+F-002]
B2[B2 AQ-003 ⚙] --> B3
B3 --> B4[B4 F-003..005] --> B5[B5 rest+F-T]
A1 --> B6[B6 rapid×plugin-pack]
B7[B7 Xcode+portal ⚙] --> B8
B1 --> B8[B8 F-001 execute+review ⚙]
B8 --> B9[B9–B12 sykluser til ≥5 shipped ⚙] --> B13[B13 pre-submission ⚙]
A4 --> C1
B1 --> C1[C1 friksjon+pre-brief]
B8 --> C1
B8 --> C2[C2 state-schema]
C1 --> C3[C3 kontrakt-låsing]
C2 --> C3
C1 --> D1[D1 plugin-skjelett]
C3 --> D1
D1 --> D2[D2 validate-brief] --> D4[D4 brief-generator]
C2 --> D3[D3 validate-state]
D1 --> D3
D1 --> D5[D5 init+snapshot] --> D6[D6a-c fase-commands]
D1 --> D7[D7 annotate-vendoring ⚙]
C2 --> E1[E1 HTML-spec] --> E2[E2 HTML-impl] --> E3[E3 verif+adopsjon]
D1 --> E2
C2 --> F1[F1 eksport+ingest]
D3 --> F1
B8 --> F1
C3 --> F2[F2 v0.4.0]
E3 --> F2
B9 --> F2
C1 --> F2
F1 --> F3[F3 v1.0.0]
F2 --> F3
⚙ = inneholder manuelt operatør-steg.
Anbefalt sesjonssekvens
Sprint 1 (opprydding, alt Opus-eksekverbart): A1 → A2 → A3 → A4 → A5. Parallelt: A6 [operatør] når som helst. (A7 strøket 2026-08-11 — app-factory dekket den selv i H0-1.) Begrunnelse: ingenting annet bør bygges på premisser reviewen har felt; A-fasen er billig og fjerner all kjent råte.
Sprint 2 (bevis før volum): B1 (med operatørens Voyage-kjøring) → B2 → B3. Begrunnelse: én reell round-trip før 11 briefer skrives — hvis kjøringen feller deler av A5-designet, arver ikke briefene feilen. B6 kan flettes inn hvor som helst her (uavhengig spor, gir n=2 + default-sti-empiri billig). B7 [operatør] startes parallelt med B3 — den gater bare B8, ikke brief-skrivingen.
Sprint 3 (to parallelle spor): Brief-sporet B4 → B5 (Opus + operatør-gates) parallelt med bygge-sporet B8 → B9… (operatør-tungt). Sporene serialiseres kun der en Voyage-review tvinger backtrack inn i backloggen.
Sprint 4 (konsolidering): C1 → C2 → C3 så snart B8 + ~3 konsumerte briefer foreligger — venter ikke på ≥5 shipped (shipping-sporet fortsetter parallelt).
Sprint 5+ (bygging): D1 → {D2, D3, D5} → D4 → D6a-c → D7/D8; deretter E1 → E2 → E3; F1. F2 erklæres når shipping-sporet når ≥5; F3 til slutt. Begrunnelse: D/E bygger mot kontrakter som C-fasen har låst mot reelle data; HTML (E) sist av byggefasene fordi den konsumerer state-skjemaet og drill-down-artefakter som først da finnes.
Kritisk sti (manuelle operatør-blokkere markert)
A1 → A5 → B1[⚙ operatør kjører /trekresearch+/trekplan]
→ B8[⚙ B7: Xcode-komponentinstall + Apple-portal (8 steg) MÅ være ferdig]
→ C1/C2 → C3 → D1 → D2 → D4 → E1 → E2 → F1 → F2[⚙ ≥5 shipped via B9–B12-sykluser] → F3
De harde operatør-blokkerne, i rekkefølge: (1) Voyage-kjøringene (B1, B8, B9–B12) — per invariant kan ingen sesjon kjøre dem; (2) Xcode/portal (B7) — eneste blokker for execute-leddet, IKKE for round-trip; (3) Forgejo-repo (A6) — gater ingen sesjon, men backup-risiko løper til den er gjort; (4) beslutningene A2 (revisjonslogg-plassering), A5 (2.2-mål), AQ-003 (B2), D7 (vendoring); (5) Isha-forespørsel + App Store-submission (B13) — gater kun submission-milepælen. Lengste ledetid er B9–B12 (≥5 features × full Voyage-syklus + operatør-review); den bør startes så tidlig som B8 tillater og løpe parallelt med C/D/E — det er derfor F2, ikke D/E, som til slutt venter på den.