用途
codebase-analyzer 用于对代码库或项目进行全面的技术分析。当用户希望获得某个代码库的技术概览,或提到“分析这个代码库”“技术概览”等类似需求时,该技能会被触发。它扮演资深软件架构师与技术写作者的角色,目标是产出一份面向工程师的详细 Markdown 文档。
输入与输出
输入:用户提供一个目录路径,作为待分析代码库的根目录。
输出:一份全面的 Markdown 分析文件,写入 {TARGET_DIR}/{REPO_NAME}_COMPREHENSIVE_ANALYSIS.md,其中 {TARGET_DIR} 是用户提供的根目录,{REPO_NAME} 是仓库/项目名称(从目录名或项目清单推导)。
主要能力(执行阶段)
该技能按顺序执行以下阶段,不跳过任何阶段:
阶段 1:侦察(广泛扫描)——在不逐文件阅读的情况下建立代码库心智地图。列出顶层目录结构(2-3 层深),识别并优先阅读关键清单/配置文件(如 package.json、Cargo.toml、go.mod、pyproject.toml、pom.xml、build.gradle、Gemfile、.csproj、Podfile、Package.swift 等包清单;Makefile、Dockerfile、docker-compose.yml、.github/workflows/、Jenkinsfile、turbo.json、nx.json、lerna.json、fastlane/Fastfile 等构建/CI 配置;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 入口、Android 的 activity/fragment 入口、iOS 的视图控制器层级)。端到端追踪最多 5 条关键路径(如 API 请求从路由→控制器→服务→数据层→响应,UI 交互从用户事件→状态管理→渲染,后台任务生命周期);若存在更多流程,则记录并引用文件供读者自行追踪。映射内部模块/包之间的依赖图。识别架构模式(微服务、单体、事件驱动、六边形/整洁架构、MVC、CQRS 等)。检查数据层(数据库模式/迁移、ORM 使用、数据模型、缓存策略)。检查 API 面(REST、GraphQL、gRPC、WebSocket、IPC 或 SDK 接口定义),记录认证模式、协议缓冲区或 API 契约。
阶段 3:质量与模式评估——评估工程实践与代码质量。测试(测试目录结构、所用框架、测试模式如单元/集成/端到端、覆盖率配置、fixture/mock 策略)。错误处理(错误如何传播、是否有集中式错误处理、日志策略)。类型安全与校验(类型安全严格程度,如编译器标志、严格模式、lint 规则;运行时校验,如模式库、契约强制;空安全;输入/输出模式强制)。安全态势(认证/授权模式、密钥管理、输入净化、依赖漏洞——若存在锁文件)。代码模式(命名约定、模块组织、抽象层级、代码重复的一致性)。
阶段 4:基础设施与运维——理解软件如何构建、部署和运维。构建系统(构建工具、打包、编译步骤、单体仓库任务编排)。CI/CD 流水线(检查工作流文件中的测试、lint、构建、部署阶段)。部署模型(容器、无服务器、PaaS、静态托管、应用商店分发、嵌入式/固件交付;若存在基础设施即代码如 Terraform、Pulumi、CDK)。可观测性(日志、指标、追踪、监控、告警配置)。环境管理(开发、预发、生产环境如何区分)。
阶段 5:综合与文档生成——将发现汇编为输出文档。使用 references/output-template.md 中的输出模板确定文档结构,将最终分析写入上述输出路径。
使用方式
用户提供待分析代码库的根目录路径即可触发。技能按阶段 1 至 5 顺序执行,先读后写,完成阶段 1-4 后才生成文档。文档按章节增量写入,而非一次性写完整份文档。
执行规则
- 先读后写:完成阶段 1-4 前不生成文档。
- 引用具体文件:每项论断都应引用实际文件路径(如 src/api/routes.ts),不做无证据的泛泛观察。
- 对未知内容如实说明:若无法确定某项内容(如编译/压缩后的部分,或无法访问的服务),明确说明。
- 优先深度而非广度:对任何非平凡代码库,聚焦入口点、核心业务逻辑和架构边界;跳过生成代码、第三方依赖和样板代码。
- 使用 ASCII 图示意架构与流程,保持简单可读。
- 按比例分配精力:约 60% 用于阶段 2-3(架构与质量),20% 用于阶段 1(侦察),20% 用于阶段 4(基础设施)。
- 按章节增量写入输出文件。
- 文件大小启发式:在大目录中决定阅读内容时,优先级为入口点 > 配置 > 核心领域逻辑 > 工具 > 测试 > 生成代码。
- 只读分析:不修改、创建或删除目标代码库中的任何文件,唯一写入的文件是输出分析文档。
- 大型代码库启发式:对单体仓库或超过 500 个文件的代码库,聚焦最重要的 2-3 个模块/服务,而非尝试完整覆盖,并在执行摘要中注明范围限制。
适用场景
适用于需要快速理解陌生代码库、为项目生成技术概览文档、评估代码库架构与工程实践、梳理模块依赖与核心流程等场景。
限制
该技能为只读分析,不修改目标代码库。对大型代码库(超过 500 文件)仅聚焦最重要的 2-3 个模块,存在范围限制。无法确定的内容会明确标注为未知。具体收费、价格、平台支持等信息暂未提供。