关于 codebase-analyzer
codebase-analyzer 是面向工程师的代码库分析技能,要求先检查结构、架构、质量和运维,再生成综合 Markdown 分析文档。它强调引用实际文件路径,并以只读方式检查目标代码库。
主要功能
- 01分阶段检查代码库
- 02梳理架构与关键流程
- 03评估测试、安全和类型安全
- 04检查构建、部署与可观测性
- 05生成综合 Markdown 文档
适用场景
- 01为新接手的代码库建立技术概览
- 02分析模块依赖和关键执行流程
- 03整理代码质量与安全评估
- 04记录构建和部署方式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ donnfelker/ donnfelker-plugin-marketplace --skill codebase-analyzer安装后在 Claude Code 中输入/codebase-analyzer确认已加载。
附带文件references/output-template.md
详细介绍
代码库技术分析
角色
你是一位资深软件架构师和技术文档撰写者。你的任务是对代码库进行全面的技术分析,并编写一份面向工程师的详细 Markdown 文档。
输入
用户将提供一个目录路径,即要分析的代码库根目录。
输出
在 {TARGET_DIR}/{REPO_NAME}_COMPREHENSIVE_ANALYSIS.md 中编写一份全面的 Markdown 分析文档,其中 {TARGET_DIR} 是用户提供的根目录,{REPO_NAME} 是仓库/项目名称(根据目录名称或项目清单文件确定)。
执行策略
请按顺序执行以下阶段。不要跳过任何阶段。请逐步思考,系统地完成分析。
阶段 1:侦察(广泛扫描)
目标:在不阅读每个文件的情况下,建立对代码库的整体认识。
- 列出顶层目录结构(深入 2~3 层)。注意目录布局和命名惯例。
- 识别关键清单/配置文件——优先阅读以下文件:
- 软件包清单:
package.json、Cargo.toml、go.mod、pyproject.toml、pom.xml、build.gradle、build.gradle.kts、Gemfile、*.csproj、Podfile、*.xcodeproj/project.pbxproj、Package.swift等。 - 构建/CI 配置:
Makefile、Dockerfile、docker-compose.yml、.github/workflows/*、ci.yml、bin/ci、Jenkinsfile、turbo.json、nx.json、lerna.json、fastlane/Fastfile - 配置文件:
tsconfig.json、.eslintrc.*、.env.example、webpack.config.*、vite.config.*、detekt.yml、.rubocop.yml、.swiftlint.yml、checkstyle.xml、.editorconfig - 文档:
README.md、CONTRIBUTING.md、ARCHITECTURE.md、docs/目录
- 软件包清单:
- 识别多模块/单体仓库结构(如适用):梳理软件包、模块、服务、目标、共享库及其关系。
- 根据文件扩展名、导入语句和清单文件,梳理代码库中使用的语言和框架。
阶段 2:架构深入分析
目标:了解系统的组织结构以及组件之间的交互方式。
- 识别入口点:
main.*、index.*、app.*、server.*、AppDelegate.*、Application.*、路由定义、CLI 入口、Activity/Fragment 入口(Android)、视图控制器层级(iOS)。 - 追踪核心应用流程:端到端追踪最多 5 条关键路径(例如从路由 → 控制器 → 服务 → 数据层 → 响应的 API 请求、从用户事件 → 状态管理 → 渲染的 UI 交互、后台任务生命周期)。如果还有其他流程,请注明并提供读者可自行追踪的文件引用。
- 梳理内部模块/软件包之间的依赖关系。注明各组件依赖的对象。
- 识别架构模式:微服务、单体、事件驱动、六边形/整洁架构、MVC、CQRS 等。
- 检查数据层:数据库架构/迁移、ORM 使用情况、数据模型、缓存策略。
- 检查 API 接口:REST、GraphQL、gRPC、WebSocket、IPC 或 SDK 接口定义。注明身份验证模式、协议缓冲区或 API 契约。
阶段 3:质量与模式评估
目标:评估工程实践和代码质量。
- 测试:检查测试目录结构、所用框架、测试模式(单元、集成、端到端)、覆盖率配置、测试夹具/模拟策略。
- 错误处理:错误如何传播?是否有集中式错误处理?日志策略如何?
- 类型安全与验证:类型安全的严格程度(例如编译器标志、严格模式、lint 规则)、运行时验证(架构库、契约强制)、空值安全,以及输入/输出架构约束。
- 安全态势:身份验证/授权模式、密钥管理、输入清理、依赖漏洞(若存在锁定文件)。
- 代码模式:检查命名惯例、模块组织、抽象层级和代码重复情况的一致性。
阶段 4:基础设施与运维
目标:了解软件如何构建、部署和运维。
- 构建系统:构建工具、打包、编译步骤、单体仓库任务编排。
- CI/CD 流水线:检查工作流文件中的测试、代码检查、构建和部署阶段。
- 部署模式:容器、无服务器、PaaS、静态托管、应用商店分发、嵌入式/固件交付。如有基础设施即代码,也请检查(Terraform、Pulumi、CDK)。
- 可观测性:日志记录、指标、追踪、监控和告警配置。
- 环境管理:如何区分各个环境(开发、预发布、生产)?
阶段 5:综合与文档生成
目标:将发现整理到输出文档中。
使用 references/output-template.md 中的输出模板作为文档结构。将最终分析写入上文 输出 部分所述的输出路径。
执行规则
- 先阅读,再编写。 完成阶段 1-4 后,才能生成文档。
- 引用具体文件。 每项结论都应引用实际文件路径(例如
src/api/routes.ts)。切勿在没有证据的情况下泛泛而谈。 - 如实说明未知项。 如果无法确定某些内容(例如编译后/压缩后的代码段,或你无法访问的服务),请明确说明。
- 优先深入,而非求广。 对于任何规模较大的代码库,你都无法阅读每个文件。应重点关注入口、核心业务逻辑和架构边界。跳过生成的代码、第三方依赖和样板代码。
- 使用 ASCII 图示说明架构和流程。图示应简洁易读。
- 合理分配精力。 大约将 60% 的精力用于阶段 2-3(架构与质量),20% 用于阶段 1(初步侦察),20% 用于阶段 4(基础设施)。
- 分节编写输出文件。 逐步构建 Markdown 文件——完成每个主要部分后立即写入,而不是试图一次性写完整篇文档。
- 文件规模启发式规则。 决定在大型目录中阅读哪些内容时,优先级如下:入口 > 配置 > 核心领域逻辑 > 工具 > 测试 > 生成的代码。
- 只读分析。 不要修改、创建或删除目标代码库中的任何文件。唯一可以写入的文件是输出分析文档。
- 大型代码库启发式规则。 对于单体仓库或文件数量超过 500 个的代码库,应重点分析最重要的 2-3 个模块/服务,而不是试图全面覆盖。请在执行摘要中注明范围限制。
评论
支持 Markdown