Dit is het recept dat een willekeurig model (Fable/Opus/Sonnet/Haiku) blind draait: een domein-brief uit FIDO/inbox/ in → een complete engine uit. Elke stap heeft een verwachte observatie; elke gate een pass-definitie. Geen oordeelskeuze open die hieronder niet gedekt is. Het wát/waarom van FIDO staat in Engines/FIDO-MASTER-PROTOCOL.md; dit is het hóe.
Paden zijn relatief aan Codex/ (de map boven FIDO/).
Stap 0 — Voorwaarden
Doe: check dat er precies één onbehandelde brief in FIDO/inbox/ ligt (behandelde brieven krijgen na levering het suffix .done.md, zie stap 9). Verwachte observatie: één *.md zonder .done-suffix. Nul brieven → stop, er is niks te minten. Meerdere → pak de oudste eerst, meld de rest als wachtrij.
Stap 1 — Lees de familie (verplicht, volledig, nooit skimmen)
Doe: lees helemaal, in deze volgorde:
Engines/00-ENGINE-FAMILY-INDEX.md— de gedeelde wetten + de engines-tabel.Engines/FIDO-MASTER-PROTOCOL.md— FIDO's eigen lat en gates.- Minstens twee zuster-protocollen als vorm-anker: standaard
Engines/FILO-MASTER-PROTOCOL.md+Engines/FIPO-MASTER-PROTOCOL.md(compacte vorm); ligt het nieuwe domein dicht bij een specifieke zuster (covers→FICO, sites→FISO inFISO/FISO-MASTER-PROTOCOL.md, tools→FIAO), lees dié er ook bij.
Verwachte observatie: je kunt de zeven gedeelde wetten benoemen, en je herkent de vaste vorm van een compact master-protocol (zie de template in Bijlage A — die is hieruit afgeleid).
Stap 2 — Lees de domein-brief + intake-gate
Doe: lees de brief volledig. Check de vijf verplichte intake-velden uit het FIDO-master-protocol:
| Veld | Aanwezig als… |
|---|---|
| Naam | een FI?O-naam staat er, of "FIDO kiest" |
| File In | het ruwe materiaal is concreet benoemd |
| Ding Out | het afgewerkte product is concreet benoemd |
| De lat | er staat wanneer het mindblowing/on-brand is voor dít domein, of een zuster om 'm uit af te leiden |
| Domein-hardcodes | minstens één niet-onderhandelbare regel, of expliciet "geen" |
Gate (pass-definitie): "Ding Out" én "de lat" zijn beide aanwezig of afleidbaar uit een benoemde zuster. Ontbreekt één van beide → RECON NEEDED: schrijf in FIDO/out/<naam>-RECON.md exact welke vraag de brief-schrijver moet beantwoorden, en stop deze mint. Nooit verzinnen. Ontbreken alleen naam of hardcodes → zelf kiezen (naam per stap 4; hardcodes afleiden uit de brief + zusters) en die keuze loggen in de RUN.
Stap 3 — Geen-dubbel-gate
Doe: leg het domein van de brief naast de engines-tabel in de index (kolom "File In → Out") én naast de "Concrete beasts"-sectie. Gate (pass-definitie): geen bestaande engine levert hetzelfde Ding Out. Bestaat er wél een → stop de mint, en lever in plaats daarvan een uitbreidingsvoorstel op het bestaande protocol (FIDO/out/<naam>-EXTEND.md: wat de bestaande engine mist en waar het erbij moet). Let op: losse content-files (bv. een geschreven e-mail-sequence in Axis/) zijn géén engine — alleen de tabel telt als dubbel.
Stap 4 — Naam-gate
Doe: bepaal de naam (uit de brief, of kies zelf: FI + eerste vrije logische output-letter + O) en check 'm op botsing:
./FIDO/scaffold.sh <NAAM>
Draai dit pas in stap 6 echt; hier check je alleen de tabel + Engines/ op een bestaand <NAAM>-MASTER-PROTOCOL.md. Gate (pass-definitie): de naam matcht FI[A-Z]O, staat niet in de engines-tabel, en Engines/<NAAM>-MASTER-PROTOCOL.md bestaat niet. Botsing → kies de volgende vrije letter die nog logisch leest, log de keuze.
Stap 5 — Schrijf het master-protocol
Doe: schrijf Engines/<NAAM>-MASTER-PROTOCOL.md exact volgens de template in Bijlage A, gevuld met de brief-inhoud. Regels daarbij:
- Erf de gedeelde wetten door verwijzing ("Gedeelde wetten:
00-ENGINE-FAMILY-INDEX.md") — herhaal ze niet. - Eén law in de intro, vet, in de vorm "het product doet X, of het is niet klaar".
- Elke gate in het protocol krijgt een toetsbare pass-definitie (iets dat je kunt checken, geen "voelt goed").
- Neem modes (greenfield/improve-bestaand) alleen op als het domein een bestaand-verbeteren-variant heeft; anders weglaten (zoals FICO/FIPO).
- Benoem de ideale uitvoerder-tier in de self-verify gate (wet 7).
- Lengte: compacte vorm (30–40 regels, zoals FILO/FIPO/FICO), tenzij het domein regressie-regels als FISO nodig heeft.
Verwachte observatie: het bestand bestaat, heeft alle template-secties, en leest naast FILO/FIPO als familie.
Stap 6 — Scaffold
Doe:
./FIDO/scaffold.sh <NAAM>
Verwachte observatie: drie regels output — aangemaakt: …/<NAAM>/inbox, aangemaakt: …/<NAAM>/out, protocol hier neerzetten: …/Engines/<NAAM>-MASTER-PROTOCOL.md — en de mappen bestaan echt (ls <NAAM>/). Foutmelding over botsing → terug naar stap 4. Let op: schreef je het protocol al in stap 5, dan meldt scaffold.sh een botsing op het protocolpad. Draai 'm dan vóór stap 5, of maak de mappen met mkdir -p <NAAM>/inbox <NAAM>/out en check ze met ls.
Stap 7 — Index-regel (canon van Tash — alleen toevoegen, niks herformuleren)
Doe, in deze volgorde:
- Backup eerst: kopieer
Engines/00-ENGINE-FAMILY-INDEX.mdnaarEngines/00-ENGINE-FAMILY-INDEX.backup-<YYYYMMDD>.md(zelfde map). - Voeg één rij toe onderaan de engines-tabel, exact in de bestaande stijl:
| **<NAAM>** | <file in> → **<ding out>** | master hier | - Verander verder niets aan het bestand.
Verwachte observatie: diff tussen backup en index toont precies één toegevoegde regel, nul gewijzigde of verwijderde regels.
Stap 8 — Self-verify gate (afvinken mét bewijs)
Loop deze checklist na; per punt noteer je wát je checkte, niet alleen "ja":
Gate (pass-definitie): alle zeven punten groen mét bewijs. Eén punt rood → fix en loop de lijst opnieuw. Niet fixbaar → de run is "in progress", eerlijk gezegd, nooit als klaar verkocht.
Stap 9 — Lever + log
Doe:
- Schrijf
FIDO/out/FIDO-RUN.md(of vul 'm aan met een nieuwe run-sectie): datum, de brief, welke zusters als vorm-anker, de keuzes (naam, tier, weggelaten/toegevoegde secties, afgeleide hardcodes), en de stap-8-checklist afgevinkt mét het bewijs per punt. - Hernoem de brief in de inbox naar
<naam>.done.md.
Verwachte observatie: de RUN staat in FIDO/out/, de inbox-brief heeft het .done-suffix. Delivery-gate (pass-definitie): protocol + scaffold + index-regel bestaan, stap 8 is groen, de RUN is gelogd. Alles daaronder = "in progress".
Bijlage A — De vorm-template van een compact master-protocol
Afgeleid uit FILO/FIPO/FICO/FIVO/FIGO/FIAO/FIMO (de compacte vorm; FISO is de lange uitzondering voor domeinen met regressie-regels). Vervang alles tussen <…>; secties gemarkeerd (optioneel) alleen opnemen als het domein erom vraagt.
---
canon_status: canon
canon_owner: Tash
canon_desc: <NAAM> — File In, <X> Out — <korte omschrijving, max één regel>
canon_last_reviewed: <YYYY-MM-DD>
---
# <NAAM> — File In, <X> Out
<File in> in → **<ding out, concreet> uit.** Gedeelde wetten: `00-ENGINE-FAMILY-INDEX.md`.
<optioneel: één regel verwantschap/bouwt-voort-op.> Eén law: **<de ene niet-onderhandelbare
uitkomst-regel: "…, of het is niet klaar.">**
## Twee modes *(optioneel — alleen bij een improve-bestaand-variant)*
- **Mode A — nieuw** uit <input>.
- **Mode B — bestaand verbeteren** zonder te breken wat werkt (regressie-gate als FISO Part 7).
## Intake
- <verplicht veld 1> + <verplicht veld 2>.
- <verplicht veld 3 / context-anker>.
Ontbreekt <essentieel veld X> of <essentieel veld Y> → RECON NEEDED.
## Wat <NAAM> uitspuugt
- **<onderdeel 1>** — <concreet, toetsbaar>.
- **<onderdeel 2>** — <…>.
- <…>
## De lat (mindblowing = <de domein-vertaling>)
<Twee tot vier zinnen: waaraan zie je dat dít domein-product verbluffend/on-brand is —
geformuleerd als iets dat een vreemde/koper/lezer dóét, niet als een gevoel.>
## Hardcodes
- **<regel 1>** — <niet onderhandelbaar>.
- <regel 2>.
- <…>
## Self-verify gate
- <toets 1: getoetst tegen iets echts — render, bron, gedraaide test>.
- <toets 2>.
- Ideale uitvoerder-tier: **<laag/mid/hoog>** (<reden>).
## Output
`<NAAM>/out/<naam>/<bestand>` + `<NAAM>-RUN.md` (<wat de RUN logt>). Delivery-gate:
<wanneer is de run DELIVERED; half of niet-geverifieerd = "in progress", eerlijk gezegd>.Bijlage B — De Fable-factory-harness (optioneel, op verzoek)
Wil de brief er een bouw-harness bij (FIDO-master punt 4), lever dan naast het protocol een /goal-blok in de stijl van Engines/BUILD-ORDER-FABLE.md: lees-eerst-regels, spine-is-van-de-bouwer, sub-agents breadth-first, self-verify in iets echts, RECON NEEDED nooit verzinnen, en loggen in een LEDGER. Niet gevraagd → weglaten.