
Codebase Analyzer
- 565 installs
- 4 repo stars
- Updated June 15, 2026
- donnfelker/donnfelker-plugin-marketplace
Perform a multi-phase technical analysis of a codebase covering architecture, code quality, testing, and infrastructure, producing a detailed markdown report.
About
A codebase-analysis skill that takes a directory and writes a comprehensive engineering-focused markdown document about the project. A developer uses it for architecture reviews, code audits, and repo walkthroughs rather than quick single-file reviews.
- Multi-phase coverage of architecture, quality, testing, and infrastructure
- Writes a COMPREHENSIVE_ANALYSIS.md to the target directory
Codebase Analyzer by the numbers
- 565 all-time installs (skills.sh)
- Ranked #223 of 1,352 Code Review & Quality skills by installs in the Skillselion catalog
- Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/donnfelker/donnfelker-plugin-marketplace --skill codebase-analyzerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 565 |
|---|---|
| repo stars | ★ 4 |
| Last updated | June 15, 2026 |
| Repository | donnfelker/donnfelker-plugin-marketplace ↗ |
What it does
Perform a multi-phase technical analysis of a codebase covering architecture, code quality, testing, and infrastructure, producing a detailed markdown report.
Files
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.
Output Document Template
Use the following structure for the output markdown file. Every section must be substantive — do not include sections where you have no findings. Write in technical prose, not bullet-point lists, unless a list genuinely improves clarity (e.g., dependency catalogs).
# Comprehensive Technical Analysis: {Project Name}
> Generated: {date} | Analyzed directory: `{path}`
## Executive Summary
<!-- 3-5 paragraph high-level overview: what this codebase is, key architectural decisions,
overall health assessment, and top 3 recommendations. -->
## 1. Project Overview
### 1.1 Purpose & Scope
### 1.2 Repository Structure
### 1.3 Technology Stack
<!-- Languages, frameworks, major dependencies with versions. -->
## 2. Architecture
### 2.1 High-Level Architecture
<!-- Describe the overall pattern (monolith, microservices, etc.)
and how major components relate. Use ASCII diagrams if helpful. -->
### 2.2 Component Breakdown
<!-- Each major module/package/service gets a subsection with:
- Responsibility
- Key interfaces/exports
- Internal structure -->
### 2.3 Data Architecture
<!-- Database(s), schemas, migrations, caching, data flow. -->
### 2.4 API Surface
<!-- Endpoints, protocols, auth, versioning. -->
## 3. Application Flows
<!-- Walk through up to 5 critical user journeys or system flows end-to-end.
Show the path through the code with file references.
For each flow, include: trigger/entry point, step-by-step path through modules, and final outcome.
After documenting the primary flows, include a subsection:
### 3.X Additional Flows Reference
List any remaining notable flows not covered in detail, with a brief description
and the key entry-point files where a reader can begin tracing each one independently. -->
## 4. Design Decisions & Trade-offs
<!-- Document notable architectural and design decisions.
For each, explain: what was chosen, likely rationale, and trade-offs. -->
## 5. Code Quality & Patterns
### 5.1 Code Organization & Conventions
### 5.2 Type Safety & Validation
### 5.3 Error Handling
### 5.4 Dependency Management
## 6. Testing
### 6.1 Testing Strategy & Coverage
### 6.2 Test Patterns & Quality
### 6.3 Testing Gaps
## 7. DevOps & Deployment
### 7.1 Build System
### 7.2 CI/CD Pipeline
### 7.3 Deployment Architecture
### 7.4 Observability & Monitoring
## 8. Security Considerations
<!-- Auth, secrets, input validation, known vulnerability patterns. -->
## 9. Assessment
### 9.1 Strengths
<!-- What this codebase does well. Be specific with file/pattern references. -->
### 9.2 Areas for Improvement
<!-- Concrete, actionable improvements. Prioritize by impact. -->
### 9.3 Risks & Technical Debt
<!-- Known risks, accumulated debt, fragile areas. -->
### 9.4 Recommendations
<!-- Prioritized list of recommended actions with estimated effort
(low/medium/high) and impact (low/medium/high). -->
## Appendix
### A. File Tree (Top 3 Levels)
### B. Dependency Catalog
### C. Key File Reference
<!-- Quick-reference table: purpose → file path for the most important files. -->