references/bulletproofing.md
Bulletproofing Skills Against Rationalization
Section titled “Bulletproofing Skills Against Rationalization”Part of superpowers:writing-skills. Use it when the baseline failure is a discipline failure: the agent knows the rule and skips it under pressure.
Bulletproofing Skills Against Rationalization
Section titled “Bulletproofing Skills Against Rationalization”Skills that enforce discipline (like TDD) need to resist rationalization. Agents are smart and will find loopholes when under pressure.
Scope: this toolkit is for discipline failures — an agent that knows the rule and skips it under pressure. For wrong-shaped output or omitted elements, prohibition-based bulletproofing backfires; use the forms in Match the Form to the Failure instead.
Psychology note: Understanding WHY persuasion techniques work helps you apply them systematically. See persuasion-principles.md in this directory for research foundation (Cialdini, 2021; Meincke et al., 2025) on authority, commitment, scarcity, social proof, and unity principles.
Close Every Loophole Explicitly
Section titled “Close Every Loophole Explicitly”Don’t just state the rule - forbid specific workarounds:
<Bad>
Write code before test? Delete it.</Bad>
<Good>
Write code before test? Delete it. Start over.
**No exceptions:**- Don't keep it as "reference"- Don't "adapt" it while writing tests- Don't look at it- Delete means delete</Good>
Address “Spirit vs Letter” Arguments
Section titled “Address “Spirit vs Letter” Arguments”Add foundational principle early:
**Violating the letter of the rules is violating the spirit of the rules.**This cuts off entire class of “I’m following the spirit” rationalizations.
Build Rationalization Table
Section titled “Build Rationalization Table”Capture rationalizations from baseline testing (see Testing section below). Every excuse agents make goes in the table:
| Excuse | Reality ||--------|---------|| "Too simple to test" | Simple code breaks. Test takes 30 seconds. || "I'll test after" | Tests passing immediately prove nothing. || "Tests after achieve same goals" | Tests-after = "what does this do?" Tests-first = "what should this do?" |Create Red Flags List
Section titled “Create Red Flags List”Make it easy for agents to self-check when rationalizing:
## Red Flags - STOP and Start Over
- Code before test- "I already manually tested it"- "Tests after achieve the same purpose"- "It's about spirit not ritual"- "This is different because..."
**All of these mean: Delete code. Start over with TDD.**Update SDO for Violation Symptoms
Section titled “Update SDO for Violation Symptoms”Add to description: symptoms of when you’re ABOUT to violate the rule:
description: use when implementing any feature or bugfix, before writing implementation codeOriginal Markdown source
# Bulletproofing Skills Against Rationalization
Part of superpowers:writing-skills. Use it when the baseline failure is adiscipline failure: the agent knows the rule and skips it under pressure.
## Bulletproofing Skills Against Rationalization
Skills that enforce discipline (like TDD) need to resist rationalization. Agents are smart and will find loopholes when under pressure.
**Scope:** this toolkit is for discipline failures — an agent that knows the rule and skips it under pressure. For wrong-shaped output or omitted elements, prohibition-based bulletproofing backfires; use the forms in Match the Form to the Failure instead.
**Psychology note:** Understanding WHY persuasion techniques work helps you apply them systematically. See persuasion-principles.md in this directory for research foundation (Cialdini, 2021; Meincke et al., 2025) on authority, commitment, scarcity, social proof, and unity principles.
### Close Every Loophole Explicitly
Don't just state the rule - forbid specific workarounds:
<Bad>```markdownWrite code before test? Delete it.```</Bad>
<Good>```markdownWrite code before test? Delete it. Start over.
**No exceptions:**- Don't keep it as "reference"- Don't "adapt" it while writing tests- Don't look at it- Delete means delete```</Good>
### Address "Spirit vs Letter" Arguments
Add foundational principle early:
```markdown**Violating the letter of the rules is violating the spirit of the rules.**```
This cuts off entire class of "I'm following the spirit" rationalizations.
### Build Rationalization Table
Capture rationalizations from baseline testing (see Testing section below). Every excuse agents make goes in the table:
```markdown| Excuse | Reality ||--------|---------|| "Too simple to test" | Simple code breaks. Test takes 30 seconds. || "I'll test after" | Tests passing immediately prove nothing. || "Tests after achieve same goals" | Tests-after = "what does this do?" Tests-first = "what should this do?" |```
### Create Red Flags List
Make it easy for agents to self-check when rationalizing:
```markdown## Red Flags - STOP and Start Over
- Code before test- "I already manually tested it"- "Tests after achieve the same purpose"- "It's about spirit not ritual"- "This is different because..."
**All of these mean: Delete code. Start over with TDD.**```
### Update SDO for Violation Symptoms
Add to description: symptoms of when you're ABOUT to violate the rule:
```yamldescription: use when implementing any feature or bugfix, before writing implementation code```