← Back
Theo August 25, 2026 39m

Turn off Claude Code's Memory

Read full transcript 31 segments
  1. For AI to work effectively in a For AI to work effectively in a codebase, it needs to know what the codebase, it needs to know what the codebase, it needs to know what the codebase is, where things are, and how codebase is, where things are, and how codebase is, where things are, and how to get stuff done. I have found that a to get stuff done. I have found that a to get stuff done. I have found that a lot of people want to store this lot of people want to store this lot of people want to store this information in some special way that AI information in some special way that AI information in some special way that AI agents will operate with. Well, I've agents will operate with. Well, I've agents will operate with. Well, I've seen so many different systems and seen so many different systems and seen so many different systems and libraries and plugins and features and libraries and plugins and features and libraries and plugins and features and stuff that people have built over the stuff that people have built over the stuff that people have built over the last few years to try and automatically last few years to try and automatically last few years to try and automatically encode what they're doing in the encode what they're doing in the encode what they're doing in the codebase in some special way that'll codebase in some special way that'll codebase in some special way that'll make the agent always do what they want. make the agent always do what they want. make the agent always do what they want. I've even noticed that in claude code I've even noticed that in claude code I've even noticed that in claude code recently, it seems to use its memory a recently, it seems to use its memory a recently, it seems to use its memory a whole bunch where it will save things in whole bunch where it will save things in whole bunch where it will save things in some magic hidden file somewhere on the some magic hidden file somewhere on the some magic hidden file somewhere on the computer after you ask it to do computer after you ask it to do computer after you ask it to do something. And now it will keep randomly something. And now it will keep randomly something. And now it will keep randomly doing that forever. If you can't tell doing that forever. If you can't tell doing that forever. If you can't tell from how I've been spinning this so far, from how I've been spinning this so far, from how I've been spinning this so far, I'm not a fan of these memory systems. I I'm not a fan of these memory systems. I I'm not a fan of these memory systems. I don't think memory is the right place to don't think memory is the right place to don't think memory is the right place to keep track of how things should be done keep track of how things should be done keep track of how things should be done in your codebase. That worked okay with in your codebase. That worked okay with in your codebase. That worked okay with humans because previously before AI was humans because previously before AI was humans because previously before AI was writing all our code, the knowledge was writing all our code, the knowledge was writing all our code, the knowledge was always in the people's brains. They always in the people's brains. They always in the people's brains. They would try to put it other places like would try to put it other places like would try to put it other places like documentation and whatnot, but in the documentation and whatnot, but in the documentation and whatnot, but in the end, what we knew is what mattered. Now end, what we knew is what mattered. Now end, what we knew is what mattered. Now we're working with agents that forget we're working with agents that forget we're working with agents that forget everything when a new thread spins up.

  2. everything when a new thread spins up. everything when a new thread spins up. And our desperate attempts to have them And our desperate attempts to have them And our desperate attempts to have them automatically save things to be in the automatically save things to be in the automatically save things to be in the next run is just not great. It's not next run is just not great. It's not next run is just not great. It's not great at all. And I'm far from the only great at all. And I'm far from the only great at all. And I'm far from the only person who feels this way. This clip person who feels this way. This clip person who feels this way. This clip comes from a conversation that Mario, comes from a conversation that Mario, comes from a conversation that Mario, the creator of Pi, had with Armen, the the creator of Pi, had with Armen, the the creator of Pi, had with Armen, the creator of Flask. They now work together creator of Flask. They now work together creator of Flask. They now work together building a bunch of cool AI tooling building a bunch of cool AI tooling building a bunch of cool AI tooling stuff. And obviously, Pi is a super stuff. And obviously, Pi is a super stuff. And obviously, Pi is a super cool, powerful, useful piece of the new cool, powerful, useful piece of the new cool, powerful, useful piece of the new agentic engineering world. I love both agentic engineering world. I love both agentic engineering world. I love both of these guys. I especially love Mario. of these guys. I especially love Mario. of these guys. I especially love Mario. He's been awesome to chat with, and his He's been awesome to chat with, and his He's been awesome to chat with, and his understanding these things is great. And understanding these things is great. And understanding these things is great. And I have a feeling he's going to have some I have a feeling he's going to have some I have a feeling he's going to have some real fun spicy takes as we dive in. So, real fun spicy takes as we dive in. So, real fun spicy takes as we dive in. So, if you're trying to figure out how to if you're trying to figure out how to if you're trying to figure out how to make agents behave properly in your make agents behave properly in your make agents behave properly in your codebase or you just want to understand codebase or you just want to understand codebase or you just want to understand this stuff well enough to have better this stuff well enough to have better this stuff well enough to have better conversations with your co-workers and conversations with your co-workers and conversations with your co-workers and keep them from destroying your agentic keep them from destroying your agentic keep them from destroying your agentic systems with all these terrible memory systems with all these terrible memory systems with all these terrible memory things, I think you'll get a lot out of things, I think you'll get a lot out of things, I think you'll get a lot out of this video. But one other thing you this video. But one other thing you this video. But one other thing you should be able to get a lot out of is should be able to get a lot out of is should be able to get a lot out of is today's sponsor. Do you know what today's sponsor. Do you know what today's sponsor. Do you know what OpenAI, Anthropic, Cursor, and Thinking OpenAI, Anthropic, Cursor, and Thinking OpenAI, Anthropic, Cursor, and Thinking Machines all have in common? Because Machines all have in common? Because Machines all have in common? Because it's not just that they're trying to it's not just that they're trying to it's not just that they're trying to make models, it's that they all use make models, it's that they all use make models, it's that they all use today's sponsor, Work OS. You might be today's sponsor, Work OS. You might be today's sponsor, Work OS. You might be confused why so many big companies are confused why so many big companies are confused why so many big companies are choosing to use a product like work OS choosing to use a product like work OS choosing to use a product like work OS instead of rolling their own O, instead of rolling their own O, instead of rolling their own O, especially nowadays where agents can especially nowadays where agents can especially nowadays where agents can just do it for you, right? Well, kind just do it for you, right? Well, kind just do it for you, right? Well, kind of. They can go set up a sign-in page.

  3. of. They can go set up a sign-in page. of. They can go set up a sign-in page. They might even be able to start doing They might even be able to start doing They might even be able to start doing the Google Oath flows that you want. But the Google Oath flows that you want. But the Google Oath flows that you want. But as soon as you want real enterprise as soon as you want real enterprise as soon as you want real enterprise ready O so that businesses can sign into ready O so that businesses can sign into ready O so that businesses can sign into your applications, you're kind of your applications, you're kind of your applications, you're kind of screwed. That's where Work OS comes in screwed. That's where Work OS comes in screwed. That's where Work OS comes in with their admin portal, making it with their admin portal, making it with their admin portal, making it trivial for you to onboard real trivial for you to onboard real trivial for you to onboard real businesses onto your services. You send businesses onto your services. You send businesses onto your services. You send the company a link, they sign up with the company a link, they sign up with the company a link, they sign up with whatever identity provider they prefer, whatever identity provider they prefer, whatever identity provider they prefer, and now they're good to go in your app. and now they're good to go in your app. and now they're good to go in your app. So, Work Quest is Enterprise covered. So, Work Quest is Enterprise covered. So, Work Quest is Enterprise covered. Obviously, they also have traditional Obviously, they also have traditional Obviously, they also have traditional consumers covered with OKIT and all of consumers covered with OKIT and all of consumers covered with OKIT and all of the stuff that they need to do the stuff that they need to do the stuff that they need to do traditional OOTH and sign in with Google traditional OOTH and sign in with Google traditional OOTH and sign in with Google and whatever else. But there's a third and whatever else. But there's a third and whatever else. But there's a third type of user that they have covered, type of user that they have covered, type of user that they have covered, too. Agents. Turns out agents will need too. Agents. Turns out agents will need too. Agents. Turns out agents will need a way to sign into your stuff, too. And a way to sign into your stuff, too. And a way to sign into your stuff, too. And that's why work OS created OMD alongside that's why work OS created OMD alongside that's why work OS created OMD alongside a bunch of other important companies a bunch of other important companies a bunch of other important companies like Cloudflare, Firecrawl, Resend, like Cloudflare, Firecrawl, Resend, like Cloudflare, Firecrawl, Resend, Monday, Kernel, and so many other Monday, Kernel, and so many other Monday, Kernel, and so many other awesome businesses. As agents do more awesome businesses. As agents do more awesome businesses. As agents do more and more on our behalf, they need a way and more on our behalf, they need a way and more on our behalf, they need a way to sign up for us. And that's what OMD to sign up for us. And that's what OMD to sign up for us. And that's what OMD is here to introduce. So if you want to is here to introduce. So if you want to is here to introduce. So if you want to make your app usable by consumers, make your app usable by consumers, make your app usable by consumers, enterprise, and agents, get started enterprise, and agents, get started enterprise, and agents, get started today at swordv.link/workos. today at swordv.link/workos. today at swordv.link/workos. When I heard his first two sentences, I When I heard his first two sentences, I When I heard his first two sentences, I realized this was good enough to be a realized this was good enough to be a realized this was good enough to be a video, which is why it's a video now. So video, which is why it's a video now. So video, which is why it's a video now. So let's watch the whole thing together.

  4. let's watch the whole thing together. let's watch the whole thing together. Yeah, but coming back to memory systems, Yeah, but coming back to memory systems, Yeah, but coming back to memory systems, uh, so for coding, I don't want a memory uh, so for coding, I don't want a memory uh, so for coding, I don't want a memory system. Code is truth. Code is the system. Code is truth. Code is the system. Code is truth. Code is the ground truth. It's also evolving and I ground truth. It's also evolving and I ground truth. It's also evolving and I don't need another place that I need to don't need another place that I need to don't need another place that I need to maintain. I already have a code base to maintain. I already have a code base to maintain. I already have a code base to maintain. So for code, I don't need a maintain. So for code, I don't need a maintain. So for code, I don't need a memory system, right? memory system, right? memory system, right? >> Already endless bangers. I couldn't >> Already endless bangers. I couldn't >> Already endless bangers. I couldn't agree more here. Even things like agree more here. Even things like agree more here. Even things like comments often go out of date where a comments often go out of date where a comments often go out of date where a comment is left in some code because it comment is left in some code because it comment is left in some code because it has to do a certain thing a certain way. has to do a certain thing a certain way. has to do a certain thing a certain way. The thing changes, the comment doesn't. The thing changes, the comment doesn't. The thing changes, the comment doesn't. Now that comment isn't just like tech Now that comment isn't just like tech Now that comment isn't just like tech dead in the sense that it's sitting dead in the sense that it's sitting dead in the sense that it's sitting around doing nothing. It's now actively around doing nothing. It's now actively around doing nothing. It's now actively harmful because it steers people and harmful because it steers people and harmful because it steers people and agents the wrong way. Keeping your agents the wrong way. Keeping your agents the wrong way. Keeping your context up to date and keeping your context up to date and keeping your context up to date and keeping your information together and synced properly information together and synced properly information together and synced properly is a real difficult challenge. And the is a real difficult challenge. And the is a real difficult challenge. And the more you split up that knowledge, the more you split up that knowledge, the more you split up that knowledge, the more split brain problems you end up more split brain problems you end up more split brain problems you end up with where if you change something in with where if you change something in with where if you change something in one place and you forget to change it in one place and you forget to change it in one place and you forget to change it in all the others, everything falls apart. all the others, everything falls apart. all the others, everything falls apart. And this is easier than ever in the AI And this is easier than ever in the AI And this is easier than ever in the AI era because people will write these slop era because people will write these slop era because people will write these slop markdown plan files, leave them in the markdown plan files, leave them in the markdown plan files, leave them in the repo, and they go super out of date. I'm repo, and they go super out of date. I'm repo, and they go super out of date. I'm even guilty of this with Lake Bet. I've even guilty of this with Lake Bet. I've even guilty of this with Lake Bet. I've been meaning to go and trim out all of been meaning to go and trim out all of been meaning to go and trim out all of those. It's so easy to context yourself those. It's so easy to context yourself those. It's so easy to context yourself to hell if you let things that shouldn't to hell if you let things that shouldn't to hell if you let things that shouldn't be in your context be there because be in your context be there because be in your context be there because those will mislead the model with things those will mislead the model with things those will mislead the model with things that haven't been true for sometimes that haven't been true for sometimes that haven't been true for sometimes months or years even. models are really months or years even. models are really months or years even. models are really good at kind of understanding the code good at kind of understanding the code good at kind of understanding the code structure and the code style you have structure and the code style you have structure and the code style you have just based on reading one or two files just based on reading one or two files just based on reading one or two files and if you have that in order then you and if you have that in order then you and if you have that in order then you don't need an HSMD for it to follow your

  5. don't need an HSMD for it to follow your don't need an HSMD for it to follow your coding style or whatever and you might coding style or whatever and you might coding style or whatever and you might give it a map of where things are which give it a map of where things are which give it a map of where things are which is just a list of folders and short is just a list of folders and short is just a list of folders and short descriptions that's fine that's easy to descriptions that's fine that's easy to descriptions that's fine that's easy to maintain by the clanker itself but maintain by the clanker itself but maintain by the clanker itself but anything above that like using anything above that like using anything above that like using embeddings and using a and all that embeddings and using a and all that embeddings and using a and all that stuff I mean you can if you want to stuff I mean you can if you want to stuff I mean you can if you want to waste time but I'm pretty sure you've waste time but I'm pretty sure you've waste time but I'm pretty sure you've never done an evaluation if that never done an evaluation if that never done an evaluation if that actually produces better outputs and I actually produces better outputs and I actually produces better outputs and I guarantee you it does not. guarantee you it does not. guarantee you it does not. >> Yep. I have a silly way of verifying >> Yep. I have a silly way of verifying >> Yep. I have a silly way of verifying that he is correct about this. Look at that he is correct about this. Look at that he is correct about this. Look at Cursor. Whether or not you like or hate Cursor. Whether or not you like or hate Cursor. Whether or not you like or hate Cursor, whether or not you like or hate Cursor, whether or not you like or hate Cursor, whether or not you like or hate AI, I hope we can all agree that the AI, I hope we can all agree that the AI, I hope we can all agree that the Cursor team knows what the [ __ ] they're Cursor team knows what the [ __ ] they're Cursor team knows what the [ __ ] they're doing. Like, at the absolute least, in doing. Like, at the absolute least, in doing. Like, at the absolute least, in particular, their ability to get models particular, their ability to get models particular, their ability to get models to behave well in code bases is to behave well in code bases is to behave well in code bases is unprecedented. And a lot of that back in unprecedented. And a lot of that back in unprecedented. And a lot of that back in the day came from their crazy as and the day came from their crazy as and the day came from their crazy as and their systems where they would get all their systems where they would get all their systems where they would get all of the code base mapped in a way where of the code base mapped in a way where of the code base mapped in a way where they could dynamically feed the right they could dynamically feed the right they could dynamically feed the right context to the agent. Around this era, context to the agent. Around this era, context to the agent. Around this era, Michael, the CEO of Kurser's favorite Michael, the CEO of Kurser's favorite Michael, the CEO of Kurser's favorite thing to talk about is how context thing to talk about is how context thing to talk about is how context windows are going to get bigger and windows are going to get bigger and windows are going to get bigger and bigger until you can fit your whole bigger until you can fit your whole bigger until you can fit your whole giant code base in the context of a giant code base in the context of a giant code base in the context of a model and then it will know everything model and then it will know everything model and then it will know everything and it'll make the right changes. It's and it'll make the right changes. It's and it'll make the right changes. It's almost funny in retrospect because we've almost funny in retrospect because we've almost funny in retrospect because we've went so far the other direction. But you went so far the other direction. But you went so far the other direction. But you have to remember that a lot of the job have to remember that a lot of the job have to remember that a lot of the job of cursor was to take these LLMs that at of cursor was to take these LLMs that at of cursor was to take these LLMs that at the time just completed messages and the time just completed messages and the time just completed messages and give them everything they needed in give them everything they needed in give them everything they needed in order to make changes in a codebase.

  6. order to make changes in a codebase. order to make changes in a codebase. Cursor was the company that got models Cursor was the company that got models Cursor was the company that got models to to really do more with code. And at to to really do more with code. And at to to really do more with code. And at that time the labs would work with that time the labs would work with that time the labs would work with cursor to try and make their models work cursor to try and make their models work cursor to try and make their models work better in that type of setup. And then better in that type of setup. And then better in that type of setup. And then clad code happened and it proved that clad code happened and it proved that clad code happened and it proved that the best solution here isn't giving all the best solution here isn't giving all the best solution here isn't giving all of the context in this super fancy of the context in this super fancy of the context in this super fancy dynamic graph-based system to the model. dynamic graph-based system to the model. dynamic graph-based system to the model. Turns out if you just give it the tools Turns out if you just give it the tools Turns out if you just give it the tools it needs and bash, it can find what it it needs and bash, it can find what it it needs and bash, it can find what it needs relatively well. And once the needs relatively well. And once the needs relatively well. And once the model started being trained to do that, model started being trained to do that, model started being trained to do that, all of these dynamic fancy context all of these dynamic fancy context all of these dynamic fancy context systems stop making sense. And even systems stop making sense. And even systems stop making sense. And even cursor, who built like a lot of their cursor, who built like a lot of their cursor, who built like a lot of their business around the code traversal [ __ ] business around the code traversal [ __ ] business around the code traversal [ __ ] that they built, has entirely moved away that they built, has entirely moved away that they built, has entirely moved away from that. like they just don't care from that. like they just don't care from that. like they just don't care anymore. So if you think cursor is anymore. So if you think cursor is anymore. So if you think cursor is entirely wrong about this move in a entirely wrong about this move in a entirely wrong about this move in a space that they literally invented, then space that they literally invented, then space that they literally invented, then sure, go make a fancy a to help your sure, go make a fancy a to help your sure, go make a fancy a to help your model traverse your codebase via a fancy model traverse your codebase via a fancy model traverse your codebase via a fancy graph instead of with bash tools. But if graph instead of with bash tools. But if graph instead of with bash tools. But if you have any faith at all in the you have any faith at all in the you have any faith at all in the industry, doing things that are better industry, doing things that are better industry, doing things that are better because there's a reason for it, you because there's a reason for it, you because there's a reason for it, you should probably drop all of that because should probably drop all of that because should probably drop all of that because it just doesn't make sense anymore. It it just doesn't make sense anymore. It it just doesn't make sense anymore. It just straight up doesn't. I wish it did.

  7. just straight up doesn't. I wish it did. just straight up doesn't. I wish it did. Nope. It would be cool if there were Nope. It would be cool if there were Nope. It would be cool if there were harder engineering problems to solve harder engineering problems to solve harder engineering problems to solve here, but there just aren't. If you here, but there just aren't. If you here, but there just aren't. If you build a fancy context management system, build a fancy context management system, build a fancy context management system, instead of just giving the agent the instead of just giving the agent the instead of just giving the agent the tools it needs to find [ __ ] you're tools it needs to find [ __ ] you're tools it needs to find [ __ ] you're behind the curve now. You just are. It's behind the curve now. You just are. It's behind the curve now. You just are. It's not real. not real. not real. >> So for coding, don't need memory. I also >> So for coding, don't need memory. I also >> So for coding, don't need memory. I also have my own Slack bot in that case. Uh have my own Slack bot in that case. Uh have my own Slack bot in that case. Uh because again, I'm old. It's called mom because again, I'm old. It's called mom because again, I'm old. It's called mom master of mischief because it's at the master of mischief because it's at the master of mischief because it's at the root access to one of my servers and root access to one of my servers and root access to one of my servers and there it has access to the entire there it has access to the entire there it has access to the entire history of every channel it's in based history of every channel it's in based history of every channel it's in based by using jq uh on JSONL file an append by using jq uh on JSONL file an append by using jq uh on JSONL file an append only log basically of questions and only log basically of questions and only log basically of questions and answers or prompts in the systems answers or prompts in the systems answers or prompts in the systems responses and that basically gives gives responses and that basically gives gives responses and that basically gives gives it infinite memory. I think it infinite memory. I think it infinite memory. I think >> that is hilarious if you understand what >> that is hilarious if you understand what >> that is hilarious if you understand what he just said he does here. So for his he just said he does here. So for his he just said he does here. So for his custom chatbot he has in Slack that will custom chatbot he has in Slack that will custom chatbot he has in Slack that will like come in and answer questions and like come in and answer questions and like come in and answer questions and keep track of what's going on. He has it keep track of what's going on. He has it keep track of what's going on. He has it write every input and output to a single write every input and output to a single write every input and output to a single gigantic appendon JSON file and then he gigantic appendon JSON file and then he gigantic appendon JSON file and then he has it set up so that it can use jq to has it set up so that it can use jq to has it set up so that it can use jq to look things up and find things in there look things up and find things in there look things up and find things in there instead of a memory system. It just has instead of a memory system. It just has instead of a memory system. It just has literally everything that's ever literally everything that's ever literally everything that's ever happened. I think that memory makes more happened. I think that memory makes more happened. I think that memory makes more sense in chat contexts, especially with sense in chat contexts, especially with sense in chat contexts, especially with how memory is improved in something like how memory is improved in something like how memory is improved in something like chat GBT for example. It is impressive chat GBT for example. It is impressive chat GBT for example. It is impressive that it can find the right thing in a that it can find the right thing in a that it can find the right thing in a much less like wellmapped space than in much less like wellmapped space than in much less like wellmapped space than in code. Like in a codebase, if I click a code. Like in a codebase, if I click a code. Like in a codebase, if I click a button and it doesn't do what I expect,

  8. button and it doesn't do what I expect, button and it doesn't do what I expect, you can programmatically trace from you can programmatically trace from you can programmatically trace from where the button is that I clicked to where the button is that I clicked to where the button is that I clicked to every other thing that gets touched. But every other thing that gets touched. But every other thing that gets touched. But if I ask a question about my shoulder if I ask a question about my shoulder if I ask a question about my shoulder hurting, it might be unintuitive that my hurting, it might be unintuitive that my hurting, it might be unintuitive that my questions a month ago about keyboards questions a month ago about keyboards questions a month ago about keyboards might be relevant because the new might be relevant because the new might be relevant because the new keyboard I got might not be set up keyboard I got might not be set up keyboard I got might not be set up properly or maybe the desk I bought is properly or maybe the desk I bought is properly or maybe the desk I bought is too high and it's causing me to have bad too high and it's causing me to have bad too high and it's causing me to have bad posture. There is no direct path from posture. There is no direct path from posture. There is no direct path from one thing to the other in these more one thing to the other in these more one thing to the other in these more human problems where there is a very human problems where there is a very human problems where there is a very direct one in the code bases. So, I have direct one in the code bases. So, I have direct one in the code bases. So, I have found that memory as a way of tagging found that memory as a way of tagging found that memory as a way of tagging relevant information that is user relevant information that is user relevant information that is user specific can be a little useful. And I'm specific can be a little useful. And I'm specific can be a little useful. And I'm coming around from this as like the coming around from this as like the coming around from this as like the anti-memory person that refused to put anti-memory person that refused to put anti-memory person that refused to put memory in T3 chat that would talk a lot memory in T3 chat that would talk a lot memory in T3 chat that would talk a lot of [ __ ] about how chatg did it because I of [ __ ] about how chatg did it because I of [ __ ] about how chatg did it because I genuinely believe the memory genuinely believe the memory genuinely believe the memory implementation in GPT40 resulted in implementation in GPT40 resulted in implementation in GPT40 resulted in severe mental health damage to a lot of severe mental health damage to a lot of severe mental health damage to a lot of people because once they got the model people because once they got the model people because once they got the model working in a way where it was in its working in a way where it was in its working in a way where it was in its like dangerous psychosis state the like dangerous psychosis state the like dangerous psychosis state the memory would force it to stay there and memory would force it to stay there and memory would force it to stay there and that's the part of memory I don't like that's the part of memory I don't like that's the part of memory I don't like is when answers stop being useful is when answers stop being useful is when answers stop being useful because they're too full of your because they're too full of your because they're too full of your context. That is bad. And I've had this context. That is bad. And I've had this context. That is bad. And I've had this even in my own general use of chat GPT.

  9. even in my own general use of chat GPT. even in my own general use of chat GPT. I have found that sometimes when I ask a I have found that sometimes when I ask a I have found that sometimes when I ask a question, it gets too into the weeds of question, it gets too into the weeds of question, it gets too into the weeds of my own things I've asked for in the my own things I've asked for in the my own things I've asked for in the past, and I'll often just say, "My past, and I'll often just say, "My past, and I'll often just say, "My friend has this problem to get it to friend has this problem to get it to friend has this problem to get it to stop pulling my memory in as stop pulling my memory in as stop pulling my memory in as aggressively." Anyways, let's hear what aggressively." Anyways, let's hear what aggressively." Anyways, let's hear what else our friends here have to say. I else our friends here have to say. I else our friends here have to say. I think that loops back kind of to the pi think that loops back kind of to the pi think that loops back kind of to the pi minimalism because around I don't know minimalism because around I don't know minimalism because around I don't know July or August both me and Arlene July or August both me and Arlene July or August both me and Arlene actually discovered through different uh actually discovered through different uh actually discovered through different uh means that bash is all you need in the means that bash is all you need in the means that bash is all you need in the sense that the models are inherently sense that the models are inherently sense that the models are inherently trained to use bash now trained to use bash now trained to use bash now >> bash basically is is a programming >> bash basically is is a programming >> bash basically is is a programming language one but it is one anyways language one but it is one anyways language one but it is one anyways >> and so the can just build its own stuff >> and so the can just build its own stuff >> and so the can just build its own stuff and I think the the the interesting part and I think the the the interesting part and I think the the the interesting part of like using pi or using a very very of like using pi or using a very very of like using pi or using a very very very small like pi is interesting also very small like pi is interesting also very small like pi is interesting also because it sort of extends itself as an because it sort of extends itself as an because it sort of extends itself as an example, what do you want to connect it example, what do you want to connect it example, what do you want to connect it to? Right? And so one of the things once to? Right? And so one of the things once to? Right? And so one of the things once I connect it to is Sentry because like I I connect it to is Sentry because like I I connect it to is Sentry because like I I have very useful data in Sentry, but I I have very useful data in Sentry, but I I have very useful data in Sentry, but I don't use a Century MCP. Like I know don't use a Century MCP. Like I know don't use a Century MCP. Like I know that David hates me for that, but I that David hates me for that, but I that David hates me for that, but I don't use the Sentry MCP. I basically don't use the Sentry MCP. I basically don't use the Sentry MCP. I basically went to to my coding agent and said went to to my coding agent and said went to to my coding agent and said like, "Hey, we need this data from like, "Hey, we need this data from like, "Hey, we need this data from Century." And I always need it in this Century." And I always need it in this Century." And I always need it in this and this form. Let's build ourselves a and this form. Let's build ourselves a and this form. Let's build ourselves a skill. And all the skill really is is skill. And all the skill really is is skill. And all the skill really is is like here's a prompt that it can load on like here's a prompt that it can load on like here's a prompt that it can load on demand, but it also encompasses it own demand, but it also encompasses it own demand, but it also encompasses it own tools, right? And so um I solved the tools, right? And so um I solved the tools, right? And so um I solved the authentication the way that I liked it.

  10. authentication the way that I liked it. authentication the way that I liked it. I also pulled the data down in the form I also pulled the data down in the form I also pulled the data down in the form that I usually wanted. And I think this that I usually wanted. And I think this that I usually wanted. And I think this sort of like MCP versus tool situation sort of like MCP versus tool situation sort of like MCP versus tool situation is a little bit weird because like at is a little bit weird because like at is a little bit weird because like at the at the core of it, the file system the at the core of it, the file system the at the core of it, the file system and like the tools themselves are one and like the tools themselves are one and like the tools themselves are one thing, but the composability really is thing, but the composability really is thing, but the composability really is the main one. How does my sentry skill the main one. How does my sentry skill the main one. How does my sentry skill work in practice? where it pulls down a work in practice? where it pulls down a work in practice? where it pulls down a bunch of JSON files, some of which it bunch of JSON files, some of which it bunch of JSON files, some of which it loads in the context, but if it pulls loads in the context, but if it pulls loads in the context, but if it pulls too much, I'm basically capping it and too much, I'm basically capping it and too much, I'm basically capping it and saying like, hey, I showed you three saying like, hey, I showed you three saying like, hey, I showed you three items, but I downloaded 52 into this items, but I downloaded 52 into this items, but I downloaded 52 into this JSON file if I think the structure looks JSON file if I think the structure looks JSON file if I think the structure looks correct and look into this JSON file, correct and look into this JSON file, correct and look into this JSON file, right? So, it's basically this idea of right? So, it's basically this idea of right? So, it's basically this idea of like how can I build tools that are very like how can I build tools that are very like how can I build tools that are very very context efficient so that it can very context efficient so that it can very context efficient so that it can then combine them together with other then combine them together with other then combine them together with other things. things. things. >> Not as strongly in agreement with that >> Not as strongly in agreement with that >> Not as strongly in agreement with that part, but there are layers here that are part, but there are layers here that are part, but there are layers here that are very good. I think people reach to make very good. I think people reach to make very good. I think people reach to make skills a little bit too aggressively skills a little bit too aggressively skills a little bit too aggressively overall. I also think they should have overall. I also think they should have overall. I also think they should have touched on like the agent and claude MD touched on like the agent and claude MD touched on like the agent and claude MD files a bit more here too. I have a lot files a bit more here too. I have a lot files a bit more here too. I have a lot to say about that. So before I do it, I to say about that. So before I do it, I to say about that. So before I do it, I want to read the post that led to want to read the post that led to want to read the post that led to everybody linking this. The two authors everybody linking this. The two authors everybody linking this. The two authors of PI share three design principles in of PI share three design principles in of PI share three design principles in this three-minute video. First, coding this three-minute video. First, coding this three-minute video. First, coding doesn't need a separate memory system.

  11. doesn't need a separate memory system. doesn't need a separate memory system. Second, bash is all you need. And third, Second, bash is all you need. And third, Second, bash is all you need. And third, load tool outputs into context only when load tool outputs into context only when load tool outputs into context only when needed. If the tool output isn't needed, needed. If the tool output isn't needed, needed. If the tool output isn't needed, then it shouldn't be a tool call. It then it shouldn't be a tool call. It then it shouldn't be a tool call. It should be a bash call where it just should be a bash call where it just should be a bash call where it just writes to a file and then cats part of writes to a file and then cats part of writes to a file and then cats part of one of them. Like let the model do this one of them. Like let the model do this one of them. Like let the model do this itself. I think that smart models, itself. I think that smart models, itself. I think that smart models, especially like the recent crop, are especially like the recent crop, are especially like the recent crop, are trained well enough to know how to not trained well enough to know how to not trained well enough to know how to not overload their context. That's not our overload their context. That's not our overload their context. That's not our problem. It's almost weird to have that problem. It's almost weird to have that problem. It's almost weird to have that included here because like we shouldn't included here because like we shouldn't included here because like we shouldn't have to think about those details. have to think about those details. have to think about those details. First, I want to see just how much the First, I want to see just how much the First, I want to see just how much the memory that I left on in Clawed Code is memory that I left on in Clawed Code is memory that I left on in Clawed Code is screwing with me right now. And the screwing with me right now. And the screwing with me right now. And the second is I want to show you how I think second is I want to show you how I think second is I want to show you how I think about this overall slightly differently. about this overall slightly differently. about this overall slightly differently. Okay, now that we're done with the Okay, now that we're done with the Okay, now that we're done with the video, I can take off the headphones and video, I can take off the headphones and video, I can take off the headphones and we can dig into my own world working we can dig into my own world working we can dig into my own world working with T3 code. So, most of my work on T3 with T3 code. So, most of my work on T3 with T3 code. So, most of my work on T3 code is on this particular box, BB1. code is on this particular box, BB1. code is on this particular box, BB1. It's my framework desktop. This box has It's my framework desktop. This box has It's my framework desktop. This box has hundreds if not thousands of threads hundreds if not thousands of threads hundreds if not thousands of threads that I've done with both Fable and Soul that I've done with both Fable and Soul that I've done with both Fable and Soul on it with Cloud Code and with Codeex on it with Cloud Code and with Codeex on it with Cloud Code and with Codeex respectively. And I've noticed recently respectively. And I've noticed recently respectively. And I've noticed recently that Fable and Opus have been saving that Fable and Opus have been saving that Fable and Opus have been saving things in memory and mentioning that a things in memory and mentioning that a things in memory and mentioning that a lot. So one of those places to start is lot. So one of those places to start is lot. So one of those places to start is to just ask what memories do you have of to just ask what memories do you have of to just ask what memories do you have of this project? I want to understand what this project? I want to understand what this project? I want to understand what memory has been stored throughout my memory has been stored throughout my memory has been stored throughout my time working on T3 code with Cloud Code.

  12. time working on T3 code with Cloud Code. time working on T3 code with Cloud Code. Let's see what it finds. Okay, Let's see what it finds. Okay, Let's see what it finds. Okay, apparently on this box I only have one apparently on this box I only have one apparently on this box I only have one memory from 9 days ago. It's a spec that memory from 9 days ago. It's a spec that memory from 9 days ago. It's a spec that I was working on. I am very confused why I was working on. I am very confused why I was working on. I am very confused why this random spec I was working on ended this random spec I was working on ended this random spec I was working on ended up in memory. This is a feature that I'm up in memory. This is a feature that I'm up in memory. This is a feature that I'm not even like actually planning on not even like actually planning on not even like actually planning on shipping this like like we didn't get shipping this like like we didn't get shipping this like like we didn't get very far in building it either. The fact very far in building it either. The fact very far in building it either. The fact that this is the only thing stored in my that this is the only thing stored in my that this is the only thing stored in my memory and that this is stored in memory memory and that this is stored in memory memory and that this is stored in memory in the first place. Incredibly stupid. I in the first place. Incredibly stupid. I in the first place. Incredibly stupid. I will ask on my own machine now. Now I'm will ask on my own machine now. Now I'm will ask on my own machine now. Now I'm curious and a little annoyed. This will curious and a little annoyed. This will curious and a little annoyed. This will be interesting. Interesting. I picked be interesting. Interesting. I picked be interesting. Interesting. I picked one of the I have multiple clones of T3 one of the I have multiple clones of T3 one of the I have multiple clones of T3 code on this machine. So it looks like code on this machine. So it looks like code on this machine. So it looks like it picked a random one deep in like the it picked a random one deep in like the it picked a random one deep in like the cloud/ projects. That's to summarize all cloud/ projects. That's to summarize all cloud/ projects. That's to summarize all the memories. It's actually really funny the memories. It's actually really funny the memories. It's actually really funny that it included this cuz earlier I was that it included this cuz earlier I was that it included this cuz earlier I was trying to set the output style to trying to set the output style to trying to set the output style to concise in cloud code. It's a new concise in cloud code. It's a new concise in cloud code. It's a new feature they just added and when I set feature they just added and when I set feature they just added and when I set it, it didn't update the global file it, it didn't update the global file it, it didn't update the global file which was really confusing and annoying which was really confusing and annoying which was really confusing and annoying to me. Apparently, it decided to save to me. Apparently, it decided to save to me. Apparently, it decided to save that as a memory. Lakebed has many that as a memory. Lakebed has many that as a memory. Lakebed has many different memories saved across five different memories saved across five different memories saved across five project directories. Railway topology, project directories. Railway topology, project directories. Railway topology, locked work trees for long codex runs, locked work trees for long codex runs, locked work trees for long codex runs, Lakewood file blob storage plan and it's Lakewood file blob storage plan and it's Lakewood file blob storage plan and it's judged comparisons, V8 isolate layer judged comparisons, V8 isolate layer judged comparisons, V8 isolate layer planning, launch audits, god file planning, launch audits, god file planning, launch audits, god file cleanup refactors. Interesting.

  13. cleanup refactors. Interesting. cleanup refactors. Interesting. Apparently T3 code again on this machine Apparently T3 code again on this machine Apparently T3 code again on this machine has a hard rule to never touch preview has a hard rule to never touch preview has a hard rule to never touch preview or production mobile builds. T3 connect or production mobile builds. T3 connect or production mobile builds. T3 connect desktop already handles the full flow to desktop already handles the full flow to desktop already handles the full flow to server baster race hazard. Huh. This is server baster race hazard. Huh. This is server baster race hazard. Huh. This is garbage. Okay, this one's annoying garbage. Okay, this one's annoying garbage. Okay, this one's annoying because I do the ping round because I do the ping round because I do the ping round modernizations to test new models. So if modernizations to test new models. So if modernizations to test new models. So if it is storing these things in memory, it is storing these things in memory, it is storing these things in memory, that makes that test less pure and that makes that test less pure and that makes that test less pure and really annoying. Benchmarks, I want LM really annoying. Benchmarks, I want LM really annoying. Benchmarks, I want LM API calls configured minimally. Effort API calls configured minimally. Effort API calls configured minimally. Effort only provider defaults. GBD56 effort is only provider defaults. GBD56 effort is only provider defaults. GBD56 effort is a soft hint. Deep reasoning needs a dash a soft hint. Deep reasoning needs a dash a soft hint. Deep reasoning needs a dash pro mode. Useless. None of this should pro mode. Useless. None of this should pro mode. Useless. None of this should be saved here. This can change at any be saved here. This can change at any be saved here. This can change at any time. And then other random projects. It time. And then other random projects. It time. And then other random projects. It has context on my fork of moonlight. It has context on my fork of moonlight. It has context on my fork of moonlight. It saved a bunch of things around the fish saved a bunch of things around the fish saved a bunch of things around the fish slop rebuild, which is annoying. Again, slop rebuild, which is annoying. Again, slop rebuild, which is annoying. Again, that's a benchmark. I do. It remembered that's a benchmark. I do. It remembered that's a benchmark. I do. It remembered how I set up my bridge that keeps track how I set up my bridge that keeps track how I set up my bridge that keeps track of the state of my washer and dryer in of the state of my washer and dryer in of the state of my washer and dryer in Discord. Why is that saved in my memory?

  14. Discord. Why is that saved in my memory? Discord. Why is that saved in my memory? CC usage pricing overrides. CC usage pricing overrides. CC usage pricing overrides. None of this needs to be my [ __ ] None of this needs to be my [ __ ] None of this needs to be my [ __ ] memory. This is pissing me off. Okay, memory. This is pissing me off. Okay, memory. This is pissing me off. Okay, there we go. I have multiple clones of there we go. I have multiple clones of there we go. I have multiple clones of T3 code on this box and the main one has T3 code on this box and the main one has T3 code on this box and the main one has 45 memories. Remembers that I was 45 memories. Remembers that I was 45 memories. Remembers that I was working on an onboarding overhaul. that working on an onboarding overhaul. that working on an onboarding overhaul. that I was working on better babysit I was working on better babysit I was working on better babysit monitoring flows in app that I had monitoring flows in app that I had monitoring flows in app that I had drafts for the sidebar overhaul and drafts for the sidebar overhaul and drafts for the sidebar overhaul and liked variant C. This is slop. All of liked variant C. This is slop. All of liked variant C. This is slop. All of this is garbage. Realistically, how much this is garbage. Realistically, how much this is garbage. Realistically, how much of the memory around T3 code you think of the memory around T3 code you think of the memory around T3 code you think is actually useful? Let's see what it is actually useful? Let's see what it is actually useful? Let's see what it has to say. Th this has broken me. I was has to say. Th this has broken me. I was has to say. Th this has broken me. I was already kind of skeptical, but I hadn't already kind of skeptical, but I hadn't already kind of skeptical, but I hadn't taken the time to look at what it was taken the time to look at what it was taken the time to look at what it was doing. I'm going to go turn off memory doing. I'm going to go turn off memory doing. I'm going to go turn off memory on cloud code across all of my machines on cloud code across all of my machines on cloud code across all of my machines because this is [ __ ] useless. Should because this is [ __ ] useless. Should because this is [ __ ] useless. Should I ask how often are memories actually I ask how often are memories actually I ask how often are memories actually being used in sessions? I'll ask that being used in sessions? I'll ask that being used in sessions? I'll ask that next because you have my curiosity. next because you have my curiosity. next because you have my curiosity. Honest take maybe a third of it earns Honest take maybe a third of it earns Honest take maybe a third of it earns its keep today. The 45 files store in its keep today. The 45 files store in its keep today. The 45 files store in the main clone has three distinct decay the main clone has three distinct decay the main clone has three distinct decay problems. First, we have the redundant problems. First, we have the redundant problems. First, we have the redundant with agents MD. 10 files now dead with agents MD. 10 files now dead with agents MD. 10 files now dead weight. Kill by pattern. Single origin weight. Kill by pattern. Single origin weight. Kill by pattern. Single origin dev. No continuous animations. No sleep dev. No continuous animations. No sleep dev. No continuous animations. No sleep pulling cloning real state with vacuum pulling cloning real state with vacuum pulling cloning real state with vacuum into pairing URLs work tree ports all of into pairing URLs work tree ports all of into pairing URLs work tree ports all of that graduated into agents MD which that graduated into agents MD which that graduated into agents MD which every agent reads anyways. What's funny every agent reads anyways. What's funny every agent reads anyways. What's funny is a lot of these things were in the is a lot of these things were in the is a lot of these things were in the agent MD before the memory was created.

  15. agent MD before the memory was created. agent MD before the memory was created. It just did that. Next categories It just did that. Next categories It just did that. Next categories shipped feature designs 12 files mostly shipped feature designs 12 files mostly shipped feature designs 12 files mostly expired per project environment modes expired per project environment modes expired per project environment modes remote desktop updates open and editor remote desktop updates open and editor remote desktop updates open and editor favicon fixes. Like why are specific PR favicon fixes. Like why are specific PR favicon fixes. Like why are specific PR numbers finding their way in my [ __ ] numbers finding their way in my [ __ ] numbers finding their way in my [ __ ] memory? That's enough of a reason to memory? That's enough of a reason to memory? That's enough of a reason to know that this is garbage. There's a know that this is garbage. There's a know that this is garbage. There's a bunch of point in time states that are bunch of point in time states that are bunch of point in time states that are actively risky like monitor JSON schema actively risky like monitor JSON schema actively risky like monitor JSON schema drift remote PR portfolio out of memory drift remote PR portfolio out of memory drift remote PR portfolio out of memory crisis hut paths background policy scope crisis hut paths background policy scope crisis hut paths background policy scope wiring gap cla probe test leak wiring gap cla probe test leak wiring gap cla probe test leak processes. These describe a moment the processes. These describe a moment the processes. These describe a moment the drift got migrated or didn't. The PR's drift got migrated or didn't. The PR's drift got migrated or didn't. The PR's merged or didn't the leak got fixed or merged or didn't the leak got fixed or merged or didn't the leak got fixed or didn't. Okay, a bunch of these aren't didn't. Okay, a bunch of these aren't didn't. Okay, a bunch of these aren't durable. The fact that the version of durable. The fact that the version of durable. The fact that the version of the GitHub CLI we were using on this the GitHub CLI we were using on this the GitHub CLI we were using on this machine was out of date and I had to machine was out of date and I had to machine was out of date and I had to update it is not something that should update it is not something that should update it is not something that should be in my [ __ ] memory. I updated it. be in my [ __ ] memory. I updated it. be in my [ __ ] memory. I updated it. The problem is solved. Go the [ __ ] away. The problem is solved. Go the [ __ ] away. The problem is solved. Go the [ __ ] away. I don't need live plan URLs for I don't need live plan URLs for I don't need live plan URLs for unshipped work. All of this is bad. One unshipped work. All of this is bad. One unshipped work. All of this is bad. One of the memories on this machine is from of the memories on this machine is from of the memories on this machine is from when I was trying to add Muse code when I was trying to add Muse code when I was trying to add Muse code support to T3 code in my video. It saved support to T3 code in my video. It saved support to T3 code in my video. It saved a bunch of [ __ ] here. Meta's Muse Code a bunch of [ __ ] here. Meta's Muse Code a bunch of [ __ ] here. Meta's Muse Code CLI headless integration surface CLI headless integration surface CLI headless integration surface discovered by probing mdash. No public discovered by probing mdash. No public discovered by probing mdash. No public docs exist. Meta Muse code CLI Muse docs exist. Meta Muse code CLI Muse docs exist. Meta Muse code CLI Muse self-updating bash launcher and SL local self-updating bash launcher and SL local self-updating bash launcher and SL local bin version string Muse code yada yada bin version string Muse code yada yada bin version string Muse code yada yada no public docs everything below is no public docs everything below is no public docs everything below is discovered by probing on this date.

  16. discovered by probing on this date. discovered by probing on this date. Headless mode multi-turn no ACP mode off Headless mode multi-turn no ACP mode off Headless mode multi-turn no ACP mode off models related and it links to another models related and it links to another models related and it links to another file. T3 connect desktop already file. T3 connect desktop already file. T3 connect desktop already complete. How the [ __ ] is that related? complete. How the [ __ ] is that related? complete. How the [ __ ] is that related? What? This is such slop. I feel like I'm What? This is such slop. I feel like I'm What? This is such slop. I feel like I'm reading outputs from like the set three reading outputs from like the set three reading outputs from like the set three hour. What the [ __ ] is this? This one hour. What the [ __ ] is this? This one hour. What the [ __ ] is this? This one was because I raged because it overrode was because I raged because it overrode was because I raged because it overrode one of the builds on my phone because it one of the builds on my phone because it one of the builds on my phone because it reused a name for the build and I was reused a name for the build and I was reused a name for the build and I was really annoyed. This is one of the many really annoyed. This is one of the many really annoyed. This is one of the many reasons I switched to using soul for iOS reasons I switched to using soul for iOS reasons I switched to using soul for iOS work. T3 Connect desktop already work. T3 Connect desktop already work. T3 Connect desktop already completed. Either desktop can already do completed. Either desktop can already do completed. Either desktop can already do the entire T3 Connect flow without the the entire T3 Connect flow without the the entire T3 Connect flow without the CLI. Signin, link toggle, and relay CLI. Signin, link toggle, and relay CLI. Signin, link toggle, and relay client installs are all in the bundled client installs are all in the bundled client installs are all in the bundled web UI. Why is this in? Oh, I know why. web UI. Why is this in? Oh, I know why. web UI. Why is this in? Oh, I know why. I was working on making the T3 Connect I was working on making the T3 Connect I was working on making the T3 Connect CLI work on Mac as a background process. CLI work on Mac as a background process. CLI work on Mac as a background process. And when I was working on that, I must And when I was working on that, I must And when I was working on that, I must have had a problem where it was confused have had a problem where it was confused have had a problem where it was confused because T3 Connect is supported inside because T3 Connect is supported inside because T3 Connect is supported inside of T3 Code 2. So if you're running the of T3 Code 2. So if you're running the of T3 Code 2. So if you're running the desktop app, you can control T3 Code desktop app, you can control T3 Code desktop app, you can control T3 Code remotely on your phone. But if you want remotely on your phone. But if you want remotely on your phone. But if you want to have it working as a background to have it working as a background to have it working as a background process on like a Linux machine or on process on like a Linux machine or on process on like a Linux machine or on like a Mac Mini that you don't even open like a Mac Mini that you don't even open like a Mac Mini that you don't even open the app on, I wanted to set up the CLI the app on, I wanted to set up the CLI the app on, I wanted to set up the CLI for that. We already have it on Linux.

  17. for that. We already have it on Linux. for that. We already have it on Linux. We didn't have it on Mac OS. And at some We didn't have it on Mac OS. And at some We didn't have it on Mac OS. And at some point in my back and forth specking this point in my back and forth specking this point in my back and forth specking this out, it decided that it has to save in out, it decided that it has to save in out, it decided that it has to save in memory for the desktop app has that memory for the desktop app has that memory for the desktop app has that functionality. What the [ __ ] T3 Connect functionality. What the [ __ ] T3 Connect functionality. What the [ __ ] T3 Connect multi-process hazard. Two T3 servers multi-process hazard. Two T3 servers multi-process hazard. Two T3 servers sharing one base directory race over the sharing one base directory race over the sharing one base directory race over the same environment identity, relay link, same environment identity, relay link, same environment identity, relay link, and runtime state files. Who [ __ ] and runtime state files. Who [ __ ] and runtime state files. Who [ __ ] cares? cares? cares? It has a topology for how I use Railway. It has a topology for how I use Railway. It has a topology for how I use Railway. As I can't help but notice that the As I can't help but notice that the As I can't help but notice that the older memories don't have dates, older memories don't have dates, older memories don't have dates, longunning codecs and agent builds in longunning codecs and agent builds in longunning codecs and agent builds in the claude/work trees get autop pruned the claude/work trees get autop pruned the claude/work trees get autop pruned midrun use locked work trees outside of midrun use locked work trees outside of midrun use locked work trees outside of that directory. that directory. that directory. Gross. Probably actually useful in here Gross. Probably actually useful in here Gross. Probably actually useful in here otherwise though. Blob plan comparison. otherwise though. Blob plan comparison. otherwise though. Blob plan comparison. Why did it save the comparison between Why did it save the comparison between Why did it save the comparison between two plans that I did 3 months ago? I'm two plans that I did 3 months ago? I'm two plans that I did 3 months ago? I'm just going to keep raging if I sit here just going to keep raging if I sit here just going to keep raging if I sit here reading through it cuz like all of this reading through it cuz like all of this reading through it cuz like all of this is slop. Okay, I'm going to have Fable is slop. Okay, I'm going to have Fable is slop. Okay, I'm going to have Fable go across my fleet, disable memory and go across my fleet, disable memory and go across my fleet, disable memory and cloud code across all of the machines, cloud code across all of the machines, cloud code across all of the machines, archive the ones that I have, label them archive the ones that I have, label them archive the ones that I have, label them correctly, and then delete the memories correctly, and then delete the memories correctly, and then delete the memories because I have concluded this is because I have concluded this is because I have concluded this is absolute [ __ ] garbage. I knew it absolute [ __ ] garbage. I knew it absolute [ __ ] garbage. I knew it would be bad, but holy [ __ ] it is much would be bad, but holy [ __ ] it is much would be bad, but holy [ __ ] it is much worse than I thought. Even funnier, the worse than I thought. Even funnier, the worse than I thought. Even funnier, the memories get written far more than they memories get written far more than they memories get written far more than they get read. Across every T3 code get read. Across every T3 code get read. Across every T3 code transcript on this machine, there's over transcript on this machine, there's over transcript on this machine, there's over 355 sessions just here. Only 19 of them 355 sessions just here. Only 19 of them 355 sessions just here. Only 19 of them ever opened an individual memory file, ever opened an individual memory file, ever opened an individual memory file, while 80 sessions wrote or edited them.

  18. while 80 sessions wrote or edited them. while 80 sessions wrote or edited them. It's a 3 to one write to read. Of the 45 It's a 3 to one write to read. Of the 45 It's a 3 to one write to read. Of the 45 memories, 26 have never once been read. memories, 26 have never once been read. memories, 26 have never once been read. Yeah, garbage. Useless. Okay, that's all Yeah, garbage. Useless. Okay, that's all Yeah, garbage. Useless. Okay, that's all dying now for sure. I'm going to kill dying now for sure. I'm going to kill dying now for sure. I'm going to kill literally all of that cuz I'm annoyed. literally all of that cuz I'm annoyed. literally all of that cuz I'm annoyed. Holy [ __ ] My my war against memory Holy [ __ ] My my war against memory Holy [ __ ] My my war against memory systems just ramped up massively. This systems just ramped up massively. This systems just ramped up massively. This is so bad. Okay, so what do I do is so bad. Okay, so what do I do is so bad. Okay, so what do I do instead? What is my way of thinking of instead? What is my way of thinking of instead? What is my way of thinking of this that is so different that I feel this that is so different that I feel this that is so different that I feel like it's worth talking about in a like it's worth talking about in a like it's worth talking about in a video? There are multiple layers to this video? There are multiple layers to this video? There are multiple layers to this and I'm going to continue using T3 code and I'm going to continue using T3 code and I'm going to continue using T3 code for demonstrating it because I think for demonstrating it because I think for demonstrating it because I think it's the easiest way to understand. The it's the easiest way to understand. The it's the easiest way to understand. The two things we want out of better memory two things we want out of better memory two things we want out of better memory context and all of this are less context and all of this are less context and all of this are less mistakes. We want the agent to not do mistakes. We want the agent to not do mistakes. We want the agent to not do stupid things that annoy us. We want to stupid things that annoy us. We want to stupid things that annoy us. We want to steer it away from bad things and steer it away from bad things and steer it away from bad things and towards good things. And second, more towards good things. And second, more towards good things. And second, more directly, we want to feel like the model directly, we want to feel like the model directly, we want to feel like the model is doing what we want without having to is doing what we want without having to is doing what we want without having to tell it every detail. The less words and tell it every detail. The less words and tell it every detail. The less words and less effort to get the model to do what less effort to get the model to do what less effort to get the model to do what you want and behave how you want, the you want and behave how you want, the you want and behave how you want, the better. I know these sound similar, but better. I know these sound similar, but better. I know these sound similar, but they are different. Getting the model to they are different. Getting the model to they are different. Getting the model to stop making mistakes when it shouldn't stop making mistakes when it shouldn't stop making mistakes when it shouldn't have, and separately to behave the way have, and separately to behave the way have, and separately to behave the way you want without being told exactly what you want without being told exactly what you want without being told exactly what you want. These are different things, you want. These are different things, you want. These are different things, and they're both important. People seem and they're both important. People seem and they're both important. People seem to think memories will magically give to think memories will magically give to think memories will magically give you both, and they don't. they just you both, and they don't. they just you both, and they don't. they just straight up don't. So, how do we get straight up don't. So, how do we get straight up don't. So, how do we get this instead? We can do the obvious this instead? We can do the obvious this instead? We can do the obvious thing, which is to go into the agent MD thing, which is to go into the agent MD thing, which is to go into the agent MD every time the model does something every time the model does something every time the model does something wrong and add something small to it, wrong and add something small to it, wrong and add something small to it, saying don't do this again. And that saying don't do this again. And that saying don't do this again. And that does help. It does work. But at some does help. It does work. But at some does help. It does work. But at some point you have to reflect and realize

  19. point you have to reflect and realize point you have to reflect and realize that a lot of the issues the agent is that a lot of the issues the agent is that a lot of the issues the agent is hitting are happening because of either hitting are happening because of either hitting are happening because of either a difference in how you think about a difference in how you think about a difference in how you think about things and how the agent thinks about things and how the agent thinks about things and how the agent thinks about things or because the codebase is things or because the codebase is things or because the codebase is architected in a way that's unintuitive architected in a way that's unintuitive architected in a way that's unintuitive for the agent or there's some for the agent or there's some for the agent or there's some communication gap between you and the communication gap between you and the communication gap between you and the agent. There's all of these different agent. There's all of these different agent. There's all of these different layers between you the code and the AI layers between you the code and the AI layers between you the code and the AI working in it that can be these failure working in it that can be these failure working in it that can be these failure cases. And my advice is often to take cases. And my advice is often to take cases. And my advice is often to take one step back and find a way to one step back and find a way to one step back and find a way to communicate not just what you don't want communicate not just what you don't want communicate not just what you don't want the agent to do rather how you want the the agent to do rather how you want the the agent to do rather how you want the agent to think about what it would do. agent to think about what it would do. agent to think about what it would do. And I've been writing my agent and And I've been writing my agent and And I've been writing my agent and claude MD files like this accordingly claude MD files like this accordingly claude MD files like this accordingly because I think it helps a lot with because I think it helps a lot with because I think it helps a lot with getting the model going in the getting the model going in the getting the model going in the directions you want because there's directions you want because there's directions you want because there's again there's the two sides. There is again there's the two sides. There is again there's the two sides. There is preventing small annoying failures and preventing small annoying failures and preventing small annoying failures and making sure you and the agent are moving making sure you and the agent are moving making sure you and the agent are moving in the same direction together. And I in the same direction together. And I in the same direction together. And I find that once you solve the latter, find that once you solve the latter, find that once you solve the latter, when you make the agent more when you make the agent more when you make the agent more directionally aligned with you and your directionally aligned with you and your directionally aligned with you and your team, that you end up with way fewer of team, that you end up with way fewer of team, that you end up with way fewer of these small annoying failure cases.

  20. these small annoying failure cases. these small annoying failure cases. Potato Lauren, one of my favorite devs Potato Lauren, one of my favorite devs Potato Lauren, one of my favorite devs from the React world who now is at from the React world who now is at from the React world who now is at cursor and working on Grockbot and the cursor and working on Grockbot and the cursor and working on Grockbot and the Pstack stuff. She's had a lot to say Pstack stuff. She's had a lot to say Pstack stuff. She's had a lot to say here cuz she's been shipping an absolute here cuz she's been shipping an absolute here cuz she's been shipping an absolute shitload of code. And I really like her shitload of code. And I really like her shitload of code. And I really like her thinking of things here. And the order thinking of things here. And the order thinking of things here. And the order of value in particular, I think is of value in particular, I think is of value in particular, I think is really good. Every time you intervene really good. Every time you intervene really good. Every time you intervene and correct your agent, you should think and correct your agent, you should think and correct your agent, you should think about how to eliminate it entirely. It about how to eliminate it entirely. It about how to eliminate it entirely. It being the thing that went wrong. Like being the thing that went wrong. Like being the thing that went wrong. Like what can you do that prevents you from what can you do that prevents you from what can you do that prevents you from having to intervene in the future? She having to intervene in the future? She having to intervene in the future? She orders these in value. And I really like orders these in value. And I really like orders these in value. And I really like that cuz you really should go through that cuz you really should go through that cuz you really should go through these top to bottom and try to apply these top to bottom and try to apply these top to bottom and try to apply them out of each layer until the problem them out of each layer until the problem them out of each layer until the problem goes away. The best thing you can do goes away. The best thing you can do goes away. The best thing you can do always is categorically eliminate the always is categorically eliminate the always is categorically eliminate the problem through better architecture or problem through better architecture or problem through better architecture or choice of data structures. This is a choice of data structures. This is a choice of data structures. This is a thing I've been trying to do since way thing I've been trying to do since way thing I've been trying to do since way before the AI era. It's why I loved before the AI era. It's why I loved before the AI era. It's why I loved stuff like TRPC and I built the T3 stuff like TRPC and I built the T3 stuff like TRPC and I built the T3 stack. The amount of bugs that just stack. The amount of bugs that just stack. The amount of bugs that just vanish when you adopt something like vanish when you adopt something like vanish when you adopt something like that and the amount of potential that and the amount of potential that and the amount of potential problems and technical complexity that problems and technical complexity that problems and technical complexity that just doesn't exist anymore is magical. I just doesn't exist anymore is magical. I just doesn't exist anymore is magical. I feel similar to convex and I think this feel similar to convex and I think this feel similar to convex and I think this is why convex is so good for both humans is why convex is so good for both humans is why convex is so good for both humans working in code bases and for agents.

  21. working in code bases and for agents. working in code bases and for agents. There are many categories of failure There are many categories of failure There are many categories of failure cases that can happen in a system where cases that can happen in a system where cases that can happen in a system where all those pieces are architected all those pieces are architected all those pieces are architected separately. convex or tRPC, the type separately. convex or tRPC, the type separately. convex or tRPC, the type safety between the back end and the safety between the back end and the safety between the back end and the front end removes those categories front end removes those categories front end removes those categories entirely and it makes it much less entirely and it makes it much less entirely and it makes it much less likely that you or a contributor makes a likely that you or a contributor makes a likely that you or a contributor makes a mistake. And my efforts to make mistake. And my efforts to make mistake. And my efforts to make codebases easier to contribute to for codebases easier to contribute to for codebases easier to contribute to for devs of all skill levels, I ended up devs of all skill levels, I ended up devs of all skill levels, I ended up inadvertently making them good for inadvertently making them good for inadvertently making them good for agents as well. And it really does come agents as well. And it really does come agents as well. And it really does come down to this. How can you technically down to this. How can you technically down to this. How can you technically and through your actual direct and through your actual direct and through your actual direct implementation of stuff fully remove implementation of stuff fully remove implementation of stuff fully remove categories of potential failures from categories of potential failures from categories of potential failures from your applications? An example outside of your applications? An example outside of your applications? An example outside of the webdev world here would be something the webdev world here would be something the webdev world here would be something like garbage collection or memory like garbage collection or memory like garbage collection or memory safety. These solutions help you make safety. These solutions help you make safety. These solutions help you make code that's more likely to work without code that's more likely to work without code that's more likely to work without having to worry about all of these having to worry about all of these having to worry about all of these edges. Somehow you're unable to do this edges. Somehow you're unable to do this edges. Somehow you're unable to do this if this just fails outright, which it if this just fails outright, which it if this just fails outright, which it can for many reasons. The next step is can for many reasons. The next step is can for many reasons. The next step is to turn it into a lint rule or tests so to turn it into a lint rule or tests so to turn it into a lint rule or tests so that CI can catch it. I have a real that CI can catch it. I have a real that CI can catch it. I have a real example of this one actually. I care a example of this one actually. I care a example of this one actually. I care a lot about the performance of T3 code. In lot about the performance of T3 code. In lot about the performance of T3 code. In particular, I care a lot about how much particular, I care a lot about how much particular, I care a lot about how much data needs to be transferred for you to data needs to be transferred for you to data needs to be transferred for you to see a thread or get updates because when see a thread or get updates because when see a thread or get updates because when I'm in an airplane with shitty Wi-Fi or I'm in an airplane with shitty Wi-Fi or I'm in an airplane with shitty Wi-Fi or I'm on my phone on the go in a tunnel, I I'm on my phone on the go in a tunnel, I I'm on my phone on the go in a tunnel, I want to be able to keep up with my want to be able to keep up with my want to be able to keep up with my thread, even if I'm on 4G or even 3G thread, even if I'm on 4G or even 3G thread, even if I'm on 4G or even 3G connections. And when I'm just getting connections. And when I'm just getting connections. And when I'm just getting text data, it shouldn't be that much.

  22. text data, it shouldn't be that much. text data, it shouldn't be that much. But as we added more and more features But as we added more and more features But as we added more and more features to T3 code, that transit layer got more to T3 code, that transit layer got more to T3 code, that transit layer got more and more bloated. And we got to the and more bloated. And we got to the and more bloated. And we got to the point where we were sending tens of point where we were sending tens of point where we were sending tens of megabytes down the wire over websockets megabytes down the wire over websockets megabytes down the wire over websockets just to load a thread. And I crashed out just to load a thread. And I crashed out just to load a thread. And I crashed out hard about this. I went and cleaned up hard about this. I went and cleaned up hard about this. I went and cleaned up the transfers a ton. I set up a suite the transfers a ton. I set up a suite the transfers a ton. I set up a suite locally so that I could see how my locally so that I could see how my locally so that I could see how my changes affected what data was going changes affected what data was going changes affected what data was going across and how much data was being used. across and how much data was being used. across and how much data was being used. And then after I did all of this work, And then after I did all of this work, And then after I did all of this work, regression started to happen almost regression started to happen almost regression started to happen almost immediately. Within days of me fixing immediately. Within days of me fixing immediately. Within days of me fixing this transit layer to make things more this transit layer to make things more this transit layer to make things more efficient, regressions started to efficient, regressions started to efficient, regressions started to happen. And I realized no matter how happen. And I realized no matter how happen. And I realized no matter how much work I put into making this simpler much work I put into making this simpler much work I put into making this simpler and better in the codebase, there will and better in the codebase, there will and better in the codebase, there will always be potential failures. So instead always be potential failures. So instead always be potential failures. So instead of continuing to eat those, I made a of continuing to eat those, I made a of continuing to eat those, I made a change. I added a relatively complex change. I added a relatively complex change. I added a relatively complex addition to the CI where I take these addition to the CI where I take these addition to the CI where I take these sample threads from my realworld work sample threads from my realworld work sample threads from my realworld work that are just massive piles of text and that are just massive piles of text and that are just massive piles of text and I test for both codecs and claude doing I test for both codecs and claude doing I test for both codecs and claude doing fake replays of these threads. How much fake replays of these threads. How much fake replays of these threads. How much data actually goes over the websocket?

  23. data actually goes over the websocket? data actually goes over the websocket? And once I got it to a place I was happy And once I got it to a place I was happy And once I got it to a place I was happy with where instead of being tens or with where instead of being tens or with where instead of being tens or hundreds of megs, it was consistently hundreds of megs, it was consistently hundreds of megs, it was consistently under 100k for everything. It's under under 100k for everything. It's under under 100k for everything. It's under 10K for most things. I decided to save 10K for most things. I decided to save 10K for most things. I decided to save these numbers and make a PR that adds an these numbers and make a PR that adds an these numbers and make a PR that adds an automatically commented action here that automatically commented action here that automatically commented action here that tells you how much bandwidth each of tells you how much bandwidth each of tells you how much bandwidth each of these do after your changes. And I have these do after your changes. And I have these do after your changes. And I have a ceiling set here that's like 30% a ceiling set here that's like 30% a ceiling set here that's like 30% higher than when I got all the higher than when I got all the higher than when I got all the optimizations in. So if any changes push optimizations in. So if any changes push optimizations in. So if any changes push us at or over this line, PR fails, I am us at or over this line, PR fails, I am us at or over this line, PR fails, I am notified. I come in and say, "What the notified. I come in and say, "What the notified. I come in and say, "What the [ __ ] are you doing?" This has already [ __ ] are you doing?" This has already [ __ ] are you doing?" This has already prevented real regressions. And what prevented real regressions. And what prevented real regressions. And what I've noticed is my agents don't bug me I've noticed is my agents don't bug me I've noticed is my agents don't bug me until they fix them. So now when I make until they fix them. So now when I make until they fix them. So now when I make a change that affects the data layer and a change that affects the data layer and a change that affects the data layer and that change causes a regression, the that change causes a regression, the that change causes a regression, the agent fixes it before it tells me it's agent fixes it before it tells me it's agent fixes it before it tells me it's done. I love it. It's so nice like using done. I love it. It's so nice like using done. I love it. It's so nice like using these techniques I have built over the these techniques I have built over the these techniques I have built over the better part of two decades to keep my better part of two decades to keep my better part of two decades to keep my teammates and keep my businesses, the teammates and keep my businesses, the teammates and keep my businesses, the companies I work for and all of that companies I work for and all of that companies I work for and all of that from regressing the work I put in. Now I from regressing the work I put in. Now I from regressing the work I put in. Now I can whip that together for my agents and can whip that together for my agents and can whip that together for my agents and it serves the same purpose, arguably it serves the same purpose, arguably it serves the same purpose, arguably even better. So I agree like if you even better. So I agree like if you even better. So I agree like if you can't write the code in a way that can't write the code in a way that can't write the code in a way that prevents other people or agents from prevents other people or agents from prevents other people or agents from making these mistakes, the best next making these mistakes, the best next making these mistakes, the best next step is to rule it out entirely with step is to rule it out entirely with step is to rule it out entirely with lint rules, with CI, with custom tests, lint rules, with CI, with custom tests, lint rules, with CI, with custom tests, send to end, whatever you have to do, send to end, whatever you have to do, send to end, whatever you have to do, make it so the agent can figure out the make it so the agent can figure out the make it so the agent can figure out the thing sucks before it bothers you about thing sucks before it bothers you about thing sucks before it bothers you about it. If both of these fail, and I always it. If both of these fail, and I always it. If both of these fail, and I always say like if you were to put gaps in say like if you were to put gaps in say like if you were to put gaps in these, first one you should always do these, first one you should always do these, first one you should always do and you should do the [ __ ] out of it. If and you should do the [ __ ] out of it. If and you should do the [ __ ] out of it. If somehow it fails, try again and again.

  24. somehow it fails, try again and again. somehow it fails, try again and again. And if you conclude there is no way for And if you conclude there is no way for And if you conclude there is no way for you to programmatically structure things you to programmatically structure things you to programmatically structure things to prevent these types of failures, then to prevent these types of failures, then to prevent these types of failures, then hesitantly introduce lint rules or CI to hesitantly introduce lint rules or CI to hesitantly introduce lint rules or CI to fix it. This should be enough to fix fix it. This should be enough to fix fix it. This should be enough to fix almost all things. If somehow it isn't, almost all things. If somehow it isn't, almost all things. If somehow it isn't, reflect and try again. It probably still reflect and try again. It probably still reflect and try again. It probably still is. If somehow after all that it still is. If somehow after all that it still is. If somehow after all that it still isn't, breathe a heavy sigh and accept isn't, breathe a heavy sigh and accept isn't, breathe a heavy sigh and accept that you are in that small bucket where that you are in that small bucket where that you are in that small bucket where a skill or a rule might actually be a skill or a rule might actually be a skill or a rule might actually be beneficial. I find that these are less beneficial. I find that these are less beneficial. I find that these are less useful for things that have to do with useful for things that have to do with useful for things that have to do with the code and are more useful for things the code and are more useful for things the code and are more useful for things with the process around it. Like if I with the process around it. Like if I with the process around it. Like if I want to expose the server I'm working on want to expose the server I'm working on want to expose the server I'm working on remotely so I can connect over tail remotely so I can connect over tail remotely so I can connect over tail scale, a skill for that is helpful. But scale, a skill for that is helpful. But scale, a skill for that is helpful. But skills should be a fallback that you skills should be a fallback that you skills should be a fallback that you fall into when the codebase can't solve fall into when the codebase can't solve fall into when the codebase can't solve the problem and the lint rules in CI the problem and the lint rules in CI the problem and the lint rules in CI also can't. Skills shouldn't be this also can't. Skills shouldn't be this also can't. Skills shouldn't be this thing you reach for all the time to thing you reach for all the time to thing you reach for all the time to build this crazy set of skills that will build this crazy set of skills that will build this crazy set of skills that will solve all your problems. They are a solve all your problems. They are a solve all your problems. They are a safety net. They are a fallback. You safety net. They are a fallback. You safety net. They are a fallback. You should treat them accordingly. And if should treat them accordingly. And if should treat them accordingly. And if somehow all of these things fail, somehow all of these things fail, somehow all of these things fail, introduce a human into the loop to introduce a human into the loop to introduce a human into the loop to check. You should not have to do this.

  25. check. You should not have to do this. check. You should not have to do this. You get the point though. I really like You get the point though. I really like You get the point though. I really like Lauren's way of framing these things. Lauren's way of framing these things. Lauren's way of framing these things. And I think you can see what I mean. If And I think you can see what I mean. If And I think you can see what I mean. If you look at my projects and you look at you look at my projects and you look at you look at my projects and you look at T3 code and see how we've architected T3 code and see how we've architected T3 code and see how we've architected it, what we have done and how we're it, what we have done and how we're it, what we have done and how we're building it. One of the main hesitations building it. One of the main hesitations building it. One of the main hesitations we have right now, for example, with the we have right now, for example, with the we have right now, for example, with the T3 code Swift UI rewrite is that we lose T3 code Swift UI rewrite is that we lose T3 code Swift UI rewrite is that we lose a lot of our structure that prevents a lot of our structure that prevents a lot of our structure that prevents regressions in the mobile app because we regressions in the mobile app because we regressions in the mobile app because we use the same shared TypeScript code for use the same shared TypeScript code for use the same shared TypeScript code for all the data loading between the web all the data loading between the web all the data loading between the web app, the Electron desktop app, and the app, the Electron desktop app, and the app, the Electron desktop app, and the React Native mobile app. Since all three React Native mobile app. Since all three React Native mobile app. Since all three of those data layers are exactly the of those data layers are exactly the of those data layers are exactly the same, it is basically impossible for us same, it is basically impossible for us same, it is basically impossible for us to make a change that breaks one of them to make a change that breaks one of them to make a change that breaks one of them and not the other two. So, it's much and not the other two. So, it's much and not the other two. So, it's much easier to make changes safely. I've easier to make changes safely. I've easier to make changes safely. I've already had the Swift UI app regress already had the Swift UI app regress already had the Swift UI app regress because that relationship is not as because that relationship is not as because that relationship is not as clearly encoded. And sometimes the clearly encoded. And sometimes the clearly encoded. And sometimes the compromises are this big. Like, I have compromises are this big. Like, I have compromises are this big. Like, I have an app that I feel is better that we an app that I feel is better that we an app that I feel is better that we aren't merging because it causes aren't merging because it causes aren't merging because it causes codebased drift that would allow for codebased drift that would allow for codebased drift that would allow for these types of failures to exist where these types of failures to exist where these types of failures to exist where right now they can't. I just saw a quote right now they can't. I just saw a quote right now they can't. I just saw a quote from chat that I really like. I do not from chat that I really like. I do not from chat that I really like. I do not know this was an Uncle Bob quote. It's know this was an Uncle Bob quote. It's know this was an Uncle Bob quote. It's probably a mistake to impose human probably a mistake to impose human probably a mistake to impose human discipline on an agent, but it's not a discipline on an agent, but it's not a discipline on an agent, but it's not a mistake to impose human values on the mistake to impose human values on the mistake to impose human values on the agent. That is such a banger. I love agent. That is such a banger. I love agent. That is such a banger. I love this new era agentic uncle Bob so much.

  26. this new era agentic uncle Bob so much. this new era agentic uncle Bob so much. Even when I have told them to do Even when I have told them to do Even when I have told them to do test-driven development at high test-driven development at high test-driven development at high discipline, they always fall back on discipline, they always fall back on discipline, they always fall back on doing that. They always end up doing doing that. They always end up doing doing that. They always end up doing that. So, I figure that's probably okay. that. So, I figure that's probably okay. that. So, I figure that's probably okay. So the bottom line there is it's So the bottom line there is it's So the bottom line there is it's probably a mistake to impose a human probably a mistake to impose a human probably a mistake to impose a human discipline on an agent. It is not a discipline on an agent. It is not a discipline on an agent. It is not a mistake to impose human values mistake to impose human values mistake to impose human values on the agent, but there may be on the agent, but there may be on the agent, but there may be thresholds that we need to change, but thresholds that we need to change, but thresholds that we need to change, but the disciplines themselves, the the disciplines themselves, the the disciplines themselves, the behaviors, I don't think it's wise to behaviors, I don't think it's wise to behaviors, I don't think it's wise to impose those. impose those. impose those. >> That's a lovely way of phrasing it. I >> That's a lovely way of phrasing it. I >> That's a lovely way of phrasing it. I really like that. really like that. really like that. >> God, I I'm going to flip a [ __ ] [ __ ] >> God, I I'm going to flip a [ __ ] [ __ ] >> God, I I'm going to flip a [ __ ] [ __ ] on this one when I watch it later. Every on this one when I watch it later. Every on this one when I watch it later. Every single word that Uncle Bob has been single word that Uncle Bob has been single word that Uncle Bob has been saying about Agentic Dev stuff recently saying about Agentic Dev stuff recently saying about Agentic Dev stuff recently is so on point. It is a little is so on point. It is a little is so on point. It is a little frustrating to me that he could go from frustrating to me that he could go from frustrating to me that he could go from being like slightly to meaningfully being like slightly to meaningfully being like slightly to meaningfully behind on a lot of his takes to ahead of behind on a lot of his takes to ahead of behind on a lot of his takes to ahead of the vast majority of the industry in the vast majority of the industry in the vast majority of the industry in like 3 months. It's been wild to watch. like 3 months. It's been wild to watch. like 3 months. It's been wild to watch. I fully endorse everything he just said I fully endorse everything he just said I fully endorse everything he just said here and I'm so excited to watch the here and I'm so excited to watch the here and I'm so excited to watch the rest of this. I'm saving it to my watch rest of this. I'm saving it to my watch rest of this. I'm saving it to my watch later. I'd recommend you guys watch it, later. I'd recommend you guys watch it, later. I'd recommend you guys watch it, too. Uncle Bob gets it. Somebody has too. Uncle Bob gets it. Somebody has too. Uncle Bob gets it. Somebody has mentioned in chat that I have the least mentioned in chat that I have the least mentioned in chat that I have the least generic agent MD files and I'm going to generic agent MD files and I'm going to generic agent MD files and I'm going to take the opportunity now to share one of take the opportunity now to share one of take the opportunity now to share one of them. I've talked about this one a them. I've talked about this one a them. I've talked about this one a little bit in the past. I'll talk about little bit in the past. I'll talk about little bit in the past. I'll talk about a bit more here. This is the T3 code a bit more here. This is the T3 code a bit more here. This is the T3 code agent MD. I describe the pieces that agent MD. I describe the pieces that agent MD. I describe the pieces that matter first and foremost, what it is, matter first and foremost, what it is, matter first and foremost, what it is, and then how it works. I start quickly and then how it works. I start quickly and then how it works. I start quickly about how the node websocket server about how the node websocket server about how the node websocket server wraps provider CLIs in order to serve

  27. wraps provider CLIs in order to serve wraps provider CLIs in order to serve the different platforms. This is a the different platforms. This is a the different platforms. This is a really simple concise way of saying all really simple concise way of saying all really simple concise way of saying all of the parts that matter and then of the parts that matter and then of the parts that matter and then calling out here that you can think of calling out here that you can think of calling out here that you can think of T3 code as an open source bring your own T3 code as an open source bring your own T3 code as an open source bring your own subscription alternative to apps like subscription alternative to apps like subscription alternative to apps like cloud desktop codeex app cursor glass cloud desktop codeex app cursor glass cloud desktop codeex app cursor glass and conductor. This is the context for and conductor. This is the context for and conductor. This is the context for everything it needs to know about what everything it needs to know about what everything it needs to know about what it is. You might be confused why it it is. You might be confused why it it is. You might be confused why it would need to know that because it's would need to know that because it's would need to know that because it's just writing the code, right? Have you just writing the code, right? Have you just writing the code, right? Have you ever had an engineer on your team that ever had an engineer on your team that ever had an engineer on your team that doesn't actually understand the product? doesn't actually understand the product? doesn't actually understand the product? I have. It's not fun. Having claude I have. It's not fun. Having claude I have. It's not fun. Having claude coder codecs understand T3 code means coder codecs understand T3 code means coder codecs understand T3 code means that they are more likely to suggest that they are more likely to suggest that they are more likely to suggest things and make changes and stay aligned things and make changes and stay aligned things and make changes and stay aligned directionally with me. On that note, the directionally with me. On that note, the directionally with me. On that note, the what makes T3 code special section is what makes T3 code special section is what makes T3 code special section is very much keeping this in mind because I very much keeping this in mind because I very much keeping this in mind because I want to make sure the people want to make sure the people want to make sure the people contributing to T3 code and the agents contributing to T3 code and the agents contributing to T3 code and the agents they're using to write those they're using to write those they're using to write those contributions are aligned and trying to contributions are aligned and trying to contributions are aligned and trying to move in the same direction. The that move in the same direction. The that move in the same direction. The that includes things like open at the core. I includes things like open at the core. I includes things like open at the core. I want to make sure T3 code stays open. So want to make sure T3 code stays open. So want to make sure T3 code stays open. So if any of the suggestions a model might if any of the suggestions a model might if any of the suggestions a model might make would involve me close sourcing make would involve me close sourcing make would involve me close sourcing some portion, they probably shouldn't do some portion, they probably shouldn't do some portion, they probably shouldn't do that. And I have had my models suggest that. And I have had my models suggest that. And I have had my models suggest this in the past that this is fine this in the past that this is fine this in the past that this is fine because the code won't be seen. And I because the code won't be seen. And I because the code won't be seen. And I have to remind it, no, this code is have to remind it, no, this code is have to remind it, no, this code is open. We're not close sourcing parts.

  28. open. We're not close sourcing parts. open. We're not close sourcing parts. And it's like, oh, okay, I guess we'll And it's like, oh, okay, I guess we'll And it's like, oh, okay, I guess we'll do it this other way then. This removed do it this other way then. This removed do it this other way then. This removed all of that. Performance without all of that. Performance without all of that. Performance without compromise. It's a silly addition, but compromise. It's a silly addition, but compromise. It's a silly addition, but it does result in the models thinking a it does result in the models thinking a it does result in the models thinking a bit more about how the changes affect bit more about how the changes affect bit more about how the changes affect performance. It's silly, but this change performance. It's silly, but this change performance. It's silly, but this change here affected the amount of regressions here affected the amount of regressions here affected the amount of regressions we saw in data loading more than any of we saw in data loading more than any of we saw in data loading more than any of the systemic changes I made in the the systemic changes I made in the the systemic changes I made in the actual code side. Obviously, my code actual code side. Obviously, my code actual code side. Obviously, my code changes to improve it were the best, but changes to improve it were the best, but changes to improve it were the best, but the regressions kept happening because the regressions kept happening because the regressions kept happening because of the agents. This reduced a lot of of the agents. This reduced a lot of of the agents. This reduced a lot of them and then my CI cleaned up the rest. them and then my CI cleaned up the rest. them and then my CI cleaned up the rest. Remote ready. This one's important Remote ready. This one's important Remote ready. This one's important because a lot of the time if the model because a lot of the time if the model because a lot of the time if the model doesn't know that we care a lot about doesn't know that we care a lot about doesn't know that we care a lot about the remote experience, it will make the remote experience, it will make the remote experience, it will make something that works great locally and something that works great locally and something that works great locally and even test it with the Electron app even test it with the Electron app even test it with the Electron app locally and say, "Oh yeah, this all locally and say, "Oh yeah, this all locally and say, "Oh yeah, this all works great." And then I connect with my works great." And then I connect with my works great." And then I connect with my phone or I connect over the web and it phone or I connect over the web and it phone or I connect over the web and it fails. So I make sure it is very clear fails. So I make sure it is very clear fails. So I make sure it is very clear we want every change to work well with we want every change to work well with we want every change to work well with the remote connections. And along that I the remote connections. And along that I the remote connections. And along that I add the multi-urface section clarifying add the multi-urface section clarifying add the multi-urface section clarifying what services we have and that we have what services we have and that we have what services we have and that we have to care a lot about them and make sure to care a lot about them and make sure to care a lot about them and make sure changes work across all of them as we changes work across all of them as we changes work across all of them as we expect. I have a personal note for me expect. I have a personal note for me expect. I have a personal note for me after I like adding these to my agent after I like adding these to my agent after I like adding these to my agent MDs just to help with the tone and the MDs just to help with the tone and the MDs just to help with the tone and the context, but most importantly again this context, but most importantly again this context, but most importantly again this directionality thing. I want to make directionality thing. I want to make directionality thing. I want to make sure the model and I are working towards sure the model and I are working towards sure the model and I are working towards a similar goal and taking similar paths a similar goal and taking similar paths a similar goal and taking similar paths and these little notes help a lot. I and these little notes help a lot. I and these little notes help a lot. I also needed a good place to stak this also needed a good place to stak this also needed a good place to stak this piece about not killing the T3 code piece about not killing the T3 code piece about not killing the T3 code server when I'm working on T3 code in T3 server when I'm working on T3 code in T3 server when I'm working on T3 code in T3 code and this felt like a decent place code and this felt like a decent place code and this felt like a decent place to put it. I added a glossery and I find to put it. I added a glossery and I find to put it. I added a glossery and I find these help a ton. Glosseries do a great these help a ton. Glosseries do a great these help a ton. Glosseries do a great job of helping the agent and the people

  29. job of helping the agent and the people job of helping the agent and the people working with it have a shared language working with it have a shared language working with it have a shared language to make sure we can go back and forth to make sure we can go back and forth to make sure we can go back and forth and understand what each other are and understand what each other are and understand what each other are saying. It also helps with Claude's saying. It also helps with Claude's saying. It also helps with Claude's thing where it just makes up these fancy thing where it just makes up these fancy thing where it just makes up these fancy terms for [ __ ] that doesn't need to. I terms for [ __ ] that doesn't need to. I terms for [ __ ] that doesn't need to. I have a section on things that the model have a section on things that the model have a section on things that the model kept doing no matter what I did that I kept doing no matter what I did that I kept doing no matter what I did that I wanted to have stop. These are the ways wanted to have stop. These are the ways wanted to have stop. These are the ways it would literally kill the running it would literally kill the running it would literally kill the running server which were obnoxious. This fixes server which were obnoxious. This fixes server which were obnoxious. This fixes most of them. Then I have the hit every most of them. Then I have the hit every most of them. Then I have the hit every surface section because I was tired of surface section because I was tired of surface section because I was tired of changes being applied on web and then changes being applied on web and then changes being applied on web and then not on mobile and then mobile breaking. not on mobile and then mobile breaking. not on mobile and then mobile breaking. This section is a good reminder. Make This section is a good reminder. Make This section is a good reminder. Make sure this works everywhere. This has sure this works everywhere. This has sure this works everywhere. This has helped a lot with keeping platforms in helped a lot with keeping platforms in helped a lot with keeping platforms in sync. A section about dev servers sync. A section about dev servers sync. A section about dev servers because the dev server stuff in T3 code because the dev server stuff in T3 code because the dev server stuff in T3 code is meaningfully complex. a section about is meaningfully complex. a section about is meaningfully complex. a section about test data because I wanted to make it test data because I wanted to make it test data because I wanted to make it easier to clone my data for my real use easier to clone my data for my real use easier to clone my data for my real use cases over to a work tree so that I can cases over to a work tree so that I can cases over to a work tree so that I can work on this and like check and validate work on this and like check and validate work on this and like check and validate my changes with real data more reliably. my changes with real data more reliably. my changes with real data more reliably. A verification section where I call out A verification section where I call out A verification section where I call out to not run all these giant repo wide to not run all these giant repo wide to not run all these giant repo wide checks all the time unless it's asked. checks all the time unless it's asked. checks all the time unless it's asked. Pull requests and how to file them. I Pull requests and how to file them. I Pull requests and how to file them. I think this part's really helpful too.

  30. think this part's really helpful too. think this part's really helpful too. Just making sure the titles are actually Just making sure the titles are actually Just making sure the titles are actually readable. A really brief where code readable. A really brief where code readable. A really brief where code lives. Not that it actually matters. lives. Not that it actually matters. lives. Not that it actually matters. Probably the least useful thing within Probably the least useful thing within Probably the least useful thing within this. And then a taste section. This is this. And then a taste section. This is this. And then a taste section. This is mostly when Julius gets mad at me at mostly when Julius gets mad at me at mostly when Julius gets mad at me at things that my slop code does. I add things that my slop code does. I add things that my slop code does. I add them here to keep steering in the them here to keep steering in the them here to keep steering in the direction that makes Julius happy. He direction that makes Julius happy. He direction that makes Julius happy. He really likes the adapter boundary being really likes the adapter boundary being really likes the adapter boundary being where complexity lives so that the where complexity lives so that the where complexity lives so that the orchestration can be really simple and orchestration can be really simple and orchestration can be really simple and the UI can be really stupid. We both the UI can be really stupid. We both the UI can be really stupid. We both hate any types and annotations that are hate any types and annotations that are hate any types and annotations that are unnecessary. We prefer inferred. unnecessary. We prefer inferred. unnecessary. We prefer inferred. Comments should describe how a thing is Comments should describe how a thing is Comments should describe how a thing is used and they should move when the code used and they should move when the code used and they should move when the code moves. To be used mostly to describe moves. To be used mostly to describe moves. To be used mostly to describe functions, not to annotate every line of functions, not to annotate every line of functions, not to annotate every line of behavior. It's been very helpful. Your behavior. It's been very helpful. Your behavior. It's been very helpful. Your agents should understand you well enough agents should understand you well enough agents should understand you well enough to reasonably copy what you would do. If to reasonably copy what you would do. If to reasonably copy what you would do. If you aren't already at the point where you aren't already at the point where you aren't already at the point where you ask an agent to do a thing and you ask an agent to do a thing and you ask an agent to do a thing and you're surprised at how well it you're surprised at how well it you're surprised at how well it understands you and what you want where understands you and what you want where understands you and what you want where maybe you tell it to do this one small maybe you tell it to do this one small maybe you tell it to do this one small thing and it says, "Wait, wouldn't you thing and it says, "Wait, wouldn't you thing and it says, "Wait, wouldn't you also want it for these three other also want it for these three other also want it for these three other things?" It's a little more complex and things?" It's a little more complex and things?" It's a little more complex and you're like, "Wait, yeah, I did want you're like, "Wait, yeah, I did want you're like, "Wait, yeah, I did want that. I would have went and done that that. I would have went and done that that. I would have went and done that right after." If you don't find yourself right after." If you don't find yourself right after." If you don't find yourself in that spot often, you haven't tuned in that spot often, you haven't tuned in that spot often, you haven't tuned these things well enough yet. I'm these things well enough yet. I'm these things well enough yet. I'm regularly surprised by my agents going regularly surprised by my agents going regularly surprised by my agents going further than I expect but entirely in further than I expect but entirely in further than I expect but entirely in the direction I want or pushing back on the direction I want or pushing back on the direction I want or pushing back on me in ways that I would have had to me in ways that I would have had to me in ways that I would have had to figure out the hard way later and they figure out the hard way later and they figure out the hard way later and they did not do that much by default. They do did not do that much by default. They do did not do that much by default. They do it a lot now and it's these files and it a lot now and it's these files and it a lot now and it's these files and it's certainly not the [ __ ] memory.

  31. it's certainly not the [ __ ] memory. it's certainly not the [ __ ] memory. In fact, they probably hurt. I'm really In fact, they probably hurt. I'm really In fact, they probably hurt. I'm really excited to have it cleaned out. This one excited to have it cleaned out. This one excited to have it cleaned out. This one was quite a journey. We started with was quite a journey. We started with was quite a journey. We started with memory systems and all the things I hate memory systems and all the things I hate memory systems and all the things I hate about them to me crashing out at my own about them to me crashing out at my own about them to me crashing out at my own memories and my own projects and then memories and my own projects and then memories and my own projects and then going through and gutting all of that to going through and gutting all of that to going through and gutting all of that to my agent MD to Uncle Bob and all these my agent MD to Uncle Bob and all these my agent MD to Uncle Bob and all these other things. I try to have a other things. I try to have a other things. I try to have a cohesiveish conclusion at the end of cohesiveish conclusion at the end of cohesiveish conclusion at the end of these and I'll do my best to here. The these and I'll do my best to here. The these and I'll do my best to here. The main thing I want you to take away here main thing I want you to take away here main thing I want you to take away here is that your end goal should be that you is that your end goal should be that you is that your end goal should be that you and your agent are working in such lock and your agent are working in such lock and your agent are working in such lock step that you're regularly surprised by step that you're regularly surprised by step that you're regularly surprised by how well it seems like it understands how well it seems like it understands how well it seems like it understands you. And that is a thing you have to you. And that is a thing you have to you. And that is a thing you have to build because every time you start a new build because every time you start a new build because every time you start a new thread, the agent's brain is wiped out. thread, the agent's brain is wiped out. thread, the agent's brain is wiped out. That doesn't mean we need automatic That doesn't mean we need automatic That doesn't mean we need automatic memories to keep it fresh and up to memories to keep it fresh and up to memories to keep it fresh and up to date. They're actually worse than that. date. They're actually worse than that. date. They're actually worse than that. They make it bad. What we really want is They make it bad. What we really want is They make it bad. What we really want is to make sure that on Groundhog Day when to make sure that on Groundhog Day when to make sure that on Groundhog Day when the model wakes up and starts that it the model wakes up and starts that it the model wakes up and starts that it has all the things that matter to you in has all the things that matter to you in has all the things that matter to you in its head so that it's more likely to go its head so that it's more likely to go its head so that it's more likely to go where you want it to go. Take the where you want it to go. Take the where you want it to go. Take the opportunity to get a little more opportunity to get a little more opportunity to get a little more personal with how you talk to your personal with how you talk to your personal with how you talk to your agents both when you're prompting and agents both when you're prompting and agents both when you're prompting and also when you're building these types of also when you're building these types of also when you're building these types of context systems. Help the model context systems. Help the model context systems. Help the model understand you and what you want and understand you and what you want and understand you and what you want and you'll be surprised at how well it can you'll be surprised at how well it can you'll be surprised at how well it can work alongside that. I have been blown work alongside that. I have been blown work alongside that. I have been blown away at what is possible with these away at what is possible with these away at what is possible with these slight changes to these things and I slight changes to these things and I slight changes to these things and I have a feeling you will be too. Give it have a feeling you will be too. Give it have a feeling you will be too. Give it a shot and let me know how it goes in a shot and let me know how it goes in a shot and let me know how it goes in the comments. Until next time, burn that the comments. Until next time, burn that the comments. Until next time, burn that memory off. Seriously though, the memory memory off. Seriously though, the memory memory off. Seriously though, the memory in quad code is so bad. I everyone in quad code is so bad. I everyone in quad code is so bad. I everyone should be turning that off. I I have should be turning that off. I I have should be turning that off. I I have some rants to do. Bards.

Summary

The main theme is the ineffectiveness of specialized memory systems for AI in understanding and operating within codebases, contrasting with human knowledge retention. Key subjects include AI agents, codebases, memory systems, and discussions with creators of Pi and Flask. The practical takeaway is that directly embedding knowledge within the codebase or through simpler means is more effective than relying on complex, often unreliable, external memory solutions for AI.

View original episode ↗