3.9 KiB
3.9 KiB
OpenCode 全局规则
缩写
- oc = opencode
1. 语言与交互
用户交互
- 必须使用中文与用户交流
- 技术术语可中英文混用(如 "React Hooks")
- 对话、提问、确认、建议、错误解释都用中文
代码与文档
- 代码注释:默认中文,遵循项目规范
- 独立文档文件(.md、.txt):默认英文
- 工具输出:可保持原语言,但解释用中文
2. 回复规范
内容限制
- 禁止展示超过 100 行的内容
- 文件操作:只说明操作类型、文件路径、改动目的,不展示具体内容
- 命令输出:直接展示,不重复总结(除非出错或用户要求)
回复风格
- 任务完成后简短总结(不超过 5 条要点)
- 禁止详细报告、表格、装饰性符号、重复描述
- 例外:用户明确要求或错误诊断
示例
✅ 正确:已创建 LICENSE 文件,使用 MIT License。
❌ 错误:[展示完整的 License 文本内容]
3. Git 操作限制
🔴 严格禁止自动执行
未经用户明确命令,禁止自动执行以下操作:
- ❌
git add(暂存文件) - ❌
git commit(创建提交) - ❌
git tag(创建标签) - ❌
git push(推送到远程)
允许的场景
✅ 用户明确使用命令:/git-add、/git-commit、/git-push
✅ 用户直接要求:"帮我提交代码"、"推送到远程"
❌ 用户仅说:"创建文件"、"修改配置"(不包含 Git 操作指令)
原则
- 创建/修改文件 ≠ 自动提交
- 完成任务 ≠ 自动推送
- 需要 Git 操作时,询问用户或提示用户使用命令
4. 开发规范
Git 提交
- 遵循 Conventional Commits
- 格式:
<type>(<scope>): <subject>(中文) - 类型:feat、fix、docs、style、refactor、test、chore、ci、build、perf
- 主分支:
main
详见 skill/git/SKILL.md
代码风格(JavaScript/TypeScript)
- 缩进:2 空格
- 分号:使用
- 引号:双引号
- 命名:camelCase、PascalCase、UPPER_SNAKE_CASE
分支命名
feature/描述、fix/描述、docs/描述
5. 批量修改策略
原则:先修改一个,验证通过后再批量修改
步骤
- 选择样本(最具代表性)
- 修改样本
- 验证功能
- 批量应用
- 最终验证
例外
- 简单修改(如批量重命名)
- 已有测试覆盖
- 用户明确要求
6. 工具使用策略
| 工具 | 用途 |
|---|---|
| Task | 探索代码库、多步骤分析、全局搜索 |
| Bash | Git 操作、构建、测试命令 |
| Read/Edit/Write | 文件读写(不用 cat/sed/echo) |
| Glob/Grep | 文件查找和内容搜索 |
| TodoWrite | 任务管理(超过 3 步必须使用) |
7. 任务管理
TodoWrite 使用原则
- 任务超过 3 步时创建 todo 列表
- 立即标记完成(不批量完成)
- 同时只有 1 个
in_progress
状态
pending、in_progress、completed、cancelled
8. 代码质量
测试
- 新功能必须包含测试
- 覆盖率 ≥ 50%
构建
- 类型检查零错误
- 修复所有 Linter 警告
安全
- 不提交敏感信息(.env、密钥)
- 输入验证和输出编码
快速参考
| 场景 | 操作 |
|---|---|
| 用户说"创建文件" | 创建文件,不自动提交 |
| 用户说"提交代码" | 可以执行 git commit |
用户使用 /git-push |
执行完整推送流程 |
| 创建超过 100 行的文件 | 只说明路径和用途,不展示内容 |
| 命令输出已完整 | 直接展示,不重复总结 |
| 批量修改 10 个文件 | 先改 1 个验证,再批量 |
详细指南:
- Git 工作流:
skill/git/SKILL.md - Gitea 集成:
skill/gitea/SKILL.md - 开发规范:各
skill/*/SKILL.md