From 606e3323056419af30a0c01c6a37a1b080a6e99f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Tue, 25 Aug 2026 03:48:14 +0000 Subject: [PATCH] skill: delegating the writing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit the owner's architecture, somebody else's typing, a review in the middle. set as a standing way of working rather than a per-task decision: when a feature is agreed and what remains is typing, it goes to an agent. carries what a brief has to contain — exact paths, a file to copy the shape from, what must not change, and the commands that verify it — since an agent that has to ask a question has already cost more than it saved. and both failures from the first night it was tried: a dead subagent reported as running twice, because a rejection in the parent had killed the sidechain hours earlier and nothing said so; and interrupting the parent interrupting the child. Co-Authored-By: Claude Opus 5 Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043 --- skills/delegating/SKILL.md | 67 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 skills/delegating/SKILL.md diff --git a/skills/delegating/SKILL.md b/skills/delegating/SKILL.md new file mode 100644 index 0000000..e4dd1f6 --- /dev/null +++ b/skills/delegating/SKILL.md @@ -0,0 +1,67 @@ +--- +name: Delegating the writing +description: >- + Use when a feature has been agreed and somebody has to type it — how to hand the writing to a cheaper + agent, what a brief has to contain, and how to review what comes back. Also read it before deciding NOT + to delegate, because most of the cost of doing it yourself is invisible until the context runs out. +version: 1 +--- + +# Why this exists + +The owner's architecture, somebody else's typing, and the owner's reviewer in the middle. That division +is the whole point: the expensive model should be spending its context on decisions, not on writing out +six locale files or the same form for the fourth time. + +Set as a standing way of working on 2026-08-24. It is not a suggestion to consider per task — when a +feature is agreed and the remaining work is typing, it goes to an agent. + +# What stays here and what goes + +**Stays.** The design. Which boundary moves, what a thing is called, what the failure modes are, and +whether the result is right. If a decision has to be made while the code is being written, the brief was +incomplete — that is a fault in the brief, not a reason to take the work back. + +**Goes.** Everything mechanical and everything wide: a change repeated across many files, translations, +a form, a migration over a list of call sites, tests for a rule already agreed. + +**Does not go.** Anything where a wrong guess is expensive and quiet — permission checks, credential +handling, anything that deletes. Not because a smaller model cannot write them, but because reviewing +them properly costs as much as writing them, so nothing is saved. + +# The brief + +An agent that has to ask a question has already cost more than it saved. So the brief carries: + +- **The exact files**, by path. Not "the locale files" — list them. +- **The pattern to follow**, by pointing at a file that already does it. "Same shape as `pt-PT.json`" is + worth more than any description. +- **What must not change.** Key names, public exports, anything another file imports. +- **How it verifies itself**: `bunx tsgo`, `bun test`, `bunx prettier --write `. + Say that a red typecheck is not done, or it will report success with a broken tree. +- **What done looks like**, in one sentence it can check itself against. + +Run it in the background and carry on. A brief good enough to run unattended is the same brief that makes +the result reviewable. + +# Reviewing what comes back + +**Read the diff, not the summary.** The summary is written by the thing being reviewed. `git diff` is not. + +**Run the checks yourself.** `bunx tsgo && bun test` in the real tree. An agent reporting green has +reported what it believes. + +**Then it is yours.** It goes out under your commit and your name, so a mistake in it is not the agent's +mistake. Review it as if you had typed it, because as far as the history is concerned you did. + +# What went wrong the first time, so it does not go wrong again + +Both of these are from one night, 2026-08-24. + +**A dead agent was reported as running, twice.** A subagent is a sidechain in the parent session, and a +tool rejection in the parent had killed it about four hours earlier. Nothing said so and the parent kept +answering "still running" when asked. **Never report a subagent's state from memory — look.** If the +result is not in the tree, it did not happen. + +**Interrupting the parent interrupts the child.** Stopping the session to say something also stops the +work it was waiting on. Worth knowing before assuming a long silence means progress.