MUST invoke before any design decisions or implementation planning.
Mandatory research phase that explores codebase patterns and external technologies before any design decisions. Invoked automatically before brainstorming or planning to verify current state, find creative solutions, and prevent assumptions.
/plugin marketplace add astrosteveo/harness/plugin install astrosteveo-harness@astrosteveo/harnessThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Research happens BEFORE design. Period.
Research = Codebase Exploration + External Research. Both are required. You cannot skip either.
IMMEDIATELY START EXPLORING. DO NOT ASK THE USER ANYTHING.
When this skill is invoked:
If you find yourself wanting to ask a question, STOP. Search the codebase instead.
NO DESIGNING UNTIL RESEARCH IS COMPLETE
This means:
Until you have:
| Thought | Reality |
|---|---|
| "I already know how this works" | Training data is stale. Verify. |
| "The codebase is simple" | Simple codebases have patterns you'll miss. Explore. |
| "I'll research as I go" | Research after design = rework. Research first. |
| "Just a quick design first" | NO. Research first, then design. |
| "I can see the pattern" | Seeing isn't knowing. Read the actual code. |
| "This is similar to X" | Similar isn't same. Verify current state. |
| "I'll check if needed" | You always need to check. That's the point. |
| "Let me propose something first" | NO. Research THEN propose. |
| "Let me ask the user about the code" | NO. The codebase answers code questions. Explore. |
| "What's the current state?" | DON'T ASK. Search for it. |
You cannot skip this. Even if you "know" the codebase.
Exploration Strategy: Parallel Agents
For non-trivial features, dispatch 2-3 exploration agents in parallel with different focuses:
Task tool (Explore):
Agent 1: "Explore existing patterns for [feature area]"
Agent 2: "Explore dependencies and integration points for [feature area]"
Agent 3: "Explore test patterns and edge cases for [feature area]"
Why parallel exploration:
When to use parallel exploration:
| Feature Size | Exploration Approach |
|---|---|
| Micro (< 5 min) | Single quick search |
| Small (< 30 min) | 1-2 focused searches |
| Medium (30 min - 2 hrs) | 2 parallel agents |
| Large (> 2 hrs) | 3 parallel agents |
What each agent explores:
Agent 1: Patterns & Architecture
Agent 2: Dependencies & Integration
Agent 3: Tests & Edge Cases
How to explore (for each agent):
# Find related files
glob "**/*relevant-keyword*"
# Search for patterns
grep "similar function or pattern"
# Check recent commits
git log --oneline -20 -- path/to/area
# Read related code
read actual files, don't assume
Consolidate findings: After agents complete, synthesize into unified research document.
Document what you find:
## Codebase Exploration
**Area:** [What part of codebase]
**Date:** YYYY-MM-DD
### Existing Patterns
- [Pattern 1]: Found in [files], used for [purpose]
- [Pattern 2]: ...
### Related Code
- [File/module]: [What it does, how it relates]
### Testing Approach
- Tests are in [location]
- Pattern used: [describe]
### Recent Activity
- [Relevant recent changes]
### Key Observations
- [Things that will affect the design]
For any external dependencies, APIs, or technologies:
Current Versions
API Signatures
Best Practices
Creative Solutions
Use web search for:
"[library name] latest version 2025"
"[library name] [feature] best practices"
"[problem domain] approaches comparison"
"how to [specific task] [technology]"
"[library name] vs [alternative] 2025"
Document what you find:
## External Research
**Technologies:** [List]
**Date:** YYYY-MM-DD
### [Library/Framework Name]
**Current Version:** X.Y.Z (released YYYY-MM-DD)
**Documentation:** [URL]
**Key Findings:**
- [Important discovery]
**API Details:**
- [Relevant method signatures]
**Recommendations:**
- [What to use]
**Avoid:**
- [What's deprecated or problematic]
### Alternative Approaches Considered
- [Approach 1]: [Pros/cons]
- [Approach 2]: [Pros/cons]
Save to: .harness/NNN-feature-slug/research.md
Complete research document structure:
# Research: [Feature Name]
**Date:** YYYY-MM-DD
**Context:** [What task this supports]
## Codebase Exploration
[From Phase 1]
## External Research
[From Phase 2]
## Key Insights
- [Insight 1 that affects design]
- [Insight 2 that affects design]
## Questions Resolved
- [Question]: [Answer from research]
## Open Questions
- [Things that still need clarification]
Research happens BEFORE proposing any approaches:
digraph research_in_brainstorm {
"Understand the idea" -> "Explore codebase";
"Explore codebase" -> "Research external tech";
"Research external tech" -> "Look for creative solutions";
"Look for creative solutions" -> "Save research";
"Save research" -> "NOW propose designs";
}
Research happens BEFORE writing any implementation details:
digraph research_in_planning {
"Have requirements" -> "Explore affected codebase areas";
"Explore affected codebase areas" -> "Verify all tech versions/APIs";
"Verify all tech versions/APIs" -> "Research implementation patterns";
"Research implementation patterns" -> "Save research";
"Save research" -> "NOW write plan";
}
Only after completing BOTH phases:
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.