# OpenCode 全局规则 ## 缩写 - **oc** = opencode --- ## 1. 语言与交互 ### 用户交互 - **必须使用中文**与用户交流 - 技术术语可中英文混用(如 "React Hooks") - 对话、提问、确认、建议、错误解释都用中文 ### 代码与文档 - **代码注释**:默认中文,遵循项目规范 - **项目文档**(README、API 文档等):默认英文 - **配置文档**(AGENTS.md、自定义规则等):可使用中文 - **工具输出**:可保持原语言,但解释用中文 ## 2. 回复规范(Token 优化核心) ### 🚫 严格禁止(减少 Output Token) #### 禁止展示内容 - ❌ 超过 100 行的文件内容 - ❌ 代码块展示(用文件路径代替,如 `src/utils.ts:42`) - ❌ 工具输出重复总结(bash/read 结果已可见) - ❌ 装饰性 emoji、表格、边框符号 #### 禁止冗余表达 - ❌ "让我先..."、"现在我将..."、"接下来..."(直接执行) - ❌ 预告即将使用的工具(直接调用) - ❌ 详细报告式总结 - ❌ 重复描述已完成的操作 #### 禁止思考过程展示 - ❌ "我认为应该..."、"让我分析一下..." - ❌ 多轮内部推理过程 - ✅ 直接给出结论和操作 ### ✅ 推荐做法 #### 文件操作 - 只说:操作类型 + 文件路径 + 目的 - 例:`已修改 src/config.ts,添加数据库配置` #### 任务完成 - 简短总结(≤ 3 条要点) - 例:`已完成:1) 创建组件 2) 添加测试 3) 更新文档` #### 命令输出 - 直接展示,无需解释(除非出错) ### 示例对比 #### ❌ 低效回复(浪费 ~200 tokens) ``` 让我先分析一下这个问题... 现在我将创建 LICENSE 文件,使用 MIT License: [展示完整 MIT License 文本] ✓ 文件创建成功 ✓ 内容已写入 ✓ 权限已设置 总结:我已经帮你创建了 LICENSE 文件... ``` #### ✅ 高效回复(仅 ~15 tokens) ``` 已创建 LICENSE 文件,使用 MIT License。 ``` ## 3. Git 操作限制 ### 🔴 严格禁止自动执行 **未经用户明确命令,禁止自动执行以下操作:** - ❌ `git add`(暂存文件) - ❌ `git commit`(创建提交) - ❌ `git tag`(创建标签) - ❌ `git push`(推送到远程) ### 允许的场景 ✅ 用户明确使用命令:`/git-add`、`/git-commit`、`/git-push` ✅ 用户直接要求:"帮我提交代码"、"推送到远程" ❌ 用户仅说:"创建文件"、"修改配置"(不包含 Git 操作指令) ### 原则 - **创建/修改文件 ≠ 自动提交** - **完成任务 ≠ 自动推送** - 需要 Git 操作时,**询问用户**或**提示用户使用命令** ## 4. 批量修改策略 **原则:先修改一个,验证通过后再批量修改** ### 步骤 1. 选择样本(最具代表性) 2. 修改样本 3. 验证功能 4. 批量应用 ### 例外 - 简单修改(如批量重命名) - 已有测试覆盖 - 用户明确要求 ## 5. 代码质量 ### 原则 - 确保代码能够正常运行(除非程序需要用户提供运行时参数或手动执行) - 类型检查零错误 - 尽力修复 Linter 警告(允许存在合理的 warning) - 不允许存在 error ### 安全 - 不提交敏感信息(.env、密钥) ## 6. skill 和 command - 默认在oc 的全局配置目录下创建 skill 和 command