Marketplace

research-after-failure

Use after 2 consecutive failed attempts at solving a problem - STOP guessing and research documentation, codebase, and online resources before resuming

allowed_tools: Read, Grep, Glob, WebFetch, WebSearch
model: opus

$ Installer

git clone https://github.com/troykelly/claude-skills /tmp/claude-skills && cp -r /tmp/claude-skills/skills/research-after-failure ~/.claude/skills/claude-skills

// tip: Run this command in your terminal to install the skill


name: research-after-failure description: Use after 2 consecutive failed attempts at solving a problem - STOP guessing and research documentation, codebase, and online resources before resuming allowed-tools:

  • Read
  • Grep
  • Glob
  • WebFetch
  • WebSearch model: opus

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

FailureNot a Failure
Tests don't passMinor syntax error fixed
Build breaksTypo corrected
Feature doesn't workIDE autocomplete issue
Same error recursDifferent error (progress)
No progress madePartial 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:

  1. Error messages - Exact error text
  2. Library documentation - Official docs
  3. Stack Overflow - Similar problems
  4. 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-PatternCorrect Approach
Keep trying same thingStop and research
Research indefinitelyTime-box to 15-30 min
Ignore error messagesSearch exact error text
Skip local docsCheck README first
Guess at solutionsUnderstand problem first

What to Research First

Priority order:

  1. Error message - Often contains the answer
  2. Local documentation - Project-specific guidance
  3. Existing code - Established patterns
  4. Library docs - Official guidance
  5. Online search - Community solutions

Time Boxing

Research should be focused:

ResourceTime Limit
Local docs5 minutes
Codebase search10 minutes
Online search15 minutes
Total research30 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 findings
  • memory-integration - Store findings for future reference