writing-great-skills: add Negation and Negative Space failure modes

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) <noreply@anthropic.com>
This commit is contained in:
Matt Pocock 2026-07-06 13:54:46 +01:00
parent 66f92b61f5
commit 0847bb31bc
2 changed files with 14 additions and 0 deletions

View file

@ -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.

View file

@ -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.