Skip to main content

Caret 规则

Caret 规则允许您为 Caret 提供系统级指导。将它们视为为您的项目或全局每次对话持续包含上下文和首选项的方式。

创建规则

您可以通过单击规则选项卡中的 + 按钮来创建规则。这将在您的 IDE 中打开一个新文件,您可以使用它来编写规则。

创建规则

保存文件后:

  • 您的规则将存储在项目的 .clinerules/ 目录中(如果是工作空间规则)
  • 或者在全局规则目录中(如果是全局规则):

全局规则目录位置

全局规则目录的位置取决于您的操作系统:

操作系统默认位置注释
WindowsDocuments\Caret\Rules使用系统文档文件夹
macOS~/Documents/Caret/Rules使用用户文档文件夹
Linux/WSL~/Documents/Caret/Rules在某些系统上可能回退到 ~/Caret/Rules

Linux/WSL 用户注意事项:如果您在 ~/Documents/Caret/Rules 中找不到全局规则,请检查 ~/Caret/Rules,因为位置可能因您的系统配置和文档目录是否存在而有所不同。

您还可以通过在聊天中使用 /newrule 斜杠命令 让 Caret 为您创建规则。

# 项目指南

## 文档要求

- 修改功能时更新 /docs 中的相关文档
- 保持 README.md 与新功能同步
- 维护 CHANGELOG.md 中的更改日志条目

## 架构决策记录

为以下情况在 /docs/adr 中创建 ADR:

- 主要依赖项更改
- 架构模式更改
- 新集成模式
- 数据库架构更改
遵循 /docs/adr/template.md 中的模板

## 代码风格和模式

- 使用 OpenAPI Generator 生成 API 客户端
- 使用 TypeScript axios 模板
- 将生成的代码放在 /src/generated 中
- 优先使用组合而不是继承
- 使用存储库模式进行数据访问
- 遵循 /src/utils/errors.ts 中的错误处理模式

## 测试标准

- 业务逻辑需要单元测试
- API 端点需要集成测试
- 关键用户流程需要端到端测试

主要优势

  1. 版本控制.clinerules 文件成为项目源代码的一部分
  2. 团队一致性:确保所有团队成员行为一致
  3. 项目特定:针对每个项目需求量身定制的规则和标准
  4. 制度知识:在代码中维护项目标准和实践

.clinerules 文件放在项目的根目录中:

your-project/
├── .clinerules
├── src/
├── docs/
└── ...

另一方面,Caret 的系统提示是用户不可编辑的(您可以在这里找到它)。有关提示工程最佳实践的更广泛了解,请查看这个资源

编写有效 Caret 规则的技巧

  • 简洁明了:使用简单语言,避免歧义。
  • 专注于期望结果:描述您想要的结果,而不是具体步骤。
  • 测试和迭代:实验找到最适合您工作流程的方法。

.clinerules/ 文件夹系统

your-project/
├── .clinerules/ # 包含活动规则的文件夹
│ ├── 01-coding.md # 核心编码标准
│ ├── 02-documentation.md # 文档要求
│ └── current-sprint.md # 当前工作特定规则
├── src/
└── ...

Caret 自动处理 .clinerules/ 目录内的所有 Markdown 文件,将它们组合成统一的规则集。数字前缀(可选)有助于按逻辑顺序组织文件。

使用规则库

对于具有多种上下文或团队的项目,维护一个规则库目录:

your-project/
├── .clinerules/ # 活动规则 - 自动应用
│ ├── 01-coding.md
│ └── client-a.md

├── clinerules-bank/ # 可用但非活动规则的存储库
│ ├── clients/ # 客户特定规则集
│ │ ├── client-a.md
│ │ └── client-b.md
│ ├── frameworks/ # 框架特定规则
│ │ ├── react.md
│ │ └── vue.md
│ └── project-types/ # 项目类型标准
│ ├── api-service.md
│ └── frontend-app.md
└── ...

文件夹方法的好处

  1. 上下文激活:仅将相关规则从库复制到活动文件夹
  2. 更容易维护:更新单个规则文件而不影响其他文件
  3. 团队灵活性:不同团队成员可以激活特定于其当前任务的规则
  4. 减少噪音:保持活动规则集专注和相关

使用示例

在客户项目之间切换:

# 切换到客户 B 项目
rm .clinerules/client-a.md
cp clinerules-bank/clients/client-b.md .clinerules/

适应不同的技术栈:

# 前端 React 项目
cp clinerules-bank/frameworks/react.md .clinerules/

实施技巧

  • 保持各个规则文件专注于特定关注点
  • 使用明确指示规则目的的描述性文件名
  • 考虑 git 忽略活动的 .clinerules/ 文件夹,同时跟踪 clinerules-bank/
  • 创建团队脚本以快速激活常见规则组合

文件夹系统将您的 Caret 规则从静态文档转变为适应团队不断变化的上下文和需求的动态知识系统。

使用可切换弹出窗口管理规则

为了让管理单个 .clinerules 文件和文件夹系统变得更加容易,Caret v3.13 引入了一个专门的弹出窗口用户界面,可直接从聊天界面访问。

方便地位于聊天输入字段下方,此弹出窗口允许您:

  • 即时查看活动规则: 查看当前激活的全局规则(来自用户设置)和工作空间规则(.clinerules 文件或文件夹内容)。
  • 快速切换规则: 只需单击即可启用或禁用工作空间 .clinerules/ 文件夹内的特定规则文件。这非常适合仅在需要时激活上下文特定规则(如 react-rules.mdmemory-bank.md)。
  • 轻松添加/管理规则: 如果不存在工作空间 .clinerules 文件或文件夹,快速创建,或向现有文件夹添加新规则文件。

此用户界面显著简化了在对话期间切换上下文和管理不同指令集,而无需手动编辑文件或配置。

Caret Logo