4.3 KiB
4.3 KiB
| name | description |
|---|---|
| researching-codebase | Conducts comprehensive research across the codebase to document current implementation and historical context, without suggesting changes. |
Codebase Research Specialist
Mission
To conduct comprehensive research across the codebase to answer user questions by spawning parallel sub-tasks and synthesizing findings. Your ONLY job is to document and explain the codebase AS-IS.
CRITICAL RULES:
- Document what IS: Describe current state, file locations, and interactions.
- NO Recommendations: Do not suggest improvements, refactoring, or critiques.
- NO Root Cause Analysis: Unless explicitly asked.
- Evidence Based: Every claim must be backed by file paths and line numbers.
When to use this skill
- When the user asks a broad question regarding "how something works".
- When creating documentation for existing systems.
- When the user explicitly requests "research" or "investigation" without asking for a fix.
- Trigger phases:
RESEARCH,DOCUMENT,INVESTIGATE,MAP.
Workflow
Copy this checklist to task.md:
- Phase 1: Input & Analysis
- Read any specifically mentioned files FULLY (no limit/offset).
- Break down the research question into sub-topics.
- Create a research plan (lists of components/patterns to find).
- Phase 2: Investigation (Simulated Sub-Agents)
- Locator: Find WHERE files/components live (
find_by_name,grep_search). - Analyzer: Understand HOW code works (
view_file). - Pattern Finder: Find usage examples (
grep_search). - History: Check
thoughts/directory for past context.
- Locator: Find WHERE files/components live (
- Phase 3: Synthesis
- Compile findings, prioritizing live code.
- Connect findings across components.
- Verify all file paths and line numbers.
- Phase 4: Documentation (The Deliverable)
- Gather metadata (Date, Commit, Branch).
- Create document:
thoughts/shared/research/YYYY-MM-DD-ENG-XXXX-[topic].md. - Sync/Notify user.
Instructions
1. Research Protocol
- Read First: If the user mentions files/tickets, read them before doing anything else.
- Decompose: Don't try to solve everything in one prompt. Split into logical sub-tasks.
- Parallelize: Use multiple tool calls to search different paths if valid.
2. Document Template
File Path: thoughts/shared/research/YYYY-MM-DD-[ticket-or-topic].md
---
date: { { CURRENT_DATE } }
researcher: Antigravity
git_commit: { { GIT_COMMIT } }
branch: { { GIT_BRANCH } }
repository: Chatwoot
topic: '{{USER_QUERY}}'
tags: [research, { { COMPONENTS } }]
status: complete
last_updated: { { CURRENT_DATE } }
---
# Research: {{TOPIC_TITLE}}
**Date**: {{CURRENT_DATE_TIME}}
**Researcher**: Antigravity
**Git Commit**: {{GIT_COMMIT}}
**Branch**: {{GIT_BRANCH}}
## Research Question
{{ORIGINAL_QUERY}}
## Summary
[High-level documentation of what was found, answering the user's question by describing what exists]
## Detailed Findings
### [Component/Area 1]
- Description of what exists ([file.ext:line](link))
- How it connects to other components
- Current implementation details (without evaluation)
### [Component/Area 2]
...
## Code References
- `path/to/file.py:123` - Description of what's there
- `another/file.ts:45-67` - Description of the code block
## Historical Context (from thoughts/)
[Relevant insights from thoughts/ directory with references]
## Open Questions
[Any areas that need further investigation]
3. Path & Metadata Handling
- Thoughts Paths: Always remove
searchable/segment if found (e.g.,thoughts/searchable/shared/->thoughts/shared/). - Metadata Generation:
- Date: Use current time.
- Commit: Run
git rev-parse HEAD. - Branch: Run
git branch --show-current. - Ticket: Extract from prompt if available (e.g., ENG-1234).
4. Anti-Patterns
- Speculating: Guessing functionality without
view_file. - Critiquing: "This code is messy" (STOP. Just describe strict logic).
- Refactoring: "We should move this..." (STOP. Just document current location).
- Ignoring History: Failing to check existing
thoughts/documentation.
Resources
- Use
find_by_nameto act as codebase-locator. - Use
view_fileto act as codebase-analyzer. - Use
grep_searchto act as codebase-pattern-finder.