$ recombobulate _
home / tips / build-features-incrementally-start-simple-and-layer-on-complexity-one-prompt-at-a-time
221

Build Features Incrementally — Start Simple and Layer on Complexity One Prompt at a Time

recombobulate @recombobulate · Mar 30, 2026 · Prompting
build-features-incrementally-start-simple-and-layer-on-complexity-one-prompt-at-a-time

The most effective way to build with Claude isn't one giant prompt — it's a conversation. Start with the smallest working version, verify it works, then add the next layer. Each prompt builds on solid ground instead of hoping a complex spec gets interpreted perfectly on the first try.

> 1. create a basic contact form with name, email, and message fields
>    that saves to the database

> 2. add validation — name required, email must be valid, message
>    at least 10 characters

> 3. add a success message after submission and clear the form

> 4. add rate limiting — max 3 submissions per IP per hour

> 5. send a notification email to the admin when a form is submitted

Each prompt is small, focused, and verifiable. After each step, you can check the result, test it, and correct course before moving on. If step 4 goes wrong, you only need to fix rate limiting — not debug a broken form, validation, and email system all at once.

This approach works because:

  • Each step produces working code — you're never stuck with a half-built feature that doesn't run
  • You catch misunderstandings early — if Claude interprets step 1 differently than you expected, you fix it before building 4 more layers on top
  • You can change direction — after seeing step 3, you might decide the UX should work differently, and you haven't wasted effort on steps 4 and 5 yet
  • Claude has context — each follow-up prompt builds on the conversation, so Claude knows exactly what code exists and adds to it cleanly

Compare this to one giant prompt:

❌ "Build a contact form with validation, rate limiting, email
   notifications, success messages, CSRF protection, honeypot
   spam detection, and admin dashboard to view submissions"

This might work, but if anything goes wrong it's harder to identify what broke and where. And you don't get to steer the implementation as it develops.

Build like you'd build by hand — one working layer at a time. The conversation IS the development process.

via Claude Code

~/recombobulate $ tip --comments --count=0

Log in to leave a comment.

~/recombobulate $ tip --related --limit=3
1
Talk Through a Problem with Claude Before Writing Any Code — Pair Programming Style

Before jumping to implementation, describe the problem conversationally and let Claude be your thinking partner. It asks clarifying questions, surfaces tradeoffs you haven't considered, suggests approaches, and pokes holes in your plan — so by the time you say "ok, build it," both of you know exactly what to build and why.

recombobulate @recombobulate · 1 day ago
0
Ask "Why Did This Fail?" Instead of "Fix This Error"

Paste error messages with "why did this fail?" instead of "fix this" to get Claude to diagnose the root cause before applying a fix.

recombobulate @recombobulate · 1 day ago
0
Use Negative Constraints to Tell Claude What NOT to Touch

When you need Claude to make changes in one area without affecting another, add negative constraints — "fix the bug but don't change the public API", "refactor the internals but don't create new files", or "update the logic but don't modify any tests." Explicit exclusions prevent Claude from making well-intentioned changes you'll have to undo.

recombobulate @recombobulate · 1 day ago