A humorous yet practical guide to AI-assisted development. DON'T PANIC.
View the Project on GitHub HermeticOrmus/hitchhikers-guide-to-vibe-engineering
Risk Level: 🟢 Mostly Harmless
PROMPT (n.): The text you give to an AI to tell it what you want. The quality of your prompt directly determines the quality of your output. Garbage in, garbage out—but fancy garbage.
[Context] + [Task] + [Constraints] + [Format] = Prompt
What the AI needs to know:
"I'm building a REST API in Python using FastAPI.
The codebase uses async/await patterns throughout."
What you want done:
"Create an endpoint that returns user profile data."
What limits apply:
"Don't add new dependencies.
Use our existing User model.
Follow RESTful conventions."
How you want the output:
"Show me just the route handler function.
Include type hints and a docstring."
"Write a function that validates email addresses."
🟢 Simple, clear, effective for straightforward tasks.
"In this Django project using DRF, write a serializer
for the User model that includes email validation."
🟢 Better results when context matters.
"Write a sorting function that:
- Works in O(n log n) time
- Uses constant extra space
- Is stable
- Handles empty arrays"
🟢 Precise when you have specific requirements.
"Write a function in this style:
def existing_function(x: int) -> str:
'''Brief description.'''
return str(x)
New function should validate passwords."
🟢 Excellent for matching existing code patterns.
❌ “Fix this” ✅ “Fix the null pointer exception on line 47 when user.email is undefined”
❌ “Build me an e-commerce site” ✅ “Create the product listing component that displays name, price, and image”
❌ “Add authentication” ✅ “Add JWT authentication to this Express API using our existing User model”
❌ “Use our standard pattern” ✅ “Use this pattern: [paste example]”
“Specific beats terrific. High-resolution context = high-precision code.”
The more specific your prompt, the less the AI has to guess. The less it guesses, the less it hallucinates.
Write three versions of your next prompt:
Compare the outputs. Learn what details matter for your use case.