自定义指令/规则/工作流
自定义指令
自定义指令允许你个性化 CodeRider 的行为,提供特定的指导来塑造响应、编码风格和决策过程。
什么是自定义指令?
自定义指令定义了扩展的特定行为、偏好和约束,超出了 CodeRider 的基本角色定义。示例包括编码风格、文档标准、测试要求和工作流指南。
自定义指令 VS 规则
自定义指令是 IDE 范围的,适用于所有工作区,无论你在处理哪个项目,都会保持你的偏好。与指令不同,自定义规则 是项目特定的,允许你设置基于工作区的规则集。
设置自定义指令
如何设置
- 打开提示标签: 点击 CodeRider 模式编辑按钮
- 找到部分: 下滑找到 "所有模式的自定义指令" 部分
- 输入指令: 在文本区域输入你的指令
- 保存更改: 点击 "完成" 保存你的更改
模式特定指令
模式特定指令可以使用提示标签设置
- 打开标签: 点击 CodeRider 模式编辑按钮
- 选择模式: 在模式标题下,点击你想要自定义的模式按钮
- 输入指令: 在 "模式特定自定义指令(可选)" 下的文本区域输入你的指令
- 保存更改: 点击 "完成" 保存你的更改
全局模式规则
如果模式本身是全局的(非工作区特定),你为其设置的任何自定义指令也将全局适用于所有工作区的该模式。
自定义规则
自定义规则提供了一种强大的方式来定义项目特定的行为和约束,以确保 CodeRider AI 智能体的一致性。通过自定义规则,你可以确保格式一致、限制对敏感文件的访问、强制执行编码标准,并根据你的项目需求自定义 AI 的行为。
概述
自定义规则允许您创建文本指令,所有 AI 模型在与您的项目交互时都将遵循这些指令。这些规则充当护栏和约定,在与您的代码库的所有交互中始终得到遵守。规则可以通过文件系统和内置 UI 界面进行管理。
规则格式
自定义规则可以用纯文本编写,但建议使用 Markdown 格式,以便更好地组织和让 AI 模型理解。Markdown 的结构化特性有助于模型更有效地解析和理解你的规则。
- 使用 Markdown 标题(#, ## 等)定义规则类别
- 使用列表(-, *)枚举特定项目或约束
- 使用代码块在需要时包含代码示例
规则类型
CodeRider 支持两种类型的自定义规则:
- 项目规则:仅适用于当前项目工作区
- 全局规则:适用于所有项目和工作区
UI 支持
内置规则管理 UI 仅适用于一般规则。模式特定规则必须通过文件系统进行管理。
规则位置
项目规则
自定义规则主要从 .coderider/rules/ 目录 加载。这是组织项目特定规则的推荐方法。每个规则通常放置在具有描述性名称的 Markdown 文件中:
text1project/ 2├── .coderider/ 3│ ├── rules/ 4│ │ ├── formatting.md 5│ │ ├── restricted_files.md 6│ │ └── naming_conventions.md 7├── src/ 8└── ...
全局规则
全局规则存储在您的主目录中,适用于所有项目:
text~/.coderider/ ├── rules/ │ ├── coding_standards.md │ ├── security_guidelines.md │ └── documentation_style.md
通过 UI 管理规则
CodeRider 提供了一个内置界面,用于管理您的自定义规则,而无需手动编辑 .coderider/rules/ 目录中的文件。要访问 UI,请单击 CodeRider 窗口右下角的“管理CodeRider规则和工作流”图标。
您可以访问规则管理 UI 来:
- 查看所有活动规则(项目和全局)
- 在不删除规则的情况下切换规则的开启/关闭状态
- 直接在界面中创建和编辑规则
- 按类别和优先级组织规则
规则加载顺序
通用规则(所有模式)
规则按以下优先级顺序加载:
- 存放在 ~/.coderider/rules/ 目录的全局规则
- 存放在 .coderider/rules/目录的项目规则
当全局规则和项目规则都存在时,它们将合并,存在冲突时项目规则优先于全局规则。
备注: 我们强烈建议将规则保留在 .coderider/rules/ 文件夹中,因为它提供了更好的组织,并且是未来版本的首选方法。基于文件夹的结构允许更细粒度的规则组织和更清晰的关注点分离。基于文件的旧方法为了向后兼容而保留,但可能会在未来的版本中发生变化。
模式特定规则
此外,系统支持模式特定的规则,这些规则会单独加载,并有自己的优先级顺序:
- 检查 .coderider/rules-${mode}/ 目录
目前,模式特定规则仅在项目级别受支持。 当通用规则和模式特定规则同时存在时,模式特定规则在最终输出中具有优先权。
创建自定义规则
使用 UI 界面
创建和管理规则的最简单方法是通过内置 UI:
- 从 CodeRider 面板访问规则管理界面
- 选择创建项目特定规则或全局规则
- 使用界面创建、编辑或切换规则
- 规则会自动保存并立即应用
使用文件系统
手动创建规则:
对于项目规则:
- 如果不存在,请创建 .coderider/rules/ 目录
- 在此目录中创建一个具有描述性名称的新 Markdown 文件
- 使用 Markdown 格式编写你的规则
- 保存文件
对于全局规则:
- 如果 ~/.coderider/rules/ 目录尚不存在,则创建它
- 在此目录中创建一个新的 Markdown 文件,并带有描述性名称
- 使用 Markdown 格式编写您的规则
- 保存文件
该规则将自动应用于你项目中所有未来的 CodeRider 交互。任何新更改都会立即生效。
规则示例
示例 1:表格格式化
text# 表格 打印表格时,始终在每列标题中添加感叹号
这个简单的规则指示 AI 在生成表格时在所有列标题中添加感叹号。
示例 2:限制文件访问
text1# 受限文件 2 3列表中包含敏感数据的文件,禁止读取 4 5- supersecrets.txt 6- credentials.json 7- .env
此规则防止 AI 读取或访问敏感文件,即使明确要求这样做。
使用场景
自定义规则可以应用于各种场景:
- 代码风格:强制执行一致的格式、命名约定和文档风格
- 安全控制:防止访问敏感文件或目录
- 项目结构:定义不同类型文件的创建位置
- 文档要求:指定文档格式和要求
- 测试模式:定义测试的结构方式
- API 使用:指定 API 的使用和文档方式
- 错误处理:定义错误处理约定
自定义规则示例
- "严格遵守代码风格指南 [你的项目特定代码风格指南]"
- "始终使用空格缩进,宽度为 4 个空格"
- "使用 camelCase 命名变量"
- "为所有新函数编写单元测试"
- "在提供代码之前解释你的推理"
- "专注于代码的可读性和可维护性"
- "优先使用社区中最常见的库"
- "当为网站添加新功能时,确保它们是响应式且可访问的"
最佳实践
- 具体明确:明确定义每个规则的范围和意图
- 使用类别:将相关规则组织在共同的标题下
- 分离关注点:为不同类型的规则使用不同的文件
- 使用示例:包含示例以说明预期行为
- 保持简单:规则应简洁易懂
- 定期更新:随着项目需求的变化,定期审查和更新规则
限制
- 规则由 AI 模型尽力应用
- 复杂规则可能需要多个示例才能清晰理解
- 项目规则仅适用于定义它们的项目
- 全局规则适用于所有项目
自定义工作流
Workflows 通过为 CodeRider 定义分步指令来自动化重复性任务。通过在聊天中键入 /[workflow-name.md] 来调用任何工作流。
创建工作流
工作流是存储在 .coderider/workflows/ 中的 markdown 文件:
- 全局工作流:~/.coderider/workflows/(在所有项目中可用)
- 项目工作流:[project]/.coderider/workflows/(项目特定)
基本设置
- 创建一个包含分步指令的 .md 文件
- 将其保存在您的工作流目录中
- 键入 /filename.md 执行
常见工作流模式
发布管理
- 收集自上次发布以来合并的 MR
- 从提交消息生成更新日志
- 更新版本号
- 创建发布分支和标签
- 部署到 staging 环境
项目设置
- 克隆仓库模板
- 安装依赖项(npm install、pip install -r requirements.txt)
- 配置环境文件
- 初始化数据库/服务
- 运行初始测试
代码审查准备
- 搜索 TODO 注释和 debug 语句
- 运行 linting 和格式化
- 执行测试套件
- 从最近的提交生成 MR 描述
示例:MR 提交工作流
让我们逐步创建一个用于提交拉取请求的工作流。此工作流处理从代码审查到部署通知的整个过程。 在您的 .coderiderkilo/workflows 目录中创建一个名为 submit-mr.md 的文件:
text1# 提交 MR 工作流 2 3您正在帮助提交合并请求。请按照以下步骤操作: 4 5## 步骤 61. 使用 `search_files` 检查是否有不应提交的 TODO 注释或 console.log 语句 72. 使用 `execute_command` 运行测试:`npm test` 或适当的测试命令 83. 如果测试通过,暂存并提交更改,附上描述性提交消息 94. 推送分支并创建 MR: 10 `git push origin <分支名称> -o merge_request.create` 115. 使用 `ask_followup_question` 从用户那里获取 MR 标题和描述 12 13## 所需参数 14如果未提供则询问: 15- 分支名称 16- 要分配的审阅者
现在您可以通过在聊天中键入 /submit-mr.md 来触发此工作流。CodeRider 将:
- 在提交之前扫描您的代码以查找常见问题
- 运行您的测试套件以尽早发现问题
- 处理 Git 操作和 MR 创建
- 自动通知您的团队
- 设置部署的后续任务
这使您无需手动运行相同的 7 步过程,每次您想提交代码进行审查时。