backproplisted
Install: claude install-skill kborovik/pilot-skills
# backprop — bug → spec
Plan-then-execute fixes the code ∧ forgets.
SDD fixes the code AND edits spec so recurrence is impossible.
That edit is backprop.
## WHEN TO BACKPROP
- Test failed at `/sdd:build` verification.
- User reports bug.
- Post-mortem after production incident.
- `/sdd:check` flags VIOLATE with root cause found.
## SIX STEPS
### 1. TRACE
Read failure output / bug report.
Find exact file:line of wrong behavior.
Name root cause in one math-glyph sentence.
### 2. ANALYZE
Ask three questions:
- Would a new §V invariant catch this class of bug? (most common: yes)
- Is §I wrong — did spec claim shape the code cannot deliver? (sometimes)
- Is §T wrong — did we build the wrong thing? (rare but real)
### 3. PROPOSE
Draft the spec change. Never skip §B; §V/§I/§T are case-by-case.
Template:
```
§B row: B<next>|<date>|<root cause>|V<N>
§V line: V<next>: <testable rule that would have caught it>
```
Example:
```
§B row: B<n>|<date>|refund job ran twice on retry|V<N>
§V line: V<N>: ∀ refund → idempotency key check before charge reversal
```
### 4. GENERATE TEST
New invariant without test = lie. Add failing test first.
Name test so it cites the invariant: `TestV<N>_RefundIdempotent`.
### 5. VERIFY
Fix code. Run test. Must pass. Run full suite. Must not regress.
### 6. LOG
Commit spec edit + test + code fix together.
Commit msg: `backprop §B.<n> + §V.<N>: <one-line cause>`.
## WORKED EXAMPLE
Walks the six steps end-to-end on one bug. Numbers fictional; demonstr