This skill should be used when exploring code in a project for "investigation", "design research", "finding what changed", "git log analysis", or "finding precedent". Provides git log analysis, code reading strategies, and file:line reference patterns. Do not use for Forge planning file reading.
From forgenpx claudepluginhub flox/forge-plugin --plugin forgeThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Facilitates interactive brainstorming sessions using diverse creative techniques and ideation methods. Activates when users say 'help me brainstorm' or 'help me ideate'.
Deep codebase research patterns for investigation and design workflows. Provides consistent approaches to exploring code, understanding recent changes, and finding precedents.
Understand the code before proposing changes. Evidence from actual implementation beats assumptions from documentation.
Always use for:
Pattern applies when:
Adapt git log timeframe based on investigation context:
# For suspected regressions: when did it break?
git log --oneline --since="{timeframe}" -- {path}
# Common timeframes:
# --since="2 weeks ago" - Default for general investigation
# --since="1 week ago" - Recent regression
# --since="1 month ago" - Longer history for unclear issues
# --since="2026-01-15" - Specific date from interview
Determine timeframe from context:
By file/directory path:
# Changes to specific file
git log --oneline --since="{timeframe}" -- path/to/file.py
# Changes to directory
git log --oneline --since="{timeframe}" -- src/module/
By commit message pattern:
# Find commits mentioning a keyword
git log --oneline --since="{timeframe}" --grep="{keyword}"
With file stats:
# Show files changed per commit
git log --oneline --stat --since="{timeframe}"
# Full commit message and diff
git show {commit-sha}
# Just the commit message
git log -1 {commit-sha}
# Files changed in that commit
git show --name-only {commit-sha}
Before reading code directly, consult .forge-context/context/
for structural information:
| Context File | Use For |
|---|---|
product.md | System overview and architecture |
components.md | Component entry points |
Why context files first? They summarize the project structure and point you to the right starting files.
When you need to understand how something works:
Example: Tracing a command
# 1. Find command definition (entry point)
grep -r "command.*{name}" src/
# 2. Read the handler function
# (use file:line from grep result)
# 3. Trace calls made by handler
grep -r "{function_name}" src/
# 4. Read implementations of called functions
When designing a new feature, find similar existing features:
By functionality:
# Find similar error handling
grep -r "raise.*Error" src/ | grep "{context}"
# Find similar API endpoints
grep -r "router.{method}" src/
By file naming patterns:
# Find related modules
find src/ -name "*{keyword}*"
Review similar feature:
Document precedent:
"Similar pattern exists in {file}:{line}. Follows approach X for Y. Will use same pattern for consistency."
Always include file:line references for concrete findings:
Good:
The authentication check happens in auth/api.py:148
Bad:
The authentication happens somewhere in the auth module
Format: path/to/file.py:line or path/to/file.py:range
Why? Enables readers to verify findings and provides clickable links in many editors.
Not all findings are equally certain. Indicate confidence:
| Level | Criteria | Example |
|---|---|---|
| High | Direct evidence in code/logs | "File X:Y raises AuthError" |
| Medium | Inferred from patterns | "Likely related to change Z" |
| Low | Possible based on architecture | "May involve component W" |
Usage:
| Finding | Source | Confidence |
|---------|--------|------------|
| Auth check at api.py:148 | Direct code read | High |
| Related to recent token changes | Git log pattern | Medium |
| May affect mobile client | Architecture docs | Low |
Clearly separate what you observed from what you infer:
Facts (observed directly):
Assumptions (inferred, needs verification):
Mark assumptions explicitly:
evidence-based-analysisCode discovery feeds evidence-based analysis:
systematic-debuggingFor investigation work, code discovery supports debugging:
"The error handling in auth/api.py:148-150 catches all exceptions, masking the specific validation error from line 142."
"The auth module is probably broken somewhere."
Directly grepping the codebase without reading project context files first. Wastes time exploring the wrong areas.
Reading every file without a search strategy. Use git log and context files to narrow scope.
| Phase | Tool | Purpose |
|---|---|---|
| Context | .forge-context/context/ | Start at right place |
| Timeline | Git log | Find what changed and when |
| Deep dive | Code reading | Trace implementations |
| Precedent | Search patterns | Find similar features |
| Documentation | file:line refs | Verifiable findings |
Key principle: Evidence-driven exploration. Read code, trace history, document findings with references. Avoid speculation — verify assumptions by reading the actual implementation.