
Loading summary
A
There are people out there definitely like me that really want to know the advanced techniques that can leverage the most powerful parts of these AI powered coding tools. Where do you want us to get started that you think many people don't think about in terms of how they can use these tools?
B
Context and diagrams is a great place to start. They're definitely the best way to get AI to do what you want. So they have what are called mermaid diagrams. This is a way of visualizing database operations and it's a way of essentially compressing your application down into very small lines of text that show how your application works. Now for a human to read this, this is a big challenge, but an AI can consume this easily. I could even just say please explain the authentication flow. And because it already has it in the context, it's not going to have to do a bunch of file reads and code base exploration. Until you figure this out, it's going to come up with results much quicker.
A
If I gave you infinite junior to mid career talent who is always available, who would do the work you would do? If you had unlimited amount of time and no meetings, what would you do when a ticket came in? Like what would you do? Welcome back to How I AI. I'm Claire Vel, product leader and AI Obsessive, here on a mission to help you build better with these new tools. Today we have John lindquist@eggheadio who is a super super user of AI powered engineering tools like cursor and Claude code. Now I love all you non technical folks out there, but this is an episode for the senior software engineers who really want to understand how they can use the power features of some of these AI engineering tools to really both optimize the quality of code that they're generating, but also become more efficient as they use their IDE terminal and AI assistants to to write, check and deploy code. This is a great episode for any of our advanced users out there. VPs of engineering, CTO, pay attention. Send this to your staff engineers. Let's get to it. This episode is brought to you by Work os. AI has already changed how we work. Tools are helping teams write better code, analyze customer data and even handle support tickets automatically. But there's a catch. These tools only work well when they have deep access to company systems. Your copilot needs to see your entire code base. Your chatbot needs to search across internal docs, and for enterprise buyers that raises serious security concerns. That's why these apps face intense IT scrutiny from day one to pass, they need secure authentication Access controls, audit logs, the whole suite of enterprise features. Building all that from scratch, it's a massive lift. That's where work OS comes in. WorkOS gives you drop in APIs for enterprise features so your app can become enterprise ready and scale upmarket faster. Think of it like Stripe for enterprise features. OpenAI perplexity and cursor are already using workos to move faster and meet enterprise demands. Join them and hundreds of other industry leaders@workos.com start building today. John, welcome to How I AI. I have to put some context here, which is we have done quite a bit of coding with Cursor Vibe coding episodes, but a lot of what our audience has asked for is early maturity, less technical introductions to these tools. But there are people out there definitely like me and definitely like folks that follow you that really do know how to write great software and want to, you know, as people say, of course I'm a 9x engineer, but how do I become a 10x engineer with some of these tools? Want to know really the advanced techniques that can leverage the most powerful parts of these AI powered coding tools and get you really high quality software. So I'm really excited about what you're going to show us today. And so where do you want us to get started that you think many people don't think about in terms of how they can use these tools?
B
Yeah, I think context and diagrams is a great place to start for us. They're definitely the best way to get AI to do what you want. And we'll be using cloud code throughout.
A
Oh great. Okay. And so yeah, we've gotten a lot of kind of markdown files in HOW AI but not a lot of diagrams. So why don't you walk us through how you use those assets to help you code better?
B
Yeah. So these diagrams are all generated from. I can share a prompt with however you want to share with the audience that can walk through code base and generate diagrams based on user actions or user interactions, the events, the channels, whatever happens in your code to help the AI understand the flow and how the pieces are connected. I think Windsurf recently came out with something called Code Maps, a similar concept of essentially preloading valuable context so that you have to remember that every time an AI starts, it has no memory, no idea of what's going on in your application. And people try and set up lots of rules and all this stuff around it, but they usually don't include a lot of how does my application work and how do the pieces fit? And so you get a lot of really bad edits because it doesn't understand if it modifies A, how does that impact B. So we want to preload a lot of that. We can do that using diagrams. So for example, one of these diagrams will have, I call their markdown files with diagrams in them. So they have what are called mermaid diagrams. And mermaid is a standard format for rendering diagrams inside of markdown. So this is a way of visualizing database operations. And if you were to zoom in and look at how if a record exists, then do this and that. Yes, no. And it's a way of essentially compressing your application down into very small lines of text that show how your application works. Now, for a human to read this, this is a big challenge. We need to open up this big visual and it turns into like, looks like an image, but an AI can consume this easily. And it's like a very compressed, very robust way of explaining application. So we can feed these into our application at the startup time. And for the more advanced or the larger projects you get on, the more diagrams you'll have. And you can kind of pick and choose which ones to load. I'm going to load them all in and I'm just going to open terminal of the editor area. So the way I'm going to do this, if we look at CLAUDE and we look at its options, you'll see a bunch of options. The one we're going to focus on is called append system prompt. So in there, before we load in any sort of user prompt or anything, we're actually going to say claude, append, system prompt, system prompt. And then you can drop in some text and we're going to drop in a command. This command can read in from our memory from AI diagrams. And then this is going to read through. This is called a glob pattern. Read through all of the markdown files, essentially force them into CLAUDE once I do this. So this is reading all the files, all the markdown files, and this is cat will kind of concatenate them all together into a single text read.
A
Yeah. One thing I want to call out for folks that are watching this, that or listening and maybe not watching is two things. It seems like, you know, in your, in your standard repos, you're creating a memory directory where you're going to structure some of the context and files you might want any of these AI tools to use. And I think everybody's like, oh yeah, I've created my agents markdown file or my CLAUDE one. I think you can actually structure your context for these tools a lot more purposefully. And so I think this is a really good example of this. The other thing that I, I think a lot of people are quite lazy about is they haven't explored the surface area of all the system commands available in CLAUDE code. And so by using that help command, you can actually see things that, not just chatting with clock code you can do, but you can actually inject into how CLAUDE operates. And a pending system prompt is one of those ones that I think people probably underuse.
B
Yeah, absolutely. It's one I use constantly. Great points there. So when I let this run, you'll notice that there's. It's now prompting the user to do something and we don't have to try and reference all the files which you'd normally do with. We don't have to try and tell it, you know, what we're going to work on. I could even just say, like, I use dictation all the time. Please explain the authentication flow. And because it already has it in the context, it's not going to have to do a bunch of file reads and code base exploration to figure this out. It's going to come up with the results much quicker. This does come at the cost of a lot more context, a lot more tokens being used up front. But the work that you do, the time that you spend on these tasks is more valuable than that to me. So you'll notice that there were no file reads in this. There were no. It did not search the code base, it didn't do any of that stuff. It just simply had all that in context. And now I could take this and look through it, start creating plans, a swap over to plan mode to how we want to update and change authentication. So this saves again the trade off here is the cost of mini tokens up front, but the value is you get a lot faster and a lot more valuable output as the tasks complete much faster. The tasks are much more reliable because it understands what's going on in the code base.
A
Two things I think people should think about with this flow. One is, I've said this in a couple episodes and we'll call it out again in yours is I think that with LLM starting to become more of a part of how we do work and feed context and understand things like documentation or business context, this is the era of the file type and I think so many people think about markdown and JSON files as effective ways to inject context into LLMs. I see a lot, of course, markdown files. I think more people now write markdown than they have in many, many years. And then a lot of we've had some episodes on using JSON, for example, to put realistic or semi realistic data into prototypes. But we are having more and more episodes where people are discovering specific file types that have a specific context structure that are really useful for a use case. In this one you have mermaid diagrams, which again, are hard to parse as a human and even if they turn into graphics, are still hard to parse as a human. Like, I looked at that big diagram and my eyes crossed and I said, I don't want, I don't want to read this, but to a machine it's very effective. We've also in some episodes talked about image and multimedia file formats that not only contain image data, but contain metadata that you can use. And so I think this is an interesting moment where we can all use different file types in a more extensive way than our kind of human brains could, because the machines are so good at using the different component structures or syntax of those files. So I think that's pretty interesting. And I think mermaid diagrams are one of those examples of something that could be used really well.
B
Yeah, absolutely. There's a lot of research being done into how they can compress all of this information down into like a single image. So if I could take all the diagram files and somehow come up with an image format that would store everything in there, could would the trade off on tokens be there and would the trade off on understanding be there as well? It's. We'll see if there's more file types that emerge. And I'm huge on video and using videos. Gemini being the best model for uploading video and understanding and recently built a tool that can take one of my six hour workshops and process the entire thing and take out notes and examples and thoughts and frequently asked questions. So each time I teach a workshop and iterate on it and I don't have to go like search through the video some other way, it's you and.
A
I will have to trade notes because I did a very similar thing with our episodes, which is it takes a video of our episode, it pulls out all the learnings, all the code, snippets, screenshots where the guest and I look cute and put it into, into a blog post. So. So I agree on that. You know, the second question I had for you though is going back to these diagram files in this memory directory, where in your development process do you find that you generate those files? So for me, I actually have a GitHub action that generates files almost exactly like you have with documentation and diagrams for new features of a specific scope. And so I do it when a pull request is closed and then I go back and update, update our diagrams. I'm where, I'm, I'm curious where this falls in your, where documentation like this falls into your workflow.
B
Yeah, usually I think pull request is a good paradigm there. As soon as you have something working where you want it to be working and then you can say okay, now this is working as expected, please diagram it. I think for a lot of the projects we already have pre existing code bases that don't have diagrams. And so that's been the major use case is taking existing stuff and diagramming all of that so that our AI development is accelerated I guess is the buzzword. But yeah, if you're starting from scratch, you definitely just want to spike things out, get it working. Don't worry about diagrams up front. Just use a plan mode, build something and once it's working then diagram it out. And then even with the diagrams they're great to help walk you through like what did I just build? Like I didn't look at any of this code. Show me diagrams of what the code is doing and then if the diagrams look kind of wonky, you can to say there's tools in there that people are working on where you can like drag around pieces of the diagram to say, well I don't want this to navigate there. I don't want this user to do that. There's going to be so many tools in the next few years that emerge from all of this.
A
Yeah. And then I will give folks just a couple other use cases of generating mermaid diagrams from code that are not just about improving the efficiency of using something like Claude code. I use a lot of diagram generating out of our repo to answer very complex security and data flow requirements from our customers. This is a, it's a workflow that is actually like pretty expensive if you ask an engineer to do it, which is I have specific customer a, they need a very specific data flow diagram of this part of our application so they can understand the third party parts of it. Again also if you're going through SOC2 compliance or any compliance like these are, these are assets that historically have just been so tedious to create efficiently and effectively and now you can kind of generate them on demand. My last question for you on this diagram flow is do you find that you have the AI write or you would write documentation any differently than you would for A human audience or do you feel like there's enough overlap that the content format, et cetera, can be pretty consistent between the two?
B
I would say it could be pretty consistent. I think they serve as a nice bridge between kind of human and AI. Definitely think. I know people generate documents like you'll write code and then generate documentation around it using AI for both steps, which is just wild. But yeah, I think the Markdown is kind of the language of the future for a lot of this text. And then you can do images and everything inside of Markdown files as well. So they can kind of. And the front matter of metadata, you see Claude using that extensively for their skills and commands and everything, so. And Anthropic is pretty good at pioneering all this stuff. So if they're using Markdown, then everybody else can.
A
Yeah, yeah. Again, for people who want to like pull the thread a little further, what I do is we generate a lot of AI code. Then on pull request, we generate AI documentation internally for engineers and for AI obviously to use this context. And then we take that code and we generate markdown customer facing support documents again that really benefit from these workflows because then you say click button A, move to section B, save this. And so you can really pull the thread on documentation from one asset. And I think you're showing a place where it's really useful from the engineering perspective. But it can start to become customer facing and all sorts of interesting things.
B
Yeah, and you could summarize the documents for customers. You could have it build little interactive demos. I mean there's. The sky's the limit, like however much you want to support the customers there is. If this is enough, then then great. If it's not, then it's an AI prompt away from something pretty, I guess.
A
This episode is brought to you by Tynes, the intelligent workflow platform powering the world's most important work Business moves faster than the systems meant to support it. Teams are stuck with repetitive tasks, scattered tools and hard to reach data. AI has huge promise, but struggles when everything underneath is fragmented. TINES fixes that. It unifies your tools, data and processes in one secure, flexible platform. Blending a jetic AI automation and human LED intervention. Teams get their time back, workflows run smarter and AI actually delivers real value. Customers now automate over 1.5 billion actions every week. TINES is trusted by companies like Canva, Coinbase, Databricks, GitLab, Mars and Reddit. Try tynes@tines.com howiai Great. So you showed us how to just Pull all of these documents into a system prompt, you get much more performant use of something like CLAUDE code. And this seems like a command that you're using over and over again. And that's something you and I talked about before we started recording, which is how to alias and make more efficient your use of different commands. So should we. Should we pop over to that or anything else you want to show on diagrams?
B
Great, let's do that. So there are a lot of. With On Mac it's ZSH is the default shell. On Windows I do PowerShell. So this looks very different. But depending on what tools you use the most, you can easily set up aliases for things like setting the default model for Claude or setting like if you want to do something completely dangerously. So that once you open a new terminal, if you just type X now anything I type has bypass permissions enabled or if I type H, this will be haiku, it'll be much faster, but not quite as smart. Or if I type in this scenario cdi, this will do that diagram loading, where once you have these systems in place and these commands in place, then you can just kind of capture them in the smallest. Like, because I own. Because I use these a lot, I keep them in very short shortcuts.
A
Yeah, and I can imagine you could do something like this for project specific context. So you could do like CC Dash, whatever project you're working on, you could pull in the diagrams for just that initiative. So if you're going back over and over again into specific things that need specific context, this would be just a cheap shortcut to get you into the mode of, for example, Claude code that you want.
B
Yeah, absolutely.
A
You showed a lot of CLAUDE examples here. Are there any other ones that you think are really, really useful for folks or creative uses of this you think we should think about?
B
So I tend to build any idea I come up with. So for example, this is one I'm working on called Sketch. And this feeds into the Gemini Gemini cli. So like, what type of website do I want to build? Let's do a store for selling Christmas decorations. And then let's make the homepage of that. Let's make it creative and artistic. For a desktop website, we'll do the GitHub light theme for it. No reference image. Let's do five images and go ahead and generate it. And this is the sort of thing where kind of beyond, beyond the simple alias. If you've never dived into creating what's called a cli, you can tell an AI, like, listen I want to use like, this is a wrapper around Gemini where it will execute Gemini with specific prompts. So you have to remember that you have these tools on your desktop which can do incredible things, but you can also script them. And this is a scripted way of generated, generating images based on all of these, all these topics with. Or these concepts with preloaded prompts. And yeah, I can say if I want to add another feature, like you can just go in there and say, please tweak the prompts or please add this feature or please do this. And then instead of constantly thinking of, oh, what was that prompt again? Or was that idea I had, you can have these little clis and these little projects that are just for you because just like build the tools that you need now. And this is just spitting out these. My mom lives with me and she's setting up Christmas decorations upstairs. This is why I'm thinking about this. So this, yeah, this is Gemini generating based on the prompt we fed in based on the color scheme. This is GitHub Lite Christmas Store color theme. And I told it to generate five variations of it. And then we could take one of these images and drop it into one of the. Drop it into one of the AIs and say, let's start building out this website. Let's break this into sections and go from there. And this is kind of like my ideation inspiration sort of thing that, that I use.
A
One reason I want to make sure people are paying attention to this use case, which is essentially you've exposed a command line interface to do a couple, you know, script a couple workflows around calling nanobanana and some of the Gemini models to do some things. And there are two benefits, I think, to this that are really important. One is building command line tools has been so opaque and just kind of not fun for so many people for so long. I've built lots of them. And how easy it is to build a really nice command line tool is such a treat for anybody who's ever had to build them and make them look good. Everybody has these cool ASCII only logos in their command line tools, which have been very tedious to make before. So I think one thing is these tools are just a lot easier to build. Two, from a product builder perspective, the reason why I like this move to these command line tools is the constrained UI space of the terminal. Actually make sure you don't get distracted in building UI around something as simple as this, right? You just had like five questions you had to answer a couple Multi select. You could tab through those with your keyboard. If you were creating like a little WYSIWYG walkthrough web editor thing here. I mean, one, I would have gotten really distracted about how it looks. Two, you'd have to type into, you know, you'd have to run local host and type into your, your, your, your web browser. And so I actually like the constrained UI space for speed of, of prototyping on some of these ideas because you just don't get distracted by anything but the essential kind of toolkit. And then you can get a really cool thing out the other end.
B
My only problem is I've built more tools than I can remember and sometimes I have to think, where was that thing?
A
Yeah, I also like how you started this little segment, which is you said you just build every idea you have. I think that is totally the move. While you have an idea, kick off something, get it built, build yourself a little throwaway repo. You know, eventually the AI can crawl it and remind you everything that you built before. But this is pretty cool.
B
And that's, that's why I love dictation, because all you have to do is start up a new terminal in a new folder and just kind of brain dump in there and then it'll try something. And once you have something, even if it's wrong, you can iterate on it. Yeah, you have nothing. You can't iterate on nothing. And I think that's the magic of, even for people who hate AI tools. Like a sheet of paper full of things that are wrong is much better than a blank, than nothing. Because even if it's wrong, you recognize it's wrong and it helps you think of what's right and what you want to build.
A
Yeah, I say this a lot. It's easier to edit than author. So let's get the authoring out of the way. And then even if you completely revise the whole thing, it's a much easier starting spreading point to work with something.
B
Yeah.
A
Okay, so I think we're going to close out and spend a little bit of time on your workflow for when you're doing more complex coding projects or features, how you keep those really high quality using some advanced techniques in, I think in cloud code and cursor.
B
So when working on any. Excuse me, when working on a project, often when the AI is generating code, it'll often build out mistakes and so even it will say it's done. You're like, wait a second, there were a ton of mistakes there. Why did you stop Just fix it until the mistakes are done. So for example, let's say it wrote out this code and there was this error in here. And this error is something you'd usually catch with tools such as TypeScript or maybe it's formatting or linting or any sort of complexity tools that there are code quality tools that you run before you think the work is done. So you would run something like bon type check and you would see that it has this error. But your CLAUDE code and the other agents don't know that this error exists. What CLAUDE has and what cursor and a few others have is the concept of hooks. And what this can do is so inside of claw, let's go here you can set up what are called hooks and I'm going to set what's called a stop hook and hit add new hook and just it shows you a bunch of examples. I'm accepting responsibility for all this bunch of warnings because it can run scripts that aren't checked by the AI. And I'm going to say the command for now is just the echo which does nothing and I'm going to add it to my project local settings. And now we have this echo hook. And this is defined in this settings local JSON file. And this is for. This is a local file for me. If you want it to be with your team, it'd be settings JSON Settings Local JSON is distribute. What we're going to do is instead of running this command, we're going to run a custom CLAUDE hook which I've defined inside of CLAUDE hooks and I called it index ts. You could call it stop or whatever. So from this script which is in this directory, I need to run this install for this package because I don't have it installed right now. So I'm going to bun install anthropic and this is their claude agent SDK. Now in the SDK they have what are called hook inputs and other types you can use so that when you're dealing with hooks you have a lot more information. So like on this input you have all of this information around what the input name is and then what the session ID is and the current working directory permission mode and all that. And you can use that to customize your hook. But we're going to, but what we are going to focus on is we're going to see step one were their files changed when we stopped and a stop is once CLAUDE has kind of finished its conversation and it's now waiting for you to do something. So we're going to check are there files changed? And we're going to, if there's files changed, we're going to say, okay, then let's go ahead and run that bun type check. And if there is a type check, then we can say back to Claude, we can say, hey, there were typescript errors, this is the report. And then send them back the output that we showed in the terminal before and it'll continue. Otherwise, if there were files changed, then we can tell Claude to please. There's a prompt way down here that says please commit. Essentially the files don't commit anything sensitive and go ahead and commit it. So we set up this workflow of once a conversation is finished, check to see if any files have changed. If they have, you check to see if there's any typescript errors, which could be a type check or build errors or any sort of other code quality guards you have in place. And if there are none, then go ahead and commit. And this saves you a lot of the overhead in your mind of here's all this extra stuff I have to do once something's done.
A
Yeah, and what I want to call out for folks that are maybe listening and not seeing this code here is it's really what's nice about this is it's a combination of commands that you would run in the terminal to, to just generate errors and see them yourselves, but then you can feed those back into CLAUDE code in a more natural language way and give natural language instructions on what to fix, or again default to some command that's different, which is this GitHub commit command. And so I like this combination of kind of like structured commands in the terminal combined with natural language calls back into Claude to then kind of put the bow on the end of any work that this AI system does. Is that kind of how you think about it?
B
Yeah, exactly. The gotchas you have to think about here are when you're communicating from a hook back to claude, you're essentially using console log, which is one of the first things any JavaScript developer learns. And you're sending back a JSON object, so it's going to find that first console log. Whatever it gets back, that's what it's going to see as its input, its standard input. So you have to be careful. If you're running commands like this, you tell this one, please be quiet, because if it's not quiet, then it would log back to the console and maybe interfere with something. Or if you want other logs or you're debugging the script, just Use console error or any other way of showing logs otherwise, console log turns into this, feeding instructions back to the agent. So it's one of those gotchas that everyone falls into when building this out. And just to demo it real quick, I'll just turn on Claude and I'll say, well, actually for this to work correctly, let's make sure we have everything staged and set up so that when it does the git check, let's just generate a message. So, yeah, let's please create a foo ts file on the root of the project and we'll go ahead and accept this. And you'll see that it says stop hook returned a blocking error. And that error return is please fix the typescript errors. And here's our prompt right here with this block and it says, I'll fix the types of error. So this is when it would have stopped. It would have stopped right here, but we hit the stop hook now it sees these errors. So it's going to go ahead and read that. It says, oh, I found the mismatch quote, I fixed it. And now behind the scenes there's a Claude running which should it commit that fix? You make this a bit smaller. Sure. Graph here and you'll see this is the fix that it made was correct. The quote syntax. This is what the little haiku did in the background. So the stop hook ran twice. It ran once where it found the error and had files changed. And then the second time there were no more errors and so it ran the commit. And so that saved us all of that work of both passes. And now we have a completed task that has been error checked, fixed and then commit and conditionally inscripted in a way where this will be different for every single project based on your requirements, based on your code base. So this is definitely something that you have to like, think through and set up yourself. It definitely saves so much time where you don't have to go back in and say, well, please fix this or please run this command or please do this when you know part of your workflows always, like, if these things should always run, you might as well run them automatically.
A
And something I have to say is I get so much pushback from software engineers saying, these tools don't really make me faster. The quality isn't as good. And I think if you make the investment as you've shown us in, okay, well, what things would it do to make the quality better? Or what things would it do that you can automate that would make you a little bit faster and you put that effort in to understanding all the things that these tools can do for you either programmatically or through prompting. I think you can actually see a lot of those efficiencies. And then I want to call out something that you said which is you have this local settings but you can create settings that are shared across your team for anybody that's working in the repo and that's for or engineering leaders out there or larger engineering teams to really think about. If you haven't created these hooks for key repos or key projects where everybody is benefiting from this when they're using something like Claude code, then you're missing out on some of the scaled leverage I think of these tools. And so I'd love to put somebody in charge in an engineering organization of figuring how stuff like this can work inside your code base and then scaling it out either through training or through configuration into all the other engineers so that everybody's getting the spaceline quality and this baseline efficiency. Yeah, amazing. Well, okay, other than, you know, type typescript errors, just prattle off a couple other use cases. You deleted a bunch of stuff from this hook. So what are the things you think that people should bake into a stop hook like this for cloud code?
B
Definitely formatting. There's kind of the mindset we've always had before of like pre commit hooks or pre push hooks, things that operate on the CI and these are a lot of things that can be fixed before those are even run. So whether it's. There's a lot of tools around with linting it could constrain the length of files. There's things like circular dependencies where I could check the imports to make sure that files files don't reference each other. There's code complexity. There's tools that say does this code look like any other code in the code base where this could be extracted into a function or something because it was like duplicate code throughout the code base. And there's all sorts of analytics and tools. You could run some of them, probably not as often as others because it's more expensive and you just have to make those decisions based on, you know, the size of your team, the size of your application. But there's just, just put into an AI prompt of ChatGPT or any of them to say what are all. Make a long list of developer tools people run on pre push or on pre commit and you'll see a huge list of them that you could pick and choose from.
A
Well, and I'm going to take a tiny Detour for our very patient non technical audience members that have maybe listened to this, which is these post tool call hooks or post stop hooks in Claude can also be used when you're working on non code. So we have so many people using Claude code to write documents, to do all sorts of things. And so you could just think about what do I want automated after this tool is called or what do I want automated after Claude finishes writing my document? And you could think about ways to use something like this, not even for code quality review, just for a post kind of task completion check. So I think just the general framework's really useful. It's obviously highly applicable to software development, but I think people can think of other creative use cases for this as well.
B
Yeah, absolutely. The diagramming stuff. Create an image of what we just did and send it to my mom to show her I'm working hard. Like anything you want, right? The sky's the limit.
A
Okay, so just to wrap up, these have been super useful use cases. I want to call them out. One is using documentation and diagramming, specifically mermaid diagrams, to preload as a system prompt in your Claude code instance so that you don't have to waste the time of doing context discovery and you can really make sure that that context is preloaded a little more expensive on the token side, but a lot faster. And these diagrams are much more easily read by machines than by humans. So it's a good format to get things in. We looked at aliasing some of your favorite Claude code instances and settings so that you can pop into your live dangerously mode. You can pop into your, you have all my diagrams mode. You can just pop into those with one, you know, one, one or two letters, which I like. We got a little side preview that we didn't call out, but just how casually you use voice and transcription to enter in and out of these tools. What I like about the way you use AI is you were just like highly efficient. You're like the minimum number of things I could type, the better. And you're pretty fluent in switching between voice and typing. So we saw, we saw a little that you encouraged us to create in particular little command line tools to build one off ideas or tools. Yours was a website design generator using nanobanana. And then you showed us how to use CLAUDE hooks and in particular a stop hook to do some quality and other checks on code written by these AI tools and automate some of the processes that you might do as a software engineer that you want our little AI software engineers to do instead. Just that in I'm looking 40 minutes. We did it pretty fast.
B
Nice.
A
This is great. Okay, well, I'm going to ask you a couple lightning round questions and then we will get you back to your very efficient AI coding. My first question again, you're like me. We love Cursor, we love claude, we love VS code, We have all of them open. You know, I think everybody's. I think there's interface wars happening right now. Are people going to love these terminal UIs and command line tools like Claude code? Do people want the IDE? I noticed that you're on cursor 2.0, so you have the agents view, which is very simple and abstracts away some of the code and you're in the editor view. I'm going to give you two wars. I want your quick opinion right now, we won't hold you to it, of what you think wins for I would say real software engineers, you know, writing real code out there. The friends that I talk to, you know, terminal ui, IDE or both. And then do you, do you have any hypotheses on, I think particular in the VS fork world, VS code fork world, are there any moats or, you know, what do you think? How do you think people can compete in the IDE world?
B
Yeah, so I think you need both. I think you need an ide. And there are so many use cases for the clis. The reason being that the clis have a lot of configuration and a lot of settings where as you saw with Aliases, I could launch a version of CLAUDE that loaded up a specific set of mcps or a specific set of prompts and preload a bunch of things and do that in a single terminal command and be very quick and fast with that and then set it off in the background and just have it running currently inside of a cursor or inside of any of these IDEs. There's usually a lot of, okay, open the UI, navigate to this and then navigate that, then switch over to this, then switch over to that. And they try and streamline as much as possible with slash commands and whatnot, but it's just not quite the same. But if you have an IDE and you're reading through the files and you're selecting lines and you want to modify certain bits like focused work. There's so many use cases for IDEs where there's a recent cloud tool, where it has a IDE integration, where it can check the diagnostics from the idea. And you'll see that with VS code as well, like the extensions you put into an IDE can be fed back into the agent. So there's a whole robust extensions ecosystem from IDEs because people build on top of these things their own workflows. And I don't think we've quite reached like we build our own clis from AI. I don't see a lot of people building their own cursor extensions or ES code extensions, which very possible. And you could feed those errors and warnings and company rules and everything in very complex ways back into the agents. So that will happen as well. And I think for one IDE to stand out above the other, they have to separate themselves like Cursor is doing with their agent mode. They have to make something unique and user friendly that once like people are not going to give you a bunch of time to convince them. You're going to have to open the agent and you're going to have to like see that click on browser mode and it's going to have to launch your dev server and you're going to have to click on the element and say I want this to look with more pink or purple or whatever. And then they want that to just work. We'll see. Any sort of friction or frustration from any AI tool anybody puts out there is just instant dismissal from so many people. Like there's just the bar for quality is so high in the AI landscape because everyone can build anything that you have to focus on the ux. You have to make that experience better than everyone else. And that's where you can see cursor making the bold moves of like okay, let's go full on agents. You have to make those leaps.
A
Yeah, I agree. And you know, just talking about this skepticism and high bar, what I love about this episode that we recorded today is it's really most relevant for software engineers with more experience who are shipping high quality code and who want to write production level code more efficiently using some of these tools. It's, this is not, you know, I hope you all hung out and listened to it, but it's not for our vibe coders and our non technical folks. And so what would you tell kind of senior principal software engineers, engineering leaders? I get asked this a lot about how do I sell the value proposition of these tools into very skeptical organizations. And what are, as a more advanced software engineer, the things that have just changed your life in the last year which say you should never go back to doing it this way. Kind of how do you, how do you make that pitch?
B
The first thing that jumps to mind is anytime an Issue is opened. Like, you can set up streamlined workflows and someone opens an issue and you can have Claude automatically tackle it. You can set up triggers for linear, GitHub, whatever that once something happens, you can get that first pass to see, okay, can we at least find this without doing any work? Can we at least get that initial review in there of what's going on so that once we jump into the task, I mean, for my entire career, someone throws an issue at you, you spend the first, you know, probably day or two orienting yourself to like, okay, I didn't write this code. This is legacy from let's do get blamed. Let's do all this stuff. Like all of that busy drudgery that you're going through to even get started on the issue. It can wipe out so much of that. It can find who touched the files, who did this. Like, if you have the diagram set up, what are the risks, the impacts are there, potential security things are there. Like, it's so great at surfacing the. You don't know or you don't know sort of scenarios where you hire so many contractors, you hire so many people who are new to these things, and then you throw them into these tasks and they just don't know. Like, they haven't spent time with a code base and then you ask them to fix these things. They just have zero idea what sort of impact their change is going to have. The AIs can surface a lot of that and they can just be like, okay, we need to be super careful. This is in production and this is cost going to cost us money if this goes wrong. Just tell me everything I need to look at. Like, find every single debug path. Find every single every. Why has this file changed over the course of history? Like, write a summary of everybody who's touched this file so I can know why this function is the way it is. Like, there's just so much work that is just not writing code. And all the exploration work is just so much easier to just say. Like, everything I just said over the past 30 seconds is a prompt, which I could have just dictated, right? And you just have to walk up to your computer and say, I have this issue, like, guide me through all this stuff. And it's just. It blows my mind that people be hesitant for those sorts of tools. I understand if they're like, okay, maybe some of the code isn't perfect. We still have to do code reviews. We still have to like, check for quality. We still have to run our tools to validate things. But if you're not using it to do to like inspect and investigate and write orientation and all that stuff, then like you're really missing out. Like in the enterprise space.
A
Yeah. And on the other end if you're not using it to document, so the next time somebody has to do that investigation, you have a little bit of an easier time. You're al also missing out. So I do think on that that front of the back end and what I often tell people is a good way to think about how to design your AI workflows is do not think in a task level orientation. Like I'm going to write code. I say think about if I gave you infinite junior to mid career talent who is always available, who would do the work you would do? If you had unlimited amount of time and no meetings, what would you do when a ticket came in? Like what would you do? And you'd say, well I'd go trace who wrote the code, I would go figure out the history. I would make myself a really good tech spec. I would call out the risks, I would publish this in a way that my team could review it. I would have a senior engineer look at it and give me some really hard feedback. All of that could just become a prompt and then, you know, but so many people are just constrained by their time and cognitive capacity and so they just go, well, I'm going to read the issue and bounce around in the code a little bit and I guess I'm going to start coding and so you can kind of get to this model of optimal, not perfect but like optimal workflow and then figure out how you can prompt or build workflows or hooks that would replicate that at least in an 80% way, which is a lot better than not doing it.
B
And something as simple as the commit messages are so much better than they used to be because developers don't have to write them.
A
So much better.
B
For people who are new to programming, commit messages used to be like second attempt or like please work word swear words.
A
My favorite one is just like 17 Fs or like trying this, trying that, trying this other thing.
B
Yeah, let's please work plz.
A
Yes. You know, if anybody wants to vibe code a product, I always thought that startups would want a printed book of all their first year's commit messages with like calling out the really funny ones. Oh, if somebody wants to vibe code a little GitHub API powered print business, I'm sure you could get a couple startups to print those out. Okay, last question. Yeah, this is probably challenging for you because you do a lot of dictation. So you're probably actually pretty polite to AI, given you would have to say frustrating things to it if you wanted to be mean. But when our, our little friend Claude is going off the rails or you're really not getting what you want, what is your prompting, reset, start over technique? Have you found any, any tricks that work particularly well?
B
Yeah, it's really the Take the conversation, export it. A lot of them have the export commands, drop the conversation with some of the code files into the. Into ChatGPT Pro 5 or whatever it's called, or Gemini Deep Think I believe is the and have them do a second set of eyes on it and then kind of start over rather than if things go off the rails and you can't fix it in about maybe one prompt of where you see what's going wrong and just revert to the previous commit and kind of start over. Because there's always this underlying AI is trying to go somewhere and you want it to go over here and you keep on telling it to, to join on your path, but it still wants to get somewhere else that you don't quite understand. And so starting over from ground zero and revising your original prompt is better than trying to steer it to where you are when you've drifted so far away. And that has to do. It's so different with every model. It's so different with every prompt and all the context and project that it's like it can't give you that here's instructions that work every time, but like starting overworks every time, tossing a second set of eyes on the entire conversation where that AI isn't, isn't invested in that conversation, it's instead critiquing the conversation. Those are my two.
A
I think that second workflow is so funny because I think as somebody who's been a manager and a leader so many times, sometimes I feel like I'm the reasoning model being brought in to mediate the misunderstanding between too smart but misaligned, misaligned resources. And so it's really funny to hear the idea, okay, like I'm having a debate with my AI. Let's bring in like the third party, let's mediate this conversation, have an objective set of eyes to see where we maybe are misunderstanding each other or going wrong, and then reset and start, start over. So again, I think, you know, this is the moment for folks with a lot of organizational and social skill thinking to apply this to how you might design some of these flows for for AI, even though there are beep boop machines that we're really using.
B
Yeah. And I would say kind of last thought on that is the recent planning modes that have been released with Claude code and cursor and all of them have eliminated a vast majority of that of that drift. So they've been fantastic releases which I strongly recommend for anything beyond like a small file change. Planning is awesome.
A
Yeah, I love those features too. Okay, well John, this has been great. Where can we find you and how can we be helpful?
B
Yeah, I'm on Egghead IO that is I have tons of courses on AI tooling. I teach workshops through Egghead IO. I send a newsletter out every week called AI Dev Essentials. You can find me on X and other platforms as well under my name and that's it. I love to talk with anyone about all this stuff. My workshops are fun and we talk go way deeper into this super advanced stuff. So yeah, right.
A
And then maybe some of us can shop your possibly to be created Christmas and holiday decorations site. So you let us know. You let us know. If that goes live, we'll drop into the show Notes. Thank you so much for joining us and sharing your workflows.
B
Thanks Claire.
A
Thanks so much for watching. If you enjoyed this show, please like and subscribe here on YouTube or even better, leave us a comment with your thoughts. You can also find this podcast on Apple Podcasts, Spotify or your favorite podcast app. Please consider leaving us a rating and review which will help others find the show. You can see all our episodes and learn more about the show@howiaipod.com See you next time.
Host: Claire Vo
Guest: John Lindquist
Episode Date: January 26, 2026
In this episode, Claire Vo welcomes John Lindquist (educator, founder at Egghead.io, AI superuser) for a deep dive into advanced workflows with AI-powered coding assistants—specifically Anthropic’s Claude Code. The discussion is aimed at senior engineers and technical leaders eager to push beyond entry-level usage. John demonstrates practical techniques such as context preloading with diagrams, defining efficient terminal aliases, customizing automated quality hooks (stop hooks), and scripting custom command line interfaces (CLIs) for creative AI-driven engineering and documentation.
[00:15], [04:09], [04:37], [07:53]
Why Context Matters:
LLM-powered dev tools (like Claude) start from scratch with every session, unaware of codebase connections unless provided up front. Loading relevant context—especially as diagrams—drastically improves response quality and speed.
"Every time an AI starts, it has no memory, no idea of what's going on in your application... so you get a lot of really bad edits because it doesn't understand if it modifies A, how does that impact B."
—John Lindquist [04:37]
How to Structure Context:
/memory directory in your repo for markdown files rich with context (e.g. agents, flows, diagrams).append system prompt option.Benefits and Trade-Offs:
Fast, contextually-accurate outputs; the downside is increased upfront token usage.
"The time that you spend on these tasks is more valuable than that to me."
—John [08:51]
append system prompt before giving user instructions.[10:31], [12:16], [13:08]
[13:59], [15:10], [16:17]
"You can really pull the thread on documentation from one asset... It can start to become customer facing and all sorts of interesting things."
—Claire [17:05]
[19:28], [20:31]
[21:05], [23:30]
John builds small tools (like Sketch), using Gemini via CLI scripts—generating website mockups, theme variations, and more.
"If you were creating like a little WYSIWYG walkthrough web editor thing here... I would have gotten really distracted about how it looks... I actually like the constrained UI space for speed..."
—Claire [23:30]
Encourages a "just build it" philosophy and using dictation for fast idea capture.
"You have nothing, you can’t iterate on nothing."
—John [25:49]
[26:58], [31:22]
What Are Stop Hooks?
Custom scripts triggered when Claude "stops" (thinks work is done).
Examples:
Workflow Example:
If errors exist after code generation, the hook sends the error report to Claude for revision before proceeding.
How it Works:
settings.local.json)"So we set up this workflow of once a conversation is finished, check to see if any files have changed... And if there are none, then go ahead and commit. And this saves you a lot of the overhead in your mind of here’s all this extra stuff I have to do once something’s done."
—John [29:50]
[36:55], [38:15]
"These post tool call hooks or post stop hooks in Claude can also be used when you're working on non code. ...what do I want automated after Claude finishes writing my document?"
—Claire [38:15]
[41:13], [42:26]
"For one IDE to stand out above the other, they have to separate themselves... people are not going to give you much time to convince them."
—John [44:49]
[45:35], [46:32]
Senior engineers should view AI tools as virtual junior engineers:
"Everything I just said over the past 30 seconds is a prompt, which I could have just dictated, right? ...It blows my mind that people be hesitant for those sorts of tools."
—John [48:25]
Don’t focus on task-level automation but on scaling optimal, not just minimal, workflows.
On Editing vs. Authoring
"It's easier to edit than author. So let's get the authoring out of the way..."
—Claire [26:28]
On Better Commit Messages
"Commit messages used to be like second attempt or like please work word swear words."
—John [51:11]
On Resetting When Claude Goes Off the Rails
"Start over from ground zero and revising your original prompt is better than trying to steer it to where you are when you've drifted so far away."
—John [52:23]
On Planning Mode
"The recent planning modes that have been released with Claude code and cursor... have eliminated a vast majority of that drift."
—John [54:55]
/memory) with markdown and diagrams for AI preloading."My workshops are fun and we go way deeper into this super advanced stuff."
—John [55:22]
If you want to level up your AI coding toolkit—especially on big, complex projects—this episode is a practical, idea-rich, and inspiring resource.