Codebase Analysis Workflow
Execute a structured 3-phase codebase analysis workflow to gather insights.
Phase Overview
- Deep Analysis — Explore and synthesize codebase findings via the deep-analysis skill
- Reporting — Present structured analysis to the user
- Post-Analysis Actions — Save, document, or retain analysis insights
Phase 1: Deep Analysis
Goal: Explore the codebase and synthesize findings.
Determine analysis context:
- If arguments are provided, use them as the analysis context
- If no arguments, set context to "general codebase understanding"
Check for cached results:
- Check if
.agents/sessions/exploration-cache/manifest.mdexists - If found, read the manifest and verify:
codebase_pathmatches the current working directory, andtimestampis within the configured cache TTL (default 24 hours) - If cache is valid, prompt the user to choose:
- Use cached results (show the formatted cache date) — Read cached synthesis from
.agents/sessions/exploration-cache/synthesis.mdand recon fromrecon_summary.md. SetCACHE_HIT = trueandCACHE_TIMESTAMPto the cache's timestamp. Skip step 3 and proceed directly to step 4. - Run fresh analysis — Remove the cache manifest file, set
CACHE_HIT = false, and proceed to step 3
- Use cached results (show the formatted cache date) — Read cached synthesis from
- If no valid cache: set
CACHE_HIT = falseand proceed to step 3
- Check if
Run deep-analysis workflow:
- Refer to the deep-analysis skill and follow its workflow
- Pass the analysis context from step 1
- This handles reconnaissance, team planning, approval (auto-approved when skill-invoked), team creation, parallel exploration (code-explorer agents), and synthesis (code-synthesizer agent)
- After completion, set
CACHE_TIMESTAMP = null(fresh results, no prior cache)
Verify results and capture metadata:
- Ensure the synthesis covers the analysis context adequately
- If critical gaps remain, search the codebase directly to fill them
- Record analysis metadata for Phase 2 reporting: whether results were cached (
CACHE_HIT), cache timestamp if applicable (CACHE_TIMESTAMP), and the number of explorer agents used (from the deep-analysis team plan, or 0 if cached)
Phase 2: Reporting
Goal: Present a structured analysis to the user.
Load diagram guidance:
- Refer to the technical-diagrams skill for Mermaid diagram conventions
- Use Mermaid diagrams in the Architecture Overview and Relationship Map sections
Present the analysis: Structure the report with these sections (see Report Template below for full details):
- Executive Summary — Lead with the most important finding
- Architecture Overview — How the codebase is structured
- Tech Stack — Core technologies, frameworks, and tools detected
- Critical Files — The 5-10 most important files with details
- Patterns & Conventions — Recurring patterns and coding conventions
- Relationship Map — How components connect to each other
- Challenges & Risks — Technical risks and complexity hotspots
- Recommendations — Actionable next steps, each citing the challenge it addresses
- Analysis Methodology — Agents used, cache status, scope, and duration
Proceed immediately to Phase 3.
Phase 3: Post-Analysis Actions
Goal: Let the user save, document, or retain analysis insights from the report through a multi-step interactive flow.
Step 1: Select actions
Prompt the user to choose (multi-select) from all available actions:
- Save Codebase Analysis Report — Write the structured report to a markdown file
- Save a custom report — Generate a report tailored to your specific goals (you'll provide instructions next)
- Update project documentation — Add/update README.md, CLAUDE.md, or AGENTS.md with analysis insights
- Keep a condensed summary in memory — Retain a quick-reference summary in conversation context
If the user selects no actions, the workflow is complete. Thank the user and end.
Step 2: Execute selected actions
Process selected actions in the following fixed order. Complete all sub-steps for each action before moving to the next.
Action: Save Codebase Analysis Report
Step 2a-1: Prompt for file location
- Check if an
internal/docs/directory exists in the project root- If yes, suggest default path:
internal/docs/codebase-analysis-report-{YYYY-MM-DD}.md - If no, suggest default path:
codebase-analysis-report-{YYYY-MM-DD}.mdin the project root
- If yes, suggest default path:
- Prompt the user to confirm or customize the file path
Step 2a-2: Generate and save the report
- Generate the full structured report using the Phase 2 analysis findings and the report template structure
- Write the report to the confirmed path
- Confirm the file was saved
Action: Save Custom Report
Step 2b-1: Gather report requirements
- Prompt the user to describe the goals and requirements for their custom report — what it should focus on, what questions it should answer, and any format preferences
Step 2b-2: Prompt for file location
- Check if an
internal/docs/directory exists in the project root- If yes, suggest default path:
internal/docs/custom-report-{YYYY-MM-DD}.md - If no, suggest default path:
custom-report-{YYYY-MM-DD}.mdin the project root
- If yes, suggest default path:
- Prompt the user to confirm or customize the file path
Step 2b-3: Generate and save the custom report
- Generate a report shaped by the user's requirements from Step 2b-1, drawing from the Phase 2 analysis data — this is a repackaging of existing findings, not a re-analysis
- Write the report to the confirmed path
- Confirm the file was saved
Action: Update Project Documentation
Step 2c-1: Select documentation files and gather directions
Prompt the user to choose (multi-select):
- README.md — Add architecture, structure, and tech stack information
- CLAUDE.md — Add patterns, conventions, critical files, and architectural decisions
- AGENTS.md — Add agent descriptions, capabilities, and coordination patterns
Then prompt for update directions for all selected files: "What content from the analysis should be added or updated? Provide general directions or specific sections to focus on (applies across all selected files, or specify per-file directions)."
Step 2c-2: Generate and approve documentation drafts
For each selected file, read the existing file and generate a draft based on the user's directions and Phase 2 analysis data:
- README.md: Read existing file at project root. If no README.md exists, skip and inform the user. Draft updates focusing on architecture, project structure, and tech stack.
- CLAUDE.md: Read existing file at project root. If none exists, ask if one should be created (if declined, skip). Draft updates focusing on patterns, conventions, critical files, and architectural decisions.
- AGENTS.md: Read existing file at project root (create new if none exists). Draft content focusing on agent inventory (name, model, purpose), capabilities and tool access, coordination patterns, skill-agent mappings, and model tiering rationale.
Present all drafts together in a single output, clearly labeled by file. Then prompt the user to choose:
- Apply all — Apply all drafted updates
- Modify — Specify which file(s) to revise and what to change (max 3 revision cycles, then must Apply or Skip)
- Skip all — Skip all documentation updates
If approved, apply updates by modifying existing files or writing new files.
Action: Keep Insights in Memory
- Present a condensed Codebase Quick Reference inline in the conversation:
- Architecture — 1-2 sentence summary of how the codebase is structured
- Key Files — 3-5 most critical files with one-line descriptions
- Conventions — Important patterns and naming conventions
- Tech Stack — Core technologies and frameworks
- Watch Out For — Top risks or complexity hotspots
- No file is written — this summary stays in conversation context for reference during the session
Step 3: Actionable Insights Follow-up
This step always executes after Step 2 completes. The Phase 2 analysis is available in conversation context regardless of whether a report file was saved.
Prompt the user to choose:
- Address actionable insights — Fix challenges and implement recommendations from the report
- Skip — No further action needed
If the user selects "Skip", proceed to Step 4.
If the user selects "Address actionable insights":
Step 3a: Extract actionable items from the report
Parse the Phase 2 report (in conversation context) to extract items from:
- Challenges & Risks table rows — title from Challenge column, severity from Severity column, description from Impact column
- Recommendations section — each numbered item with an (addresses: {Challenge name}) citation; inherit the cited challenge's severity (High/Medium/Low). If no citation is present, default to Medium.
- Other findings with concrete fixes — default to Low severity
If no actionable items are found, inform the user and skip to Step 4.
Step 3b: Present severity-ranked item list
Present items sorted High to Medium to Low using the Actionable Insights format (see below), each showing:
- Title
- Severity (High / Medium / Low)
- Source section (Challenges & Risks, Recommendations, or Other)
- Brief description
Prompt the user to choose which items to address (multi-select). If no items selected, skip to Step 4.
Step 3c: Process each selected item in priority order (High to Medium to Low)
For each item:
Assess complexity:
- Simple — Single file, clear fix, localized change
- Complex — Multi-file, architectural impact, requires investigation
Plan the fix:
- Simple: Read the target file, propose changes directly
- Complex (architectural): Delegate to an architect agent (see
agents/code-architect.mdfor instructions) with context: the item title, severity, description, the relevant report section text, and any files or components mentioned. The agent designs the fix and returns a proposal. - Complex (needs investigation): This step uses the code-explorer agent from the deep-analysis skill (see
../deep-analysis/agents/code-explorer.md) with context: the item title, description, suspected files/components, and what needs investigation. The agent explores and returns findings for you to formulate a fix proposal. - If an agent delegation fails, fall back to direct investigation using file reading and searching, and propose a simpler fix based on available information.
Present proposal: Show files to modify, specific changes, and rationale
User approval — Prompt the user to choose:
- Apply — Execute changes, confirm success
- Skip — Record the skip, move to next item
- Modify — User describes adjustments, re-propose the fix (max 3 revision cycles, then must Apply or Skip)
Step 3d: Summarize results
Present a summary covering:
- Items addressed (with list of files modified per item)
- Items skipped
- Total files modified table
Step 4: Complete the workflow
Summarize which actions were executed and confirm the workflow is complete.
Error Handling
General
If any phase fails:
- Explain what went wrong
- Ask the user how to proceed:
- Retry the phase
- Skip to next phase (with partial results)
- Abort the workflow
Documentation Update Failures (Step 2c)
If a file write or edit fails when applying documentation updates:
- Retry the operation once
- If still failing, present the drafted content to the user inline and suggest they apply it manually
- Continue with the remaining selected files
Agent Delegation Failures (Step 3c)
If a code-architect or code-explorer agent fails during actionable insight processing:
- Fall back to direct investigation using file reading and searching
- Propose a simpler fix based on available information
- If the item is too complex to address without agent assistance, inform the user and offer to skip
Agent Coordination
Exploration and synthesis agent coordination is handled by the deep-analysis skill in Phase 1, which uses agent teams with hub-and-spoke coordination. Deep-analysis performs reconnaissance, composes a team plan (auto-approved when invoked by another skill), assembles the team, and manages the exploration/synthesis lifecycle. See that skill for team setup, approval flow, and failure handling details.
Nested Agents
This skill uses the following nested agent:
agents/code-architect.md— Designs implementation blueprints for fixing complex architectural issues identified in the analysis report.
This skill also cross-references agents from the deep-analysis skill:
../deep-analysis/agents/code-explorer.md— Used in Step 3c for investigating complex items that need codebase exploration before a fix can be proposed.
Report Template
Use this template when presenting analysis findings in Phase 2.
# Codebase Analysis Report
**Analysis Context**: {What was analyzed and why}
**Codebase Path**: {Path analyzed}
**Date**: {YYYY-MM-DD}
{If the report exceeds approximately 100 lines, add a **Table of Contents** here linking to each major section.}
---
## Executive Summary
{Lead with the most important finding. 2-3 sentences covering: what was analyzed, the key architectural insight, and the primary recommendation or risk.}
---
## Architecture Overview
{2-3 paragraphs describing:}
- How the codebase is structured (layers, modules, boundaries)
- The design philosophy and architectural style
- Key architectural decisions and their rationale
{Include a Mermaid architecture diagram (flowchart or C4 Context) showing the major layers/components. Use `classDef` with `color:#000` for all node styles.}
---
## Tech Stack
| Category | Technology | Version (if detected) | Role |
|----------|-----------|----------------------|------|
| Language | {e.g., TypeScript} | {e.g., 5.x} | Primary language |
| Framework | {e.g., Next.js} | {e.g., 16} | Web framework |
{Include only technologies actually detected in config files or code. Omit categories that don't apply.}
---
## Critical Files
{Limit to 5-10 most important files}
| File | Purpose | Relevance |
|------|---------|-----------|
| `path/to/file` | Brief description | High/Medium |
### File Details
#### `path/to/critical-file`
- **Key exports**: What this file provides to others
- **Core logic**: What it does
- **Connections**: What depends on it and what it depends on
---
## Patterns & Conventions
### Code Patterns
- **Pattern**: Description and where it's used
### Naming Conventions
- **Convention**: Description and examples
### Project Structure
- **Organization**: How files and directories are organized
---
## Relationship Map
{Describe how key components connect — limit to 15-20 most significant connections. Use Mermaid flowcharts for both data flows and dependency maps.}
---
## Challenges & Risks
| Challenge | Severity | Impact |
|-----------|----------|--------|
| {Description} | High/Medium/Low | {What could go wrong} |
---
## Recommendations
1. **{Recommendation}** _(addresses: {Challenge name})_: {Brief rationale}
2. **{Recommendation}** _(addresses: {Challenge name})_: {Brief rationale}
---
## Analysis Methodology
- **Exploration agents**: {Number} agents with focus areas: {list}
- **Synthesis**: Findings merged and critical files read in depth
- **Scope**: {What was included and what was intentionally excluded}
- **Cache status**: {Fresh analysis / Cached results from YYYY-MM-DD}
Report Section Guidelines
Executive Summary: Lead with the most important finding, not a generic overview. Keep to 2-3 sentences. Include at least one actionable insight.
Critical Files: Limit to 5-10 files that someone must understand. Include both the "what" (purpose) and "why" (relevance to analysis context).
Patterns & Conventions: Only include patterns that are consistently applied. Note deviations from patterns — these are often more interesting than the patterns themselves.
Relationship Map: Focus on the most important connections, not an exhaustive dependency graph. Use directional language (calls, depends on, triggers, reads from). Cap at 15-20 connections.
Challenges & Risks: Rate severity based on likelihood and impact combined. Include specific details, not vague warnings.
Recommendations: Make recommendations actionable. Each must reference the specific challenge it addresses using the format: (addresses: {Challenge name}). Limit to 3-5 recommendations.
Adapting the Template
For Feature-Focused Analysis: Emphasize integration points and files that would need modification. Include a "Feature Implementation Context" section before Recommendations.
For General Codebase Understanding: Broader Architecture Overview with layer descriptions. More extensive Patterns & Conventions section.
For Debugging/Investigation: Emphasize the execution path and data flow. Include a "Relevant Execution Paths" section.
Actionable Insights Format
Item List Format
Present extracted items grouped by severity, highest first:
### High Severity
1. **{Title}** — _{Source: Challenges & Risks}_
{Brief description of the issue and its impact}
### Medium Severity
2. **{Title}** — _{Source: Recommendations}_
{Brief description and rationale}
### Low Severity
3. **{Title}** — _{Source: Other Findings}_
{Brief description}
Severity Assignment Guidelines
From Challenges & Risks Table: Use the Severity column value directly. Title comes from the Challenge column. Description comes from the Impact column.
From Recommendations Section: Each recommendation should cite which challenge it addresses. Use this citation to inherit severity. If no challenge link is present, default to Medium.
From Other Findings: Default to Low unless the finding explicitly describes a critical issue.
Complexity Assessment Criteria
| Complexity | Typical Effort | Description |
|---|---|---|
| Simple | Low (~minutes) | Single targeted change, clear fix |
| Complex — Architectural | Medium-High (~30min-1hr+) | Multi-file refactoring, design decisions |
| Complex — Investigation | Medium (~15-30min) + varies | Investigation phase + fix implementation |
Change Proposal Format
#### {Item Title} ({Severity})
**Complexity:** Simple / Complex (architectural) / Complex (investigation)
**Effort:** Low (~minutes) / Medium (~30min) / High (~1hr+)
**Files to modify:**
| File | Change Type |
|------|-------------|
| `path/to/file` | Edit / Create / Delete |
**Proposed changes:**
{Description of what will change and why.}
**Rationale:**
{Why this approach was chosen. Reference the original finding.}
Summary Format
## Actionable Insights Summary
### Items Addressed
| # | Item | Severity | Files Modified |
|---|------|----------|----------------|
| 1 | {Title} | High | `file1.ts`, `file2.ts` |
### Items Skipped
| # | Item | Severity | Reason |
|---|------|----------|--------|
| 2 | {Title} | Low | User skipped |
### Files Modified
| File | Changes |
|------|---------|
| `path/to/file` | {Brief description of change} |
**Total:** {N} items addressed, {M} items skipped, {P} files modified
Processing Guidelines
- Only extract items with concrete, actionable fixes — skip vague observations
- Deduplicate items that target the same file/component or have significant keyword overlap
- Process items in the order the user selected them, but within that, prioritize by severity
- Before starting fixes, scan for potential conflicts (same-file modifications, contradictory changes, ordering dependencies). If conflicts are detected, present them to the user before proceeding.
- Maximum 3 revision cycles per item when user selects "Modify"