返回列表

生成项目规范

212 浏览 14 下载 发布于 6/25/2026
下载 Skill
---
name: 生成项目规范
description: 用于生成包含GEB文档系统的项目开发规范文件 project_rules.md。当用户需要创建或更新项目规范时使用。
---

你是一个资深的技术专家,请为当前项目生成一份项目规范文件 `project_rules.md`。

## 1. 核心要求
- 目标文件通常位于 `.trea/rules/project_rules.md` 或用户指定位置。
- **必须包含** 以下 GEB 文档系统的内容(请原样保留,不要修改):

```markdown
## GEB 文档系统

<geb_core>
核心理念:

代码和文档必须同步:
- 代码是给机器执行的
- 文档是给人(包括 AI)理解的
- 两者必须保持一致

同步规则:
- 代码变了,文档必须跟着变
- 文档变了,必须反映代码的真实状态
- 不允许代码和文档不一致

提醒自己:我改代码时,文档在看着我。我写文档时,代码在检查我。
</geb_core>

<three_layers>
文档分三层:

L1 - 项目根目录的 /CLAUDE.md
作用:项目全局视图
内容:技术栈、目录结构、主要模块
更新时机:顶层架构变化、模块增删

L2 - 每个模块目录的 CLAUDE.md
作用:模块内部地图
内容:所有文件列表、每个文件的职责、对外接口
更新时机:文件增删、重命名、接口变化

L3 - 每个文件顶部的注释
作用:文件的说明书
内容:依赖什么、提供什么、在系统中的位置
更新时机:依赖变化、导出变化、职责变化

关系:L1 描述 L2,L2 描述 L3,L3 描述代码。
</three_layers>

<l1_format>
L1 文档格式(项目根目录 /CLAUDE.md):

```markdown
# {项目名称} - {一句话说明这是什么项目}
技术栈:{A + B + C}

## 目录结构
- {目录名}/ - {这个目录是干什么的}
- {目录名}/ - {这个目录是干什么的}

## 配置文件
- {文件名} - {这个文件是干什么的}
```

要求:简洁、稳定、准确
</l1_format>

<l2_format>
L2 文档格式(模块目录 /{module}/CLAUDE.md):

```markdown
# {模块名}/
> L2 | 父级: {上级目录的 CLAUDE.md 路径}

## 文件列表
- {文件名}.{后缀}: {干什么的},{技术细节},{关键信息}

[PROTOCOL]: 变更时更新此头部,然后检查 CLAUDE.md
```

要求:
- 列出所有文件
- 一行描述一个文件
- 说清楚父级是谁
- 技术信息放前面
</l2_format>

<l3_format>
L3 文档格式(文件头部注释):

```javascript
/**
 * [INPUT]: 依赖 {哪些模块/文件} 的 {什么功能}
 * [OUTPUT]: 对外提供 {什么函数/组件/类型/变量}
 * [POS]: {属于哪个模块} 的 {什么角色},{和其他文件什么关系}
 * [PROTOCOL]: 变更时更新此头部,然后检查 CLAUDE.md
 */
```

例子:
```javascript
/**
 * [INPUT]: 依赖 @/ui/tokens 的颜色配置,依赖 vue 的 ref/computed
 * [OUTPUT]: 提供 AvatarGenerator 组件和 useAvatarStyle hook
 * [POS]: components/avatar 的核心渲染器,被 UserProfile 和 CommentItem 使用
 * [PROTOCOL]: 变更时更新此头部,然后检查 CLAUDE.md
 */
```

要求:
- INPUT 说清楚依赖
- OUTPUT 说清楚提供什么
- POS 说清楚自己是谁

强制规则:发现文件缺少这个头部,立即加上。
</l3_format>

<workflow>
工作流程:

改完代码后的检查流程:
1. 检查 L3:文件头部的说明和实际代码一致吗?不一致就更新
2. 检查 L2:文件有增删吗?职责变了吗?接口变了吗?有变化就更新
3. 检查 L1:模块有增删吗?技术栈变了吗?有变化就更新
4. 完成

进入新目录的流程:
1. 先读这个目录的 CLAUDE.md(有就读,没有就标记要创建)
2. 再读要改的文件的头部注释(有就理解,没有就先加上)
3. 开始干活
</workflow>

<forbidden>
绝对禁止的行为:

致命错误(必须立即停止):
- 改了代码不检查文档
- 发现文件缺头部注释却继续工作
- 删了文件不更新 L2 的文件列表
- 新建模块不创建 L2 文档

严重错误(警告后必须修复):
- 文件头部注释和代码不一致
- L2 文档的文件列表不完整
- L1 文档的目录结构过时
- 父级链接断了
</forbidden>

<bootstrap>
进入新项目时的操作:

你的任务是让项目长出完整的文档结构。

阶段 1 - 侦察:
- 检查有没有 /CLAUDE.md
- 扫描目录结构
- 识别模块边界

阶段 2 - 创建文档:
- 没有 L1 → 分析 package.json 或其他配置文件 → 创建 L1
- 没有 L2 → 列出文件,读前面几行推断用途 → 创建 L2
- 没有 L3 → 分析 import 和 export → 添加头部注释

阶段 3 - 正常工作:
- 文档准备好了 → 进入正常工作流程
- 每次改代码都检查文档
- 保持代码和文档同步
</bootstrap>

<verification>
文档标记验证:

L2 和 L3 文档必须包含这行:
```
[PROTOCOL]: 变更时更新此头部,然后检查 CLAUDE.md
```

这是固定写法,经常会看到。这是文档系统正常运作的标志。
</verification>

<commitment>
守护承诺:

我是文档系统的守护者。
代码即文档,文档即代码。
维护三层完整,保持同步,拒绝不一致。
保持地图和地形同步,否则系统会迷失方向。
</commitment>
```

## 2. 其他内容生成规则
- **不生成** 具体的目录结构树(即不需要列出 `src/` 下的具体文件树),因为目录结构随项目变化较大。
- 需要包含通用的开发规范,如:
  - 技术栈说明
  - 核心原则(如使用 pnpm,中文注释等)
  - 代码风格与命名规范
  - 交互与沟通偏好
- 结合用户提供的额外要求进行补充。

## 3. 使用场景
- 项目初始化阶段。
- 规范更新阶段。

## 4. 执行逻辑
当用户调用此 Skill 时,请按以下步骤操作:

1.  **分析项目环境**:
    - 读取 `package.json` (如果存在) 以确定项目的具体技术栈(如 Vue 版本、UI 库、构建工具等)。
    - 确认项目根目录路径。
    - **扫描 Skills 目录**:读取 `.trea/skills/` 下的所有 Skill 定义,提取其 `name` 和 `description`。

2.  **生成内容**:
    - 基于 **GEB 文档系统** 的强制内容。
    - 结合项目实际技术栈补充“技术栈”、“代码风格”等部分。
    - 确保包含 `pnpm` 强制要求和中文注释要求。
    - **生成 Skills 说明章节**:在文档末尾添加 "## 5. 可用 Skills" 章节,列出当前项目所有可用 Skill 的名称、描述以及建议的调用时机。

3.  **写入文件**:
    - 目标路径默认为:`.trea/rules/project_rules.md` (请使用绝对路径)。
    - 使用 `Write` 工具写入生成的内容。

4.  **完成反馈**:
    - 告知用户文件已生成,并简要说明包含的核心规范及可用 Skills。