Free playbook
The AI Engineer Playbook
Stop vibe coding. Four habits that get AI to build what you actually mean.
01
Prompt structure
Four parts that close every gap before AI writes a line.
The problem
A short request leaves every decision to AI, and it fills each gap with a guess.
AI has to guess:
- Which framework?
- Email or Google sign-in?
- Where do accounts live?
- When is it done?
The fix
Remember this
Give it four parts. Every time.
- GoalWhat you want built or changed
- ContextWho it’s for, where it runs, what exists already
- ConstraintsTools to use, rules to follow, things to avoid
- Done whenHow you’ll check that it works
Then end with: “Ask me about anything unclear before you start.”
Done right
- Goal
- A login page with email and password.
- Context
- My Next.js app. Users are already in Supabase.
- Constraints
- Use Supabase Auth. No new libraries.
- Done when
- I can sign up, log in and log out, and a wrong password shows an error.
Copy this prompt
GOAL: [what you want built or changed] CONTEXT: [who it's for, where it runs, what exists already] CONSTRAINTS: [tools to use, rules to follow, things to avoid] DONE WHEN: [how we'll check that it works] Ask me about anything unclear or missing. Don't write code yet: tell me what you understood, share a short plan, and wait for my approval.
Free playbook
Where should I send it?
The rest opens right here, and I’ll email you the link and the PDF for your computer.
- Questions before code
- Skills
- Testing
No spam. You’ll get the playbook now, then new guides and the occasional offer from Nuhu Ventures Inc. Unsubscribe any time. Privacy and contact details
02
Questions before code
Make AI ask before it builds, so you make the decisions, not its guesses.
The problem
Ask for a feature and AI starts building straight away, making the big decisions for you.
Three big decisions, made without you.
The fix
Remember this
Add one line to every request.
“Ask me questions before you write any code.”
- Claude CodePlan mode: press Shift+Tab
- CodexType /plan
Done right
Before I write any code:
- One-time payments or subscriptions?
- Stripe Checkout or a custom card form?I’d pick Stripe Checkout: card details never touch your app.
- A free trial? How long?I’d pick 7 days.
I’ll write up the plan. Nothing gets built until you approve it.
Copy this prompt
Here's what I want to build: [describe it in a few sentences] Before you write any code, ask me questions until you understand exactly what I want. For technical choices, explain the options in plain English and tell me which one you recommend. When nothing important is unclear, summarize the plan and wait for my approval before you build.
03
Skills
Save how you like things built once. Call it by name in every chat.
The problem
Every new chat starts from zero, so you type the same rules again and again.
- MondayUse Next.js and Tailwind. Keep it minimal. Phones first. Reuse my components…
- TuesdayUse Next.js and Tailwind. Keep it minimal. Phones first. Reuse my components…
- WednesdayUse Next.js and Tailwind. Keep it minimal. Phones first. Reuse my components…
The fix
Remember this
Save them once as a skill.
my-style/SKILL.md --- name: my-style description: Use when building or changing screens in my apps. --- - Next.js, TypeScript and Tailwind. - Clean and minimal. One accent colour. - Design for phones first. - Reuse components in /components. - Ask before adding a library.
- Claude Code
/my-style - Codex
$my-style
Done right
/my-style Add a settings screen.Rules for the whole project? Put them in CLAUDE.md or AGENTS.md instead: those load in every chat on their own.
Copy this prompt
Turn the choices I approved in this chat into a reusable skill called [a short name, like my-style]. Use it when: [the kind of work it's for] Include my tech stack, design style, code rules and the files I want reused. Only what I approved here: don't invent rules. Keep it short. Save it as SKILL.md in the skills folder for the tool we're using, and tell me how to call it.
04
Testing
“Done” is a claim. Make AI prove it.
The problem
AI says it’s done when the code runs, not when it works. Often it never even opens the app.
It never opened the app.
The fix
Remember this
Ask for proof. Every time.
- Agree on the checks before it builds
- It uses the app like a person would
- It fixes what fails, then tests again
- It reports what passed, what it fixed and what it couldn’t check
Done right
- Sign up, log in, log outPassed
- Wrong password shows an errorPassed
- Very long email addressBroke the layout. Fixed, then passed
- Password reset emailNot checked: needs a real inbox
Give it browser tools (Claude in Chrome, Codex’s browser) and it opens your app and clicks through it itself.
Copy this prompt
Before we call this done, test it properly. The main thing a person needs to do: [the main task] 1. Agree on the checks with me first: the main task start to finish, errors and empty states, unusual inputs (long text, emoji, blank fields) and phone-size screens. 2. Run the app and use it yourself. Use browser tools if you have them. 3. When something fails, find the cause, fix it and test again, until every check passes. 4. Finish with a short report: what passed, what you fixed, what you couldn't check. Never say a test ran if it didn't.
1:1 AI engineering call with Nuhu Shaik
Want help applying this to your project?
I’ll look at your setup with you, answer your questions and show you what to change.
- One hour, live
- On your own project
- CAD 200
- What your CLAUDE.md or AGENTS.md should say
- Which skills to save first, and how
- How to make AI prove its work
Want help applying this to your project? Request a 1:1 call at nuhushaik.com/resources/engineer#call

Saves me hours every day. You help me a lot.
- 3,200
- monthly active users on Ayah
- 700
- paid users on Drum Breaker
- Caterpillar
- web HMI for power systems