3.3 KiB
3.3 KiB
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. 批量修改策略
原则:先修改一个,验证通过后再批量修改
步骤
- 选择样本(最具代表性)
- 修改样本
- 验证功能
- 批量应用
例外
- 简单修改(如批量重命名)
- 已有测试覆盖
- 用户明确要求
5. 代码质量
原则
- 确保代码能够正常运行(除非程序需要用户提供运行时参数或手动执行)
- 类型检查零错误
- 尽力修复 Linter 警告(允许存在合理的 warning)
- 不允许存在 error
安全
- 不提交敏感信息(.env、密钥)
6. skill 和 command
- 默认在oc 的全局配置目录下创建 skill 和 command