The Software GardenYou are the skill ← Contents
The Software Garden · Organisation

You are the skill

The tools change every few months. What makes them good doesn't change: the engineering judgement they run on. Your job is to get that judgement out of your head and into a form every agent applies, on every run.

Scroll ↓
The setup

The tool doesn't matter as much as you think.

In a few years we've gone from autocomplete, to chat, to agents in the editor, to agents in the terminal, to fleets of agents run by an orchestrator. Every wave arrived with a new “best” tool, and most of those were overtaken within months.

Two mistakes follow from that. Waiting for the tools to settle: they won't. And standardising too early on one tool, as if choosing it were the decision that mattered.

Pick something good enough and get good at it. What you learn carries over, because what you're really learning isn't the tool. Switching still has a cost: a new model has a different envelope, so move when the gain is worth recalibrating, not just because something newer exists.

⌨️ Autocompletesuggests a line
💬 Chatwrites a function
🖥️ Editor agentsedits files
⬛ Terminal agentsruns the loop
🐜 Orchestrated fleetsruns the process
❓ Nextmonths away
🧑 Your judgementcarried through all of them
What doesn't churn

The model is the same for everyone. Your judgement isn't.

Give two engineers the same harness and the same model, and they get very different results. The difference is everything they bring to it: how they break work down, what context they give, how they'll know the result is right, and what good structure looks like in this codebase.

That is the skill. And it's the scarce input: the model is a commodity anyone can buy.

🧩 DecompositionWhat can run in parallel, what must be sequenced, how big a task an agent can climb.
📚 ContextWhat the agent needs to know, and what will only distract it.
✅ ValidationHow we'll know it's right: the hard condition the loop climbs towards.
🏛️ Taste in structureWhere things belong, and which shortcuts will cost more later.
The thesis

The tools run on your expertise. Write it down where they can use it.

Judgement that lives in your head only reaches the changes you personally look at. At agentic throughput, that's a shrinking fraction of the total.

Judgement written down as a skill, an AGENTS.md, a rule or a check reaches every agent, on every run, while you sleep. Tooling is how one engineer's skill scales to a fleet.

Agent runs0
Judgement applied0
Missed0
 

Illustrative: you can look at about 1 in 6 changes yourself.

Where to put it

Push your judgement as far down the ladder as it will go.

Each rung reaches more work, and survives longer. A prompt helps one session. A skill or AGENTS.md helps every session that reads it. A check in the build is applied to every change whether anyone reads it or not.

Not everything can become a check: taste and context live in skills and docs. But anything that can be checked mechanically should be. That's Rules that enforce themselves, seen from the engineer's side.

🧠 In your headreaches: what you reviewLost when you're busy, on leave, or gone.
💬 In a promptreaches: one sessionRetyped every time, slightly differently.
📜 Skill · AGENTS.md · process modelreaches: every run that loads itVersioned, reviewed, shared. Advisory: the agent can still miss it.
⚙️ Type · rule · checkreaches: every changeEnforced. Nobody has to remember it.
Back to the churn

A skill is a text file. It outlives the tool.

Here's why the setup and the thesis fit together. Encoded judgement is plain text in a repository: markdown, rules, tests, process models. Any capable harness can read it.

When the next tool arrives, the engineers who wrote their skill down bring all of it with them. The ones who kept it in their heads start from a blank prompt.

# skills/sdk-change/SKILL.md ## When changing any public SDK surface ## Do - Change the spec or the generator hook, never src/gen/ - Regenerate in a separate commit - Add a red-then-green test for the behaviour ## Done when - make generate && git diff --exit-code passes - The README examples still compile ## Ask a human if - The change breaks the public API

Illustrative skill file.

At the org level

Your senior engineers' output is no longer code. It's encoded judgement.

An organisation's real asset in agentic engineering is the judgement of its best engineers, and how much of it has been captured where agents can use it.

Treat that work as first-class: give experts time to do it, review it like code, and recognise it. A senior engineer who turns a recurring review comment into a skill everyone's agents load has done more than one who leaves the same comment on a hundred PRs.

⏱️ Make time for itEncoding judgement is the job, not a side project after the “real” work.
🔍 Review it like codeSkills live in repos, have owners, and change through PRs.
📦 Share itSkill libraries across teams, so one team's lesson reaches every fleet.
🏅 Recognise itCount defect classes encoded away, not PRs personally reviewed.
So

Don't pick the perfect tool. Become the skill it runs on.

Tools churn; get good with one and move on when it's overtaken. What carries over is your judgement, and it only scales when it's written down: as skills, as AGENTS.md, as rules and checks that every agent applies on every run.