docs(a5): omskriv § Fase 7 til brief_version 2.2 per masterplan § A5
brief_version 2.0 → 2.2 (framing + phase_signals + ## TL;DR), re-verifisert
mot voyage/5.9.1 HANDOVER-CONTRACTS.md + trekbrief-template.md 2026-08-11.
Framing-avledningsregel (preserve/refine + operatør-overstyring), phase_signals
med begrunnet "standard"-default (ikke phase_signals_partial — fase 7 har intet
intervju å avbryte), TL;DR-generatorregel.
Handover-mekanikk (R-03) definert og verifisert mot kildekode, ikke antatt:
masterplanens anbefalte "loose-modus konsekvent" er ikke teknisk mulig —
/trekresearch har intet --brief-flagg og krever en pre-eksisterende --project
<dir>. app-creator standardiserer derfor project_dir på
features/{NN}-{slug}/voyage/ med et eksplisitt materialiserings-steg
(mkdir+cp) foran konsekvent --project-bruk for research/plan/execute — fikser
R-03s BRIEF_NOT_FOUND-feilscenario. research.md-rollen avklart ærlig som
app-creator-internt underlagsmateriale, ikke Voyage-input (R-04) — konsum
IKKE verifisert, avgjøres i B1.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EmQGwa3dQ36fjRGfZS7wmS
This commit is contained in:
parent
3dea665b4a
commit
a96b3a9989
1 changed files with 54 additions and 13 deletions
|
|
@ -230,7 +230,7 @@ Konservativ regel: kun det som faktisk er kjørt får `[testet]`. Per S5 har bar
|
|||
- `{NN}`-prefiks på feature-mapper håndhever dependency-rekkefølgen fra fase 6: lavere NN avhenger ikke av høyere NN innen samme app.
|
||||
- `brief.md` + `context.md` er obligatoriske per feature; resten kun når innhold finnes.
|
||||
- **`*.revisions.md` er audit-trail, aldri kontrakt** *(A2, 2026-08-10)*: hver revidert fase 1–6-artefakt får `<artefakt>.revisions.md` ved siden av seg; fase 7 samler én `revisions.md` per feature-mappe. Filene overleveres aldri til Voyage og teller ikke mot lengde-grensene. Er `revision: 0`, finnes de ikke.
|
||||
- En Voyage-kjøring skriver sine egne artefakter (`plan.md`, `progress.json`, `review.md`, …) i SIN `{project_dir}` = `.claude/projects/{date}-{slug}/`. app-creator linker dit via `voyage_run_dir` i `brief.md`-frontmatter og leser `progress.json`/`review.md` derfra for status-eksport — den kopierer dem ikke inn i `features/{NN}/`. (Operatøren kan velge å peke Voyages `--project` til `features/{NN}-{slug}/voyage/` — det er en operatør-beslutning, ikke noe app-creator dikterer.)
|
||||
- En Voyage-kjøring skriver sine egne artefakter (`plan.md`, `progress.json`, `review.md`, …) i SIN `{project_dir}`. app-creator linker dit via `voyage_run_dir` i `brief.md`-frontmatter og leser `progress.json`/`review.md` derfra for status-eksport — den kopierer dem ikke inn i `features/{NN}/` for øvrig. **A5 (2026-08-11) formaliserte `{project_dir}` som `features/{NN}-{slug}/voyage/`**, ikke `.claude/projects/{date}-{slug}/` — se § Fase 7 «Handover-mekanikk» for den verifiserte begrunnelsen (`/trekresearch` krever en eksisterende `--project`-katalog og har ingen løs `--brief`-modus).
|
||||
- `{app-creator-instance-dir}`-plassering er `[åpent]` — kan være under `~/.claude/projects/`, under en konkret repo, eller egen mappe (Akashic-instansen ligger i eget repo, `/Users/ktg/repos/akashic-intelligence/` — én gyldig variant).
|
||||
|
||||
## Felles brief-frontmatter-felter `[hypotese]`
|
||||
|
|
@ -839,34 +839,61 @@ Før den første feature-briefen overleveres til Voyage: en lett koherens-sjekk
|
|||
2. AI genererer `brief.md` (Voyage strict-mode-kompatibel) + `context.md` (embedder upstream) i `features/{NN}-{slug}/`.
|
||||
3. Operatør reviewer, approver eller annoterer (samme review-gate som for interne briefer — se under).
|
||||
4. Approvert: filene er klare for Voyage-handover.
|
||||
5. Operatør kjører Voyage manuelt: `/trekplan --brief features/{NN}-{slug}/brief.md` (eller `--project features/{NN}-{slug}/voyage/` hvis operatøren vil ha Voyages artefakter der).
|
||||
5. Operatør materialiserer og kjører Voyage manuelt — se **Handover-mekanikk** under; kort versjon: `mkdir -p features/{NN}-{slug}/voyage/ && cp features/{NN}-{slug}/brief.md features/{NN}-{slug}/voyage/brief.md`, deretter `--project features/{NN}-{slug}/voyage/` konsekvent for research/plan/execute.
|
||||
6. AI/operatør oppdaterer F-XXX-status til `voyage-running` i features-brief; `voyage_run_dir` fylles i `brief.md`-frontmatter.
|
||||
|
||||
**Handover-mekanikk (R-03, A5-beslutning — verifisert, ikke antatt):** `/trekresearch` har ikke noe løst `--brief`-modus (kun `--project <dir>`, og `{dir}` må eksistere på forhånd — verifisert mot `trekresearch.md` Phase 1). Konsekvent `--project` er derfor ikke et preferansevalg, men den eneste mekanikken som fungerer for hele pipelinen når `research_topics > 0`. app-creator standardiserer på **`features/{NN}-{slug}/voyage/`** som Voyages `project_dir` (ikke `.claude/projects/{date}-{slug}/` — validatoren håndhever ikke stimønsteret, kun feltets tilstedeværelse, så dette er gyldig under Handover 1s «no producer is privileged»). Handover-steget: `mkdir -p features/{NN}-{slug}/voyage/` og kopiér `brief.md` dit (`project_dir`-frontmatter-feltet i `brief.md` peker allerede dit — se frontmatter-blokken under), deretter kjør research/plan/execute med samme `--project features/{NN}-{slug}/voyage/` gjennom hele pipelinen. Dette holder Voyage-siden av en feature selvstendig under featurens egen mappe, i tråd med layout-notatet i § Filsystem-layout, og unngår R-03s `BRIEF_NOT_FOUND`-feilscenario fordi operatøren nå har et reelt kommando-steg før første Voyage-kall i stedet for en `How to continue` som pekte på en katalog ingen hadde opprettet.
|
||||
|
||||
**Lengde og revisjonshistorikk i fase 7** *(A2-beslutning 2026-08-10, operatør — full begrunnelse i § Hard lengde-grense)*: `brief.md` ~750 ord (flagg >1000), `context.md` ~650 (>900), `research.md` ~600 (>800). Revisjonshistorikk skrives i **`features/{NN}-{slug}/revisions.md`**, aldri som `## Revisjons-logg`-seksjon i `brief.md` — kontraktsfila skal bære kontrakten, ikke audit-trailen. Driveren er målt: da loggen lå i fila, vokste F-001 `brief.md` til 4523 ord der ~740 var kontrakt.
|
||||
|
||||
### `brief.md` — Voyage Handover-1-kontrakt `[STALE — pinnet til brief_version 2.0; omskrives i A5, testes i B1]`
|
||||
**`research.md`-rollen** *(A5-avklaring, jf. review R-04)*: `features/{NN}-{slug}/research.md` er app-creator-internt underlagsmateriale — kandidat-tabell, kriterier og beslutningsprosessen bak `brief.md` sine `## Research Plan`-Topic-entries. Det er IKKE en fil Voyage konsumerer: Handover 1 nevner ingen produsent-levert `research.md`, og Voyages egne research-artefakter (Handover 2) skrives til `{project_dir}/research/*.md` av `/trekresearch` selv — et helt annet sted. Om og hvordan `research.md`s innhold i tillegg bør nå Voyage (via `context.md` punkt 6, eller ikke i det hele tatt siden Topic-entryene i `brief.md` allerede bærer spørsmålet) er **konsum av Voyage IKKE verifisert — avgjøres i B1.**
|
||||
|
||||
> **Verifikasjons-status (oppdatert 2026-08-10, A1):** blokken under ble verifisert mot Voyage-kildekode **2026-05-11** og er **ikke re-verifisert siden**. Gjeldende Handover 1 er **brief_version 2.2** (v5.1 innførte 2.1 med sequencing-gate; v5.5 innførte 2.2 med `framing` + `## TL;DR`). 2.0 er fortsatt *gyldig* under kontraktens N-1-vindu — en papir-gjennomgang av F-001 rev 6 mot 5.9.1-validatoren passerte, også i strict — men templaten sitter i kontraktens eget dokumenterte forsvars-hull, og kontrakten adresserer «a Tier-2 per-app producer» direkte med kravet om å emittere 2.2.
|
||||
### `brief.md` — Voyage Handover-1-kontrakt `[revidert 2026-08-11 — A5: brief_version 2.2, framing/phase_signals/TL;DR, handover-mekanikk; runde-trip fortsatt untestet, se B1]`
|
||||
|
||||
> **Verifikasjons-status (oppdatert 2026-08-11, A5):** blokken under er omskrevet fra brief_version 2.0 til **2.2**, re-verifisert mot Voyage-kildekode **2026-08-11** (`~/.claude/plugins/cache/ktg-plugin-marketplace/voyage/5.9.1/docs/HANDOVER-CONTRACTS.md` § Handover 1 + `templates/trekbrief-template.md`). 2.2 er fortsatt gjeldende baseline (uendret siden A1s lesning 2026-07-10): 8 påkrevde Voyage-felter + `framing` (påkrevd ≥2.2) + `## TL;DR` (påkrevd ≥2.2); `phase_signals`-enum `[research, plan, execute, review]` × effort `[low, standard, high]` × model `[sonnet, opus, fable]` uendret.
|
||||
>
|
||||
> **Ingen reell round-trip har noensinne kjørt** (`voyage_running: 0`). «Round-trip-test PASS» i friksjon #14 og i Akashic-loggen er en **mental simulering**, ikke en kjøring — behandle den som papir. Omskriving til 2.2 med `framing`-avledning, TL;DR-generering og `phase_signals`-strategi er masterplan **A5**; første reelle kjøring er **B1**. Ikke bygg videre på blokken under før A5 er kjørt.
|
||||
> **Premiss-korrigering (A5, verifisert mot kildekode, ikke antatt):** masterplanens A5-fremgangsmåte anbefalte «loose-modus konsekvent (`--brief <sti>` for research og plan)» som førstevalg for handover-mekanikken (R-03). Det er **ikke teknisk mulig**: `/trekresearch` støtter KUN `--project <dir>` — det finnes ikke noe `--brief`-flagg i kommandoen (`trekresearch.md` Phase 1, punkt 4), og `{dir}` MÅ eksistere på forhånd (hard halt ellers). `/trekplan` støtter begge moduser, men selv i `--brief`-modus styres plan.md-destinasjonen av briefens EGEN `project_dir`-frontmatter-felt når det er satt (`trekplan.md:315-316`) — og `project_dir` er et påkrevd Handover 1-felt, så det er alltid satt. Handover-mekanikken under er derfor bygget på det gjenstående alternativet — dokumentert materialiserings-steg — ikke løs modus. Se «Handover-mekanikk» under.
|
||||
>
|
||||
> **Ingen reell round-trip har noensinne kjørt** (`voyage_running: 0`). «Round-trip-test PASS» i friksjon #14 og i Akashic-loggen er en **mental simulering**, ikke en kjøring — behandle den som papir. Denne omskrivingen (2.2, framing-avledning, TL;DR-generering, phase_signals-strategi, handover-mekanikk) er masterplan **A5**; første reelle kjøring er **B1**. Handover-mekanikken og `research.md`-rollen under er design, ikke verifisert adferd — B1 tester dem mot en reell Voyage-kjøring.
|
||||
|
||||
**Frontmatter** — alle 8 Voyage-påkrevde felter + state-machine-constraint + app-creator-interne felter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
# --- Voyage-påkrevde (Handover 1, brief_version 2.0) ---
|
||||
# --- Voyage-påkrevde (Handover 1, brief_version 2.2 — verifisert 2026-08-11 mot voyage/5.9.1) ---
|
||||
type: trekbrief
|
||||
brief_version: "2.0"
|
||||
brief_version: "2.2"
|
||||
created: 2026-05-10
|
||||
task: "{én-linjes task-beskrivelse — typisk feature-formålet}"
|
||||
slug: {feature-slug}
|
||||
project_dir: .claude/projects/{YYYY-MM-DD}-{feature-slug}/
|
||||
project_dir: features/{NN}-{feature-slug}/voyage/ # se «Handover-mekanikk» — IKKE .claude/projects/, A5-korrigering
|
||||
research_topics: {N} # ≥ 0
|
||||
research_status: pending # pending | in_progress | complete | skipped
|
||||
# State-machine: hvis research_topics > 0 OG research_status === "skipped" → brief_quality: partial PÅKREVD
|
||||
brief_quality: complete # complete | partial — sett "partial" hvis ovenstående gjelder
|
||||
# Valgfrie Voyage-felter:
|
||||
source: manual # interview | manual — app-creator-genererte er "manual"
|
||||
# v5.5 — framing: forholdet til tidligere operatør-intensjon. PÅKREVD ved brief_version ≥ 2.2.
|
||||
# Avledningsregel (A5): ny feature fra godkjent 06-features-brief-backlog (revision: 0 på
|
||||
# denne brief.md) → preserve (formaliserer allerede godkjent intensjon, introduserer ingen ny).
|
||||
# Revidert feature (revision > 0 — backtrack fra arkitektur/constraints/annotasjon) → refine.
|
||||
# replace/new-direction avledes ALDRI automatisk — kun operatør-overstyring via samme
|
||||
# annotate.mjs-review-gate som resten av fase 7 (§ Annotering før handover).
|
||||
framing: {preserve | refine} # operatør kan overstyre til replace | new-direction
|
||||
# v5.1 — per-phase effort + model. Fase 7 har INGEN interaktiv Phase-3.5-ekvivalent (intet
|
||||
# operatør-intervju per fase) — phase_signals_partial: true ville derfor feilaktig lest som et
|
||||
# avbrutt intervju. Generatoren emitterer i stedet eksplisitt "standard" (samme verdi
|
||||
# profile-resolveren ville falt tilbake til uansett) for alle fire faser — ærlig og
|
||||
# skjema-gyldig; operatør redigerer enkeltlinjer i brief.md før Voyage-kjøring om ønsket.
|
||||
phase_signals:
|
||||
- phase: research
|
||||
effort: standard
|
||||
- phase: plan
|
||||
effort: standard
|
||||
- phase: execute
|
||||
effort: standard
|
||||
- phase: review
|
||||
effort: standard
|
||||
|
||||
# --- app-creator-interne (Voyage ignorerer, eller app-creator stripper ved handover) ---
|
||||
brief_type: feature
|
||||
|
|
@ -875,7 +902,7 @@ parent_app: {app-slug}
|
|||
parent_feature: F-001
|
||||
domain_pack: "ios-app@{version}" # pin til den versjonen appen faktisk bruker
|
||||
revision: 0
|
||||
voyage_run_dir: null # fylles når Voyage kjøres — peker til Voyages {project_dir}
|
||||
voyage_run_dir: null # fylles når Voyage kjøres — peker til {project_dir} (= features/{NN}-{slug}/voyage/)
|
||||
voyage_run_status: null # fylles av app-creator state-eksport fra Voyages progress.json/review.md
|
||||
---
|
||||
```
|
||||
|
|
@ -887,6 +914,12 @@ voyage_run_status: null # fylles av app-creator state-eksport fra V
|
|||
|
||||
> Generert av app-creator fase 7 på {YYYY-MM-DD} fra {app-slug} feature {F-XXX}.
|
||||
|
||||
## TL;DR ← PÅKREVD ved brief_version ≥ 2.2
|
||||
{≤5 linjer. Komponert av generatoren fra `task`-linjen + en 2-3-setnings kondensering av
|
||||
## Goal under, avsluttet med en eksplisitt framing-linje — f.eks. "Framing: preserve —
|
||||
formaliserer godkjent F-003 fra 06-features-brief.md." Skrevet FØRST i lesrekkefølge (som i
|
||||
Voyages egen template) slik at en reviewer fanger en feil premiss før resten av briefen.}
|
||||
|
||||
## Intent ← PÅKREVD
|
||||
{Hvorfor denne featuren — fra feature-formål + relevant del av app-brief Problem & motivasjon. 3-5 setninger. Load-bearing.}
|
||||
|
||||
|
|
@ -926,14 +959,22 @@ voyage_run_status: null # fylles av app-creator state-eksport fra V
|
|||
- {[ANTAKELSE] som fortsatt gjelder for denne featuren}
|
||||
|
||||
## How to continue
|
||||
|
||||
Materialiser først (obligatorisk — se «Handover-mekanikk»):
|
||||
```bash
|
||||
/trekresearch --project {project_dir} --external "{Topic 1-spørsmål}" # hvis research_topics > 0
|
||||
/trekplan --project {project_dir}
|
||||
/trekexecute --project {project_dir}
|
||||
mkdir -p features/{NN}-{slug}/voyage/
|
||||
cp features/{NN}-{slug}/brief.md features/{NN}-{slug}/voyage/brief.md
|
||||
```
|
||||
|
||||
Deretter, konsekvent `--project` (ikke `--brief` — `/trekresearch` støtter det ikke):
|
||||
```bash
|
||||
/trekresearch --project features/{NN}-{slug}/voyage/ --external "{Topic 1-spørsmål}" # hvis research_topics > 0, gjenta per topic
|
||||
/trekplan --project features/{NN}-{slug}/voyage/
|
||||
/trekexecute --project features/{NN}-{slug}/voyage/
|
||||
```
|
||||
```
|
||||
|
||||
**Round-trip-test (krav før formatet låses):** skriv en faktisk Akashic-feature-brief → kjør `/trekplan --brief features/{NN}-{slug}/brief.md` → bekreft at Voyages brief-validator passerer den i **strict mode uten endring**. Gjøres når Akashic når fase 7; formatet over låses ikke før da. **Re-verifiser Voyage-kontrakten fra kildekode** rett før omskrivingen — Voyage er en levende plugin. Kanonisk sti (samme cache-regel som for `annotate.mjs`, A1/R-05): `~/.claude/plugins/cache/ktg-plugin-marketplace/voyage/<nyeste-versjon>/docs/HANDOVER-CONTRACTS.md` og `templates/trekbrief-template.md`. Slå opp nyeste versjon med `ls` — hardkod ikke versjonsnummeret, og bruk ikke den gamle `plugins/marketplaces/…`-stien (den finnes ikke).
|
||||
**Round-trip-test (krav før formatet låses):** skriv en faktisk Akashic-feature-brief → materialiser til `features/{NN}-{slug}/voyage/` (se «Handover-mekanikk») og kjør `/trekplan --project features/{NN}-{slug}/voyage/` → bekreft at Voyages brief-validator passerer den i **strict mode uten endring**. Gjøres når Akashic når fase 7; formatet over låses ikke før da. **Re-verifiser Voyage-kontrakten fra kildekode** rett før omskrivingen — Voyage er en levende plugin. Kanonisk sti (samme cache-regel som for `annotate.mjs`, A1/R-05): `~/.claude/plugins/cache/ktg-plugin-marketplace/voyage/<nyeste-versjon>/docs/HANDOVER-CONTRACTS.md` og `templates/trekbrief-template.md`. Slå opp nyeste versjon med `ls` — hardkod ikke versjonsnummeret, og bruk ikke den gamle `plugins/marketplaces/…`-stien (den finnes ikke).
|
||||
|
||||
### `context.md` — embedder upstream (BMAD-prinsippet: embedding slår linking)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue