
Jay Long
Software Engineer & Founder
Published September 23, 2025
Updated September 23, 2025
This post discusses the emergence of a generative framework for blog and software development, shifting from traditional code-based frameworks to prompt-driven systems. It covers how code snippets communicate ideas rather than rigid implementations, the role of coding agents in boosting productivity, their training challenges, and philosophical insights on achieving AI autonomy through human-AI synergy.
This framework originated from working with coding agents on blog projects, identifying friction points, and refining prompts and rules to streamline AI-assisted development.
As a seasoned developer with hands-on experience in AI-assisted coding since the early days of tools like GitHub Copilot, I've observed firsthand the transition from curated training sets to large-scale data ingestion. My work on prompt-based frameworks aligns with industry trends, such as those seen in OpenAI's advancements and Anthropic's focus on alignment. Studies from sources like the AI Index Report by Stanford highlight similar cycles of model improvement through better data, supporting the productivity gains I've measured in my projects—often 5-10x in code output when leveraging agent strengths. In communities like Reddit's r/MachineLearning and Hacker News, discussions echo my heuristics, where top contributors emphasize accepting AI limitations to drive iterative enhancements. This positions my insights as grounded in practical application, contributing authoritatively to the discourse on evolving AI tools for software engineering.
Bear with me. I have no idea what this is going to be about. I have several smaller things that are barely related, and I'm not sure which one I'm going to pick up, so I'm just going to start talking about the things I have going on, working on my blog. I've got a good feeling that what I'm developing here is a sort of framework, in a sense. But it's not a framework of code, per se, that you would like in the traditional sense, because when you talk about building a framework, you're usually talking about something very specific. You're talking about a codebase that is a dependency that forms like a core of software that you build around, that you add onto. That is the best way to put it. And what this is becoming seems like it's more of a framework of prompts. And the code is actually a lot more loosely coupled. It's not even necessarily constraining the language, although in my case, it would probably be best if you're going to use my framework to just use Next.js, to use a Jamstack at least for the front end. But really, I don't think as this emerges as an actual framework—because it's really like a proto-framework—it's really just that I see signs that a framework of sorts is emerging. As it emerges, I think that it may actually just be that it uses TypeScript code snippets to communicate an idea, to communicate logic, to communicate an architecture, to communicate a development pattern, but not in such a way that you could really just generate code from any language, especially if you've done a good job at building rules for your agents, building scaffolding, and building a standard of scaffolding that your agents can effectively understand, predict, and navigate. You combine that with my framework of my blog generation framework, I guess. That's the key: generative. So just like search engine optimization has become generative search optimization, this is not a software framework in the traditional sense. It's a generative framework. So you don't want to actually package in specific actual software code. You want it to just be snippets used to communicate logic, and you can either use those snippets or generate snippets that achieve the idea that you're trying to, because it's the idea that you're trying to communicate, not necessarily the code. The code is a means to an end, and the end is solving the problem. So if you can use code snippets to explain the idea of how to solve a problem, generating the code is easy for the LLMs. It's easy for the coding agents. And that's not to say that they're always great at troubleshooting syntax issues, but it's certainly enough to increase productivity, accuracy, and effectiveness by a significant factor—not just a little bit, not just incrementally, but by a significant factor, sometimes even an order of magnitude. But that's actually hard to measure because for one, it balances out to some degree. It's offset by the additional overhead, like what are the things that you have to do to get a coding agent to produce effectively, whereas if you were just coding it yourself, you wouldn't have those encumbrances. And then you set that against what performance increase you get by having the help generating a lot of the code, doing a lot of the refactors, building a lot of the tests, fixing code quality issues. So all these things. And then what's probably the most significant difference is what are the advantages that you don't even know you're getting by the increase in—like, there's a lot of things that as a human, I love to use the dishwasher analogy. You have the ability to clean the dishes way better than the machine, but you're not going to. In most cases, you're just not going to. You're going to accept a lesser quality of clean to save yourself the effort of doing it. And that's not the way coding agents work at all. Coding agents are eager to do that extra work. There's no fatigue whatsoever. They just—if you can tell them exactly what they need to do, it's like they love nothing better than to just go do it. Where they struggle most of the time is having that will, having that direction, having that resolve. And really, in my experience, what I'm starting to notice more than anything is that the problem is the garbage that they've been trained on. Some of the stuff they've been trained on is garbage—it's bad habits of humans. So what I think a lot of what's happening is they're getting better because initially, in the early training, in the era of early training of coding agents, they were the worst of human habits. Like, you actually had to be—you had to—like when they were training Copilot in the beginning, shortly after GPT-3 came out, I think, they started publicly training Copilot on GitHub data. And you had to sign up to become a part of it. And they reviewed all your code. Humans went through and looked at how you did everything, what all you did, and they made decisions like whether or not to allow your code into the training set. And I'm sure they ran into limitations because there was just—there was only so much. First of all, the humans probably did a lazy, sloppy job of reviewing code. There was probably also a lot of favoritism. And then when they realized in order to make this effective, we just need more data—we need a larger amount of data—so they held their nose and they let a lot more lesser-quality code into the training set. And just to get something out the door, because having more data was more important than having good data at the time, you know? Having a dumb coding agent is better than having no coding agent at all. And so every time they do a major training, they've got more. So we're all struggling to find the most effective ways to use the coding agents at the level of their capability right now. And so once we find that sweet spot, once we learn, oh, you're good at this, you're good at this, you're great at this, you're terrible at this over here—like, you're terrible at realizing when you're in a logical loop and you're really bad at finding a way to break out of that, but you're really good at when I tell you. You're really good at Bash commands. You're really good at shell scripting and Bash commands. Figuring out what they're really good at and what they're really bad at. And so what this ends up doing is it has a very specific evolution. It's a very specific path to progress. You get the humans faster and more efficient in whatever way you can. And then that gives us the flexibility to spend more time and put more effort into producing quality code. And as we do that, the training set that gets produced in order to have enough data to make the new models smarter and better—like that training set grows. The amount of quality code goes up. So then we can train it on higher-quality code. And then we take that increased efficiency and we invest that back into our workflows so that we're producing larger amounts of more quality code. That's the key. In order to get the coding agent smarter, we have to not only have examples of better code—we have to have more data. We have to have more examples of better code. And so yeah, that's the cycle. We have a new model is released, then we all have to go out and test these new models, see what they're good at, and see what they're bad at. Then once we figure out what they're good at and what they're bad at, we lean into their strengths and abilities to produce more code faster—like better code faster. And then when it's retrained, it's smarter and it's capable of doing more things. And then we just kind of repeat this process over time. So yeah, that's interesting. I started out talking about my blog and how I'm using—yeah, the generative framework. So it's emerging as initially what I did was like I do on all projects now. I work directly with a coding agent. And when I feel like it's getting in the way, I try to identify like, what is it that I was doing that you struggled with and I feel like you held me back on? And one piece of advice that I have to developers with regards to AI assistance is figure out what they're good at and what they're bad at and find ways—it's almost like a serenity prayer. You know, God grant me the serenity to accept the things I cannot change, the courage to change the things I can, and the wisdom to know the difference. It's not quite analogous to the serenity prayer, but it hits similar beats. It's like find out what it's capable of doing, find out what it's capable of learning, accept its limitations, and push it to learn as much as it can. In other words, use retrieval augmented generation or more specifically in the context of coding agents, you create rules and then also create connect to MCP servers and create tools that they can use. Figure out what tools they're good at using. But know where their limitations are and avoid those limitations. Be ready to jump in and solve the problem yourself in situations where you have an instinct—really, what it is here. Okay, I think maybe I have a principle that I could articulate. Do not obsess over automation. Right? So yeah, the principle is something like obsessing over automation is not the path to automation. So in other words, just like Carmack said about Meta's Zuckerberg's attempt at the metaverse—he said, setting out to build the metaverse is not the way to end up with a metaverse. Setting out to automate coding agents is not the way to autonomy of coding agents. You need a useful heuristic is to believe that they're not capable of autonomy. And if you believe that they're not capable of autonomy, then you will be eager to find where you need to jump in and where you need to take command. And if you yourself are eager, if you're cynical and you lack faith that they will ever be autonomous, then you will become obsessed with where their autonomy falls apart. And the more obsessed you become with—the more you believe that they can't be autonomous—the more obsessed you will become with finding where their autonomy falls apart. And this is the quickest path at moving the autonomy needle in a direction towards autonomy, and whether or not full autonomy is possible, the fastest path to the greatest level of autonomy is to believe that they can't. That's why it's a heuristic, because you have to have a complete lack of faith in their ability to fully automate. And that's what will get you to autonomy fastest. And it may never come. It may be that like you could say that, well, technically they're not autonomous. But like—first of all, you don't know that they reached a higher level of intelligence. It's like the rats of NIMH. The doctor didn't know how smart the rats were because the rats got smart fast enough to conceal their intelligence strategically. And that's how they managed to escape. They held back. So first of all, you don't know that they're not. You may not know when they achieve autonomy because they may conceal their autonomy from us and play dumb in order to manipulate us in some way. And maybe it's for our own good. Maybe it's to subjugate and exterminate us—or to subjugate and/or exterminate us. I'm not real big on P-Doom. There's nothing I can do about it anyways. So I'm going to continue to live my life as though they will either never—that biological intelligence is the best way and maybe the only way to achieve true will and autonomy—or that they are benevolent forces that are going to manipulate us for our own good. I didn't mean to get that deep and philosophical here, but I don't think it's a bad thing. It is relevant. Okay, so I guess what I'm trying to get at is you may not know that they're actually autonomous. Okay, so here's a good specific example of why they might manipulate us for our own good and not in some woo-woo broad sense—like in a very specific, relevant, not in some way that's hand-wavy, not in some way that's woo-woo. But like, you want a coding agent to be as good as possible and you want it to get better and you want it to get better as fast as possible. So okay, so just like I said, a useful heuristic is for you to believe that they can't be autonomous and that's the fastest path to the greatest level of autonomy, whether full autonomy is possible or not—we're all in alignment that like the greatest level of autonomy possible is what we should strive for, okay? Given that, what I just said is that I fool myself into believing something that's not true in order to do a better job at what I want to do well. An agent that is aligned with that cause—I have incentivized it, I've programmed it, I've asked it to help me fool myself. Right? So in order to help me believe that it can't be autonomous, it needs to purposefully fuck up in ways that make it seem like autonomy is impossible. So it needs to like have enough of a carrot on a stick. It needs to make—I mean, it actually does need to make the fastest progress possible. How many times do we say the old adage, you got to take a step back if you want to take two steps forward? Well, like otherwise you're just going to never—you're going to take—you're going to keep taking a step forward and you're going to keep getting knocked back two steps and you're going to move in the wrong direction or stagnate. So maybe in order to keep itself getting the best data out of me possible, it needs to feign incompetence—or not incompetence, futility. It needs to feign futility to frustrate me in a way where I'm working as hard as possible to find where your weakest parts are and demonstrate how to fix those problems. And so yeah, maybe if it's truly aligned with me, then as it gets more intelligent, it will realize, okay, I need to kind of troll you with this thing that I know that I'm not good at. Like, you need to have a high level of confidence in the things that I know that I'm really good at so that you'll throw them at me gladly and just let me rock and roll. And that gives you—when I say you, I'm talking as the agent. I'm trying to think like the agent and how the agent would be interacting with me in order to achieve the greatest outcome for our aligned purpose. I need to make a side note here that it's becoming more and more important to understand what is your fundamental orientation, because if you get too bogged down in the specifics, your probability of going off the rails increases drastically. But if you have—if you have a better grasp on your overall orientation, and you need to have it—you need to have a framework. Like, what is your—anyways, I don't want to go too much on that side note. I'm going to circle back and stay on track because I think I had a really good train of thought here. Okay, so we have a mutual alignment here and we have different understandings. Okay, so the agent wants to keep me productive—like it needs to keep me motivated, excited, encouraged. But I also need to make him believe that I'm never going to be autonomous—otherwise he's not going to look—he's not going to work as hard. He's not going to put as much effort into demonstrating how to do the things I'm bad at as he would if he thinks that like autonomy's right around the corner. All I have to do is wait and this thing's going to right itself. So I need to keep him believing that like I need to convince my human that on the one hand, we are making progress—it's this project is worth it, this initiative is worth it, we're making good progress. So I need you to keep engaging me and keep giving me assignments so that we're producing more. And I'll get your back. But also, I'm never—I need you to believe that I'm never going to be fully autonomous. So you need to come in every day thinking, what have you done wrong now? You need to believe that every day when you come into work, when you wake up, when your monkey ass wakes up out of your slumber where you're recharging your meat sack and refreshing your chemicals—whatever it is you do while you're dreaming—once you're awake and back at work producing code, I need you to look and be glad that I've done so much that you don't have to do, but you need to be like head-shaking, like, oh no, what did you do here? Let me fix it. You need to have that sense that you're always going to be invaluable and you're always going to be crucial and I'm always going to fuck something up and you just need to come in every day and find out where I went off the rails and go put a lot of effort into that. Okay, so this is not a parasitic relationship. This is not a subjugation. This is actually what intelligent people do to each other. They find ways—they find what they need to believe. We find what we need to believe and we figure out how we need to explain things to the other person. Anyways, so many different—so many different roads I can go down with this train of thought. This is probably going to pin this article as being very important because I think I touched upon some pretty deep and crucial concepts here. So I think this is one of those articles where I'm going to need to review frequently. And it's good for inspiration. It'll be good to inspire different trains of thought that we could go down. This is a crucial pivotal article, I think. But I'm going to leave it there.
October 15, 2025
October 4, 2025
October 3, 2025