context-building

jonit-dev's avatarfrom jonit-dev

Systematic codebase investigation before addressing issues. Use when you need to build comprehensive understanding of a problem area.

0stars🔀0forks📁View on GitHub🕐Updated Jan 10, 2026

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.
namecontext-building
descriptionSystematic 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