Engine documentation

FIDO-RUNBOOK — van domein-brief naar complete engine

Engine protocol and working reference.

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:

  1. Engines/00-ENGINE-FAMILY-INDEX.md — de gedeelde wetten + de engines-tabel.
  2. Engines/FIDO-MASTER-PROTOCOL.md — FIDO's eigen lat en gates.
  3. 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 in FISO/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:

  1. Backup eerst: kopieer Engines/00-ENGINE-FAMILY-INDEX.md naar Engines/00-ENGINE-FAMILY-INDEX.backup-<YYYYMMDD>.md (zelfde map).
  2. Voeg één rij toe onderaan de engines-tabel, exact in de bestaande stijl: | **<NAAM>** | <file in> → **<ding out>** | master hier |
  3. 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:

  1. 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.
  2. 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.