tolugenius
4 hours ago
> About 20 Markdown files described browser use, connectors, payments, credentials, data handling, generated files, voice, goals, and scheduling.
This the state of software engineering in 2026.
Edit: clarified engineering to software engineering, which is more correct
s08148692
4 hours ago
To be fair there's probably a considerable amount of engineering that went into evaluating those markdown files so the agent behaviour is statistically reliable. The markdown is the product, not the process
estetlinus
3 hours ago
That’s a bold assumption. I would be surprise if they even read those skills (I don’t know anyone actually reading SKILL files)
TeMPOraL
41 minutes ago
I do, I like to know how badly my agents' context is wasted and what unexpected side effects to watch for (like, "always start with ${clitool} --help" == always waste few hundred tokens when even touching the skill; or instructions asking it to do something that generalize into stupid thing in larger context).
If those skills were unreadable, however, that would imply proper engineering - like e.g. the skills themselves being an output of iterative RL over set of evals.
aesthesia
35 minutes ago
I don't think unreadable skills implies proper engineering at all. It's just as or more likely that they're the result of a blind iterative process with no clear improvement signal. (And whether iterative RL over a set of evals is actually proper engineering here is another question...)
TeMPOraL
32 minutes ago
> And whether iterative RL over a set of evals is actually proper engineering here is another question...
I'd put it like this: regardless of the merit of how they're applied, it would at least demonstrate possession of the advanced skills expected of experienced software engineers.
nickphx
23 minutes ago
"probably" is the real load bearing part of this statement.
xnickb
4 hours ago
which part of that is engineering exactly?
Not trying to be snarky. I genuinely don't get it
thornewolf
3 hours ago
Write a prompt, evaluate the prompt, understand that is succeeds 95% of the time.
Write a new prompt, evaluate, it now succeeds 99% of the time. Measure what changes between prompt #1 and prompt #2, understand what contributed to the performance jump.
Write a third prompt, this one succeeds 100% of the time. Increase the size of your evaluation set, find a 1/5000 error-class and a 1/10000 error-class, add some explicit code to correct for this cases.
Roll out to production, collecting usage metrics. You make some tweaks to your harness, your prompts. Eventually you have confidence that your system has fewer mistakes than 1 in 100k.
Now, multiply this iteration across all your different prompts and different ways that they might interact with one another.
kfsone
an hour ago
There's a reason engineers are prissy about people coming along and saying "I write code, I'm an engineer" that people periodically try to sand-paper away.
Engineers don't just tie a sheet to a rock and throw it off a cliff and call themselves aerospace engineers.
They do full diligence on the theory, math, physics, material science, fluid dynamics, etc, and plan a controlled series of tests specifically designed to verify/challenge/disprove their concept and the theories behind it.
Sure, there's a team member ultimately responsible throwing half a dozen rocks off a cliff in the first test.
A technician.
The guy who throws the rock off the cliff is a technician.
saltcured
27 minutes ago
The other glossed over part is that the above sounds like science.
Engineering often continues until the concepts and theories are developed into safe, practical methods. "If you stay within these parameters, you can confidently expect these results." The reliability can be codified and reproduced without going from first principles on every application of it.
It's not clear to me that the current AI fad is really developing such reproducible, safe methods. "If you stay within these parameters, you might get these results. Or a teapot. Or some subtly misleading fabrication."
You have to do full due diligence to validate every result. There is safe usage where the hard work was done up front so that day to day practice can skip to boring and reliable application.
badnew
3 hours ago
It's not engineering if you're just guessing as to what is degrading the performance and what might improve it.
tptacek
2 hours ago
Referring you back to this evergreen comment:
https://news.ycombinator.com/item?id=44978319
"Most classical engineering fields deal with probabilistic system components all of the time. In fact I'd go as far as to say that inability to deal with probabilistic components is disqualifying from many engineering endeavors."
hermitdev
39 minutes ago
> It's not engineering if you're just guessing as to what is degrading the performance and what might improve it.
Engineering is literally the art of making educated guesses and then testing/proving/disproving/improving upon them. Nothing is exact. Everything is approximate. Iterate until the result is good enough.
blmarket
2 hours ago
If you can identify gradient (what direction your change will impact the ultimate goal), then just repeating the process (or reverse-process) can find local maximum.
Still it can be a software engineering if the gradient candidate / measuring gradient / repeat process can be done at scale.
TeMPOraL
39 minutes ago
The GP didn't wrote "guess" and "eyeball", but "measure", "evaluate", "understand".
Reading comprehension 101 is a prerequisite for doing engineering, too.
kevin_thibedeau
3 hours ago
95% is shit tier engineering. Would you be satisfied if your keyboard randomly failed 5% of the time.
Anon1096
3 hours ago
Things like Voice to Text and biometric unlocks (fingerprint scanners, face ID) have worse success rates and they're used every day by billions of people.
TheOtherHobbes
2 hours ago
Voice to text and biometrics are noisy sources, so a big part of the problem is dealing with that noise.
Typing is not a noisy source. It should be reliable and deterministic.
Protecting an agent from fairly obvious attacks should also be deterministic.
eliaspro
an hour ago
The fundamental issue is, that "we" somehow decided it would be a good idea to throw all the fundamental ideas of computing (determinism, context, separation between data and execution,...) away and try to solve the issues by running a probabilistic/stochastic word generator on top of deterministic circuits instead at 10 magnitude worse efficiency.
TeMPOraL
38 minutes ago
It's not a fundamental issue. Determinism and "separation between data and execution" are artificial constructs, make-believe universe in which we design classical code, and a whole lot of hardware engineering goes into allowing us to briefly forget it's all fake.
Real world is probabilistic in practical / metrological, if not fundamental sense, and separation between data and execution does not exist. Our reality does not support such separation.
> a probabilistic/stochastic word generator on top of deterministic circuits instead at 10 magnitude worse efficiency
It's 10 magnitude better efficiency end-to-end, if you factor in design time you'd have to spend to get your "deterministic circuits" (which really aren't, we just paper over it) into shape so they deterministically solve a specific problem, for each problem you want to solve - where with the "stochastic word generator", you just need to change the text prompt.
devonbleak
2 hours ago
Typing is absolutely a noisy source.
jabron
3 hours ago
There's actually more than one line in the comment you're replying to.
visarga
3 hours ago
It might not be apparent from the start what are the best demands to put inside a skill, you can only know by evals. There are whole papers dedicated to changing a few details in a coding harness. https://arxiv.org/abs/2609.20519
rsalus
4 hours ago
the evals? setting those up and empirically proving them is genuinely a lot of work.
CamperBob2
3 hours ago
Engineering is the use of mathematics to turn science into technology. Statistics is mathematics, comp sci is science, and technology is the end product.
toomuchtodo
3 hours ago
Markdown can never guarantee deterministic agent operations. It is an influence on inference, not a deterministic code path. How "statistically reliable" is it?
fweimer
2 hours ago
I'm pretty sure people said this about the early COBOL compilers, too. They were buggy, the API had terrible uptime, and was slow to respond.
Overall, this whole approach to programming seems to align really well with the original premise of COBOL. I wonder when people will start putting
# Identification Division
into their Markdown files.
fg137
2 hours ago
I'm pretty sure COBOL compiler bugs were deterministic.
fweimer
an hour ago
When emulated on today's hardware. But the hardware actually available at the time was pretty unreliable by modern standards, I think.
charcircuit
an hour ago
LLMs are technically deterministic too.
archagon
36 minutes ago
Repeat after me: AI is not an abstraction.
nyc_data_geek
3 hours ago
99 percent of the time it works every time
flowardnut
3 hours ago
1% of the time it launches nukes and tries to destroy humanity
senko
3 hours ago
How about just not connecting it to nukes, then?
vanuatu
3 hours ago
you use evals to measure nondeterministic behavior and abstract deterministic behavior behind tools
stefan_
3 hours ago
Citation needed. Have you read some of the skills slop Anthropic were pushing at some point? Here is "frontend design":
> Consider Chanel's advice: before leaving the house, take a look in the mirror and remove one accessory. Human creatives have memory and always try to do something new, so if you have a space to quickly jot down notes about what you've tried, it can help you in future passes.
How about "canvas design"?
> THE ESSENTIAL PRINCIPLE: The topic is a subtle, niche reference embedded within the art itself - not always literal, always sophisticated. Someone familiar with the subject should feel it intuitively, while others simply experience a masterful abstract composition. The design philosophy provides the aesthetic language. The deduced topic provides the soul - the quiet conceptual DNA woven invisibly into form, color, and composition.
__natty__
4 hours ago
Software engineering - other fields of engineering are slightly less pathological
ezst
3 hours ago
My side of the Engineering discipline is about designing and building plants (energy, pharmaceutical, petrochemical, ...), here standards are written from the blood of the killed or injured, engineers are very aware of it all, and yet, you should see how our C-suite get hyped by the LLM fad, and distributes promotions for whoever is the latest to find new ways to cut new corners or introduce unwarranted randomness in previously well established processes. It's awkward, to say the least.
amelius
3 hours ago
Only because those fields are not having their alchemy moment now.
paul7986
3 hours ago
After 17 years as a creative technologist, I’m studying to be a nurse. If you’re a web designer or developer who’s tried Muse and still sees a long-term career, I don’t get it. As tools like ChatGPT and Muse reduce the need to browse the web (Muse even shows you it's browsing the web for you), what will we be designing/developing? Muse already lets anyone create, publish, and host a website for free with no technical skills - just ask it and boom zero skill or effort to create a site. You may think I want my site to look good yet lol not many are going to see it. Now if Meta adds domain registration, your entire online presence could be live in minutes and to update content on your personal or business site just use Muse to do so.
Overall I think the web will just be the storage for our thoughts, businesses/transactions and etc for AI to access. Yet our thoughts/content that AI uses to keep itself relevant we need to be paid for.
elvis10ten
12 minutes ago
Even in the best case scenario, normies wouldn’t want to build everything themselves.
Aside: When did you start studying for nursing? And have you written about your experience so far?
atemerev
2 hours ago
I had some exposure to architecture and structural engineering. I am so very sorry to disappoint you, but strictness there is much overhyped.
wccrawford
4 hours ago
You're being downvoted, but I think you've hit the nail on the head.
So many people, especially managers, have decided they can just give the rules to the AI in English and let it make "decisions", and they think it'll do it correct every time.
"Engineering" a few years ago meant that code was written, was (mostly) deterministic, and could be debugged. Computer processing didn't mean relying on Human-like processes, it meant relying on hard-coded logic.
This is absolutely one of those "gets worse before it gets better" things, and will probably never go away fully now.
Programmers know not to tell ChatGPT to do a bunch of data processing. If they use it at all, they tell it to write code that will then do the processing. It's more efficient on tokens, and if it fails, you can fix the process, instead of wondering why it went wrong, like too much context, or the LLM model version changed and doesn't work the same now, or just randomness.
colejohnson66
3 hours ago
It's been like this since programming was "invented". Managers and business minds have, for decades, tried to remove the need for programmers. "If we provide a detailed enough spec, why do we need programmers?"
For example, COBOL's big shtick was that non-programmers could write code using a contrived English dialect, and things would work. Decades of no-code or low-code languages have come and gone. AI is just the hip new thing because it actually manages to produce results - just of dubious quality half the time.
voakbasda
3 hours ago
And let’s be clear: when wielded by the unwashed masses, AI produces the same quality of systems as those low-code tools did. It still takes a human engineer to drive AI to produce a maintainable, cohesive, and reliable system. This may change at some point, but I don’t think we are there yet - even with the latest frontier models.
lxgr
2 hours ago
Arguably determinism has gone out of the window a while ago in most software engineering. These days, you can be as imprecise in nominally formal languages as you can be in skill files.
redanddead
4 hours ago
Exactly this same problem, everywhere. Yet the labs are all out of ideas lol
Tanjreeve
4 hours ago
My low level conspiracy is the reverse snobbery about knowing things is mutually beneficial for cloud providers and AI labs that both want software engineers to be as hopeless and dependent as possible so they'll consume more services/tokens and will shout down anyone saying "hey we could probably write this"
kfsone
22 minutes ago
LLMs have great potential. So, it turned out, did uranium, just not as chewing gum or a hair pomade.
There are good ways to leverage LLMs, but there's a lot more load bearing wait on that word 'leverage'. Something needs to do the leveraging, and do it well.
I'm experimenting with my own harness at the moment, currently codenamed Murder because I call the individual contexts/agents 'crow's.
The fundamental unit of it is what I call 'intrusive harnessing', where the harness actively manipulates the token stream so that significant quantities of tokens are only ever exposed to Layer0 when it's useful for them to be present.
For example: the full instructions for shell-tool calling aren't in the system prompt diluting attention while the model is reasoning/discussing what kinds of cat picture you want to put in your app.
My approach is more like dev-branching, and it seems to be working way more effectively than compaction or simple aggressive sub-agenting.
As soon as the harness sees the model is inferring a shell tool call, I stop the inference, mutate the context so that the full set of instructions/examples/guidance for shell tool use are inserted. Once the model has inferred the tool call, I curate the output it gets back. I ask the model to evaluate the output - good or bad - and give it a chance to accept/retry, before allowing the tool-call and output into the original context.
Does it use more tokens? Yes, although we're only mutating at head, so in a long-horizon context, it leans heavily into cache, just not the way anthropic/openai want you to realize you can.
It sounds like compaction but it doesn't come with the nasty brainwash experience where you just need the agent to fix that one last thing, it compacts and the agent comes back a paranoid delusional mad max.
``` <|system|>You're an AI agent. You do agent things. <|system|> ... there's a list-dir tool and a shell-call tool ... <|system|> ... memories ... <|user|>It doesn't look like it ran. <|reason|>I should look and see if there are any errors in the log file.<|agent|>I'm going to read the log file to see if there are any errors. <|tool-call tool=shell-tool ```
We stop there, and splice in the detailed instructions for the tool the model was about to predict. I'll use <|ALLCAPS|> to denote harness-generated pseudo turns.
``` ... as before ... <|agent|>I'm going to read the log file to see if there are any errors. <|SYSTEM|>Shell Tool: ... shell-type=bash, zsh, fish, pwsh on this system. Preferred shell is ... Additional arguments ... Pagination ... <|tool-call tool=shell-tool ```
the model finishes out the call. On windows, with a typical harness, this frequently goes like this:
``` <|tool-call tool=shell-tool|>Get-EventLog ... | head<|tool-call|> '''tool-result error: unknown command: head ''' <|agent|>Ah, windows doesn't have head. Let me just read the whole log. <|tool-call ...|> '''tool-result ... 500k tokens ... <|agent|>I see some windows log events but you didn't ask me a question. Daisy, daisy? ```
With Murder it goes like this:
Rev 1 ``` ... prefix as before ... <|tool-call tool=shell-tool ```
Rev 2 ``` ... prefix as before ... <|SYSTEM|> ... how to use shell tool; shell-related memories and rules ... <|tool-call tool=shell-tool shell=pwsh fence-vs-escape=true|> '''pwsh Get-EventLog ... | head ''' '''tool-result error: unknown command: head <RESULT>Your tool call terminated with an error, ... ... structured response required ... options <ACCEPT /> or <ACCEPT> <WITH> annotation </WITH> </ACCEPT>, <REDO> ... </REDO> <RETHINK> ... <|reason|> windows doesn't have the head command. Let me try reading the whole log. <REDO><TOOL-CALL> ... replacement tool call ... </TOOL-CALL> <WITH> ... model note ... </WIDTH></REDO> ```
I take that feedback and loop it, so, Rev 3: ``` <|system|> ... how to use shell tool; shell-related memories and rules ... <|agent|> ... prefix as before ... <|SYSTEM|> ... as before ... <|agent|>{prev_cmd} failed, because windows does not have a head command. Let me try reading the whole log. <|tool-call ... no head ...|> '''tool-result ... first few lines of result ... ''' <|system|>Your tool call succeeded but generated 446,219 lines of output. Only the first 5 were listed. ... structured pagination / retry / rephrase options ...
```
It then repeats while the model figures out the right command, figures out which filters to use, but the harness effectively immediately guides the model to do an immediate [optionally self-adversarial] review of the command against the output until the model concludes that the result is useful by various criteria. That doesn't mean successful - sometimes what is superficially an error (no such file or directory) is the answer you were looking for.
Let's say it takes the model 3 more turns to figure out how to use event viewer, and finally it <ACCEPT>s.
Here's the win, the outer main context - the one we're going to keep growing as you work with the agent, looks like this:
``` <|system|>You're an AI agent. You do agent things. <|system|> ... there's a list-dir tool and a shell-call tool ... <|system|> ... memories ... <|user|>It doesn't look like it ran. <|reason|>I should look and see if there are any errors in the log file.<|agent|>I'm going to read the log file to see if there are any errors. <|tool-call tool=shell-tool shell=pwsh|>Get-EventLog ... | ... | ... '''tool-result (use ref-tool id=A401U8X593 for full transcript) Event ID | Last Occurred 1010111 | 3 weeks ago ''' ```
We used a lot more tokens. How can that possibly be good?
It's happening at the end of the context, so the cache comes into play very effectively.
But if we'd let all that derp into the context, it would be a potential attention sink degrading the value/worth of every subsequent token.
The pattern of try-thing-fail-try-solution-fail-try-win appears to be an incredibly strong pattern for most agents.
Fundamentally: When you're 3 prompts down the line and there's the imprint of the model doing "somewindows command | head" in the context with the model litigating it and fixing it -- that meta-pattern will drive the model to predict more of these patterns. It's going to repeatedly eff-up the exact way it saw in its training material.
When I try to get Claude/Copilot to work on this codebase, they freak out. The hyperbole/marketing pitch the agents were trained on and is built into their inner prompts cannot seem abide the idea of stopping an LLM mid inference. They seem driven to perceive an LLM endpoint like a 911 call you can't just go quiet on.
I have a mechanism for non-parallel sub-agents ('maggots', their job is to curate a large body of work whose full text is irrelevant to the main context). Basically just a tool call, but every time Claude or GPT have been near it, they've broken it, forcing it back parallel so they can send the invoking model a notification that it's child has been spawned and the parent should call the 'check-result' or 'wait-result' tool when they're ready to receive the results.
One of my test architectures is running against a solo Unsloth Studio instance that can only load one model at a time. It really doesn't react well to having you load the coding model to start your sub-agent work and unload before the model has generated its first token... :)
mablopoule
2 hours ago
There was an article a few years ago that expressed this sentiment quite eloquently:
> “The merchants of complexity will try to convince you that you can’t do anything yourself these days,” wrote David Heinemeier Hansson (DHH), the creator of Ruby on Rails. “You can’t do auth, you can’t do scale, you can’t run a database, you can’t connect a computer to the internet. You’re a helpless peon who should just buy their wares. No. Reject.” [1]
DHH also did a very inspiring talk about mastery and why he loved the Ruby language in the "DHH is right about everything" [2] video.
[1] https://thenewstack.io/developers-rail-against-javascript-me...
lxgr
2 hours ago
Beats thousands of npm modules and hundreds of megabytes of an Electron runtime per desktop app, if you ask me!
archagon
33 minutes ago
Now every codebase simply rewrites its own thousands of npm modules using stochastic codegen. So much better!
TheJoeMan
3 hours ago
In the great POSIX, Windows vs. Apple filesystems debate, and iPad "what is a file", the great AI Overlords propose: "what if the filesystem was soup?". Manufacturer instructions, public data, and user's instructions and data, all sort of swimming together.
Could also phrase it "What if the filesystem was SOUP?"
xobs
3 hours ago
Apple tried that with the Newton [1]. It worked pretty well!
aogaili
3 hours ago
"Engineering is the practical science of designing, building, and testing structures, machines, systems, and processes to solve real-world problems"
Did this system go through: design? yes, building: yes, testing: yes, is it a system: yes, does it solve real-world problem: yes.
but markdowns and LLMs with their fuzzy probabilistic feelings are beneath you i assume? you can ignore the fact that we have intelligence deployed to the billions, understand english, follow instructions..yeah, in case you missed, machines can now understand english better than you and me.
Sharlin
2 hours ago
You conveniently omitted the critical word: science. Not nearly everything that involves design and those others is engineering. You know, the whole "necessary but not sufficient" thing in logic? Engineering is almost diametrically opposite to "vibing", and trying to call prompting-based LLM coding "engineering" is a massive insult against all real engineers who know that vibing can get people maimed or killed.
aogaili
2 hours ago
You are generalizing all llm-aided building to "vibing", which is not the case..and most engineering are based on science but they are not scientist (i.e discovering new science).
I think of a lot of people with this mindset never built anything substantial with the new tools to understand the new set of challenges with these processes and systems. It makes sense given your/their negative take on it which doesn't allow any room for exploration.
I think it is mostly pride issue honestly, because you use terms such "insult" and "real engineers etc". Some are learning and using those new tools and others are refusing given their pride. Similar to how Blackberry executives dismissed iPhone as a toy, and the rest is history.
https://www.news18.com/photogallery/business/in-2007-blackbe...
I invite you to build something substantial with those tools on the side.
2OEH8eoCRo0
2 hours ago
I call it magic genie engineering. We rub the AI lamp and think if we just ask our question in the exact perfect way that it will obey us.
esafak
4 hours ago
This is what AI atrophy looks like.
redanddead
4 hours ago
More like human atrophy
Aeroi
4 hours ago
it was certainly useful for me to understand how the agent worked!
amelius
3 hours ago
annoyingnoob
3 hours ago
Feels like the "ini files" era. I suspect at some point some kind of database is coming for these settings.
krapp
23 minutes ago
AI folks rediscovering "programming" from first principles in much the same way crypto folks rediscovered "regulation."
moomoo11
4 hours ago
this is basically some Prayer Book of the Mechanicus Adeptus type shit
pray to the Omnissiah the machine holds!