75 lines
1.8 KiB
Markdown
75 lines
1.8 KiB
Markdown
# Universal Failure Recovery Pattern
|
|
|
|
Add this section to any skill with potential failure points:
|
|
|
|
## When You Violate This Skill
|
|
|
|
**Skills can be violated by skipping steps or doing things out of order.**
|
|
|
|
Add skill-specific violation recovery procedures:
|
|
|
|
### Violation Template
|
|
|
|
```markdown
|
|
### Violation: [Common violation name]
|
|
|
|
**How to detect:**
|
|
[What indicates this violation occurred]
|
|
|
|
**Recovery procedure:**
|
|
1. [Step 1 to recover]
|
|
2. [Step 2 to recover]
|
|
3. [Step 3 to recover]
|
|
|
|
**Why recovery matters:**
|
|
[Explanation of why you can't just continue]
|
|
```
|
|
|
|
**Example:**
|
|
|
|
Violation: Wrote implementation before test (in TDD)
|
|
|
|
**How to detect:**
|
|
- Implementation file exists but no test file
|
|
- Git history shows implementation committed before test
|
|
|
|
**Recovery procedure:**
|
|
1. Stash or delete the implementation code
|
|
2. Write the failing test first
|
|
3. Run test to verify it fails
|
|
4. Rewrite the implementation to make test pass
|
|
|
|
**Why recovery matters:**
|
|
The test must fail first to prove it actually tests something. If implementation exists first, you can't verify the test works - it might be passing for the wrong reason or not testing anything at all.
|
|
|
|
---
|
|
|
|
## When Things Go Wrong
|
|
|
|
**If you get stuck:**
|
|
|
|
1. **Attempt failed?**
|
|
- Document exactly what happened
|
|
- Include error messages verbatim
|
|
- Note what you tried
|
|
|
|
2. **Can't proceed?**
|
|
- State blocker explicitly: "Blocked by: [specific issue]"
|
|
- Don't guess or work around
|
|
- Ask for help
|
|
|
|
3. **Confused?**
|
|
- Say "I don't understand [specific thing]"
|
|
- Don't pretend to understand
|
|
- Research or ask for clarification
|
|
|
|
4. **Multiple failures?**
|
|
- After 3 attempts: STOP
|
|
- Document all attempts
|
|
- Reassess approach with human partner
|
|
|
|
**Never:** Pretend to succeed when stuck
|
|
**Never:** Continue after 3 failures
|
|
**Never:** Hide confusion or errors
|
|
**Always:** Be explicit about blockage
|