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
co-authored by Claude Opus 4.8
parent 66f92b61f5
commit 0847bb31bc
2 changed files with 14 additions and 0 deletions
@@ -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.