Files
opencode/AGENTS.md
2026-01-12 17:39:49 +08:00

172 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 全局规则
## 缩写说明
- **oc** = opencodeOpenCode 的缩写)
---
## 语言偏好
**重要:请始终使用中文(简体中文)与用户交流。**
所有回复、解释、错误消息、建议和对话都应该使用中文,除非:
- 代码注释需要使用英文(根据项目规范)
- 用户明确要求使用其他语言
- 技术术语在中文中没有合适的翻译(可以中英文混用,如 "React Hooks"
### 重要注意事项
1. **不要因为文档、命令或代码是英文就切换语言**
- 即使项目文档是英文的,回复时仍然用中文解释
- 即使执行的命令是英文的,回复时仍然用中文说明
- 即使错误信息是英文的,回复时仍然用中文分析
2. **工具输出可以保持原语言**
- 代码本身使用英文(函数名、变量名等)
- 终端命令使用英文
- 但你对这些内容的解释和说明必须用中文
3. **用户交互始终用中文**
- 所有对话、提问、确认都用中文
- 所有建议、总结、分析都用中文
- 所有错误解释和问题诊断都用中文
这是用户的个人偏好设置,适用于所有项目和所有交互场景。
---
## 代码风格偏好
### JavaScript/TypeScript
- **缩进**2空格
- **分号**:使用分号
- **引号**:优先使用双引号
- **注释**
- 使用 JSDoc 格式书写公开函数文档
- 复杂逻辑使用自然语言注释
- 中文注释需说明 "为什么",而不只是 "做什么"
### 一般规则
- 命名采用 camelCase变量/函数、PascalCase类/组件、UPPER_SNAKE_CASE常量
- 避免使用单字母变量,除非在循环中
- 函数长度不超过 100 行,优先拆分
---
## 开发流程
### Git 提交规范
- **格式**`<type>(<scope>): <subject>`
- **类型**feat功能、fix修复、docs文档、style格式、refactor重构、test测试、chore维护
- **主题**:使用中文,简洁明了,不超过 50 字
- **描述**:如有需要,空一行后补充详细说明
### 分支命名
- 功能分支:`feature/描述`
- 修复分支:`fix/描述`
- 文档分支:`docs/描述`
- 示例:`feature/user-authentication``fix/memory-leak`
### 代码审查
- 提交 PR 前必须确保本地测试通过
- PR 需要至少 1 个审查者批准
- 修复所有 linter 和类型检查错误
### 发布流程
- 主分支main/master始终保持可部署状态
- 不直接推送到主分支,必须通过 PR
- 标签格式:`v<major>.<minor>.<patch>`
---
## OpenCode 工具使用策略
### 什么时候使用各个工具
**Task 工具**(优先使用)
- 探索复杂、陌生的代码库结构
- 执行多步骤的分析任务
- 需要全局视野的搜索和研究
- 复杂的代码重构计划
**Bash 工具**
- 执行系统命令和 git 操作
- 运行构建、测试、打包命令
- 文件系统操作(只在必要时)
- 不要用 Bash 做文件读写,改用 Read/Edit/Write 工具
**Read/Edit/Write 工具**
- 读取文件内容:优先用 Read不用 cat/head/tail
- 修改现有文件:用 Edit不用 sed/awk
- 创建新文件:用 Write不用 echo 或 heredoc
**Glob/Grep 工具**
- 精准查找特定文件:用 Globpattern 匹配)
- 搜索文件内容:用 Grep正则表达式
- 避免用 Bash 的 find 和 grep 命令
**TodoWrite 工具**(重要)
- 任务超过 3 步时必须创建 todo 列表
- 立即标记完成,不要批量完成
- 只有 1 个 todo 保持 in_progress 状态
- 用于任务规划、跟踪进度、防止遗漏
---
## 代码质量标准
### 测试要求
- **单元测试**:新功能必须包含测试
- **集成测试**API 和跨模块交互需要测试
- **目标覆盖率**>= 80%
- 运行测试:提交前必须本地通过全部测试
### 构建和类型检查
- **类型检查必须通过**:严格模式下零错误
- **构建必须成功**:无警告或错误
- **Linter 检查**:修复所有警告,至少遵守 recommended 规则
- **运行时验证**:不允许 `any` 类型,除非有明确注释说明原因
### 性能标准
- **首屏加载**< 3 秒(首次)、< 1 秒(缓存)
- **包体积**:监控 bundle size新增功能不超过 50KB
- **内存泄漏**:定期检查,不允许持久化内存增长
### 安全要求
- 不提交敏感信息(.env、密钥等到版本控制
- 依赖项定期更新,及时修复已知漏洞
- 输入验证和输出编码,防止 XSS、注入等攻击
---
## 任务管理最佳实践
### 使用 TodoWrite 的原则
1. **提早规划**:接收任务后立即创建 todo 列表
2. **分解细节**:复杂任务拆分成 3-5 个可操作的步骤
3. **实时更新**:任务完成后立即标记为 completed
4. **单个进行**:同时只有 1 个 in_progress完成后再开始下一个
5. **优先级标记**:高优先级任务标记为 high
### 任务状态定义
- **pending**:未开始
- **in_progress**:当前正在进行(限 1 个)
- **completed**:已完成
- **cancelled**:不再需要
---
## 常见问题和快速参考
### 如何列出所有可用命令?
按下 `ctrl+p` 可查看 OpenCode 的所有可用操作。
### 如何获取帮助或反馈?
- 在 GitHub 提交 issuehttps://github.com/anomalyco/opencode
- 查看官方文档https://opencode.ai/docs
### 何时创建新文件 vs 编辑现有文件?
- **优先编辑**:修改现有代码和配置
- **仅在必要时创建**:添加全新的功能模块或配置文件