From 5a9df4e44e00a44767c1be896897fc215784ef19 Mon Sep 17 00:00:00 2001 From: Mike Crowe Date: Tue, 18 Aug 2026 04:55:44 -0400 Subject: [PATCH] Offer the loop before starting it, and let a scheduled run answer for itself The description says to load this skill on a high-stakes heuristic even when the user did not ask, and then says nothing about what to do next -- so the loop auto-fires and a wrong guess costs a spec, a setup plan and an approval request that nobody wanted. An offer costing one sentence is the right shape. Five rules, nine lines, placed after the thesis paragraph so the first thing an agent reads is still what the skill is for rather than a routing decision: offer and stop when nobody asked; create nothing before the answer; a configured invocation naming this skill is itself the ask; never stall when there is nobody to answer; and the offer is not spec approval. The fourth rule is the one that is easy to leave out. A gate that assumes a live human deadlocks every cron run, loop prompt and agent-to-agent task, and a gate that cannot be answered and proceeds anyway is another mechanism reporting success while doing nothing. So an unanswerable offer falls through to the autonomous rules already in step 1. The description gains the trigger contract and nothing else: load on the heuristic, offer, stop. It goes 557 to 661 characters. Two earlier candidate clauses are deliberately absent because both were argument rather than instruction, and both already exist in the body -- "a wrong guess costs a sentence and no files" is the justification for "create nothing before the answer", and the autonomous-run qualifier is bullet four nearly verbatim. The description is paid on every task, so it carries the contract and the body carries the reasoning. Co-Authored-By: Claude Opus 5 --- skills/old-coder/SKILL.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/skills/old-coder/SKILL.md b/skills/old-coder/SKILL.md index 1f69c6f..b2b25db 100644 --- a/skills/old-coder/SKILL.md +++ b/skills/old-coder/SKILL.md @@ -1,6 +1,6 @@ --- name: old-coder -description: Evidence-first development — surround the implementation with an executable spec and a gauntlet of constraints (tests, types, coverage, mutation) so line-by-line review becomes optional. Use when the user explicitly asks for high-assurance or evidence-first work ("reliable", "TDD", "prove it works", "I won't read the code"), or when the change touches high-stakes domains (money, auth, data loss, concurrency, public API). For routine changes where the user just wants normal tests, write good tests directly instead of invoking this loop. +description: Evidence-first development — surround the implementation with an executable spec and a gauntlet of constraints (tests, types, coverage, mutation) so line-by-line review becomes optional. Use when the user explicitly asks for high-assurance or evidence-first work ("reliable", "TDD", "prove it works", "I won't read the code"). Also load it when the user did NOT ask but the change touches a high-stakes domain (money, auth, data loss, concurrency, public API) — in that case the first and only act is to OFFER the loop in one sentence and stop. For routine changes where the user just wants normal tests, write good tests directly instead of invoking this loop. --- # Old Coder: Reliable Coding Under Constraint and Test @@ -11,6 +11,18 @@ you write code, and (2) an **evidence report** proving the code ran the gauntlet Your job is to make those two artifacts trustworthy enough that line-by-line review becomes optional within the spec's boundaries. +## First: was this loop asked for? + +- **Nobody asked; you loaded this on the high-stakes heuristic** (money, auth, + data loss, concurrency, public API): offer in one sentence — name the domain, + give two choices (the full loop, or a normal fix with good tests) — then stop. +- **Create nothing before the answer**: no spec, no setup plan, no branch. +- **A configured invocation naming this skill IS the ask** (a scheduled wake, a + loop prompt, another agent's task) — start at step 1, do not re-offer it. +- **Nobody to answer?** Never stall. Record the domain and proceed under step 1's + autonomous rules, with spec approval `not obtained (autonomous run)`. +- **The offer is not spec approval** — a yes authorizes the loop, not the spec. + This inverts the normal review model: **trust moves from inspection to constraints.** Be honest about what that buys: the gauntlet turns the constraints the spec expresses into executable evidence — it cannot show the