5 ms·
I write detailed specs. Multifile with example code. In markdown. Then hand over to Claude Sonnet. With hard requirements listed, I found out that the generat
by wg0 6mo ago
I write detailed specs. Multifile with example code. In markdown.
Then hand over to Claude Sonnet.
With hard requirements listed, I found out that the generated code missed requirements, had duplicate code or even unnecessary code wrangling data (mapping objects into new objects of narrower types when won't be needed) along with tests that fake and work around to pass.
So turns out that I'm not writing code but I'm reading lots of code.
The fact that I know first hand prior to Gen AI is that writing code is way easier. It is reading the code, understanding it and making a mental model that's way more labour intensive.
Therefore I need more time and effort with Gen AI than I needed before because I need to read a lot of code, understand it and ensure it adheres to what mental model I have.
Hence Gen AI at this price point which Anthropic offers is a net negative for me because I am not vibe coding, I'm building real software that real humans depend upon and my users deserve better attention and focus from me hence I'll be cancelling my subscription shortly.
- gwerbin 6mo agoOr just don't use AI to write code. Use it as a code reviewer assistant along with your usual test-lint development cycle. Use it to help evaluate 3rd party libraries faster. Use it to research new topics. Use it to help draft RFCs and design documents. Use it as a chat buddy when working on hard problems. I think the AI companies all stink to high heaven and the whole thing being built on copyright infringement still makes me squirm. But the latest models are stupidly smart in some cases. It's starting to feel like I really do have a sci-fi AI assistant that I can just reach for whenever I need it, either to support hard thinking or to speed up or entirely avoid drudgery and toil. You don't have to buy into the stupid vibecoding hype to get productivity value out of the technology. You of course don't have to use it at all. And you don't owe your money to any particular company. Heck for non-code tasks the local-capable models are great. But you can't just look at vibecoding and dismiss the entire category of technology.
- onlyrealcuzzo 6mo ago> Or just don't use AI to write code. Anecdata, but I'm still finding CC to be absolutely outstanding at writing code. It's regularly writing systems-level code that would take me months to write by hand in hours, with minimal babysitting, basically no "specs" - just giving it coherent sane direction: like to make sure it tests things in several different ways, for several different cases, including performance, comparing directly to similar implementations (and constantly triple-checking that it actually did what you asked after it said "done"). For $200/mo, I can still run 2-3 clients almost 24/7 pumping out features. I rarely clear my session. I haven't noticed quality declines. Though, I will say, one random day - I'm not sure if it was dumb luck - or if I was in a test group, CC was literally doing 10x the amount of work / speed that it typically does. I guess strange things are bound to happen if you use it enough? Related anecdata: IME, there has been a MASSIVE decline in the quality of claude.ai (the chatbot interface). It is so different recently. It feels like a wanna-be crapier version of ChatGPT, instead of what it used to be, which was something that tried to be factual and useful rather than conversational and addictive and sycophantic.
- ghurtado 6mo ago> basically no "specs" - just giving it coherent sane direction This is one variable I almost always see in this discussion: the more strict the rules that you give the LLM, the more likely it is to deeply disappoint you The earlier in the process you use it (ie: scaffolding) the more mileage you will get out of it It's about accepting fallability and working with it, rather than trying to polish it away with care
- phatskat 6mo agoTo me this still feels like it would be a net negative. I can scaffold most any project with a language/stack specific CLI command or even just checking out a repo. And sure, AI could “scaffold” further into controllers and views and maybe even some models, and they probably work ok. It’s then when they don’t, or when I need something tweaked, that the worry becomes “do I really understand what’s going on under the hood? Is the time to understand that worth it? Am I going to run across a small thread that I end up pulling until my 80% done sweater is 95% loose yarn?” To me the trade-off hasn’t proven worth it yet. Maybe for a personal pet project, and even then I don’t like the idea of letting something else undeterministically touch my system. “But use a VM!” they say, but that’s more overhead than I care for. Just researching the safest way to bootstrap this feels like more effort than value to me. Lastly, I think that a big part of why I like programming is that I like the act of writing code, understanding how it works, and building something I _know_.
- michaelmrose 6mo agoA lot of the benefit of scaffolding is building basic context which you can also build by feeding it the files produced by whatever CLI tool and talk about it forcing it to think for lack of a better word about your design. You can also force feed it design and api documentation. If you think that you have given it too much you are almost certainly wrong. Doing nonsensical things with a library feed it the documentation still busted make it read the source
- mlinsey 6mo agoMy anecdata is that it heavily depends on how much of the relevant code and instructions it can fit in the context window. A small app, or a task that touches one clear smaller subsection of a larger codebase, or a refactor that applies the same pattern independently to many different spots in a large codebase - the coding agents do extremely well, better than the median engineer I think. Basically "do something really hard on this one section of code, whose contract of how it intereacts with other code is clear, documented, and respected" is an ideal case for these tools. As soon as the codebase is large and there are gotchas, edge cases where one area of the code affects the other, or old requirements - things get treacherous. It will forget something was implemented somewhere else and write a duplicate version, it will hallucinate what the API shapes are, it will assume how a data field is used downstream based on its name and write something incorrect. IMO you can still work around this and move net-faster, especially with good test coverage, but you certainly have to pay attention. Larger codebases also work better when you started them with CC from the beginning, because it's older code is more likely to actually work how it exepects/hallucinates.
- buredoranna 6mo ago> the whole thing being built on copyright infringement I am not a lawyer, but am generally familiar with two "is it fair use" tests. 1. Is it transformative? I take a picture, I own the copyright. You can't sell it. But if you take a copy, and literally chop it to pieces, reforming it into a collage, you can sell that. 2. Does the alleged infringing work devalue the original? If I have a conversation with ai about "The Lord of the Rings". Even if it reproduces good chunks of the original, it does not devalue the original... in fact, I would argue, it enhances it. Have I failed to take into account additional arguments and/or scenarios? Probably. But, in my opinion, AI passes these tests. AI output is transformative, and in general, does not devalue the original.
- jjwiseman 6mo agoAnd in Bartz v. Anthropic, the court found that Anthropic training their LLMs on books was "highly transformative."
- taikahessu 6mo agoIn order for LLM to be useful, you need to copy and steal all of the work. Yes, you can argue you don't need the whole work, but that's what they took and feed it in. And they are making money off of other people's work. Sure, you can use mental jiujutsu to make it fair use. But fair use for LLMs means you basically copy the whole thing. All of it. It sounds more like a total use to me. I hope the free market and technology catches up and destroys the VC backed machinery. But only time will tell.
- ragequittah 6mo agoI always wonder if anyone out there thinks they're not making money off of other people's work. If you're coding, writing a fantasy novel, taking a photograph or drawing a picture from first principals you came up with yourself I applaud you though.
- taikahessu 6mo agoYou are absolutely right. Seriously though, I do think that is the case. It would be self-righteous to argue otherwise. It's just the scale and the nature of this, that makes it so repulsive. For my taste, copying something without permission, is stealing. I don't care what a judge somewhere thinks of it. Using someone's good will for profit is disgusting. And I hope we all get to profit from it someday, not just a select few. But that is just my opinion.
- scuderiaseb 6mo agoI must be doing something very different from everyone else, but I write what I want and how I want it and Opus 4.7 plans it for me, then I carefully review. Often times I need to validate and check things, sometimes I’ve revised the plan multiple times. Then implementation which I still use Opus for because I get a warning that my current model holds the cache so Sonnet shouldn’t implement. And honestly, I’m mostly within my Pro subscription, granted I also have ChatGPT Plus but I’ve mostly only used that as the chat/quick reference model. But yeah takes some time to read and understand everything, a lot of the time I make manual edits too.
- wg0 6mo ago>Then implementation which I still use Opus for because I get a warning that my current model holds the cache so Sonnet shouldn’t implement. This is based on the premise that given detailed plan, the model will exactly produce the same thing because the model is deterministic in nature which is NOT the case. These models are NOT deterministic no matter how detailed plan you feed it in. If you doubt, give the model same plan twice and see something different churned out each time. > And honestly, I’m mostly within my Pro subscription, granted I also have ChatGPT Plus but I’ve mostly only used that as the chat/quick reference model. But yeah takes some time to read and understand everything, a lot of the time I make manual edits too. I do not know how you can do it on a Pro plan with Claude Opus 4.7 which is 7.5x more in terms of limit consumption and any small to medium size codebase would easily consume your limits in just the planning phase up to 50% in a single prompt on a Pro plan (the $20/month one that they are planning to eliminate)
- scuderiaseb 6mo ago> I do not know how you can do it on a Pro plan with Claude Opus 4.7 which is 7.5x more in terms of limit consumption and any small to medium size codebase would easily consume your limits in just the planning phase up to 50% in a single prompt I also don’t understand because all I ever hear is people saying $100 Max plan is the minimum for serious work. I made 3-4 plans today, I’m familiar with the codebase and pointed the LLM in the direction where it needed to go. I described the functionality I wanted which wasn’t a huge rewrite, it touched like 4 files of which one was just a module of pydantic models. But one plan was 30% of usage and I had this over two sessions because I got a reset. I did read and understand everything line of code so that part takes me some time to do.
- Aurornis 6mo agoWriting detailed specs and then giving them to an AI is not the optimal way to work with AI. That's vibecoding with an extra documentation step. Also, Sonnet is not the model you'd want to use if you want to minimize cleanup. Use the best available model at the time if you want to attempt this, but even those won't vibecode everything perfectly for you. This is the reality of AI, but at least try to use the right model for the job. > Therefore I need more time and effort with Gen AI than I needed before Stop trying to use it as all-or-nothing. You can still make the decisions, call the shots, write code where AI doesn't help and then use AI to speed up parts where it does help. That's how most non-junior engineers settle into using AI. Ignore all of the LinkedIn and social media hype about prompting apps into existence. EDIT: Replaced a reference to Opus and GPT-5.5 with "best available model at the time" because it was drawing a lot of low-effort arguments
- mandeepj 6mo agoSure, Opus is next level than Sonnet, but it still doesn't free OP from these handcuffs - It is reading the code, understanding it and making a mental model that's way more labour intensive.
- Aurornis 6mo agoThe OP's problem was treating the situation as two extremes: Either write everything myself, or defer entirely to the AI and be forced to read it later. I was trying to explain that this isn't how successful engineers use AI. There is a way to understand the code and what the AI is doing as you're working with it. Writing a spec, submitting it to the AI (a second-tier model at that) and then being disappointed when it didn't do exactly what you wanted in a perfect way is a tired argument.
- hunterpayne 6mo agoIs doing that faster than just writing it by hand? Remember to include the time you need to review the code afterwards. The research so far says it isn't faster. Yet people keep doubling down on it and thinking winning an Internet argument is going to matter when it hits the fan in the near future.
- hintymad 6mo ago> With hard requirements listed, I found out that the generated code missed requirements, This is hardly a surprise, no? No matter how much training we run, we are still producing a generative model. And a generative model doesn't understand your requirements and cross them off. It predicts the next most likely token from a given prompt. If the most statistically plausible way to finish a function looks like a version that ignores your third requirement, the model will happily follow through. There's really no rules in your requirements doc. They are just the conditional events X in a glorified P(Y|X). I'd venture to guess that sometimes missing a requirement may increase the probability of the generated tokens, so the model will happily allow the miss. Actually, "allow" is too strong a word. The model does not allow shit. It just generates.
- teucris 6mo agoBut agents do keep task lists and check the tasks off as they go. Of course it’s not perfect either but it’s MUCH better than an LLM can offer on its own. If you are seeing an agent missing tasks, work with it to write down the task list first and then hold it accountable to completing them all. A spec is not a plan.
- mathisfun123 6mo agobro do you really not understand that that's a game played for your sake - it checks boxes yes but you have no idea what effect the checking of the boxes actually has. like do you not realize/understand that anthropic/openai is baking this kind of stuff into models/UI/UX to give the sensation of rigor.
- _puk 6mo agoNot to knee jerk on a bro comment, but, bro.. Are you seriously saying that breaking a large complex problem down into it's constituent steps, and then trying to solve each one of them as an individual problem is just a sensation of rigour?
- 6mo ago
- dannersy 6mo agoBeautifully stated and I couldn't agree more. This is my experience.
- rob 6mo agoI use the "Superpowers" plugin that creates an initial spec via brainstorming together, and then takes that spec and creates an implementation spec file based on your initial spec. It also has other agents make sure the spec doesn't drift between those two stages and does its own self-reviews. Almost every time, it finds and fixes a bunch of self-review issues before writing the final plan. Then I take that final plan and run it through the actual execution phase that does its own reviews after everything. Just saying that I know a lot of people like to raw dog it and say plugins and skills and other things aren't necessary, but in my case I've had good success with this.
- xpe 6mo agoI very much value and appreciate the first four paragraphs! [3] This is my favorite kind of communication in a social setting like this: it reads more like anthropology and less like judgment or overgeneralization. The last two paragraphs, however, show what happens when people start trying to use inductive reasoning -- and that part is really hard: ... > Therefore I need more time and effort with Gen AI than I needed before because I need to read a lot of code, understand it and ensure it adheres to what mental model I have. I don't disagree that the above is reasonable to say. But it isn't all -- not even enough -- about what needs to be said. The rate of change is high, the amount of adaptation required is hard. This in a nutshell is why asking humans to adapt to AI is going to feel harder and harder. I'm not criticizing people for feeling this. But I am criticizing the one-sided-logic people often reach for. We have a range of options in front of us: A. sharing our experience with others B. adapting C. voting with your feet (cancelling a subscription) D. building alternatives to compete E. organizing at various levels to push back (A) might start by sounding like venting. Done well it progresses into clearer understanding and hopefully even community building towards action plans: [1] > Hence Gen AI at this price point which Anthropic offers is a net negative for me because I am not vibe coding, I'm building real software that real humans depend upon and my users deserve better attention and focus from me hence I'll be cancelling my subscription shortly. The above quote is only valid unless some pretty strict (implausible) assumptions: (1) "GenAI" is a valid generalization for what is happening here; (2) Person cannot learn and adapt; (2) The technology won't get better. [1]: I'm at heart more of a "let's improve the world" kind of person than "I want to build cool stuff" kind of person. This probably causes some disconnect in some interactions here. I think some people primarily have other motives. Some people cancel their subscriptions and kind of assume "the market and public pushback will solve this". The market's reaction might be too slow or too slight to actually help much. Some people put blind faith into markets helping people on some particular time scales. This level of blind faith reminds me of Parable of the Drowning Man. In particular, markets often send pretty good signals that mean, more or less, "you need to save yourself, I'm just doing my thing." Markets are useful coordinating mechanisms in the aggregate when functioning well. One of the best ways to use them is to say "I don't have enough of a cushion or enough skills to survive what the market is coordinating" so I need a Plan B! Some people go further and claim markets are moral by virtue of their principles; this becomes moral philosophy, and I think that kind of moral philosophy is usually moral confusion. Broadly speaking, in practice, morality is a complex human aspiration. We probably should not not abdicate our moral responsibilities and delegate them to markets any more than we would say "Don't worry, people who need significant vision correction (or other barrier to modern life)... evolution will 'take care' of you." One subscription cancellation is a start (if you actually have better alternative and that alternative being better off for the world ... which is debatable given the current set of alternatives!) Talking about it, i.e. here on HN might one place to start. But HN is also kind of a "where frustration turns into entertainment, not action" kind of place, unfortunately. Voting is cheap. Karma sometimes feels like a measure of conformance than quality thinking. I often feel like I am doing better when I write thoughtfully and still get downvotes -- maybe it means I got some people out of their comfort zone. Here's what I try to do (but fail often): Do the root cause analysis, vent if you need to, and then think about what is needed to really fix it. [2]: https://en.wikipedia.org/wiki/Parable_of_the_drowning_man https://en.wikipedia.org/wiki/Parable_of_the_drowning_man [3]: The first four are: I write detailed specs. Multifile with example code. In markdown. Then hand over to Claude Sonnet. With hard requirements listed, I found out that the generated code missed requirements, had duplicate code or even unnecessary code wrangling data (mapping objects into new objects of narrower types when won't be needed) along with tests that fake and work around to pass. So turns out that I'm not writing code but I'm reading lots of code.
- tengbretson 6mo ago> or even unnecessary code wrangling data (mapping objects into new objects of narrower types when won't be needed) Dude! The amount of ad-hoc, interface-specific DTOs that LLM coding agents define drives me up the wall. Just use the damn domain models!
- meroes 6mo agoThis is how I feel with AI math proofs. I’m not sure where they’re at now, but a year ago it took so much more time to check if an LLM proof was technically correct even if hard to understand, compared to a well structured human proof. Maybe it was Timothy Gowers who commented on this. Lots of human proofs have the unfortunate “creative leap” that isn’t fully explained but with some detectable subtlety. LLMs end up making large leaps too, but too often the subtle ways mathematicians think and communicate is lost, and so the proof becomes so much more laborious to check. Like you don’t always see how a mathematician came up with some move or object to “try”, and to an LLM it appears random large creative leaps are the way to write proofs.
- abustamam 6mo agoThis may be a bit silly but I do what you do and then I tell Claude to review the code it wrote and compare it to the specs. It will often find issues and fix it. Then I review the reviewed code, and it's leagues better than pre reviewed code. This may be worth trying out.
- CamperBob2 6mo agoThen hand over to Claude Sonnet. Well, there's your problem. Why aren't you using the best tool for the job?
- eweise 6mo agoI give Claude small incremental tasks to do and it usually does them flawlessly. I know how to design the software and break into incremental tasks. Claude does the work. The productivity increase has been incredible. I think I'll be able to bootstrap a single person lifestyle business just using Claude.
- throwaway7783 6mo agoI don't know. I don't write detailed specs, but make it very iterative, with two sessions. One for coding and one for reviews at various levels. Just the coding window makes mistakes, duplicates code, does not follow the patterns. The reviewer catches most of this, and the coder fixes them all after rationalizing them. Works pretty well for me. This model is somewhat institutionalized in my company as well. I use CC Opus 4.7 or Codex GPT 5.4 High (more and more codex off late).
- rsanek 6mo agoI'm confused. If you have detailed, specific expectations, why aren't using the best model available? Even if you were using Opus 4.7, I would inquire if you're using high/xhigh effort by default. Feels crazy to me for people to use anything other than the best available.
- xpe 6mo agoI also have the same question. That said, for some problems, at least over the last week or so, I did sometimes get better results from lower-effort Opus or even Sonnet. Sometimes I get (admittedly this is by feels) a better experience from voice mode which uses Haiku. This is somewhat surprising in some ways but maybe not in others. Some possible explanations include: (a) bugs relating to Anthropic's recent post-mortem [1] or (b) a tendency for a more loquacious Claude to get off in the weeds rather than offering a concise answer which invite short back-and-forth conversations and iteration. [1]: https://www.anthropic.com/engineering/april-23-postmortem https://www.anthropic.com/engineering/april-23-postmortem ... but also see the September 2025 one at https://www.anthropic.com/engineering/a-postmortem-of-three-recent-issues https://www.anthropic.com/engineering/a-postmortem-of-three-...
- lp0_on_fire 6mo ago> Feels crazy to me for people to use anything other than the best available. Not everyone has unlimited budgets to burn on tokens.
- MattRix 6mo agoYeah but in a discussion about technology it’s a little silly. It’s like someone complaining about their phone and then finding out they still use a Nokia.
- hirvi74 6mo agoThat is why I still use the Chatbots and not the CLI/desktop tools. I am in 100% control. I mainly ask question surrounding syntax with languages I am not well experienced in, snippets/examples, and sometimes feedback on certain bits of logic. I feel like I have easily multiplied my productivity because I do not really have to read more than a single chat response at a time, and I am still familiar with everything in my apps because I wrote everything. I've been working on Window Manager + other nice-to-haves for macOS 26. I do not need a model to one-shot the program for me. However, I am thrilled to get near instantaneous answers to questions I would generally have to churn through various links from Google/StackOverflow for.
- bmurphy1976 6mo agoI'm starting to think a lot of the problem people are having is just that they have unrealistic expectations. I'm not having the same problem as you and I follow a very similar methodology. I'm producing code faster and at much higher quality with a significant reduction in strain on my wrists. I doubt I'm typing that much less, but what I am typing is prose which is much more compatible with a standard QWERTY keyboard. I think part of it is that I'm not running forward as fast as I can and I keep scope constrained and focused. I'm using the AI as a tool to help me where it can, and using my brain and multiple decades of experience where it can't. Maybe you're expecting too much and pushing it too hard/fast/prematurely? I don't find the code that hard to read, but I'm also managing scope and working diligently on the plans to ensure it conforms to my goals and taste. A stream of small well defined and incremental changes is quite easy to evaluate. A stream of 10,000 line code dumps every day isn't. I bet if you find that balance you will see value, but it might not be as fast as you want, just as fast as is viable which is likely still going to be faster than you doing it on your own.
- dragandj 6mo agoIf the main problem is programming languages incompatibility with QWERTY, that problem has been solved many decades ago. The programmers can switch to Colemak, and save many trillions of dollars of AI expenses.
- sevenseacat 6mo agoColemak ftw
- varispeed 6mo agoYou can quickly get something "working" until you realise it has a ton of subtle bugs that make it unusable in the long run. You then spend months cleaning it up. Could just have written it by hand from scratch in the same amount of time. But the benefit is not having to type code.
- GoToRO 6mo agoyou are holding it wrong. For real this time.
- linsomniac 6mo ago>Then hand over to Claude Sonnet. Have you tried Opus 4.6 with "/effort max" in Claude Code? That's pretty much all I use these days, and it is, honestly, doing a fantastic job. The code it's writing looks quite good to me. Doesn't seem to matter if it's greenfield or existing code. If code is harder to read than to write, you're doing yourself a disservice by having the output stage not be top shelf.
- dragandj 6mo agoI find it works even better with "/effort ultra".
- mschulkind 6mo agoThey renamed ultra to max about a week ago.
- dragandj 6mo agoI forgot to put /s in my comment :)
- coldtea 6mo ago>I write detailed specs. Multifile with example code. In markdown. Then hand over to Claude Sonnet. With hard requirements listed, I found out that the generated code missed requirements, had duplicate code or even unnecessary code wrangling data (mapping objects into new objects of narrower types when won't be needed) along with tests that fake and work around to pass. Stop doing that. Micromanage it instead. Don't give it the specs for the system, design the system yourself (can use it for help doing that), inform it of the general design, but then give it tasks, ONE BY ONE, to do for fleshing it out. Approve each one, ask for corrections if needed, go to the next. Still faster than writing each of those parts yourself (a few minutes instead of multiple hours), but much more accurate.
- dieortin 6mo agoMight as well just write the code yourself at that point. And as a bonus, end up with a much better understanding of the codebase (and way better code)
- coldtea 6mo ago>Might as well just write the code yourself at that point "We have this thing that can speed your code writing 10x" "If it isn't 1000x and it doesn't give me a turnkey end to end product might as well write the whole thing myself" People have forgotten balance. Which is funny, because the inability of the AI to just do the whole thing end to end correctly is what stands between 10 developers having a job versus 1 developer having a job telling 10 or 20 agents what to do end to end and collecting the full results in a few hours. And if you do it the way I describe you get to both use AI, AND have "a much better understanding of the codebase (and way better code)".
- Aurornis 6mo agoThe goalposts move every month. We’re at the stage where handing an entire specification to a mid-tier AI and walking away while it does all the work and then being disappointed that it wasn’t perfect means it’s useless.
- arikrahman 6mo agoI use open spec to negotiate requirements before the handoff, it's helped me a lot. You could also use GSD2 or Amazon's Kiro, or Spec Kit but I find they have too many stages and waste tokens.
- baranul 6mo agoNow that there is Claw Code[1], seems like many of these cancellations are easier to do. [1]: https://github.com/ultraworkers/claw-code https://github.com/ultraworkers/claw-code
- jwpapi 6mo agoI have the same feeling. Like there is no way in world that Gen AI is faster then an actual cracked coder shooting the exact bash/sql commands he needs to explore and writing a proper intent-communicating abstraction. I’m thinking the difference is in order of magnitudes. On top of that it adds context loss, risk of distraction, the extra work of reading after the job is done + you’ll have less of a mental model no matter how good you read, because active > passive. Man it was really the weirdest thing that Claude Coded started hiding more and more changes. Thats what you need, staying closely on the loop.
- moribunda 6mo agoAnd it leaves 25 TODO comments in code silently, reporting to you that everything is done.