Research After Failure
Overview
After 2 failed attempts, stop and research. Don't keep trying the same thing.
Core principle: Insanity is doing the same thing and expecting different results.
Trigger: Two consecutive failed attempts at solving a problem.
Announce at start: "I've failed twice. I'm stopping to research before trying again."
The Rule
Attempt 1: Try solution
│
▼
Failed?
│
┌──────┴──────┐
│ │
Yes No → Done
│
▼
Attempt 2: Try different approach
│
▼
Failed?
│
┌──────┴──────┐
│ │
Yes No → Done
│
▼
STOP
│
▼
RESEARCH ← You are here
│
▼
Attempt 3: Try with new knowledge
What Counts as a Failure
| Failure | Not a Failure | |---------|---------------| | Tests don't pass | Minor syntax error fixed | | Build breaks | Typo corrected | | Feature doesn't work | IDE autocomplete issue | | Same error recurs | Different error (progress) | | No progress made | Partial progress |
The Research Protocol
Step 1: Document the Failures
Before researching, document what was tried:
## Failed Attempts
### Attempt 1
**Approach:** [What was tried]
**Result:** [What happened]
**Error:** [Error message if any]
### Attempt 2
**Approach:** [What was tried]
**Result:** [What happened]
**Error:** [Error message if any]
### Pattern
[What do these failures have in common?]
Step 2: Research Repository Documentation
# Check README
cat README.md
# Check docs directory
ls -la docs/
cat docs/[relevant-topic].md
# Check CONTRIBUTING
cat CONTRIBUTING.md
# Search for relevant docs
grep -r "[keyword]" docs/
Questions to answer:
- Is there documented guidance for this?
- Are there examples of similar work?
- Are there known issues or limitations?
Step 3: Research Existing Codebase
# Find similar patterns
grep -r "[pattern]" src/
# Find how others solved similar problems
git log --all --oneline --grep="[keyword]"
# Look at test files for usage examples
grep -r "[function/class]" **/*.test.ts
Questions to answer:
- How does existing code handle this?
- What patterns are established?
- Are there utility functions I'm missing?
Step 4: Research Online
Use web search for:
- Error messages - Exact error text
- Library documentation - Official docs
- Stack Overflow - Similar problems
- GitHub Issues - Known bugs
Search queries to try:
- "[exact error message]"
- "[library name] [problem description]"
- "[framework] [what you're trying to do]"
Step 5: Synthesize Findings
## Research Findings
### From Repository Docs
- [Finding 1]
- [Finding 2]
### From Codebase
- [Pattern found]
- [Example found]
### From Online
- [Solution found]
- [Workaround found]
### New Approach
Based on research, the new approach is:
1. [Step 1]
2. [Step 2]
3. [Step 3]
Step 6: Update Issue
Post research findings to the issue:
gh issue comment [ISSUE_NUMBER] --body "## Research After Failed Attempts
### What Was Tried
1. [Attempt 1]
2. [Attempt 2]
### Research Findings
[Summary of findings]
### New Approach
[How this will be solved now]
"
Step 7: Resume with New Knowledge
Apply findings to the next attempt.
If third attempt also fails → Consider escalating to human.
When to Escalate
After research + third attempt, if still failing:
## Escalation: Need Human Input
**Issue:** #[NUMBER]
**Attempted:**
1. [Approach 1] - [Result]
2. [Approach 2] - [Result]
3. [Approach 3 after research] - [Result]
**Researched:**
- [Sources checked]
- [Findings]
**Current Understanding:**
[What we know now]
**Blocking Question:**
[Specific question that needs human insight]
Mark issue as Blocked and await response.
Research Anti-Patterns
| Anti-Pattern | Correct Approach | |--------------|------------------| | Keep trying same thing | Stop and research | | Research indefinitely | Time-box to 15-30 min | | Ignore error messages | Search exact error text | | Skip local docs | Check README first | | Guess at solutions | Understand problem first |
What to Research First
Priority order:
- Error message - Often contains the answer
- Local documentation - Project-specific guidance
- Existing code - Established patterns
- Library docs - Official guidance
- Online search - Community solutions
Time Boxing
Research should be focused:
| Resource | Time Limit | |----------|------------| | Local docs | 5 minutes | | Codebase search | 10 minutes | | Online search | 15 minutes | | Total research | 30 minutes max |
After 30 minutes without breakthrough → Escalate.
Checklist
When triggered by 2 failures:
- [ ] Document what failed and why
- [ ] Check repository documentation
- [ ] Search existing codebase
- [ ] Search online resources
- [ ] Synthesize findings
- [ ] Update issue with research
- [ ] Formulate new approach
- [ ] If still failing, escalate
Integration
This skill is triggered by:
issue-driven-development- Step 8 (verification loop)
This skill calls:
issue-lifecycle- Post research findingsmemory-integration- Store findings for future reference