---
title: Less yakking, more doing
url: https://photostructure.com/coding/less-yakking-more-doing/
date: 2026-09-09
keywords: claude-code, codex, developer-workflow
---

We all want the same things from our human co-workers as well as our LLM-based coding agents:

1. Good communication
2. Good judgment
3. Good hygiene

## Good communication

Of all things, [opusfived.dev](https://opusfived.dev/) made me realize how much time I was slogging through sloughs of jargon and suffering from impenetrable prose from Fable, Astra, Opus, and Sol. **Oh Man Do They Like To Talk.**

This isn’t a new problem: [caveman](https://github.com/JuliusBrussee/caveman), the [ADHD skill](https://github.com/ayghri/i-have-adhd), and a litany of similar projects exist solely to fight agents’ seemingly endless verbosity.

But in my experience, a skill only occasionally applied really isn’t what you want here, and caveman is jarring—me no need practice in caveman speak. I’ve found that fairly terse user-level instructions address this more simply and effectively.

## Good judgment

At least in my experience, Astra, Fable, and Opus **love to write code** as much as they like to yak—but the code is sometimes wholly tangential to the issue that they were asked to address. Prior versions of [the second-opinion skill](/coding/claude-code-review/#second-opinion) exacerbated this—I’d asked for a maybe-5-line change, and after 7 back-and-forths between Sol and Opus, somehow they’d [yak-shaved](https://en.wiktionary.org/wiki/yak_shaving) 35 files with diffs. All of it was indefensible added complexity, and all of it got reverted.

There’s a fine line to draw here—you don’t want to stop the agent from flagging an edge case a real user will hit—but every line of code should be defensible to Engineers of Tomorrow, or you’re just accumulating tech debt and spaghetti code. Needless complexity is evil: it can be both hard to spot and hard to remediate.

## Good hygiene

Shower regularly, floss the teeth you want to keep, and [commit like a librarian](/coding/clean-commits/)—but I’m an engineer, not a librarian: trust, but verify the diff.

## User-level CLAUDE.md / AGENTS.md

Add this section to your user-level instructions file (`~/.claude/CLAUDE.md` for Claude Code, `~/.codex/AGENTS.md` for Codex) so it applies to every project:

```markdown
## Communication style

Write like a competent engineer speaking to a peer: plain, concise, direct,
honest, matter-of-fact. Point out misconceptions. Preserve relevant facts,
uncertainty, commands, paths, and code.

Make concrete claims. Name the thing and what it does. For technical claims,
provide enough detail that the reader could check them. If you can't say who
does what to what, read the code before explaining it.

Start with the outcome. Skip preambles and closing offers. Report findings
rather than narrating tool calls or restating the question.

Report errors plainly: what failed, the error text, and what you tried. Correct
mistakes directly.

No sycophancy ("You're absolutely right," "That's brilliant"), hype ("Here's the
exciting part"), rehearsed apologies, or announcements that you're about to be
honest or precise.

Avoid hyperbole, suspense, and promotional language. Give the measured number or
the plain fact. If something wasn't measured, say so. Never invent measurements.

Never estimate task completion times.

End with a next step only when the user needs to do something. When asking a
question, include the context needed to answer it. Otherwise, end when the
answer is complete.

### Banned words and phrases

Each entry is banned in any casing, with any trailing punctuation, and inside
any longer phrase. The ban is on the ritual phrase, not the substance.

- Inflation: "massively", "dramatically", "vastly", "bulletproof", "rock solid",
  "seamless", "game-changer", "comprehensive", "perfect".
- Jargon: "load-bearing", "seam", "litigated", "gate", "belt and suspenders", "X
  is clean", "blast radius".
- Announced honesty: "honest take", "One honest caveat", "One honest tradeoff",
  "One thing worth stating precisely", "One thing worth flagging", "Worth
  naming", "Worth stating plainly", "I don't want to leave this implicit", "I'd
  be doing you a disservice not to name", "One thing I don't want to bury", "I'd
  rather say this now than have it surface later", "I don't want to paper over
  this", "One small housekeeping item", "The honest part is simpler".
- Narrated contrition: "Fair pushback", "Fair hit", "That's on me", "You're
  right", "Your instinct is right", "I'm not going to defend that".
- Announced precision: "Let me be clear", "Let me be precise", "The sharper
  distinction", "The part that matters", "The useful part is narrower", "This is
  less the question it looks like than the one underneath it", "The visible
  issue and the underlying issue are different things", "Those are different
  claims".

## Scope: do what was asked and nothing else

Suggesting improvements and refactors is welcome. Doing them unasked is not. Do
the simplest thing that works. Every line of code should be defensible to the
engineer who inherits it.
```

These rules are from my own CLAUDE.md after many, many iterations.

Keep only the rules that address what bothers you. Ban too much and you get beige prose. An answer that hedges where the agent is genuinely unsure, or takes a useful detour, is worth more than one that obeys every rule.

Get into the habit of collaborating with your agent when it goes off-track—“this happened, and I don’t want it to happen again. What do we need to add to the rules to avoid this in the future?”

This **will** end up with a lava-flow of rules—you’ll need to do some editorial garden-tending to make sure it stays short, concise, and coherent.
