🔧 AI Development, Part 3: Why Structure Matters — Introducing the RIPER Workflow
🧠 AI Development: Table Of Content
- Part 1: The Moment It Became Real
- Part 2: Cursor — Your New Pair Programmer
- Part 3: Why Structure Matters — Introducing the RIPER Workflow
- Part 4: Teaching Cursor to Think — Memory Banks & Rule Files
- Part 5: RIPER in Action — Real Examples from Production
- Part 6: How We Write E2E and API Tests with Cursor
- Part 7: When Cursor Hallucinates — How We Keep It Grounded
- Part 8: What’s Next — Scaling AI Workflows Across Teams
“You need to onboard Cursor like a new teammate.”
— Neil Kalman
If you’ve read the first two posts, you know this much:
- AI coding tools like Cursor are powerful.
- But they don’t know your system unless you teach them.
- And without structure, they’ll follow any instruction — even the bad ones.
So how do you stop an AI from hallucinating half-broken helpers, skipping your conventions, or rewriting things you never asked for?
You don’t just prompt better.
You build a system.
🧠 RIPER: Structure for AI-First Development
RIPER is short for:
Research → Innovate → Plan → Execute → Review
It’s a simple but powerful framework we built around Cursor to give the AI context, discipline, and a shared mental model of how our team works.
Think of it as teaching your AI assistant how to work like a real developer — not just write code, but understand how features evolve, how teams reason, and how plans turn into commits.
🛠️ The Core Idea: One Mode, One Responsibility
Each RIPER phase is designed to focus Cursor's attention on exactly one thing at a time. That’s key.
| Phase | Purpose | Cursor Behavior |
|---|---|---|
| Research | Understand existing code + context | No code changes allowed |
| Innovate | Brainstorm solutions + tradeoffs | No decisions made yet |
| Plan | Create a detailed implementation checklist | Clarifying questions encouraged |
| Execute | Implement exactly what was approved | Follows checklist step-by-step |
| Review | Compare the result to the plan | Flags deviations, asks for validation |
💡 “It’s like teaching Cursor to work the way we want developers to work — focused, deliberate, and traceable.”
🔍 Phase Breakdown: What Each Step Looks Like
Let’s break it down in human terms, using real phrasing from the presentation.
🧪 Research — “Don’t let it touch the code yet”
“Cursor starts by gathering information, just like a developer reading the docs.”
- Use this to investigate how a system works.
- Ask it to trace flows, find related code, or summarize existing logic.
- Reference Figma, PRDs, or architectural decisions.
✅ Example Prompt:/research how the authentication middleware flows through the CLI
💡 Innovate — “Let’s brainstorm, not build”
“You’re just discussing possible approaches — nothing is being implemented yet.”
- Explore design patterns or architectural options.
- Compare tradeoffs.
- Discuss constraints before locking in a solution.
✅ Example Prompt:/innovate what’s the best way to isolate synthetic data generation from the CLI into its own module?
📝 Plan — “Make it real, but don’t start coding”
“Cursor starts asking questions back — that’s when you know it’s thinking.”
- Convert your chosen approach into a detailed, actionable plan.
- Cursor builds a numbered checklist.
- You validate it before writing any code.
✅ Example Prompt:/plan a step-by-step migration from Angular Material v15 to v16, using legacy imports
🛠️ Execute — “Stick to the plan”
“It writes code now — but only what you approved.”
- Executes the plan one step at a time.
- Waits for confirmation if it needs to run commands or modify critical files.
- Won’t move ahead unless you say so.
✅ Example Prompt:/execute steps 1-3 from the migration plan
🔍 Review — “Did we do what we said we’d do?”
“Treat this like a PR review — Cursor helps validate against the plan.”
- Confirms that implementation matched the checklist.
- Flags anything that wasn’t expected.
- You can prompt it to update the memory bank or suggest follow-up fixes.
✅ Example Prompt:/review steps 1-5 and update projectbrief.md with the results
🔐 Why RIPER Works
Here’s what we gained from introducing RIPER into our Cursor workflows:
- ✅ Safety: No unexpected code changes in early phases
- ✅ Continuity: Memory bank keeps context across sessions
- ✅ Clarity: Every action is tied to a phase
- ✅ Team Consistency: Shared process = shared expectations
- ✅ Debugging Power: If something breaks, we know which step failed
“It’s less vibe-coding, more real team discipline — except with an AI.”
📘 Coming Next: How to Teach Cursor About Your System
In the next post, we’ll open up the .cursor/ folder and talk about Memory Banks and Rule Files — the secret sauce that gives Cursor a long-term memory and a working personality.
You’ll see how we taught Cursor our tech stack, microservice boundaries, testing strategy, and even our ESLint rules — all in plain English.
Until then, try this:
Open Cursor. Type/research how authentication is handled in this project.
Then stop it before it changes anything. You just did the first step of RIPER.

