用途
本技能对一个代码库执行深度分析,生成(或重新生成)一份 STYLE_GUIDE.md 文件,其中每一条约定都附带完整的证据引用。
它适用于以下情况:/setup-ai 在项目初始化时生成的只是快速版风格指南,当你需要更详尽的版本——17 个章节、每条约定都有具体文件引用、不一致之处被标注出来交由人工决策时,使用本技能。可在 /setup-ai 之后运行以获得更深度的结果,或在代码约定已经漂移时独立运行。
核心规则
- 只记录在代码中实际观察到的模式,绝不臆造或假设约定。
- 当代码库中模式不一致时,记录该不一致,并询问用户希望以哪条约定作为标准。
- 引用具体文件作为证据,例如:“基于 src/services/UserService.ts、src/services/OrderService.ts……”。
- 如果已存在 STYLE_GUIDE.md,先阅读它,进行改进与整合,而不是直接覆盖。
分析流程
第 1 步:检测技术栈
搜索依赖与配置文件,据以识别语言、框架与版本、关键库、构建工具、测试框架、代码检查/格式化配置:
- package.json——Node.js / JavaScript / TypeScript
- tsconfig.json——TypeScript
- Gemfile——Ruby
- requirements.txt、pyproject.toml、Pipfile——Python
- go.mod——Go
- Cargo.toml——Rust
- composer.json——PHP
- pom.xml、build.gradle——Java / Kotlin
- .csproj、.sln——C# / .NET
第 2 步:读取现有配置
检查定义规则的现有风格/约定文档,这些属于权威来源,应直接从中提取规则:
- .eslintrc、.eslintrc.json、.eslintrc.js
- .prettierrc、.prettierrc.json
- .rubocop.yml
- .editorconfig
- biome.json、biome.jsonc
- ruff.toml、pyproject.toml(ruff/black 段落)
- CLAUDE.md、AGENTS.md、.cursorrules
第 3 步:抽样代码以提取模式
阅读 10-15 个代表性文件,进行策略性抽样而非通读全部:
- 3-4 个“核心”文件(模型、服务、控制器、组件)
- 2-3 个测试文件
- 1-2 个配置/启动文件
- 1-2 个工具/辅助文件
- 1 个入口或路由文件
从每个文件中提取以下模式:
- 命名:camelCase、snake_case、PascalCase、kebab-case——用于变量、函数、类、文件
- 文件命名:.service.ts、_controller.rb、*.spec.js 等
- 导入:顺序(标准库 → 外部 → 内部)、风格(具名 vs 默认)、路径别名
- 导出:具名导出、默认导出、module.exports、桶文件(barrel files)
- 错误处理:try/catch、Result 类型、错误中间件、rescue 块
- 注释:风格、密度、JSDoc/RDoc/文档字符串
- 类型:TypeScript 严格模式、JSDoc 注解、Python 类型提示、无类型
- 函数:箭头函数 vs 声明式、参数模式、返回风格、async/await
第 4 步:识别测试模式
从测试文件中分析:
- 框架(Jest、Vitest、RSpec、pytest、Go testing 等)
- 文件命名约定(_test.rb、.spec.ts、.test.js、test_.py)
- 测试结构(describe/it、test()、基于类、表驱动)
- 夹具/工厂模式
- 模拟方式(jest.mock、factory_bot、unittest.mock)
- 断言风格(expect().toBe、assert、should)
- 测试文件与源码同目录还是分离目录
第 5 步:检查 Git 历史(如可用)
- 运行 git log --oneline -20 查看提交信息格式(规范提交?工单引用?自由格式?)
- 运行 git branch -a | head -20 查看分支命名约定(feature/、fix/ 等)
生成 STYLE_GUIDE.md
写入项目根目录,使用如下结构:
- 标题:Coding Style Guide,并附自动生成说明(日期、来自代码库分析、请审阅调整,不一致处已选用最常见的约定)
- Language & Formatting(缩进、行宽、分号、引号、尾逗号,附带证据文件)
- Naming Conventions(文件与目录、变量与函数、类/类型/接口、常量、数据库命名)
- Code Organization(文件内结构顺序、导入顺序与路径别名)
- Function Patterns(箭头函数 vs 声明式、参数解构、返回风格、async/await)
- Error Handling(标准错误处理模式与真实代码示例)
- Testing Standards(文件命名、测试结构、测试范围、夹具与模拟)
- API Patterns(端点命名、请求校验、响应格式、错误响应格式、状态码约定)
- Database Patterns(迁移风格、模型/模式定义、查询约定、事务)
- Component Patterns(如为前端:组件文件结构、Props 模式、状态管理、样式方案)
- Git Conventions(提交信息格式、分支命名、PR 描述要求)
- Anti-Patterns — Do NOT Replicate(不应在新代码中复制的模式、正在淘汰的遗留做法、正在解决的不一致)
生成之后
- 向用户呈现摘要:发现了什么、哪些看起来稳固、哪些存在歧义。
- 突出需要人工决策的不一致之处。
- 告知用户:“审阅此文件。我从你的代码中提取了这些模式,但你的团队了解真实意图。请修改任何错误或属于期望而非现状的内容。”
- 如果 AGENTS.md 尚不存在,建议:“运行 /setup-ai 生成 AGENTS.md 和 CLAUDE.md,之后它会自动引用 STYLE_GUIDE.md。”
- 建议:“在提交 PR 前运行 /review-style-guide,自动依据本风格指南检查新代码。”
限制
具体支持的语言列表、检测精度的边界、与其他技能的依赖关系等细节,资料中暂未提供。该技能只依据代码中可观察到的模式生成文档,无法判断团队的真实意图或约定是否恰当。