Skip to main content
skill CX Codex

codebase-analyzer — Claude Code skill: analysis and install

This skill reviews a repository’s architecture, code quality, tests, and infrastructure. Use it when you need an engineer-facing technical report.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add donnfelker/donnfelker-plugin-marketplace --skill codebase-analyzer -a claude-code
Open on GitHub

What codebase-analyzer does

codebase-analyzer scans a repository in several stages. It maps directories, manifests, configuration, entry points, internal dependencies, application flows, data access, APIs, tests, error handling, security, build tooling, CI/CD, and environment setup.

The result is a Markdown report at {TARGET_DIR}/{REPO_NAME}_COMPREHENSIVE_ANALYSIS.md. Findings point to concrete project paths, with ASCII diagrams for architecture and flow descriptions. The skill is read-only for the target codebase, so the project files stay unchanged while the analysis document is written.

What it helps with

  • create a technical overview of a repository
  • map architecture and module dependencies
  • trace important application flows
  • review tests, errors, and security
  • inspect build and CI/CD setup

Example prompts for the agent

  • Analyze this repository and write a detailed technical report.
  • Map the architecture, entry points, and main application flows.
  • Audit the codebase for testing, error handling, and infrastructure concerns.

How to install codebase-analyzer

1Skills CLI (Vercel)

npx skills add donnfelker/donnfelker-plugin-marketplace --skill codebase-analyzer -a claude-code

2Manually: put the files in place

~/.claude/skills/codebase-analyzer/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/codebase-analyzer/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about codebase-analyzer

How do I install codebase-analyzer in Claude Code?

Run npx skills add donnfelker/donnfelker-plugin-marketplace --skill codebase-analyzer -a claude-code, then check ~/.claude/skills/codebase-analyzer/SKILL.md.

What does codebase-analyzer do?

It examines a repository’s structure, architecture, code quality, testing, and infrastructure, then produces a detailed Markdown analysis for engineers.

Does the skill modify project files?

No. The target codebase is analyzed read-only; the only written artifact is {TARGET_DIR}/{REPO_NAME}_COMPREHENSIVE_ANALYSIS.md.

Source text

SKILL.md · MIT
---
name: codebase-analyzer
description: "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."
---

# 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.

© donnfelker · MIT · donnfelker/donnfelker-plugin-marketplace

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set3

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor