The 4-Gate Workflow: Don't Rush to Code
Why agents must never rush straight to code: understand concepts, storyboards, TASTE.md, and QA approval gates.
Lock color roles, typography, easing curves, and audio rules so subsequent versions stay consistent.
Ask an agent for a second version and it tends to start over: a new blue, another font, different easing. MotionMind keeps the style in a file instead of in the chat. Every campaign has one TASTE.md. The agent fills it in as you approve decisions, and reads it before it plans or builds any new version.
motionmind init creates TASTE.md in projects/<brand>/<campaign>/ the first time it makes a version of that campaign. It has six sections:
| Section | What it holds |
|---|---|
| 1. Brief | concept, format, audience, CTA, story beats |
| 2. Feel | mood words, pacing, references, what to avoid |
| 3. Visual system | palette (hex → role), type, layout and safe area, finish |
| 4. Motion | easing, text animation, signature moves, transitions |
| 5. Sound | music, SFX cues, loudness |
| 6. Feedback rules | your lasting preferences, append-only |
One rule for every value: it has to be buildable. A hex code, not "warm blue"; power3.out 0.5 s, not "smooth".
When you approve the storyboard at Gate 2, the agent writes the style into TASTE.md and sets its status from draft to approved. It also keeps plan/design.html in step: swatches and type samples you can open from the run page in Studio (design.html). This is what a filled-in file looks like for the Demo Coffee promo; copy it as a starting point for your own:
# TASTE – demo/launch-6s
Updated: 2026-10-31 12:00 · by: claude · current version: v1-steam
Status: approved
## 1. Brief
- **Concept (one line):** Steam rises: the cup wakes up, the line lands, the logo closes.
- **Platform / format:** Reels 9:16 1080×1920, 30 fps, 6 s
- **Audience · goal · CTA:** morning commuters · visit the shop · demo.example
- **Story beats (seconds):** 0–1.5 cup · 1.5–4.5 headline · 4.5–6 CTA + logo
- **Brand inputs:** shared/brands/demo/ (brand.json, logos)
## 2. Feel
- **Mood words (3–5):** warm, awake, simple
- **Pacing:** one idea per beat, hero words held ≥ 1 s
- **References:** none
- **Avoid:** stock coffee photos, a second message
## 3. Visual system
- **Palette (hex → role):** #0B0F17 background · #3F6BFF primary · #FFEA00 hero words / CTA only · #F4F5F2 text
- **Type:** display Outfit 800 · headline 120 px, CTA 48 px · tracking −0.03em
- **Layout:** safe area y 285–1635, everything centred
- **Finish:** soft radial glow behind the cup, no grain
## 4. Motion
- **Easing:** entrances power3.out 0.5 s · exits power2.in 0.3 s
- **Text animation:** words rise 40 px, 0.4 s apart
- **Signature devices (repeat across scenes):** steam lines rising above the cup
- **Transitions · camera:** none, one locked frame
## 5. Sound
- **Music:** motionmind music --out src/assets/audio/music.wav --duration 6 --bpm 120
- **SFX:** cup in → pop · headline → whoosh · CTA → chime
- **Loudness:** −14 LUFS integrated, true peak ≤ −1.0 dBFS
## 6. Feedback rules (append-only)
- 2026-10-31: CTA text ≥ 64 px, held ≥ 1.5 s
When you say "the CTA is too small", the agent fixes it. If the note is a preference rather than a one-off, it also adds a line to §6, and every later version reads that before building. To continue a campaign, name it; the agent reads TASTE.md, then PROGRESS.md, then the end of LOG.md before proposing anything:
Continue demo/launch-6s: make v3 with a new hook; keep the style from TASTE.md.
You can also add a rule directly:
Add to the feedback rules in TASTE.md: never put yellow text on the blue background.
A deliberate change of style is fine too. It becomes a new version, and TASTE.md changes first:
Continue demo/launch-6s: make v3 in a lighter style (paper background, blue text).
Update TASTE.md first and show me what changed.
A new campaign's TASTE.md comes from a template. If your workspace has templates/TASTE.md, MotionMind uses it instead of the built-in one, so your palette, type and motion are already there at v1. Copy a file you like:
mkdir -p templates
cp projects/demo/launch-6s/TASTE.md templates/TASTE.md
Then open templates/TASTE.md, change the first line back to # TASTE – {{project}} (MotionMind fills in the campaign name), and clear the parts that belong to one video: the brief and the feedback rules that only applied there. templates/design.html works the same way for the design page.
Why agents must never rush straight to code: understand concepts, storyboards, TASTE.md, and QA approval gates.
Frame-accurate, reproducible motion graphics built with HTML and GSAP that can be edited visually without code.
Eliminate randomness and clocks in code scenes to guarantee identical frame-for-frame re-renders.
Open your terminal, launch motionmind ui, and brief your AI agent.