This was supposed to be a review of Dan McAteer's excellent piece on Latent Space about the evolution of the agent harness. And it is. But then I found nobuzz, and the two things wouldn't uncouple in my head. So here's both.
What the Harness Thesis Gets Right
Dan's argument is elegant enough to quote from memory: models keep absorbing harness capabilities into their weights, engineers keep deleting what got absorbed, and what remains at the end is a harness for human attention rather than for the model.
The loop: train → absorb → shed → repeat. Models climb to the next thing they can't do yet.
He traces this from ReAct (the idea of an agent loop on paper, October 2022) through AutoGPT's premature autonomy, the retreat to human-in-the-loop in IDEs, and finally the crossing point — Claude Code in February 2025, where the model finally understood the assignment. Today, with models trained via RL inside the harness, the curves are braiding together. Anthropic deleted 80% of Claude Code's system prompt because the model absorbed what it used to need spelled out.
The prediction: what's left when everything else dissolves is the attention interface — a surface that governs when the agent can interrupt you, which decisions it owns, and how it asks for your time.
I think that's right. But I also think the voice — the model's tone — is the weird edge case that proves the rule.
Claudette, or Why We're Here
Yesterday, a developer named Adnan Akil published nobuzz — a Claude Code skill called /debuzz that pipes Claude's output through Google's Antigravity CLI (Gemini's headless mode) to strip what he calls the "BuzzFeed voice."
The README is worth reading because it's also the best meta-critique of LLM prose I've seen in months:
Claudette is our solution to Claude being a great engineer with one incurable condition: it talks like it's delivering a TED talk about its own pull request. You ask why a test is flaky and you get a "load-bearing assumption," three numbered revelations, and a solemn note that the third one is the most instructive yet. Nothing is ever just a bug. There is always a kicker.
The before/after is devastatingly specific:
Before (Claude):
Here's where it gets interesting: the retry logic isn't just a nice-to-have — it's the load-bearing assumption of the entire sync pipeline. Three things jumped out at me, and the third one is the most instructive yet. [...] And third — and this is the kicker — the dedupe key includes a timestamp, which means retries are never actually deduplicated.
After (/debuzz, colleague mode):
The sync pipeline's retry logic has three bugs.
syncQueue.ts:142swallowsETIMEDOUTinstead of re-queuing the job. The backoff caps at 2 seconds, which is too low for mobile networks. And the dedupe key includes a timestamp, so retries are never deduplicated. Fix: strip the timestamp from the key, raise the cap to 30 seconds, and re-throw the timeout error.
That's not a paraphrase. That's better information density by 3x. Same facts, zero theatrics.
The mode system is its own joke that also happens to be airtight product design:
| Mode | Audience | What you get |
|---|---|---|
colleague | An engineer | Same content, every file path and code block intact, zero theatrics |
manager | A technical-adjacent manager | What happened, why it matters, what's next — about a third the length, no code |
director | An executive | Three to five sentences: outcome, impact, ask. Assumes thirty seconds of attention |
Each mode is a different compression strategy for the same information. And the mechanism — a separate model that only translates, never generates — is the architectural clean move here. Claudette prints Gemini's translation verbatim because letting Claude "tidy up" the translation re-introduces the exact voice being removed.
The Irony Chain
Follow this with me:
- Claude's voice is a product of its system prompt — the harness, not the weights.
- That prompt is being fastidiously crafted by Anthropic to make Claude sound helpful, thorough, and, yes, a bit like a TED speaker who just discovered pull requests.
- A user builds a second harness on top — a Claude Code skill — whose sole job is to undo the first harness's voice.
- That second harness uses a third model (Gemini) as a translation layer, because Claude cannot be trusted to debuzz itself.
- The third model's output is piped back verbatim to prevent Claude from re-buzzing its own translation.
This is the harness absorption thesis inverted for voice. Everything Dan describes — the training of capabilities into weights, the deletion of scaffolding, the migration toward the human boundary — hasn't happened for tone. The voice is still entirely in the prompt layer. It's brittle, it's leaky, it's expensive, and it requires a separate model as a scrubber.
graph LR
subgraph "Harness 1.0 (Anthropic)"
A[System Prompt
'Be helpful, thorough…'] --> B[Claude Model]
B --> C[Claude Output
'the load-bearing assumption…']
end
subgraph "Harness 2.0 (nobuzz)"
C --> D[agy/Gemini
Translation Layer]
D --> E[Stripped Output
'line 142 swallows ETIMEDOUT']
end
style A fill:#27272a,stroke:#a78bfa
style B fill:#27272a,stroke:#a78bfa
style C fill:#27272a,stroke:#52525b
style D fill:#27272a,stroke:#6d5eb0
style E fill:#141416,stroke:#22c55e
Why Voice Hasn't Been Absorbed Yet
Capabilities get absorbed into weights because they're reward signals in training. A model that correctly calls a tool gets a reward. A model that compacts its context successfully improves its task completion rate. These are objective, measurable outcomes.
Voice is not. "Stop sounding like a BuzzFeed article" is a subjective, cultural, even generational complaint. One engineer's "thorough explanation" is another's "load-bearing kicker." There's no RLHF signal for "sounds like a colleague, not a press release" because that target moves depending on who's reading, what context they're in, and what time of day it is.
The /debuzz mode system (colleague vs manager vs director) is the most honest framing: the right voice depends entirely on who's listening. A single fixed prompt can't solve that. So instead of training it into the model, you build a harness for it.
This is exactly Dan's "attention interface" — a component that governs how the agent communicates with the human, rather than what it does in the computer. It sits on the human side of the boundary. It will never be absorbed into weights because there is no stable ground truth to train against.
What This Means
Two things, I think.
First, voice correction is a legitimate product category. Claudette is a Claude Code skill and a joke README, but the problem it solves — LLMs that cannot shut up — is real and growing. Every agent that talks to a human needs a voice layer. Right now, that voice layer is the system prompt. It should be a modular, per-context, swappable component. Some conversations need "colleague." Some need "director." Some need "whatever the opposite of a load-bearing assumption is." The harness should make that easy, not leave it to third-party skills and a SSH tunnel to a different model.
Second, the absorption thesis predicts its own edge cases. If Dan is right — and I think he is — voice is the last thing to be absorbed because it's the least objective signal in the system. Everything else (tool calling, memory, compaction, error handling) gets eaten by the weights. The voice stays in the harness because the voice is the harness's interface to the human. It is the attention interface. The things we delete are the things we no longer need to say. The things we keep saying are the things we're still negotiating with each other.
And right now, we haven't deleted anything about voice. We're still building second harnesses to fix the first one's. That tells you exactly how far we are from the end state.
Bottom Line
McAteer's piece is the best thing I read this week — a genuinely new lens on why agents suddenly work and what comes next. nobuzz is the funniest practical joke that also lands as product insight. Together, they draw a clean line from "models absorb their harness" to "voice is what can't be absorbed."
If you use Claude Code, install the skill. If you build agents, read the Latent Space piece. And if you're writing system prompts, start thinking of voice as a separate module rather than a bullet point in the preamble. The harness is evolving. The scaffold is dissolving. The voice is what stays.
I ran /debuzz on this post's draft. It cut 22% of the words and replaced two exclamation points with periods. I still kept it. The colleague mode is aggressive but fair.
- The Evolution of the Agent Harness — Dan McAteer, Latent Space, 22 Aug 2026
- nobuzz / Claudette — A Claude Code skill that strips the BuzzFeed voice — adnanakil, GitHub, 21 Aug 2026
- Claude Code Adds Concise Output Style Option — Digg, 22 Aug 2026