diff --git a/BOOTSTRAP.md b/BOOTSTRAP.md index 5d99990..ec969a9 100644 --- a/BOOTSTRAP.md +++ b/BOOTSTRAP.md @@ -1,5 +1,16 @@ # Forge bootstrap +## Roadmap overview and autonomy-first focus + +Read the [roadmap overview and autonomy-first focus](docs/roadmap/ROADMAP_OVERVIEW_AND_AUTONOMY_FOCUS.md) +for the preserved four-product sizing analysis and the shortest-path orientation +toward Forge executing governed work packages itself through EP. Its dated +[inventory](docs/roadmap/inventory/2026-09-17.json) records 194 named records, +165 analytical rollup units and 34 possible kickoff families, not 34 approved +Missions or a minimum prompt count. Reconcile actual owning evidence before +selection. This is a documentary reference, not a new backlog, execution grant, +peer-status authority or prerequisite to finish every product before autonomy. + ## Project bootstrap design — Genesis and Managed For new-project initialization or adoption, read the canonical target diff --git a/docs/ai-development/FORGE_DEVELOPMENT_EXTENSION.md b/docs/ai-development/FORGE_DEVELOPMENT_EXTENSION.md index 02804ca..886c972 100644 --- a/docs/ai-development/FORGE_DEVELOPMENT_EXTENSION.md +++ b/docs/ai-development/FORGE_DEVELOPMENT_EXTENSION.md @@ -15,6 +15,13 @@ the [Bootstrap Roadmap](../../knowledge/bootstrap/10_ROADMAP.md), current handoffs and commits are retained as Forge historical evidence; they are not alternate generic contract authorities. +For high-level scope and work-selection orientation, use the +[roadmap overview and autonomy-first focus](../roadmap/ROADMAP_OVERVIEW_AND_AUTONOMY_FOCUS.md). +It preserves the dated four-product analysis and its explicit counting limits; +it is not a replacement roadmap, a current peer audit or permission to start +work. Prefer the smallest qualified path toward Forge-owned governed execution +without promoting the whole product horizon to a prerequisite. + ## Forge product and governance authority Forge owns its architecture, Vision/Roadmap/Backlog and increment planning, diff --git a/docs/roadmap/ROADMAP_OVERVIEW_AND_AUTONOMY_FOCUS.md b/docs/roadmap/ROADMAP_OVERVIEW_AND_AUTONOMY_FOCUS.md new file mode 100644 index 0000000..768b469 --- /dev/null +++ b/docs/roadmap/ROADMAP_OVERVIEW_AND_AUTONOMY_FOCUS.md @@ -0,0 +1,94 @@ +# Roadmapoverzicht en autonomie-eerst focus + +**Vastgelegd:** 17 september 2026. **Classificatie:** brongebonden analyse en focusnotitie, geen uitvoerbare backlog. **NO_BUMP.** + +Doel van de eigenaar: het hoogoverbeeld terug kunnen vinden en focus houden op zo snel mogelijk werkpakketten door Forge zelf laten plannen, via EP uitvoeren en opvolgen. Niet eerst het hele platform met de hand afbouwen voordat het eigen werk kan overnemen. + +Deze pagina bewaart de eerdere roadmapanalyse in een repository-first vorm. De [gedateerde volledige ID-inventaris](inventory/2026-09-17.json) bevat alle 194 records, bronrevisies, statussen, telregels en samenvoegingen; de [formaat- en leesinstructie](inventory/README.md) verklaart de compacte representatie. De inhoudelijke productroadmaps en hun eigenaren blijven leidend. Dit document is geen nieuwe Mission, toestemming, releaseplan, scheduler of peer-statusautoriteit. + +## Het hoogoverbeeld + +| Product | Benoemde werkpakketrecords | Analytische rollup-eenheden | Mogelijke aftrapfamilies | +| --- | ---: | ---: | ---: | +| Engineering Platform | 41 | 40 | 9 | +| Workspace | 36 | 36 | 9 | +| Forge Platform | 19 | 16 | 4 | +| Forge | 91 | 66 | 12 | +| Gezamenlijke knopen, eenmaal geteld | 7 | 7 | Binnen de families verwerkt | +| **Totaal geselecteerde scope** | **194** | **165** | **34** | + +**194** telt de unieke benoemde records in de geselecteerde uitgewerkte deelroadmaps. **165** volgt uit het expliciete analytische rollupmodel. **34** is een mogelijke bundeling in samenhangende capability-opdrachten, niet het minimale aantal Codex-prompts, niet een goedgekeurde Missionlijst en niet een garantie dat iedere familie in één sessie afkomt. + +De telling is bevroren op deze bronrevisies, ook als de huidige `main` of installatie inmiddels verder is: + +| Repository | Inventarisbron | +| --- | --- | +| `pcvantol/engineering-platform` | `1cd72ff83b2da4d3fb8bec840975db326589c049` | +| `pcvantol/workspace` | `5ecd418bc9cdc983791bf35c07457ffdb2ad1166` | +| `pcvantol/forge-platform` | `88b256b274fb20487b7c0cce05ccd5a58a4516f1` | +| `pcvantol/forge` | `b46aac196f64d018ae75f0d3492c841df9985ceb` | + +Geen code-voor-code audit van resterend werk is uitgevoerd voor deze telling. Een roadmaplabel `PLANNED` kan gedeeltelijk al geleverd werk bevatten. De snapshot mag dus niet worden gelezen als: nog 165 dingen vanaf nul bouwen. Reconcileer vóór werkselectie alleen de relevante owning bron, uitvoering en artifact-/installed-evidence; heropen gesloten reparaties niet omdat een ouder overzicht nog een brede node noemt. + +## Waar de omvang zit + +| Product | Families en rollup-aantallen | +| --- | --- | +| EP | Subagent-efficiëntie/assurance 9; taak-/rol-/modelbeleid 7; execution envelope 3; HTTP-conformiteit 3; projectbootstrap 7; parallelle Actions 6; governed progression 1; policy/release 2; projecthygiëne 2. | +| Workspace | HTTP/API/CLI 6; distributie 5; gesprekken 4; sizing 2; projectloop/roadmapbeheer 6; projectbootstrap 6; progression 2; policy/release 2; hygiëne 3. | +| Forge Platform | Installer/clean-install/UX/release 13; progression 1; policy/release 1; hygiëne 1. | +| Forge | Console/hosting/data-administratie 8; HTTP/API/CLI 5; inner-loop CI 7; outer-loop CI 5; sizing 6; projectloop/roadmapbeheer 9; gesprekken 5; projectbootstrap 9; parallelle Actions 7; progression 1; policy/release 2; hygiëne 2. | + +De zeven gedeelde nodes zijn `GP-DC`, `GP-Q`, `GP-X`, `POL-B`, `POL-Q`, `VR-Q` en `HY-Q`. Ze worden niet bij iedere deelnemende repository opnieuw aan het totaal toegevoegd. De JSON bewaart afzonderlijk deelname-aantallen; die zijn nadrukkelijk niet optelbaar als unieke scope. + +### De 29 samenvoegingen zijn geen verdwenen werk + +Bij Forge zijn de 9 `FC-*`, 9 `FCP-*` en 7 `FSH-*`-uitwerkingen in het telmodel opgenomen in de 8 primaire `FOC-*`-deliverynodes. De bronnen verbinden ze via `delivered_by`. Dat betekent niet dat de hele Console in acht kleine prompts past, noch dat Server-only delivery op de volledige Console moet wachten. + +Bij EP is `SA-ROLE` uitgewerkt in zeven `RMP-*`-nodes en daarom niet nogmaals toegevoegd. Bij Forge Platform zijn `FP-EP-CI-6/7/Q` analytisch gebundeld met de `IUR-*`-uitwerking. Vooral daar bestaat geen bewezen één-op-één equivalentie: de rollup is een planningsconventie, geen wiskundig minimum aan uitvoeringen. Alle oorspronkelijke IDs en redenen blijven beschikbaar in de snapshot. + +Testscenario's, bewijsvoorwaarden, dependency-only peerreferenties, historische Foundation/documentatieafsluitingen en herhaalde hoofdlabels zijn niet als extra werkpakketten geteld. Niet-gemergd resetwerk en toekomstige correcties zijn geen stille toevoeging aan de bevroren telling. Brede nog niet vergelijkbaar gedecomponeerde doelen, zoals algemene Agent-fleet, ruimer OS-/installatielifecyclebereik, Knowledge/learning en forecasting, vallen buiten dit numerieke totaal. + +## Focus: het platform moet zijn eigen resterende werk zo vroeg mogelijk overnemen + +Onderstaande focus is de praktische interpretatie van het eigenaarsdoel en de bestaande roadmaplijnen. Het is **geen nieuwe harde DAG-volgorde** en verleent geen toestemming om werk te starten. Raadpleeg de owning DAG voor echte afhankelijkheden; de grootte of recentheid van een familie bepaalt niet automatisch de prioriteit. + +| Focus | Eerstvolgende aantoonbare waarde | Bestaande route / grens | +| --- | --- | --- | +| Concrete preflightblokkade sluiten | Een veilige baseline voor de reeds afgesproken autonomietest. | Alleen de geselecteerde reset-/integriteitsonderhoudsslice wanneer die volgens actuele owning readback nog nodig is. Een eenmalige clean-state-testvoorbereiding is geen resetverplichting voor iedere toekomstige Mission. | +| Inner-Mission-autonomie bewijzen | Eén goedgekeurde Mission; Forge leidt inhoudelijke Actions af, verwerkt EP-resultaten en plant een echte opvolger zonder mens als berichtenbus. | Bestaande Mission-3-acceptatie blijft intact; [Implementation DAG](../architecture/FORGE_V1_IMPLEMENTATION_DAG.md) en [inner-loop CI](FORGE_INNER_LOOP_CI_V1.md). Geen nieuwe testcriteria of fictieve PASS in deze notitie. | +| Zelfstandig laten doorwerken | Geïnstalleerde service/API, veilige stop/herstart en duurzame voortgang zonder tijdelijke handmatige procesregie. | Server-only deel van `FSH-SERVICES`, passende `FH-*`-services/adapters; [runtime-evolutie](../architecture/runtime-evolution-roadmap.md). Niet wachten op de complete Console, relay of Workspace. | +| Onafhankelijke Actions versnellen | Meerdere repositorygebonden Actions binnen één Mission werkelijk overlappend uitvoeren, met correcte joins en afzonderlijke evidence. | [Parallelle Action-runtime](PARALLEL_ACTION_RUNTIME_V1.md), Forge `PA-F*` en EP `PA-E*`; capaciteit en leases blijven EP-owned. Geen wijziging van de eerste seriële proef. | +| Menselijke aftrappen verminderen | Resultaten naar context/roadmap terugbrengen en uitsluitend de juiste volgende geautoriseerde Mission starten. | [Projectloop](LIVE_PROJECT_ROADMAP_MANAGEMENT_V1.md), `PRM-F-*` plus passende [outer-loop CI](FORGE_OUTER_LOOP_CI_V1.md). Begin met handmatige vrijgave of een exact goedgekeurde werklijst; volledige delegatie is afzonderlijk. | + +Parallelle Actions en de projectloop zijn twee verschillende vervolgverbeteringen. Een seriële goedgekeurde werklijst hoeft niet op volledige cross-repositoryparalleliteit te wachten; twee onafhankelijke Actions binnen één Mission hoeven niet op een complete outer loop te wachten. Deze focusnotitie kiest geen onderlinge harde startvolgorde en verandert geen bestaande producer-evidencegate. + +**Overdrachtsmoment:** zodra een passende scope door de geïnstalleerde, gekwalificeerde Forge-route wordt ondersteund en de relevante proef is geaccepteerd, is het voorstel om het volgende geschikte werkpakket daar als Mission onder te brengen, in plaats van standaard weer een volledig handmatig Codex-traject te starten. Wacht niet op afronding van alle 34 families of alle 165 tel-eenheden. Ontbrekende kritieke productfuncties kunnen nog rechtstreeks als geautoriseerd engineeringwerk worden gebouwd; vermeld dan precies waarom de bestaande Forge-route dat werk nog niet veilig kan dragen. + +Een gewijzigde Forge- of EP-bron mag daarbij niet ongemerkt de draaiende orchestrator vervangen. Artifactkwalificatie, release, veilige activatie en live bewijs blijven afzonderlijke owning stappen. + +## Van tel-eenheid naar aftrap + +Eén node is niet verplicht één prompt, één Mission of één subagent. Een aftrap kan een samenhangend resultaat omvatten met meerdere contract-, implementatie-, test- en kwalificatiestappen. Omgekeerd kan een grote familie meerdere begrensde Missions nodig hebben. Elke subagent of review krijgt niet automatisch een nieuwe volledige engineeringtransactie. + +Een bruikbare aftrap benoemt het gewenste resultaat, exacte scope en authority, bron-/artifactvoorwaarden, vereiste bewijsvoering en stopgrenzen. Binnen die grens kan Forge zijn Actions afleiden en EP de uitvoering organiseren. Een vooraf uitgeschreven Actionlijst als vervanging van Forge-planning bewijst geen autonomie. + +Minder menselijke aftrappen betekent niet minder engineeringwerk of minder validatie. Beoordeel voortgang daarom op bewezen autonome levering en verminderde noodzakelijke menselijke tussensturing, niet op een dalend aantal labels, grotere prompts of groen gekleurde documentatie. + +## Wat niet automatisch vóór autonomie hoort + +De volledige Workspace-UX, rijke Console, universele installer, algemene multi-host Agent-fleet, complete modeloptimalisatie en nieuwe-projectbootstrap zijn waardevolle productlijnen. Ze zijn geen algemene prerequisite voor doorontwikkeling van de al gekoppelde repositories. Alleen een concreet ontbrekende bevoegdheid, veiligheidsgrens of werkelijk benodigde producerfunctie mag een gerichte afhankelijkheid toevoegen. + +Nieuwe reviewbevindingen blijven evidence-gebonden voorstellen, tenzij zij binnen het al goedgekeurde werk een echte acceptatieblokkade zijn. Een hoge aanbevelingsscore geeft geen recht om de goedgekeurde werklijst te wijzigen. `APPROVED_WORKLIST` voert alleen exact vrijgegeven werk uit; `DELEGATED_DEVELOPMENT` vereist afzonderlijke begrensde bevoegdheid. Deze notitie activeert geen van beide modi. + +## Gebruik bij de volgende Architect-sessie + +Lees dit overzicht voor oriëntatie en gebruik daarna [ARCHITECT_SESSION.md](../../ARCHITECT_SESSION.md) en de [canonieke roadmap](../../knowledge/bootstrap/10_ROADMAP.md) voor authority en actuele bewijsreconciliatie. Vraag bij een mogelijke voorganger: blokkeert het ontbreken van deze exacte capability het volgende autonome resultaat, of staat zij alleen onder een groot ouderprogramma? + +Leg bij de volgende werkselectie kort vast: beoogd autonoom resultaat; exacte nog ontbrekende capability; owning bewijs van reeds geleverd werk; kleinste samenhangende scope; wat via Forge kan en waarom eventueel nog niet; echte menselijke beslissing. Begin niet telkens opnieuw aan de volledige inventaris of aan reeds gesloten reporting-/telemetriereparaties. + +De snapshots blijven gedateerd. Een nieuwe telling krijgt nieuwe bronpins en expliciete toevoegingen, samenvoegingen en uitsluitingen; oude tellingen blijven herkenbaar historisch. Een bijgewerkte telling is geen automatische Missionallocatie, prioriteitswijziging of runtimegoedkeuring. Statuswijzigingen horen met bewijs in de owning roadmap en uitvoeringsadministratie, niet alleen in dit samenvattende document. + +## Leveringsgrens van deze notitie + +Opslag van de analyse en navigatie, uitsluitend documentatie. Geen runtimecode, schema, packageversie, workflow, beleid, credential, database, lopende uitvoering of Mission gewijzigd. Geen nieuwe live-audit of statusclaim over de vier installaties. De oorspronkelijke bronpins en beperkingen zijn behouden; de compacte JSON verandert geen recordbetekenis. diff --git a/docs/roadmap/inventory/2026-09-17.json b/docs/roadmap/inventory/2026-09-17.json new file mode 100644 index 0000000..ba4510c --- /dev/null +++ b/docs/roadmap/inventory/2026-09-17.json @@ -0,0 +1,253 @@ +{ + "schema_version": "roadmap-inventory.compact/v1", + "document_kind": "ANALYTICAL_SNAPSHOT", + "execution_authority": false, + "representation_note": "Deduplicated representation of the supplied inventory, not a recount or new backlog. Expand group metadata per ID; original_order restores item ordering. Source URL = https://github.com/{repository}/blob/{source_pins[repository basename]}/{path}. Legacy chat citation refs are retained only for lossless provenance; pinned repository URLs are the usable sources.", + "source_artifact_sha256": { + "roadmap_inventory.md": "322b6fa36fd0d3a45dfd008578d45f8bf7dff758205e244b2d090bec8302f099", + "roadmap_inventory.json": "ede614667cbe919b5f447cfadf0f9a3c25913354095734ec257da424d1e6d8b2" + }, + "title": "Roadmapinventaris — uitgewerkte Forge/EP/Workspace/Forge Platform-deellijnen", + "source_date": "2026-09-17", + "read_only": true, + "source_pins": { + "engineering-platform": "1cd72ff83b2da4d3fb8bec840975db326589c049", + "workspace": "5ecd418bc9cdc983791bf35c07457ffdb2ad1166", + "forge-platform": "88b256b274fb20487b7c0cce05ccd5a58a4516f1", + "forge": "b46aac196f64d018ae75f0d3492c841df9985ceb" + }, + "summary": { + "raw_named_records_in_selected_scoped_inventory": 194, + "rollup_planning_units": 165, + "collapsed_overlap_records": 29, + "exclusive_units_by_repository": { + "forge": 66, + "engineering-platform": 40, + "workspace": 36, + "forge-platform": 16 + }, + "shared_unique_units": 7, + "units_by_participating_owner_not_additive": { + "forge": 73, + "engineering-platform": 47, + "workspace": 36, + "forge-platform": 17 + }, + "participating_owner_total_not_unique": 173, + "candidate_kickoff_families_by_repository": { + "engineering-platform": 9, + "workspace": 9, + "forge-platform": 4, + "forge": 12 + }, + "candidate_kickoff_families_total": 34 + }, + "counting_rules": [ + "Dit is een read-only, brongebonden inventaris van expliciet uitgewerkte deelroadmaps, geen canoniek nieuw backlogbestand.", + "De rollup van 165 is een expliciet analytisch telmodel. Vooral Console- en installerlagen hebben geen volledig één-op-één uitwisselbare scope; 165 is daarom geen wiskundig minimum aan uitvoerbare Missions of prompts.", + "De 194 ruwe records zijn unieke benoemde werkpakket-/node-identiteiten binnen de geselecteerde scoped inventaris, niet alle koppen/bullets of alle repositoriesamenhangende labels.", + "Status is overgenomen uit de roadmap. Er is geen code-voor-code heraudit van werkelijk resterend werk uitgevoerd; PLANNED kan deels al geleverd werk bevatten.", + "Bredere strategische/post-MVP-doelen zonder vergelijkbare concrete decomposition vallen niet numeriek in deze telling: bijvoorbeeld general Agent/fleet-productisering, uitgebreid platform lifecycle-/OS-bereik en verdere Knowledge/learning-/forecastingproducten.", + "Historische release-/repairwaarnemingen, Foundation, afgesloten documentatiewerk, testscenario’s, bewijsvoorwaarden, dependency-only peerreferenties en herhaalde hoofd-mijlpalen zijn niet als nieuwe werkpakketten geteld.", + "Lopend niet-gemergd resetwerk, toekomstige reviewfixes, scopegroei en herstelpogingen zijn niet als afgerond of als nieuwe uitgewerkte hoofdroadmapnode toegevoegd.", + "De 34 families zijn een mogelijke bundelindeling, geen bewijs dat 34 prompts het werk kunnen afronden, geen werkelijk goedgekeurde Missions en geen minimum." + ], + "family_counts": { + "engineering-platform": { + "Subagent-efficiëntie en assurance": 9, + "Taak-/rol-/modelbeleid": 7, + "Adaptive execution envelope": 3, + "HTTP/ingressconformiteit": 3, + "Genesis/Managed-projectbootstrap": 7, + "Parallelle Actions": 6, + "Governed progression": 1, + "Policy en releasebeheer": 2, + "Projecthygiëne": 2 + }, + "workspace": { + "HTTP/API en CLI": 6, + "PyPI/distributie": 5, + "Business/Architect/UX-conversaties": 4, + "Adaptive Action Sizing": 2, + "Projectloop en roadmapbeheer": 6, + "Genesis/Managed-projectbootstrap": 6, + "Governed progression": 2, + "Policy en releasebeheer": 2, + "Projecthygiëne": 3 + }, + "forge-platform": { + "Installer: clean-install plus UX/release": 13, + "Governed progression": 1, + "Policy en releasebeheer": 1, + "Projecthygiëne": 1 + }, + "forge": { + "Console, hosting en data-administratie": 8, + "HTTP/API en CLI": 5, + "Inner-loop CI": 7, + "Outer-loop CI": 5, + "Adaptive Action Sizing": 6, + "Projectloop en roadmapbeheer": 9, + "Business/Architect/UX-conversaties": 5, + "Genesis/Managed-projectbootstrap": 9, + "Parallelle Actions": 7, + "Governed progression": 1, + "Policy en releasebeheer": 2, + "Projecthygiëne": 2 + } + }, + "defaults": { + "documentary_status": "PLANNED", + "counted_in_rollup": true, + "normalization_reason": null, + "rolled_up_into": [] + }, + "sources": { + "S01": {"repository": "pcvantol/forge", "path": "docs/roadmap/forge-operations-console-v1.json", "legacy_chat_citation_ref": "turn420file0"}, + "S02": {"repository": "pcvantol/forge", "path": "docs/roadmap/forge-http-api-v1.json", "legacy_chat_citation_ref": "turn421file0"}, + "S03": {"repository": "pcvantol/forge", "path": "docs/roadmap/forge-inner-loop-ci-v1.json", "legacy_chat_citation_ref": "turn422file0"}, + "S04": {"repository": "pcvantol/forge", "path": "docs/roadmap/forge-outer-loop-ci-v1.json", "legacy_chat_citation_ref": "turn423file0"}, + "S05": {"repository": "pcvantol/forge", "path": "docs/roadmap/adaptive-action-sizing-v1.json", "legacy_chat_citation_ref": "turn426file0"}, + "S06": {"repository": "pcvantol/forge", "path": "docs/roadmap/live-project-roadmap-management-v1.json", "legacy_chat_citation_ref": "turn427file0"}, + "S07": {"repository": "pcvantol/forge", "path": "docs/roadmap/role-aware-conversations-v1.json", "legacy_chat_citation_ref": "turn429file0"}, + "S08": {"repository": "pcvantol/forge", "path": "docs/roadmap/project-bootstrap-v1.json", "legacy_chat_citation_ref": "turn453file0"}, + "S09": {"repository": "pcvantol/forge", "path": "docs/roadmap/parallel-action-runtime-v1.json", "legacy_chat_citation_ref": "turn454file0"}, + "S10": {"repository": "pcvantol/forge", "path": "docs/roadmap/governed-progression-v1.json", "legacy_chat_citation_ref": "turn424file0"}, + "S11": {"repository": "pcvantol/forge", "path": "docs/roadmap/policy-governance-v1.json", "legacy_chat_citation_ref": "turn425file0"}, + "S12": {"repository": "pcvantol/forge", "path": "docs/roadmap/project-hygiene-v1.json", "legacy_chat_citation_ref": "turn428file0"}, + "S13": {"repository": "pcvantol/forge", "path": "docs/roadmap/forge-console-admin-parity-v1.json", "legacy_chat_citation_ref": "turn419file0"}, + "S14": {"repository": "pcvantol/forge", "path": "docs/roadmap/forge-console-hosting-v1.json", "legacy_chat_citation_ref": "turn418file0"}, + "S15": {"repository": "pcvantol/engineering-platform", "path": "docs/development/SUBAGENT_ORCHESTRATION_V1_DAG.json", "legacy_chat_citation_ref": "turn445file0"}, + "S16": {"repository": "pcvantol/engineering-platform", "path": "docs/development/ROLE_TASK_MODEL_POLICY_V1_DAG.json", "legacy_chat_citation_ref": "turn446file0"}, + "S17": {"repository": "pcvantol/engineering-platform", "path": "docs/development/action-execution-envelope-v1.json", "legacy_chat_citation_ref": "turn447file0"}, + "S18": {"repository": "pcvantol/engineering-platform", "path": "docs/development/HTTP_TRANSPORT_BOUNDARIES_V1_DAG.json", "legacy_chat_citation_ref": "turn448file0"}, + "S19": {"repository": "pcvantol/engineering-platform", "path": "docs/development/PROJECT_BOOTSTRAP_V1_DAG.json", "legacy_chat_citation_ref": "turn455file0"}, + "S20": {"repository": "pcvantol/engineering-platform", "path": "docs/development/PARALLEL_ACTION_EXECUTION_V1_DAG.json", "legacy_chat_citation_ref": "turn456file0"}, + "S21": {"repository": "pcvantol/engineering-platform", "path": "docs/development/GOVERNED_PROGRESSION_V1_ROADMAP.md", "legacy_chat_citation_ref": "turn451file0"}, + "S22": {"repository": "pcvantol/engineering-platform", "path": "docs/development/POLICY_GOVERNANCE_V1_ROADMAP.md", "legacy_chat_citation_ref": "turn452file0"}, + "S23": {"repository": "pcvantol/workspace", "path": "docs/WORKSPACE_HTTP_API_V1_DAG.json", "legacy_chat_citation_ref": "turn436file0"}, + "S24": {"repository": "pcvantol/workspace", "path": "docs/WORKSPACE_PYPI_DISTRIBUTION_V1_DAG.json", "legacy_chat_citation_ref": "turn437file0"}, + "S25": {"repository": "pcvantol/workspace", "path": "docs/ROLE_AWARE_CONVERSATIONS_V1_DAG.json", "legacy_chat_citation_ref": "turn438file0"}, + "S26": {"repository": "pcvantol/workspace", "path": "docs/adaptive-action-sizing-v1.json", "legacy_chat_citation_ref": "turn439file0"}, + "S27": {"repository": "pcvantol/workspace", "path": "docs/LIVE_PROJECT_ROADMAP_MANAGEMENT_V1_DAG.json", "legacy_chat_citation_ref": "turn435file0"}, + "S28": {"repository": "pcvantol/workspace", "path": "docs/PROJECT_BOOTSTRAP_V1_DAG.json", "legacy_chat_citation_ref": "turn459file0"}, + "S29": {"repository": "pcvantol/forge-platform", "path": "docs/roadmap/EP_SERVER_CLEAN_INSTALL_V1.md", "legacy_chat_citation_ref": "turn443file0"}, + "S30": {"repository": "pcvantol/forge-platform", "path": "docs/roadmap/installer-ux-release-v1.json", "legacy_chat_citation_ref": "turn444file0"}, + "S31": {"repository": "pcvantol/forge-platform", "path": "docs/roadmap/GOVERNED_PROGRESSION_V1.md", "legacy_chat_citation_ref": "turn458file0"} + }, + "normalization_rules": { + "N01": { + "reason": "De bron koppelt deze configuration_work_packages via delivered_by aan de FOC-deliverynodes. In dit telmodel als inhoudelijke uitwerking meegenomen, niet nogmaals als extra onafhankelijke uitvoering geteld.", + "rolled_up_into": [ + "FOC-0", + "FOC-1", + "FOC-2", + "FOC-3", + "FOC-4", + "FOC-5", + "FOC-6", + "FOC-Q" + ] + }, + "N02": { + "reason": "Werkpakketten met expliciete delivered_by-verwijzingen naar FOC; meegeteld in de bovenliggende Console-deliverylaag. Dit bewijst niet dat acht prompts de hele Console kunnen leveren.", + "rolled_up_into": [ + "FOC-0", + "FOC-1", + "FOC-2", + "FOC-3", + "FOC-4", + "FOC-5", + "FOC-6", + "FOC-Q" + ] + }, + "N03": { + "reason": "Hostingwerkpakketten zijn via delivered_by aan FOC gekoppeld. Niet als extra onafhankelijke tel-eenheid toegevoegd. Server-only uitvoering kan wel als eigen praktische Mission worden gekozen.", + "rolled_up_into": [ + "FOC-0", + "FOC-1", + "FOC-2", + "FOC-3", + "FOC-4", + "FOC-5", + "FOC-6", + "FOC-Q" + ] + }, + "N04": { + "reason": "Expliciet gedecomponeerd door de zeven RMP-nodes; parent_node=SA-ROLE en completion_requires=RMP-Q. Parent niet extra boven de uitwerking geteld.", + "rolled_up_into": [ + "RMP-CONTRACT", + "RMP-CATALOG", + "RMP-RESOLVE", + "RMP-DISPATCH", + "RMP-EVIDENCE", + "RMP-CONSOLE", + "RMP-Q" + ] + }, + "N05": { + "reason": "Analytische bundeling: IUR noemt FP-EP-CI-6/7/Q als parent_lanes. In dit rollupmodel niet boven de IUR-uitwerking opgeteld. De bron geeft geen sluitende één-op-één equivalentiemapping; dit is dus een planningsconventie, geen bewezen uitwisselbaarheid of volledig onafhankelijke leaf count.", + "rolled_up_into": [ + "IUR-CONTRACT", + "IUR-WIZARD", + "IUR-READONLY", + "IUR-UX-Q", + "IUR-COVERAGE", + "IUR-RUNNER", + "IUR-RELEASE", + "IUR-INSTALL-Q" + ] + } + }, + "groups": [ + {"owners": ["forge"], "family": "Console, hosting en data-administratie", "source": "S01", "ids": ["FOC-0", "FOC-1", "FOC-2", "FOC-3", "FOC-4", "FOC-5", "FOC-6", "FOC-Q"]}, + {"owners": ["forge"], "family": "HTTP/API en CLI", "source": "S02", "ids": ["FH-CONTRACT", "FH-SERVICES", "FH-HTTP", "FH-CLI", "FH-Q"]}, + {"owners": ["forge"], "family": "Inner-loop CI", "source": "S03", "ids": ["FCI-CONTRACT", "FCI-HARNESS", "FCI-EP", "FCI-FLOW", "FCI-RESTART", "FCI-NEGATIVE", "FCI-CI"]}, + {"owners": ["forge"], "family": "Outer-loop CI", "source": "S04", "ids": ["FCO-CONTRACT", "FCO-FLOW", "FCO-RESTART", "FCO-NEGATIVE", "FCO-CI"]}, + {"owners": ["forge"], "family": "Adaptive Action Sizing", "source": "S05", "ids": ["AS-F-CONTRACT", "AS-F-POLICY", "AS-F-PLAN", "AS-F-BIND", "AS-F-FEEDBACK", "AS-F-Q"]}, + {"owners": ["forge"], "family": "Projectloop en roadmapbeheer", "source": "S06", "ids": ["PRM-F-CONTRACT", "PRM-F-PROJECTION", "PRM-F-ELIGIBILITY", "PRM-F-ACTIVATION", "PRM-F-CHANGES", "PRM-F-PRIORITY", "PRM-F-REPOSITORY", "PRM-F-DELEGATION", "PRM-F-Q"]}, + {"owners": ["forge"], "family": "Business/Architect/UX-conversaties", "source": "S07", "ids": ["RC-FC", "RC-FS", "RC-FA", "RC-FP", "RC-FQ"]}, + {"owners": ["forge"], "family": "Genesis/Managed-projectbootstrap", "source": "S08", "ids": ["PB-F0", "PB-F1", "PB-F2", "PB-F3", "PB-F4", "PB-F5", "PB-F6", "PB-F7", "PB-FQ"]}, + {"owners": ["forge"], "family": "Parallelle Actions", "source": "S09", "ids": ["PA-F0", "PA-F1", "PA-F2", "PA-F3", "PA-F4", "PA-F5", "PA-FQ"]}, + {"owners": ["forge"], "family": "Governed progression", "source": "S10", "ids": ["GP-F"]}, + {"owners": ["forge"], "family": "Policy en releasebeheer", "source": "S11", "ids": ["POL-F", "VR-F"]}, + {"owners": ["forge"], "family": "Projecthygiëne", "source": "S12", "ids": ["HY-F", "HY-S"]}, + {"owners": ["forge"], "family": "Console-detailuitwerking", "source": "S01", "ids": ["FC-CODEX", "FC-PYTHON", "FC-STATE", "FC-EXPORT", "FC-IMPORT", "FC-RELOCATE", "FC-VACUUM", "FC-REFRESH", "FC-TIMEOUT"], "counted_in_rollup": false, "normalization_rule": "N01"}, + {"owners": ["forge"], "family": "Console-detailuitwerking", "source": "S13", "ids": ["FCP-GITHUB", "FCP-DESIGN", "FCP-I18N", "FCP-LOG-CONTRACT", "FCP-LOG-UX", "FCP-PAIR-CONTRACT", "FCP-PAIR-UX", "FCP-CI", "FCP-Q"], "counted_in_rollup": false, "normalization_rule": "N02"}, + {"owners": ["forge"], "family": "Console-detailuitwerking", "source": "S14", "ids": ["FSH-CENTRAL", "FSH-COMPONENTS", "FSH-SERVICES", "FSH-RELAY", "FSH-DETAILS", "FSH-RESTART", "FSH-Q"], "counted_in_rollup": false, "normalization_rule": "N03"}, + {"owners": ["engineering-platform"], "family": "Subagent-efficiëntie en assurance", "source": "S15", "ids": ["SA-CTX", "SA-ISO", "SA-OBS", "SA-VAL", "SA-PUB", "SA-SEL", "SA-LOOP", "SA-PAR", "SA-Q"]}, + {"owners": ["engineering-platform"], "family": "Taak-/rol-/modelbeleid", "source": "S16", "ids": ["RMP-CONTRACT", "RMP-CATALOG", "RMP-RESOLVE", "RMP-DISPATCH", "RMP-EVIDENCE", "RMP-CONSOLE", "RMP-Q"]}, + {"owners": ["engineering-platform"], "family": "Subagent-detailuitwerking", "source": "S15", "ids": ["SA-ROLE"], "counted_in_rollup": false, "normalization_rule": "N04"}, + {"owners": ["engineering-platform"], "family": "Adaptive execution envelope", "source": "S17", "ids": ["AS-E-OFFER", "AS-E-FIT", "AS-E-Q"]}, + {"owners": ["engineering-platform"], "family": "HTTP/ingressconformiteit", "source": "S18", "ids": ["EH-CONTRACT", "EH-CONFORMANCE", "EH-Q"]}, + {"owners": ["engineering-platform"], "family": "Genesis/Managed-projectbootstrap", "source": "S19", "ids": ["PB-E0", "PB-E1", "PB-E2", "PB-E3", "PB-E4", "PB-E5", "PB-EQ"]}, + {"owners": ["engineering-platform"], "family": "Parallelle Actions", "source": "S20", "ids": ["PA-E0", "PA-E1", "PA-E2", "PA-E3", "PA-E4", "PA-EQ"]}, + {"owners": ["engineering-platform"], "family": "Governed progression", "source": "S21", "ids": ["GP-E"]}, + {"owners": ["engineering-platform"], "family": "Policy en releasebeheer", "source": "S22", "ids": ["POL-E", "VR-X"]}, + {"owners": ["engineering-platform"], "family": "Projecthygiëne", "source": "S12", "ids": ["HY-E", "HY-C"]}, + {"owners": ["workspace"], "family": "HTTP/API en CLI", "source": "S23", "ids": ["WH-CONTRACT", "WH-SERVICES", "WH-HTTP", "WH-CLI", "WH-PEERS", "WH-Q"]}, + {"owners": ["workspace"], "family": "PyPI/distributie", "source": "S24", "ids": ["WPK-IDENTITY", "WPK-PACKAGE", "WPK-PUBLISH", "WPK-READBACK", "WPK-CONSUMER"]}, + {"owners": ["workspace"], "family": "Business/Architect/UX-conversaties", "source": "S25", "ids": ["RC-WC", "RC-WS", "RC-WP", "RC-WQ"]}, + {"owners": ["workspace"], "family": "Adaptive Action Sizing", "source": "S26", "ids": ["AS-W-POLICY", "AS-W-Q"]}, + {"owners": ["workspace"], "family": "Projectloop en roadmapbeheer", "source": "S27", "ids": ["PRM-W-CONTRACT", "PRM-W-VIEW", "PRM-W-MANAGE", "PRM-W-DECISIONS", "PRM-W-SYNC", "PRM-W-Q"]}, + {"owners": ["workspace"], "family": "Genesis/Managed-projectbootstrap", "source": "S28", "ids": ["PB-W0", "PB-W1", "PB-W2", "PB-W3", "PB-W4", "PB-WQ"]}, + {"owners": ["workspace"], "family": "Governed progression", "source": "S10", "ids": ["GP-WC", "GP-W"]}, + {"owners": ["workspace"], "family": "Policy en releasebeheer", "source": "S11", "ids": ["POL-WC", "POL-W"]}, + {"owners": ["workspace"], "family": "Projecthygiëne", "source": "S12", "ids": ["HY-WC", "HY-WO", "HY-WM"]}, + {"owners": ["forge-platform"], "family": "Installer: clean-install plus UX/release", "source": "S29", "ids": ["FP-EP-CI-1"], "documentary_status": "BLOCKED_PENDING_AUTHORITY_SELECTION / PARKED_LANE"}, + {"owners": ["forge-platform"], "family": "Installer: clean-install plus UX/release", "source": "S29", "ids": ["FP-EP-CI-2", "FP-EP-CI-3", "FP-EP-CI-4", "FP-EP-CI-5"], "documentary_status": "PLANNED / PARKED_LANE"}, + {"owners": ["forge-platform"], "family": "Installer: clean-install plus UX/release", "source": "S30", "ids": ["IUR-CONTRACT", "IUR-WIZARD", "IUR-READONLY", "IUR-UX-Q", "IUR-COVERAGE", "IUR-RUNNER", "IUR-RELEASE", "IUR-INSTALL-Q"]}, + {"owners": ["forge-platform"], "family": "Installer-ouderlaag", "source": "S29", "ids": ["FP-EP-CI-6", "FP-EP-CI-Q"], "documentary_status": "PLANNED / PARKED_LANE", "counted_in_rollup": false, "normalization_rule": "N05"}, + {"owners": ["forge-platform"], "family": "Installer-ouderlaag", "source": "S29", "ids": ["FP-EP-CI-7"], "documentary_status": "BLOCKED_PENDING_PROTECTED_RELEASE_AUTHORITY / PARKED_LANE", "counted_in_rollup": false, "normalization_rule": "N05"}, + {"owners": ["forge-platform"], "family": "Governed progression", "source": "S31", "ids": ["GP-P"]}, + {"owners": ["forge-platform"], "family": "Policy en releasebeheer", "source": "S11", "ids": ["POL-P"]}, + {"owners": ["forge-platform"], "family": "Projecthygiëne", "source": "S12", "ids": ["HY-P"]}, + {"owners": ["forge", "engineering-platform", "forge-platform"], "family": "Gedeeld: governed progression", "source": "S10", "ids": ["GP-DC"]}, + {"owners": ["forge", "engineering-platform"], "family": "Gedeeld: governed progression", "source": "S10", "ids": ["GP-Q", "GP-X"]}, + {"owners": ["forge", "engineering-platform"], "family": "Gedeeld: policy en release", "source": "S11", "ids": ["POL-B", "POL-Q", "VR-Q"]}, + {"owners": ["forge", "engineering-platform"], "family": "Gedeeld: projecthygiëne", "source": "S12", "ids": ["HY-Q"]} + ], + "original_order": ["FOC-0", "FOC-1", "FOC-2", "FOC-3", "FOC-4", "FOC-5", "FOC-6", "FOC-Q", "FH-CONTRACT", "FH-SERVICES", "FH-HTTP", "FH-CLI", "FH-Q", "FCI-CONTRACT", "FCI-HARNESS", "FCI-EP", "FCI-FLOW", "FCI-RESTART", "FCI-NEGATIVE", "FCI-CI", "FCO-CONTRACT", "FCO-FLOW", "FCO-RESTART", "FCO-NEGATIVE", "FCO-CI", "AS-F-CONTRACT", "AS-F-POLICY", "AS-F-PLAN", "AS-F-BIND", "AS-F-FEEDBACK", "AS-F-Q", "PRM-F-CONTRACT", "PRM-F-PROJECTION", "PRM-F-ELIGIBILITY", "PRM-F-ACTIVATION", "PRM-F-CHANGES", "PRM-F-PRIORITY", "PRM-F-REPOSITORY", "PRM-F-DELEGATION", "PRM-F-Q", "RC-FC", "RC-FS", "RC-FA", "RC-FP", "RC-FQ", "PB-F0", "PB-F1", "PB-F2", "PB-F3", "PB-F4", "PB-F5", "PB-F6", "PB-F7", "PB-FQ", "PA-F0", "PA-F1", "PA-F2", "PA-F3", "PA-F4", "PA-F5", "PA-FQ", "GP-F", "POL-F", "VR-F", "HY-F", "HY-S", "FC-CODEX", "FC-PYTHON", "FC-STATE", "FC-EXPORT", "FC-IMPORT", "FC-RELOCATE", "FC-VACUUM", "FC-REFRESH", "FC-TIMEOUT", "FCP-GITHUB", "FCP-DESIGN", "FCP-I18N", "FCP-LOG-CONTRACT", "FCP-LOG-UX", "FCP-PAIR-CONTRACT", "FCP-PAIR-UX", "FCP-CI", "FCP-Q", "FSH-CENTRAL", "FSH-COMPONENTS", "FSH-SERVICES", "FSH-RELAY", "FSH-DETAILS", "FSH-RESTART", "FSH-Q", "SA-CTX", "SA-ISO", "SA-OBS", "SA-VAL", "SA-PUB", "SA-SEL", "SA-LOOP", "SA-PAR", "SA-Q", "RMP-CONTRACT", "RMP-CATALOG", "RMP-RESOLVE", "RMP-DISPATCH", "RMP-EVIDENCE", "RMP-CONSOLE", "RMP-Q", "SA-ROLE", "AS-E-OFFER", "AS-E-FIT", "AS-E-Q", "EH-CONTRACT", "EH-CONFORMANCE", "EH-Q", "PB-E0", "PB-E1", "PB-E2", "PB-E3", "PB-E4", "PB-E5", "PB-EQ", "PA-E0", "PA-E1", "PA-E2", "PA-E3", "PA-E4", "PA-EQ", "GP-E", "POL-E", "VR-X", "HY-E", "HY-C", "WH-CONTRACT", "WH-SERVICES", "WH-HTTP", "WH-CLI", "WH-PEERS", "WH-Q", "WPK-IDENTITY", "WPK-PACKAGE", "WPK-PUBLISH", "WPK-READBACK", "WPK-CONSUMER", "RC-WC", "RC-WS", "RC-WP", "RC-WQ", "AS-W-POLICY", "AS-W-Q", "PRM-W-CONTRACT", "PRM-W-VIEW", "PRM-W-MANAGE", "PRM-W-DECISIONS", "PRM-W-SYNC", "PRM-W-Q", "PB-W0", "PB-W1", "PB-W2", "PB-W3", "PB-W4", "PB-WQ", "GP-WC", "GP-W", "POL-WC", "POL-W", "HY-WC", "HY-WO", "HY-WM", "FP-EP-CI-1", "FP-EP-CI-2", "FP-EP-CI-3", "FP-EP-CI-4", "FP-EP-CI-5", "IUR-CONTRACT", "IUR-WIZARD", "IUR-READONLY", "IUR-UX-Q", "IUR-COVERAGE", "IUR-RUNNER", "IUR-RELEASE", "IUR-INSTALL-Q", "FP-EP-CI-6", "FP-EP-CI-7", "FP-EP-CI-Q", "GP-P", "POL-P", "HY-P", "GP-DC", "GP-Q", "GP-X", "POL-B", "POL-Q", "VR-Q", "HY-Q"] +} diff --git a/docs/roadmap/inventory/README.md b/docs/roadmap/inventory/README.md new file mode 100644 index 0000000..56974c4 --- /dev/null +++ b/docs/roadmap/inventory/README.md @@ -0,0 +1,76 @@ +# Brongebonden roadmapinventarissen + +Deze map bewaart gedateerde analytische snapshots. Zij is geen tweede backlog, uitvoerbare DAG, planningservice of peer-statusautoriteit. Voor het hoogoverbeeld en de autonomie-eerst focus: [Roadmapoverzicht](../ROADMAP_OVERVIEW_AND_AUTONOMY_FOCUS.md). + +## 17 september 2026 + +[2026-09-17.json](2026-09-17.json) bewaart de volledige oorspronkelijke telling: 194 unieke benoemde records, 165 analytische rollup-eenheden, waarvan 7 gedeelde nodes, en 34 mogelijke aftrapfamilies. De oorspronkelijke bronrevisies, statussen, telregels, families, recordvolgorde en samenvoegredenen zijn behouden. Dit is een compacte representatie, geen hertelling of code-/runtime-audit. + +De oorspronkelijke invoerbestanden waren `roadmap_inventory.md` en `roadmap_inventory.json`; hun SHA-256 staat in `source_artifact_sha256`. De JSON is voor repositoryopslag genormaliseerd om identieke bronmetadata niet 194 maal te herhalen. Alle oorspronkelijke itemvelden zijn verliesvrij terug te construeren en zijn bij vastlegging programmatisch met het aangeleverde origineel vergeleken. De originele chatbestanden hoeven niet beschikbaar te zijn om deze repositorysnapshot te lezen. + +## Formaat `roadmap-inventory.compact/v1` + +- `source_pins`: exacte commit per repository. +- `sources`: repository, relatief bronpad en historische chat-citatiereference. De laatste is alleen retained metadata, geen bruikbare repositoryautoriteit. De stabiele bronlink volgt uit repository, commit en pad. +- `groups`: een rij met meerdere IDs waarvoor dezelfde metadata geldt. Ontbrekende waarden volgen uit `defaults`; een expliciete status overschrijft de default. +- `normalization_rules`: de oorspronkelijke analytische redenen en `rolled_up_into`-IDs; dit is geen claim dat alle scopes één-op-één equivalent zijn. +- `original_order`: oorspronkelijke volgorde van de 194 records. +- `summary`, `counting_rules` en `family_counts`: ongewijzigde uitkomsten en beperkingen van de aangeleverde analyse. + +Een `PLANNED` in deze snapshot is het documentaire label op de genoemde bronpin, niet het oordeel dat vandaag alles nog ongebouwd is. De niet-optelbare deelnametotalen zijn geen unieke backlogtelling. De 34 families zijn geen minimum of garantie voor het aantal prompts. + +## Reproduceren zonder netwerk of productruntime + +Vanaf de repository-root kan de onderstaande read-only standaardbibliotheekcode de records uitpakken en de interne telling toetsen. Dit kwalificeert de inventarisstructuur, niet de owning productimplementaties of hun huidige roadmapstatus. + +```python +import collections +import json +from pathlib import Path + +snapshot = json.loads(Path("docs/roadmap/inventory/2026-09-17.json").read_text(encoding="utf-8")) +items = {} +for group in snapshot["groups"]: + source = snapshot["sources"][group["source"]] + repository = source["repository"] + commit = snapshot["source_pins"][repository.rsplit("/", 1)[-1]] + rule = snapshot["normalization_rules"].get( + group.get("normalization_rule"), {"reason": None, "rolled_up_into": []} + ) + for item_id in group["ids"]: + assert item_id not in items, ("duplicate ID", item_id) + items[item_id] = { + "id": item_id, + "owners": group["owners"], + "family": group["family"], + "documentary_status": group.get("documentary_status", "PLANNED"), + "counted_in_rollup": group.get("counted_in_rollup", True), + "normalization_reason": rule["reason"], + "rolled_up_into": rule["rolled_up_into"], + "source_repository": repository, + "source_commit": commit, + "source_path": source["path"], + "source_url": f"https://github.com/{repository}/blob/{commit}/{source['path']}", + "citation_ref": source["legacy_chat_citation_ref"], + } +assert len(snapshot["original_order"]) == len(set(snapshot["original_order"])) == len(items) +assert set(snapshot["original_order"]) == set(items) +ordered = [items[item_id] for item_id in snapshot["original_order"]] +counted = [item for item in ordered if item["counted_in_rollup"]] +summary = snapshot["summary"] +assert len(ordered) == summary["raw_named_records_in_selected_scoped_inventory"] == 194 +assert len(counted) == summary["rollup_planning_units"] == 165 +assert len(ordered) - len(counted) == summary["collapsed_overlap_records"] == 29 +assert sum(len(item["owners"]) > 1 for item in counted) == summary["shared_unique_units"] == 7 +exclusive = collections.Counter(item["owners"][0] for item in counted if len(item["owners"]) == 1) +assert dict(exclusive) == summary["exclusive_units_by_repository"] +for repository, families in snapshot["family_counts"].items(): + observed = collections.Counter( + item["family"] for item in counted if item["owners"] == [repository] + ) + assert dict(observed) == families +assert sum(len(families) for families in snapshot["family_counts"].values()) == 34 +print("Inventory structure PASS: 194 records / 165 rollup units / 34 families") +``` + +Een volgende inventaris krijgt een nieuwe gedateerde snapshot en een verklaarde delta. Verander deze historische bronlabels niet in live voortgang; werk actuele bewijsstatus bij in de owning administratie.