3132 字
16 分钟
ClaudeCode项目规范
开发规范(Development Guidelines)
测试协议(Testing Protocol)
- 实现与测试分离
- Claude 负责功能实现,用户负责测试
- 用户会提供测试结果与错误信息
- Claude 仅在用户报告问题时介入
- 不要自动启动测试服务器或执行测试命令
库与文档规范(Library Documentation)
-
始终先查阅官方文档:在使用任何库或包前,必须通过 Context7 获取最新版文档
-
文档优先级:官方文档优先于假设或过时知识
-
推荐工作流程:
- 确定所需库或包
- 使用 Context7 获取最新文档
- 查阅 API 与最佳实践
- 按照文档规范进行实现
语言与交流(Language and Communication)
- 整个开发过程使用中文:所有回复、注释与讨论均应使用中文
- 代码注释:统一使用中文,保持一致性
- 变量/函数命名:保持英文,遵循标准命名规范
- 技术文档:默认使用中文编写,除非另有说明
CHANGELOG 管理(CHANGELOG Management)
-
每个功能完成后都要创建摘要:每个新功能 / 需求 / 优化都必须在 CHANGELOG 中记录
-
按日期组织:若现有 CHANGELOG 未按日期排序,应重组为按日期格式
-
按时间顺序排列:后续的条目必须依时间顺序添加
-
条目格式示例:
## [YYYY-MM-DD]### 新增 (Added)- 功能描述### 修改 (Changed)- 修改描述### 修复 (Fixed)- 修复描述### 优化 (Optimized)- 优化描述 -
及时更新:完成任务后立即更新 CHANGELOG,不要集中补写
依赖管理(Dependency Management)
- 绝对不要自动执行包管理命令(例如
pnpm install/pnpm add) - 当需要新依赖时,应提供一份明确的依赖清单及对应命令
- 在得到用户确认前不要继续实现
- 用户会手动添加依赖并在完成后通知
代码复用性(Code Reusability)
- 当实现可跨项目复用的功能时,应将其设计为独立模块
- 将通用逻辑提取到单独且文档齐全的模块中
前端组件开发(Frontend Component Development)
- 绝对不要手动直接创建 shadcn/ui 组件
- 当需要使用 shadcn/ui 组件时,先提供所需组件的清单
- 等待用户通过 shadcn CLI 添加组件后再进行实现
- 优先使用
@/shared/ui/下已有的共享组件 - 遵循既定的路径别名:
@/widgets、@/shared/ui、@/shared/lib等
前端组件组织(Frontend Component Organization)
-
单文件单组件原则:每个组件一个文件,且单个组件文件最多 300 行
-
复杂组件结构处理方式:
-
若为简单组合组件(子组件少),可采用单文件方式(如
tab.tsx) -
若为复杂组合组件(子组件多),应采用文件夹组织形式并通过
index.ts导出:tab/├── index.ts # 导出所有组件├── tab.tsx # 主组件 Tab├── tab-content.tsx # 子组件 Tab.Content├── tab-controls.tsx # 子组件 Tab.Controls├── context.ts # Context 与 useXxx hooks(如需要)└── types.ts # 类型定义(如需要)
-
-
基于 Context 的组件: 建立组件文件夹,包含以下文件:
context.ts: 定义 Context 及其消费 hookstypes.ts: 定义组件与子组件类型- 各独立组件文件
index.ts: 统一导出入口
NestJS模块复用性(NestJS Module Reusability)
- 遵循 NestJS 的最佳实践来创建可复用模块
- 示例:配置管理模块、日志模块、认证模块应保持与具体项目无关
重要执行提醒(important-instruction-reminders)
- 只做被要求的事,不多也不少
- 除非必要,否则不要创建新文件
- 优先编辑已有文件,而非新建文件
- *绝对不要主动创建文档文件(如 .md 或 README)
- 仅在用户明确要求时才可创建文档文件
以下为Markdown格式项目开发规范(可以直接复制到Claude.md中)
文件头部内容
## 项目概览本项目是xxxxx,详细信息请参考:@README.md
## 技术规范- **编码规范**: @./docs/coding-style.md- **API 文档**: @./docs/api-reference.md- **可用脚本**: 请参考 @package.json 中的 "scripts" 部分。通用基础规范
## 开发规范(Development Guidelines)
### 测试协议(Testing Protocol)
* **实现与测试分离*** Claude 负责功能实现,用户负责测试* 用户会提供测试结果与错误信息* Claude 仅在用户报告问题时介入* **不要自动启动测试服务器或执行测试命令**
### 库与文档规范(Library Documentation)
* **始终先查阅官方文档**:在使用任何库或包前,必须通过 **Context7** 获取最新版文档* **文档优先级**:官方文档优先于假设或过时知识* **推荐工作流程**:
1. 确定所需库或包 2. 使用 Context7 获取最新文档 3. 查阅 API 与最佳实践 4. 按照文档规范进行实现
### 语言与交流(Language and Communication)
* **整个开发过程使用中文**:所有回复、注释与讨论均应使用中文* **代码注释**:统一使用中文,保持一致性* **变量/函数命名**:保持英文,遵循标准命名规范* **技术文档**:默认使用中文编写,除非另有说明
### CHANGELOG 管理(CHANGELOG Management)
* **每个功能完成后都要创建摘要**:每个新功能 / 需求 / 优化都必须在 CHANGELOG 中记录* **按日期组织**:若现有 CHANGELOG 未按日期排序,应重组为按日期格式* **按时间顺序排列**:后续的条目必须依时间顺序添加* **条目格式示例**:
```markdown ## [YYYY-MM-DD]
### 新增 (Added) - 功能描述
### 修改 (Changed) - 修改描述
### 修复 (Fixed) - 修复描述
### 优化 (Optimized) - 优化描述 ```* **及时更新**:完成任务后立即更新 CHANGELOG,不要集中补写
## 重要执行提醒(important-instruction-reminders)
* **只做被要求的事,不多也不少*** **除非必要,否则不要创建新文件*** **优先编辑已有文件,而非新建文件*** **绝对不要主动创建文档文件(如 *.md 或 README)*** **仅在用户明确要求时才可创建文档文件**前端补充规范
### 依赖管理(Dependency Management)
* **绝对不要自动执行包管理命令**(例如 `pnpm install` / `pnpm add`)* 当需要新依赖时,应提供一份**明确的依赖清单及对应命令*** **在得到用户确认前不要继续实现*** 用户会手动添加依赖并在完成后通知
### 代码复用性(Code Reusability)
* 当实现可跨项目复用的功能时,应将其设计为**独立模块*** 将通用逻辑提取到**单独且文档齐全的模块**中
### 前端组件开发(Frontend Component Development)
* **绝对不要手动直接创建 shadcn/ui 组件*** 当需要使用 shadcn/ui 组件时,先提供**所需组件的清单*** 等待用户通过 **shadcn CLI** 添加组件后再进行实现* 优先使用 `@/shared/ui/` 下已有的共享组件* 遵循既定的路径别名: `@/widgets`、`@/shared/ui`、`@/shared/lib` 等
### 前端组件组织(Frontend Component Organization)
* **单文件单组件原则**:每个组件一个文件,且单个组件文件最多 300 行* **复杂组件结构处理方式**:
* 若为简单组合组件(子组件少),可采用单文件方式(如 `tab.tsx`) * 若为复杂组合组件(子组件多),应采用文件夹组织形式并通过 `index.ts` 导出:
```text tab/ ├── index.ts # 导出所有组件 ├── tab.tsx # 主组件 Tab ├── tab-content.tsx # 子组件 Tab.Content ├── tab-controls.tsx # 子组件 Tab.Controls ├── context.ts # Context 与 useXxx hooks(如需要) └── types.ts # 类型定义(如需要) ```* **基于 Context 的组件**: 建立组件文件夹,包含以下文件:
* `context.ts`: 定义 Context 及其消费 hooks * `types.ts`: 定义组件与子组件类型 * 各独立组件文件 * `index.ts`: 统一导出入口
### NestJS模块复用性(NestJS Module Reusability)
* 遵循 **NestJS** 的最佳实践来创建可复用模块* 示例:配置管理模块、日志模块、认证模块应保持与具体项目无关2025.12.03更新
## AI 开发规则
### 新功能开发流程
**重要**: 在实现任何新需求时,必须遵循以下流程:
1. **设计阶段** - 首先进行详细设计 - 创建设计文档,命名格式: `docs/feature-<需求名称>.md` - 文档必须包含以下内容: - **核心原理**: 功能的技术原理和设计思路 - **实现步骤**: 详细的实现步骤和顺序 - **文件变更清单**: - 需要修改的文件及修改内容 - 需要创建的文件及其用途 - 需要删除的文件及原因 - **核心实现代码**: 关键代码片段和实现逻辑 - **测试计划**: 如何验证功能是否正确实现 - **潜在风险**: 可能遇到的问题和解决方案
2. **审核阶段** - 等待用户确认 - 将设计文档提交给用户审核 - 根据用户反馈修改设计文档 - 只有在用户明确确认后才能进入实施阶段
3. **实施阶段** - 严格按照文档执行 - 严格按照设计文档中的步骤实施 - 每完成一个步骤,更新文档状态 - 遇到与设计不符的情况,先暂停并咨询用户
4. **文档查询规则** - 在实现过程中涉及到需要调用第三方库时 - **必须先使用 Context7 查询对应库的官方文档** - 参考官方文档的最佳实践和推荐用法 - 避免使用过时或不推荐的 API
5. **完成阶段** - 更新项目文档 - **更新 CHANGELOG**: 将设计文档链接添加到 `CHANGELOG.md` 对应日期下 - **更新上下文文件**: 定期更新 `CLAUDE.md` 等上下文文件,防止进度丢失 - 记录重要的架构变更和技术决策
6. **测试规则** - **禁止 AI 自行运行项目或测试**: 所有功能完成后,由用户来运行和测试 - AI 只负责编写代码,用户负责验证和测试 - 用户会告知测试结果,AI 根据反馈进行调整 - 这条规则确保用户对项目运行有完全控制权
### 文档维护规则
#### 1. CHANGELOG 更新规范
每个需求实现完成后,必须在 `CHANGELOG.md` 文件中添加条目:
- **文件位置**: 项目根目录的 `CHANGELOG.md`- **更新位置**: 在文件顶部添加新的日期条目(保持倒序,最新的在最上面)- **条目格式**: ```markdown ## YYYY-MM-DD
### 新增功能
- **[功能名称](./docs/feature-功能名称.md)** - 功能描述 - 主要变更文件 - 影响范围
### 修复
- **[问题描述](./docs/fix-问题描述.md)** - 问题原因 - 解决方案 - 影响范围
### 优化
- **[优化项](./docs/improve-优化项.md)** - 优化内容 - 性能提升 - 影响范围 ```
#### 2. 上下文文件更新规范
在每个重要需求完成后,必须更新以下文件:
- **CLAUDE.md**: - 更新项目结构(如有新增目录或重要文件) - 更新核心功能说明(如有新增功能模块) - 更新最佳实践(如有新的开发规范) - 更新故障排除(如有新的常见问题)
- **README.md**: - 更新用户文档 - 更新使用说明 - 更新部署指南
- **docs/README.md**: - 更新设计文档索引 - 记录重要的技术决策
#### 3. 更新时机
- ✅ **必须更新**: 新增功能、重大重构、架构变更- ✅ **建议更新**: 性能优化、安全修复、依赖升级- ⚠️ **可选更新**: 小的 bug 修复、文案调整、样式优化
### 例外情况
如果用户明确说明某个需求**不需要设计,直接实现**,则可以跳过设计阶段,直接进入实施。
### 设计文档模板
以下是设计文档的标准模板格式:
````markdown# Feature: <功能名称>
## 需求描述[简要描述功能需求]
## 核心原理[技术原理和设计思路]
## 实现步骤1. [步骤1]2. [步骤2]...
## 文件变更清单
### 需要创建的文件- `path/to/file.ts` - [文件用途]
### 需要修改的文件- `path/to/file.ts` - [修改内容1] - [修改内容2]
### 需要删除的文件- `path/to/file.ts` - [删除原因]
## 核心实现代码
### 文件名: `path/to/file.ts````typescript// 关键代码实现```
## 依赖项- [需要安装的包]- [需要查询文档的库]
## 测试计划1. [测试场景1]2. [测试场景2]
## 潜在风险- [风险1及解决方案]- [风险2及解决方案]
## 实施进度- [ ] 步骤1- [ ] 步骤2...````