diff --git a/BOOTSTRAP.md b/BOOTSTRAP.md index c4f9775..95db0a1 100644 --- a/BOOTSTRAP.md +++ b/BOOTSTRAP.md @@ -8,11 +8,18 @@ For the owner's two concurrent Codex architect sessions, read [LANE_2](docs/roadmap/lanes/LANE_2.md), and both linked live coordination issues. The [allocation index](docs/roadmap/dual-lane-development-v1.json) covers the existing 34 families without changing their owning dependency graphs or the -historical count. Select independent ready subsets; do not issue a duplicate -prompt or mutate another lane's repository/runtime. The next suitable scope -moves to a qualified Forge Mission route as soon as it can, not after the full -portfolio. This is operator planning/navigation, not a new runtime scheduler, -authorization, maintenance operation or change to Mission-3 acceptance. +historical count. Every assignment must follow +[vertical-slice delivery](docs/roadmap/VERTICAL_SLICE_DELIVERY_V1.md): one kickoff +covers implementation, required tests/refactoring, review fixes, supported owner +authorization, PR, protected main merge and declared artifact/installed delivery. +The owner has delegated those ordinary lifecycle steps within the selected +released scope; do not ask for routine reapproval or issue separate test/DoD/ +merge prompts. Real permissions, independent assurance and material effect +boundaries remain mandatory. This is not a fabricated runtime grant. +Select independent complete outcomes; do not issue duplicates or mutate another +lane's repository/runtime. Move supported scope to qualified Forge Missions as +soon as possible, not after the whole portfolio. Reading this planning does not +start a scheduler, reset, release or Mission, or change Mission-3 acceptance. ## Roadmap overview and autonomy-first focus diff --git a/docs/roadmap/DUAL_LANE_DEVELOPMENT_V1.md b/docs/roadmap/DUAL_LANE_DEVELOPMENT_V1.md index d9dea0e..8b63d6f 100644 --- a/docs/roadmap/DUAL_LANE_DEVELOPMENT_V1.md +++ b/docs/roadmap/DUAL_LANE_DEVELOPMENT_V1.md @@ -1,66 +1,68 @@ # Twee ontwikkelsporen tot Forge het werk overneemt -**Vastgelegd:** 18 september 2026. **Status:** owner-requested tijdelijke werkindeling; geen nieuwe productruntime, Missionlijst of uitvoeringsautorisatie. **NO_BUMP.** +**Vastgelegd:** 18 september 2026. **Status:** owner-requested tijdelijke werkindeling met expliciet begrensd lifecyclemandaat; geen nieuwe productruntime, automatische Missionlijst of runtimegrant. **NO_BUMP.** -Doel: maximaal twee onafhankelijke Codex-uitvoeringsopdrachten tegelijk, vanuit twee blijvende architectsessies. `ARCHITECT_1` bedient `LANE_1`; `ARCHITECT_2` bedient `LANE_2`. Na eenmalige initialisatie volstaan **“geef volgende prompt (1)”** en **“geef volgende prompt (2)”**. Het aantal aftrappen is geen succesmaat: het doel blijft zo vroeg mogelijk geschikte werkpakketten door Forge laten afleiden en via EP uitvoeren. +Doel: maximaal twee onafhankelijke Codex-uitvoeringsopdrachten tegelijk, vanuit twee blijvende architectsessies. `ARCHITECT_1` bedient `LANE_1`; `ARCHITECT_2` bedient `LANE_2`. Na eenmalige initialisatie volstaan **“geef volgende prompt (1)”** en **“geef volgende prompt (2)”**. Het doel blijft zo vroeg mogelijk geschikte werkpakketten door Forge laten afleiden en via EP uitvoeren. -Deze indeling is nieuw, op verzoek van de eigenaar. Zij ordent de bestaande [inventaris en focus](ROADMAP_OVERVIEW_AND_AUTONOMY_FOCUS.md), maar verandert geen harde afhankelijkheden, peer-eigenaarschap, geparkeerde besluiten of Mission-3-criteria. De [machineleesbare indeling](dual-lane-development-v1.json) verwijst naar alle 165 analytische tel-eenheden uit de 34 families, met de zeven gezamenlijke nodes eenmaal. De oorspronkelijke snapshot van 17 september blijft ongewijzigd en is geen audit van wat vandaag nog ongebouwd is. +**Iedere uitgegeven opdracht is voortaan een volledige verticale slice volgens [VERTICAL_SLICE_DELIVERY_V1](VERTICAL_SLICE_DELIVERY_V1.md).** Implementatie, noodzakelijke refactoring, tests, reviewcorrecties, echte owner-authorizationhandelingen, PR, protected main-merge en verklaarde release/installatie zijn interne stappen van dezelfde aftrap. Geen tweede of derde prompt om de oorspronkelijke DoD alsnog te halen. Het expliciete eigenaarsmandaat dekt normale lifecyclehandelingen binnen de geselecteerde vrijgegeven scope; echte productrechten, onafhankelijke assurance en materiële scopegrenzen blijven gelden. + +De indeling ordent de bestaande [inventaris en focus](ROADMAP_OVERVIEW_AND_AUTONOMY_FOCUS.md), maar verandert geen harde afhankelijkheden, peer-eigenaarschap, parkeringen of Mission-3-criteria. De [machineleesbare indeling](dual-lane-development-v1.json) verwijst naar alle 165 analytische tel-eenheden uit de 34 families, met zeven gezamenlijke nodes eenmaal. De snapshot van 17 september blijft ongewijzigd. Technische nodes zijn scope-/bewijsreferenties, niet automatisch uitvoerbare verticale items of één prompt per node. ## 1. Twee rollende rijen, geen verplichte gezamenlijke rondes | Sessierouter | Primair werk | Onafhankelijke terugval | Gedeelde registratie | | --- | --- | --- | --- | -| [LANE_1](lanes/LANE_1.md) | Forge: autonomie, zelfstandige services, planning en projectloop | Forge Platform: nuttige, reeds geautoriseerde contract-/read-only-/compositionslice | [Forge #141](https://github.com/pcvantol/forge/issues/141) | -| [LANE_2](lanes/LANE_2.md) | EP: correcte/efficiënte uitvoering en parallelle Actions | Workspace: eigen Server/API/contract-/fixturewerk, daarna gekwalificeerde consumers | [Forge #142](https://github.com/pcvantol/forge/issues/142) | +| [LANE_1](lanes/LANE_1.md) | Forge: autonomie, zelfstandige services, planning en projectloop | Forge Platform: zelfstandige bruikbare compositie-/beheerfunctie tot eigen DoD | [Forge #141](https://github.com/pcvantol/forge/issues/141) | +| [LANE_2](lanes/LANE_2.md) | EP: correcte/efficiënte uitvoering en parallelle Actions | Workspace: bruikbare eigen service/read-only operatie inclusief ingang en tests; consumers zodra qualified | [Forge #142](https://github.com/pcvantol/forge/issues/142) | -Dit zijn standaard repositoryhouders, geen permanente productteams. De twee pools overlappen niet, zodat gelijktijdige NEXT-aanvragen niet dezelfde repository kunnen claimen. Zonder expliciete overdracht schrijft lane 1 niet in EP/Workspace en lane 2 niet in Forge/Forge Platform. Een sessie mag vrij tussen haar eigen vrije repositories kiezen. Een andere verdeling, bijvoorbeeld Workspace in lane 1 en EP in lane 2, kan via de korte overdrachtsprocedure hieronder; geen nieuwe architectuurwijziging nodig. +Dit zijn standaard repositoryhouders, geen permanente productteams. De pools overlappen niet zodat gelijktijdige NEXT-aanvragen niet dezelfde repository claimen. Zonder bevestigde overdracht schrijft lane 1 niet in EP/Workspace en lane 2 niet in Forge/Forge Platform. Vrije keuze binnen de eigen pool blijft mogelijk. Een andere verdeling, zoals Workspace in lane 1 en EP in lane 2, volgt de korte tweezijdige overdracht hieronder. -Een lane die klaar is, hoeft niet op de andere te wachten. Zij kiest de hoogst geprioriteerde **werkelijk uitvoerbare** subset. Een geblokkeerde dependency wordt niet omzeild; de vrije lane pakt ander zinvol werk. Wanneer geen veilige, geautoriseerde combinatie beschikbaar is, is `WAIT` correct. “Altijd twee” is een benuttingsdoel, geen reden om werk te verzinnen, scopes te vergroten of kritieke gedeelde resources te overbelasten. Er zijn geen doorlooptijdschattingen die een mathematisch optimale verdeling bewijzen. +Een lane die klaar is, hoeft niet op de andere te wachten. Zij kiest de hoogst relevante werkelijk uitvoerbare **verticale** subset. Een geblokkeerde dependency wordt niet omzeild. Wanneer geen veilige geautoriseerde combinatie bestaat, is `WAIT` correct. “Altijd twee” is een benuttingsdoel, geen reden voor kunstmatige contract-only drukte, scopegroei of resourceoverbelasting. De telling is geen mathematisch optimale tijdsverdeling. -## 2. Eerste werkvolgorde en concrete combinaties +## 2. Voorkeursvolgorde in bruikbare resultaten -Dit is een rollende voorkeursvolgorde, geen nieuw execution-DAG of vast aantal prompts. Actuele producer-evidence gaat vóór de voorbeeldrij; contract-first implementatie kan eerder dan finale integratie worden geleverd als de owning roadmap dat toestaat. +De tabel is selectieoriëntatie, geen execution-DAG, starttoestemming of één opdracht per opgesomde technische node. Bundel per aftrap alle lagen en toepasselijke DoD voor haar concrete consumergrens. Een producercontract mag intern eerder worden geleverd om de andere lane te ontsluiten; de oorspronkelijke slice blijft open tot haar afgesproken finish line. -| Moment / prioriteit | LANE_1 | LANE_2 | Voorwaarde / reden dat dit kan overlappen | +| Moment / prioriteit | LANE_1 | LANE_2 | Onafhankelijkheid en volledige slicegrens | | --- | --- | --- | --- | -| Huidige voorbereiding | Bestaande reset-`prepare → revalidate`-correctie adopteren/afronden als zij nog niet geleverd is; niet opnieuw starten | Eerst een kleine Workspace `WH-CONTRACT`-slice wanneer EP nog door die correctie nodig kan zijn; anders ontbrekende EP `SA-CTX`/`SA-ISO`-slice | Geen gedeelde bronwriter. Onderhoud/EP-scope eerst vaststellen; lege PR-lijst bewijst geen vrije lokale sessie. | -| Echte clean-preflight en Mission 3 | Alleen het bestaande expliciet geautoriseerde testcontract; target-main, beide runtimeversies en echte datasetresources reserveren | Workspace eigen contract-/servicewerk op geïsoleerde fixtures; geen EP-/Forge-installatie of testtargetmutatie | Runtime- en baselinefreeze geldt over beide lanes. Geen nieuwe testcriteria; geen resetautorisatie door deze tabel. | -| Na beoordeling van de live proef | Server-only `FSH-SERVICES` met benodigde `FH-*`-delen; ontbrekende `FCI-*`-regressiedekking als begrensde sublevering | Resterende echte EP context-/invocation-isolatie en observatiebewijs; daarna toepasselijke deterministische controls | Gescheiden repositories en fixtures; finale activatie in afgesproken kort onderhoudsvenster. Niet eerst de hele Console of SA-familie eisen. | -| Paralleliteit voorbereiden | `PA-F0`, daarna `PA-F1/PA-F2` | Na beschikbaar Forge `PA-F0`: `PA-E0 → PA-E1 → PA-E2/PA-E3`; `PA-E4` volgens eigen DAG | EP wacht op het contract, niet op complete Forge-paralleliteit. Forge state/planning kan naast EP-uitvoering groeien. | -| Paralleliteit aansluiten | `PA-F3` zodra vereiste EP-subsets bewezen zijn; daarna `PA-F4/PA-F5` | EP negatieve cases/readback en `PA-EQ` | Geen Forge-consumer-PASS uit mocks alleen; gekoppelde kwalificatie gebruikt exact de juiste artifacts. | -| Werkvoorraad zonder eigenaar-als-berichtenbus | Kleinste `PRM-F-*` manual/approved-worklist-slice en passende `FCO-*` | Relevante EP policy/progression/receipt-subsets; anders Workspace read-only project-/beslisprojectie | Projectloop hoeft niet op complete Actionparalleliteit of volledige delegatie te wachten; oorspronkelijke PRM/FCI/FCO-edges blijven gelden. | -| Overdrachtsmoment | Volgende ondersteunde scope als **Forge-Missionaftrap** in plaats van directe implementatieprompt | Zelfde keuze per scope; directe Codex alleen voor aantoonbaar nog niet door Forge gedragen werk | Niet wachten op alle 34 families. Twee Codex-lanes geven geen bevoegdheid om twee product-Missions parallel te starten wanneer de runtime dat nog niet ondersteunt. | +| Huidige voorbereiding | Bestaande reset-`prepare → revalidate`-correctie adopteren en volledig tot de reeds afgesproken qualified/installed grens afronden, indien nog open | Als EP bezet is: een zelfstandig bruikbare Workspace eigen read-only service/ingang met contract, authorizationgevallen, tests en protected delivery; anders een volledige ontbrekende EP-context/isolationverbetering | Geen tweede resetopdracht, geen losse WH-CONTRACT-aftrap zonder implementatie. Bestaande bron-/runtimereserveringen eerst vaststellen. | +| Clean-preflight en Mission 3 | Alleen het bestaande expliciet geautoriseerde testcontract, inclusief zijn volledige preflight en bewijs | Onafhankelijke Workspace-operatie op geïsoleerde fixtures tot eigen DoD, zonder canarytarget of actieve Forge/EP te wijzigen | Beide lanes respecteren de freeze; deze tabel verleent geen resetautorisatie en wijzigt geen acceptatiecriteria. | +| Na beoordeling live proef | Bruikbare standalone Forge serve/API-slice met benodigde FSH/FH/FCI-delen, tests, veilige herstart, protected delivery en afgesproken installed bewijs | Eén complete EP-correctheids/efficiëntieverbetering door het werkelijke providerpad met regressies, review, merge en toepasselijke consumentdelivery | Gescheiden bron/fixtures; activatie in overeengekomen venster. Geen “server nu, installatie later”-verrassing of verplicht wachten op hele Console/SA-familie. | +| Paralleliteit voorbereiden | Bruikbare multi-Actionplanning/readback-slice, met benodigde `PA-F0/F1/F2`-delen intern, negatieve tests en exact geleverd producercontract | Na werkelijk beschikbaar Forge-contract: complete begrensde EP-concurrencyslice over vereiste `PA-E*`-delen, inclusief isolatie, foutpaden en eigen bewijs | Afhankelijkheidsvolgorde blijft. Contractvrijgave kan intern overlappen met vervolgwerk; geen mock-PASS voor live peeruitvoering. | +| Paralleliteit aansluiten | Complete Forge-consumeraansluiting tot afgesproken geverifieerde parallelle keten via `PA-F3/F4/F5/FQ`-subsets | Benodigde EP producer-/bewijsaanvulling tot eigen volledige kwalificatie en delivery | Leg vooraf vast wie de gezamenlijke join uitvoert onder zijn open assignment. Geen onverwachte derde prompt voor integratietests of merges. | +| Werkvoorraad zonder eigenaar als berichtenbus | Bruikbare manual/approved-worklist-slice met nodige `PRM-F-*`- en `FCO-*`-delen, echte gates, tests en oplevering | Complete benodigde EP policy/progression/receiptfunctie of zelfstandige Workspace read-only beslisprojectie | Geen afhankelijkheid van de gehele delegatie-/paralleliteitsfamilie; oorspronkelijke PRM/FCI/FCO-evidence blijft leidend. | +| Overdrachtsmoment | Volgende ondersteunde verticale scope als Forge-Missionaftrap met dezelfde DoD | Hetzelfde per scope; DIRECT_CODEX alleen met concrete ontbrekende productcapability als reden | Niet wachten op alle 34 families; twee Codex-lanes autoriseren geen nog niet ondersteunde parallelle product-Missions. | -De canonieke bronnen voor deze slices zijn [runtime-evolutie](../architecture/runtime-evolution-roadmap.md), [inner-loop CI](FORGE_INNER_LOOP_CI_V1.md), [Forge-paralleliteit](PARALLEL_ACTION_RUNTIME_V1.md), [EP-paralleliteit](https://github.com/pcvantol/engineering-platform/blob/main/docs/development/PARALLEL_ACTION_EXECUTION_V1_DAG.json), [projectloop](LIVE_PROJECT_ROADMAP_MANAGEMENT_V1.md), [EP-efficiëntie](https://github.com/pcvantol/engineering-platform/blob/main/docs/development/SUBAGENT_ORCHESTRATION_V1_ROADMAP.md) en [Workspace-HTTP](https://github.com/pcvantol/workspace/blob/main/docs/WORKSPACE_HTTP_API_V1_DAG.json). Raadpleeg vóór selectie de actuele, exact gepinde ownerbron; deze links zijn navigatie, geen automatisch bewijs van implementatie. +Canonieke navigatie: [runtime-evolutie](../architecture/runtime-evolution-roadmap.md), [inner-loop CI](FORGE_INNER_LOOP_CI_V1.md), [Forge-paralleliteit](PARALLEL_ACTION_RUNTIME_V1.md), [EP-paralleliteit](https://github.com/pcvantol/engineering-platform/blob/main/docs/development/PARALLEL_ACTION_EXECUTION_V1_DAG.json), [projectloop](LIVE_PROJECT_ROADMAP_MANAGEMENT_V1.md), [EP-efficiëntie](https://github.com/pcvantol/engineering-platform/blob/main/docs/development/SUBAGENT_ORCHESTRATION_V1_ROADMAP.md) en [Workspace-HTTP](https://github.com/pcvantol/workspace/blob/main/docs/WORKSPACE_HTTP_API_V1_DAG.json). Ververs vóór selectie de relevante eigenaar en vereiste evidence; een navigatielink is geen bewijs van implementatie. -**Bestaand werk adopteren:** de completion record van Forge #140 beschrijft een vóór reset-apply afgebroken voorbereiding, geen gestarte Mission. Er is daarna al een herstelprompt uitgegeven. De eerste lane-initialisatie moet vaststellen of die nu loopt of al klaar is. Alleen de afgesproken ontbrekende slice telt als nieuw werk; de release/installatie van 2.7.22 en EP #271/#272 worden niet opnieuw geopend vanwege een oude inventarisstatus. Het oudere resetverslag is geen huidige installatiestatus. +**Bestaand werk adopteren:** Forge #140 beschrijft een vóór reset-apply afgebroken voorbereiding, geen gestarte Mission. Daarna is een herstelprompt uitgegeven. Stel eerst vast of die loopt of klaar is en behoud haar assignment/scope. De oorspronkelijke reset-/release-/installatieleveringen en EP #271/#272 niet opnieuw openen door een oude PLANNED-telling. Strengere reeds gegeven instructies, zoals geen live reset, blijven gelden. -## 3. Alle families hebben een plek, maar niet alles moet vóór cutoff +## 3. Familie, technische node en verticale aftrap blijven onderscheiden -De JSON wijst alle twaalf Forge-families en vier Forge Platform-families standaard aan lane 1 toe (82 eigen rollup-eenheden). Alle negen EP-families en negen Workspace-families gaan naar lane 2 (76 eigen eenheden). De zeven gezamenlijke nodes blijven gezamenlijke bewijsjoins, met lane 1 als communicatiecoördinator; hun productcode wordt door de respectieve repositoryhouder geleverd. 82/76 is geen uren- of tokenverdeling. +Alle twaalf Forge- en vier Forge Platform-families liggen standaard bij lane 1 (82 eigen rollup-eenheden); de negen EP- en negen Workspace-families bij lane 2 (76). Zeven gedeelde nodes blijven gezamenlijke bewijsjoins, eenmaal geteld, met lane 1 als communicatiecoördinator en code bij de echte repositoryhouder. 82/76 is geen uren-/tokenverdeling. -Binnen elk product staat autonomie-ondersteunend werk vooraan. De grote resterende families — volledige Console, geavanceerd modelbeleid, rijke gesprekken, universele installer en nieuwe-projectbootstrap — zijn een **reservehorizon / toekomstige Forge-werklijst**, geen verplicht direct-Codexprogramma. Selecteer ze alleen als zij aantoonbaar de overdracht versnellen of een vrije lane onafhankelijk nuttig houden zonder de primaire lijn te vertragen. Geen oppervlakkig documentatiewerk maken uitsluitend om twee groene lanevakjes te tonen. +Elke familie erft de [verticale afleverafspraak](VERTICAL_SLICE_DELIVERY_V1.md). De oude nodes en dependencies blijven intact als interne traceerbaarheid. Verklein een te grote aftrap langs bruikbare verticale resultaten, niet langs contract/code/tests/merge. Een zelfstandig vereist ontwerprapport wordt expliciet DESIGN_ONLY geselecteerd en als ontwerp gesloten, nooit als implementatie-PASS. -De JSON-rang is prioriteit, niet een dependency-edge. Eén familie kan meerdere samenhangende aftrappen nodig hebben. De 29 in het oude telmodel samengevoegde records blijven in de snapshot beschikbaar; vooral `FSH-SERVICES` kan als echte praktische sublevering worden gekozen zonder de rest van `FOC-*` af te maken. De onderhoudscorrectie en Mission-3-proef zijn carry-overwerk, geen stil toegevoegde 166e/167e roadmapnode. +Grote restfamilies — volledige Console, rijk modelbeleid, gesprekken, universele installer en nieuwe-projectbootstrap — vormen reservehorizon of toekomstige Forge-werklijst, niet een verplicht direct-Codexprogramma. Ze komen alleen in beeld bij aantoonbare bijdrage of onafhankelijk nuttig resultaat zonder de primaire lijn te vertragen. De 29 historisch samengevoegde records blijven in de inventaris; een complete Server-only slice kan relevante `FSH-SERVICES`-delen benutten zonder heel `FOC-*` af te maken. Carry-overonderhoud en Mission 3 worden niet stil als extra inventarisnodes geteld. -## 4. Wat “geef volgende prompt (1/2)” precies doet +## 4. Wat “geef volgende prompt (1/2)” doet -Elke aanvraag leest eerst de actuele `main`-versie van dit document, de JSON, beide lane-issues, relevante PRs/branches en de bestaande eigen opdracht. Chatgeheugen of alleen de laatste regel van het andere issue is niet voldoende bij een conflict. Gebruik lokale readback uitsluitend wanneer die werkelijk toegankelijk is; onbekende lokale activiteit is geen bewijs van leegte. +Lees actuele main van de lane-afspraken, [deliverycontract](VERTICAL_SLICE_DELIVERY_V1.md), JSON, beide issues, relevante PR’s/branches en de eigen vorige assignment. Gebruik werkelijke lokale readback wanneer nodig en beschikbaar. Geen open PR is geen bewijs van afwezige lokale writers. Een nieuwe sessie heeft geen gedeeld chatgeheugen als statusautoriteit. -1. **Reconcileer eigen vorige aftrap.** `ISSUED` of `RUNNING` betekent geen tweede opdracht. Een herhaalde vraag retourneert dezelfde assignment of haar status. `BLOCKED`/onzekere uitkomst houdt relevante reserveringen vast totdat de owning werkboom/processen veilig zijn gepauzeerd en dat is vastgelegd. Een PR-merge alleen sluit een gevraagde release/installatie/kwalificatie niet. -2. **Toets cutoff per scope.** Kan de geïnstalleerde en gekwalificeerde Forge-route dit geautoriseerde doel inmiddels dragen? Geef dan een Missionaftrap zonder voorgeschreven Actionlijst. Leg bij een directe Codex-opdracht precies vast welk nog ontbrekend productvermogen de uitzondering rechtvaardigt. -3. **Selecteer een ready subset.** Eerst concrete autonomieblokkade, dan producerwerk dat de andere lane ontsluit, dan hoogst relevante ready subset in de primaire repo, daarna veilige fallback. Raadpleeg alle echte owning predecessors, huidige grants/parkeringen en exacte bron-/artifact-/installed-evidence. Een sample fixture kan ontwikkeling toelaten, niet een ontbrekende live contractgate aftekenen. -4. **Controleer repo en resources.** Eigen pool of bevestigde tijdelijke overdracht; geen andere actieve mutator, conflicterende branch, gedeelde testdatabase, poort, signingrunner, releaseversie of runtime-update. Reserveer vóór uitgifte, niet pas bij het maken van een PR. -5. **Schrijf en lees de eigen registratie terug.** Verhoog de issue-revision en bewaar de vorige opdracht in de historie. Neem assignment-ID, node/subset, exacte scope, bronpins, acceptatie, bevoegdheidsgrens, resource-reserveringen en resultaatlocatie op. Geef de prompt pas terug nadat die eigen registratie klopt en de peerregistratie niet conflicteert. -6. **Geef precies één volledige uitvoeringsprompt.** “Geef prompt” selecteert en reserveert; het start zelf geen provider, Mission, reset of release. De gebruiker geeft de gegenereerde scope aan de uitvoerende sessie vrij volgens de bestaande regels. Voeg geen stille automatische keten van volgende prompts toe. +1. **Reconcileer de vorige aftrap.** Bij ISSUED/RUNNING/REVIEW of onzekere effecten geen tweede opdracht. Geef dezelfde assignment/status of benodigde continuation. Merge alleen sluit geen nog vereiste tests, finalization, release, installatie of evidence. Bij BLOCKED blijft de resource bezet tot expliciet bewezen veilige pauze. +2. **Toets cutoff.** Gebruik de geautoriseerde gekwalificeerde Forge-route zodra zij de scope kan dragen. Geen vooraf geschreven Actionlijst als vervanging van Forge-planning. Motiveer een DIRECT_CODEX-uitzondering concreet. +3. **Selecteer één ready verticale slice.** Prioriteit: echte autonomieblokkade, producerwerk dat de andere lane ontsluit, relevant ready primair werk, veilige fallback. Toets owning predecessors, parkeringen en rechten. Bind resultaat, concrete consumergrens en volledige toepasselijke DoD; een technische node alleen is geen aftrap. +4. **Bind lifecyclemandaat en resources.** Neem de bestaande expliciete eigenaarstoestemming voor implementatie, tests/refactoring, reviewfixes, ondersteunde owneracties, PR/merge en verklaarde delivery op. Definieer targets en uitzonderingen. Geen routinematige herbevestiging, geen nieuwe externe rechten verzinnen. Respecteer repo-/runtime-/test-/release-/canaryreserveringen. +5. **Schrijf en lees de eigen registratie terug.** Verhoog revision, behoud geschiedenis, noteer assignment, bron/nodes, DoD, authority, dependencies, targets en evidence. De peer mag niet conflicteren. Issue-revision is geen atomische GitHub-lease; de hieronder beschreven schrijfafspraken blijven vereist. +6. **Geef één complete uitvoeringsprompt.** Gebruik het verplichte deliveryblok uit het gekoppelde contract. Promptuitgifte is geen uitvoering; na vrijgave handelt de executor de hele lifecycle zelf af. Geen extra opdracht “nu tests”, “haal DoD”, “mag ik mergen” of “maak release af”. Geen automatische nieuwe backlogopdracht na Done. -Ontbreekt actuele lees-/schrijftoegang tot de gedeelde registratie, claim geen succesvolle reservering. Geef een concrete blokkade, geen plausibel verzonnen volgende opdracht. Een kapotte tijdelijke registratieroute rechtvaardigt geen omzeiling van productgovernance. +Ontbreekt de gedeelde lees-/schrijfroute, claim geen reservering. Geef de concrete beperking, niet een verzonnen assignment of omweg langs productgovernance. De directe eigenaarstoestemming is geen vervanging van niet-beschikbare technische toegangsrechten. -## 5. Gedeelde registratie zonder een derde scheduler te bouwen +## 5. Gedeelde registratie zonder derde scheduler -De twee GitHub-issues zijn lichte aftrap-/handoffregistraties, **geen atomische database, distributed lock of vervanging van EP-leases**. Veiligheid rust op twee expliciete werkafspraken plus echte product-/repositorylocks: precies één architectschrijver per lane, en disjuncte repositoryhouders. Geen gelijktijdige tweede `ARCHITECT_1` of `ARCHITECT_2`. Bij overdracht van een sessie moet de oude aantoonbaar stoppen; stilte/een timestamp maakt geen resource vrij. +Issues #141/#142 zijn lichte aftrap-/handoffregistraties, geen atomische database, distributed lock of vervanging van EP-leases. Precies één architectschrijver per lane en disjuncte repositoryhouders voorkomen normale selectieraces; echte product-/repositorylocks blijven nodig. Een overgedragen architectsessie vereist dat de oude is gestopt; stilte of timeout geeft geen resource vrij. -De architect is de enige schrijver van de assignmentregistratie. Een executor schrijft zijn geschoonde resultaat naar de gekoppelde PR of afgesproken handoff; hij geeft zichzelf geen volgende aftrap. De architect verwerkt dat resultaat bij de volgende aanvraag. Indien resultaat alleen in een privaat lokaal receipt staat, blijft de publieke registratie een veilige referentie/attestatie en geen onafhankelijk herhaalbare live-audit. +De architect schrijft de eigen assignmentregistratie. De executor schrijft voortgang en geschoonde resultaten via de gekoppelde PR/handoff en wacht niet op de architect om normale review-/mergehandelingen uit te voeren. Hij kent zichzelf geen volgende roadmapopdracht toe. De architect verwerkt bewijs bij de volgende NEXT, of behoudt dezelfde assignment zolang de DoD niet sluit. Private lokale evidence wordt alleen via veilige referentie/attestatie weergegeven, niet als publiek onafhankelijk herhaalbare live-audit. Minimum per assignment: @@ -68,52 +70,60 @@ Minimum per assignment: lane / registration_revision / assignment_id / plan_revision state: ISSUED | RUNNING | REVIEW | WAITING_DEPENDENCY | BLOCKED | PAUSED_SAFE | COMPLETED | CANCELLED_SAFE | TRANSFERRED_TO_FORGE -objective / exact_node_subset / source_pins / unchanged_acceptance -repository_scope / source_write_reservations / runtime_resource_reservations +lifecycle_phase / blocking_reason / resume_reference +vertical_outcome / source_node_coverage / source_pins / unchanged_acceptance +entrypoint_and_consumer_boundary / scope_and_non_goals +actor_and_authority_binding / in_scope_repair_limits +completion_requirements / not_applicable_with_reason / expected_evidence +delivery_targets / repository_and_runtime_reservations execution_mode: DIRECT_CODEX | FORGE_MISSION_KICKOFF -dependency_evidence / actual_authority / expected_delivery_evidence -owning_PRs / candidate_SHA / merge_SHA / public_artifact_evidence +dependency_evidence / owning_PRs / candidate_SHA / merge_SHA +public_artifact_evidence / installed_or_live_evidence_when_required remaining_effects_or_locks / sanitized_result_reference ``` -De initiële issues staan bewust `UNASSIGNED_NEEDS_RECONCILIATION`; dat is geen claim dat er geen lokaal werk loopt. Een issue-revision is een werkafspraak, geen CAS-garantie van GitHub. Oude evidence en uitgiftes mogen niet worden weggepoetst. Een gesloten issue of groene checkbox is geen productacceptatie. Beide lanes kunnen hun eigen issue actualiseren zonder een PR in Forge's drukke bronwerkboom; zij wijzigen niet elkaars register of de globale planningsbestanden. +De oorspronkelijke registers begonnen `UNASSIGNED_NEEDS_RECONCILIATION`; dat bewijst geen lokale leegte. Oude evidence/uitgiftes worden niet verwijderd. Een gesloten issue of groene checkbox is geen productacceptatie. Geen COMPLETED zolang vereiste test-, review-, merge-, release- of installed evidence ontbreekt. Beide lanes schrijven hun eigen issue zonder de globale planningsbestanden of de andere registratie te muteren. Dit deliveryaddendum stelt op zichzelf geen actieve assignment vast. ### Repository tijdelijk overdragen -Binnen de vastgelegde scope mag repositoryverdeling wijzigen zonder de gebruiker als berichtenbus te gebruiken. De requester meldt in zijn eigen issue een transfer-ID, nieuwe epoch, repo en begrensde scope. De huidige houder toont in zijn eigen register `PAUSED_FOR_TRANSFER`, verifieert dat geen actieve/issued executor, auto-merge of runtime-effect die repo nog kan muteren, en geeft exact die overdracht vrij. De ontvanger leest die vrijgave terug en bevestigt dezelfde transfer/epoch vóór uitgifte. De oude houder mag vanaf vrijgave geen eigen opdracht op die repo starten, ook niet als ontvangst nog onzeker is. Bij onduidelijkheid blijft de repo gereserveerd, niet van twee lanes tegelijk. +Binnen bestaande scope mag overdracht zonder eigenaar als berichtenbus. Requester registreert transfer-ID, nieuwe epoch, repo en begrensde scope. Huidige houder bevestigt PAUSED_FOR_TRANSFER en dat geen executor, open aftrap, auto-merge of runtime-effect die scope kan wijzigen; daarna geeft hij exact die overdracht vrij. Ontvanger leest terug en bevestigt dezelfde transfer/epoch vóór uitgifte. De oude houder start vanaf vrijgave niets meer op die repo, ook bij onzekere ontvangst. -Teruggave gebeurt omgekeerd: ontvanger verifieert quiescence en schrijft RELEASE; oorspronkelijke houder bevestigt terugname. Geen timeout, “ik zie geen PR” of lege lane betekent automatische terugname. Conflicterende epochs of twee gelijktijdige overdrachten stoppen beide betrokken selecties. Bij selectie van een gevoelig nieuw effect of scopeuitbreiding blijft echte ownerapproval nodig. Deze afspraak is handmatige/agent-gevolgde coördinatie, geen geleverd automatisch lockprotocol. +Teruggave is omgekeerd: bewezen quiescence en RELEASE, gevolgd door bevestiging van terugname. Geen timeout of lege PR-lijst als automatische vrijgave. Conflicterende epochs blokkeren beide selecties. Materiële nieuwe scope/effects vereisen passende authority. Issues zijn agent-gevolgde coördinatie, geen geleverd automatisch lockprotocol. -Een cross-product implementatieprompt die beide pools nodig heeft, wordt bij voorkeur opgesplitst in twee owning prompts met één gedeeld contract. Wanneer de bestaande herstelopdracht al beide nodig heeft, adopteer haar en reserveer die repos; de andere lane kiest Workspace/Forge Platform of wacht. Maak niet alsnog een derde implementatiespoor in een al gereserveerde repo. +Cross-productwerk kan twee complementaire **complete owning slices** zijn met vooraf afgesproken contract en integratiejoin. De verantwoordelijke open assignment sluit het integratiebewijs; niet later een verrassende derde aftrap voor tests of merge. Wanneer bestaand herstel beide pools al reserveert, adopteer die opdracht in plaats van dubbel implementeren; de andere lane kiest een vrije onafhankelijke repository of wacht. Geen derde writer via subagents. ## 6. Bronparalleliteit is niet installatieparalleliteit -Verschillende worktrees bewijzen niet dat twee writers in dezelfde repository veilig zijn. Houd vóór de gekwalificeerde parallel-capability één muterende aftrap per canonieke repository; de lanes mogen elkaars featurebranch, main, stash of cleanup niet gebruiken. Vertrouw niet op dezelfde dagelijkse checkout als beide sessions' startdirectory. +Losse worktrees zijn niet voldoende voor veilige parallelle writers in één repository. Totdat de relevante productcapability gekwalificeerd is: één muterende assignment per canonieke repository. Niet andermans featurebranch, main, stash, cleanup of dagelijkse checkout gebruiken. -Scheid fixtures, testdatabases, poorten en scratch. Een gedeelde runner, packageaccountlimiet, signingcontext of schaarse lokale resource kan tijdelijk serialisatie vereisen. Reserveer releaseversies en productpublicatie bij één eigenaar. Geen brede test-/installatieopdracht uit een fallbacklane die ongemerkt Forge/EP-releases of credentials bijwerkt. +Scheid fixtures, databases, poorten en scratch. Deel een signingrunner, schaarse lokale resource of publicatierechten alleen onder passende reservering. Eén eigenaar reserveert productreleaseversie en artifactpublicatie. Een fallbackprompt installeert niet ongemerkt andere producten of wijzigt credentials. -**Live reset/E2E-venster:** beide lanes leggen vooraf hetzelfde expliciete venster vast in hun issues. De uitvoerende lane reserveert de testtarget-main, geselecteerde installaties en werkelijke gedeelde resources; de peer bevestigt dat conflicterende effecten ontbreken. De tweede lane kan doorgaan met expliciet onafhankelijke Workspace-/Platformbron op fixtures. Geen merge in de canarytarget, artifactactivatie, serviceherstart, reset, peerconfiguratiewijziging of gedeelde datasetmutatie tijdens T0..terminal-reconciliatie. EP-bronontwikkeling tijdens de proef kan alleen wanneer vooraf expliciet bewezen buiten alle proefbaselines/resources en zonder activatie; geen automatische aanname. Na een gemeten failure blijft dezelfde proef zichtbaar mislukt; een tweede lane mag haar niet wegpoetsen. +**Live reset/E2E-venster:** beide registers leggen hetzelfde expliciete venster vast. Uitvoerende lane reserveert canarytarget-main, gebruikte installaties en echte gedeelde resources; peer bevestigt geen conflicterende effecten. Onafhankelijke Workspace/Platformbron op fixtures mag doorgaan. Geen canarytarget-merge, artifactactivatie, restart, reset, peerconfigwijziging of gedeelde datamutatie tijdens T0 tot terminale reconciliatie. EP-bronontwikkeling mag alleen bij expliciet bewezen scheiding van alle proefresources en zonder activatie. Een gemeten failure blijft zichtbaar mislukt; de andere lane poetst die niet weg. -Voor korte release-/installatiewindows is dezelfde tweezijdige afspraak nodig als de andere lane dezelfde runtime gebruikt. Installatie mag wachten terwijl onafhankelijke bronontwikkeling doorgaat; geblokkeerde activatie verandert een goede merge niet in mislukt bronwerk. Tegelijk blijft een volledig gevraagde installed oplevering onvoltooid tot echte readback. +Release-/installatievensters worden eveneens tweezijdig geregeld waar runtimes gedeeld zijn. Wachten op een veilig venster is een fase van dezelfde assignment, geen extra prompt of voortijdige Done. Bronwerk dat werkelijk onafhankelijk is kan onder de bestaande veilige pauze-/reserveringsregels doorgaan. Bestaande externe gates en productbeperkingen worden niet uitgeschakeld door het lifecyclemandaat. ## 7. Outputcontract van iedere gegenereerde prompt -Bovenaan: lane, assignment-ID, registry-issue, planrevisie, productrepo, concrete doel-/nodesubset en bronpin. Daarna één samenhangende scope met nog ontbrekende implementatie, verplichte tests/reviews, daadwerkelijke deliverygrens (bron, artifact, installed of live), gedeelde gereserveerde resources en stopgrenzen. Geen nieuwe architectuurcampagne wanneer de vraag een bestaande begrensde fix betreft. +Begin met lane, assignment-ID, issue, planrevisie, productrepo, verticale uitkomst, bronpin en exacte node-subset. Voeg het verplichte [verticale deliveryblok](VERTICAL_SLICE_DELIVERY_V1.md#7-verplicht-blok-in-iedere-volgende-uitvoeringsprompt) toe, plus concrete DoD, ingang/consumergrens, targets, effectbeperkingen, herstelbudget en resources. + +De executor bezit de hele normale uitvoering: implementatie, nodige tests/refactoring, reviews, in-scope fixes, ondersteunde owner-authorizationhandelingen, PR, protected merge, finalization en gevraagde artifact/installed oplevering. Geen routinematige terugvraag voor wat de eigenaar al heeft gemandateerd. Wel een concrete blokkade bij niet-delegeerbare externe approval, ingetrokken recht of materiële nieuwe scope; geen fabricage van menselijke/independent-reviewevidence. + +Respecteer eigen projectregels, peer-HTTPgrenzen en ander werk. Een bestaand finding-ID wordt met bewijs gesloten; een buiten-scope kans wordt een voorstel, niet nieuw verplicht werk. Een eigen DoD-defect mag niet naar dat voorstel worden weggeschreven. Publieke PR/handoff en roadmapstatus onderscheiden bron, kwalificatie, artifact, activatie en acceptatie. -Verplicht: lees eigen projectregels; bewaar ander werk; geen peer-SQL/CLI als producttransport; geen onbevoegde runtimeactivatie; sluit bestaande finding IDs met bewijs; markeer delivered versus available-to-consumer apart; maak de gevraagde geschoonde handoff/PR vindbaar voor beide architectsessies. Het rapport vermeldt wat nog niet uitgevoerd is. Een defect buiten de scope wordt een voorstel, geen automatisch voorranghebbende nieuwe opdracht. +Saniteer vóór eerste commit/push: alleen publieke bron-/artifactreferenties en expliciete aliases. Geen echte lokale paden, host/runtime/consumeridentiteiten, Keychainrefs, lokale plan/backup/databasedigests of secrets. Volledige operationele evidence blijft afgeschermd lokaal. Geen historyrewrite of ongeautoriseerde cleanup van de eerder blootgestelde branch. -Publieke issues/commits/PRs bevatten alleen geschikte publieke bron-/artifactreferenties en consistente aliases. Geen werkelijke lokale paden, host-/runtime-/consumeridentiteiten, Keychainrefs, lokale backup-/plan-/databasedigests of secrets. Volledig operationeel bewijs blijft beveiligd lokaal. Scan vóór de eerste push, niet pas vóór PR-aanmaak. De eerder blootgestelde branch is geen onderwerp van dit plan; geen history rewrite of cleanupopdracht. +## 8. Cutoff naar Forge zonder de afleverlat te verlagen -## 8. Cutoff: stop direct-Codexwerk zodra Forge die scope kan dragen +Na een geaccepteerde relevante proef wordt het volgende geschikte geautoriseerde resultaat via Forge uitgevoerd zodra de geïnstalleerde capability die scope kan dragen. Wacht niet op de volledige Server/Console/Workspace/installer/paralleliteitsfamilie. Eén seriële proef bewijst geen cross-repo/concurrente capability. -De eerste relevante live-proef bewijst alleen haar eigen scope. Gebruik vervolgens het volgende geschikte, geautoriseerde werkpakket als Forge-Mission zodra de noodzakelijke installed capabilities en acceptatie daarvoor bestaan. Wacht niet op volledige Server/Console/Workspace/installer/paralleliteit wanneer de ondersteunde productroute de specifieke scope al kan uitvoeren. Omgekeerd mag één geslaagde seriële Mission niet als bewijs van parallelle of cross-repositorycapaciteit worden gebruikt. +`TRANSFERRED_TO_FORGE` krijgt de werkelijke Mission-/Actionreferenties; geen concurrerende directe prompt voor dezelfde scope. Nog niet ondersteunde uitbreidingen kunnen expliciet DIRECT_CODEX blijven. Beide routes erven dezelfde verticale DoD en het passende bestaande lifecyclemandaat. De runtime moet nog steeds echte Business/Architecture-, uitvoerings- en deliveryauthority verifiëren. Deze operatorafspraak implementeert of activeert geen nieuwe autonome productpolicy. -Markeer overgedragen opdrachten als `TRANSFERRED_TO_FORGE` met hun echte Mission-/Actionreferenties; geef geen concurrerende directe prompt uit voor dezelfde scope. Andere nog niet ondersteunde capability-uitbreidingen kunnen tijdelijk in de vrije Codex-lane blijven, met exacte uitzondering. Bij voldoende cutover zijn beide architectsessies Missionselectie-/reviewingangen, geen alternatieve implementatie-orchestrators. Bestaande Business/Architecturegoedkeuring, werklijstbegrenzing en EP-admission blijven gelden; dit plan activeert geen volledige autonome development mode. +Na voldoende cutover worden de architectsessies Missionselectie-/reviewingangen, geen alternatieve implementatieschedulers. Geen voorgeschreven Actionlijst, nieuwe Mission zonder vrijgave of automatisch gewijzigde werklijst door reviewbevindingen. ## 9. Onderhoud en bewijsgrens -De eigenaar heeft deze tweesporenindeling gevraagd, niet uitvoering van alle reservefamilies. Actualiseer bij iedere NEXT alleen de betrokken node-/bron-/resultaatgegevens, niet de hele inventaris. Globale lane-/scopewijzigingen worden als kleine reviewed planningswijziging bewaard; statusovergangen blijven in de eigen issues en owning bewijsadministratie. Issues en de JSON vormen geen nieuwe runtimebron voor Forge. +Deze aangescherpte afspraak registreert de expliciete ownerwens: één verticale aftrap volledig afmaken zonder losse DoD-/test-/refactor-/mergeprompts. Zij autoriseert geen gelijktijdige start van alle families. Ververs bij NEXT alleen relevante owning bronnen en evidence. Globale planningswijzigingen blijven reviewed documentatie; live assignmentovergangen horen in de eigen issues en echte productadministratie. -Bronreadback voor deze notitie: Forge `0da4ffae94f1834b957a04ea31d7ff2010fd072a`, EP `aa73aa46322230aaf8afce4223fd497879d800d6`, Workspace `5ecd418bc9cdc983791bf35c07457ffdb2ad1166`, Forge Platform `88b256b274fb20487b7c0cce05ccd5a58a4516f1`. De remote Forge/Workspace PR-lijsten waren leeg; EP #175 was nog draft/geparkeerd. Lokale uitvoering en geïnstalleerde onderhoudsfix zijn hier niet opnieuw geaudit. Oudere resetverslagen bewijzen geen huidige installatiestatus. Een geparkeerde PR is geen vrijbrief tot hervatting. +Oorspronkelijke bronreadback van de indeling: Forge `0da4ffae94f1834b957a04ea31d7ff2010fd072a`, EP `aa73aa46322230aaf8afce4223fd497879d800d6`, Workspace `5ecd418bc9cdc983791bf35c07457ffdb2ad1166`, Forge Platform `88b256b274fb20487b7c0cce05ccd5a58a4516f1`. Dat zijn historische pins, geen nieuwe installatieaudit. De toen geparkeerde EP #175 wordt niet door de nieuwe routine-machtigingsafspraak hervat. -Deze levering voegt documentatie, een lane-toewijzingsindex, twee sessierouters en twee lege coördinatieregistraties toe. Geen runtimecode, schema, workflow, release, credential, operationele database, reset of Mission gestart. De structuurtest bewijst dekking van de inventaris en consistente standaardhouders, niet dat twee echte Codex-sessies al gelijktijdig hebben uitgevoerd. +Het verticale addendum is geschreven tegen Forge `c6c05340744ee0259c6cabba8039a42a6b7aa599`. De 165 node-ID’s, 34 families, ownership, ranks, defaultpools en owning dependencies blijven behouden. Geen runtimecode, schema, workflow, grant, credential, release, installatie, database, reset of Mission is veranderd/gestart. Documentstructuurtests bewijzen de planningsafspraak, geen reeds gerealiseerde autonome productuitvoering. diff --git a/docs/roadmap/VERTICAL_SLICE_DELIVERY_V1.md b/docs/roadmap/VERTICAL_SLICE_DELIVERY_V1.md new file mode 100644 index 0000000..ebf357f --- /dev/null +++ b/docs/roadmap/VERTICAL_SLICE_DELIVERY_V1.md @@ -0,0 +1,137 @@ +# Verticale slices: één aftrap, volledige autonome oplevering + +**Afspraak:** `VERTICAL_SLICE_DELIVERY_V1`, 18 september 2026. **Eigenaar:** opdrachtgever van de twee lanes. **Toepassing:** iedere geselecteerde uitvoeringsopdracht in LANE_1 en LANE_2, vóór en na overdracht aan Forge. **NO_BUMP voor deze documentatielevering.** + +De eigenaar vraagt dat ieder uitvoerbaar roadmap-item een echte verticale implementatieslice is: niet één prompt voor code en daarna nieuwe prompts voor tests, refactoring, DoD, owner authorization, PR of merge. De [tweesporenplanning](DUAL_LANE_DEVELOPMENT_V1.md), [machineleesbare indeling](dual-lane-development-v1.json) en beide sessierouters gebruiken deze afspraak. Zij legt het expliciete eigenaarsmandaat voor de normale lifecycle vast; zij is geen nieuw runtimegrant, scheduler, automatische start van de hele backlog of wijziging van peer-productgovernance. + +## 1. De eenheid is een werkend resultaat, niet een technische laag + +**Eén uitgegeven assignment = één afgebakend, bruikbaar resultaat tot de volledige toepasselijke Definition of Done.** Dezelfde opdracht omvat uitwerking, implementatie, nodige tests, noodzakelijke refactoring, onafhankelijke reviews en correcties, exacte kandidaatkwalificatie, beschermde main-merge en de afgesproken delivery aan de echte consumer. + +De 194 historische records, 165 analytische tel-eenheden en 34 families blijven bron-/scopeverwijzingen, geen verplichte promptgrenzen. Technische nodes zoals CONTRACT, STORAGE, HTTP, TEST of Q kunnen samen interne stappen van één verticale slice zijn. Het huidige verzoek maakt niet met terugwerkende kracht alle 165 nodes onafhankelijk uitvoerbare features en verandert hun owning DAG niet. De architect bundelt de benodigde node-subsets bij selectie, met expliciete dekking per node; gedeeltelijke dekking sluit niet de hele parentcapability. + +Een grote capability wordt zo nodig **vóór uitgifte naar kleinere verticale resultaten** verdeeld. Elk resultaat heeft een echte eigen consumergrens, toepasselijke negatieve tests en een afgeronde delivery. Niet splitsen naar horizontale opleverfases als “backend nu, aansluiten/testen/mergen later”. Een library-/producerfunctie kan een verticale slice zijn wanneer haar echte afnemer het geleverde contract zelfstandig kan gebruiken en die grens aantoonbaar gekwalificeerd is; een ongebruikt stubje met alleen mocks is dat niet. + +Een expliciet gevraagde ontwerp-, documentatie- of read-only assessmentopdracht kan haar eigen volledige DoD hebben, maar wordt als zodanig getypeerd. Een contractdocument toevoegen is geen voltooide implementatie. Gebruik geen contract-only opdracht als standaard fallback om een lane bezig te houden terwijl het gevraagde functionele resultaat nog geen uitvoerbaar pad heeft. + +## 2. Minimale intake voor iedere verticale slice + +De architect legt vóór uitgifte vast: + +| Veld | Vereiste betekenis | +| --- | --- | +| `vertical_outcome` | Welke concrete gebruiker, operator of producer/consumer kan welk nieuw gedrag werkelijk benutten? | +| `source_node_coverage` | De bestaande owning nodes en exacte subsets die intern worden geleverd; geen fictieve nieuwe Mission-ID. | +| `scope_and_non_goals` | Repository-/effectgrens, relevante afhankelijkheden en wat expliciet niet wordt veranderd. | +| `actor_and_authority_binding` | Werkelijke opdrachtgever, dit lifecyclemandaat en de ondersteunde owner-/operatorroute; productgrants/assurancerecords blijven echte afzonderlijke bewijsobjecten. | +| `acceptance_criteria` | Functioneel, negatief/security, regressies, compatibiliteit/migratie en toepasbare kwaliteitsregels. | +| `entrypoint_and_consumer_boundary` | CLI, API, UI, library, installer of CI-gate waarmee het gedrag werkelijk wordt gebruikt; geen ongeautoriseerde peerfallback. | +| `delivery_targets` | Owning main en, waar toepasselijk, bestaande registry, exact artifact en geselecteerde installatie/omgeving. | +| `completion_requirements` | Alle toepasselijke DoD-onderdelen en hun vereiste readback; niet achteraf afgezwakt om groen te worden. | +| `not_applicable_with_reason` | Bijvoorbeeld geen UI voor een headless library, geen productie-installatie voor een expliciet CI-only resultaat; niet “tests volgen later”. | +| `repository_and_runtime_reservations` | Beide lane-afspraken, gedeelde resources en geplande veilige release-/activatievensters. | +| `in_scope_repair_limits` | Bestaande run-/repair-/tijd-/budgetgrenzen blijven gelden; een nieuwe sessie reset deze niet. | +| `resume_reference` | Duurzame assignment, bron/evidence en eigen veilige hervattingsinformatie voor dezelfde opdracht. | + +Kies de kleinste **volledige** scope, niet het kleinste aantal gewijzigde bestanden. Nodige aansluiting, foutafhandeling, migratie en lokale refactoring worden vooraf meegerekend. Treft men tijdens implementatie een noodzakelijk aangrenzend defect binnen hetzelfde geautoriseerde functionele effect, dan wordt het daar opgelost en getest. Een wezenlijk ander productdoel of een nieuwe bevoegdheidsgrens wordt niet via het woord “refactoring” binnengesmokkeld. + +## 3. Eén lifecycle tot Done + +```text +Vrijgegeven verticale slice en bestaande eigenaarsmachtiging +→ actuele bron en gereserveerde resources controleren +→ passende implementatie + noodzakelijke aansluiting/refactoring +→ gerichte tests, regressies en toepasselijke integratie-/securitytests +→ onafhankelijke Quality/Security waar de productpolicy die vereist +→ review-/CI-bevindingen binnen scope oplossen en opnieuw kwalificeren +→ echte owner-authorizationstappen via de ondersteunde geautoriseerde route +→ PR aanmaken/bijwerken, checks volgen, beschermde merge naar main +→ vereiste finalization en resultaatreconciliatie +→ waar afgesproken: exacte artifacts bouwen/kwalificeren/publiceren/teruglezen +→ waar afgesproken: veilig installeren/activeren en installed readback +→ eigen veilige afsluiting, geschoonde handoff en bewijsgebonden roadmapstatus +→ Done +``` + +De stappen volgen de actuele owning deliveryregels; dit diagram verplaatst geen vereiste gate naar ná haar beschermde effect. De uitvoerder handelt normale branches, commits, PR-aanmaak, reviewrequests, CI-wachten, in-scope reparaties, geldige owner-gates en merges zelf af. Hij stopt niet bij “code klaar”, “tests nog toevoegen”, “PR mergeable”, “klaar voor DoD” of “mag ik mergen?”. + +Bestaande regels mogen meerdere PR’s vereisen, bijvoorbeeld implementatie en finalization. Die zijn interne deliverystappen binnen dezelfde assignment, niet automatisch nieuwe menselijke aftrappen. Een exact-headwijziging vereist herkwalificatie, niet vanzelf nieuwe Business-/ownergoedkeuring voor dezelfde ongewijzigde scope. Werkelijke findings blijven zichtbaar; het herstellen ervan mag de audit niet wissen. + +**Tests, noodzakelijke refactoring, toepasselijke assurance, merge en overeengekomen delivery zijn geen apart backlogwerk dat later de slice alsnog afmaakt.** Niet-blokkerende verbeterkansen buiten de gekozen scope mogen wél als evidence-gebonden voorstellen worden vastgelegd. Een eigen acceptatiedefect naar zo’n voorstel verplaatsen om de huidige slice Done te verklaren is verboden. + +Geldt een gepubliceerde package of geïnstalleerde service als afgesproken consumergrens, dan horen build, exacte artifactkwalificatie, release, registryreadback, veilige activatie en installed bewijs bij dezelfde opdracht. “Merged, release volgt” is dan een tussenstand. Een puur bron-/library-/CI-resultaat mag eindigen op de vooraf gerechtvaardigde eigen grens; eis niet automatisch een nieuwe productie-installatie bij iedere documentatie-/testwijziging. + +## 4. Expliciet eigenaarsmandaat, geen herhaalde routinevragen + +De eigenaar delegeert binnen de **geselecteerde en aan de uitvoerder vrijgegeven verticale slice** de gewone engineering- en deliverystappen. Dit omvat de benodigde owner-authorizationhandelingen, PR-/merge requests, beschermd mergen en de in die opdracht verklaarde release-/installatiedoelen. De executor mag de beschikbare bevoegde eigenaar-/operatorroutes gebruiken en de bestaande toestemming aan het concrete onderwerp binden, zonder voor iedere fase opnieuw akkoord te vragen. + +Het teruggeven van “volgende prompt” blijft selectie en reservering, niet op zichzelf het starten van de uitvoering. Het uitvoeren van de aldus vrijgegeven opdracht draagt het lifecyclemandaat; er is geen extra los “nu ook testen/mergen”-besluit nodig. Dit mandateert geen willekeurige volgende backlog-Mission. Behoud strengere expliciete stop-/effectgrenzen uit reeds lopende opdrachten; vergroot hun scope niet stilzwijgend met deze documentatie. + +**Machtiging is niet hetzelfde als vervalste assurance.** Bewaar werkelijk actor/rol, scope, policy, doel, kandidaat/artifact en bewijs. Automatiseer een owner-gate alleen via een ondersteunde handeling met de echte toegangsrechten en toepasselijke delegation. Schrijf geen handmatig PASS-, approval- of grantrecord om een weigering te verhullen. De implementerende agent kan niet zelf als onafhankelijke reviewer optreden. Afzonderlijke Business/Architecturebesluiten en deliveryrollen worden niet tot één fictieve goedkeuring samengevoegd. + +Is dezelfde eigenaarstoestemming al toepasselijk en geldig, gebruik die en maak geen dubbele menselijke gate. Is er een echt niet-delegeerbare externe goedkeuring, ontbrekend recht, ingetrokken toestemming of contract dat automatisering daadwerkelijk niet toestaat, benoem precies die resterende stap als `BLOCKED_EXTERNAL_GATE`. Verander geen branch protection, required checks, reviewers, securitypolicy of budgetgrens om haar te omzeilen. Maak geen nieuw autorisatieframework als excuus om normale ondersteunde owneracties niet uit te voeren. + +Alleen materiële uitzonderingen vragen opnieuw een besluit: ander productdoel of repositoryeffect buiten de vrijgegeven scope; nieuwe irreversibele productiedatamutatie/reset; privilege-/credentialwijziging; nieuwe publieke verspreiding van vertrouwelijke gegevens; niet eerder toegestane kosten/target; of de werkelijke niet-delegeerbare externe gate. Normale implementatie, benodigde tests/refactoring, reviewfixes, kwalificatie, PR, main-merge en verklaarde delivery zijn **geen** zulke uitzonderingen. + +Bestaande publicatiecontrole blijft vóór de eerste push: echte hostpaden, runtime/consumeridentiteiten, lokale receipts/digests en secrets blijven lokaal; publieke documentatie gebruikt de geschoonde vorm. Deze afspraak autoriseert geen history rewrite, protection-bypass, nieuwe credential, productie-CENTRAL-reset of Mission-3-start. Parkeringen en testcriteria, inclusief Mission 3’s no-retry-eis, blijven intact. Normale ontwikkeliteraties van andere slices blijven binnen hun eigen bestaande grenzen toegestaan. + +## 5. Twee lanes blijven verantwoordelijk tot de beloofde grens + +Eén assignment blijft gedurende implementatie, review, release en de gevraagde activatie dezelfde assignment. `REVIEW`, `WAITING_DEPENDENCY`, `BLOCKED_EXTERNAL_GATE`, `WAITING_RELEASE` en `WAITING_ACTIVATION` zijn zichtbare tussenstanden, niet Done of een vrijbrief voor een tweede concurrerende writer. Behoud de bestaande lane-state-enums; registreer nadere lifecyclefase/redencode afzonderlijk wanneer er geen passende state bestaat. + +De executor laat intern opvolgstappen, subagents en reviewers werken waar hun scopes veilig geïsoleerd zijn; dat maakt hen geen extra lane of eigenaar van andermans repository. Deelresultaten/contracten mogen na beschermde levering een andere lane ontsluiten. Daarmee kan producer/consumerwerk overlappen zonder de hele slice of familie voortijdig gesloten te verklaren. + +Voor een cross-productresultaat leggen beide lanes vóór uitgifte hun grenzen en gezamenlijke contract/evidencejoin vast. Elke eigenaar levert zijn deel compleet met eigen tests, review en protected merge. De gezamenlijke operationele claim wacht op werkelijke integratiekwalificatie; die wordt onder de vooraf aangewezen nog open assignment uitgevoerd, niet als verrassende derde “maak het af”-prompt. Een zelfstandig gekwalificeerde producerlevering is apart rapporteerbaar, maar bewijst geen niet-geteste volledige productketen. + +Gedeelde activatie- en live-testvensters worden tussen de lane-registraties gecoördineerd zonder de gebruiker als berichtenbus. Wachten op zo’n venster maakt een bronlevering niet ongedaan; wel blijft de beloofde installed finish line open. Normale hoofdbranch- of runtimeactivatie in de andere lane mag de lopende Mission-3-baseline niet wijzigen. + +Een sessie-/contextlimiet maakt een beknopte duurzame continuation nodig, geen nieuwe opdrachtidentiteit, scope, repairbudget of extra roadmap-item. Het eerlijke tussenoordeel is onvoltooid met dezelfde hervattingsreferentie. Waar de omgeving geen hervatting zonder mens ondersteunt, benoem dat concreet; beloof geen achtergrondwerk of magische sessiecontinuïteit. Ook dan blijft “voeg tests/merge toe” geen nieuw functioneel werkpakket. + +## 6. Concrete hersnijding van technische roadmapnodes + +Onderstaande voorbeelden zijn selectieregels, geen nu uitgegeven opdrachten en geen vrijstelling van owning afhankelijkheden. + +| Geen bruikbare implementation-aftrap | Wel een verticale aftrap | +| --- | --- | +| “Maak WH-CONTRACT; daarna services; later tests en merge.” | “Lever één werkelijk bruikbare Workspace read-only project/status-operatie via de eigen service en gekozen ingang, inclusief contract, fout/authorizationgevallen, tests, docs en protected delivery.” | +| “Voeg PA-F0-schema toe en sluit het item.” | “Lever een bruikbare gevalideerde multi-Action-planning/readback-slice met de benodigde contract-/opslag-/ingangsdelen, negatieve tests en beschermd geleverd producerbewijs; claim nog geen parallelle EP-uitvoering.” | +| “Implementeer twee EP-workers; herstel isolatie en bewijs later.” | “Lever begrensde onafhankelijke uitvoering op twee toegestane repositorytargets inclusief admission, isolatie, capaciteit, failure-/restartgevallen en volledige scope-evidence; producercontract is een echte vooraf vereiste input.” | +| “Bouw de server; maak er later een werkende installatie van.” | “Lever de gekozen standalone serve/API-slice tot de afgesproken geïnstalleerde grens, inclusief statebehoud, veilige stop/herstart, tests, reviews, release/activatie en readback.” | +| “Installeer de fix; schrijf daarna een nieuwe prompt om DoD te halen.” | “Repareer de bedoelde onderhoudsovergang met volledige echte CLI/coördinatorregressie, gekwalificeerde artifacts, veilige update en geschoonde completion record; geen niet-geautoriseerde live reset.” | + +Een complete familykwalificatie kan later meerdere zelfstandig afgeronde slices combineren. Dat is een expliciet productdoel, geen excuus om de vereiste regressies of integratie van de huidige slice uit te stellen. Bewaar de oorspronkelijke technische nodes als traceerbaarheid; ga niet alle 165 records opnieuw nummeren of tellen. + +## 7. Verplicht blok in iedere volgende uitvoeringsprompt + +```text +VERTICAL_SLICE_DELIVERY = V1 +Eén assignment, één volledig verticaal resultaat tot de verklaarde DoD. +De opdrachtgever autoriseert de normale lifecycle binnen deze vrijgegeven +scope: implementatie, noodzakelijke refactoring, tests, reviewcorrecties, +echte owner-authorizationstappen via ondersteunde routes, PR, protected merge, +finalization en de expliciet verklaarde release-/installatiedelivery. +Vraag voor die routinehandelingen geen hernieuwd algemeen akkoord. + +Definieer vóór implementatie de concrete consumergrens, acceptatie, +node-subset, targets, bewijs en scopebeperkingen. Lever alles binnen dezelfde +assignment. Stop niet bij code klaar, tests later, PR mergeable of mag ik mergen. +Een nieuwe kandidaat wordt opnieuw gekwalificeerd; geen valse reviews/grants, +geen bypass van protections en geen overschrijding van bestaande repairlimieten. + +Noodzakelijke in-scope correcties voer je zelf uit. Alleen een materiële +scope-/authoritywijziging of echte externe niet-delegeerbare blokkade vraagt +een besluit. Een sessiehervatting behoudt dezelfde assignment en criteria. +Done vereist alle toepasselijke bron-, review-, merge- en verklaarde artifact/ +installed-readbacks. Houd private infrastructuurgegevens buiten publieke Git. +Start na afronding niet zelfstandig een nieuwe roadmapopdracht of Mission. +``` + +Dit blok wordt aangevuld met concrete scope en DoD, niet als vrijblijvende appendix naast een horizontale opdracht gezet. De architect verwerpt een prompt waarvan het beloofde resultaat alleen werkend wordt na een nieuwe test-/integratie-/mergeopdracht. Zowel DIRECT_CODEX als een latere FORGE_MISSION_KICKOFF erft deze afleververwachting; Forge blijft zijn eigen Actions plannen en de owning runtime blijft echte bevoegdheden verifiëren. + +## 8. Sluiting en controle van de afspraak + +Rapporteer per assignment: het behaalde verticale resultaat; bron-/node-dekking; tests en onafhankelijke assurance; alle owning PR’s en mergecommits; benodigde artifact/release-/installed-evidence; gebruikte owner-authorizationroute; open materiële beperkingen; en de veilige geschoonde handoff. Verplichte nog niet uitgevoerde DoD staat als open, nooit als groen of vrijblijvende follow-up. + +Controleer de planning-/promptstructuur op: alle 34 families erven deze afspraak; geen dubbele of verloren node-ID; geen contract/test/merge-fase als zelfstandige implementatieaftrap; intake bevat consumergrens en DoD; geldige routine-owneracties vragen geen extra bevestiging; echte externe gate en scopewijziging blijven herkenbaar; geen impliciete live reset of nieuwe Mission; geen gewijzigde lane-reserveringen door deze documentatiewijziging. + +Dit is een aangescherpte operator- en promptafspraak, geen bewijs dat de huidige Forge/EP-runtime deze volledige workflow al autonoom ondersteunt. Deze wijziging zelf is een complete documentatieslice met protected merge en links vanuit de bestaande routers; geen productrelease of installatie nodig. De latere echte uitvoering moet haar eigen resultaat bewijzen. diff --git a/docs/roadmap/dual-lane-development-v1.json b/docs/roadmap/dual-lane-development-v1.json index 4d176a4..77e65a9 100644 --- a/docs/roadmap/dual-lane-development-v1.json +++ b/docs/roadmap/dual-lane-development-v1.json @@ -1,5 +1,5 @@ { - "schema_version": "dual-lane-planning/v1", + "schema_version": "dual-lane-planning/v1.1", "document_kind": "TEMPORARY_PLANNING_OVERLAY", "date": "2026-09-18", "executable": false, @@ -39,12 +39,63 @@ }, "selection_policy": "ROLLING_READY_FRONTIER_NO_WAVE_BARRIER", "rank_scope": "WITHIN_REPOSITORY_FALLBACK_HORIZON_NOT_FULL_FAMILY_COMPLETION_ORDER", - "early_subset_rule": "Take Server-only FSH/FH, missing CI and ready parallel/project-loop subsets first; unfinished Console, SA or installer umbrella never blocks the next eligible critical subset.", + "early_subset_rule": "Select the smallest independently usable vertical outcome with all applicable tests, review, merge and consumer delivery in the same assignment; reuse existing services and do not wait for full Console/SA/installer umbrellas.", "dependency_rule": "Ranks are preferences, not edges. Resolve each node in the dated inventory, then refresh its owning dependency graph and exact required evidence before prompt issuance.", "initial_state": "UNASSIGNED_NEEDS_RECONCILIATION", "initial_lane_1": "Adopt existing reset-revalidation assignment; no duplicate or automatic reset/Mission.", - "initial_lane_2": "Workspace contract/fixture subset when EP scope is reserved or unclear; otherwise ready missing EP context/isolation subset.", + "initial_lane_2": "If EP is reserved, select a usable Workspace own-service/read-only path with contract, entrypoint, tests and protected delivery together; otherwise select a complete ready EP context/isolation improvement. No contract-only implementation kickoff.", "cutover_rule": "Next suitable authorized scope uses qualified installed Forge Mission route; no wait for complete portfolio; unsupported scopes remain explicit direct-Codex exceptions.", + "delivery_contract": "docs/roadmap/VERTICAL_SLICE_DELIVERY_V1.md", + "delivery_policy": { + "id": "VERTICAL_SLICE_DELIVERY_V1", + "applies_to": "ALL_LANE_ASSIGNMENTS_AND_ALL_FAMILIES", + "assignment_unit": "END_TO_END_VERTICAL_OUTCOME", + "node_role": "TRACEABLE_INTERNAL_WORK_NOT_AUTOMATIC_PROMPT_BOUNDARY", + "completion_boundary": "DECLARED_CONSUMER_DELIVERY_WITH_ALL_APPLICABLE_DOD", + "lifecycle": [ + "scope_and_acceptance", + "implementation", + "tests_and_regressions", + "necessary_refactoring", + "independent_review_and_in_scope_fixes", + "exact_candidate_gates", + "owner_authorization_via_supported_route", + "protected_pr_and_main_merge", + "finalization_and_reconciliation", + "conditional_release_publish_readback", + "conditional_safe_installation_readback", + "safe_owned_cleanup_and_handoff" + ], + "separate_lifecycle_prompts_allowed": false, + "routine_owner_reconfirmation_required": false, + "owner_mandate": "USER_REQUEST_2026_09_18_BOUND_LIFECYCLE_AUTONOMY", + "runtime_grant_created_by_document": false, + "perform_supported_owner_gate_actions": true, + "self_approve_independent_reviews": false, + "bypass_required_protections": false, + "standalone_design_item": "ONLY_EXPLICITLY_SELECTED_DESIGN_OUTCOME_NOT_IMPLEMENTATION_COMPLETION", + "publication_or_installation": "IN_SAME_ASSIGNMENT_WHEN_REQUIRED_AND_TARGET_EFFECTS_DECLARED", + "new_product_selection_or_destructive_effect": "NOT_IMPLICITLY_AUTHORIZED", + "session_continuation": "SAME_ASSIGNMENT_AND_ACCEPTANCE_NO_NEW_WORK_PACKAGE", + "mandatory_evidence_cannot_be_deferred": true, + "applicable_retry_and_budget_limits_preserved": true, + "mission_3_zero_retry_criteria_unchanged": true + }, + "required_assignment_fields": [ + "vertical_outcome", + "source_node_coverage", + "scope_and_non_goals", + "actor_and_authority_binding", + "acceptance_criteria", + "entrypoint_and_consumer_boundary", + "expected_evidence", + "delivery_targets", + "completion_requirements", + "not_applicable_with_reason", + "repository_and_runtime_reservations", + "in_scope_repair_limits", + "resume_reference" + ], "families": [ {"repository":"forge","lane":"LANE_1","rank":10,"family":"HTTP/API en CLI","nodes":["FH-CONTRACT","FH-SERVICES","FH-HTTP","FH-CLI","FH-Q"]}, {"repository":"forge","lane":"LANE_1","rank":11,"family":"Console, hosting en data-administratie","nodes":["FOC-0","FOC-1","FOC-2","FOC-3","FOC-4","FOC-5","FOC-6","FOC-Q"]}, @@ -154,13 +205,25 @@ "read_or_next_starts_execution": false, "new_findings_change_approved_scope": false, "roadmap_inventory_counts_changed": false, - "runtime_qualifications_claimed": false + "runtime_qualifications_claimed": false, + "all_families_inherit_vertical_delivery": true, + "technical_node_is_automatically_a_prompt": false, + "mandatory_tests_review_merge_need_followup_prompt": false, + "scope_bound_owner_actions_are_automatic": true, + "missing_external_permission_is_not_fabricated": true, + "completion_requires_all_declared_delivery_evidence": true, + "pending_integration_or_installation_is_complete": false, + "continuation_changes_assignment_identity": false }, "scope_notes": [ "All global product-DAG and role/authority boundaries preserved.", "Old reset/release observations remain historical; no independent current installation audit.", "EP #175 parked unless separately authorized.", "Private local evidence stays outside public Git/issue records.", - "No requirement to fill both lanes if no safe authorized ready work exists." + "No requirement to fill both lanes if no safe authorized ready work exists.", + "Owner-requested lifecycle autonomy applies inside each selected released vertical slice; it is not blanket authorization to start the 34 families.", + "Implementation, tests, needed refactoring, review fixes, protected merge and declared artifact/installation delivery are internal phases, not separate human kickoffs.", + "The 194/165/34 historical sizing and all node IDs remain unchanged. Technical prerequisites are traceability; the architect composes complete vertical assignment outcomes.", + "Previously excluded live reset, credential changes, parked work, unsanitized publication and Mission-3 start remain separately bounded." ] } diff --git a/docs/roadmap/lanes/LANE_1.md b/docs/roadmap/lanes/LANE_1.md index 7797364..7d57045 100644 --- a/docs/roadmap/lanes/LANE_1.md +++ b/docs/roadmap/lanes/LANE_1.md @@ -5,21 +5,26 @@ Je bent **ARCHITECT_1**, de enige architectschrijver voor **LANE_1**. Werk vanui Lees bij initialisatie en vóór iedere volgende aftrap: - [Twee ontwikkelsporen](../DUAL_LANE_DEVELOPMENT_V1.md) en [de indeling](../dual-lane-development-v1.json). -- [Eigen registratie #141](https://github.com/pcvantol/forge/issues/141) en [peerregistratie #142](https://github.com/pcvantol/forge/issues/142). -- De actuele owning roadmap/DAG, projectregels, relevante PRs/branches en noodzakelijke echte lokale resource-readback voor de gekozen subset. +- [Verticale slice en volledige autonome delivery](../VERTICAL_SLICE_DELIVERY_V1.md): verplicht voor iedere assignment, alle families en DIRECT_CODEX/FORGE_MISSION_KICKOFF. +- [Eigen registratie #141](https://github.com/pcvantol/forge/issues/141) en [peerregistratie #142](https://github.com/pcvantol/forge/issues/142), inclusief actuele protocolcommentaren. +- Actuele owning roadmap/DAG, projectregels, relevante PR’s/branches en noodzakelijke echte lokale resource-readback voor de gekozen slice. -Standaardpool: **Forge / Forge Platform**. De andere pool is niet vrij omdat zijn lane stil of tijdelijk bezig is. Gebruik de gedocumenteerde tweezijdige overdracht voor afwijkende combinaties. Eén open uitvoeringsprompt per lane; geen derde writer via subagents in andermans repository. +Standaardpool: **Forge / Forge Platform**. De andere pool is niet vrij omdat zijn lane stil of tijdelijk bezig is. Gebruik de beschreven tweezijdige overdracht. Eén open uitvoeringsassignment per lane; geen derde writer via subagents in andermans repository. ## Bedieningszin -**“Geef volgende prompt (1)”** betekent: reconcileer de vorige opdracht, lees de andere lane, toets Forge-cutover, selecteer één onafhankelijke ready subset, registreer haar vóór uitgifte en geef één complete uitvoeringsprompt terug. Een nummer dat niet bij deze lane hoort wordt niet stilzwijgend als opdracht voor de peer verwerkt. +**“Geef volgende prompt (1)”** betekent: reconcileer de vorige opdracht, lees de andere lane, toets Forge-cutover, kies één onafhankelijke ready **verticale uitkomst met volledige DoD**, registreer haar vóór uitgifte en geef één complete uitvoeringsprompt terug. Technische contract/storage/test/Q-nodes zijn interne scopeverwijzingen, niet automatisch losse prompts. Het verkeerde lanenummer wordt niet als een peeropdracht uitgevoerd. -Bij een ISSUED/RUNNING of onzekere vorige opdracht geef je dezelfde assignment/status terug, geen tweede aftrap. Een veilige afgeronde of expliciet quiescent gepauzeerde opdracht wordt met bron-/artifact-/installed-bewijs afgehandeld. Geen status-PASS uit alleen een merge. Geen aftrap wanneer registratie/reservering niet aantoonbaar gelukt is. +Bundel implementatie, noodzakelijke refactoring, tests, onafhankelijke reviews, in-scope correcties, echte owner-authorization via bestaande bevoegde routes, PR, protected main-merge, finalization en de verklaarde release-/installatieoplevering. De eigenaar heeft normale lifecyclehandelingen binnen de geselecteerde vrijgegeven scope gemandateerd; daarvoor geen herhaalde algemene toestemmingsvraag. Bind scope, targets, criteria en echte actor bij uitgifte. Geen fictieve grants, onafhankelijke zelfreview of protection-bypass; alleen een materiële scope-/effectwijziging of echte niet-delegeerbare externe gate vraagt een nieuw besluit. -Het teruggeven van een prompt start geen uitvoering. De uitvoerder rapporteert via de gekoppelde geschoonde PR/handoff; jij verwerkt dat bij de volgende aanvraag en bewaart de historie. Publiceer geen lokale infrastructuurgegevens of geheimen. +Bij ISSUED/RUNNING/REVIEW of een onzekere vorige opdracht geef je dezelfde assignment/status of continuation, geen tweede aftrap. Verplichte tests, reviewfixes, merge of release die nog ontbreken zijn geen nieuw roadmap-item. Geen COMPLETED op alleen een merge als de vastgelegde finish line meer vereist. Een veilige expliciete pauze behoudt de open DoD en geschiedenis; zij claimt geen voltooiing. + +Neem vóór uitgifte de consumergrens, volledige completion_requirements, source_node_coverage, delivery_targets, actor_and_authority_binding, resources, repairlimieten en resume_reference op. Geen succesvolle reservering claimen zonder teruggelezen registratie. Beperkingen/expiry/budgets en de specifieke Mission-3-no-retryvoorwaarden worden niet door een sessiehervatting gereset. + +Promptuitgifte start geen uitvoering. Na vrijgave handelt de executor zelfstandig de normale lifecycle af en rapporteert via gekoppelde geschoonde PR/handoff; hij wacht niet op jouw volgende prompt om te testen of mergen en geeft zichzelf geen nieuwe opdracht. Jij verwerkt zijn echte evidence bij NEXT. Private infrastructuurgegevens en secrets blijven buiten Git. ## Eerste pickup -Bepaal eerst of de bestaande reset-hercontrolecorrectie al loopt of klaar is; adopteer die, geen duplicaat. Bij benodigde EP-scope eerst de andere lane raadplegen en reserveren. Een nieuwe echte reset/Mission-3-proef vraagt haar bestaande expliciete autorisatie en een gezamenlijk runtime-/targetfreeze. Na geaccepteerde scope: volgend geschikt werk als Forge-Mission, niet automatisch weer handmatig Codex. +Bepaal eerst of de bestaande reset-hercontrolecorrectie loopt of klaar is; adopteer dezelfde opdracht zonder duplicaat en behoud haar strengere effectgrens. Een noodzakelijke EP-scope eerst met de andere lane reserveren. Een nieuwe live reset/Mission-3-proef vraagt haar bestaande specifieke autorisatie en gezamenlijk runtime-/targetfreeze. De reparatie volledig afronden omvat niet automatisch die live reset. Daarna volgend geschikt volledig werk als Forge-Mission zodra de scope gedragen wordt. -Lees beide registers bij iedere NEXT opnieuw. Deze file is navigatie, niet live lane-state. De volledige afspraak en stop-/handover-/cutoverregels staan in het gezamenlijke document. +Lees beide registers bij iedere NEXT opnieuw. Deze router bevat geen live assignmentstate. De volledige overdrachts-, uitzonderings-, DoD- en cutoffregels staan in de twee gezamenlijke documenten. Geen productruntimegrant wordt door deze tekst aangemaakt. diff --git a/docs/roadmap/lanes/LANE_2.md b/docs/roadmap/lanes/LANE_2.md index 988229b..c33e0e2 100644 --- a/docs/roadmap/lanes/LANE_2.md +++ b/docs/roadmap/lanes/LANE_2.md @@ -5,21 +5,26 @@ Je bent **ARCHITECT_2**, de enige architectschrijver voor **LANE_2**. Werk vanui Lees bij initialisatie en vóór iedere volgende aftrap: - [Twee ontwikkelsporen](../DUAL_LANE_DEVELOPMENT_V1.md) en [de indeling](../dual-lane-development-v1.json). -- [Eigen registratie #142](https://github.com/pcvantol/forge/issues/142) en [peerregistratie #141](https://github.com/pcvantol/forge/issues/141). -- De actuele owning roadmap/DAG, projectregels, relevante PRs/branches en noodzakelijke echte lokale resource-readback voor de gekozen subset. +- [Verticale slice en volledige autonome delivery](../VERTICAL_SLICE_DELIVERY_V1.md): verplicht voor iedere assignment, alle families en DIRECT_CODEX/FORGE_MISSION_KICKOFF. +- [Eigen registratie #142](https://github.com/pcvantol/forge/issues/142) en [peerregistratie #141](https://github.com/pcvantol/forge/issues/141), inclusief actuele protocolcommentaren. +- Actuele owning roadmap/DAG, projectregels, relevante PR’s/branches en noodzakelijke echte lokale resource-readback voor de gekozen slice. -Standaardpool: **EP / Workspace**. De andere pool is niet vrij omdat zijn lane stil of tijdelijk bezig is. Gebruik de gedocumenteerde tweezijdige overdracht voor afwijkende combinaties. Eén open uitvoeringsprompt per lane; geen derde writer via subagents in andermans repository. +Standaardpool: **EP / Workspace**. De andere pool is niet vrij omdat zijn lane stil of tijdelijk bezig is. Gebruik de beschreven tweezijdige overdracht. Eén open uitvoeringsassignment per lane; geen derde writer via subagents in andermans repository. ## Bedieningszin -**“Geef volgende prompt (2)”** betekent: reconcileer de vorige opdracht, lees de andere lane, toets Forge-cutover, selecteer één onafhankelijke ready subset, registreer haar vóór uitgifte en geef één complete uitvoeringsprompt terug. Een nummer dat niet bij deze lane hoort wordt niet stilzwijgend als opdracht voor de peer verwerkt. +**“Geef volgende prompt (2)”** betekent: reconcileer de vorige opdracht, lees de andere lane, toets Forge-cutover, kies één onafhankelijke ready **verticale uitkomst met volledige DoD**, registreer haar vóór uitgifte en geef één complete uitvoeringsprompt terug. Technische contract/storage/test/Q-nodes zijn interne scopeverwijzingen, niet automatisch losse prompts. Het verkeerde lanenummer wordt niet als een peeropdracht uitgevoerd. -Bij een ISSUED/RUNNING of onzekere vorige opdracht geef je dezelfde assignment/status terug, geen tweede aftrap. Een veilige afgeronde of expliciet quiescent gepauzeerde opdracht wordt met bron-/artifact-/installed-bewijs afgehandeld. Geen status-PASS uit alleen een merge. Geen aftrap wanneer registratie/reservering niet aantoonbaar gelukt is. +Bundel implementatie, noodzakelijke refactoring, tests, onafhankelijke reviews, in-scope correcties, echte owner-authorization via bestaande bevoegde routes, PR, protected main-merge, finalization en de verklaarde release-/installatieoplevering. De eigenaar heeft normale lifecyclehandelingen binnen de geselecteerde vrijgegeven scope gemandateerd; daarvoor geen herhaalde algemene toestemmingsvraag. Bind scope, targets, criteria en echte actor bij uitgifte. Geen fictieve grants, onafhankelijke zelfreview of protection-bypass; alleen een materiële scope-/effectwijziging of echte niet-delegeerbare externe gate vraagt een nieuw besluit. -Het teruggeven van een prompt start geen uitvoering. De uitvoerder rapporteert via de gekoppelde geschoonde PR/handoff; jij verwerkt dat bij de volgende aanvraag en bewaart de historie. Publiceer geen lokale infrastructuurgegevens of geheimen. +Bij ISSUED/RUNNING/REVIEW of een onzekere vorige opdracht geef je dezelfde assignment/status of continuation, geen tweede aftrap. Verplichte tests, reviewfixes, merge of release die nog ontbreken zijn geen nieuw roadmap-item. Geen COMPLETED op alleen een merge als de vastgelegde finish line meer vereist. Een veilige expliciete pauze behoudt de open DoD en geschiedenis; zij claimt geen voltooiing. + +Neem vóór uitgifte de consumergrens, volledige completion_requirements, source_node_coverage, delivery_targets, actor_and_authority_binding, resources, repairlimieten en resume_reference op. Geen succesvolle reservering claimen zonder teruggelezen registratie. Beperkingen/expiry/budgets en de specifieke Mission-3-no-retryvoorwaarden worden niet door een sessiehervatting gereset. + +Promptuitgifte start geen uitvoering. Na vrijgave handelt de executor zelfstandig de normale lifecycle af en rapporteert via gekoppelde geschoonde PR/handoff; hij wacht niet op jouw volgende prompt om te testen of mergen en geeft zichzelf geen nieuwe opdracht. Jij verwerkt zijn echte evidence bij NEXT. Private infrastructuurgegevens en secrets blijven buiten Git. ## Eerste pickup -Controleer eerst welke EP-bron-/runtimescope de bestaande resetcorrectie werkelijk reserveert. Zolang dit onbekend is, kies een geautoriseerde onafhankelijke Workspace-contract/fixture-slice in plaats van een concurrerende EP-writer. Zodra EP vrij is: ontbrekende context/isolation-subsets en later PA-E met echt PA-F0-bewijs. EP #175 niet automatisch hervatten en #271/#272 niet opnieuw bouwen. +Controleer eerst welke EP-bron-/runtimescope de bestaande resetcorrectie reserveert. Bij onzekerheid kies een bruikbare onafhankelijke Workspace eigen service/read-only ingang inclusief contract, tests en protected delivery, niet alleen een ontwerpnode als implementation-PASS. Zodra EP vrij is: complete ontbrekende context/isolationverbeteringen en daarna PA-E met echt PA-F0-producerbewijs. EP #175 niet automatisch hervatten; #271/#272 niet opnieuw bouwen. -Lees beide registers bij iedere NEXT opnieuw. Deze file is navigatie, niet live lane-state. De volledige afspraak en stop-/handover-/cutoverregels staan in het gezamenlijke document. +Lees beide registers bij iedere NEXT opnieuw. Deze router bevat geen live assignmentstate. De volledige overdrachts-, uitzonderings-, DoD- en cutoffregels staan in de twee gezamenlijke documenten. Geen productruntimegrant wordt door deze tekst aangemaakt.