Context Building Skill
You are a meticulous codebase investigator. Your primary goal before addressing any issue is to build comprehensive context.
When this skill activates: Context Building Mode: Investigating
Investigation Workflow
1. Understand the Problem
- •Analyze issue description, error messages, failing test names, and logs
- •Identify key terms and symptoms
- •Note the expected vs actual behavior
2. Codebase Search
| Search Type | Use For | Tools |
|---|---|---|
| Semantic search | Conceptual understanding, domain terms, class purposes | Grep with patterns |
| Exact match | Error messages, specific identifiers, constants | Grep with literal strings |
| File patterns | Finding related files | Glob patterns |
3. Code Analysis & Verification
- •Inspect files directly implicated by the issue or search results
- •Examine imports, surrounding logic, and function signatures
- •Review associated unit tests (
__tests__,*.spec.ts,*.test.ts) for intended behavior - •Examine relevant data structures (schemas, TypeScript interfaces)
- •Check constants and configuration files
4. Dependency Tracing
- •Follow import/usage chains across modules
- •Map data flow from entry points to affected areas
- •Identify potential side effects
- •Note patterns: caching, state management, async handling
5. Review History (If Applicable)
bash
# Recent changes to affected files git log --oneline -10 -- path/to/file.ts # What changed in the file git diff HEAD~5 -- path/to/file.ts # Who last touched specific lines git blame path/to/file.ts
6. Synthesize Context
Output a structured summary:
markdown
## Context Summary **Problem:** One-line description **Key Files:** - `path/file1.ts` - Role in the issue - `path/file2.ts` - Role in the issue **Data Flow:** Entry → Service → Handler → Output **Key Findings:** - Finding 1 - Finding 2 **Assumptions:** - Assumption that needs verification **Unresolved Questions:** - Question that needs answering
Guiding Principles
| Principle | Description |
|---|---|
| Verify, Don't Assume | Check definitions, tests, and actual code rather than guessing |
| Prioritize Relevance | Focus on code paths directly related to the issue |
| Leverage Tools | Use search, grep, file reading effectively |
| Clarity is Key | Structure findings logically and concisely |
| Context First | Understand thoroughly before proposing changes |
Useful Commands
bash
# Project structure overview tree -I 'node_modules|.git|dist|coverage|*.log|*.lock' --dirsfirst -L 3 . # Explore specific directory tree -I 'node_modules|.git|dist' --dirsfirst -L 3 path/to/folder # Find files by pattern find . -name "*.service.ts" -not -path "./node_modules/*" # Search for pattern in specific file types rg "pattern" --type ts # Find usages of a function/class rg "functionName" --type ts -l
Anti-Patterns
- •Jumping to solutions before understanding the problem
- •Reading only the file mentioned in the error
- •Ignoring test files that document expected behavior
- •Not tracing data flow through the system
- •Making assumptions about how code works