mcpField
C
codebase-analyzer

codebase-analyzer

github.com/donnfelker开发4862 次安装19 周前更新
代码仓库

关于 codebase-analyzer

codebase-analyzer 是面向工程师的代码库分析技能,要求先检查结构、架构、质量和运维,再生成综合 Markdown 分析文档。它强调引用实际文件路径,并以只读方式检查目标代码库。

主要功能

  1. 01分阶段检查代码库
  2. 02梳理架构与关键流程
  3. 03评估测试、安全和类型安全
  4. 04检查构建、部署与可观测性
  5. 05生成综合 Markdown 文档

适用场景

  1. 01为新接手的代码库建立技术概览
  2. 02分析模块依赖和关键执行流程
  3. 03整理代码质量与安全评估
  4. 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:侦察(广泛扫描)

目标:在不阅读每个文件的情况下,建立对代码库的整体认识。

  1. 列出顶层目录结构(深入 2~3 层)。注意目录布局和命名惯例。
  2. 识别关键清单/配置文件——优先阅读以下文件:
    • 软件包清单: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/ 目录
  3. 识别多模块/单体仓库结构(如适用):梳理软件包、模块、服务、目标、共享库及其关系。
  4. 根据文件扩展名、导入语句和清单文件,梳理代码库中使用的语言和框架。
阶段 2:架构深入分析

目标:了解系统的组织结构以及组件之间的交互方式。

  1. 识别入口点:main.*、index.*、app.*、server.*、AppDelegate.*、Application.*、路由定义、CLI 入口、Activity/Fragment 入口(Android)、视图控制器层级(iOS)。
  2. 追踪核心应用流程:端到端追踪最多 5 条关键路径(例如从路由 → 控制器 → 服务 → 数据层 → 响应的 API 请求、从用户事件 → 状态管理 → 渲染的 UI 交互、后台任务生命周期)。如果还有其他流程,请注明并提供读者可自行追踪的文件引用。
  3. 梳理内部模块/软件包之间的依赖关系。注明各组件依赖的对象。
  4. 识别架构模式:微服务、单体、事件驱动、六边形/整洁架构、MVC、CQRS 等。
  5. 检查数据层:数据库架构/迁移、ORM 使用情况、数据模型、缓存策略。
  6. 检查 API 接口:REST、GraphQL、gRPC、WebSocket、IPC 或 SDK 接口定义。注明身份验证模式、协议缓冲区或 API 契约。
阶段 3:质量与模式评估

目标:评估工程实践和代码质量。

  1. 测试:检查测试目录结构、所用框架、测试模式(单元、集成、端到端)、覆盖率配置、测试夹具/模拟策略。
  2. 错误处理:错误如何传播?是否有集中式错误处理?日志策略如何?
  3. 类型安全与验证:类型安全的严格程度(例如编译器标志、严格模式、lint 规则)、运行时验证(架构库、契约强制)、空值安全,以及输入/输出架构约束。
  4. 安全态势:身份验证/授权模式、密钥管理、输入清理、依赖漏洞(若存在锁定文件)。
  5. 代码模式:检查命名惯例、模块组织、抽象层级和代码重复情况的一致性。
阶段 4:基础设施与运维

目标:了解软件如何构建、部署和运维。

  1. 构建系统:构建工具、打包、编译步骤、单体仓库任务编排。
  2. CI/CD 流水线:检查工作流文件中的测试、代码检查、构建和部署阶段。
  3. 部署模式:容器、无服务器、PaaS、静态托管、应用商店分发、嵌入式/固件交付。如有基础设施即代码,也请检查(Terraform、Pulumi、CDK)。
  4. 可观测性:日志记录、指标、追踪、监控和告警配置。
  5. 环境管理:如何区分各个环境(开发、预发布、生产)?
阶段 5:综合与文档生成

目标:将发现整理到输出文档中。

使用 references/output-template.md 中的输出模板作为文档结构。将最终分析写入上文 输出 部分所述的输出路径。


执行规则

  1. 先阅读,再编写。 完成阶段 1-4 后,才能生成文档。
  2. 引用具体文件。 每项结论都应引用实际文件路径(例如 src/api/routes.ts)。切勿在没有证据的情况下泛泛而谈。
  3. 如实说明未知项。 如果无法确定某些内容(例如编译后/压缩后的代码段,或你无法访问的服务),请明确说明。
  4. 优先深入,而非求广。 对于任何规模较大的代码库,你都无法阅读每个文件。应重点关注入口、核心业务逻辑和架构边界。跳过生成的代码、第三方依赖和样板代码。
  5. 使用 ASCII 图示说明架构和流程。图示应简洁易读。
  6. 合理分配精力。 大约将 60% 的精力用于阶段 2-3(架构与质量),20% 用于阶段 1(初步侦察),20% 用于阶段 4(基础设施)。
  7. 分节编写输出文件。 逐步构建 Markdown 文件——完成每个主要部分后立即写入,而不是试图一次性写完整篇文档。
  8. 文件规模启发式规则。 决定在大型目录中阅读哪些内容时,优先级如下:入口 > 配置 > 核心领域逻辑 > 工具 > 测试 > 生成的代码。
  9. 只读分析。 不要修改、创建或删除目标代码库中的任何文件。唯一可以写入的文件是输出分析文档。
  10. 大型代码库启发式规则。 对于单体仓库或文件数量超过 500 个的代码库,应重点分析最重要的 2-3 个模块/服务,而不是试图全面覆盖。请在执行摘要中注明范围限制。

评论

支持 Markdown