We’ve been deep in a Design System build lately, alongside some inventive projects aimed at improving an already class-leading UI. Getting an entire prototyping pipeline off the ground has been a blast. As the benefits become obvious to the broader team, the barrier to entry drops significantly and we are doing more cool stuff, faster.
That’s what gets me excited: I love technology and I love collaboration. Think about how far we’ve come in the internet age. Remember when a webpage was literally just plain text and an image or two?
Now, we have Artificial Intelligence. But with all the power it brings, we need to remain pragmatic about what it actually does. AI is nothing without someone driving it. Sure, you can automate repetitive tasks, but automating without direction is like automating the discovery of fire and the wheel. Without futher thought:
You just end up with a pile of burning wheels.
Triangulation: Thinking Like a Senior Developer
Along the way, I’ve been experimenting the same way I did when I first discovered Google Search. (Or before that, the library.)
I have an idea. I wonder if I can learn more about it? Type something in and see what happens. Rinse and repeat.
That curiosity is fun, but to avoid the frustration of hallucinated code or a chat window so bloated it forgets its original task, you need a strategy.
In the early days of Google, searching was about triangulation; using at least three related data points to isolate what you were looking for. The same holds true for AI: when you feed it a documented framework, it can digest those docs and help you build systematically.
Don’t rely on a one sentence prompt to get you there.
It can feel like magic, but it’s really just structured trial and error. To make it work, you have to think like a senior developer:
- Systemic over static: Code written as an interconnected system works better than code written one off-hand feature at a time.
- Automation mindset: If you do it twice, automate it. If you repeat yourself, write a function and abstract it so you can use it when you want it.
- Small, manageable chunks: The best coders keep the big picture in mind while working in tight, controlled steps. Your AI collaborator should work the same way.
When people get caught up in “vibe-coding” without this mindset, the honeymoon phase wears off quickly. Code gets bloated and features get lost. You prompt for a new feature, and an older feature quietly vanishes.
As Dave Rupert famously quipped recently:
“I don’t want screenshots of your Claude conversation.”
What Dave is touching on is that you have to know what you want before you start prompting. Letting AI figure out the architecture for you rarely ends well. You give up your agency, stop being intentional about your goals, and learn very little in the process. What’s the point of building things if we just let bots talk to each other while we walk away?
Drive the Tool: AI as a Hammer
AI wants to please. Like an eager assistant, it will nod along with your worst ideas. But you don’t need a yes-man; you need a collaborator.
Treat AI like a tool, not the architect. A hammer without a blueprint never built a house. A builder did, though.
To keep your AI agent on track, ground it early:
- Set the role: Prompt it with “Act as a Senior/Lead Developer…” to set the baseline quality and architectural awareness.
- Require two-way dialogue: Tell it to ask clarifying questions before writing code.
- Pace the conversation: My single favorite prompt constraint is: “Ask questions singly.”
Why this works: I function best when questions are tackled one at a time within a clear narrative. It gives both you and the AI room to learn where the project is heading and how best to get there.
The Blueprint: Structuring Your AI Context
To keep an AI tool honest across a long project, I rely on two lightweight Markdown files that act as the project’s guardrails.
1. design.md – The Narrative & Story
A document is a story (the old internet); code is a choose-your-own-adventure (the modern internet).
Me, just now. 🙂
I start with a fully formed design.md file for any project (or reverse-engineer one if I’m jumping into existing code). Apps have a lifecycle: birth, maturity, and iteration. Your design.md tracks the project’s overarching goals and product narrative. As features adapt, you update this file to reflect the current trajectory.
2. conventions.md – The Guardrails & Rules
Where design.md handles the what, conventions.md dictates the how. It outlines your technical specs, code style, naming standards, and architectural principles.
This file is your most effective tool against hallucinations. When prompting for a new feature, you simply direct the AI:
“Check this new feature against
conventions.mdto ensure compliance. Use the[x]component as a structural model.”
Consistency happens when you give AI a rigid framework to operate within. Otherwise, it makes things up, and you end up trapped in a loop of “You’re absolutely right! Let me fix that…”
Summary: The AI Engineering Framework
If you’re embarking on a new build, especially a prototype for a cool idea, keep this baseline workflow in mind:
design.md→ Captures the story, goals, and project lifecycle.conventions.md→ Enforces code quality, patterns, and guardrails.- Feature-by-feature pacing → Work methodically in small, isolated chunks.
- “Ask questions singly” → Maintain a deliberate, step-by-step dialogue so you don’t get overwhelmed.
Think about a project you’ve been dying to try. What tool or framework does it hinge on? Audio generation with Tone.js? 3D visuals with Three.js?
Be curious, set your boundaries, and remember: the sky is the limit, and navigating that open sky is the exact problem you’re setting out to solve.