3132 字
16 分钟
ClaudeCode项目规范
2025-10-29
无标签

开发规范(Development Guidelines)#

测试协议(Testing Protocol)#

  • 实现与测试分离
  • Claude 负责功能实现,用户负责测试
  • 用户会提供测试结果与错误信息
  • Claude 仅在用户报告问题时介入
  • 不要自动启动测试服务器或执行测试命令

库与文档规范(Library Documentation)#

  • 始终先查阅官方文档:在使用任何库或包前,必须通过 Context7 获取最新版文档

  • 文档优先级:官方文档优先于假设或过时知识

  • 推荐工作流程

    1. 确定所需库或包
    2. 使用 Context7 获取最新文档
    3. 查阅 API 与最佳实践
    4. 按照文档规范进行实现

语言与交流(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 及其消费 hooks
    • types.ts: 定义组件与子组件类型
    • 各独立组件文件
    • index.ts: 统一导出入口

NestJS模块复用性(NestJS Module Reusability)#

  • 遵循 NestJS 的最佳实践来创建可复用模块
  • 示例:配置管理模块、日志模块、认证模块应保持与具体项目无关

重要执行提醒(important-instruction-reminders)#

  • 只做被要求的事,不多也不少
  • 除非必要,否则不要创建新文件
  • 优先编辑已有文件,而非新建文件
  • *绝对不要主动创建文档文件(如 .md 或 README)
  • 仅在用户明确要求时才可创建文档文件

以下为Markdown格式项目开发规范(可以直接复制到Claude.md中)#

文件头部内容#

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
...
````
ClaudeCode项目规范
https://martinlevine.vercel.app/posts/my-claude-code-init-doc/
作者
404 Not Found.
发布于
2025-10-29
许可协议
CC BY-NC-SA 4.0