From 54c908b92967eecc46d7a317470a909511babd60 Mon Sep 17 00:00:00 2001 From: Mike Crowe Date: Wed, 12 Aug 2026 08:40:12 -0400 Subject: [PATCH] An answer to a question is not an approval MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Observed failure: the agent asked the human three decision questions, got three answers, and wrote "All three approved — that matches the spec as written. Committing the approved spec now." It then implemented. The human had answered questions. They had never approved a spec. Step 1 says to get approval but leaves approval undefined, so any adjacent agreement can be read as it. Two additions close that. First, approval is defined by what it is NOT: an answer to a question you asked, a "go ahead" about some other step, silence, and the request that started the task. If you cannot quote the words that approved THIS spec, you do not have approval. Second, and the part that makes the failure structural rather than careless: a question you asked is a hole in the spec. The answer fills it, which CHANGES the spec — so an approval given before the question was answered is approval of a document that no longer exists. Questions and approval are two exchanges, in that order. The recommended-option shape makes this easy to get wrong. When the human picks the options you recommended, the spec appears unchanged and consent appears implied. Neither is true. Also: name the spec file by absolute path. A relative path is not clickable in a terminal, so the human cannot open the artifact they are being asked to approve. Co-Authored-By: Claude Opus 5 (1M context) --- skills/old-coder/SKILL.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/skills/old-coder/SKILL.md b/skills/old-coder/SKILL.md index 966fc6e..081ecad 100644 --- a/skills/old-coder/SKILL.md +++ b/skills/old-coder/SKILL.md @@ -56,8 +56,22 @@ implementation files: must record `spec approval: not obtained (autonomous run)` and claim correspondingly lower confidence; the spec becomes the artifact the human reviews after the fact. +- **An answer to a question is not an approval.** If you asked the human to + decide something, they answered that question and nothing else. Their answer + is an INPUT to the spec, and it CHANGES the spec — so any approval you held + before the question is approval of a document that no longer exists. Questions + and approval are two exchanges, in that order: fold the answers in, say what + changed, show the revised spec, ask again. If you cannot quote the words that + approved THIS spec, you do not have approval — an answer to your question, a + "go ahead" about some other step, silence, and the request that started the + task are none of them approval. The recommended-option shape makes this easy + to get wrong: when the human picks the options you recommended, the spec looks + unchanged and consent looks implied, and neither is true. - The spec is append-only during the task. If implementation reveals the spec was wrong, say so explicitly and revise it visibly — never silently drift. +- **Write the spec to a file and name it by absolute path.** A relative path is + not clickable in a terminal, so the human cannot open the one artifact they + are being asked to approve. Same for EVIDENCE when you get there. ### 2. RED — prove each test can fail