context-building
Systematic codebase investigation before addressing issues. Use when you need to build comprehensive understanding of a problem area.
When & Why to Use This Skill
The Context Building skill is a specialized agentic tool designed for systematic codebase investigation. It enables developers to build a comprehensive understanding of complex software issues by automating deep-dive analysis, including semantic searches, dependency tracing, and historical git reviews. By prioritizing context before action, it minimizes errors and ensures that code fixes are grounded in a thorough grasp of the existing architecture and logic.
Use Cases
- Root Cause Analysis: Investigating complex bug reports by tracing error messages and logs through the codebase to identify the exact point of failure.
- Impact Assessment: Analyzing function dependencies and data flows to predict potential side effects before refactoring or implementing new features.
- Legacy Code Onboarding: Quickly gaining context on unfamiliar or poorly documented modules by reviewing file history, imports, and associated unit tests.
- Technical Debt Investigation: Mapping out intricate logic chains and outdated patterns to prepare for modernization or system optimization tasks.
| name | context-building |
|---|---|
| description | Systematic codebase investigation before addressing issues. Use when you need to build comprehensive understanding of a problem area. |
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)
# 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:
## 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
# 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