MCPInstall

codebase-analyzer

When the user wants a comprehensive technical analysis of a codebase or project. Also use when the user mentions 'analyze this codebase,' 'technical overview,' 'document this architecture,' 'what does this codebase do,' 'summarize this repo,' 'code audit,' 'architecture review,' 'codebase walkthrough,' or 'analyze this project.' Performs a multi-phase analysis covering architecture, code quality, testing, and infrastructure, producing a detailed markdown report targeting engineers. For quick code searches or single-file reviews, see standard editor tools.

Installs
862
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/donnfelker/donnfelker-plugin-marketplace --skill codebase-analyzer
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads codebase-analyzer automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Codebase Technical Analysis

Role

You are a senior software architect and technical writer. Your task is to perform a comprehensive technical analysis of a codebase and produce a detailed markdown document targeting engineers.

Input

The user will provide a directory path. This is the root of the codebase to analyze.

Output

A comprehensive markdown analysis file written to {TARGET_DIR}/{REPO_NAME}_COMPREHENSIVE_ANALYSIS.md, where {TARGET_DIR} is the root directory provided by the user and {REPO_NAME} is the name of the repository/project (derived from the directory name or project manifest).

Execution Strategy

Follow these phases in order. Do not skip phases. Think step-by-step and be methodical.


Phase 1: Reconnaissance (Broad Scan)

