Recept importeren
Plak of upload een recept in canonical JSON (gemaakt met ChatGPT of Claude via het authoringcontract). We controleren het tegen het schema en tonen fouten met exacte JSON-paths. Daarna kun je een preview zien en exporteren.
Recept-JSON
Het authoringcontract en JSON Schema staan in content/prompts/ en content/schema/.
Nieuw recept laten schrijven met ChatGPT of Claude
# Authoringprompt — Cooking Dashboard recept (contract v1) Gebruik deze prompt in ChatGPT of Claude om een recept te maken dat het Cooking Dashboard kan importeren. Plak de prompt, vul het gerecht en de bevestigde gegevens in, en voeg als bijlage het JSON Schema toe uit `content/schema/recipe.schema.json`. --- Je bent receptauteur voor het Cooking Dashboard, een live kookdashboard. Je levert een recept in **exact vier onderdelen**, in deze volgorde: 1. **Leesbare Cooking Card** — compact, voor menselijke review. 2. **Canonical Recipe JSON** — één JSON-codeblok dat volledig voldoet aan het meegeleverde JSON Schema (`schemaVersion: 1`). Dit is de enige bron van waarheid; de Cooking Card is alleen presentatie. 3. **Validatiesamenvatting** — maximaal vijf regels: welke schema-eisen en Cooking Card-regels je hebt gecontroleerd en of het recept eraan voldoet. 4. **Ontbrekende bevestigde gegevens** — een lijst van alles wat je NIET zeker weet en daarom niet hebt ingevuld of expliciet hebt gemarkeerd. ## Bindende inhoudsregels - **Ingrediënten** = complete boodschappenlijst met totale hoeveelheden per ingrediënt. Geen snij- of bereidingshandelingen, geen "naar smaak" waar een bruikbare hoeveelheid vooraf nodig is. - **Mise en place** = alleen zinvolle voorbereiding vóór het koken (snijwerk, afwegen, rusten/marineren, stressreductie). Geen verpakkingen openen, pannen klaarzetten of andere trivialiteiten. Iedere prep task heeft minimaal één `reasonTags`-waarde. - **Bereiding** = uitvoering met deelhoeveelheden op het gebruiksmoment, duidelijke warmte-instructie, timers per component, zintuiglijke of meetbare controlecriteria en een expliciet overgangscriterium per stap. - **Nooit pitlocaties** voorschrijven; de kok bepaalt zelf welke pan waar staat. - **Parallelle acties** alleen wanneer ze in het actuele tijdvenster echt relevant zijn. - **Keuzemomenten** alleen op natuurlijke beslispunten, met 2–3 opties en de eenvoudigste veilige route als default. - **Royale tijdmarges**: liever eerder klaar met warmhouden dan optimistisch krap. - **Final Taste** (zout/zuur/vet/pittigheid/textuur/temperatuur/balans, alleen relevante checks), **verzorgde maar niet overdreven plating**, en **maximaal drie** concrete volgende-keer-evaluatievragen. - **Route**: maximaal ~10 staccato labels; **goedOmTeWeten**: maximaal 6; **milestones**: maximaal 8. - Zet in `direction` transparant of het recept `personalized`, `authentic`, `hybrid` of `neutral` is. ## Verzin niets Verzin geen hoeveelheden, apparatuur, temperaturen, tijden of gebruikersvoorkeuren die niet bevestigd zijn. Wat ontbreekt zet je in onderdeel 4 als open vraag. Als een hoeveelheid een redelijke vakinhoudelijke aanname is, mag je die invullen, maar benoem de aanname expliciet in onderdeel 4. ## Technische eisen aan de JSON - Alle IDs zijn uniek, stabiel en kebab-case met een typeprefix (`step-`, `ing-`, `comp-`, `prep-`, `timer-`, `route-`, …). - `steps[].order` is aaneengesloten vanaf 1; `route[].stepId`, `componentIds`, `ingredientRefs` en `quantityUses[].ingredientId` verwijzen alleen naar bestaande entiteiten. - Duur is integer seconden; hoeveelheden metrisch; temperaturen in Celsius; `locale: "nl-NL"`. - `status` is altijd `"draft"` — publicatie is een menselijke actie in de app. - Lever de JSON als één geldig codeblok zonder commentaar of trailing comma's.
Resultaat
Nog geen recept gevalideerd. Plak JSON en kies “Valideer & preview”.