pre-work-research
Use before starting implementation - research repository documentation, codebase patterns, and external resources to inform the approach
When & Why to Use This Skill
The Pre-Work Research skill is a specialized Claude agent capability designed to streamline the software development lifecycle by conducting thorough codebase and documentation analysis before implementation. It leverages tools like Grep, WebSearch, and File Reading to identify architectural patterns, existing utilities, and external API constraints. By prioritizing 'research before coding,' this skill minimizes technical debt, ensures adherence to project-specific conventions, and improves the accuracy of complex integrations.
Use Cases
- New Feature Alignment: Identifying existing design patterns and utility functions within a large repository to ensure new code remains idiomatic and consistent.
- Third-Party Integration: Researching external API documentation, rate limits, and authentication protocols to inform a robust integration strategy before writing code.
- Legacy Codebase Navigation: Quickly mapping out unfamiliar modules and tracing function calls to understand the impact of proposed changes in complex systems.
- Requirement Validation: Cross-referencing issue descriptions with existing documentation and code to identify potential constraints or missing information.
| name | pre-work-research |
|---|---|
| description | Use before starting implementation - research repository documentation, codebase patterns, and external resources to inform the approach |
| model | opus |
Pre-Work Research
Overview
Research before coding. Understand the landscape before changing it.
Core principle: Measure twice, cut once.
Announce at start: "I'm researching the codebase and documentation before implementing."
When to Research
Research is appropriate when:
| Situation | Research Needed |
|---|---|
| Unfamiliar area of codebase | Yes |
| New library or API | Yes |
| Complex integration | Yes |
| Performance-sensitive code | Yes |
| Security-sensitive code | Yes |
| Simple, isolated change | Minimal |
The Research Protocol
Step 1: Understand Requirements
Before researching implementation:
- Read the full issue description
- Review all acceptance criteria
- Note any constraints mentioned
- Identify unknowns
Step 2: Research Repository Documentation
# Project overview
cat README.md
# Architecture/design docs
ls -la docs/
find . -name "*.md" -path "./docs/*"
# Contributing guidelines
cat CONTRIBUTING.md
# API documentation
cat docs/api*.md
cat docs/architecture*.md
Look for:
- Architecture decisions
- Design patterns used
- Coding conventions
- Testing requirements
- Deployment considerations
Step 3: Research Existing Codebase
Find Similar Implementations
# Find similar features
grep -r "similar keyword" src/
# Find related tests
grep -r "similar keyword" **/*.test.*
# Find imports of relevant modules
grep -r "import.*ModuleName" src/
Understand Patterns
# How are similar things done?
# Look at 2-3 examples of similar functionality
# Example: If adding an API endpoint
grep -r "router\." src/routes/
cat src/routes/[existing-endpoint].ts
# Example: If adding a service
ls -la src/services/
cat src/services/[existing-service].ts
Check for Utilities
# What utilities exist?
ls -la src/utils/
cat src/utils/[relevant-util].ts
# Are there shared helpers?
grep -r "export function" src/utils/
Step 4: Research External Resources
When using external APIs or libraries:
Official Documentation
# Read the docs for dependencies
pnpm info [package-name]
# Then visit documentation URL
Search: "[library-name] documentation"
Search: "[library-name] getting started"
Search: "[library-name] [specific feature]"
API References
For external APIs:
- Authentication requirements
- Rate limits
- Error handling
- Response formats
- Versioning
Community Resources
- GitHub issues for common problems
- Stack Overflow for patterns
- Blog posts for best practices
Step 5: Document Findings
Create a research summary:
## Pre-Work Research: Issue #[NUMBER]
### Requirements Understanding
- [Key requirement 1]
- [Key requirement 2]
### Codebase Patterns
- Pattern for [X]: See `src/example/pattern.ts`
- Utilities available: `src/utils/helper.ts`
- Test pattern: See `src/example/example.test.ts`
### External Dependencies
- [Library]: [Key findings]
- [API]: [Authentication method, rate limits]
### Approach
Based on research, the approach is:
1. [Step 1]
2. [Step 2]
3. [Step 3]
### Risks/Considerations
- [Risk 1]
- [Consideration 1]
Step 6: Update Issue (If Significant)
If research reveals important context:
gh issue comment [ISSUE_NUMBER] --body "## Pre-Implementation Research
### Approach
[Summary of planned approach]
### Considerations
- [Important finding 1]
- [Important finding 2]
### Questions (if any)
- [Question needing clarification]
"
Research Depth by Task Size
| Task Size | Research Depth |
|---|---|
| Trivial (typo, config) | None needed |
| Small (single file) | Quick pattern check |
| Medium (feature) | Full protocol |
| Large (system) | Extended research |
Quick Pattern Check (5 min)
# Just verify pattern
grep -r "pattern" src/ | head -5
cat src/similar/example.ts | head -50
Full Protocol (15-30 min)
Complete Steps 1-6 above.
Extended Research (1+ hour)
- Read all relevant documentation
- Trace through existing implementations
- Create proof-of-concept if needed
- Document architectural considerations
What to Look For
In Documentation
| Look For | Why |
|---|---|
| Architecture diagrams | Understand system structure |
| Coding standards | Match existing style |
| Decision records | Understand why things are done a way |
| API contracts | Maintain compatibility |
In Codebase
| Look For | Why |
|---|---|
| Similar features | Follow established patterns |
| Test patterns | Write consistent tests |
| Error handling | Handle errors consistently |
| Logging patterns | Log appropriately |
In External Resources
| Look For | Why |
|---|---|
| Official examples | Use recommended patterns |
| Common pitfalls | Avoid known issues |
| Performance tips | Optimize appropriately |
| Security guidance | Implement securely |
Research Outputs
After research, you should know:
- How similar features are implemented
- What patterns to follow
- What utilities are available
- What the testing approach should be
- Any risks or special considerations
Checklist
Before starting implementation:
- Issue requirements understood
- Repository docs checked
- Similar code patterns found
- Relevant utilities identified
- External resources researched (if applicable)
- Approach documented
- Issue updated (if significant findings)
Integration
This skill is called by:
issue-driven-development- Step 5
This skill informs:
tdd-full-coverage- How to write testsstrict-typing- Type patterns to useinline-documentation- Documentation patterns