Behavioral Patterns: Mistake Clinic
Module-Specific Mistake Radar
| Symptom | Likely missing contract | Repair witness |
|---|---|---|
| Two disposals remove two registrations | Registration identity | Same callback twice, one handle twice |
| A nested publish hangs or silently interleaves | Reentrancy/order | Finite outer/inner trace |
| One bad listener prevents all views | Error policy unspecified | Failure followed by successful callback |
| Failed edit destroys redo | Validation/history ordering | Undo, invalid edit, redo |
| Undo changes another user's work | Snapshot boundary | Outside edit between capture and restore |
| Retry sends twice | Uncertain effect/deduplication | Success before lost acknowledgement |
| State refactor changes errors | Public observation boundary | Exact invalid-transition message |
| Empty page ends traversal | Pagination termination | Empty page with more=True |
| Next page fetched too soon | Laziness | Stop exactly at page boundary |
| Authentication bypasses remaining checks | Terminal policy | Allow followed by mandatory denial |
| New AST node gets silently ignored | Exhaustive operation coverage | Add Neg to every operation |
| UI updates cycle forever | Coordination ownership | Programmatic render feeds a user event |
Practice Mistake Checks
Reproduce duplicate disposal (P06), failed-edit history (P11), stale approval (P14) and early page fetching (P16). Predict each trace before running it and repeat with a changed input after repair.
Keep real failures, their smallest witnesses, repairs and later transfer results. One well-explained counterexample is worth more than a fabricated error count. Use practice feedback after your attempt and return to the appropriate competency gate.