关于 codebase-conventions
面向开发任务的通用规范技能,为代码组织、命名、导入、项目命令和注释提供默认规则;若项目已有明确惯例,则遵循项目现状。
主要功能
- 01按功能使用范围就近放置
- 02共享基础设施放入全局目录
- 03文件用 kebab-case,组件用 PascalCase
- 04项目命令使用 pnpm
- 05提供简洁注释指引
适用场景
- 01决定新模块的存放位置
- 02为文件和 React 组件命名
- 03选择导入方式和包管理命令
- 04判断何时需要代码注释
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ilamanov/ skills --skill codebase-conventions安装后在 Claude Code 中输入/codebase-conventions确认已加载。
详细介绍
代码库约定
适用于一般情况的代码编写与组织约定。请阅读以下所有约定。如果某条约定与你即将进行的工作相关,就遵照执行。 这些是用户项目的默认约定;如果某个项目显然已遵循不同的约定,则应与项目保持一致,并说明原因。
何时参考此技能
在以下情况下:
- 创建新文件,或决定新模块(组件、钩子、工具函数、服务端操作、类型等)的存放位置
- 为文件、组件或导出项命名
- 编写导入语句
- 运行项目命令(安装、构建、测试、脚本)
- 添加注释
约定
文件放置与就近组织
将每个功能/路由文件夹视为独立单元——几乎就像它是自己的小型仓库。功能代码离使用它的位置越近,就越容易进行试验、理解,最终也更容易迁移或删除。默认就近组织;只有在使用范围确实很广时,才提升到全局文件夹。
根据使用该代码的功能数量决定存放位置:
- 仅由单个功能/路由使用 → 将其放在该功能自己的文件夹内(例如功能中的本地
components/、hooks/、actions/或lib/子文件夹),紧邻使用它的代码。不要将其提升到全局文件夹。 - 由少数几个同级功能共享 → 将其提升到这些使用方共享的最近共同祖先文件夹,而不是一路提升到顶层全局文件夹。找到包含所有用法的最低层文件夹,并将其放在那里。
- 真正全局——由许多功能使用 → 放在根目录下的共享文件夹(例如
components/、lib/、hooks/、actions/,或项目中相应的目录)是合适的。
其他指导:
- 设计系统/UI 基础组件(共享组件库,例如
components/ui/文件夹)无论有多少功能使用,都应留在全局位置。 - 第三方服务的初始化/配置客户端(数据库客户端、邮件、向量存储、队列、分析等)应放在全局共享文件夹中——它们属于横切基础设施,而不是功能代码。
- 功能组件留在其所在位置是正确的,即使功能外部的代码会导入它。外部导入本身并不足以成为将其提升到全局文件夹的理由——只有在多个功能广泛使用时才应提升。只有当它确实成为共享代码时才提升。
工具与导入
- 所有项目命令(安装、运行脚本、添加/移除依赖)都使用
pnpm。除非项目显然已配置为使用npm/yarn,否则不要使用它们。 - 对于非相对导入,使用项目的路径别名(通常为
@/),而不是冗长的../../../路径。遵循项目现有的别名配置。
命名
- 文件使用
kebab-case。 - React 组件使用
PascalCase。 - 仅使用命名导出——避免默认导出(框架要求时除外,例如路由/页面入口文件)。
注释
- 对涉及不明显的假设、特定于产品的逻辑、特定于代码仓库的机制,或任何非行业标准做法的代码,在旁边添加简短的行内注释。一句话即可。
- 不要添加只是复述代码已有明确信息的注释。如果有能力的读者仅凭代码就能理解,就不需要注释。
后续约定
此技能会随时间扩展。新增约定应添加到上方的约定部分,并表述为 Agent 能够机械执行的规则。
评论
支持 Markdown