0:00
I just had a tweet blow up and reading
0:01
the replies, one thing became clear.
0:04
Everyone's using AI to code now. But
0:06
there's a huge difference between
0:08
software developers strategically
0:10
guiding AI and vibe coders who just let
0:12
it take the wheel. So today I'm showing
0:14
you how to actually code with AI, not
0:17
Vibe Code. And I'm going to be using
0:19
Warp Code to showcase everything as they
0:21
are the sponsor of today's video. But
0:23
these principles apply across the board.
0:26
Regardless if you use warp code or claw
0:28
code or cursor whatever
0:32
first stop repeating yourself. You want
0:35
to set your foundation once. That is
0:38
have your AI index your codebase so it
0:41
actually has context of your full
0:43
codebase. Warp code does this with
0:45
codebase context. Then set up your
0:48
rules. Rules are important and you have
0:50
two different types global rules and
0:52
project specific rules. Global rules in
0:55
warp code go in warp drive. These are
0:58
your coding standards, preferred
1:00
libraries, common bash commands, testing
1:02
philosophy, whatever you want to apply
1:05
to every single project you open in that
1:08
tool. Project specific tools goes in a
1:10
repo file like warp.md or claw.mmd or
1:14
cursor rules. that is your text stack
1:16
and versions and database schema API
1:19
patterns branch naming conventions and
1:21
you can have more than one if you want
1:23
to specify something different based on
1:25
where you are within your codebase. So
1:27
different subm modules may need
1:29
different rules. So have a specific
1:31
rules file for that subm module. Now
1:33
with rules every AI interaction knows
1:36
your preferences and starts with guard
1:38
rails without you typing use TypeScript
1:41
and Postgress for the millionth time in
1:43
every single prompt. Now, let's talk
1:46
about prompts. The number one rule is be
1:49
specific. Here's the difference between
1:51
amateurs and professionals. A prompt
1:53
that says make the edit button toggle is
1:56
lazy. I mean, that can mean 50 different
1:58
things and a bunch of different
1:59
implementations of how to achieve that
2:01
thing. Instead, say something like add a
2:04
boolean field editable to the users
2:06
table, expose it through API users ID
2:09
endpoint, and conditionally render the
2:10
edit button component based on that
2:12
field. See, that's concrete. It's
2:15
testable and removes margin for error
2:18
and hallucination. It's also where your
2:21
software engineering skills come into
2:22
play. You already know what needs to be
2:24
done. So, be specific in telling the AI
2:27
what exactly to do. Here's a template
2:29
you can steal. It's not perfect for
2:31
everything, of course, but it'll point
2:32
you in the right direction. And to be
2:34
even more specific than just what you
2:36
say in your prompt, add context.
2:38
reference what file to add this to or
2:41
what file you need to read in order to
2:43
implement a specific function or what
2:45
code you want refactored or changed. And
2:48
sure, you might say, well, it already
2:49
knows my entire codebase. I don't need
2:50
to specify it. While that's true, it
2:52
allows the task to be more specific and
2:54
also saves you a lot of money and tokens
2:57
because your AI doesn't have to search
2:59
throughout the entire codebase. In Warp,
3:00
I use at context or I just highlight
3:03
whatever code and then rightclick and
3:04
add it to the prompt because now Warp
3:06
does finally have a solid built-in rich
3:09
text editor, which is one of my main
3:11
complaints to them. But they fixed it,
3:13
or should I say added it. And sometimes
3:16
you're facing an issue with the UI or a
3:19
bug, something that you would need to
3:21
take a screenshot of. You can also
3:22
upload images to give more context to
3:25
the AI. In the past, I would let my
3:26
prompt be a little open-ended for the
3:28
AI. I don't do that anymore. Don't ask
3:30
the AI to guess. And to save even more
3:32
money, specify what models to use, not
3:36
just autopick whatever model, because as
3:38
you may know, Opus 4 is going to cost a
3:41
whole lot more than well, basically
3:43
every single other model. And don't
3:45
switch models mid-con conversation
3:47
unless it makes sense. Like if you're
3:49
going to plan with a specific model
3:51
that's better at planning, let's say
3:53
it's GPT5 and then you want to code
3:54
using Opus 4 or Sonnet 4, that makes
3:57
sense. But if you're just switching it
3:59
willy-nilly, well, switching models
4:01
doesn't transfer over the cash. So when
4:04
you switch, more requests are going to
4:06
be consumed, more money is going to be
4:08
spent. Also, keep the conversations
4:10
short and focused for each individual
4:13
task because each conversation's history
4:15
is going to be prepended as context. So
4:17
the longer the convo, the more each
4:20
prompt costs. And when it comes to your
4:22
workflow, treat it like an actual
4:24
software development workflow. Treat
4:26
each AI task like a real task you would
4:29
have in a sprint. Small, iterative,
4:32
testable, and approach them like a real
4:35
software engineer, not a vibe coder. You
4:37
understand architecture, you understand
4:39
patterns and logic, and you know the
4:42
codebase, so use that knowledge. And
4:44
there are a few different approaches in
4:45
how we tackle a task. Typically, we plan
4:48
first. So, have the AI help you plan it
4:51
first. So, first in plain English, I
4:53
tell the AI what I want to do, like
4:56
create a tool favorites or bookmarks
4:58
feature for the developer tool
5:00
directory. That's what this app is. And
5:02
then I say create a detailed
5:04
implementation plan that breaks down
5:06
exactly what needs to be built in what
5:07
order and how the pieces connect
5:09
together. Consider the data flow, the
5:12
key functions or classes, the potential
5:14
challenges, and the integration with
5:16
other components. And you can see the
5:18
other specifics that we have here. And
5:20
focus on practical steps to make this
5:22
feature work smoothly. Don't write any
5:25
code yet. I'll do this with GPT5 high
5:30
reasoning because it's good at planning
5:33
And then you can take a look at the
5:34
plan. Ensure that it's exactly what you
5:37
were thinking of and give any
5:39
restrictions in your next prompt when
5:42
you say implement exactly this plan with
5:45
the following restrictions. Only edit
5:47
these specific files, constraints like
5:50
no new dependencies and preserve
5:52
existing filters, deliverables, the code
5:55
and how to test the code. And then if
5:57
anything in the plan is ambiguous, stop
5:59
and output two options with trade-offs
6:01
instead of guessing cuz you don't want
6:03
your AI to guess. And what I'll do is
6:05
come over here, claude 4.5 sonnet, and
6:10
let it roll. Or what I can do instead of
6:12
manually changing the model every single
6:14
time is come over to settings to AI and
6:18
create an agent profile. So I can have
6:21
the base model be clawed 4.5 sonnet and
6:24
then the planning model is GPT5 high
6:28
reasoning. I can also specify it to
6:30
create plan at any time. Oh, and it
6:33
looks like this agent is done. And as we
6:35
told it to, it gave us two concrete
6:38
options of how to move forward. We can
6:40
pick one of those and have it actually
6:42
code the feature. And when code comes
6:44
back, review it like you're pair
6:46
programming with a junior developer.
6:48
Don't just blindly trust it like many
6:50
juniors do to their seniors. Ask
6:53
questions like why did you choose this
6:55
pattern or what are the error cases or
6:58
how does this impact performance?
7:00
Question its decisions. Get an
7:02
understanding of why it implemented
7:05
anything that is confusing to you. And
7:07
most importantly, jump in, look at the
7:11
code, review the code, and don't be
7:13
afraid to edit the code. and then have
7:16
the AI refactor around your changes if
7:19
you want. You don't always need to do
7:20
that, but it's an option if you're a
7:22
little uncertain on something. You have
7:23
to view this as collaboration between
7:26
you and the AI, not delegation. The only
7:29
thing that's different between pair
7:30
programming with an AI and pair
7:32
programming with another dev, is that
7:35
the AI is not going to judge your
7:37
variable names and eat your lunch.
7:39
Sorry, that's the overall gist of
7:41
things, but nowhere near all an AI can
7:44
do to help you code. Because once you
7:47
get used to that flow, working pair
7:49
programming with the AI, using the right
7:51
prompts and actually doing things
7:54
correctly, because prompting, whether
7:56
you want to believe it or not, is a
7:58
skill. Once you get used to that flow,
8:00
you could start implementing multiple
8:02
agents at once in various different
8:04
ways. And your first thought is, yeah,
8:06
you can have three agents working on
8:08
independent tasks, but you can also have
8:10
three agents working on the same task.
8:14
Agent one writes the code. Agent two
8:17
reviews the code and provides feedback,
8:19
and agent three writes tests for the
8:22
code. The reason you'd want to do that
8:24
is because having different context
8:26
oftent times helps. Just like with
8:28
anything, having a new set of eyes on a
8:31
problem can help. and you're not just
8:32
affirming the work that you already did.
8:35
You could even have a fourth agent uh
8:37
read the code and the feedback and the
8:40
tests and then refactor it from there.
8:42
You just got to always make sure that
8:44
you, the human agent, are also doing
8:47
that. You're also reading the code and
8:49
the tests and diving into the code and
8:51
coding. I know I already said this, but
8:53
it is the most important part of all of
8:56
this. That's the difference between
8:58
using AI to help you code and vibe
9:01
coding. And frankly, while you can have
9:03
all of these agents running at once, it
9:06
it I don't do that very often, at least
9:09
for coding, if at all. I'll have one
9:12
coding, one exploring the code base, one
9:14
maybe refactoring some code because
9:16
those are more manageable than, you
9:18
know, building a whole new feature and
9:19
maybe another for testing or something
9:21
along those lines. I maybe I'll have
9:23
two, three max. But if you do want to
9:26
have three all running on independent
9:29
tasks, what you would want to do is
9:31
create multiple git work trees or
9:33
checkouts and you can run different AI
9:36
sessions in parallel. And you go from AI
9:38
session to AI session approving and
9:40
denying operations as they go. Or you
9:44
can have it run autonomously and you
9:45
review the code and feedback and tests
9:48
as each one completes it like you're
9:50
Magnus Carlson playing chess against 20
9:52
people at the same time. and then you
9:54
give them the next step. But again, this
9:57
can get very overwhelming. You can also
9:59
operate git in natural language like
10:01
just saying create a release branch and
10:03
cherrypick the aux fixes. Warp code
10:05
handles the git operations without you
10:07
memorizing command and flags and all
10:09
that. And again, uploading images. If
10:11
you can't describe a UI bug or
10:13
something, screenshot it, upload it with
10:15
a prompt to fix it. Or if you need to
10:17
implement an API, drop in the docs URL.
10:19
But something to remember, the full page
10:22
typically gets sent to the model, then
10:25
extracts the information you need. So it
10:28
may increase usage, increase costs. I
10:30
made a whole video on this, but you can
10:32
use AI to explore unfamiliar code bases,
10:34
whether you're contributing to
10:36
open-source or joining a new team. A lot
10:38
of dev teams nowadays that I'm familiar
10:41
with actually use this heavily as a part
10:44
of the onboarding process. Just think of
10:46
this as conversing with the codebase.
10:49
Ask it to summarize component
10:50
responsibilities or trace data flow.
10:52
Explain architectural decisions and have
10:55
it create a whole entire flowchart for
10:58
you so you understand how things are
11:00
connected and well anything you can
11:02
imagine and anything you're curious
11:04
about. And something that's important is
11:06
you should also set up permission
11:09
checks. Some tasks need approval. Others
11:13
can run autonomously because you don't
11:15
want to have to approve every single
11:16
task there is. And again, some need
11:18
approval, so make sure that is set. And
11:21
you know how I said it can get
11:22
overwhelming? Well, you need to know
11:24
when to pull the plug. If you're losing
11:26
control, have a bunch of agents running
11:28
and it's generating chaos. Stop. Revert
11:31
the task work completely or to a
11:34
previous checkpoint that you were like,
11:36
"Hey, it kind of works right here, but I
11:37
didn't commit it." Or maybe you did and
11:39
revert to that commit and do it. And
11:42
look, just to reiterate this, the goal
11:44
is not to replace your engineering
11:47
judgment. It's to amplify it. AI is not
11:50
here to replace you. It's here to help
11:54
you. At least that's the current state
11:56
of things. So, take advantage of it. AI
11:59
won't magically make you a 10x
12:01
developer, but it will help you with
12:04
some pain points and code faster while
12:07
maintaining the quality and explore new
12:10
code bases without existential dread and
12:13
write tests without questioning your
12:15
life choices. The key is to treat it
12:17
like a very capable intern. You don't
12:20
just say, "Hey, go make this button
12:23
toggleable." You you you guide them a
12:25
little bit more than that. You be
12:26
specific. And that intern, think of them
12:28
as having brilliant potential, but you
12:31
still need to know what good code looks
12:34
like and understand the why behind it
12:37
where you're just letting your intern do
12:40
everything for you. You see how that
12:42
that wouldn't really make sense with an
12:43
intern. So why would you treat AI like
12:45
that? You see? So, that is how you code
12:49
with AI, not vibe coding some way to
12:53
some production disaster, cuz we've
12:55
never seen that before. Oh, yeah. And
12:56
right now, you can try Warp Pro free for
12:59
7 days with 2500 AI credits with no card
13:03
required. Just click the link in the
13:05
description. Now, if you'll excuse me, I
13:07
have to go explain to the AI why we
13:09
can't use blockchain to fix a CSS bug.
13:11
Y'all have a good one.