AI mistakes you're probably making
🔗 **Source:** [AI mistakes you're probably making](https://www.youtube.com/watch?v=Jcuig8vhmx4)
> [!note]+ Document Notes
> tags: [ai-coding, developer-tools, claude-code, cursor, context-management]
> author: Theo - t3․gg
> source: YouTube
> reference: https://www.youtube.com/watch?v=Jcuig8vhmx4
> date created: 2025-01-27 23:06
>
> # 🏷️ Title: AI mistakes you're probably making
>
<!-- deep-read:sections start -->
## 🧰 Action Inbox
- [H1] Test AI tools on problems you already know how to solve — validate solutions against your knowledge #validation
- [H2] Create frozen reproducible test cases from past bugs — use for evaluating new models #testing
- [H3] Fix broken environments before blaming AI performance — eliminate type errors and config issues #environment
## 🧭 Table of Contents
- [📝 Summary](#-summary)
- [📖 Main Content](#-main-content)
- [🗒️ Notes](#️-notes)
- [📚 References](#-references)
- [🗣️ Paraphrase](#️-paraphrase)
- [📰 Newsletter](#-newsletter)
- [✅ Action Items](#-action-items)
- [🧪 Hypotheses](#-hypotheses)
- [📊 Methodology](#-methodology)
- [❓ Questions](#-questions)
- [🔮 Future Research](#-future-research)
- [💡 Implications](#-implications)
- [🧠 Learning Styles Assessment](#-learning-styles-assessment)
- [📊 Accessibility Assessment](#-accessibility-assessment)
- [🌍 DEIB Assessment](#-deib-assessment)
- [✅ Logical Validity](#-logical-validity)
- [🛡️ DARVO Analysis](#-darvo-analysis)
- [🎯 Conclusion](#-conclusion)
### 🔗 References
- [G2I Hiring Platform](https://soyv.link/2i)
- [Repo Mix Project](https://repomix.com)
## 📝 Summary
- Developers are making systematic mistakes when using AI coding tools, leading to poor experiences
- Common errors include selecting wrong problems, poor context management, using outdated tools, broken environments, and over-configuration
- AI tools work best on problems you already understand, with minimal but precise context
- Context rot occurs when too much information is provided - models perform worse with excessive context
- Keeping environments clean and using current tools dramatically improves AI coding assistance
- Bottom line: Start simple, fix fundamentals, use AI as a skilled new engineer rather than a last resort
## 📖 Main Content
The core argument is that most developers are approaching AI coding tools incorrectly, leading to disappointing results that reinforce skepticism. The speaker identifies five critical mistakes:
**Problem Selection**: Most people only use AI when they've exhausted other options and don't understand the problem - exactly when AI performs worst. AI excels at problems you already know how to solve.
**Context Management**: Dumping entire codebases into AI context creates "context rot" - performance degrades significantly with too much irrelevant information. Tools like "repo mix" that flatten codebases are counterproductive.
**Tool Currency**: AI capabilities are advancing rapidly (months, not years). Perspectives based on older tools or models may be drastically outdated.
**Environment Issues**: Broken type configurations, linting errors, and development setup problems confuse AI agents and waste cycles on ghost issues.
**Over-Configuration**: Adding numerous MCP servers, skills, and plugins typically makes performance worse through context bloat rather than better.
The recommended approach treats AI like onboarding a skilled new engineer - provide precise context about the specific problem without overwhelming detail.
## 🗒️ Notes
#### ⏱️ [00:00](https://youtu.be/Jcuig8vhmx4?t=0) — [H1] Introduction: Common AI skepticism
- Key idea: Many developers see AI as useful for small projects but useless for real codebases
- Evidence: "There's a lot of reasons most people should feel that way, and I did myself just a few weeks ago"
#### ⏱️ [02:43](https://youtu.be/Jcuig8vhmx4?t=163) — [H2] Mistake 1: Selecting the wrong problems
- Key idea: People use AI as a last resort when they don't understand the problem
- Evidence: "Most people don't try a new solution on a problem they already know how to solve"
#### ⏱️ [04:15](https://youtu.be/Jcuig8vhmx4?t=255) — [H3] Use AI on problems you already know how to solve
- Key idea: Start with known problems to compare AI solutions against your own
- Evidence: "If I know how I would fix this hydration error...start there. It's a great place to test these things out"
#### ⏱️ [06:30](https://youtu.be/Jcuig8vhmx4?t=390) — [H1] Create reproducible test cases for evaluation
- Key idea: Freeze code states before fixes to test new AI capabilities
- Evidence: "Those types of tests are gold because benchmarks suck"
#### ⏱️ [08:45](https://youtu.be/Jcuig8vhmx4?t=525) — [H2] Mistake 2: Context management failures
- Key idea: Repo mix and similar tools that dump entire codebases are harmful
- Evidence: "This project is a fucking scourge and should be wiped off of the internet"
#### ⏱️ [10:12](https://youtu.be/Jcuig8vhmx4?t=612) — [H3] Understanding AI as autocomplete
- Key idea: AI is next token prediction - too much context creates noise
- Evidence: "The more the model knows, the dumber it gets"
#### ⏱️ [12:34](https://youtu.be/Jcuig8vhmx4?t=754) — [H1] Context rot: Performance degradation with too much information
- Key idea: Models perform worse with excessive context, even high-capacity ones
- Evidence: "Sonnet 4.5...once you break 50k tokens of context, the model starts to perform worse"
#### ⏱️ [15:20](https://youtu.be/Jcuig8vhmx4?t=920) — [H2] Proper context management: Less is better
- Key idea: Give AI search tools rather than entire codebase
- Evidence: "They give the model tools to find what it's looking for in the codebase"
#### ⏱️ [18:45](https://youtu.be/Jcuig8vhmx4?t=1125) — [H3] Claude.md and agent.md best practices
- Key idea: These files should capture gotchas and mistakes, not comprehensive docs
- Evidence: "The role of this file isn't to describe every single thing about the codebase"
#### ⏱️ [22:10](https://youtu.be/Jcuig8vhmx4?t=1330) — [H1] Mistake 3: Using outdated tools
- Key idea: AI capabilities advance in months, not years - old experiences misleading
- Evidence: "Things went from 'AI can never solve this' to 'Wait, what the fuck?' in literally a 3-month window"
#### ⏱️ [25:30](https://youtu.be/Jcuig8vhmx4?t=1530) — [H2] Mistake 4: Broken environments
- Key idea: Type errors, config issues, and broken setups confuse AI agents
- Evidence: "If your type check involves a CD, an actual directory change, your environment is broken"
#### ⏱️ [28:15](https://youtu.be/Jcuig8vhmx4?t=1695) — [H3] Ghost errors waste AI cycles
- Key idea: Persistent environment errors cause agents to chase irrelevant problems
- Evidence: "If you tell an AI agent about a ghost, it will chase it forever"
#### ⏱️ [31:00](https://youtu.be/Jcuig8vhmx4?t=1860) — [H1] Mistake 5: Over-configuration and MCP bloat
- Key idea: Adding multiple MCP servers and skills typically makes performance worse
- Evidence: "People spend so much time trying to set the agents up to succeed that they lose the plot"
#### ⏱️ [33:45](https://youtu.be/Jcuig8vhmx4?t=2025) — [H2] Successful developers use minimal configuration
- Key idea: High-performing developers use stock tools with minimal customization
- Evidence: Pete "uses stock codecs" and "puts out 500 plus commits a day regularly"
#### ⏱️ [36:20](https://youtu.be/Jcuig8vhmx4?t=2180) — [H3] Plan mode and iteration strategies
- Key idea: Fix bad outputs by improving initial context, not appending corrections
- Evidence: "Rather than try to fix it with a better input being appended, revert, go back"
## 📚 References
- [G2I Developer Network](https://soyv.link/2i)
- [Claude Code Documentation](https://claude.ai/docs)
- [Cursor IDE](https://cursor.sh/)
- [React 19 Hydration Error Tracing](https://react.dev/)
## 🗣️ Paraphrase
- Developers typically reserve AI tools for their hardest, most poorly understood problems, which is exactly when these tools perform worst - they excel at problems you already know how to solve
- Flooding AI with entire codebases through tools like repo mix creates "context rot" that degrades performance - models need focused, relevant information with search capabilities, not everything at once
- The AI coding landscape changes so rapidly (months, not years) that experiences from even six months ago may be completely outdated, requiring developers to stay current with latest tools and models
## 📰 Newsletter
**Stop Making These AI Coding Mistakes - Your Development Workflow Needs This**
Hey WordPress developers! 👋
If you've been skeptical about AI coding tools or frustrated with poor results, you're probably making some common mistakes that are sabotaging your experience.
**The Game-Changer**: Don't save AI for your hardest problems. Instead, use it on problems you already know how to solve. This lets you compare solutions and build trust in the tool's capabilities.
**Context is King**: Never dump your entire codebase into AI. Create focused claude.md or agent.md files that capture specific gotchas and project quirks - think of it as onboarding documentation for a skilled new engineer.
**Stay Current**: AI capabilities advance in months, not years. That frustrating experience from six months ago? Completely outdated.
Perfect for WordPress development workflows where you need reliable code assistance for theme customization, plugin development, and debugging.
Resources: [Learn WordPress](https://learn.wordpress.org/), [Developer Docs](https://developer.wordpress.org/), [WP-CLI](https://wp-cli.org/)
## ✅ Action Items
#### DevRel
- Developer advocacy: Create content series on AI coding best practices, measurable through engagement metrics
- Education: Workshop curriculum on context management and prompt engineering for development teams
- Developer experience: Documentation improvements for AI tool integration workflows
- Developer marketing: Case studies showcasing proper AI tool usage vs common mistakes
- Community management: Moderate discussions about AI tool experiences, gather feedback on pain points
#### OSPO
- Policy & Governance: Guidelines for AI tool usage in open source contribution workflows
- License Compliance: Review AI-generated code for license compliance and attribution requirements
- Security Management: Evaluate AI coding tools for security vulnerabilities in generated code
- Developer Support: Training materials on AI coding best practices and tool selection
- Community Engagement: Fund research on AI impact on open source development patterns
#### Community
- Maintainers: Templates for claude.md/agent.md files that help AI understand project conventions
- Contributors: Onboarding guides that include AI-assisted development workflows
- Sponsors: ROI measurement of AI tools in open source development efficiency
#### WordPress
- Core: AI-assisted code review processes for core contributions and performance optimizations
- Core Performance: Use AI for profiling analysis and optimization suggestions with human validation
- Community: Meetup presentations on AI coding best practices for WordPress development
- Training: Lesson plans integrating AI tools into WordPress development curricula
- Documentation: DevHub examples showing AI-assisted plugin and theme development workflows
- CLI: Command development using AI assistance with proper testing and validation
- Themes: Review processes that account for AI-generated theme code quality standards
- Plugins: Security review protocols for AI-assisted plugin development
#### The WPCC
- Programs: Fellowships focused on AI-assisted WordPress development methodologies
- Projects: Documentation sprints creating AI-friendly project setup guides
- Funding: Grants for research on AI impact on WordPress development productivity
## 🧪 Hypotheses
- Developers using AI on known problems first will develop better intuition for tool capabilities than those using it as a last resort
- Codebases with clean environments and minimal context will see 3x better AI assistance performance than those with configuration issues
- Teams using minimal AI tool configuration will have higher productivity than heavily customized setups
- Context rot occurs predictably at around 50k tokens regardless of model architecture improvements
### 📊 Methodology
- A/B testing comparing AI performance on known vs unknown problems with same developer cohorts
- Measurement of AI success rates across different context window sizes and codebase configurations
- Longitudinal study tracking developer productivity with stock vs heavily customized AI toolchains
### ❓ Questions
- At what context size does diminishing returns become negative returns for different model architectures?
- How do we quantify the ROI difference between proper and improper AI tool usage in development teams?
- What environmental factors beyond type errors significantly impact AI coding assistance quality?
### 🔮 Future Research
- Automated detection of "ghost errors" that confuse AI agents in development environments
- Development of standardized benchmarks for real-world AI coding assistance evaluation
- Investigation of optimal context management strategies for different programming languages and frameworks
### 💡 Implications
- Practice: Developers should audit their development environments and fix configuration issues before implementing AI tools
- Policy: Engineering teams need guidelines for AI tool usage that emphasize environmental hygiene and minimal configuration
- Security: AI-generated code requires validation processes, especially when context management is poor
- Education: Developer training must emphasize context management and problem selection over tool maximization
- Funding: Investment in AI coding tools should prioritize environmental compatibility over feature breadth
### 🧠 Learning Styles Assessment
Reading level estimate: Grade 12-14 (technical content with specialized terminology)
#### 👀 Visual learners
- Present: Code examples, configuration screenshots, performance graphs
- Improve: Flowcharts showing context management decisions, visual comparisons of good vs bad AI setups
#### 🔊 Aural learners
- Present: Video format with clear narration and examples
- Improve: Audio-only version focusing on key concepts and decision frameworks
#### 🗣️ Verbal learners
- Present: Clear definitions, analogies (AI as new engineer, autocomplete metaphor)
- Improve: Glossary of AI coding terms, comparative explanations of different approaches
#### 🧩 Kinesthetic learners
- Present: Step-by-step configuration examples, hands-on debugging scenarios
- Improve: Interactive checklist for environment setup, practice exercises with broken configurations
#### 🧠 Logical learners
- Present: Clear problem-solution structure, performance metrics, decision trees
- Improve: Flowchart for context management decisions, quantified performance impacts
#### 🧑🤝🧑 Social learners
- Present: Community examples, developer testimonials, team scenarios
- Improve: Discussion prompts for development teams, peer review guidelines for AI-assisted code
#### 🧘♀️ Solitary learners
- Present: Individual reflection on current AI usage patterns
- Improve: Self-assessment checklist, personal experimentation framework
#### 🌿 Naturalistic learners
- Present: Ecosystem thinking about AI tools in development environments
- Improve: Systems thinking about tool interactions, environmental impact considerations
### 📊 Accessibility Assessment
#### Screen reader semantics
- Present: Good heading hierarchy, descriptive timestamps
- Improve: More detailed alt text for code examples, ARIA labels for technical concepts
#### Keyboard navigation
- Present: Standard video controls, logical tab order in references
- Improve: Skip links for major sections, keyboard shortcuts for timestamp navigation
#### Contrast and readability
- Present: High contrast code examples, readable font sizes
- Improve: Dark mode considerations, larger text options for code samples
#### Text resizing and reflow
- Present: Responsive layout that scales well
- Improve: Ensure code examples remain readable at 200% zoom
#### Media and captions
- Present: Video with clear audio, transcript provided
- Improve: Detailed captions including technical terms, downloadable transcript
#### Forms and interactions
- Present: Clear reference links, accessible video controls
- Improve: Better focus indicators, accessible timestamp
---
## Full Transcript
[00:00] I have a feeling I can guess what your<br>[00:01] stance is on AI right now. It seems<br>[00:03] pretty useful and especially helpful in<br>[00:05] small projects, side projects, and early<br>[00:07] stage startups. But when it comes to<br>[00:09] real problems in real code bases, these<br>[00:11] things just aren't that useful. And you<br>[00:13] don't understand why everybody's getting<br>[00:14] so hyped and excited about those things.<br>[00:16] If that's your perspective, I<br>[00:18] understand. There's a lot of reasons<br>[00:19] most people should feel that way, and I<br>[00:21] did myself just a few weeks ago. But the<br>[00:23] harsh reality is that things are<br>[00:25] changing, and I want to talk a bit about<br>[00:27] that. But more importantly, the mistakes<br>[00:29] that you might be making when you use<br>[00:30] these tools that result in the<br>[00:32] lackluster experience that you're<br>[00:34] having. This stuff has changed so much<br>[00:36] and my own understanding of how I use it<br>[00:37] has too. I keep seeing other people who<br>[00:40] are struggling and when I talk to them,<br>[00:41] I found this set of mistakes that almost<br>[00:43] all of them seem to be making that once<br>[00:45] corrected result in really, really good<br>[00:48] things being built using these tools. So<br>[00:50] whether you're a skeptic that doesn't<br>[00:52] see any value in these things yet, or<br>[00:54] you're somebody who's really deep in the<br>[00:55] weeds using them every day and you just<br>[00:56] want to double check you're not making<br>[00:58] obvious mistakes, hopefully this video<br>[01:00] will be helpful. I have a ton of sources<br>[01:02] and things I want to talk about here,<br>[01:04] and I'm really excited to do all of<br>[01:05] that. But the first thing I want to tell<br>[01:07] you guys about is today's sponsor. It's<br>[01:09] 2026. Everything about how we code<br>[01:11] changed last year, yet nothing about how<br>[01:13] we hire did. That's kind of insane<br>[01:15] because hiring is worse than ever now<br>[01:17] that we're getting swarmed with terrible<br>[01:19] AI generated resumes constantly. If<br>[01:21] you're tired of reading that AI slop,<br>[01:23] check out G2I. These guys have it<br>[01:25] figured out. They have a network of over<br>[01:26] 8,000 engineers ready to go. And these<br>[01:28] aren't just people who are fresh out of<br>[01:30] college. These are experienced<br>[01:31] developers, many of which have worked at<br>[01:33] fang companies in the past. And they've<br>[01:34] all been onboarded with the best modern<br>[01:36] AI tools. So, you're not going to have<br>[01:37] to catch them up the whole time that<br>[01:39] they're employed. They even offer 7-day<br>[01:41] work trials to make sure that the<br>[01:42] employee that you get is a good fit for<br>[01:44] the company. Do you know how much easier<br>[01:46] my life would have been when I was doing<br>[01:47] job hunting if I could have tested a<br>[01:49] company for 7 days? I honestly think<br>[01:51] both sides benefit from this. Nobody<br>[01:53] wants to work somewhere that isn't a<br>[01:54] good fit. Nobody wants an employee that<br>[01:55] isn't either. It just makes sense to me.<br>[01:57] And if you don't think 7 days is a lot,<br>[01:58] I have good news for you. Their process<br>[02:01] to get them to file their first PR from<br>[02:03] when you start can take as little as 7<br>[02:05] days. After you sign up for G2I, you'll<br>[02:07] meet with their team. You'll set up a<br>[02:08] shared Slack channel, decide how often<br>[02:10] you want to meet in chat, and within<br>[02:12] five or less days from that point, you<br>[02:14] will have your first candidates, many of<br>[02:16] which are ready to go on the spot. And<br>[02:18] don't worry, you get to interview the<br>[02:19] candidates yourself, too. They do a<br>[02:21] first pass. They'll even take questions<br>[02:22] that you write for them to go ask the<br>[02:24] candidates and send you video responses<br>[02:26] so you can see how the candidate<br>[02:28] actually interacts. This is a person<br>[02:30] you're going to be employing. You want<br>[02:31] to know what they're like, not just what<br>[02:33] their credentials are on a piece of<br>[02:34] paper. It's 2026, guys. Stop hiring like<br>[02:36] it's 95. fix it now at soyv.link/2i.<br>[02:40] So the first thing I want to talk about,<br>[02:42] one of the biggest mistakes I see is<br>[02:44] selecting the right problem. So we start<br>[02:46] with I have a problem. Step one, you<br>[02:49] validate the problem. Is it really a<br>[02:51] problem? Maybe this is a thing I<br>[02:52] misunderstand or doesn't matter. But<br>[02:54] once you've decided that this is really<br>[02:56] a problem and it does matter, the next<br>[02:58] thing you probably do is the obvious<br>[03:00] solution, if there is one. If you're<br>[03:02] looking at this problem and it's a space<br>[03:03] you understand and the solution seems<br>[03:05] obvious, you can go try that. But if<br>[03:08] that fails, you have to do the harder<br>[03:11] solution, which is something less<br>[03:13] obvious. Maybe you have to debug more to<br>[03:14] get more information. Maybe you have to<br>[03:16] think about it more, read more code,<br>[03:18] check more logs, find some way to<br>[03:20] reproduce it. You have to put more time<br>[03:22] in. But once that fails, you go to step<br>[03:25] four, which is try something new. This<br>[03:28] is the point where once your existing<br>[03:31] solutions, your existing way of doing<br>[03:33] things has failed you, you then go try<br>[03:35] something else to see if that will solve<br>[03:37] it. So let's say you have a database<br>[03:39] performance problem. Maybe when you do<br>[03:42] too much throughput on your database,<br>[03:43] people start having errors in their<br>[03:45] experience. First thing to do is make<br>[03:47] sure it's really a problem. Are the<br>[03:48] errors actually happening? Are they only<br>[03:50] happening when there is too much<br>[03:52] throughput? Are they happening for some<br>[03:54] other reason? Are they happening because<br>[03:55] the user has a weird extension or they<br>[03:56] shipped something wrong? Once you<br>[03:58] validate the problem, you look at the<br>[04:00] error. You see what line of code is on.<br>[04:01] And then you go make the obvious fix.<br>[04:04] You ship it. Nothing changes. You never<br>[04:06] reproduce the issue because you couldn't<br>[04:08] figure out how to. So then you sit down,<br>[04:10] you put in the effort, you try to<br>[04:11] reproduce it. You think you find the<br>[04:13] repro for it. You ship some changes. You<br>[04:16] put it out. Still have the same issue.<br>[04:19] At this point, you've concluded this<br>[04:20] database I'm using just cannot handle<br>[04:22] the thing that I'm doing. So, you go<br>[04:25] explore new solutions. Maybe you look at<br>[04:27] a different database. You look at other<br>[04:28] technologies or systems or you try<br>[04:30] something else. Or maybe you ask the AI<br>[04:33] for help at that point. And this is a<br>[04:35] problem I see a lot. Most people don't<br>[04:37] try a new solution on a problem they<br>[04:40] already know how to solve. If you know<br>[04:42] how to solve the problem, you just solve<br>[04:44] it. You don't use another tool to try to<br>[04:47] solve it. And this is a very common<br>[04:49] mistake I see. People aren't using these<br>[04:51] tools to solve problems they already<br>[04:53] know and understand. They are using them<br>[04:55] as almost like a safety net type thing<br>[04:58] once everything else they've tried has<br>[04:59] failed. And that's often the first time<br>[05:01] they tried the thing. This is not meant<br>[05:03] to pick on Adam, but I think he's<br>[05:05] actually a really good example of this<br>[05:07] particular problem here. Come on AI,<br>[05:09] give me that 10x power that I saw out of<br>[05:12] Davis 7. Ben Davis is my channel<br>[05:14] manager, also a fellow YouTuber, and is<br>[05:16] having a ton of fun building with all of<br>[05:17] these things. He wants to see how<br>[05:19] powerful this stuff can be. Here's the<br>[05:21] example he gave asking a question to<br>[05:24] Opus 4.5 in cursor. There's a hydration<br>[05:27] error in this app. I traced it to this<br>[05:30] file provider. TSX, can you help me find<br>[05:32] the problem? This is for a lot of<br>[05:35] different reasons the wrong way to use<br>[05:38] AI. And thankfully, I'm already seeing<br>[05:40] people in chat realizing they're doing<br>[05:42] the same thing. They aren't reaching for<br>[05:43] these tools to solve known problems more<br>[05:46] easily. They're reaching for them when<br>[05:49] they've exhausted the other things<br>[05:50] within reach and then they're giving the<br>[05:52] model something that's really, really<br>[05:54] hard or poorly understood enough to seem<br>[05:57] really, really hard. This is a really<br>[05:59] important thing I want to push. I talked<br>[06:01] about this a little bit in the you're<br>[06:02] falling behind video and I'm going to<br>[06:04] try to not let these things overlap too<br>[06:05] much, but one of the best things to try<br>[06:08] these tools on is problems you already<br>[06:10] know how to solve because then you can<br>[06:13] compare your solution to the solution<br>[06:15] the tool would have done. If I know how<br>[06:17] I would fix this hydration error or this<br>[06:19] database error and I'm curious if the AI<br>[06:21] can do it too, start there. It's a great<br>[06:24] place to test these things out. Or<br>[06:27] another way of thinking about it, what<br>[06:29] context would you give another engineer<br>[06:31] on your team? When I am handing problems<br>[06:34] out to earlier career engineers at my<br>[06:36] businesses, I'm not giving them the<br>[06:38] problems that I don't understand. I'm<br>[06:40] giving them the problems that I already<br>[06:42] understand and know how to write the<br>[06:44] code for, knowing that if I give it to<br>[06:46] that employee, it's going to take longer<br>[06:48] and maybe come out worse and maybe have<br>[06:50] to do some back and forth with them to<br>[06:51] get it in the right shape. But I'm doing<br>[06:53] that knowingly to get it off my plate<br>[06:55] and to spread the knowledge of the<br>[06:56] codebase around the team. Learning how<br>[06:58] to do that with AI is a skill you'll<br>[07:00] pick up over time and you'll get an<br>[07:02] intuition not just of what problems the<br>[07:04] AI can solve, but also what things that<br>[07:07] it needs to know it solved it right. And<br>[07:10] a fun thing you can do here is gify it a<br>[07:13] bit and automate it a bit. If you have a<br>[07:15] problem and you know how to solve it and<br>[07:17] you give it to the agent with the same<br>[07:19] information you have, like you saw a log<br>[07:21] that referenced a specific line of code<br>[07:23] that you're pretty sure is the problem<br>[07:25] because of this blog post you read. Give<br>[07:27] it all of that information, all the<br>[07:28] things that led you to the solution.<br>[07:30] Maybe just go through a PR where you fix<br>[07:32] something. Check out the commit before<br>[07:34] that fix. Hand all of what you knew to<br>[07:37] the agent and see if it can solve that.<br>[07:39] Chances are it will. And if it doesn't,<br>[07:42] you have a thing that is as good as<br>[07:43] gold. you have a reproducible test to<br>[07:46] see the capabilities of the model. If<br>[07:48] you have a pull request that fixes a<br>[07:50] problem that an agent was unable to fix,<br>[07:53] go grab the code state before you push<br>[07:55] that fix, freeze it somewhere, grab all<br>[07:58] of the information you need to solve it,<br>[08:00] put it in a markdown file in that place,<br>[08:02] and then every time a new AI tool comes<br>[08:04] out, throw it at that problem with that<br>[08:07] frozen state and see if it can solve<br>[08:09] that. Those types of tests are gold<br>[08:11] because benchmarks suck. Now, and if you<br>[08:14] can collect a handful of these types of<br>[08:16] problems, the few things that the models<br>[08:18] can't do, but you could, you have a<br>[08:21] combination of things that's useful. You<br>[08:23] have a realworld reproduction test. You<br>[08:26] have the information needed to solve the<br>[08:28] problem and you have knowledge of what<br>[08:30] the right solution looks like and a way<br>[08:32] to validate the solution was correct.<br>[08:34] That is a hard combination of things to<br>[08:36] get and you should be hunting for as<br>[08:38] many of those as you can find because if<br>[08:40] you can sit on them and use them to run<br>[08:41] evals and you can tell your team or<br>[08:44] people on Twitter or the company that<br>[08:46] made the model, hey, this update made it<br>[08:48] so these five things that the AI<br>[08:51] couldn't do before, it can now. That is<br>[08:53] huge. And if you can sit there and say<br>[08:55] confidently, it can't solve any of these<br>[08:57] things, it still can't solve any of<br>[08:58] these things. That is even better. That<br>[09:00] is really useful. And if you can hit me<br>[09:02] up and share some of that with me, I<br>[09:03] will gladly pay you to have these<br>[09:05] reproductions that I can use to validate<br>[09:07] and test new things when they come out.<br>[09:09] That is as good as gold. That said, what<br>[09:11] I think you'll discover when you do this<br>[09:13] is that when you have the right context<br>[09:15] and the right instructions and you had<br>[09:17] enough information to solve the problem,<br>[09:19] if you give the same exact information<br>[09:21] to the AI, it will solve the problem in<br>[09:23] roughly the exact same way. But that's<br>[09:25] just the top of it. That's just<br>[09:27] selecting the right problem. I was<br>[09:29] touching on context management a bit<br>[09:30] there. So I'm going to go deeper on this<br>[09:32] for the next piece. This is a project<br>[09:34] called repo mix. Its goal is to take a<br>[09:37] given codebase and flatten all of it<br>[09:40] into a single AI friendly file so that<br>[09:42] you could include it as contacts with<br>[09:44] chat bots. This project is a [ __ ]<br>[09:47] scourge and should be wiped off of the<br>[09:49] internet. Not only has this project<br>[09:51] personally cost me and T3 chat in the<br>[09:54] entrance we are running probably<br>[09:55] multiple hundreds of thousands of<br>[09:57] dollars, it also virtually guarantees<br>[10:00] you're going to get [ __ ] output. It<br>[10:02] turns out that AI shouldn't have access<br>[10:04] to your whole codebase at once in the<br>[10:07] context. I feel like I have to talk<br>[10:09] about this multiple times a day at this<br>[10:11] point because it happens so often, but<br>[10:12] all AI is is autocomplete. If you hand<br>[10:16] it the capital of the US is and then<br>[10:19] stop, it is doing a bunch of crazy math<br>[10:22] across a bunch of things called<br>[10:23] parameters and those parameters linked<br>[10:26] some text to other text. When you have<br>[10:29] the early text of the capital of the US<br>[10:32] is it increases the likelihood that the<br>[10:35] next pointer is pointing towards<br>[10:37] Washington DC. The whole model that we<br>[10:40] use for LM is next token prediction.<br>[10:43] Based on everything currently in<br>[10:45] context, all of the information passed<br>[10:47] to the model. What does it think the<br>[10:49] next most likely 3 to six characters<br>[10:51] are? And it does that over and over<br>[10:53] again. The fact that these things can<br>[10:56] generate real meaningful contributions<br>[10:58] to real meaningful code bases that<br>[11:00] effectively through this autocomplete<br>[11:02] strategy is genuinely unbelievable and<br>[11:05] is an accident that it was discovered in<br>[11:06] the first place. But you have to be<br>[11:08] conscious of this when you use the<br>[11:10] tools. If you hand a model too much<br>[11:13] context so that the majority of the<br>[11:16] context is just nonsense about your<br>[11:18] codebase, it's just going to generate<br>[11:20] more nonsense. Sure, there are some<br>[11:22] models that can handle way more tokens<br>[11:24] than others. Like Opus 4.5, I think is<br>[11:27] capped at 100, maybe 200k tokens, but<br>[11:29] Gemini can do 1 to2 million. We should<br>[11:32] just all use the models with higher<br>[11:33] context windows. No. No, we shouldn't.<br>[11:36] The more the model knows, the dumber it<br>[11:38] gets. The problem isn't that it needs to<br>[11:40] know everything. Because the more it<br>[11:42] knows, the less likely it is to<br>[11:44] autocomplete the solution. Because if<br>[11:46] the problem exists in the codebase,<br>[11:48] giving it the whole codebase does not<br>[11:50] give it the solution. And if you get to<br>[11:52] the context limits, even with something<br>[11:53] like opus, once you break 50k tokens of<br>[11:56] context, the model starts to perform<br>[11:58] worse. There is a very important concept<br>[12:00] of context rot which is when you have<br>[12:03] too much context and it is distracting<br>[12:05] you from the thing that matters. Just to<br>[12:07] visualize it, this is the average score<br>[12:11] that the models get for finding things<br>[12:13] in a set of repeated words. And as you<br>[12:16] increase the number of tokens the model<br>[12:18] has, the success rates plummet fast. For<br>[12:22] example, sonnet 4. Up to a certain<br>[12:24] point, it's 100% successful. And then<br>[12:26] once you have too much context, it goes<br>[12:28] down to less than 60%. If the model has<br>[12:31] too much information, it will perform<br>[12:34] worse. Stop doing this. Imagine if in<br>[12:37] every Jira ticket or linear issue you<br>[12:39] got, the actual thing you cared about,<br>[12:42] like the problem the user had was stuck<br>[12:44] in the middle of paragraphs upon<br>[12:47] paragraphs of [ __ ] And you have to<br>[12:49] go deep into all of it to just find the<br>[12:52] actual problem. That's effectively what<br>[12:54] you're asking the AI to do when you<br>[12:56] compress the whole codebase in to the<br>[12:59] history. If you copy paste your codebase<br>[13:02] into a chat product like T3 chat or<br>[13:04] chatgbt or anything like that, it's<br>[13:07] going to confuse the hell out of it.<br>[13:08] It's not going to perform well. Don't do<br>[13:11] that. The reason all of these new tools<br>[13:13] like cloud code, open code, and even to<br>[13:15] an extent things like cursor are doing<br>[13:17] so well at this is because they don't<br>[13:19] give the whole codebase to the model.<br>[13:21] They give the model tools to find what<br>[13:23] it's looking for in the codebase. Things<br>[13:26] like an agent MD or a claude MD file<br>[13:28] that briefly describes what exists where<br>[13:30] in the codebase. Things like a GP tool<br>[13:33] to find the specific line that matters<br>[13:35] so that it can address that and only<br>[13:37] pull in the section that matters instead<br>[13:39] of the whole codebase. Just imagine how<br>[13:41] you solve a problem. If you see some<br>[13:43] typo on a web page, you don't go read<br>[13:46] every line of the codebase trying to<br>[13:48] find the typo. you use GP or command<br>[13:50] shift F to find it in the codebase and<br>[13:52] then you go fix it. Models aren't that<br>[13:54] different from people. If you give it a<br>[13:56] search tool, it will use it. If you<br>[13:57] don't and you expect it to read every<br>[13:59] line of the codebase, you're just as bad<br>[14:00] as the junior engineer that would go and<br>[14:02] do that. People often ask, "How do you<br>[14:04] learn a codebase?" I tell them to go<br>[14:05] check the poll requests. Now, my<br>[14:07] thoughts are a little different. But you<br>[14:09] certainly shouldn't do it by reading<br>[14:10] through it file by file. You should do<br>[14:12] it by searching around the codebase,<br>[14:14] doing things in the app, trying to<br>[14:15] figure out where the thing you're doing<br>[14:17] exists in the code. in building the<br>[14:19] mappings and the relationships between<br>[14:20] those things because you can't keep the<br>[14:22] whole codebase in your brain. Don't<br>[14:24] expect the model to do it. They don't<br>[14:25] work that way. So, we've established<br>[14:27] that giving it your whole codebase is<br>[14:29] bad. But what is good context? This is a<br>[14:33] more complex question that you'll get<br>[14:35] varying answers about. Generally<br>[14:38] speaking, less is best. If you can<br>[14:41] simply describe the thing that is wrong<br>[14:43] and what needs to be done, you can<br>[14:45] usually trust the model to go find what<br>[14:47] it needs to from there. This is actually<br>[14:49] one of the things that makes codeex<br>[14:51] slightly better than Opus right now with<br>[14:52] cloud code is that Codeex will do a very<br>[14:55] good job of reading all of the files<br>[14:57] that might be relevant, only pulling in<br>[15:00] the ones that matter, and then going and<br>[15:02] solving the problem. it is slower as a<br>[15:04] result because it'll spend a ton of time<br>[15:06] looking into each potential file that<br>[15:08] might be relevant, but once it does,<br>[15:10] it'll make a precise change with<br>[15:11] confidence. Whereas a model like Opus<br>[15:14] isn't quite as eager to search the<br>[15:16] codebase and is more eager to change it.<br>[15:19] As soon as it finds something that it<br>[15:20] thinks is the problem, it immediately<br>[15:22] goes into editing mode. So with<br>[15:24] something like Opus, it is better to put<br>[15:26] a little more time up front to say the<br>[15:29] problem is here. Don't touch this. Don't<br>[15:32] touch that. Just solve here. This is<br>[15:34] also an important thing to do with your<br>[15:36] claude MD file or agent MG if you're<br>[15:39] doing other tools. I'm very thankful<br>[15:41] everyone else is following a standard<br>[15:42] and anthropic is just special snowflake.<br>[15:45] They are what they are. They'll never<br>[15:46] embrace standards that they didn't make.<br>[15:47] It's how they are. One of the most<br>[15:49] interesting things I learned about the<br>[15:50] Claude Code team is that whenever they<br>[15:52] notice the model doing something poorly<br>[15:54] in the Claude Code codebase, they<br>[15:56] immediately go and change the Claude MD<br>[15:59] file to help steer the model in the<br>[16:01] right direction. I actually just made<br>[16:03] some changes to the T3 chat codebase for<br>[16:05] the same reason. I noticed a couple<br>[16:07] mistakes that were happening as a result<br>[16:10] of this file not steering the model in<br>[16:13] the right direction. There are certain<br>[16:14] things that we do every day as devs that<br>[16:17] the model probably shouldn't. One of the<br>[16:18] ones that pisses me off the most is PNPM<br>[16:21] dev. I don't want the model to run a dev<br>[16:24] server. I have a dev server running. I<br>[16:26] want the model to make changes to know<br>[16:28] that I have a dev server running and to<br>[16:29] just run a type check when it's done<br>[16:31] with its work. So I updated this file<br>[16:34] where I describe the PNPM scripts and<br>[16:36] specify now note don't use this unless<br>[16:40] otherwise told to. and all of a sudden<br>[16:42] the model randomly running dev commands<br>[16:44] stopped entirely. I also wanted it to be<br>[16:47] able to check the types from convex<br>[16:50] because if I wasn't running a dev server<br>[16:52] or it was running in a cloud environment<br>[16:53] where I didn't have the dev server<br>[16:55] running, it would make changes to the<br>[16:56] convex files and then not have the types<br>[16:58] update and then get really confused<br>[16:59] about the type errors. So I added<br>[17:01] another command here, pnpm generate, and<br>[17:03] told it generate convex types after<br>[17:05] schema changes. Now it knows when it<br>[17:08] makes a schema change, it should run<br>[17:10] this command and then the types will be<br>[17:12] correct again. Constantly changing this<br>[17:14] file based on the mistakes you see it<br>[17:16] making seems like you're babysitting the<br>[17:19] thing. It feels like you're doing way<br>[17:20] more work than you have to. I promise<br>[17:22] you it's not. This took 5 seconds and<br>[17:24] it's already saved me hours. And it also<br>[17:26] helps with building the intuition for<br>[17:28] what these can and can't do. Funny<br>[17:30] enough, when I was at Twitch, I<br>[17:32] experienced very similar things even<br>[17:33] though this was preai. When I onboarded<br>[17:36] into the codebase for the web app when<br>[17:38] we were rebuilding it in React, I was<br>[17:39] still learning React and TypeScript. I<br>[17:41] put up my first two PRs and had some<br>[17:44] dumb mistakes in them. Another engineer<br>[17:46] who was much more experienced hit me up<br>[17:48] and asked me, "Hey, not trying to pick<br>[17:50] on you or anything. Why did you do this<br>[17:52] though? Why did you write this this<br>[17:53] way?" So, I showed him the page in<br>[17:55] Twitch's docs that made me think<br>[17:57] incorrectly that I should do things a<br>[17:59] specific way. I don't remember what it<br>[18:00] was. I just remember this order of<br>[18:01] events. I linked him the docs page that<br>[18:04] led to me doing it this way. He said,<br>[18:06] "Oh, I see why it would make you think<br>[18:08] that. I'm going to go fix it." And<br>[18:10] before my PR even merged, they had<br>[18:12] updated the docs to make it less likely<br>[18:14] that the next person would make the<br>[18:16] mistakes I made. The issue with AI is<br>[18:18] that it doesn't remember things when it<br>[18:20] makes mistakes. That's your job. You<br>[18:23] have to build the memory for it. Not in<br>[18:25] the sense that you have to manage every<br>[18:27] single parameter inside of the model,<br>[18:29] but in the sense that when you notice it<br>[18:30] making stupid mistakes the way a new<br>[18:32] engineer might in your codebase, you<br>[18:34] need to document that so it's less<br>[18:36] likely to happen to the next person<br>[18:38] because the AI agent is a new engineer<br>[18:40] every time it runs. The role of this<br>[18:42] file is to take this really skilled<br>[18:44] engineer who just joined your company<br>[18:46] and make sure they know all of the<br>[18:47] things that are special about your<br>[18:49] company and your codebase. If you're<br>[18:50] copy pasting a cloudmd file from<br>[18:52] somebody else or some template repo<br>[18:54] somewhere, you're doing it wrong. Even<br>[18:56] if you're running the init command that<br>[18:58] a lot of these CLIs have, you're<br>[18:59] probably doing it wrong. The role of<br>[19:01] this file isn't to describe every single<br>[19:03] thing about the codebase. It's not just<br>[19:05] docs. It is specifically a gotchas pile<br>[19:08] almost like listing the things you've<br>[19:10] seen it do wrong to steer it away from<br>[19:13] that. This file should start really<br>[19:15] small and simple and slowly have small<br>[19:18] additions added and tuning done to it to<br>[19:21] steer the model away from the things you<br>[19:23] don't want it to do. And this file is<br>[19:25] always included as context. So it's<br>[19:27] basically guaranteeing that everything<br>[19:30] in it will or won't happen depending on<br>[19:32] how you describe it. So less code, more<br>[19:34] markdown. This is one of the most<br>[19:35] important pieces for the big code bases,<br>[19:37] too. By the way, if you're noticing<br>[19:39] problems with agents in really big code<br>[19:41] bases, the problem isn't the size of the<br>[19:43] codebase so much as the number of<br>[19:46] opinions and expectations that have been<br>[19:48] encoded. As a result, as the codebase<br>[19:50] gets bigger, the things that are weird<br>[19:52] about that codebase increase, too. Your<br>[19:54] expectations around how people operate<br>[19:56] in that codebase grow. So, you need to<br>[19:58] encode those. Another fun side effect of<br>[20:00] this is I've noticed when I look at a<br>[20:03] new codebase and I read through this<br>[20:04] cloud MD or agents MD file, I learn a<br>[20:07] lot about how the team builds and how<br>[20:08] they think about the codebase. It's<br>[20:10] actually a really useful way to learn.<br>[20:12] Honestly, context management is complex<br>[20:14] enough that I could do a whole series of<br>[20:16] videos on it. It's not complex in the<br>[20:19] sense that it's like super super hard to<br>[20:21] figure out. It's complex in the sense<br>[20:23] that there are many different solutions<br>[20:24] to the weird set of problems and you can<br>[20:27] for the most part ignore them and be<br>[20:29] fine. So don't overthink this one. Don't<br>[20:32] try to hack this one either. It's a<br>[20:34] common mistake. That's kind of that<br>[20:35] stupid repo mix thing I was sharing<br>[20:36] earlier. It's kind of the problem with<br>[20:38] things like this. It's trying to hack<br>[20:40] the context instead of use the context.<br>[20:43] And hacking the context doesn't work.<br>[20:46] Don't try to work around this reality.<br>[20:48] Try to embrace it. recognize the fact<br>[20:50] that these problems shouldn't require<br>[20:53] knowing everything about the codebase.<br>[20:55] Again, to go back to the selecting the<br>[20:56] right problem thing, if you had a really<br>[20:58] smart friend that you were giving access<br>[21:00] to this codebase, what information<br>[21:03] should they have in order to solve the<br>[21:04] problem that you're describing? Assuming<br>[21:06] they know nothing about the codebase,<br>[21:08] what is the smallest amount of info you<br>[21:09] can give them for them to meaningfully<br>[21:11] understand and solve the problem? That<br>[21:13] is what you should give to the agent.<br>[21:15] We'll probably talk a little more about<br>[21:16] context management in other pieces here<br>[21:18] and I might even do more videos about it<br>[21:20] in general in the future. But you have<br>[21:21] enough of an idea now about the common<br>[21:23] mistakes I see. Hopefully that'll help<br>[21:25] out enough that you can get more value<br>[21:27] from these tools. Speaking of which, one<br>[21:29] of the biggest problems I see using<br>[21:32] outdated tools or even worse holding<br>[21:35] your perspective based on experiences<br>[21:37] you had with outdated tools. Let's be<br>[21:40] real. If your perspective on how good AI<br>[21:42] is at coding is based on your experience<br>[21:44] using sonnet 3.5 in wind surf in the<br>[21:48] early days of agentic coding where you<br>[21:50] handed it the whole codebases context<br>[21:52] and didn't have a cloudmd or an agent md<br>[21:54] file to help it out. You're in a<br>[21:56] different world than us. That's<br>[21:58] legitimately like comparing notepad.exe<br>[22:01] to vim. Like the gap here is insane. To<br>[22:05] be fair to the people who feel this way,<br>[22:08] this is not just a cope. This is a<br>[22:11] learned behavior from a history of doing<br>[22:13] stuff with software and in the<br>[22:15] development world. If you tried adopting<br>[22:17] GraphQL right when it started getting<br>[22:19] hype and it went really poorly for you<br>[22:22] and then you tried again four years<br>[22:23] later, it didn't get much better. And<br>[22:26] that's the case a lot of the time. There<br>[22:27] are things that have a lot of hype that<br>[22:29] you go try, they just don't work well<br>[22:32] for you. then going back a few years<br>[22:34] later is very unlikely to change<br>[22:36] anything. That has been the case in the<br>[22:38] dev world for a while. If you tried<br>[22:39] React a couple months after it dropped<br>[22:41] and you just hated the syntax, the way<br>[22:43] it worked and no matter how hard you<br>[22:44] tried, you couldn't get over it, coming<br>[22:46] back a year later isn't going to be any<br>[22:48] better. Cuz like as much as React has<br>[22:50] changed, it hasn't changed in ways that<br>[22:52] would turn a skeptic into a supporter.<br>[22:54] It just improved in ways that take<br>[22:55] supporters and make them more powerful.<br>[22:57] So, if you used these tools two years<br>[22:59] ago and got nothing out of it and you've<br>[23:02] based your way of evaluating things on<br>[23:04] how you've evaluated them your whole<br>[23:05] lives, chances are this thing isn't<br>[23:08] going to be any better. I understand why<br>[23:10] you're avoiding it. Things are changing<br>[23:12] absurdly fast. I had problems that<br>[23:15] nothing in the AI world could solve 6<br>[23:17] months ago that started being solved<br>[23:19] three months ago. Like, they went from,<br>[23:21] "Oh, haha, AI can never solve this," to,<br>[23:24] "Wait, what the fuck?" in literally a<br>[23:26] 3-month window. That is insane. This<br>[23:28] level of oh [ __ ] has not happened in the<br>[23:30] software dev world almost ever before<br>[23:33] where a thing could go from incapable of<br>[23:35] something to beyond capable at the exact<br>[23:38] same thing in months. So if you're not<br>[23:40] using the state-of-the-art stuff, you<br>[23:42] don't know where it is today. And I know<br>[23:44] a lot of you guys aren't using it<br>[23:46] because I've seen the numbers. Not the<br>[23:48] numbers of how much you're using certain<br>[23:50] models or how many tools you're using<br>[23:51] and when you use them. I'm just talking<br>[23:53] about my sub count. Did you know less<br>[23:55] than half of you guys are subscribed to<br>[23:57] my channel? How are you expecting to<br>[23:58] keep up on all of this [ __ ] I can<br>[24:00] barely do it and it's my job to. If you<br>[24:02] want good summaries of what's going on<br>[24:03] and what the hot [ __ ] is and what you<br>[24:05] can learn from it and whether or not to<br>[24:06] try it, hit that red button. It costs<br>[24:08] you nothing and it helps you a ton with<br>[24:10] keeping up. I guarantee you that that<br>[24:12] engineer on your team that is way ahead<br>[24:14] that is killing it with all these AI<br>[24:16] tools, they're probably subscribed and<br>[24:17] you're not. Fix it. Anyways, I could sit<br>[24:20] here and tell you what the hottest tools<br>[24:22] are right now, but I want this video to<br>[24:24] stay useful for a while, so I'm not<br>[24:27] going to do that. You can go check<br>[24:29] Twitter or you can go to my channel and<br>[24:31] sort by most recent and get a rough idea<br>[24:33] of what is good enough today. I will say<br>[24:36] chances are it's probably not co-pilot.<br>[24:40] And also important thing, if your<br>[24:42] company doesn't let you try the new cool<br>[24:45] hot things, this is harder to do. And I<br>[24:47] actually do empathize with that. If you<br>[24:49] applied to get co-pilot approved at the<br>[24:51] start of 2024 and it finally got<br>[24:54] approved halfway through 2025 and<br>[24:57] everybody's moved over to Cursor and<br>[24:58] Cloud Code and Codeex, you now have to<br>[25:00] wait a year and a half for it to be<br>[25:01] approved again. That sucks. There are<br>[25:04] reasons that you're on outdated tools<br>[25:05] that aren't your fault. And if that's<br>[25:07] the case, first off, I'm sorry. Second<br>[25:09] off, you should start ignoring those<br>[25:10] rules and doing it anyways. If you get<br>[25:11] fired, you have an awesome story. Ask<br>[25:13] forgiveness, not permission. And third,<br>[25:15] you can probably find a better company<br>[25:17] to do these things at because this stuff<br>[25:18] like like don't fall behind because your<br>[25:20] company doesn't let you try new things.<br>[25:22] And you'd also be amazed how many big<br>[25:24] companies are embracing this. There are<br>[25:26] medium-sized companies like Sentry that<br>[25:28] are big enough to buy Super Bowl ads<br>[25:30] that will let you bring in whatever<br>[25:32] tools you want. And then there are giant<br>[25:34] companies like Microsoft that will also<br>[25:36] do the same. I can't tell you how many<br>[25:37] of the startups I've invested in that<br>[25:39] have Microsoft as a customer because<br>[25:40] they're actually willing to try out<br>[25:41] these new tools. I think that's really<br>[25:43] cool, especially because they compete<br>[25:44] with a handful of them. But then there's<br>[25:45] places like Amazon where they are<br>[25:47] constantly being told they can't use<br>[25:49] these tools because they really want to<br>[25:51] make their crappy vibe coding, PRD<br>[25:54] building. I think it's called Kira is<br>[25:56] their VS Code fork. There are a lot of<br>[25:58] people at Amazon that are forced to use<br>[26:00] that and can't use better tools because<br>[26:02] Amazon really wants the information in<br>[26:04] order to make their tool better. So that<br>[26:06] sucks. And if you're in one of those<br>[26:07] boats, figure it out. I'm sorry. It<br>[26:09] sucks. I get it. But the fact that your<br>[26:12] company is forcing you to use worse<br>[26:13] tools does not mean the tools are<br>[26:15] useless. The ones you're using might be<br>[26:17] useless. And I know you guys don't know<br>[26:19] many people using Kira, but all the Kira<br>[26:21] users I know are my ex-coorkers that are<br>[26:22] still on Amazon and Twitch cuz they're<br>[26:24] all forced to use it. Yeah. So if<br>[26:26] they're skeptical of AI tools, I get it<br>[26:29] because Yeah. But you should find<br>[26:32] opportunities to try the best things. I<br>[26:34] am regularly amazed. Like when I started<br>[26:36] using Cloud Code with Opus, after using<br>[26:38] cursor with Opus, my brain just kept<br>[26:41] opening to the things you could do with<br>[26:42] it. Next common mistake, and I really<br>[26:45] hope people aren't making this, but<br>[26:46] honestly, I I know you are because I've<br>[26:49] seen it a whole bunch and I've made this<br>[26:51] mistake myself too in a handful of<br>[26:52] places. Broken environments. This one is<br>[26:55] so common. Good example here. I've been<br>[26:58] in code bases that are mono repos where<br>[27:00] if you open the repo at a root level in<br>[27:03] your editor, the type system breaks. you<br>[27:05] have to open the sub packages in order<br>[27:07] for the TS config to work. That's a<br>[27:09] broken environment. If I can't in the<br>[27:12] root of the project run a type check<br>[27:14] command and know that everything in the<br>[27:16] project is handled properly, your<br>[27:18] environment is broken. And this is a<br>[27:21] very common thing. I've seen this so<br>[27:22] many times. If your type check involves<br>[27:25] a CD, an actual directory change, your<br>[27:28] environment is broken. And you can go<br>[27:30] try to teach the agent about all of<br>[27:32] these things through the MD files<br>[27:34] through agent MD or cloud MD, but it's<br>[27:36] much better to just fix your [ __ ]<br>[27:37] environment. I just had this in a Vibe<br>[27:39] coding project. I was working in the<br>[27:41] Vibe canban codebase and they had a<br>[27:43] mistake in their ESLint config that<br>[27:45] meant that whenever you opened a file in<br>[27:47] the editor and you were in the root, not<br>[27:49] the subpackage, every single file<br>[27:52] wouldn't be type checked and threw an<br>[27:54] error on the first line because it<br>[27:56] expected you to be using it at the root.<br>[27:58] fix those things. Not just for the<br>[28:00] agents, but for your co-workers, too. If<br>[28:02] I open up your project in my codebase<br>[28:04] and I go to a file and it's getting a<br>[28:06] type error from main because your<br>[28:09] configuration is bad, fix it. A good<br>[28:12] rule of thumb here is if you have a good<br>[28:14] engineer that has never touched your<br>[28:16] codebase and you ask them to spin up on<br>[28:18] it and they run into these types of<br>[28:20] things, you shouldn't tell them why<br>[28:21] they're wrong or how to fix it. You<br>[28:23] should go fix the codebase so these<br>[28:24] don't happen at all. Especially because<br>[28:26] again these agents effectively have<br>[28:28] their memory wiped every time you run<br>[28:30] them again. So if you have this type of<br>[28:32] type error where every file has a bad<br>[28:35] eslint config every single time the<br>[28:37] agent runs it's going to see the error.<br>[28:39] It's going to try and fix the error.<br>[28:41] It's going to realize the error isn't<br>[28:42] because of their changes. And I can tell<br>[28:43] you how many times we've seen this. The<br>[28:45] agent finds the file that it needs to<br>[28:47] touch to fix the problem. It makes the<br>[28:49] changes. It fixes the problem. It<br>[28:50] verifies the fix. It runs the type<br>[28:53] check. It gets a type error. It freaks<br>[28:55] the [ __ ] out. It tries a billion random<br>[28:57] things to fix it. Eventually, it reverts<br>[29:00] the change. It sees the same error. It<br>[29:02] then says to itself, "Oh, I guess this<br>[29:05] error already existed and is unrelated<br>[29:07] to my changes. It reapplies the change<br>[29:09] and then it finally ships." And then you<br>[29:11] run the agent with a different problem<br>[29:12] and the exact same thing happens over<br>[29:14] and over and [ __ ] over. If you tell<br>[29:17] an AI agent about a ghost, it will chase<br>[29:20] it forever. You need to get rid of the<br>[29:22] ghosts. You need to get those skeletons<br>[29:24] out of the closet. And do you know<br>[29:26] what's really crazy? If you see these<br>[29:28] issues, you can tell the agent about<br>[29:30] them and it'll fix them really well. Do<br>[29:32] you know how I fixed the problem in the<br>[29:33] Vibe canband codebase? So my issue is<br>[29:35] when I went in a file, I had a type<br>[29:37] error. So what I did to solve this<br>[29:39] problem is I didn't feel like dealing<br>[29:40] with the TS config [ __ ] I literally<br>[29:42] clicked in cursor the little button that<br>[29:44] appears that says oneclick fix this<br>[29:47] error. Ask the agent to fix the error. I<br>[29:50] clicked that. It put this in the text<br>[29:52] here. For this code present, we get the<br>[29:54] following error. Parsing error. Cannot<br>[29:56] read the file tsconfig.json. Fix it.<br>[29:59] Verify. And then give a concise<br>[30:00] explanation. And it did it. It realized<br>[30:03] the problem is that the project expected<br>[30:05] the tsconfig to be at dot slash. So<br>[30:08] where we currently are, but it's a monor<br>[30:09] repo, so it doesn't actually exist there<br>[30:12] if you're using it at the top level. If<br>[30:13] I had opened my editor in the front-end<br>[30:16] folder, it would have been fine. But I<br>[30:17] opened my editor at the root, so it<br>[30:19] wasn't. So what we need to do is use the<br>[30:22] path helper to figure out where we are<br>[30:25] so we can actually link it correctly.<br>[30:27] And it did this with no issues in one<br>[30:29] shot. I then pushed it up, got it<br>[30:32] merged, and now the agents will behave<br>[30:34] better when they work in this codebase.<br>[30:35] So the very problem you are giving<br>[30:37] agents can actually be solved by those<br>[30:39] very same agents. You need to fix your<br>[30:41] environments. I I have played in far too<br>[30:45] many big code bases that have lots of<br>[30:47] problems like this. You can fix them<br>[30:48] yourself. You can fix them with an<br>[30:50] agent, but please [ __ ] fix them. The<br>[30:52] next time I see somebody who can't get<br>[30:54] AI to solve their problem because their<br>[30:56] environment is broken, I'm going to flip<br>[30:58] a [ __ ] Obviously, if you have type<br>[31:00] errors everywhere because you suck at<br>[31:01] setting up the environment, things are<br>[31:03] going to break. Fix it. Okay. The next<br>[31:06] mistake I see is actually one I'm scared<br>[31:08] about because I have a feeling this<br>[31:10] video might contribute to it. I almost<br>[31:12] want to put this earlier, but I'm going<br>[31:14] to put it here because this is where it<br>[31:15] starts to matter. MCP Helen over<br>[31:17] configuration. I cannot tell you how<br>[31:19] many times I have seen this. People<br>[31:22] spend so much time trying to set the<br>[31:24] agents up to succeed that they lose the<br>[31:27] plot. They bloat the context with dozens<br>[31:30] of MCP servers and then nothing works.<br>[31:33] As you know, I've been using Cloud Code<br>[31:35] a lot. Want to see all the MCP servers I<br>[31:37] have configured? Oh, literally none.<br>[31:40] Zero. Same deal with cursor. Same deal<br>[31:43] with every other tool I use. Stop<br>[31:45] loading up your agents with these<br>[31:47] useless [ __ ] things. Just don't. It's<br>[31:50] so common, too. I've seen this a ton.<br>[31:53] Chad immediately says, "Now, let's see<br>[31:54] your skill section." Okay, I have one<br>[31:57] skill. The front-end design skill. Do<br>[32:00] you know what the front-end design skill<br>[32:01] does? It is a single markdown file that<br>[32:04] tells the model to not make AI slop. It<br>[32:07] literally says exactly that. This skill<br>[32:10] guides creation of distinctive<br>[32:11] production grade front-end interfaces<br>[32:13] that avoid generic AI slop aesthetics.<br>[32:15] Implement real working code with<br>[32:17] exceptional attention to aesthetic<br>[32:18] detail and creative choices. Never use<br>[32:20] generic AI aesthetics like overused font<br>[32:23] families, clichéed color schemes,<br>[32:25] particularly purple gradients on white<br>[32:27] backgrounds. This is all that skill is.<br>[32:30] That's all I have for configuration in<br>[32:32] cloud code. I have a custom runner CC<br>[32:36] that is a oneline addition to my zish<br>[32:39] file that adds a specific environment<br>[32:42] variable in front to hide my email<br>[32:45] address and also appends the<br>[32:46] d-dangerously<br>[32:48] skip permissions. I am tempted to put a<br>[32:51] piece of advice that is always use mode<br>[32:54] and dangerously skip permissions, but<br>[32:55] you'll get there yourself. I don't need<br>[32:57] to tell you this. Stop adding all of<br>[32:59] this [ __ ] to your stuff, though. skills<br>[33:01] are literally just markdown files and<br>[33:03] they're often way longer than they<br>[33:04] should be. They are for the most part<br>[33:06] context bloat and context rot. Avoid<br>[33:08] them unless they solve very specific<br>[33:10] problems that you are specifically<br>[33:11] having after you've tried solving them<br>[33:13] other ways. And I've talked enough about<br>[33:15] why MCP servers suck. You should already<br>[33:17] understand that by now. If not, go watch<br>[33:18] my other videos. If you are skeptical of<br>[33:21] AI being useful in your day-to-day work<br>[33:23] and you are touching MCP at all, you are<br>[33:25] [ __ ] up. If you don't see the value<br>[33:27] in these things yet, don't configure<br>[33:29] [ __ ] Don't go into MCP. Don't add a<br>[33:32] whole bunch of skills. Don't add<br>[33:33] hundreds of rules to cursor. Make subtle<br>[33:35] adjustments to your cloud MD and your<br>[33:37] agent MD file. And try to give a bit<br>[33:39] more clarity in your prompt as you talk<br>[33:42] to the model. One more thing, and I feel<br>[33:44] bad calling this out cuz it seems like a<br>[33:45] pretty good and very well-intentioned<br>[33:47] project. Oh, my open code. This seems<br>[33:50] fine if you're already deep in open<br>[33:53] code, getting a lot of value from it,<br>[33:56] and you want to see what it looks like<br>[33:58] to thoroughly configure it. That's the<br>[34:00] point of oh my open code. But we're<br>[34:03] already seeing in chat, oh my open code<br>[34:05] is so bloated, slop. Yeah,<br>[34:10] it's a mixed bag at best. You don't<br>[34:12] solve problems with AI coding tools by<br>[34:15] adding more things to them. More<br>[34:17] features, more MCPs, more plugins, more<br>[34:20] skills, none of that's going to make you<br>[34:22] go from this thing is useless to this<br>[34:24] thing is useful. If anything, they're<br>[34:25] going to make it feel worse. I promise<br>[34:27] you if you take somebody who isn't sure<br>[34:29] about these tools and you clone them,<br>[34:32] you give one version of this person<br>[34:34] stock cla or codecs and tell them to<br>[34:36] solve problems, you give the other one a<br>[34:39] super customized oh my open code setup<br>[34:41] with all the fancy MCPS, all of the<br>[34:43] skills built in and everything, the<br>[34:45] person with stock codec is going to have<br>[34:46] a much better time and going to enjoy it<br>[34:47] a lot more. These things can be useful<br>[34:50] in small doses once you have specific<br>[34:52] problems that they solve, but nobody<br>[34:54] talking about them is there. Everybody<br>[34:56] talking about this [ __ ] is just AI<br>[34:58] maximalist trying to squeeze every<br>[35:00] single possible thing. It's the same<br>[35:02] people who would buy Android phones<br>[35:04] because they cared so much about every<br>[35:05] single line in the specs. I'm saying<br>[35:07] this cuz I was one of those people. I<br>[35:09] used to tell you very excitedly how many<br>[35:11] gigahertz were in my phone. I was so<br>[35:14] hyped when I got my first dual core<br>[35:15] phone back in the day. I don't even know<br>[35:17] how many [ __ ] cores my iPhone has. I<br>[35:19] have literally no idea. I know it's<br>[35:21] fast. I know the GPU is even faster, but<br>[35:23] I have no [ __ ] idea what the specs of<br>[35:25] this phone are. I have better [ __ ] to<br>[35:26] do, and you do, too. Stop adding all<br>[35:28] these [ __ ] tools. The tool maximalist<br>[35:31] people are the same ones who care too<br>[35:32] much about specs when your grandma's<br>[35:34] buying a computer. It's the exact same<br>[35:36] people. Ignore them and go get real work<br>[35:38] done. I feel like Pete comes up in<br>[35:40] almost all of my videos at this point,<br>[35:42] but there's a reason why. He is building<br>[35:44] an absurd amount of things in parallel,<br>[35:47] all for free and open source, because<br>[35:48] he's already made his money, and he's<br>[35:50] killing it. He's doing really, really<br>[35:52] cool [ __ ] And he's vibe coding almost<br>[35:54] all of it. And he's vibe coding so hard<br>[35:56] that he's putting out 500 plus commits a<br>[35:58] day regularly. So he must be maximizing<br>[36:01] all of this stuff, right? All the<br>[36:03] customization, all the MCPs, all the<br>[36:05] skills, all the things. He's probably<br>[36:07] running his own forked version of<br>[36:08] whatever. No. Ready to see what he uses?<br>[36:12] He uses stock codecs. Here is his config<br>[36:16] for codecs. Defaults to GBD 5.2 Codeex<br>[36:19] high. defaults to high reasoning, has a<br>[36:21] limit for how many tokens it can output,<br>[36:23] has a model autocompaction limit, and<br>[36:25] then in the features, ghost commits are<br>[36:27] off, unified exec is true, free form<br>[36:29] patch is true. It's just a tool they<br>[36:32] have for doing patching better. I think<br>[36:33] it's on by default now. Web search<br>[36:35] request is true because for whatever<br>[36:37] [ __ ] reason, the search tool for<br>[36:39] searching the web is off by default in<br>[36:41] codeex. This is like the only part in<br>[36:43] here that really matters. Skills is true<br>[36:45] cuz he's playing with skills. And then<br>[36:46] the shell snapshot is true. I don't even<br>[36:48] know what that does. This allows the<br>[36:49] model to read more in one go. The<br>[36:51] defaults are a bit small and can limit<br>[36:52] what it sees. It fails silently, which<br>[36:54] is painful and something they'll<br>[36:55] eventually fix. Also, web search is<br>[36:57] still not on by default. Yeah, the<br>[36:59] unified exec apparently replaces using<br>[37:01] T-mucks for handling execution. Not<br>[37:03] much, but like that's it. No crazy<br>[37:05] plugins, no crazy forks, no absurd<br>[37:08] orchestration stuff. Keep it simple. If<br>[37:11] the thing isn't useful in the simple<br>[37:13] form, it's not going to magically get<br>[37:14] useful by adding a bunch of [ __ ] Please<br>[37:16] stop. I actually really like this<br>[37:18] article he did called just talk to it.<br>[37:21] This is as people realize over time what<br>[37:24] they can do with these things. They<br>[37:26] start with please fix this and as they<br>[37:28] get more in they do crazy things. Eight<br>[37:30] agents running at the same time, complex<br>[37:32] orchestration with multiple checkouts,<br>[37:34] chaining agents together, custom sub<br>[37:35] agent workflows, libraries with tons of<br>[37:38] slash commands, full stack features<br>[37:40] being built in MCPs, all that [ __ ] And<br>[37:42] once you get through all that, you<br>[37:43] realize the best thing to do is just<br>[37:45] say, "Hey, look at these files." and<br>[37:46] then do this thing. Life is much better<br>[37:48] when you realize that's all you need.<br>[37:50] That said, even he admits he'll<br>[37:52] sometimes just take a screenshot of a<br>[37:54] thing that's wrong, paste it to the<br>[37:55] model, and say, "Fix this," and it will.<br>[37:58] Last important piece here, plan mode and<br>[38:00] iteration. A very common mistake I will<br>[38:03] see is someone asks the agent to do<br>[38:06] something, usually compounded with the<br>[38:07] other mistakes, like with a bunch of<br>[38:09] weird tools on, nowhere near enough<br>[38:10] context on the problem, and then it<br>[38:12] struggles. And rather than fix the<br>[38:15] context, they keep asking more things<br>[38:18] and adding on. They keep appending more<br>[38:21] stuff as the mistakes compound. And<br>[38:23] remember, this is all autocomplete. So<br>[38:26] if the history that it has is a bad<br>[38:28] instruction, incorrect implementation,<br>[38:30] and then a correct instruction, there is<br>[38:33] still more bad information than good. If<br>[38:35] the whole thing is autocomplete based on<br>[38:37] the history, having a bunch of bad<br>[38:40] things in the history is going to result<br>[38:42] in bad output. even put a good thing at<br>[38:44] the end. Obviously, it can work through<br>[38:46] this and there are plenty of examples of<br>[38:48] it doing it. But it is significantly<br>[38:50] better to not do this this way. When you<br>[38:53] notice that the output came out bad<br>[38:55] rather than try to fix it with a better<br>[38:57] input being appended, revert, go back,<br>[39:01] make the better input the start. Because<br>[39:03] if you have a better input as the start,<br>[39:05] the likelihood that the output is better<br>[39:07] too is much much higher. The more good<br>[39:12] context exists in your history, the more<br>[39:14] likely the next thing is good as well.<br>[39:16] Obviously, there's a limit here. If you<br>[39:18] have too much context, chances are the<br>[39:20] context has become less relevant, which<br>[39:21] makes it worse, which makes the output<br>[39:23] worse, too. Fix it. And you know what?<br>[39:25] One of the best ways to fix this is plan<br>[39:28] mode. Plan mode is great because instead<br>[39:31] of the bad input resulting in a bad<br>[39:33] output, the output will be a confused<br>[39:36] output. In fact, it'll be confused<br>[39:39] questions where instead of it doing a<br>[39:41] whole bunch of things it shouldn't, it<br>[39:42] will add a little bit of additional<br>[39:45] context. That is, hey, I'm not sure<br>[39:47] about these three or four things. Can<br>[39:49] you answer these questions for me? And<br>[39:51] you might realize, oh, I should have put<br>[39:53] that at the start. And you can kill it<br>[39:54] and restart if you want. Or you can<br>[39:56] answer the questions. Those answers to<br>[39:58] those questions result in better<br>[40:02] answers. And then the model can output a<br>[40:05] good plan.<br>[40:06] And now the majority of your context and<br>[40:09] the majority of your history is useful.<br>[40:11] So the likelihood that it builds<br>[40:13] something good is much higher. This is<br>[40:16] why plan mode is good. It gives the<br>[40:18] right relevant context instead of<br>[40:20] handing the model your whole codebase or<br>[40:22] a bunch of tools to find things in the<br>[40:23] codebase. The plan mode creates a<br>[40:26] perfect prompt almost. The goal of plan<br>[40:29] mode is to write the exact thing you<br>[40:32] want to hand to the model that it can<br>[40:33] then go use to solve the problem. But a<br>[40:36] really important piece here is what<br>[40:37] happens if it goes wrong. If you make<br>[40:40] this plan, you think it's good, you run<br>[40:42] it with the model and it comes out with<br>[40:44] a bad output. If it's just a few things<br>[40:46] that are wrong, sure, tell it that. Tell<br>[40:49] it to go fix those small things and it<br>[40:51] will. But if it gets the whole thing<br>[40:53] wrong, reflect on why. Read a little bit<br>[40:56] of what it did. Read the reasoning<br>[40:58] traces for why it made the change you<br>[41:00] don't like or the thing that you don't<br>[41:01] want. If it's something that was wrong<br>[41:03] with the plan, go fix the plan. If it's<br>[41:06] something that was wrong with the<br>[41:07] understanding of the code base, go fix<br>[41:09] your claw MD or your agent MD file. This<br>[41:11] is the delicate balancing act you have<br>[41:13] to do. And it's an intuition you build<br>[41:14] as you do it more. You'll write a plan,<br>[41:17] the model will start executing on it.<br>[41:18] You catch something it's doing wrong and<br>[41:20] you'll just know where to go to fix it.<br>[41:22] Just to go back to my example earlier in<br>[41:23] the T3 recheck codebase when I ran a<br>[41:26] plan and it got the code right, but then<br>[41:28] it ran a dev server and it couldn't<br>[41:29] verify things because the dev server<br>[41:31] went to the wrong port, caused errors,<br>[41:32] and broke [ __ ] I knew the solution<br>[41:34] wasn't to add to the plan. Don't run dev<br>[41:37] commands. I know that cuz I used to do<br>[41:38] that. Instead, I went and put it in the<br>[41:41] agent MD file and then cloned it as the<br>[41:42] cloud MD file and the problem<br>[41:44] disappeared. Figuring out where to put<br>[41:47] the thing to stop the bad behavior is an<br>[41:49] intuition you'll build and you'll build<br>[41:51] it way quicker than you think. The same<br>[41:53] way you build intuitions about how to<br>[41:54] use a tool, right? Like in React, you<br>[41:56] don't put hooks after an early return.<br>[41:58] You just get why after you use it for a<br>[42:00] bit. Those types of things are<br>[42:02] intuitions you build as you use the<br>[42:03] tools, but you have to build them, not<br>[42:06] just keep saying fix it over and over<br>[42:07] and over again. Generally speaking, if<br>[42:10] you're not oneshotting things often,<br>[42:12] that's because there are problems in<br>[42:14] your prompting, problems in your context<br>[42:16] management, problems in your agent MD<br>[42:17] and cloudmd files, problems in the<br>[42:19] environment you have given the model to<br>[42:21] solve things in. And as you catch<br>[42:23] mistakes on the other side, there are<br>[42:25] more solutions there, too. If you notice<br>[42:26] the model makes code that works, but the<br>[42:28] types are always erroring, go give it a<br>[42:30] command to check the types so that it<br>[42:33] knows they are good. A lot of things now<br>[42:35] have type-checking plugins built in with<br>[42:36] the LSPs. I've had mixed success with<br>[42:38] those personally, but giving it a<br>[42:40] type-checking command can solve almost<br>[42:42] all of these problems. Don't<br>[42:44] overengineer it. Just identify the<br>[42:46] common mistakes and fix those in the<br>[42:48] agent MD or in a given plan. If a<br>[42:50] mistake happens, don't tell it to<br>[42:52] correct it. Go back and adjust the plan<br>[42:54] and rerun it. So, to wrap things up, I<br>[42:57] want to go back to this tweet from Adam<br>[42:58] in the back and forth we had on it. He<br>[43:01] couldn't get it to solve this error. He<br>[43:03] had done a little bit of work. He found<br>[43:04] the file that it is likely coming from.<br>[43:07] He knew it was from this provider tsx<br>[43:09] file, but he couldn't figure out why. He<br>[43:12] also wasn't very clear in the ask. He<br>[43:14] had an ask mode and ask it if it could<br>[43:17] help him find the problem. It's not a<br>[43:19] big deal. Models can work through that<br>[43:20] type of thing, but being more concise<br>[43:22] and specific about what you want from it<br>[43:24] helps a lot. The bigger problem here<br>[43:26] though is that he didn't know what the<br>[43:27] problem was and hadn't found the right<br>[43:29] context for it. The feedback I gave was<br>[43:32] that he should copy paste the exact<br>[43:33] error. give it any useful context like<br>[43:35] does it happen to logged in or logged<br>[43:37] out users other information that could<br>[43:39] make it easier to root cause the bug<br>[43:41] also with a case like this because it's<br>[43:43] happening in the browser a tool that I<br>[43:44] can use to verify its fixes like<br>[43:46] playright or access to the browser<br>[43:48] directly can be really helpful I also<br>[43:50] specified put in less qualifiers instead<br>[43:52] of can you help me find it it's what is<br>[43:54] the cause of this error and if you think<br>[43:55] the model can fix it just skip straight<br>[43:57] to build mode turns out the reason that<br>[44:00] Adam couldn't do this is because he<br>[44:01] didn't know that there was an exact<br>[44:03] error. His immediate response was there<br>[44:05] is no exact error. Is there isn't the<br>[44:07] only framework that manages to actually<br>[44:09] give you a diff when the HTML is broken<br>[44:11] with a hydration error? And this is<br>[44:13] again to go back to the start why he was<br>[44:15] using the model. He was using a model to<br>[44:17] solve this problem because he had tried<br>[44:19] all of the other things he knew of and<br>[44:21] they didn't work. So he was using the<br>[44:22] model for the first time as a last<br>[44:25] fallback and that's not going to work<br>[44:27] great. If you're only using these models<br>[44:29] because you don't have enough<br>[44:30] information to solve the problem, you're<br>[44:31] not using them right. And what made this<br>[44:33] one really funny is that I effectively<br>[44:35] played the role of what the you wanted<br>[44:37] the model to do here. I told him that<br>[44:40] this was added in React 19 that you have<br>[44:42] traces that now show you in React where<br>[44:45] the hydration error occurs. Ah, I'm an<br>[44:48] idiot. The diff was right in front of my<br>[44:50] face. What's crazy though is that it<br>[44:52] appeared to understand perfectly what a<br>[44:54] hydration error is, but it diagnosed the<br>[44:57] cause wrongly, even absurdly. Almost<br>[45:00] exactly backwards. Yeah, because it<br>[45:02] didn't have enough context because you<br>[45:04] as well didn't have enough context. And<br>[45:07] once he found the right error and handed<br>[45:09] that to the model, sure as [ __ ] it<br>[45:12] could solve it perfectly. So again, if<br>[45:14] you apply the lessons from what I just<br>[45:17] explained here, you have to select the<br>[45:19] problem well. You have to not select a<br>[45:21] problem that you don't know how to<br>[45:22] solve. Ideally, you have to give the<br>[45:24] right context and find the context if it<br>[45:27] doesn't exist. Help the model work on it<br>[45:29] with you if it doesn't and you want to<br>[45:30] build it. He wasn't using outdated<br>[45:32] tools. All that stuff was fine. The<br>[45:34] environment was kind of broken in the<br>[45:35] sense that there was no way for it to<br>[45:36] know the right way. But if he was to go<br>[45:39] add everything, he would quickly end up<br>[45:40] in MCP hell. So finding the right<br>[45:41] balance here, a hard thing to do, but if<br>[45:43] you do it right, it's great. But with<br>[45:44] the right application of a handful of<br>[45:46] these tips, he would have had a much<br>[45:47] better time. And after that back and<br>[45:49] forth, he is now enjoying these tools<br>[45:50] much more. I hope I've done an okay job<br>[45:52] of explaining why I like these things<br>[45:54] and the mistakes that I've seen others<br>[45:56] having with them. And maybe, just maybe,<br>[45:58] you'll be a bit more of a vibe coder as<br>[46:00] a result. At the very least, you have a<br>[46:02] whole new set of things to flame me for<br>[46:03] in the comments. Let me know how you<br>[46:04] feel about this one. And until next<br>[46:06] time, peace nerds.
<!-- deep-read:sections end -->