Skill.md
- SKILL.md
--- name: adaptive-stem-alignment description: Incremental audio production with duration mismatch handling, adaptive stem extension, and pre-mix alignment verification ---
Skill.md
Heuristic for detecting search tool failures and pivoting to domain knowledge for document generation
SKILL.md
---
name: search-fail-pivot
description: Heuristic for detecting search tool failures and pivoting to domain knowledge for document generation
---
# Search Tool Failure Detection and Pivot Strategy
## Purpose
When using `search_web` or similar external data retrieval tools, repeated failures waste iterations. This skill provides a diagnostic heuristic to recognize when to abandon search attempts and proceed with existing domain knowledge.
## Core Heuristic
**If `search_web` fails 2+ consecutive times with 'unknown error' or similar non-recoverable errors, pivot to domain knowledge + `run_shell` for document generation.**
Do not attempt more than 2 retries on the same or similar queries before pivoting.
## Step-by-Step Instructions
### Step 1: Track Search Failures
Monitor `search_web` outcomes during your task:
- Count consecutive failures (empty results, 'unknown error', timeout, access denied)
- Note the error type - distinguish between:
- **Recoverable**: Rate limiting, temporary timeout (retry 1-2 times)
- **Non-recoverable**: 'unknown error', persistent empty results, access denied
### Step 2: Apply the 2-Failure Rule
```
IF search_web failures >= 2 (same or similar queries)
THEN:
1. Stop attempting search_web
2. Document what information you attempted to retrieve
3. Proceed with existing domain knowledge
```
### Step 3: Pivot to Domain Knowledge
When pivoting:
1. **Acknowledge the limitation**: Note that external verification was attempted but unavailable
2. **Use established knowledge**: Draw on training data for well-known facts, laws, cases, standards
3. **Generate with run_shell**: Create documents using Python/bash scripts rather than waiting for external data
Example pivot workflow:
```python
# Instead of continuing search_web attempts:
# 1. Compile known information from domain knowledge
known_facts = {
"law": "COPPA requirements for children's data",
"precedent": "FTC v. Google/YouTube settlement patterns",
"jurisdiction": "California privacy law framework"
}
# 2. Generate document directly
# Use run_shell with Python to create PDF/DOC
```
### Step 4: Document Generation Pattern
When generating documents after pivoting:
```bash
# Use run_shell to execute document generation
# Example: Create legal memo with Python + reportlab
python << 'EOF'
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
# Generate document with domain knowledge
c = canvas.Canvas("memo.pdf", pagesize=letter)
c.drawString(100, 750, "Legal Analysis based on established precedents")
# ... continue with known information
c.save()
EOF
```
## When This Applies
This heuristic is particularly useful for:
| Task Type | Why It Applies |
|-----------|----------------|
| Legal research | Case law and statutes are well-documented in training |
| Technical documentation | Standards and best practices are established knowledge |
| Historical analysis | Past events and data are in training corpus |
| Regulatory compliance | Major regulations (GDPR, COPPA, HIPAA) are well-known |
## When NOT to Pivot
Do NOT apply this heuristic when:
- You need **current/time-sensitive data** (stock prices, weather, news < 24hrs)
- The task **explicitly requires** external verification
- You have **not yet attempted** the search (first attempt should complete)
- Errors are clearly **recoverable** (rate limit with retry-after header)
## Example Decision Flow
```
Attempt search_web → Success? → Yes → Use results
↓
No
↓
Is this failure #1? → Yes → Retry once with modified query
↓
No (failure #2+)
↓
Pivot to domain knowledge + run_shell document generation
```
## Benefits
- **Saves iterations**: Avoids wasting 3-4 attempts on unavailable data
- **Maintains progress**: Task continues instead of stalling on search
- **Leverages training**: Uses the substantial knowledge already available
- **Clear handoff**: Explicitly documents the pivot decision for transparency
## Anti-Patterns to Avoid
❌ Continuing search_web attempts beyond 2 failures
❌ Not documenting why you pivoted from search
❌ Applying this to tasks requiring real-time data
❌ Abandoning search on first failure without retry
✅ Apply 2-failure rule consistently
✅ Document the pivot decision in your output
✅ Use run_shell efficiently after pivoting
✅ Distinguish recoverable vs non-recoverable errors