Agent skill

investigating-a-codebase

Use when planning or designing features and need to understand current codebase state, find existing patterns, or verify assumptions about what exists; when design makes assumptions about file locations, structure, or existing code that need verification - prevents hallucination by grounding plans in reality

Stars 170
Forks 21

Install this agent skill to your Project

npx add-skill https://github.com/ed3dai/ed3d-plugins/tree/main/plugins/ed3d-research-agents/skills/investigating-a-codebase

SKILL.md

Investigating a Codebase

Overview

Understand current codebase state to ground planning and design decisions in reality, not assumptions. Find existing patterns, verify design assumptions, and provide definitive answers about what exists and where.

When to Use

Use for:

  • Verifying design assumptions before implementation ("Design assumes auth.ts exists - verify")
  • Finding existing patterns to follow ("How do we currently handle API errors?")
  • Locating features or code ("Where is user authentication implemented?")
  • Understanding component architecture ("How does the routing system work?")
  • Confirming existence definitively ("Does feature X exist or not?")
  • Preventing hallucination about file paths and structure

Don't use for:

  • Information available in external docs (use internet research)
  • Questions answered by reading 1-2 specific known files (use Read directly)
  • General programming questions not specific to this codebase

Core Investigation Workflow

  1. Start with entry points - main files, index, package.json, config
  2. Use multiple search strategies - Glob patterns, Grep keywords, Read files
  3. Follow traces - imports, references, component relationships
  4. Verify don't assume - confirm file locations and structure
  5. Report definitively - exact paths or "not found" with search strategy

Verifying Design Assumptions

When given design assumptions to verify:

  1. Extract assumptions - list what design expects to exist
  2. Search for each - file paths, functions, patterns, dependencies
  3. Compare reality vs expectation - matches, discrepancies, additions, missing
  4. Report explicitly:
    • ✓ Confirmed: "Design assumption correct: auth.ts:42 has login()"
    • ✗ Discrepancy: "Design assumes auth.ts, found auth/index.ts instead"
    • + Addition: "Found logout() not mentioned in design"
    • - Missing: "Design expects resetPassword(), not found"

Why this matters: Prevents implementation plans based on wrong assumptions about codebase structure.

Quick Reference

Task Strategy
Where is X Glob likely names → Grep keywords → Read matches
How does X work Find entry point → Follow imports → Read implementation
What patterns exist Find examples → Compare implementations → Extract conventions
Does X exist Multiple searches → Definitive yes/no → Evidence
Verify assumptions Extract claims → Search each → Compare reality vs expectation

Investigation Strategies

Multiple search approaches:

  • Glob for file patterns across codebase
  • Grep for keywords, function names, imports
  • Read key files to understand implementation
  • Follow imports and references for relationships
  • Check package.json, config files for dependencies

Don't stop at first result:

  • Explore multiple paths to verify findings
  • Cross-reference different areas of codebase
  • Confirm patterns are consistent not one-off
  • Follow both usage and definition traces

Verify everything:

  • Never assume file locations - always verify with Read/Glob
  • Never assume structure - explore and confirm
  • Document search strategy when reporting "not found"
  • Distinguish "doesn't exist" from "couldn't locate"

Reporting Findings

Lead with direct answer:

  • Answer the question first
  • Supporting details second
  • Evidence with exact file paths and line numbers

Provide actionable intelligence:

  • Exact file paths (src/auth/login.ts:42), not vague locations
  • Relevant code snippets showing current patterns
  • Dependencies and versions when relevant
  • Configuration files and current settings
  • Naming, structure, and testing conventions

Handle "not found" confidently:

  • "Feature X does not exist" is valid and useful
  • Explain what you searched and where you looked
  • Suggest related code as starting point
  • Report negative findings prevents hallucination

Common Mistakes

Mistake Fix
Assuming file locations Always verify with Read/Glob before reporting
Stopping at first result Explore multiple paths to verify findings
Vague locations ("in auth folder") Exact paths (src/auth/index.ts:42)
Not documenting search strategy Explain what was checked when reporting "not found"
Confusing "not found" types Distinguish "doesn't exist" from "couldn't locate"
Skipping design assumption comparison Explicitly report: confirmed/discrepancy/addition/missing
Reporting assumptions as facts Only report what was verified in codebase

Expand your agent's capabilities with these related and highly-rated skills.

ed3dai/ed3d-plugins

doing-a-simple-two-stage-fanout

Use when analyzing a large corpus of text, code, or data that exceeds a single agent's effective context - orchestrates parallel Worker subagents, Critic review subagents, and a final Summarizer subagent with task tracking and failure recovery

170 21
Explore
ed3dai/ed3d-plugins

using-generic-agents

Use to decide what kind of generic agent you should use

170 21
Explore
ed3dai/ed3d-plugins

researching-on-the-internet

Use when planning features and need current API docs, library patterns, or external knowledge; when testing hypotheses about technology choices or claims; when verifying assumptions before design decisions - gathers well-sourced, current information from the internet to inform technical decisions

170 21
Explore
ed3dai/ed3d-plugins

creating-an-agent

Use when creating specialized subagents for Claude Code plugins or the Task tool - covers description writing for auto-delegation, tool selection, prompt structure, and testing agents

170 21
Explore
ed3dai/ed3d-plugins

maintaining-project-context

Use when completing development phases or branches to identify and update CLAUDE.md or AGENTS.md files that may have become stale - analyzes what changed, determines affected contracts and documentation, and coordinates updates

170 21
Explore
ed3dai/ed3d-plugins

prompt-security-hardening

Use when writing skills, CLAUDE.md files, agent prompts, or any directives that involve shell commands, environment variables, API credentials, file creation, or git operations - prevents secrets leakage into LLM context, unsafe shell patterns, and credential exposure

170 21
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results