From 0847bb31bcdc97bc28792adb1069d4e4b845976f Mon Sep 17 00:00:00 2001 From: Matt Pocock Date: Mon, 6 Jul 2026 13:54:46 +0100 Subject: [PATCH 1/3] writing-great-skills: add Negation and Negative Space failure modes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two adjacent Steering failure modes about how language you think of as "off" still steers: - Negation — a prohibition names the forbidden behaviour and makes it more available, not less (don't-think-of-an-elephant). Cure: prompt the positive. - Negative Space — what you omit is delegated to the agent's priors, not left neutral. Cure: read a draft for what it's silent on and decide each omission deliberately. Each carried as a full GLOSSARY entry plus a SKILL.md failure-mode bullet, matching every other failure mode. Co-Authored-By: Claude Opus 4.8 (1M context) --- skills/productivity/writing-great-skills/GLOSSARY.md | 12 ++++++++++++ skills/productivity/writing-great-skills/SKILL.md | 2 ++ 2 files changed, 14 insertions(+) diff --git a/skills/productivity/writing-great-skills/GLOSSARY.md b/skills/productivity/writing-great-skills/GLOSSARY.md index 969c699..59b4137 100644 --- a/skills/productivity/writing-great-skills/GLOSSARY.md +++ b/skills/productivity/writing-great-skills/GLOSSARY.md @@ -158,6 +158,18 @@ _Failure mode._ Ending the current step before it is genuinely done, because the _Avoid_: premature closure, the rush, rushing, shortcutting +### Negation + +_Failure mode._ Steering by prohibition — telling the agent what _not_ to do — which drags the forbidden behaviour into context and makes it _more_ available, not less. _Don't think of an elephant_, and the elephant is all there is; _never write verbose comments_, and verbosity is the pattern the agent has just read. The negation is a weak modifier the strongly-activated concept overruns, so the ban half-reads as an instruction to do the thing. Its **leading word** is the _elephant_: whatever a prohibition names into the frame. Cure: prompt the **positive** — describe the target behaviour ("write one-line comments") so the banned one is never spoken. A prohibition earns its place only as a hard guardrail on a behaviour you cannot phrase positively; even then, pair it with the positive target so attention lands on what to do. + +_Avoid_: ironic rebound, don't-prompting, the pink elephant + +### Negative Space + +_Failure mode._ Blindness to the steering done by what you leave _out_. Every decision a skill declines to make, the agent makes from its priors — the unsaid is not neutral, it is delegated. Say nothing about comment length and you have not left length open, you have handed it to the default. The art sense is exact: the shape is carved as much by the space around the subject as by the subject, and here the space is the omission the author never notices leaving. Distinct from **Negation**, which _names_ the wrong thing; Negative Space names nothing and lets the priors choose. Cure: read a draft for the decisions it is silent on, then decide each — fill the space with an explicit target where the default is wrong, and leave it open (a real **branch**) only where any reasonable default will do. + +_Avoid_: the void, omission, silent default + ## Pruning Keeping a skill lean — each remedy paired with the failure it cures. diff --git a/skills/productivity/writing-great-skills/SKILL.md b/skills/productivity/writing-great-skills/SKILL.md index 61abad4..6250d2a 100644 --- a/skills/productivity/writing-great-skills/SKILL.md +++ b/skills/productivity/writing-great-skills/SKILL.md @@ -80,3 +80,5 @@ Use these to diagnose issues the user may be having with the skill. - **Sediment** — stale layers that settle because adding feels safe and removing feels risky. The default fate of any skill without a pruning discipline. - **Sprawl** — a skill simply too long, even when every line is live and unique. Hurts readability and maintainability and wastes tokens. The cure is the ladder: disclose **reference** behind pointers, and split by **branch** or sequence so each path carries only what it needs. - **No-op** — a line the model already obeys by default, so you pay load to say nothing. The test: does it change behaviour versus the default? A weak leading word (_be thorough_ when the agent is already thorough-ish) is a no-op; the fix is a stronger word (_relentless_), not a different technique. +- **Negation** — steering by prohibition backfires: _don't think of an elephant_ names the elephant and makes it more available, not less. Prompt the **positive** — state the target behaviour so the banned one is never spoken; keep a prohibition only as a hard guardrail you can't phrase positively, and even then pair it with what to do instead. +- **Negative space** — what you leave _out_ steers too: every decision the skill declines, the agent makes from its priors, so the unsaid is delegated, not neutral. Read a draft for what it's silent on, then fill the space with an explicit target where the default is wrong — and leave it open only where any reasonable default does. From 30afefecc996f126ca0837c460323309e5b43931 Mon Sep 17 00:00:00 2001 From: Matt Pocock Date: Mon, 6 Jul 2026 13:56:16 +0100 Subject: [PATCH 2/3] changeset for Negation and Negative Space failure modes Co-Authored-By: Claude Opus 4.8 (1M context) --- .changeset/negation-and-negative-space.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/negation-and-negative-space.md diff --git a/.changeset/negation-and-negative-space.md b/.changeset/negation-and-negative-space.md new file mode 100644 index 0000000..a33ed93 --- /dev/null +++ b/.changeset/negation-and-negative-space.md @@ -0,0 +1,5 @@ +--- +"mattpocock-skills": minor +--- + +Add two adjacent Steering failure modes to **`writing-great-skills`**, both about how language you think of as "off" still steers the agent. **Negation** — the _elephant_ — is steering by prohibition: naming what _not_ to do drags the forbidden behaviour into context and makes it _more_ available, not less (_don't think of an elephant_), so the cure is to prompt the **positive**. **Negative Space** — the void — is blindness to the steering done by what you leave _out_: every decision a skill declines is delegated to the agent's priors rather than left neutral, so the cure is to read a draft for its silences and decide each omission deliberately (fill it, or leave it open as a real **branch**). Kept as two entries, not one — they carry different diagnostics and different cures — each a full `GLOSSARY.md` entry plus a `SKILL.md` failure-mode bullet, matching how every other failure mode is carried. From af6d6922c3e2b5288eef155346cbe319e4ed3bd0 Mon Sep 17 00:00:00 2001 From: Matt Pocock Date: Mon, 6 Jul 2026 13:57:05 +0100 Subject: [PATCH 3/3] Drop Negative Space; keep Negation only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Negative Space read as clever but not actionable — "notice your silences" is fuzzy legwork the agent can't reliably act on. Negation stays: a checkable authoring failure with a positive-instruction cure. Co-Authored-By: Claude Opus 4.8 (1M context) --- ...ation-and-negative-space.md => negation-failure-mode.md} | 0 skills/productivity/writing-great-skills/GLOSSARY.md | 6 ------ skills/productivity/writing-great-skills/SKILL.md | 1 - 3 files changed, 7 deletions(-) rename .changeset/{negation-and-negative-space.md => negation-failure-mode.md} (100%) diff --git a/.changeset/negation-and-negative-space.md b/.changeset/negation-failure-mode.md similarity index 100% rename from .changeset/negation-and-negative-space.md rename to .changeset/negation-failure-mode.md diff --git a/skills/productivity/writing-great-skills/GLOSSARY.md b/skills/productivity/writing-great-skills/GLOSSARY.md index 59b4137..0269ca8 100644 --- a/skills/productivity/writing-great-skills/GLOSSARY.md +++ b/skills/productivity/writing-great-skills/GLOSSARY.md @@ -164,12 +164,6 @@ _Failure mode._ Steering by prohibition — telling the agent what _not_ to do _Avoid_: ironic rebound, don't-prompting, the pink elephant -### Negative Space - -_Failure mode._ Blindness to the steering done by what you leave _out_. Every decision a skill declines to make, the agent makes from its priors — the unsaid is not neutral, it is delegated. Say nothing about comment length and you have not left length open, you have handed it to the default. The art sense is exact: the shape is carved as much by the space around the subject as by the subject, and here the space is the omission the author never notices leaving. Distinct from **Negation**, which _names_ the wrong thing; Negative Space names nothing and lets the priors choose. Cure: read a draft for the decisions it is silent on, then decide each — fill the space with an explicit target where the default is wrong, and leave it open (a real **branch**) only where any reasonable default will do. - -_Avoid_: the void, omission, silent default - ## Pruning Keeping a skill lean — each remedy paired with the failure it cures. diff --git a/skills/productivity/writing-great-skills/SKILL.md b/skills/productivity/writing-great-skills/SKILL.md index 6250d2a..82abd0d 100644 --- a/skills/productivity/writing-great-skills/SKILL.md +++ b/skills/productivity/writing-great-skills/SKILL.md @@ -81,4 +81,3 @@ Use these to diagnose issues the user may be having with the skill. - **Sprawl** — a skill simply too long, even when every line is live and unique. Hurts readability and maintainability and wastes tokens. The cure is the ladder: disclose **reference** behind pointers, and split by **branch** or sequence so each path carries only what it needs. - **No-op** — a line the model already obeys by default, so you pay load to say nothing. The test: does it change behaviour versus the default? A weak leading word (_be thorough_ when the agent is already thorough-ish) is a no-op; the fix is a stronger word (_relentless_), not a different technique. - **Negation** — steering by prohibition backfires: _don't think of an elephant_ names the elephant and makes it more available, not less. Prompt the **positive** — state the target behaviour so the banned one is never spoken; keep a prohibition only as a hard guardrail you can't phrase positively, and even then pair it with what to do instead. -- **Negative space** — what you leave _out_ steers too: every decision the skill declines, the agent makes from its priors, so the unsaid is delegated, not neutral. Read a draft for what it's silent on, then fill the space with an explicit target where the default is wrong — and leave it open only where any reasonable default does.