🚀 Vibe Coding — Issue #39
The Context Window Is the New IDE: Give AI the Right Information, Not More Information
Context Engineering • AI Coding • Project Knowledge • Better Prompts • Developer Workflow • Code Quality
You ask AI to add a feature.
The answer looks perfect.
Except…
It uses the wrong framework pattern.
It recreates a helper you already have.
It ignores a project convention.
It changes something that wasn’t supposed to change.
So you correct it.
AI tries again.
Now it fixes one problem and introduces another.
After five prompts, you’re wondering:
Why is AI suddenly so bad at coding?
Often, the problem isn’t the model.
It isn’t even your prompt.
The AI doesn’t have the right context.
Welcome to Vibe Coding — Issue #39, where we move beyond prompt engineering and into one of the most important skills in AI-assisted development:
Context Engineering
🧠 Prompt Engineering Isn’t Enough
Developers spent the first wave of generative AI learning how to write better prompts.
Be specific.
Give examples.
Define the output.
Assign a role.
Explain the goal.
All useful.
But consider this prompt:
Add user authentication to this application.
Even a powerful AI immediately has questions.
What framework?
What authentication system?
How are users stored?
What patterns does the existing application use?
What security requirements exist?
What files should change?
What shouldn’t change?
What has already been implemented?
The quality of the answer depends heavily on information surrounding the request.
That’s context.
🎯 Principle #1: The AI Knows Code. It Doesn’t Know Your Project.
AI may understand:
- JavaScript
- React
- APIs
- databases
- testing
- authentication
- architecture
But it doesn’t automatically understand your application.
That’s a critical distinction.
Your project may have:
Naming conventions
Architecture decisions
Existing utilities
Business rules
Security requirements
Testing patterns
API conventions
Design standards
Known limitations
Without those details, AI fills the gaps.
And filling gaps means making assumptions.
Vibe Rule:
Every important assumption AI has to make is another opportunity for the solution to drift.
🔍 Principle #2: More Context Is Not Always Better Context
The obvious solution seems to be:
Give AI everything.
Entire codebase.
Every requirement.
Every conversation.
Every error.
Every document.
Every idea you’ve had since the project started.
Now the AI has context.
Right?
Technically, yes.
But you’ve created another problem:
Context noise.
Imagine asking another developer to fix one button while handing them 5,000 pages of unrelated project information.
More information does not automatically create more understanding.
The goal is not:
MAXIMUM CONTEXT
It’s:
RELEVANT CONTEXT
🧩 Principle #3: Build a Project Context Pack
Instead of repeatedly explaining your application, create a compact description of how the project works.
I call this a:
Context Pack
It might contain:
PROJECT
Customer support dashboard
STACK
React
Node.js
Express
PostgreSQL
ARCHITECTURE
Frontend communicates with REST API.
Database access occurs only through repository modules.
CONVENTIONS
Use async/await.
Use existing UI components.
Do not add dependencies without approval.
Keep business logic outside route handlers.
TESTING
Vitest for unit tests.
Playwright for critical user flows.
IMPORTANT RULES
Never expose internal IDs to clients.
All API errors use the existing error format.
Do not modify authentication unless explicitly requested.
This isn’t your entire project.
It’s the information AI needs to reason like someone working inside your project.
🗺️ Principle #4: Give AI a Map Before the Territory
AI doesn’t always need every file.
Sometimes it needs to understand where things are.
For example:
src/
components/
services/
utils/
pages/
server/
routes/
controllers/
repositories/
tests/
Then explain responsibilities:
components/ = reusable UI
services/ = API communication
utils/ = shared helpers
routes/ = endpoint definitions
controllers/ = request handling
repositories/ = database access
Now when you say:
“Add filtering to the customer list.”
AI has a mental map.
That reduces unnecessary invention.
🚦 Principle #5: Tell AI What It Must NOT Change
Developers naturally describe what they want.
Context engineering also describes boundaries.
Try adding:
CONSTRAINTS
Do not:
- add new dependencies
- change the API response format
- modify authentication
- rename existing public functions
- change unrelated files
Preserve:
- existing behavior
- current tests
- backwards compatibility
This is extremely powerful.
You’re reducing the solution space.
Instead of asking AI:
“What could we build?”
You’re saying:
“Solve this problem inside these boundaries.”
That’s much closer to real engineering.
📂 Principle #6: Separate Permanent Context From Task Context
Not all context has the same lifespan.
Project Context
Changes slowly:
Architecture
Technology stack
Naming conventions
Testing strategy
Security rules
Design patterns
Task Context
Changes constantly:
Current feature
Relevant files
Current bug
Acceptance criteria
Recent decisions
Error messages
Keeping these separate makes context easier to maintain.
Think of it like:
PROJECT MEMORY
+
CURRENT TASK
=
USEFUL AI CONTEXT
🕰️ Principle #7: Watch for Stale Context
There’s another problem developers rarely discuss.
AI can have context that was correct 30 minutes ago but wrong now.
Maybe you:
- renamed a function
- changed an API
- rejected an architecture
- removed a dependency
- rewrote a component
- changed the requirements
But the conversation still contains the old information.
Now AI may reason from conflicting versions of reality.
Vibe Rule:
Old context can be worse than missing context.
When the AI starts behaving strangely, don’t immediately rewrite your prompt.
Ask:
Before continuing, summarize your current understanding of:
1. the architecture
2. the feature we're building
3. the relevant files
4. decisions we've already made
5. constraints you believe apply
Identify anything that appears contradictory or uncertain.
This is a context audit.
It can reveal why a coding session has drifted.
🔄 Principle #8: Refresh Context at Milestones
Long AI sessions accumulate conversational debris.
Requirements change.
Experiments fail.
Ideas get abandoned.
Instead of endlessly continuing the same thread, periodically reset around the current truth.
After completing a milestone, create a checkpoint:
CURRENT PROJECT STATE
Completed:
- login flow
- user profile API
- validation
Current architecture:
...
Important decisions:
...
Rejected approaches:
...
Next objective:
...
Constraints:
...
Now future work starts from a clean state.
🤖 The Context-First Prompt
Before asking AI to implement something significant, try this structure:
PROJECT CONTEXT
Project:
[short description]
Stack:
[technologies]
Architecture:
[important structure]
Relevant files:
[file names + responsibilities]
Existing patterns:
[patterns that should be reused]
TASK I need:
[specific outcome]
REQUIREMENTS – requirement 1 – requirement 2 – requirement 3 CONSTRAINTS – do not add dependencies – preserve existing API behavior – follow existing project conventions – do not modify unrelated code BEFORE CODING 1. Summarize your understanding. 2. Identify missing information. 3. State any assumptions. 4. Propose the smallest implementation plan. Do not generate code until the plan is clear.
Notice what’s happening.
We’re not trying to create a clever prompt.
We’re creating a shared understanding of reality.
🧠 Context Is a Budget
Think about AI context like RAM.
You wouldn’t intentionally fill your computer’s memory with irrelevant data.
Treat AI context similarly.
Every piece of information should earn its place.
Ask:
Does AI need this to make the current decision?
If yes:
Include it.
If no:
Leave it out.
⚠️ The Context Dump Trap
A common workflow is becoming:
SELECT ALL
↓
COPY
↓
PASTE INTO AI
↓
"FIX THIS"
Sometimes it works.
But it encourages AI to determine:
- what’s important
- what’s irrelevant
- what the actual problem is
- which patterns matter
- what should change
You’re delegating the problem definition along with the implementation.
A stronger developer workflow is:
UNDERSTAND
↓
SELECT RELEVANT CONTEXT
↓
DEFINE THE PROBLEM
↓
SET BOUNDARIES
↓
ASK AI
That extra thinking dramatically improves the interaction.
🔥 Advanced Pattern: Progressive Context
You don’t need to provide everything immediately.
Reveal context as the problem requires it.
Stage 1 — Orientation
Here is the project, architecture and objective.
Stage 2 — Planning
Here are the relevant modules and constraints.
Propose an approach.
Stage 3 — Implementation
Here are the exact files involved.
Implement the approved approach.
Stage 4 — Verification
Here are the tests and expected behavior.
Review the implementation.
Stage 5 — Simplification
Now identify anything unnecessary that was introduced.
This keeps the AI focused.
🧪 Issue #39 Challenge: Build Your Context Pack
Pick one project you’re actively working on.
Create a file containing:
PROJECT PURPOSE
TECH STACK
ARCHITECTURE
DIRECTORY MAP
CODING CONVENTIONS
EXISTING UTILITIES
TESTING APPROACH
SECURITY RULES
DO NOT CHANGE
CURRENT LIMITATIONS
Keep it concise.
Then compare two AI sessions.
Session A
Give AI only your feature request.
Session B
Give AI the relevant parts of your Context Pack first.
Compare:
- accuracy
- assumptions
- unnecessary code
- architectural consistency
- number of corrections required
The difference may surprise you.
💡 The Bigger Shift
The first era of AI coding was about:
PROMPTS
Developers searched for magic phrases that produced better answers.
The next era is increasingly about:
CONTEXT
What does AI know?
What does it need to know?
What should it ignore?
What changed?
What assumptions is it making?
What boundaries should constrain the solution?
Those are engineering questions.
And that’s exactly why context engineering matters.
🧠 The Core Lesson of Issue #39
Better AI coding doesn’t necessarily require a longer prompt.
It requires a better representation of the problem.
Think:
RIGHT GOAL
+
RIGHT FILES
+
RIGHT RULES
+
RIGHT CONSTRAINTS
+
RIGHT CURRENT STATE
=
BETTER AI DECISIONS
Don’t give AI everything you know.
Give it what it needs to make the next decision well.
Prompt engineering tells AI what you want.
Context engineering helps AI understand the world in which that answer has to work.
And as AI coding becomes more capable, that distinction is going to matter even more.
🔮 Coming in Issue #40
AI Agents Without Chaos: How to Delegate Coding Work Without Losing Control
AI is moving from answering coding questions to actually performing multi-step development work.
In the next issue, we’ll explore:
- what makes an AI coding agent different from a chatbot
- which tasks are safe to delegate
- breaking large objectives into bounded missions
- setting permissions and guardrails
- reviewing agent-generated changes
- preventing agents from wandering through your codebase
- using checkpoints before irreversible actions
- running multiple agents without creating conflicting work
- the changing role of the developer when AI can execute
The next phase of Vibe Coding isn’t simply:
Ask AI for code.
It’s: