| name | strategic-investigation |
| description | Proactive recovery using plan mode and subagents. After 1-2 failed attempts, STOP trying variations. Enter plan mode and launch parallel Explore/Plan agents to find idiomatic solutions instead of spinning wheels. |
Strategic Investigation: Plan Mode Recovery
CORE PRINCIPLE: After 1-2 failed attempts, STOP trying variations. Enter plan mode and investigate properly using parallel subagents.
When to Use This Skill
Use this skill when:
- You've tried 1-2 approaches and they didn't work
- You don't understand WHY something isn't working
- You're tempted to try "just one more thing" or add a hacky workaround
- The error message doesn't make sense
- Multiple approaches seem valid and you're unsure which is idiomatic
- You find yourself guessing instead of knowing
Warning signs you should have used this earlier:
- You've been trying variations of the same approach for 5+ minutes
- You're adding workarounds or "temporary" hacks
- The code is getting messier instead of cleaner
- You're saying "this should work but doesn't"
The Process
Step 1: STOP and Acknowledge
When you recognize you're stuck:
- Stop immediately - Don't try "just one more thing"
- Tell the user:
"I've tried [X approaches] and they're not working. Instead of continuing to guess, I'm going to step back and investigate this systematically using parallel subagents. This should find the idiomatic solution."
Step 2: Enter Plan Mode
Request plan mode to structure your investigation. Plan mode signals you're stepping back from implementation to investigate properly.
Step 3: Launch Parallel Subagents
Spawn 2-4 focused Explore agents in parallel to gather information:
Subagent Design Principles:
- Each agent gets ONE focused question
- Agents explore DIFFERENT angles (not variations of same thing)
- Agents are read-only (Explore type)
- Each returns concrete findings with file paths and code snippets
Common Explore Agent Types:
Explore Agent 1: Pattern Search
- Search labs/packages/patterns/ for similar patterns
- Search patterns/examples/ for curated examples
- Look for patterns that solve similar problems
- Return: file paths, relevant code snippets, patterns used
Explore Agent 2: Documentation Deep-Dive
- Read relevant sections of ~/Code/labs/docs/common/
- Focus on DEBUGGING.md, PATTERNS.md, CELLS_AND_REACTIVITY.md
- Look for exact guidance on this situation
- Return: relevant doc sections, warnings, recommended approaches
Explore Agent 3: Community Knowledge
- Search community-docs/superstitions/ for similar issues
- Check if others have hit this problem
- Return: relevant superstitions, known workarounds
Explore Agent 4: Framework Conventions
- Study how working patterns structure similar code
- What's the "frameworky" way to do this?
- Return: conventions observed, idioms to follow
Step 4: Synthesize Findings
After agents complete:
Review gathered information:
- What patterns did similar code use?
- What exactly do the docs say?
- What community knowledge exists?
Identify the idiomatic solution:
- Which approach follows framework conventions?
- What do working examples do differently?
- What would a framework expert do?
Understand WHY this is the right solution:
- Don't just copy-paste from examples
- Be able to explain why this works
- Understand the underlying principle
Step 5: Execute with Confidence
Now implement the chosen approach:
- You understand WHY this approach is right
- You've verified it matches framework conventions
- You're not guessing anymore
Step 6: Handle Continued Failure
If the solution doesn't work after investigation:
- Return to Step 3 with NEW context: "Approach X didn't work because Y"
- Investigate why the expected solution failed
- This often reveals the real underlying issue
After 2 plan-mode investigation cycles without resolution:
- Escalate to user
- Summarize what you investigated
- Show approaches you tried
- Explain what you learned
- This gives user actionable context to help
Example Investigation
Scenario: "Cell not updating reactively"
Failed attempts: Changed dependencies, added .get() calls, restructured code
Investigation plan (launch in parallel):
Explore Agent 1: Pattern Search
"Search labs/packages/patterns/ for computed() usage patterns.
Find 3+ examples of computed cells that update correctly.
Note what they do differently from my failing code."
Explore Agent 2: Documentation
"Read ~/Code/labs/docs/common/CELLS_AND_REACTIVITY.md thoroughly.
Focus on computed() section and any gotchas.
Look for 'don't do X' warnings."
Explore Agent 3: Community Knowledge
"Search community-docs/superstitions/ for 'computed', 'reactive', 'update'.
Check if this is a known edge case with solutions."
Explore Agent 4: Framework Behavior
"Study how other patterns structure reactive computations.
What cell access patterns do working examples use?"
Likely synthesis:
- Reactivity requires direct cell access, not derived values
- Creating new cells inside computed() breaks tracking
- Need to maintain stable cell references
- Idiomatic approach: lift cell creation to pattern body level
Good vs Bad Uses
GOOD - Use Strategic Investigation
- "I've tried computed() and derive() and neither updates. Let me investigate."
- "The type error doesn't make sense. Let me understand what the framework expects."
- "This feels hacky. Let me find the idiomatic way."
- "I'm not sure which approach is right. Let me explore the options properly."
BAD - Don't Use Strategic Investigation
- Simple typos - just fix them
- Missing imports - just add them
- Error message tells you exactly what's wrong - just apply the fix
- Problem you've solved before - apply known pattern
Key Principle: Idiomatic Over Working
The goal is not just to find SOMETHING that works, but to find the IDIOMATIC solution:
- Hacky: "I'll just cast to any and suppress the error"
- Idiomatic: "The framework expects X pattern, let me use that"
If investigation reveals the "right" way is significantly different from your approach, that's valuable - even if your hack might have worked.
Integration with Other Skills
| Skill | Relationship |
|---|---|
| community-docs | Quick check FIRST. If doesn't help after 1-2 attempts → strategic-investigation |
| recovery-strategies | Strategic investigation is Step 2.5 in that flow |
| issue-filing | Use AFTER investigation if problem is a framework limitation |
| pattern-dev | Contains development practices. This skill is for when you're stuck |
Remember
Investigation time is NOT wasted time.
A 5-minute proper investigation often saves 30 minutes of trial-and-error on wrong approaches. Don't skip plan mode thinking "this should be simple" - that's often when you need it most.
When in doubt, investigate. It's better to investigate a simple problem than to spin wheels on a complex one.