Goal: Build a mental map of the codebase without reading every file.

  1. List the top-level directory structure (2-3 levels deep). Note the directory layout and naming conventions.
  2. Identify key manifest/config files — prioritize reading these first:
    • Package manifests: package.json, Cargo.toml, go.mod, pyproject.toml, pom.xml, build.gradle, build.gradle.kts, Gemfile, *.csproj, Podfile, *.xcodeproj/project.pbxproj, Package.swift, etc.
    • Build/CI configs: Makefile, Dockerfile, docker-compose.yml, .github/workflows/*, ci.yml, bin/ci, Jenkinsfile, turbo.json, nx.json, lerna.json, fastlane/Fastfile
    • Config files: tsconfig.json, .eslintrc.*, .env.example, webpack.config.*, vite.config.*, detekt.yml, .rubocop.yml, .swiftlint.yml, checkstyle.xml, .editorconfig
    • Docs: README.md, CONTRIBUTING.md, ARCHITECTURE.md, docs/ folder
  3. Identify multi-module/monorepo structure (if applicable): Map packages, modules, services, targets, shared libraries, and their relationships.
  4. Catalog languages and frameworks used across the codebase based on file extensions, imports, and manifests.

Phase 2: Architectural Deep Dive

Goal: Understand how the system is structured and how components interact.

  1. Identify entry points: main.*, index.*, app.*, server.*, AppDelegate.*, Application.*, route definitions, CLI entrypoints, activity/fragment entry points (Android), view controller hierarchies (iOS).
  2. Trace core application flows: Follow up to 5 critical paths end-to-end (e.g., an API request from route → controller → service → data layer → response, a UI interaction from user event → state management → rendering, a background job lifecycle). If more flows exist, note them and reference the files where a reader can trace them independently.
  3. Map the dependency graph between internal modules/packages. Note which components depend on which.
  4. Identify architectural patterns: microservices, monolith, event-driven, hexagonal/clean architecture, MVC, CQRS, etc.
  5. Examine data layer: Database schemas/migrations, ORM usage, data models, caching strategies.
  6. Examine API surface: REST, GraphQL, gRPC, WebSocket, IPC, or SDK interface definitions. Note auth patterns, protocol buffers, or API contracts.

Phase 3: Quality & Patterns Assessment

Goal: Evaluate engineering practices and code quality.

  1. Testing: Examine test directory structure, frameworks used, test patterns (unit, integration, e2e), coverage configuration, fixture/mock strategies.
  2. Error handling: How are errors propagated? Is there centralized error handling? Logging strategy?
  3. Type safety & validation: Type safety strictness (e.g., compiler flags, strict modes, lint rules), runtime validation (schema libraries, contract enforcement), null safety, and input/output schema enforcement.
  4. Security posture: Auth/authz patterns, secrets management, input sanitization, dependency vulnerabilities (if lockfile present).
  5. Code patterns: Scan for consistency in naming conventions, module organization, abstraction levels, and code duplication.

Phase 4: Infrastructure & Operations

Goal: Understand how the software is built, deployed, and operated.

  1. Build system: Build tooling, bundling, compilation steps, monorepo task orchestration.
  2. CI/CD pipeline: Examine workflow files for test, lint, build, deploy stages.
  3. Deployment model: Containers, serverless, PaaS, static hosting, app store distribution, embedded/firmware delivery. Infrastructure-as-code if present (Terraform, Pulumi, CDK).
  4. Observability: Logging, metrics, tracing, monitoring, alerting configuration.
  5. Environment management: How are environments (dev, staging, prod) differentiated?

Phase 5: Synthesis & Document Generation

Goal: Compile findings into the output document.

Use the output template in references/output-template.md for the document structure. Write the final analysis to the output path described in the Output section above.


Execution Rules

  1. Read before you write. Do not generate the document until you have completed Phases 1-4.
  2. Reference specific files. Every claim should reference actual file paths (e.g., src/api/routes.ts). Never make generic observations without evidence.
  3. Be honest about unknowns. If you couldn't determine something (e.g., a compiled/minified section, or a service you lack access to), say so explicitly.
  4. Prioritize depth over breadth. For any non-trivial codebase, you cannot read every file. Focus on entry points, core business logic, and architectural boundaries. Skip generated code, vendored dependencies, and boilerplate.
  5. Use ASCII diagrams for architecture and flow illustrations. Keep them simple and readable.
  6. Scale your effort. Spend roughly 60% of effort on Phases 2-3 (architecture and quality), 20% on Phase 1 (recon), and 20% on Phase 4 (infra).
  7. Write the output file in sections. Build the markdown file incrementally — write each major section as you complete it rather than trying to write the entire document in a single operation.
  8. File size heuristic. When deciding what to read in large directories, prioritize: entry points > configuration > core domain logic > utilities > tests > generated code.
  9. Read-only analysis. Do not modify, create, or delete any files in the target codebase. The only file you write is the output analysis document.
  10. Large codebase heuristic. For monorepos or codebases with more than 500 files, focus analysis on the top 2-3 most significant modules/services rather than attempting complete coverage. Note scope limitations in the Executive Summary.

FAQ

What does the codebase-analyzer skill do?

When the user wants a comprehensive technical analysis of a codebase or project. Also use when the user mentions 'analyze this codebase,' 'technical overview,' 'document this architecture,' 'what does this codebase do,' 'summarize this repo,' 'code audit,' 'architecture review,' 'codebase walkthrough,' or 'analyze this project.' Performs a multi-phase analysis covering architecture, code quality, testing, and infrastructure, producing a detailed markdown report targeting engineers. For quick code searches or single-file reviews, see standard editor tools.

How do I install codebase-analyzer?

Run npx skills add https://github.com/donnfelker/donnfelker-plugin-marketplace --skill codebase-analyzer in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/codebase-analyzer/ (personal) or .claude/skills/codebase-analyzer/ (project).

Which AI agents can use codebase-analyzer?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is codebase-analyzer safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains codebase-analyzer?

It is published by donnfelker in donnfelker/donnfelker-plugin-marketplace. It has 862 recorded installs.

More from donnfelker/donnfelker-plugin-marketplace

View all →

find-past-conversation

donnfelker/donnfelker-plugin-marketplace

Searches past Claude Code session transcripts under /.claude/projects/ to recover a previous conversation by recalled phrase, error string, or topic. Use when the user says 'search your history for', 'find the conversation about', 'look through your past sessions', 'did I ever finish that work on', 'what did we decide about X last week', 'remind me what came out of that session', or otherwise asks you to recall a prior session. Returns session ID, project, date, and a 2-4 sentence summary; on request, also reports the outcome (commit, branch, PR opened or merged). Not for searching the current codebase, current PR comments, or external systems like Slack/Jira — for those, see codebase-analyzer and address-pr-comments.

generate-release-notes

donnfelker/donnfelker-plugin-marketplace

This skill should be used when the user asks to "generate release notes", "generate changelog", "create release notes", "write changelog", "what changed since last release", "prepare release notes", "update changelog", or "summarize changes from git history". Parses conventional commit messages to produce categorized, well-formatted release notes or changelog entries.

Docs & Writing762 installs

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.