Global Coding Standards
【免费下载链接】Roo-CodeRoo Code gives you a whole dev team of AI agents in your code editor.项目地址: https://gitcode.com/GitHub_Trending/ro/Roo-Code
- Always use TypeScript for new projects
- Write unit tests for all new functions
- Use descriptive variable names
- Add JSDoc comments for public APIs
模式专属规则示例(`~/.roo/rules-code/typescript-rules.md`): ```markdown # TypeScript Code Mode Rules 1. Use strict mode in tsconfig.json 2. Prefer interfaces over type aliases for object shapes 3. Always specify return types for functions可用规则目录一览:
| 目录 | 用途 |
|---|---|
rules/ | 适用于所有模式的通用规则 |
rules-code/ | Code 模式专属规则 |
rules-docs-extractor/ | 文档提取规则 |
rules-architect/ | 架构设计任务规则 |
rules-debug/ | 调试工作流规则 |
rules-{mode}/ | 任意自定义模式的规则 |
5.4 工作区规则:目录优先、单文件回退
首选:目录方式(.roo/rules/)
. ├── .roo/ │ └── rules/ # 工作区通用规则 │ ├── 01-general.md │ └── 02-coding-style.txt └── ... (其他项目文件)回退:单文件方式(.roorules/ 遗留.clinerules)
. ├── .roorules # 工作区通用规则(单文件) └── ... (其他项目文件)模式专属:目录方式为.roo/rules-{modeSlug}/(如.roo/rules-docs-writer/),回退单文件为.roorules-{modeSlug}(如.roorules-code),遗留文件为.clinerules-{modeSlug}。
目录方式下的文件会被递归读取(含子目录),并按文件名字母序(不区分大小写)拼入系统提示词。若目录存在但为空,则回退到单文件方式。
5.5 源码级实现:规则是如何被加载的
规则加载的核心实现在 src/core/prompts/sections/custom-instructions.ts 的addCustomInstructions函数中,其组装顺序与官方文档完全对应:
- 语言偏好(若设置);
- 全局指令(Prompts 面板中的 “Global Instructions”);
- 模式专属指令(Prompts 面板中当前模式的指令);
- Rules 段落,按以下顺序追加:
- 模式专属规则(
.roo/rules-{mode}/目录,或回退.roorules-{mode}/.clinerules-{mode}); .rooignore相关指令;- AGENTS.md 内容(若启用
useAgentRules); - 通用规则(
~/.roo/rules/与.roo/rules/目录,或回退.roorules/.clinerules)。
- 模式专属规则(
loadRuleFiles(见 custom-instructions.ts)清晰地体现了“目录优先、单文件回退”的策略:先遍历所有.roo/rules/目录,只有全部为空时才回退读取.roorules与.clinerules遗留文件。模式专属规则的目录解析(rules-${mode})则复用同一套逻辑(见 custom-instructions.ts)。
关于.rules文件还有若干工程细节:
- 递归读取:规则目录递归遍历,包含所有子目录中的文件;
- 文件过滤:自动排除缓存与临时文件(
.DS_Store、*.bak、*.cache、*.log、*.tmp、Thumbs.db等,完整清单见shouldIncludeRuleFile实现); - 空文件:空或缺失的规则文件被静默跳过;
- 来源头:目录方式为每个文件生成
# Rules from {相对路径}:头,单文件方式为# Rules from {文件名}:头; - 聚合而非二选一:全局与工作区规则目录会聚合加载(模式专属与通用规则同理);
- 符号链接:文件与目录的符号链接均受支持,最大解析深度 5 层以防止循环引用(见 custom-instructions.ts)。
5.6 Prompts 面板方式
除了文件,还可以通过界面设置自定义指令:点击 Roo Code 顶部菜单栏的笔记本图标打开 Prompts 面板,在 “Custom Instructions for All Modes” 区域输入全局指令;在 Modes 标题下选择具体模式,即可设置该模式的 “Mode-specific Custom Instructions”。如果该模式本身是全局模式(非工作区专属),其指令也会跨工作区全局生效。
5.7 最终拼入系统提示词的格式
所有来源的指令最终以如下结构写入系统提示词:
==== USER'S CUSTOM INSTRUCTIONS The following additional instructions are provided by the user, and should be followed to the best of your ability without interfering with the TOOL USE guidelines. Language Preference: [语言偏好(若设置)] Global Instructions: [Prompts 面板中的全局指令] Mode-specific Instructions: [当前模式的 Prompts 面板指令] Rules: # Rules from rules-{modeSlug} directories: [~/.roo/rules-{modeSlug}/ 与 .roo/rules-{modeSlug}/ 中所有文件的内容] # Rules from .roorules-{modeSlug}: [.roorules-{modeSlug} 文件内容(目录无文件时的回退)] # Rules from .rooignore: [.rooignore 相关指令(若适用)] # Agent Rules Standard (AGENTS.md): [工作区根目录 AGENTS.md / AGENT.md 的内容(若启用)] # Rules from rules directories: [~/.roo/rules/ 与 .roo/rules/ 中所有文件的内容] # Rules from .roorules: [.roorules 文件内容(目录无文件时的回退)] ====【免费下载链接】Roo-CodeRoo Code gives you a whole dev team of AI agents in your code editor.项目地址: https://gitcode.com/GitHub_Trending/ro/Roo-Code
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考