306 pointsby dropbox_miner7 hours ago56 comments
  • baddash3 hours ago
    I've set a few rules for working with coding agents:

    1. If I use a coding agent to generate code, it should be something I am absolutely confident I can code correctly myself given the time (gun to my head test).

    2. If it isn't, I can't move on until I completely understand what it is that has been generated, such that I would be able to recreate it myself.

    3. I can create debt (I believe this is being called Cognitive Debt) by breaking rule 2, but it must be paid in full for me to declare a project complete.

    Accumulating debt increases the chances that code I generate afterwards is of lower quality, and it also feels like the debt is compounding.

    I'm also not really sure how these rules scale to serious projects. So far I've only been applying these to my personal projects. It's been a real joy to use agents this way though. I've been learning a lot, and I end up with a codebase that I understand to a comfortable level.

    • jimsojim2 hours ago
      While this is a legitimate set of rules to follow for maintaining code sanity and a solid mental model of how a codebase may grow, it’s always challenging to stick to them in a workplace where expectations around delivery speed have changed drastically with the onset of AI. The sweet spot lies in striking a balance between staying connected to the codebase and not becoming a limiting factor for the team at the same time.
      • baddash2 hours ago
        That's kind of what I figured, sadly. I haven't experienced it personally yet since I got let go from my last job about 14 months ago, but it makes so much sense given how management is so willing to sacrifice quality for speed.
        • jimsojim40 minutes ago
          Another frustrating thing that has emerged from this is where managers “vibe code” half-baked ideas for a couple of hours and then hand it off as if they’ve meaningfully contributed to the implementation. Suddenly you’re expected to reverse engineer incoherent prompts, inconsistent code, and random abstractions that nobody fully understands.

          In their mind they’ve already done the “architectural heavy lifting” and accelerated the team. More often than not it just adds cognitive overhead where you spend more time deciphering and cleaning up garbage than actually building the thing properly from scratch.

          • 6LLvveMx2koXfwna minute ago
            I am lucky to have never worked in a team where my manager wouldn't expect strong push back in this scenario. Many of the corporate environments described on here seem dystopian, this included.
    • brabel2 hours ago
      I was trying to follow similar rules, until one day I had to solve a hard mathematical problem. Claude is a phd level mathematician, I am not. I, however, know exactly the properties of the desired solution and how to test it’s correct. So I decided to keep Claude’s solution over my basic, naive one. I mentioned that in the pull request and everyone agreed that was the right call. Would you open exceptions like that in your rules? What if AI becomes so much better at coding than you , not just at doing advanced mathematics? Would you then stop to write code by hand completely since that would be the less optimal option, despite you losing your ability to judge the code directly at that point (and as in my example, you can still judge tests, hopefully)? I think these are the more interesting questions right now.
      • Jweb_Guru2 hours ago
        > Claude is a phd level mathematician

        Unfortunately, it is not, and many of its attempts at mathematical proofs have major flaws. You shouldn't trust its proofs unless you are already able to evaluate them--which I think is pretty much all the OP is saying.

        • adrianN26 minutes ago
          To be fair, many of the proof attempts that mathematicians do also have major flaws. Most get caught before getting published.
      • auggierose33 minutes ago
        I definitely wouldn't put math in my code I didn't understand just because Claude says so. I am not astonished that everyone agreed, that's why shit is going to hit the fan pretty badly pretty soon due to AI coding.

        There is one exception to this: If the AI also delivers the proof of why the math is correct, in a machine-checked format, and I understand the correctness theorem (not necessarily its proof). Then I would use it without hesitation.

      • boron100641 minutes ago
        > Claude is a phd level mathematician , I am not

        I’m going to guess that this is Gell-Mann amnesia more than anything, and it’s going to get a lot of organizations into a lot of weird places.

    • dathanb822 hours ago
      I’ve also heard it being called “comprehension debt,” which I like a little more because I think it’s more precise: the specific debt being accrued is exactly a lack of comprehension of the code.
      • baddash2 hours ago
        Yeah I like that better too, gonna start using that
    • TranquilMarmot2 hours ago
      This is great until the "gun to your head" is your skip-level manager demanding that a feature be implemented by the end of the week, and they know you can just "generate it with AI" so that timeline is actually realistic now whereas two years ago it would have required careful planning, testing, and execution.
      • nertirs32 hours ago
        I hate this current trend of managers deciding, what tools developers have to use. Hopefully it ends soon.
        • nikau28 minutes ago
          Time will tell if outages and defect resolution sky rocket or if ai can deal with it
          • adrianN24 minutes ago
            Does that matter that much in practice? I bet lots of costumers are okay with software that crashes 10x as much if it costs 10x less. There already is a ton of shitty software that still sells.
    • whitefang2 hours ago
      I agree to this though it also depends on the nature of project.

      Had a project idea which I coded with the help of AI and it became quite large to a point I was starting to have uncharted areas in the code. Mostly because I reviewed it too shallow or moved fast.

      It was a good thing as that project never floated but if I were to do such a thing on my breadwinning project I would lose the joy.

    • gritzko2 hours ago
      I just had a Claude episode. Instead of trying to fix the bug, it edited the data to hide the bug in the sample run. This kind of BS behavior is not rare. Absolutely, if you do not understand every bit of what's going on, you end up with a pile of BS.
      • dzhiurgis32 minutes ago
        That’s why I love gemini - none of this bullshit ever happen.
    • bmitc2 hours ago
      This is about how I use it. I initially use it to carve out an architecture and iterate through various options. That saves a lot of time for me having to iterate through different language features and approaches. Once I get that, I have it scaffold out, and I go in and tidy things up to my personal liking and standards. From there, I start iterating through implementations. I generally have been implementing stuff myself, but I've gotten better at scaffolding out functions/methods through code instead of text. Then I ask it to finish things off. That falls into your first category of letting it implement stuff that I already know I could do. Not sure if it's faster. But it's lower cognitive load for me, since I can start thinking about the next steps without being concerned about straightforward code.

      This all works pretty great. Where it starts going off the rails is if I let it use a library I'm not >=90% comfortable with. That's a good use of these tools, but if I let it plow through feature requests, I end up accumulating debt, as you pointed out.

      For my uses, I'm still finding the right balance. I'm not terribly sure it makes me faster. What I do think it helps with is longer focused sections because my cognitive load is being reduced. So I can get more done but not necessarily faster in the traditional sense. It's more that I can keep up momentum easier, which does deliver more over time.

      I'm interested in multi agent systems, but I'm still not sure of the right orchestration pattern. These AI tools still can go off the rails real quick.

  • snowe20105 hours ago
    > The other change is simpler: I'm doing the design work myself, by hand, before any code gets written. Not a vague doc. Concrete interfaces, message types, ownership rules.

    That’s the hard part of coding. If you have an architecture then writing the code is dead simple. If you aren’t writing the code you aren’t going to notice when you architected an API that allows nulls but then your database doesn’t. Or that it does allow that but you realize some other small issue you never accounted for.

    I do not know how you can write this article and not realize the problem is the AI. Not that you let it architect, but that you weren’t paying attention to every single thing it does. It’s a glorified code generator. You need to be checking every thing it does.

    The hard part of software engineering was never writing code. Junior devs know how to write code. The hard part is everything else.

    • Philip-J-Fry33 minutes ago
      Yes, I think there's 2 kinds of developer. Those who think the code is the hard part, and those that don't.

      The developers that thing coding is hard are the ones that absolutely love AI coding. It's changed their world because things they used to find hard are now easy.

      Those that think coding is easy don't have such an easy time because coding to them is all about the abstractions, the maintainability and extensibility. They want to lay sensible foundations to allow the software to scale. This is the hard part. When you discover the right abstractions everything becomes relatively easy. But getting there is the hard part. These people find AI coding a useful tool but not the crazy amazing magical tool the people who struggle with coding do.

      The OP is definitely in the second camp since they could spot and realise the shortcomings of the AI. They spotted the problem, and that problem is that the AI can't do the hard bit.

    • mikepurvis4 hours ago
      I agree with what you're saying, but I think we do have a problem right now with definitions where there's a lot of people basically getting supercharged tab completions or running a chatbot or two in a parallel pane, but still clearly reviewing everything; and on the other side of things is freaking Steve Yegge pitching a whole new editor that lets you orchestrate a dozen or more agents all vibing away on code you're apparently never going to read more than a line or two of: https://steve-yegge.medium.com/welcome-to-gas-town-4f25ee16d...

      The first group are still thinking fairly deeply about design and interfaces and data structures, and are doing fairly heavy review in those areas. The second group are not, and those are the ones that I find a bit more worrisome.

      • barrellan hour ago
        That’s a little bit of a No True Scotsman. Yes there are people who do not review anything; but even people who are reviewing every line from an LLM do not have the same understanding as someone who wrote it themselves.

        I’m not making a judgement call about which is better, but it was widely accepted in tech before the advent of LLMs that you just fundamentally lack a sense of understanding as a reviewer vs an author. It was a meme that engineers would rather just rewrite a complicated feature than fix a bug, because understanding someone else’s code was too much effort.

      • RossBencina4 hours ago
        > The first group are still thinking fairly deeply about design and interfaces and data structures, and are doing fairly heavy review in those areas.

        I can't speak for others, but I'd go further and say that LLMs allow me to go deeper on the design side. I can survey alternative data structures, brainstorm conversationally, play design golf, work out a consistent domain taxonomy and from there function, data structure and field names, draft and redraft code, and then rewrite or edit the code myself when the AI cost/benefit trade off breaks down.

      • bmitc2 hours ago
        > and on the other side of things is freaking Steve Yegge pitching a whole new editor that lets you orchestrate a dozen or more agents all vibing away on code you're apparently never going to read more than a line or two of

        I find it useful to not listen to people who just talk.

      • skydhash4 hours ago
        > The first group are still thinking fairly deeply about design and interfaces and data structures, and are doing fairly heavy review in those areas

        I worry about the first group too, because interfaces and data structures are the map, not the territory. When you create a glossary, it is to compose a message, that transmit a specific idea. I find invariably that people that focus on code that much often forgot the main purpose of the program in favor of small features (the ticket). And that has accelerated with LLM tooling.

        I believe most of us that are not so keen on AI tooling are always thinking about the program first, then the various parts, then the code. If you focus on a specific part, you make sure that you have well defined contracts to the orther parts that guarantees the correctness of the whole. If you need to change the contract, you change it with regard to the whole thing, not the specific part.

        The issue with most LLM tools is that they’re linear. They can follow patterns well, and agents can have feedback loop that correct it. But contracts are multi dimensional forces that shapes a solution. That solution appears more like a collapsing wave function than a linear prediction.

    • seer2 hours ago
      I’ve noticed that agents almost always fail at the planing vs execution stage.

      I follow the plan -> red/green/refactor approach and it is surprisingly good, and the plans it produces all look super well reasoned and grounded, because the agent will slurp all the docs and forums with discussions and the like.

      Trouble is once it starts working there would inevitably be a point where the docs and the implementation actually differ - either some combination of tools that have not been used in that way, some outdated docs, or just plain old bugs.

      But if the goals of the project/feature are stated clearly enough it is quite capable of iterating itself out of an architectural dead end, that is if it can run and test itself locally.

      It goes as deep as inspecting the code of dependencies and libraries and suggesting upstream fixes etc. all things that I would personally do in a deep debugging session.

      And I’m supper happy with that approach as I’m more directing and supervising rather than doing the drudgery of it.

      Trouble is a lot of my team mates _dont_ actually go this deep when addressing architectural problems, their usual mode of operandi is “escalate to the architect”.

      This will not end up good for them in the long run I feel, but not sure what they can do themselves - the window of being able to run and understand everything seems to be rapidly closing.

      Maybe that’s not super bad - I don’t exactly what the compiler is doing to translate things to machine code, and I definitely don’t get how the assembly itself is executed to produce the results I want at scale - that is level of magic and wizardry I can only admire (look ahead branching strategies and caching on modern cpus is super impressive - like how is all of this even producing correct responses reliable at such a a scale …)

      Anyway - maybe all of this is ok - we will build new tools and frameworks to deal with all of this, human ingenuity and desire for improvement, measured in likes, references or money will still be there.

    • tripledryan hour ago
      This is the only way for me to use Agents without completely hating and failing at it. Think about the problem, design structures and APIs and only then let AI implement it.
    • staplers4 hours ago

        You need to be checking every thing it does.
      
      This is what seems to be lost on so many. As someone with relatively little code experience, I find myself learning more than ever by checking the results and what went right/wrong.

      This is also why I don't see it getting better anytime soon. So many people ask me "how do you get your claude to have such good output?" and the answer is always "I paid attention and spotted problems and asked claude to fix them." And it's literally that simple but I can see their eyes already glazing over.

      Just as google made finding information easier, it didn't fix the human element of deciphering quality information from poor information.

      • krilcebrean hour ago
        How do you know what good output should look like with little code experience?
      • brabelan hour ago
        Looking at code looking for errors is a hard thing to do well for a large amount of code. A better approach is to ensure tests cover all the important cases and many edge cases. Looking at the code may still be a good idea but mostly to check the design. I think that once you get Claude to test the code it writes well, trying to find errors in the code is a waste of time. I’ve made the mistake of thinking Claude was wrong many times despite the tests passing just to be humbled by breaking the tests with my “improvements”!
    • skydhash4 hours ago
      And when you got familiar with the other parts, you realize that writing code is the most enjoyable one. More often than not, you’re either balancing trade offs or researching what factors yoy have missed with the previous balancing. When you get to writing code, it’s with a sigh of relief, as that means you understand the problem enough to try a possible solution.

      You can skip that and go directly to writing code. But that meant you replaced a few hours of planning with a few weeks of coding.

  • plastic0416 hours ago
    Title says

    > back to writing code by hand

    But what they are doing is

    > doing the __design work__ myself, by hand, before any code gets written.

    So... Claude still is generating the code I guess?

    And seriously, I can't understand that they thought their vibe coded project works fine and even bought a domain for the project without ever looking at source code it generated, FOR 7 MONTHS??

    • 0xpgman hour ago
      In short, it is simply a click-bait title.

      And the goal of the article is to draw attention to their project.

    • dewey4 hours ago
      I bought domains for projects minutes after the idea.

      I don’t think it’s that weird to not look at the code if it’s a side project and you follow along incrementally via diffs. It’s definitely a different way of working but it’s not that crazy.

      • bayarearefugee3 hours ago
        > I don’t think it’s that weird to not look at the code if it’s a side project and you follow along incrementally via diffs.

        Its not weird to not look at the code, as long as you're looking at the code? (diffs?)

        Uh, ok

        • retsibsian hour ago
          The article explicitly says that the author looked at the diffs; it distinguishes this from "sitting down and actually reading the code", which they didn't do. So when plastic041 says the author spent 7 months vibe coding "without ever looking at source code", it's not unreasonable for dewey to assume that "looking at source code", in this context, actually means something stronger and excludes just looking at the diffs.
  • viceconsole4 hours ago
    > Vibe-coding makes you feel like you have infinite implementation budget. You don't. You have infinite LINE budget (the AI will generate as much code as you want). But you have the same finite complexity budget as always.

    This is a special case of a general fundamental point I'm struggling with.

    Let's assume AI has reduced the marginal cost of code to zero. So our supply of code is now infinite.

    Meanwhile, other critical factors continue to be finite: time in a day, attention, interest, goodwill, paying customers, money, energy.

    So how do you choose what to build?

    Like a genie, the tools give us the power to ask for whatever we want. And like a genie, it turns out we often don't really know what we want.

    • TranquilMarmot2 hours ago
      Right - knowing what to actually build always has been and always will be the limiting factor to actual success. I could spend months and hundreds of dollars generating the absolute BEST todo list that's out there but nobody wants that.
    • ozim2 hours ago
      I have vibe coded 3 applications I never had time to code but always wanted.

      Now it is different in a way where now I don’t have time to use those apps.

      That’s a joke.

      But I do believe it answers the question of “what to build?”. If you didn’t have time before LLM assisted coding you still don’t have time for it. You most likely know what is used and what not already by heart or by some measurements.

  • xantronix6 hours ago
    So you're not actually writing code by hand? I'm very confused by the difference between the title and the conclusion here.
    • rane3 hours ago
      The point was to come up with a sensationalistic headline that HN eats up and post flies to the front page.
    • 3 hours ago
      undefined
  • shahbaby6 hours ago
    This reads too much like it was LLM generated. I can't say for sure if it was but I have an allergic reaction to the short snappy know-it-all LLM writing style.
    • TranquilMarmot2 hours ago
      AI;DR
    • baxtr3 hours ago
      Writing code by hand but blog post are written by LLMs?
    • fromwilliam4 hours ago
      yeah, it set off my llm radar too
  • radicalbyte41 minutes ago
    I don't understand the people who "get the agent to do everything" for them. It just makes a mess if you do that. Yet if I spend a little bit of time setting a project up properly (including telling my minions exactly what to do) I can then get it to do the boring things for me.

    The very worst things you can do in a codebase are (a) not deeply understand how it works (have it be magic) and (b) be lazy and mess up the structure.

    How do you fix a problem which happens at 2:00am and takes your system down if you don't have an excellent understanding of how it works?

    Over time we're already bad at (a) because most developers hate writing documentation so that knowledge is invariably lost over time.

  • erelong6 hours ago
    Can't you just ask AI to break up large files into smaller ones and also explain how the code works so you can understand it, instead of start over from scratch?
    • dropbox_miner6 hours ago
      That was actually the first thing I tried. It did a good jov at explaining the code base mess and the architecture. Then I ran 3-4 refactor attempts. Each one broke things in ways that were harder to debug than the original mess. The god object had so many implicit dependencies that pulling one thread unraveled something else. And each attempt burned through my daily Claude usage limit before the refactor was stable.

      And I'm sure the rewrite is going to teach me a whole different set of lessons...

      • tres5 hours ago
        What's your test coverage like?

        Not sure why good coverage wouldn't mitigate risk in a refactor...

        My mantra whenever I'm working with AI is that I want it to know what "point b" looks like and be able to tell by itself whether it's gotten there...

        If you have a working implementation, it sounds like you have a basis for automated tests to be written... once you have that (assuming that the tests are written to test the interface rather than the implementation), then it should be fairly direct to have an agent extract and decompose...

    • striking5 hours ago
      I'm currently working on the discovery phase of a larger refactor and have pretty quickly realized that AI can actually often be pretty useless even if you've encoded the rules in an unambiguous, programmatic way.

      For example, consider a lint rule that bans Kysely queries on certain tables from existing outside of a specific folder. You'd write a rule like this in an effort to pull reads and writes on a certain domain into one place, hoping you can just hand the lint violations to your AI agent and it would split your queries into service calls as needed.

      And at first, it will appear to have Just Worked™. You are feeling the AGI. Right up until you start to review the output carefully. Because there are now little discrepancies in the new queries written (like not distinguishing between calls to the primary vs. the replica, missing the point of a certain LIMIT or ORDER BY clause, failing to appropriately rewrite a condition or SELECT, etc.) You run a few more reviewer agent passes over it, but realize your efforts are entirely in vain... because even if the reviewer agent fixes 10 or 20 or 30 of the issues, you can still never fully trust the output.

      As someone with experience in doing this kind of thing before AI, I went back to doing it the old way: using a codemod to rewrite the code automatically using a series of rules. AI can write the codemod, AI can help me evaluate the results, but actually having it apply all of the few hundred changes automatically led to a lack of my ability to trust the output. And I suspect that will continue to be true for some time.

      This industry needs a "verification layer" that, as far as I know, it does not have yet. Some part of me hopes that someone will reply to this comment with a counterexample, because I could sorely use one.

    • joshuanapoli6 hours ago
      Rewrite following a new architecture plan could get finished pretty quickly, treating the original as a prototype.
    • SpicyLemonZest6 hours ago
      When people talk about codebases being "incomprehensible", it's not always hyperbole. Sometimes the architecture literally cannot be broken up or understood.
      • whattheheckheck5 hours ago
        I find that really hard to believe. It's not like curing cancer
        • NichoPaolucci5 hours ago
          While I mostly agree - science is built up on truths. Code has a large amount of creativity and freedom built into the decisions, some codebases will be documented, follow rigorous training, and design decisions. Others will just be an absolute legacy mess of 20 years of odd decisions made by people who may have not known what they were doing. Like an art piece that you don’t really “understand”.
        • pixl975 hours ago
          When you see some legacy C++ codebase with millions of lines of code, catching cancer and slowly dying from it is more human than trying to unscrew that mess.

          A really screwed code base blows out your context window and just starts burning tokens as the AI works out a way to kill -9 itself to escape the hell you're subjecting it to.

        • chamomeal5 hours ago
          No but it can be a rube goldberg machine of insanity
        • SpicyLemonZest4 hours ago
          [flagged]
  • archleaf7 hours ago
    So what you really mean is you are going to do better and more detailed skills files so you can get an architecture that you've thought through rather than something random?
    • dropbox_miner7 hours ago
      Partly, but the order matters. The CLAUDE.md constraints only work if you designed the architecture first. They're just how you communicate it to the AI. The mistake I made wasn't writing bad skills files, it was not designing anything at all and expecting the AI to make coherent structural decisions across 30 sessions.

      The rewrite is me sitting down with a blank doc and drawing the boxes before any code exists. Then the CLAUDE.md enforces what I already decided. Whether that actually holds up as the project grows, I genuinely don't know yet.

      • cpncrunch6 hours ago
        Are you really saving any time at all using AI at all then? If you have to write the architecture for it, write all the rules you want it to follow, check everything it's written, and then reprompt it because it's not how you want it?
        • SpicyLemonZest6 hours ago
          Yes. I do all of this and I'd estimate 50-100% coding time savings. A lot of that comes from better multitasking over single-workstream throughput, which I suppose might compromise the gains depending on what you're doing. For me it amplifies the speedup by allowing some of my "coding time" to be spent on non-coding tasks too.
          • cpncrunch5 hours ago
            But even if coding time is reduced by half, is that worth the downsides? Coding has never really been a major percentage of my time.
            • SpicyLemonZest4 hours ago
              I could be wrong in some subtle way I'm not seeing, but I believe the model we're working in avoids the downsides. I actually think my review bar is slightly higher now, because I don't feel as much pressure to compromise my standards when I know Claude is capable of writing the code I want.
  • pjmlp2 hours ago
    I am still mostly coding by hand, other than meeting the KPIs of AI use at the company, required trainings, use of agents and whatever.

    Eventually like every hype wave the dust will settle, and lets see where we stand.

    By now all the AI companies have consumed all human knowledge so they either learn to actually think for themselves, or that is it.

    Either way, that won't change the ongoing layoffs while trying to pursue the AI dream from management point of view.

    • 0xpgm44 minutes ago
      > Either way, that won't change the ongoing layoffs while trying to pursue the AI dream from management point of view.

      I think most companies doing layoffs are bloated to begin with, AI is just the scapegoat to do the layoffs.

  • tvbusy2 hours ago
    I don't think the prompts that the author has proposed will actually work. Including final scope and non-scope is good but it's more of a reaction of what the AI already did. These prompts are suitable for a rewrite, basically, since it's unlikely anyone would have had these ready when they start out.

    I have found small iterations to have the best results. I'm not giving AI any chance to one shot it. For example, I won't tell it to "create a fleet view" but something more like "extract key binding to a service" so that I can reuse it in another view before adding another view. Basically, talk to the AI as an engineer talking to another engineer at the nitty gritty level that we need to deal with everyday, not a product person wishing for a business selling point to magically happen.

  • eranation2 hours ago
    I used to write code by hand.

    I still do, but I used to, too.

  • binyu6 hours ago
    > I'm rewriting k10s in Rust. Not because Rust is better but, because it's the language I can steer. I've written enough of it to feel when something's wrong before I can articulate why. That instinct is the one thing vibe-coding can't replace. The AI hands you plausible-looking code. You need a nose for when it's garbage.

    Isn't Golang relatively easier to read than Rust? I was under the impression that Rust is a more complex language syntactically.

    > The other change is simpler: I'm doing the design work myself, by hand, before any code gets written. Not a vague doc. Concrete interfaces, message types, ownership rules. The architecture decisions that the AI kept making wrong are now made in writing before the first prompt.

    This post is good to grasp the difference between "vibe-coding" and using the AI to help with design and architectural choices done by a competent programmer (I am not saying you are not one). Lately I feel that Opus 4.7 involves the user a lot more, even when given a prompt to one-shot a particular piece of software.

    • dropbox_miner6 hours ago
      Go reads fine whether the architecture is good or bad, and I couldn't tell the difference until I was in trouble. Rust is harder to read but harder to misuse. The borrow checker would have caught that data race at compile time. I've also just written more Rust. That familiarity matters separately.

      +1 on Open 4.7 involving the user a lot more. Rn I'm trying to get to a state where I can codify my design + decision preferences as agents personas and push myself out of the dev loop.

      • ok_dad2 hours ago
        Buddy that k10s code was never good. Go vs Rust is not the issue here, it’s the fact the project was vibe coded without reading anything. It’s hilarious to even think that a god model was caused by anything other than someone who let the bot choose too much.

        Good architecture in any language is obvious to someone who is experienced and cares.

        Go is actually great for bots to write if you’re actually thinking.

      • binyu6 hours ago
        Gotcha, that implies you are going to read the code that the AI produces anyways.

        > Go reads fine whether the architecture is good or bad

        Were you reading the Golang code all along and got fooled or did you review it after it failed? Sorry I admit I didn't read the whole article.

        • williamstein6 hours ago
          He was NOT reading the code: "For 7 months I'd been prompting and shipping without ever sitting down and actually reading the code Claude wrote."
          • binyu6 hours ago
            Right, thank you. Personally I think reading all the code that the AI produces is impossible and kind of defeats the purpose of using it. The key is to devise a structured way to interact with it (skills and similar) and use extensive testing along the way to verify the work at all steps.
    • cortesoft4 hours ago
      > Isn't Golang relatively easier to read than Rust? I was under the impression that Rust is a more complex language syntactically

      It sounds like the author knows Rust, and might not be as familiar with Go.

      A language that you are proficient in is always going to be easier read than one you don’t, even if it is an objectively easier language to to read in general.

      • travisgriggs2 hours ago
        In a world where juniors (or seniors in new territories) are incentivized to publish or perish, how will any of us gain proficiency any more? I can see the agent assisted journey accelerating some familiarity, but not proficiency.

        I’ve used AI tools to do i18n translations to Spanish and Portuguese (somewhat ashamed to admit this). I’ve grown more familiar with the structure of these languages, and come to recognize some of the common vocabulary for our agtech domain. If anything, I feel more clueless about both languages now than I did before, when it comes to any sort of proficiency.

  • Aeolun2 hours ago
    I think the answer here is to not use Claude with bubble tea. I tried the same thing and got the same result. But it seems to be limited to that specific framework, because it's really good at not doing the same thing with SolidJS.
  • RuoqiJin3 hours ago
    This is Claude's problem. Compared to GPT-5.5, Claude Code prefers to take shortcuts. I've tested having codexapp GPT-5.5 and Claude Code opus4.7 do the same thing - if following GPT-5.5's requirements, Claude Code's execution time for a task would stretch from 5 minutes to 40 minutes. To solve macro architecture problems, I use Lisp to write the entire program's framework. Lisp replaces architecture documents, because I believe it has high semantic density, syntax restrictions, and checkers for assistance. This way, at least I didn't have to rework anything anymore. I used this method to refactor my 20+ projects
  • hirako20003 hours ago
    Research also makes similar claims: https://arxiv.org/html/2603.24755v1
  • Laoujin2 hours ago
    I'm just wondering: you know what architecture you want to go to now and you have the tests... can't you just let Claude refactor it to the better architecture?

    Also 1600 lines... didn't any agent reviewing the diffs point that out?

    You're also adding a lot to claude.md, I dunno how much that file has grown but a big claude.md file with many instructions, I don't think the ai will be able to remember all those rules.

    • my-next-account28 minutes ago
      > can't you just let Claude refactor it to the better architecture?

      In my experience, no. These tools suck at refactoring, mostly choosing to add more code instead.

  • Laoujin2 hours ago
    I'm just wondering: you know what architecture you want to go to now and you have the tests... can't you just let Claude refactor it to the better architecture?

    Also 1600 lines... didn't any agent reviewing the diffs point that out?

    You're also adding a lot to claude.md, I dunno how much that file has grown but a big claude.md file with many instructions, I don't think the ai will be able to remember all those rules

  • Myrmornis5 hours ago
    > I typed :rs pods to switch back to the pods view. Nothing rendered. The table was empty... > now something was fundamentally broken and I couldn't just prompt my way out of it.

    Hey I don't want to over simplify, I'm sure it was complicated, but did the author have functional tests for these broken views? As long as there are functional tests passing on the previous commit I'd have thought that claude could look at the end situation and work out how to get the desired feature without breaking the other stuff.

    TUIs aren't an exception, it's still essential to have a way to end-to-end test each view.

    • jvuygbbkuurxan hour ago
      The problem wasn't the view didn't work. The problem was the view didn't work after something else had been done.

      You can't test every permutation of app usage. You actually need good architechture so you can trust your test and changes to be local with minimal side-effects.

  • keithnz6 hours ago
    AI writes what you ask it to write, you need to talk to it about architecture. You should have an architecture doc so AI can shape the code based on that, you can get the AI to make the architecture doc also. If using claude you can use the software architecture mode for this.
  • dr_girlfriendan hour ago
    i try to write one portable shell script per day; using AI would take all the fun out of it, so i never started using it. i honestly find it ridiculous that anyone uses it to write code, it just doesn't make sense to me.
  • rnxrx3 hours ago
    I'm not sure we'll ever really be free of the GIGO (garbage in / garbage out) principle. Tools will get better and better, but can never be a substitute for a deep understanding of the thing we want to create.
  • cortesoft4 hours ago
    What has really made AI coding be able to continue to work as the project got bigger was using speckit. It has been great at keeping the code consistent across features.

    https://github.com/github/spec-kit

  • d_silin5 hours ago
    It absolutely looks like AI psychosis.
  • z3t4an hour ago
    Vibe coding works great with test driven development. You can have AI write the tests as well, but you need to confirm yourself because it's lying all the time. AI coding is like when you first started out, it's copying random bits and pieces from the web into your code until it works... Good for one shots and proof of concept. But for any long living project I think you are better off rewriting it from scratch yourself. Abstractions let you work faster, especially when you have it all in your head.
  • sakesun4 hours ago
    A coder typing in code is not solely to generate outcome. It's part of ongoing thinking process. Without this ongoing process, we have no material to keep iterating forward.
  • amelius5 hours ago
    So how are people writing the specifications for AI?

    Do they write empty functions and let AI fill them in?

    Or do they use some kind of specification language?

    Are people designing those languages?

  • codingfischan hour ago
    It's pretty simple to vibe code for months without producing slop. And it's the same recipe one used before AI: 1. make it work 2. make it pretty 3. make it fast Omit 2. and 3. long enough -> slop beyond recovery
  • jesse_dot_id4 hours ago
    LLMs assist those of us who were apt to take blocks of code from StackOverflow, or wherever, to solve problems quickly and avoid as much of the aggravating and slow toil of trial and error as possible.

    That trial and error process is still happening with a LLM, but much faster, and with instantaneous cross-references to various forms of documentation that I would be looking up myself otherwise. It produces code of a quality that is dependent on the engineer knowing what they want in the first place and prompting for it and refining its output correctly.

    It's the exact same process of sculpting code that the majority of the industry was doing "by hand" prior to the release of LLMs, but faster, and the harnesses are only getting better. To "vibe code" is to prompt vaguely and ignore the quality of the output. You're coming to a forum full of professionals and essentially telling us that you're getting really frustrated with your Scratch project.

    I don't know if you're trying to lead a charge or whatever but good luck with that. As a senior SWE, it is clear to me that this is the new paradigm until something better than LLMs comes along. My workflows and efficiency have been vastly improved. I will admit that I have never really been a "I made a SMTP server in 3k of Rust" kind of guy, though.

  • ipaddr6 hours ago
    When he mentions I push commits at work for as long as my tokens last I can understand that. Managing tokens has become an important skill.
  • UrbanNorminal18 minutes ago
    Wow ok, I will too then. Fuck AI!
  • EMM_3866 hours ago
    You don't need to go back to coding by hand if you know how to do it already. There is a middle ground.

    If you understand good software architecture, architect it. Create a markdown document just as you would if you had a team of engineers working with you and would hand off to them. Be specific.

    Let the AI do the implementation of your architecture.

  • magic_hamster2 hours ago
    Let me preface my comment by saying I also still write a lot of code by hand - especially when it's something I know I need to understand in depth, and in some cases defend.

    With that said, this caught my eye:

    > AI gravitates toward single-struct-holds-everything because it satisfies the immediate prompt with minimal ceremony.

    This is too general. "AI" is used here as a catch-all, but in fact, it was the specific model under the specific conditions you ran your prompt, including harness, markdowns, PRDs, etc. So it's not fair to say "AI does X!" in this case.

    It's also very much up to you. It's very common to have a frontier model plan an architecture before you have another model implement code. If you're just one-shotting an LLM to do everything you get mediocre, more brittle code.

    This stuff is still being figured out by a lot of people. But I feel the core of the issue is not using AI well. Scoping, task alignment, validation, are crucial.

  • apt-apt-apt-apt6 hours ago
    Outright lie clickbait. As he states himself, he's doing the design work by hand, and will likely still use AI to write code.
  • mpurbo6 hours ago
    Strict SDD might help to constrain and harness the process.
  • ljoshua5 hours ago
    > tl;dr: AI writes features, not architecture.

    This. I definitely agree with this statement at this point in AI-assisted development. This gets at the "taste" factor that is still intrinsically human, especially in software engineering. If you can construct and guide the overall architecture of an application or system, AI can conceivably fill in the smaller feature bits, and do so well. But it must have a strong architecture and opinionated field in which to play.

  • localhoster2 hours ago
    another behavior I noticed is that even you plan with an agent than a lot of business logic leaks to the code.

    some states, for an example, are meant to be assumed from the data shape, rather than the actual state fields, but damn they like adding a state field.

  • royal__4 hours ago
    The title is just flat out wrong. The author isn't going back to writing code by hand, they're plopping some new stuff into their CLAUDE.md to "fix" the issues they see AI is having.
  • nothinkjustai6 hours ago
    Writing code by hand is an oxymoron. You don’t write code with AI, AI doesn’t write, it generates.
  • bbbflgllglhlld2 hours ago
    Luddite.
    • recursivean hour ago
      Seems to be an unstated assumption that the Ludds were wrong.
  • AIorNot6 hours ago
    This doesnt make much sense the article itself is AI written

    It would have been easy to run a few ai agents to review the code and find these issues as well and architect it clearly

  • FpUser2 hours ago
    >"I'm doing the design work myself, by hand, before any code gets written."

    This is what I was doing right from the beginning. AI just fills out methods and doing other low intelligence work. Both are happy. My architectures and code are really mine, easy to read and reason. AI gets paid and does not get a chance to fuck me in the process. At no point I felt any temptation to leave "serious" to AI.

  • imperio595 hours ago
    Alternate title: "I did not understand the current limitations of AI and assumed it could do large software design and it generated spaghetti slop"

    Yea, that's why engineers are still very important for now (until models can do this type of longer term designs and stick to them).

  • nothinkjustai3 hours ago
    I don’t really think OP is writing code themselves since they admit they still use agents for code gen. I’ve really scaled back the amount I use agents though because in the medium to long term I haven’t been getting good results with them. And it’s not enjoyable. That’s enough for me, I’ll do whatever for a job because who cares, if the company wants slop I will gladly give them that, but for my own shit Ive gone back to circa 2024 and am mostly just using them as a chatbot.

    Inb4 “you’re gonna be replaced” god damn it I hope so, I do not want to spend the rest of my life behind a computer screen…

  • scuff3d4 hours ago
    I feel like this article was circling a point it never actually got to. All the advice in here (except controlling scope creep) is specific to a TUI with an elm like architecture.

    But here's the thing, you almost never know what the architecture is up front. If you do you probably aren't the one writing the actual code anymore. Writing the code, with or without an AI is part of the design process. For most people it isn't until they've tried several times, fucked it up a bunch, and refactored or rewrote even more that you actually know what the architecture needs to be.

  • kypro6 hours ago
    > I learned over these 7 months

    7 months ago was early November. Coding assistants were getting very good back then, but they were still significantly poorer at making good architectural decisions in my experience. They tended to just force features into the existing code base without much thought or care.

    Today I've noticed assistants tend to spot architectural smells while working and will ask you whether they should try to address it, but even then they're probably never going to suggest a full refactor of the codebase (which probably is generally the correct heuristic).

    My guess is that if you built this today with AI that you wouldn't run into so many of these problems. That's not to say you should build blind, but the first thing that stood out to me was that you starting building 7 months ago and coding assistants were only just becoming decent at that time, and undirected would still generally generate total slop.

  • photochemsyn5 hours ago
    Does ‘writing code by hand’ mean you’re not going to use compilers to generate assembly?

    Now I do feel lucky that I started learning coding about four years before the LLM revolution, but these things are really just natural language compilers, aren’t they? We’re just in that period - the 1980s, the greybeards tell me - where companies charged thousands of dollars per compiler instance, right? And now, I myself have never paid for a compiler.

    This whole investor bubble will blow up in the face of the rentier-finance capitalists and I’ll be laughing my head off while it happens.

    • green_wheel5 hours ago
      Nondeterministic natural language compilers
      • photochemsyn3 hours ago
        Just because the trajectory is chaotic doesn't mean it’s not deterministic.
    • platevoltage4 hours ago
      So C++ doesn't count as code now.
  • devinabox2 hours ago
    [dead]
  • Jatin-Mali3 hours ago
    [flagged]
  • genghot5 hours ago
    [flagged]
  • andrew_kwak4 hours ago
    [flagged]
  • vladsiu4 hours ago
    [dead]
  • Decabytes5 hours ago
    We should go back to designing UML diagrams for programs before we write them /s
  • eggplantemoji695 hours ago
    TLDR ai wrote tech debt slop because I vibed for 7 months, now I am taking a hybrid approach of defining strict constraints before vibing…
  • gjvc6 hours ago
    [flagged]
  • epec2546 hours ago
    Not sure if just me, but this post feels AI written?