Thema
Referentie-run: family-choirs
De keten is één keer handmatig volledig doorlopen. Die run is de blauwdruk én de bron van de gap-lijst — elke frictie daarin is hier concreet geraakt.
Resultaat: live op https://familychores.nl — TLS ok, healthy, in-sync.
De stappen
1. Explore
documentatie/ opgeleverd: business, personas, user-journeys, user-stories, technical/architectuur.md, plus wireframes.
Handwerk — G1
De map is handmatig genormaliseerd. solution-explorer schrijft solutions/<slug>/0N-*/…; de bridge verwacht andere bestandsnamen.
2. Bridge
scaffolder.config.yaml gegenereerd uit ./documentatie:
yaml
name: family-chores
persistence: postgres
mailer: true
auth: true
i18n:
locales: [nl, en]3. Scaffold
app/ neergezet: NestJS + Nuxt + Postgres, met FAMILYCHORES_-prefix, de spine en liveness-auth. Businesslogica nog niet ingevuld — dat is G2.
4. Repo
SSiertsema/family-choirs bestond al. Handmatig aangemaakt — dat is G8.
5. Deploy
- Nieuwe context
for-the-people— eigen Hetzner-host,cx23innbg1. - Connectie-artefacten in de repo-root geplaatst (dat is de impliciete conventie uit G4).
- CI verplaatst naar root en naar GHCR laten pushen — G3.
- Healthcheck geoverridet naar
127.0.0.1— G6. - Registry-deploy, daarna geverifieerd.
Wat de run heeft geleerd
De frictie is in deze run steeds in de deploy-laag opgelost, omdat dat de laatste laag was waar je er nog bij kon. Dat werkt één keer. P1–P3 verplaatsen die fixes naar de stage waar ze thuishoren, zodat de volgende roundtrip minder handwerk kost.
Het naam-detail
Let op de spelling — het is geen typefout in dit document:
| Laag | Naam | Herkomst |
|---|---|---|
| Repo / product | family-choirs | repo-map-basename |
| App / env-prefix | family-chores → FAMILYCHORES_ | app-naam in de config |
| Domein | familychores.nl | — |
Dat is G7 in het echt: twee lagen leiden de naam onafhankelijk af, en je moet het verschil met de hand managen.