A recipe is a markdown file with a fixed section list. Same bones every time. Fill them. Do not invent a new shape per artifact.
Canonical example: [SquigglyCatapult] (recipe.md in the v1.1 zip).
If a section is empty, the model will invent it. That is how you get guesswork back.
recipes/squiggly-catapult/recipe.mditeration1.html, etc.What this is, in one or two sentences. Product sentence, not a mood board.
Good: Create a playful browser game where the player launches a squiggly character toward a target.
Bad: Make something fun with physics.
Feel. Emotional arc. How a first-time user should feel after ten seconds and after one success.
Use concrete adjectives you would defend. Bright, silly, tactile, forgiving is a vibe. "Nice UI" is not.
The loop. Cause and effect. What wins, what does not. Keep it the rules of the experience, not an implementation plan.
Name the physics or logic at the level a designer speaks: drag, release, projectile, score near target. Do not name a library unless that is a hard constraint.
Hands and keys. Pointer, touch, keyboard fallback, reset, anything that must exist or the thing is unusable.
If it has to work on a phone, say so here.
What the artifact says back. Preview, motion, score, copy, miss behavior.
Misses and failures are design. "Gently encourage another try" is a decision. Silence is also a decision. Write it.
Look and sound at constraint level: palette family, line style, motion quality, whether audio may exist, whether audio may ever block play.
Not a mockup. Enough that two models land in the same neighborhood.
What the AI may choose. Character shape, layout, phrases, particles — as long as the result stays inside vibe and readability.
This section is load-bearing. Without it, models either freeze or gold-plate. Tell them where they are allowed to play.
The artifact you want in your hands. Be strict.
Example: Self-contained HTML, CSS, and JavaScript with no build step.
Say file count, language, "no build," "no network," "one page," whatever is actually required.
Must-nots and traps. Mouse and touch. Playable with sound off. No external dependencies. No login. No telemetry. Whatever would wreck the recipe if a model "helpfully" added it.
If you only remember one hard section after Intent and Vibe, make it this one.
Lab notebook. What pass 1 was for. What later passes added. What to keep stable.
Example: Iteration 1 establishes the launch loop. Iteration 3 adds richer feedback and a more expressive character while keeping the controls simple.
When a build feels wrong, write the correction here and in the section that failed. Then rebuild from the recipe, not from the last file dump.
Copy this into a new recipe.md: