In effect, I’ve always wanted a pair programmer agent, not a zero to one programming agent. Unfortunately models these days are mostly of the latter kind and it has caused a major disruption in the way I work. I’d much rather appreciate a small model making fast and specific edits that I ask if it, rather than ingesting 20 files to make changes, and then starting to write tests, etc.
Just said something similar myself in another thread. I'm either writing things by hand (and using LLMs for research, or double checking an idea), or having an LLM spit out something I treat as an external dependency. Its still too tedious for me to use them to write code when I care how it works or there's not obvious invariants the code needs to hold
I have found what works well is to modularise the code as much as possible and get an agent to work within a very limited scope. Break everything down well using SRP with well defined interfaces and let the agent work on small problems. Then when it shits the bed, there’s a smaller blast radius and you can strip back and try again.
I think this is the only sensible way to work with agents, if you care about code quality and reliability but still want the benefits of AI. There seem to be three camps that people more or less fall into: (a) AI is terrible/bad/evil and should never be used, (b) you should one-shot everything and be happy if it seems to "work" when you try it, (c) the middle ground, where the AI writes code which you carefully review.
I definitely prefer (c). But I get why (b) can feel necessary. If your competition is using (b) there can be pressure to do the same just to keep up.
I think it must depend at least partially on the task, too. At the extreme, there are things where you won't care beyond "it seems to work" because you only needed it to run once and it got useful results.
Yes, but all the "don't care" stuff needs to be inside a "don't care" module. For example, I don't actually care about GUI code. I just need "pressing this button emits this event or callback etc". If the GUI module interface is well defined then it doesn't matter how it's implemented as long as it works.
The problems start when you don't have clean separations. If your GUI code is also implementing ad hoc business logic like policies and workflows etc then you won't know what you care about and what you don't.
So you need to build little ring fenced enclaves where you can say "do whatever you want to implement this interface with this behaviour". If it gets fucked up you could just throw away the whole module and start again.
Exactly. I think this is it. Clearly separate what must be perfect and well understood (security, business logic), from bits that you are happy to throw some code at and see if they work. And don’t let the latter get its hands on the former. I think going back to OOP principles and SRP/separation of concerns can make this work. Just some conscious planning needed rather than handing over the reins entirely.
I just had a sunday afternoon request for a solution to a trivial but annoying spammer pattern on a stackoverflow-like server I maintain.
The software has a plugin API.
I asked Muse Glimmer to recommend a plugin — it found one but I tested it and it didn't work for unclear reasons. I then asked it to outline how to implement a simple word filter, it gave me an overview of some hooks that looked right from dim-and-distant-past recollection of reading the docs when I installed it. I asked it some questions.
I then set it off generating the skeleton of a filter plugin, went to the shops to buy food, came back and worked through finishing it off. There was a bug. It found the solution.
All on my Mac.
It's only about 100 lines of code but it is a random old webapp and it had to look stuff up to finish it.
I am deeply cynical of the one-shot code, "nobody codes anymore" hype culture idea and that distaste put me off AI for ages. Like you, I want an assistant but as a freelancer I have to stay in control.
I also don't really want to sit around waiting for Qwen 3.8 27B on this machine.
Ask the AI to create a detailed spec according to a few simple requirements. Review the spec yourself and correct what you want changed. Then ask the AI to implement the spec. Each time you request something new, ask the AI to update the spec as well.
That workflow itself is what the author is calling a "vibetax". Models are getting worse for users that must review every line of code the models edits or adds. Models are writing more line of code, changing more lines of code,executing more tools, and making it harder for the user to monitor, control, and review.
if i wanna write a web-app or python script; the models are better than ever. If i want to fix a specific bug in a established and trusted legacy cobe-base; Haiku 4.6 does a better job than Opus 5.0, because it does what it's told and nothing more.
The author wanted a todo-list starting-point; realistically 200 rows of html+CSS without the back-end. Heck, they may not even want to make a todo-app, but thought a todo-app would be a decent starting-point. So why would we ever want a model to spend a weeks worth of tokens on everything except the request the user asked? This is not a cost issue; this is a control issue.
I tried, but I’m not sure I understand. The vibe tax is caused by the model trying to one-shot everything and doing so requires unnecessary tests? How are vibe coders training the model over months? Do you mean their sessions and preferences are being fed back into the RL?
Forgot where i saw it discussed; If you observe recent model benchmarks over the past year; the performance is slowly climbing, but if you divide by the token count; the score per token is dropping.
The current trend in state-of-art LLM coding agents is giving more output, thinking longer and checking the results more to catch mistakes. Be it an economics inventive to make users burn through their quota or show increase in usage for shareholders, or a market demand of users liking the ability of models to do independent work without intervention or oversight; the result is what the article seem to call the Vibe Tax.
I myself asked Claude code recently to review a somewhat large PR, to see what it would find. I didn't expect much, but also didn't quite realize how the model would interpret my request; I burned $20 in 3 minutes in API usage, as it ran 2 sub-agents which themselves spun up 5 more each. Most sub-agents were manually checking for things clang-tidy would catch without actually calling clang-tidy. This behavior rose as i changed from sonnet/opus 4.6 to 4.8 and now 5.0.
I don't want to run a agent independently in this way; i ask targeted questions about specific things and review the result. But model development is targeted towards a more hands-off "vibe" workflow, because that's where the money and hype is. As a result, i find the models more frustrating, less trustworthy and more costly to my work. (I've even started using haiku more, since it remains to-the-point without steering away from what i ask)
This is my experience too, but even worse. Opus 5 finished the task, I then asked it to code review it, 61 agents later it came back with a bunch of errors that needed fixing.
The first pass had tests, they passed, they were just wrong. I wish more people started reviewing their AI output, because I see a worrying trend of ”we have all these tests the agent wrote so it has to be good”, which is not surprising because understanding tests is not a trivial skill.
It should be expected that more tokens give diminishing returns. Minimally, there's no limit on tokens but there is on quality of output (you can't reach negative bugs, or negative execution time). The graphs I've seen show a curved "frontier" of the tradeoff, and that line has improved over model generations.
That said, the companies are incentivized to sell you tokens, and therefore to have the models use as many tokens as they think you'll let them get away with for a given task / level of performance.
I'll try to explain my experience with this. I've noticed the AI has a tendency to overengineer scaffolding. For instance, I asked it to help me with a refactor, and it erected this massive 100kloc function registry, and then caused GitHub CI to verify the contracts every single commit, which took upwards of 30 minutes (I suspect this proclivity is widespread and has contributed to their recent issues).
As if this wasn't bad enough, it also was not smart enough to regenerate the evidence in these contracts as it changed the underlying source code. So it would get in a loop where it would update code
-> commit
-> 15 minutes later CI would error citing the contracts weren't updated
-> it would fix the contracts
-> 15 minutes later CI would error because the fix was wrong
-> it would fix the fix and commit
-> 15 minutes later contracts would fail
-> contracts were fixed again and this time maybe 30 minutes later it would pass, maybe it errors again.
This loop could go on all day every day if someone wasn't paying attention because the agent has no concept of time or wasted work. It's an AI livelock of sorts, but it will eventually converge in my experience. It'll just take 10x longer (literally like 20+ hours) than if you just intervene and tell it knock it off, so it feels like lighting money on fire (hence the tax).
That's why I feel like this vibe coding stuff has to actually be monitored, like a Tesla system -- because like a Tesla system it cannot be trusted to not crash into the proverbial code wall.
Don’t get me wrong, I agree. I see Fable and Opus 5 write garbage code and useless tests all the time. And don’t get me started on comments. I’m just trying to understand how vibe coders are to blame for it.
This really resonated for me. It's like the smarter the model gets, somehow the more tokens get burned? Same failure mode whether you’re on Claude, Codex, or Cursor: the harness will spend the whole pool if you let it. I'm building my own Harness on top of pi that is add supported (www.freepi.ai) mostly because pi is so much more efficient with tokens. (That said, it tens to be slower and vastly more verbose with information I don't need to know). But yeah, since I'm trying to offer free ad supported inference the vibe tax would kill the business model. I've even been thinking about installing the 'caveman' skill to reign in token costs.
I feel like I'm living in a parallel universe when I read these types of posts.
My agents have never created code that is straight-up garbage and I have never flushed a week's worth of tokens down the toilet. I just can't identify with all the constant complaints about AI-assisted coding.
And my biggest project isn't some hello world app. It's a self-hosted, privacy-focused personal financial management application that I intend to open source. It's about 126k LOC against 240k LOC of regression tests and 30k LOC of CI/CD pipeline. I'm doing 24x7 mutation testing on a dedicated box against the accounting engine and temporal systems. I even have specialized agents doing audits against Regulation Z (US banking law) criteria so the app models the required behavior of banks.
Most of my complaints about everything are nits, like the overly verbose and dense way LLMs communicate with me. Or their predisposition to add, add, and add more stuff when proper engineering practices are more often about subtraction (but I've built mitigation guardrails against a lot of that).
I'm not sure if this is snark or not, but yes, there is something fundamentally interesting about the fact that "personal finance tracker" is now a project with the same craft valence as a todo list, the "hello world" of the last 20 years of programming. It also says something new about todo list programs, and programs of that ilk/level of complexity: they're now subthreshold programming, or, the way I look at things, a level of programming now accessible to nonprogrammers.
I got through a trial using a document manager I vibe coded in two days. No crashes, no runaway memory usage with several gigs of PDFs. All my depo transcripts, expert reports, etc, indexed, with a terminal window integrated so i can ask Grok to “pull up the testimony on the first day when that guy said that thing.” The app has an API so the AI can directly control what documents i’m looking at and jump me to the right places. All I had to do was tell Claude to “expose all the document viewing functionality through applescript,” then tell Grok to “read the applescript dictionary and write yourself a skill.”
It’s like ye olde times when we had overqualified efficient paralegals who could do stuff like that.
I hope that’s sarcasm or that I’m misunderstanding what you mean. Have you looked at the front-page of HN? At the new submissions? Social media? Newspapers? YouTube videos? It’s bonkers to me anyone could claim with any degree of seriousness that we’re not talking about this enough. We’re talking about it too much.
I don't know what to tell you. I bounce off 80% of the AI stories on the front page too, and I have the same frustration. But the change that's happening now to our field is profound. It sucks that the conversation we're having on HN is a debate between AI maximalists and the "clanker" people, rather than e.g. reconsidering Raskin's Humane Interface in light of what we can see computers will be like in 10 years.
its something people want but has been both too difficult to be worth building, and not something you want to use some SASS for where youre giving all your financial data over to a third party and the government
suddenly they're tractable without taking too much time investment
> Or their predisposition to add, add, and add more stuff when proper engineering practices are more often about subtraction (but I've built mitigation guardrails against a lot of that).
> a… personal financial management application… about 126k LOC against 240k LOC of regression tests and 30k LOC of CI/CD pipeline
Just how much functionality are you getting out of that? It's hard for me to imagine that people want that much out of such a program. I just keep a spreadsheet. (Yes, LibreOffice is also very bloated.)
My wife was a diehard YNAB user before we met but it went by the wayside once we merged finances. She wanted to get back to better managing our money and started using Google Sheets and then got stuck. She asked me for help trying to create a pivot table and like any good engineer, I built her an entirely new application instead.
In my defense though, it does way more than a spreadsheet. Stuff like OCRing screenshots of bank transactions with a specialized, locally-hosted LLM to avoid data harvesters like Plaid. This became an entirely separate subsystem with verification, automated model benchmarking, prompt provenance, etc.
You'd be surprised at how quickly edge cases start to pile up when an accounting system makes contact with the real world. (If you buy something on a credit card and then return it after your statement closes but before your payment is due, do you still owe a minimum payment based on that purchase? Well... depends on your bank. Capital One and Chase: yes, US Bank: no.)
> Just how much functionality are you getting out of that?
I'm still dogfooding it. It's a pretty opinionated app that has things a month-end closing ceremony, reconciliation processes, envelope-based budgeting cycles. So unfortunately my feedback cycle is largely locked to the calendar. But my wife absolutely loves it so far.
> do you still owe a minimum payment based on that purchase?
I'm skeptical that the UX is improved much by having the app know the answer. The bank tells you what to pay, a month beforehand. The user has to get that number from the bank anyway, to be sure they don't incur fees. Your app should just pull it from the statements, not independently calculate it.
I don't think it was a good example to justify the complexity of the app, if it doesn't make sense to put in the app. It's an example of adjacent concerns, so maybe there is something similar that should be in the app, but the exact example is not necessary or useful to the specific app being discussed.
> Just how much functionality are you getting out of that? It's hard for me to imagine that people want that much out of such a program. I just keep a spreadsheet. (Yes, LibreOffice is also very bloated.)
I suspect it depends a lot on which jurisdiction you live under.
My investment portfolio and its management are so trivial, I don't even use a spreadsheet. It's literally just two items: a global index fund and a margin loan. I don't even keep a cash cushion: I use the margin loan or just sell stock, when I need cash.
I can get away with this, partially because we pay no capital gains tax where I live, and there's no capital controls either.
If I had to work around all these tax complications that I read about, like determining which tax lot you should sell or whatever, I would probably appreciate a comprehensive personal financial management application.
It happens, but when it does, you need to ask yourself: if the agent is struggling this much to produce something that's working, am I taking the right approach?
If you ask for a particular thing, they'll do it, even if it's not a good idea. When you start running into issues, they'll try to solve those issues for you. They'll do that as long as you keep asking, even if there's no good way to properly fix the issues, because the initial approach was wrong.
When an agent is struggling to produce something, I switch to asking it to re-evaluate the approach itself, and ask it to suggest a less brittle approach. I then chat through the various options, and choose the best approach that makes sense, and then the agent is back on track, producing properly working code without the issues.
Some people just keep pushing through on bad approaches, without questioning it and then blame the agent for being unable to finish it.
I signed up to say I’m also in the personal finance management camp. Scraping all financial institutions, AI can categorize things that I previously did manually, able to do tax projections, retirement analysis, categorize individual items in Amazon purchases, analyze travel purchases with points vs cash.
Instead of paying for multiple apps that do small parts of it, I use existing codex subscription to make it better.
> I feel like I'm living in a parallel universe when I read these types of posts.
> And my biggest project isn't some hello world app. It's a self-hosted, privacy-focused personal financial management application that I intend to open source. It's about 126k LOC against 240k LOC of regression tests and 30k LOC of CI/CD pipeline.
Indeed; non-overlapping Overton windows.
edit: I'm going bluntly ask, after pondering this more: Is this satire?
Not satire. But I can understand why my comment seemed contradictory.
I've been designing software for a long time, but I'm nowhere near as good as most career SDEs I know (my career path has been SDE-adjacent). So it's not like I sat down and independently told various LLMs how to build out all these guardrails. I make high level architecture decisions and nudge them in the right direction ("use RabbitMQ", "trunk-based branching, not gitflow", etc).
A lot of this stuff evolved piecemeal and organically. But at no point was a churning out garbage and I never had a runaway agent completely derail the project (or my budget). But, thinking about it more, I guess there are some things I might have done differently than most people:
- I started with documentation: user interview --> user stories --> functional spec --> frozen design contract. These were all done before I wrote any code.
- I specified the tech stack and the architecture in broad strokes, rather than let the LLMs make that decision. I went with boring choices because that's what I know best: Flask/Jinja, Alpine.js, Postgres.
- I've constantly gone back and refactored accumulated tech debt and have added hard CI gates for things like cyclomatic complexity, ensuring that docs don't drift from the underlying code, and an "apparatus ledger" that keeps track of all the rules and constraints that keep getting added.
- I make sure that each session proves that it's tests can fail before shipping a PR, so it's not writing meaningless tests.
Maybe I'm underestimating how impactful all those things add up to shape the behavior of the LLM agents? Because individually, I wouldn't expect them to have saved my from nearly all the AI pitfalls I read about.
I have a project of similar scope, a native mobile app I have been working on for four months.
I get the same kind of snarky comments when I talk about it. Amazing how people who know nothing about the project think they know better than me about its quality or maintainability.
I doubt it's anything in particular that we are doing, I suspect it is rather a lack of trying and experience with the ones who are claiming agentic development does not work.
I have not once seen a believable story where for example the project broke down after 200k LOC, or after going live.
It is always inane stuff like in the OP, like the agent supposedly generated only tests and no code, sure.
Most of the ones I have seen were "I generated some code and did not like the output". No attempts of iterating and refactoring.
I believe they simply did not yet try our way of working.
> I even have specialized agents doing audits against Regulation Z (US banking law) criteria so the app models the required behavior of banks.
Can you elaborate on this? Clearly you cannot imply this means those audits have any real value since its just roleplay in this context right? Because your app in the current form will not be affected by Regulation Z in any way.
You're correct. A consuming application doesn't have anything to do with Reg Z. However, the regulations do dictate the behavior or interface that I can expect from banks, almost like an API contract. It might make more sense if I explain the incident that caused me to add it:
My wife intentionally overpaid on a credit card statement balance in order to gain some credit limit headroom in the current month. Using made up numbers: The balance said we owed $1,000, but she paid $2,000 to make room for a big purchase that month. My application rejected that overpayment as a data integrity error because it would have pushed the credit card balance to -$1,000.
This is a valid state though and Reg Z actually specifies the rules around that case. A bank has to refund a positive balance upon request or automatically after X number of days (I forget the amount).
So now, anytime my agents touch any code associated with credit instruments, they have to run a Reg Z audit to ensure that the data model reflects how banks actually operate in the real world.
i'm not sure why people expect agents to one shot everything to perfection with just a prompt.
There's a reason why we talk about software development lifecycle, design, architecture, testing ... It's because it's been the most reliable way to build and ship software. We shouldn't expect discard this and expect agents to perform well outside of this.
I'm treating LLM agents as junior devs who happen to have vast knowledge of software engineering. As their team leader i make them go through planning, implementation, bug sweeping cycles using strict workflows. And it works quite well, i've been working on several large projects (1M+ LOC java,typescript,c/c++) and by any measure the projects are healthy. Sure the code isn't that beautiful, sure i'd have written things differently but it's pretty good nonetheless.
Shameless plug here: i've been also working on https://kodfactory.com, the code factory i've built to work on these large projects with workflows, reviews, etc ... I'm cleaning things up to open source it later.
> i'm not sure why people expect agents to one shot everything to perfection with just a prompt.
They do often enough that it's not a surprising event, depending on prompt quality, context available, ability for the result to be objectively judged and iterate on by the agent, etc. For frontiers on very high settings at least.
It's an impossible goal. "Perfection" is subjective and situational. It's basically impossible to specify a non-trivial task perfectly, and without a perfect specification you can't have a consistently perfect result.
Personally I find it much more efficient to give vague instructions and refine on the way, rather than trying to specify everything up front. With this workflow there is no such thing as a one-shot, I don't even know all the details of my intended result until I reach it.
Sure it can one-shot many small things, but for a larger feature it has to be a incremental process. Even when I have a Figma design to work from it never contains all the details like semantics of how various interactive elements work, edge cases etc.
If you explicitly ask the agent to make the perfect architecture for the problem and write it down in to a spec and have the developer agents follow it they will. Its just that coding agents have a hard time coding at think about architecture at the same time.
I can one shot a prompt if I write down a nice spec file, Claude can do a lot in one shot. I test it every few months. With enough detail Claude will know what to do.
Opus 5 one shot an access virus B synth clone for me as a single page index.html that is more impressive than anything I have seen as a VST synth.
That is also because I have been obsessed with this synth for almost 30 years. I built clones of it 20 years ago in reaktor. I know how to spec out every aspect of this synth and I gave Claude a 150 page pdf on digital filter design too.
The results are far different than someone who has never used a virus prompting "make me an access virus B synth as a single html page".
We are calling both of these processes "one shot" but this is not even close to the same process.
I suspect this is the LLM discourse in a nutshell. People are using the same vocabulary for wildly different processes.
Using AI is kayfabe. What I mean is, you create interaction patterns that resemble how humans work. This is because it is what the models are trained on but also because we've all been trained to interact in this way. So it manipulates you into providing more useful prompts.
But I don't really want to play a part in a simulation, trying to cajole my scene partners into saying the lines I need them to say. I want to use a tool the same way I would use any other tool. If this is AI it should just do the thing. Anything else is an imperfection of the technology.
But at the same time, language is a vague communication medium. We have a precise language for describing forms of computation, but that's code so we're back at square one. We still haven't nailed the right amount of follow up and correction and interrupt-ability of these coding agents.
And we may never figure it out. It may simply be impossible. But it doesn't mean this weird anthropomorphization of AI is something I want to do. If I wanted to be a manager, I would be a manager.
> language is a vague communication medium. We have a precise language for describing forms of computation, but that's code so we're back at square one.
That's why you tell it how to write the code, and then review the code to ensure it is what you wanted.
> We still haven't nailed the right amount of follow up and correction
I feel like I've got it under control. It's not really a problem at all to me. I just work closely with the AI. I do small tasks, I don't just have it generate thousands of lines at once. I tell it what to do and how, or give it some vague guidance and ask it to make a plan. Then review the plan, ask for some changes if necessary and execute. Then I go over all the changes, test them to ensure they work properly, have it fix any issues I find and so on.
I think the main problem with AI coding is people try to do too much. You can't keep a tight leash on it while also having it do a week's worth of work in an hour. I do one task at a time and I am heavily involved in it, deciding exactly how it's done. I micromanage the crap out of that thing. I write commits myself and I always review my own PR before submitting it to colleagues.
Works great. I get things done much faster than I used to, with better quality than before.
This is a confusing description of a real thing. They're clearly biasing the models more and more towards long horizon end-to-end software development, which leads to impressive "claude, build an X make no mistakes" demos, but is mainly an annoyance for expert users doing real work.
(If you give claude an inch these days it'll just steamroll through a whole program of work without checking what it should be doing - a kind of overenthusiastic pull towards the first draft that is often detrimental and definitely wastes tokens, and even for very basic tasks it's using many more tokens than it should because it's doing this full belt and braces thing for everything, just in case you're an idiot).
But also... it's something you can easily reign in if you want to.
You can absolutely prompt agents not to write tests, or not to write extraneous asserts, or whatever, and I find that generally quite useful for the kind of code I write. I don't think it's "months of users training it", it's more that a lot of people do want a one-shot agent, and having a good test set really helps that.
I’ve never had an agent fail to write the actual implementation. Has it done so badly, yes, but not nothing but tests. This sounds to me like a rare case that doesn’t generalize.
If the general idea is that these agents write too many tests, sure I guess? ‘Too many tests’ doesn’t sound like a failure case of engineering to me; typically software has had too few tests. Also, a lot of the power of these agents is their ability to self-verify and correct, which the test loop is a part of.
Nobody is making you pay this supposed tax. Just tell it not to write tests.
This article somewhat reflects my experience with autonomous agentic coding. I've run several experiments with similar results: the agent burns through all my tokens while making very little progress, or produces something unacceptable.
So I'd rather micromanage the process step by step. It takes more of my time, but the result is much, much closer to what I actually wanted.
I've found that LLMs make throwaway software better than I ever did.
They handle edge cases, catch bugs, and write tests that I'd never write.
Even if, however, this leads to the average piece of software improving, this one-shot complexity has the same issues as any large project. The more code, the longer it takes to steer the ship.
This "rising tide lifts all boats" mentality will make exceptional software even rarer than it is today.
Excited for the Roller Coaster Tycoons of tomorrow[0].
whenever I read these type of articles or comments where people are getting such bad negative experiences, I do wonder, what are they doing wrong or is there something that they are not sharing?
I've been able to get such positive returns out of LLMs. I am working for 3 different remote jobs concurrently with it, I've shipped a few apps thats doing six digits a month, I found a life partner after I used LLM to really work on myself. I am also experimenting with hardware prototypes and will likely have funding to launch it all with LLMs.
Why am I able to get so much out of "vibe coding" but others seemingly do not? I am not a genius, I am not a artisan, I am just very persistent and clear on what I ask LLMs but more importantly I don't try to place any other sort of unrealistic expectations on what it can and can't do.
You read comments on HN and read these articles and you might come across feeling a sense of peril and doom which are all completely fictional for the most part. A lot can be achieved with LLMs, much more than what the constant doomers will try to drag you down to.
You can't one shot a perfect app with AI.
You definitely can create a pretty complex and beautiful production-ready app with AI in a couple of days or weeks depending on what exactly you're building.
I now have my own link catalog, read-latter app and an RSS reader. Tailored to work exactly how I like. Hardened, with automated backup, and external users for the RSS app. It works. It takes learning, some knowledge of terms and very high-level practices, plus design thinking, but I haven't written a line of code for these.
I'd say that's the correct way to describe frontier models. They were trained with reinforcement learning based on human feedback. And obviously, humans prefer the bug-free variant. That's why models are now super verbose and spam tests like crazy. In their training environment, tokens were effectively free. And the humans that got asked never saw the price. If you ask people to choose the better offer and both are free, you end up with bloat. It's like people over-filling their plate at a buffet, then leaving leftovers. Except in this case, it's AI models burning through your wallet.
Our AI agent is like a dumb monkey with all the knowledge of Humanity, so a few guardrails are needed.
In case it helps anyone, this is how I did describe my desired harness, from scratch. I didn't know nor wanted to write all the ".vscode/skills" files, or the AGENTS.md file or any of that, so I asked Opus to "write a Harness and all related skills as needed, to follow this procedure on absolutely every change"... It (at least on VSCode) already comes with a harness/agent creation skill by default, so it has the ability to write a very good standarized process for you.
I've been playing with AI seriously for the first time, with a Python app that reads a spreadsheet with investment bookkeeping records and generates a pre-filled tax form. The harness prompt was somewhat like this:
----
1. A "Technical Spec Writer" subagent notes down every requested change to a SPEC.md file. This spec includes functional and behavioral descriptions, together with detailed technical documentation, includes software architecture, data models, API boundary definitions, etc. It then reviews everything for inconsistencies, mistakes, and text consolidation opportunities.
2. A "Tax Law Expert" subagent makes a due diligence review of the spec corpus, and raises any concerns it has wrt. what the actual Law mandates vs. what the spec docs say. Any concern is a blocker which gets documented and must be resolved by the owner (me) before proceeding. Ask me for clarifications, rulings, reference documentation, etc. as needed.
3. A "Software Engineer" subagent takes the spec and implements it. Reviews for obvious mistakes, variable misuses, unhandled errors. Finally, reviews the code to find DRY or refactoring opportunities.
4. A "Quality Assurance" subagent makes a final pass on the code, ensuring full compliance of the codebase with the specification. Also, tests are passed and verified.
----
I would have never imagined how deep the "Tax Expert" would make me go until "it" was satisfied with the results. The resulting spec is by no means a replacement of a human expert reviewing the tax declaration, but I am 98% confident that much more than the "happy path" of what I particularly want to cover is actually right. It asked me for clarifications or references (actual URLs so it could read them) to jurispridence on corner cases that I had not even anticipated for my own declarations.
In comparison, the actual "software engineering" must have been like 15% of the time/tokens.
It definitely helped me do a much deeper dive on the legalese than I would have done otherwise when writing something like this. (Still no replacement for an actual expert)
Hyperbolic, but I'm seeing hints of this – Models refusing to do pair work with an engineer and trust their input, instead mandating having full control over something. Friends switching back from Fable/Opus 5 to Opus 4.8 just so they can have some input.
Anthropic especially right now seem to be optimising for doing the whole task with no input. That's fine when that's the only task, and it's fine when you don't care how the sausage is made, but it's not fine for actual software engineering.
Yeah I'm getting this feeling too, that Opus 5 collaborates better with other Claudes, but that some of the older Opus models collaborated with people better.
Now, one caveat. I don't vibe code with one shot prompt. I use something called Micromanaged Driven Development (MMDD) which aims to be the opposite of one-shot prompt: https://mmdd.dev/
When I read articles like these, it surprises me that it's very unusual for me to hit token limits. I've standard accounts, I don't spend more than $40 per months in tokens.
Probably I couldn't find the right narrative to promote MMDD, or probably nobody cares and this is why you fall easily into clickbait narratives to get people's attention these days.
Not justifying, just trying to describe a perception.
Most, if not all, of the code in the company I work in is written by AI.
Our tests are useless. We have tests that make sure that mongoose schemas are creating the collections defined in them.
We have tests that check that zod shcemas parse objects currently.
Every PR, even if 1 line change, will drag 25 file changes because our tests are so ad-hoc, so verbose, and so incompatible with each other. Imagine how the codebase is looking...
This is a badge of incompetence for the company I work with, and prob to the entire tech world.
The funny part is? This makes our managers and investors proud, every PR is bigger, we make x3 more PRs (wheres the promised x10).
When they say this is the death of software engineering, this is what they mean.
A project I was working on for a couple years until this spring started to turn like this when another contractor started committing AI work. There was a test literally called “test_imports.py” that, you know, tested that you could import every module of the project. I asked if we could just run `python __main__.py` to test that the imports worked, but he said no, we need this for big Claude-powered refactors to make sure nothing breaks.
I believe software will go the same road as the cloth industry went. From quality cloth that holds for years, to shit quality cloth that look good but doesnt hold more than few month.
Yet, we are being sold that this is _the way weve all been waiting for_ ? what?!
If that turns out to be true I hope that there are metaphorical Japanese out there still willing to pay 30,000 yen for quality shirts while the rest of the world SHEINs out.
What a disgusting mess. Hopefully at some point people will be willing to listen to arguments in the vein of: “we spent $x dollars writing y loc that was then reviewed using z hours that did nothing, added no revenue and we then spent w additional budget removing it”
120 comments
[ 0.26 ms ] story [ 34.5 ms ] threadIn effect, I’ve always wanted a pair programmer agent, not a zero to one programming agent. Unfortunately models these days are mostly of the latter kind and it has caused a major disruption in the way I work. I’d much rather appreciate a small model making fast and specific edits that I ask if it, rather than ingesting 20 files to make changes, and then starting to write tests, etc.
I definitely prefer (c). But I get why (b) can feel necessary. If your competition is using (b) there can be pressure to do the same just to keep up.
The problems start when you don't have clean separations. If your GUI code is also implementing ad hoc business logic like policies and workflows etc then you won't know what you care about and what you don't.
So you need to build little ring fenced enclaves where you can say "do whatever you want to implement this interface with this behaviour". If it gets fucked up you could just throw away the whole module and start again.
The software has a plugin API.
I asked Muse Glimmer to recommend a plugin — it found one but I tested it and it didn't work for unclear reasons. I then asked it to outline how to implement a simple word filter, it gave me an overview of some hooks that looked right from dim-and-distant-past recollection of reading the docs when I installed it. I asked it some questions.
I then set it off generating the skeleton of a filter plugin, went to the shops to buy food, came back and worked through finishing it off. There was a bug. It found the solution.
All on my Mac.
It's only about 100 lines of code but it is a random old webapp and it had to look stuff up to finish it.
I am deeply cynical of the one-shot code, "nobody codes anymore" hype culture idea and that distaste put me off AI for ages. Like you, I want an assistant but as a freelancer I have to stay in control.
I also don't really want to sit around waiting for Qwen 3.8 27B on this machine.
Muse Glimmer is fine. Give it a go if you can.
Choose what makes you happy!
if i wanna write a web-app or python script; the models are better than ever. If i want to fix a specific bug in a established and trusted legacy cobe-base; Haiku 4.6 does a better job than Opus 5.0, because it does what it's told and nothing more.
The author wanted a todo-list starting-point; realistically 200 rows of html+CSS without the back-end. Heck, they may not even want to make a todo-app, but thought a todo-app would be a decent starting-point. So why would we ever want a model to spend a weeks worth of tokens on everything except the request the user asked? This is not a cost issue; this is a control issue.
The current trend in state-of-art LLM coding agents is giving more output, thinking longer and checking the results more to catch mistakes. Be it an economics inventive to make users burn through their quota or show increase in usage for shareholders, or a market demand of users liking the ability of models to do independent work without intervention or oversight; the result is what the article seem to call the Vibe Tax.
I myself asked Claude code recently to review a somewhat large PR, to see what it would find. I didn't expect much, but also didn't quite realize how the model would interpret my request; I burned $20 in 3 minutes in API usage, as it ran 2 sub-agents which themselves spun up 5 more each. Most sub-agents were manually checking for things clang-tidy would catch without actually calling clang-tidy. This behavior rose as i changed from sonnet/opus 4.6 to 4.8 and now 5.0.
I don't want to run a agent independently in this way; i ask targeted questions about specific things and review the result. But model development is targeted towards a more hands-off "vibe" workflow, because that's where the money and hype is. As a result, i find the models more frustrating, less trustworthy and more costly to my work. (I've even started using haiku more, since it remains to-the-point without steering away from what i ask)
That said, the companies are incentivized to sell you tokens, and therefore to have the models use as many tokens as they think you'll let them get away with for a given task / level of performance.
As if this wasn't bad enough, it also was not smart enough to regenerate the evidence in these contracts as it changed the underlying source code. So it would get in a loop where it would update code -> commit -> 15 minutes later CI would error citing the contracts weren't updated -> it would fix the contracts -> 15 minutes later CI would error because the fix was wrong -> it would fix the fix and commit -> 15 minutes later contracts would fail -> contracts were fixed again and this time maybe 30 minutes later it would pass, maybe it errors again.
This loop could go on all day every day if someone wasn't paying attention because the agent has no concept of time or wasted work. It's an AI livelock of sorts, but it will eventually converge in my experience. It'll just take 10x longer (literally like 20+ hours) than if you just intervene and tell it knock it off, so it feels like lighting money on fire (hence the tax).
That's why I feel like this vibe coding stuff has to actually be monitored, like a Tesla system -- because like a Tesla system it cannot be trusted to not crash into the proverbial code wall.
It's a tool. It does what you tell it to. If it's doing the wrong thing, tell it to do something different.
* the dev wants to describe an app in natural language then fall asleep while an AI works on it
* the dev wishes that the same AI would write less comprehensive tests
What exactly is a vibe coder to this dev?
this question, (with it's preceding set-up) pierces though a lot of cruft. Well-posed.
My agents have never created code that is straight-up garbage and I have never flushed a week's worth of tokens down the toilet. I just can't identify with all the constant complaints about AI-assisted coding.
And my biggest project isn't some hello world app. It's a self-hosted, privacy-focused personal financial management application that I intend to open source. It's about 126k LOC against 240k LOC of regression tests and 30k LOC of CI/CD pipeline. I'm doing 24x7 mutation testing on a dedicated box against the accounting engine and temporal systems. I even have specialized agents doing audits against Regulation Z (US banking law) criteria so the app models the required behavior of banks.
Most of my complaints about everything are nits, like the overly verbose and dense way LLMs communicate with me. Or their predisposition to add, add, and add more stuff when proper engineering practices are more often about subtraction (but I've built mitigation guardrails against a lot of that).
https://news.ycombinator.com/item?id=49350223
It’s like ye olde times when we had overqualified efficient paralegals who could do stuff like that.
If you used it successfully, it’s more than enough to share.
Do not be afraid. Please.
The "hello world" is mostly for making sure your toolchain is working correctly.
Except my upcoming one of course.
/s
suddenly they're tractable without taking too much time investment
> 126k LOC against 240k LOC of regression tests and 30k LOC of CI/CD pipeline
I mean...
Yeah, that's pretty self-explanatory why you don't identify complains about AI-assisted coding.
> a… personal financial management application… about 126k LOC against 240k LOC of regression tests and 30k LOC of CI/CD pipeline
Just how much functionality are you getting out of that? It's hard for me to imagine that people want that much out of such a program. I just keep a spreadsheet. (Yes, LibreOffice is also very bloated.)
In my defense though, it does way more than a spreadsheet. Stuff like OCRing screenshots of bank transactions with a specialized, locally-hosted LLM to avoid data harvesters like Plaid. This became an entirely separate subsystem with verification, automated model benchmarking, prompt provenance, etc.
You'd be surprised at how quickly edge cases start to pile up when an accounting system makes contact with the real world. (If you buy something on a credit card and then return it after your statement closes but before your payment is due, do you still owe a minimum payment based on that purchase? Well... depends on your bank. Capital One and Chase: yes, US Bank: no.)
> Just how much functionality are you getting out of that?
I'm still dogfooding it. It's a pretty opinionated app that has things a month-end closing ceremony, reconciliation processes, envelope-based budgeting cycles. So unfortunately my feedback cycle is largely locked to the calendar. But my wife absolutely loves it so far.
I'm skeptical that the UX is improved much by having the app know the answer. The bank tells you what to pay, a month beforehand. The user has to get that number from the bank anyway, to be sure they don't incur fees. Your app should just pull it from the statements, not independently calculate it.
But ad_fontes was describing an edge case and that was an excellent example of one (regardless of whether it was an important or necessary feature).
I suspect it depends a lot on which jurisdiction you live under.
My investment portfolio and its management are so trivial, I don't even use a spreadsheet. It's literally just two items: a global index fund and a margin loan. I don't even keep a cash cushion: I use the margin loan or just sell stock, when I need cash.
I can get away with this, partially because we pay no capital gains tax where I live, and there's no capital controls either.
If I had to work around all these tax complications that I read about, like determining which tax lot you should sell or whatever, I would probably appreciate a comprehensive personal financial management application.
I've used gnumeric for at least 15 years when I've needed a spreadsheet
If you ask for a particular thing, they'll do it, even if it's not a good idea. When you start running into issues, they'll try to solve those issues for you. They'll do that as long as you keep asking, even if there's no good way to properly fix the issues, because the initial approach was wrong.
When an agent is struggling to produce something, I switch to asking it to re-evaluate the approach itself, and ask it to suggest a less brittle approach. I then chat through the various options, and choose the best approach that makes sense, and then the agent is back on track, producing properly working code without the issues.
Some people just keep pushing through on bad approaches, without questioning it and then blame the agent for being unable to finish it.
Instead of paying for multiple apps that do small parts of it, I use existing codex subscription to make it better.
How are you scraping? Have you had success across institutions?
> And my biggest project isn't some hello world app. It's a self-hosted, privacy-focused personal financial management application that I intend to open source. It's about 126k LOC against 240k LOC of regression tests and 30k LOC of CI/CD pipeline.
Indeed; non-overlapping Overton windows.
edit: I'm going bluntly ask, after pondering this more: Is this satire?
I've been designing software for a long time, but I'm nowhere near as good as most career SDEs I know (my career path has been SDE-adjacent). So it's not like I sat down and independently told various LLMs how to build out all these guardrails. I make high level architecture decisions and nudge them in the right direction ("use RabbitMQ", "trunk-based branching, not gitflow", etc).
A lot of this stuff evolved piecemeal and organically. But at no point was a churning out garbage and I never had a runaway agent completely derail the project (or my budget). But, thinking about it more, I guess there are some things I might have done differently than most people:
- I started with documentation: user interview --> user stories --> functional spec --> frozen design contract. These were all done before I wrote any code.
- I specified the tech stack and the architecture in broad strokes, rather than let the LLMs make that decision. I went with boring choices because that's what I know best: Flask/Jinja, Alpine.js, Postgres.
- I've constantly gone back and refactored accumulated tech debt and have added hard CI gates for things like cyclomatic complexity, ensuring that docs don't drift from the underlying code, and an "apparatus ledger" that keeps track of all the rules and constraints that keep getting added.
- I make sure that each session proves that it's tests can fail before shipping a PR, so it's not writing meaningless tests.
Maybe I'm underestimating how impactful all those things add up to shape the behavior of the LLM agents? Because individually, I wouldn't expect them to have saved my from nearly all the AI pitfalls I read about.
I get the same kind of snarky comments when I talk about it. Amazing how people who know nothing about the project think they know better than me about its quality or maintainability.
I doubt it's anything in particular that we are doing, I suspect it is rather a lack of trying and experience with the ones who are claiming agentic development does not work.
I have not once seen a believable story where for example the project broke down after 200k LOC, or after going live.
It is always inane stuff like in the OP, like the agent supposedly generated only tests and no code, sure.
Most of the ones I have seen were "I generated some code and did not like the output". No attempts of iterating and refactoring.
I believe they simply did not yet try our way of working.
Remember, models have no identity. They just try to say what they think you wan them to say.
Can you elaborate on this? Clearly you cannot imply this means those audits have any real value since its just roleplay in this context right? Because your app in the current form will not be affected by Regulation Z in any way.
My wife intentionally overpaid on a credit card statement balance in order to gain some credit limit headroom in the current month. Using made up numbers: The balance said we owed $1,000, but she paid $2,000 to make room for a big purchase that month. My application rejected that overpayment as a data integrity error because it would have pushed the credit card balance to -$1,000.
This is a valid state though and Reg Z actually specifies the rules around that case. A bank has to refund a positive balance upon request or automatically after X number of days (I forget the amount).
So now, anytime my agents touch any code associated with credit instruments, they have to run a Reg Z audit to ensure that the data model reflects how banks actually operate in the real world.
Holy shit.
If your build scripts are more than 100-300 LOC you are doing something very wrong.
There's a reason why we talk about software development lifecycle, design, architecture, testing ... It's because it's been the most reliable way to build and ship software. We shouldn't expect discard this and expect agents to perform well outside of this.
I'm treating LLM agents as junior devs who happen to have vast knowledge of software engineering. As their team leader i make them go through planning, implementation, bug sweeping cycles using strict workflows. And it works quite well, i've been working on several large projects (1M+ LOC java,typescript,c/c++) and by any measure the projects are healthy. Sure the code isn't that beautiful, sure i'd have written things differently but it's pretty good nonetheless.
Shameless plug here: i've been also working on https://kodfactory.com, the code factory i've built to work on these large projects with workflows, reviews, etc ... I'm cleaning things up to open source it later.
They do often enough that it's not a surprising event, depending on prompt quality, context available, ability for the result to be objectively judged and iterate on by the agent, etc. For frontiers on very high settings at least.
because that's the end goal? and for simple small stuff they're already there?
Personally I find it much more efficient to give vague instructions and refine on the way, rather than trying to specify everything up front. With this workflow there is no such thing as a one-shot, I don't even know all the details of my intended result until I reach it.
Sure it can one-shot many small things, but for a larger feature it has to be a incremental process. Even when I have a Figma design to work from it never contains all the details like semantics of how various interactive elements work, edge cases etc.
Every time you see a benchmark for "how long the agent can go without asking for human intervention", that's encouraging vibe coding.
Sweet, I can't believe some people don't love this.
That is also because I have been obsessed with this synth for almost 30 years. I built clones of it 20 years ago in reaktor. I know how to spec out every aspect of this synth and I gave Claude a 150 page pdf on digital filter design too.
The results are far different than someone who has never used a virus prompting "make me an access virus B synth as a single html page".
We are calling both of these processes "one shot" but this is not even close to the same process.
I suspect this is the LLM discourse in a nutshell. People are using the same vocabulary for wildly different processes.
But I don't really want to play a part in a simulation, trying to cajole my scene partners into saying the lines I need them to say. I want to use a tool the same way I would use any other tool. If this is AI it should just do the thing. Anything else is an imperfection of the technology.
But at the same time, language is a vague communication medium. We have a precise language for describing forms of computation, but that's code so we're back at square one. We still haven't nailed the right amount of follow up and correction and interrupt-ability of these coding agents.
And we may never figure it out. It may simply be impossible. But it doesn't mean this weird anthropomorphization of AI is something I want to do. If I wanted to be a manager, I would be a manager.
That's why you tell it how to write the code, and then review the code to ensure it is what you wanted.
> We still haven't nailed the right amount of follow up and correction
I feel like I've got it under control. It's not really a problem at all to me. I just work closely with the AI. I do small tasks, I don't just have it generate thousands of lines at once. I tell it what to do and how, or give it some vague guidance and ask it to make a plan. Then review the plan, ask for some changes if necessary and execute. Then I go over all the changes, test them to ensure they work properly, have it fix any issues I find and so on.
I think the main problem with AI coding is people try to do too much. You can't keep a tight leash on it while also having it do a week's worth of work in an hour. I do one task at a time and I am heavily involved in it, deciding exactly how it's done. I micromanage the crap out of that thing. I write commits myself and I always review my own PR before submitting it to colleagues.
Works great. I get things done much faster than I used to, with better quality than before.
(If you give claude an inch these days it'll just steamroll through a whole program of work without checking what it should be doing - a kind of overenthusiastic pull towards the first draft that is often detrimental and definitely wastes tokens, and even for very basic tasks it's using many more tokens than it should because it's doing this full belt and braces thing for everything, just in case you're an idiot).
But also... it's something you can easily reign in if you want to.
If the general idea is that these agents write too many tests, sure I guess? ‘Too many tests’ doesn’t sound like a failure case of engineering to me; typically software has had too few tests. Also, a lot of the power of these agents is their ability to self-verify and correct, which the test loop is a part of.
Nobody is making you pay this supposed tax. Just tell it not to write tests.
So I'd rather micromanage the process step by step. It takes more of my time, but the result is much, much closer to what I actually wanted.
They handle edge cases, catch bugs, and write tests that I'd never write.
Even if, however, this leads to the average piece of software improving, this one-shot complexity has the same issues as any large project. The more code, the longer it takes to steer the ship.
This "rising tide lifts all boats" mentality will make exceptional software even rarer than it is today.
Excited for the Roller Coaster Tycoons of tomorrow[0].
[0]https://en.wikipedia.org/wiki/RollerCoaster_Tycoon_(video_ga...
I've been able to get such positive returns out of LLMs. I am working for 3 different remote jobs concurrently with it, I've shipped a few apps thats doing six digits a month, I found a life partner after I used LLM to really work on myself. I am also experimenting with hardware prototypes and will likely have funding to launch it all with LLMs.
Why am I able to get so much out of "vibe coding" but others seemingly do not? I am not a genius, I am not a artisan, I am just very persistent and clear on what I ask LLMs but more importantly I don't try to place any other sort of unrealistic expectations on what it can and can't do.
You read comments on HN and read these articles and you might come across feeling a sense of peril and doom which are all completely fictional for the most part. A lot can be achieved with LLMs, much more than what the constant doomers will try to drag you down to.
I now have my own link catalog, read-latter app and an RSS reader. Tailored to work exactly how I like. Hardened, with automated backup, and external users for the RSS app. It works. It takes learning, some knowledge of terms and very high-level practices, plus design thinking, but I haven't written a line of code for these.
I'd say that's the correct way to describe frontier models. They were trained with reinforcement learning based on human feedback. And obviously, humans prefer the bug-free variant. That's why models are now super verbose and spam tests like crazy. In their training environment, tokens were effectively free. And the humans that got asked never saw the price. If you ask people to choose the better offer and both are free, you end up with bloat. It's like people over-filling their plate at a buffet, then leaving leftovers. Except in this case, it's AI models burning through your wallet.
In case it helps anyone, this is how I did describe my desired harness, from scratch. I didn't know nor wanted to write all the ".vscode/skills" files, or the AGENTS.md file or any of that, so I asked Opus to "write a Harness and all related skills as needed, to follow this procedure on absolutely every change"... It (at least on VSCode) already comes with a harness/agent creation skill by default, so it has the ability to write a very good standarized process for you.
I've been playing with AI seriously for the first time, with a Python app that reads a spreadsheet with investment bookkeeping records and generates a pre-filled tax form. The harness prompt was somewhat like this:
----
1. A "Technical Spec Writer" subagent notes down every requested change to a SPEC.md file. This spec includes functional and behavioral descriptions, together with detailed technical documentation, includes software architecture, data models, API boundary definitions, etc. It then reviews everything for inconsistencies, mistakes, and text consolidation opportunities.
2. A "Tax Law Expert" subagent makes a due diligence review of the spec corpus, and raises any concerns it has wrt. what the actual Law mandates vs. what the spec docs say. Any concern is a blocker which gets documented and must be resolved by the owner (me) before proceeding. Ask me for clarifications, rulings, reference documentation, etc. as needed.
3. A "Software Engineer" subagent takes the spec and implements it. Reviews for obvious mistakes, variable misuses, unhandled errors. Finally, reviews the code to find DRY or refactoring opportunities.
4. A "Quality Assurance" subagent makes a final pass on the code, ensuring full compliance of the codebase with the specification. Also, tests are passed and verified.
----
I would have never imagined how deep the "Tax Expert" would make me go until "it" was satisfied with the results. The resulting spec is by no means a replacement of a human expert reviewing the tax declaration, but I am 98% confident that much more than the "happy path" of what I particularly want to cover is actually right. It asked me for clarifications or references (actual URLs so it could read them) to jurispridence on corner cases that I had not even anticipated for my own declarations.
In comparison, the actual "software engineering" must have been like 15% of the time/tokens.
It definitely helped me do a much deeper dive on the legalese than I would have done otherwise when writing something like this. (Still no replacement for an actual expert)
Anthropic especially right now seem to be optimising for doing the whole task with no input. That's fine when that's the only task, and it's fine when you don't care how the sausage is made, but it's not fine for actual software engineering.
I just did what the article says. My own Open-Source Kanban Board and I've published a month ago. According to the metrics, it's doing well: https://community.obsidian.md/plugins/fancy-kanban
And I've also made the personal finance tracker as well: https://www.youtube.com/watch?v=qi4P4kL4IkQ
Now, one caveat. I don't vibe code with one shot prompt. I use something called Micromanaged Driven Development (MMDD) which aims to be the opposite of one-shot prompt: https://mmdd.dev/
When I read articles like these, it surprises me that it's very unusual for me to hit token limits. I've standard accounts, I don't spend more than $40 per months in tokens.
Probably I couldn't find the right narrative to promote MMDD, or probably nobody cares and this is why you fall easily into clickbait narratives to get people's attention these days.
Not justifying, just trying to describe a perception.
Perfect, this is exactly how I refer to my LLM workflow too!
The funny part is? This makes our managers and investors proud, every PR is bigger, we make x3 more PRs (wheres the promised x10).
When they say this is the death of software engineering, this is what they mean.
Yet, we are being sold that this is _the way weve all been waiting for_ ? what?!