Skip to content

Gaps & plan

Negen bekende gaten in de keten, allemaal concreet geraakt in de family-choirs-run — geen theoretische lijst.

De gap-lijst

#GapNaadImpactFix-eigenaar
G1Geen genormaliseerde documentatie/-export; layout-mismatchAketen breekt zonder handwerksolution-explorer · 🟡 candidacy-signaal + scaffoldReady-vlag gebouwd; de export zelf nog open
G2Entiteiten/velden niet afgeleid → handmatig add-module + veldenAgrootste handmatige brokexplorer (manifest) + scaffolder · 🟡 manifest-basis gebouwd; entiteiten/velden nog toe te voegen
G3Scaffolder-CI verkeerd geplaatst + push:falseBdode CI, geen imagesscaffolder
G4Compose-eigenaarschap botst (dev vs co-host)Bimpliciete conventie, sync-conflict-risicoscaffolder + deployment
G5Geen deploy-metadata → deployment her-afleidtBfragiel, dubbel werkscaffolder
G6Healthcheck localhost/IPv6-bugBfalse-unhealthy containersscaffolder (upstream)
G7Naam-mismatch product/appBverwarring, handmatige afstemmingconventie
G8Git-repo + tokens handmatigBextra handmatige staporchestratie (gh)
G9Geen top-level orchestratie/gates over de drie stagesketengeen "één roundtrip"nieuw (roundtrip)

Het gefaseerde plan

P0 — Vastleggen (gedaan)

  • SEIFER.md: verantwoordelijkheden + de twee contracten + gap-lijst.
  • family-choirs expliciet gemarkeerd als referentie-run.

P1 — Naad A hard maken

  • solution-explorer: genormaliseerde documentatie/-export met vaste bestandsnamen.
  • solution-explorer: solution-manifest.json per solution (slug, status, tech-stack, entiteiten + velden, routes).
  • scaffolder: generate-scaffolder-config betrouwbaar op die conventie; add-module optioneel voeden uit het manifest, velden in plaats van een lege stub.

P2 — Naad B hard maken

  • scaffolder: repo-layout-conventie (code in app/, ops op root); geen deploy-CI meer emitten; dev-compose hernoemen naar app/docker-compose.dev.yml.
  • scaffolder: deploy-metadata.json emitten; healthcheck-bug + prefix-conventie fixen.
  • deployment: onboard-solution die metadata laten consumeren in plaats van her-af te leiden.

P3 — Orchestratie + automatisering

  • gh repo create … --push als auto-stap wanneer het repo nog niet bestaat.
  • Een roundtrip-orchestrator (skill of dun script) die de drie stages achter elkaar draait met de gates — agent stelt voor, mens keurt goed. Geen volledige autonomie.

Openstaand werk buiten de gap-lijst

De gap-lijst gaat over de keten. Daarnaast loopt er werk in de foundation dat er niet in staat. Vier punten zijn geblokkeerd op een beslissing:

PuntWaar het over gaat
Registry22 kits staan op npm (0.1.0, restricted). Nog niet: project-scaffolder, de umbrella, en drie capability-modules die vóórlopen op de registry.
Workspaces ontmantelenBesloten: registry eerst, dan pas loskoppelen — zodat er nooit een moment is waarop niets bouwt.
Drie scaffoldersEr zijn er drie die niets van elkaar weten. Herbouwen of samenvoegen? Beantwoord die vraag vóór er iets in gebouwd wordt.
Integratie-oplossingenEr is nog geen oplossing die bewijst dat kits + capability-modules samen werken zoals bedoeld.
De drie scaffolders
WaarWat
Seifer/scaffolderde spine: NestJS + Nuxt 3 + Postgres + Docker
foundation/tools/project-scaffolderfrontend-project boilerplaten uit een manifest
foundation/capability-modules/scaffolder-corecapability-modules materialiseren (three-way merge)

project-scaffolder is net waarheidsgetrouw gemaakt en vastgepind met een test, maar zijn model is achterhaald: het kent alleen de umbrella (niet de losse kit-packages met eigen semver-lijnen), kent de capability-module-tier niet, en gaat uit van bron- in plaats van registry-integratie.

Bron van waarheid

TODO.md in de repo-root is de lopende lijst van beslissingen, blokkades en losse eindjes. Punt 1 t/m 8 daaruit zijn op 2026-08-16 omgezet naar user stories: user-stories/ bevat ze als EPIC-07 t/m EPIC-12 (US-021 t/m US-053), met acceptatiecriteria, dependency-map en een gefaseerde volgorde. TODO.md blijft de plek voor de redenering; het bord is de uitvoering.

Seifer — interne documentatie. Bron van waarheid blijft de repo zelf.