Step 3 — The Plan
The Producer agent turns the brief into a concrete to-do list. Every line has to be testable.
The brief is just an idea. The plan is the to-do list.
The Producer agent reads the brief and writes the plan. Every line has to be testable — meaning we can later check whether the game actually does what the plan says.
This step takes about 30 minutes. It's the most important 30 minutes of the whole project.
Bad plan vs good plan
# What does "feels rewarded" mean?
How would we test this?
When is it "skillful"?
✓ Good plan "Tap within 100ms of the peak → combo counter goes up by 1. Tap outside that window → combo resets to 0."
# Now we can test it.
5 perfect taps → combo == 5.
1 missed tap → combo == 0.
/the-rule
If it can't be tested, it's not in the plan.
"Feels good" is marketing. "Tap within 100ms" is a plan.
Vague plans become vague games. We force every line to a number, a yes/no answer, or a specific behavior.
What the plan actually looks like
The Producer agent writes 15-25 numbered items. Each is one rule. Together they describe the entire game.
- Tap = ball bounces up
- Skip tap → ball loses energy
- Touch spike → game over
- Bomb timer = 3 seconds
- Bumper = double bounce height
- Apex tap (±100ms) = combo +1
- Combo resets on miss
- Score = altitude × combo
- 4 boss fights at 25/50/75/100
- Each boss is unique
- Best score saved locally
- No internet required
- Music loops at 80 bpm
- Sound effects on every bounce
- 60fps on iPhone SE ... 8 more items
✓ 23 items, all testable
/output
23 numbered rules. That's the plan.
Every later step (design, code, tests) maps back to these numbers. If a feature isn't in the plan, it doesn't get built.
If the game later fails item #6, we know exactly which line broke.
The 4-column rule
Every rule in the plan has 4 columns. The Producer agent fills them all in. Empty columns = the rule isn't ready.
ID: 06 Description: Apex tap awards combo Trigger: player taps within ±100ms of ball reaching peak height Verify: tap at apex → combo += 1 tap outside → combo = 0
# If you can't fill all 4, # the rule isn't testable yet.
/anatomy
ID + description + trigger + verify.
The Producer can't write a rule with vague trigger or verify columns. The form forces specificity.
This is also why we can have a Tester agent later — every rule has a built-in test plan.
When the plan is wrong
Plans are wrong all the time. The trick is catching it early.
Q1. Can I read every rule and visualize the screen at that moment? ✓ good ✗ rule is too abstract
Q2. Does each rule reference one screen or one mechanic, not both? ✓ good ✗ split it into two rules
Q3. Could a stranger build the game from this plan alone? ✓ ready ✗ add detail
Q4. Are any rules still using "should" or "tries to" or "feels"? ✗ rewrite
/check
4 sanity checks before we move on.
If any check fails, back to the Producer for revision. Max 2 rounds, otherwise we kill the project.
It's tempting to push forward with a 70%-good plan. Don't. The 30% becomes 3 days of wasted code.
Real example — BOP plan rejection
Rule 14: "Sound effects feel impactful" Rule 18: "Boss fights are challenging" Rule 20: "Game adapts to player skill"
✗ "feel impactful" — undefined ✗ "challenging" — undefined ✗ "adapts" — how?
# Round 2 — accepted
Rule 14: "Bounce SFX = 200ms low-pass burst at -3dB, +12dB at apex tap" Rule 18: "Boss has 3 phases. Phase 3 spawns 1.5x more obstacles." Rule 20: "If 3 deaths within 30s, spike spawn rate -20% for 60s."
✓ all measurable ✓ Tester can write tests
/case-study
BOP needed 2 rounds.
The first plan had 3 vague rules buried in 23 specific ones. We caught them in the sanity check.
30 minutes of revision saved 2 days of vague code that wouldn't have shipped.
What you can copy
Take your one-page brief. Try to write 20 numbered rules using the 4-column format.
If a rule has a vague word like "good" or "fun" or "smooth," replace it with a number or a specific behavior.
The rules become the contract that the next 4 agents work against.
For every rule:
ID: (just a number)
Description: (one line)
Trigger: (when does it happen?)
Verify: (how do I check it works?)
If you can fill all 4 columns for every rule, you have a real plan.