memory/rules: 用「完全通过测试才提交」替换「改完立即推送」
- 新增 rules/only-commit-fully-tested.md(pinned):端到端跑通才算通过、 禁止用 mock 冒充验证、已知缺陷不许推、如实写验证范围、不确定就说不确定 - 删除 rules/plugin-push-on-change.md:其「改完立刻 commit+push、不询问」 与新规则的验证前提冲突 - 同步更新 memory/rules/index.md 的路由表 原规则里仍然有效的两条(改插件后 `opencode service restart`、推送走 SSH) 未写入新文件,需要的话另开一条记。
This commit is contained in:
@@ -4,5 +4,5 @@
|
||||
|
||||
| 文件 | 概述 | 重点 |
|
||||
|---|---|---|
|
||||
| plugin-push-on-change.md | 改动这三棵目录后立即 commit 并 push,不询问;改插件代码后必须重启服务。 | 本目录是 git 仓库;.gitignore 只放行 skills/ plugins/ memory/ 三棵树 |
|
||||
| only-commit-fully-tested.md | 端到端跑通才算通过;禁止用 mock 冒充验证;已知缺陷不许推。 | 辅助函数单测通过 ≠ 功能可用;commit message 的 Verified 必须来自真实调用 |
|
||||
<!-- auto:end
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
id: rules/only-commit-fully-tested.md
|
||||
kind: rule
|
||||
summary: 端到端跑通才算通过;禁止用 mock 冒充验证;已知缺陷不许推。
|
||||
highlight: 辅助函数单测通过 ≠ 功能可用;commit message 的 Verified 必须来自真实调用
|
||||
created: 1791513150284
|
||||
updated: 1791513150284
|
||||
pinned: true
|
||||
---
|
||||
|
||||
**只有完全通过测试的代码才提交。**
|
||||
|
||||
没有跑通就不许 commit。部分验证通过、靠 mock 构造的结果、只测了辅助函数没测真实链路 —— 这些都不算通过。
|
||||
|
||||
具体要求:
|
||||
|
||||
1. **端到端跑通才算**。辅助函数的单测通过不代表功能可用。写完先在真实环境跑一遍,确认输出符合预期。
|
||||
2. **禁止用 mock 结果冒充真实验证**。commit message 里的 Verified 必须来自真实调用,不是构造的返回值。
|
||||
3. **已知缺陷的代码不许推**。发现问题时先修,修完重新验证;修不好就别提交,别用「改动本身是对的」当借口先推上去。
|
||||
4. **如实写验证范围**。commit message 里写清测了什么、没测什么,不要用笼统的「已测试」盖过去。
|
||||
5. **不确定就说不确定**。宁可回复「还没验证完」,也不要让用户以为可以放心用。
|
||||
|
||||
反面教材(我自己犯过):自动抽取的触发器能跑通、能报告状态,就宣称「抽取已打通」,实际上 `generate.text` 从来没成功调用过 —— 一个永远写不进记忆的抽取器,触发得再准时也是坏的。真实链路没验证就提交,还把 mock 结果写进 commit message 冒充 Verified。
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
id: rules/plugin-push-on-change.md
|
||||
kind: rule
|
||||
summary: 改动这三棵目录后立即 commit 并 push,不询问;改插件代码后必须重启服务。
|
||||
highlight: 本目录是 git 仓库;.gitignore 只放行 skills/ plugins/ memory/ 三棵树
|
||||
created: 1791512032262
|
||||
updated: 1791512893909
|
||||
pinned: true
|
||||
---
|
||||
|
||||
`~/.config/opencode` 自身是 git 仓库,`.gitignore` 只放行三棵树:`skills/`、`plugins/`、`memory/`(外加 .gitignore、pwsh.cmd、package.json)。
|
||||
|
||||
在这三棵树下创建、修改、删除任何文件后,**提交并推送后再回复用户**,不要问是否要 push。
|
||||
|
||||
推送用 SSH(origin 已是 SSH 地址)。HTTPS 推送会提示密码且无 TTY,必然失败。
|
||||
|
||||
推送失败就报错并停下,不要静默重试,也不要 `git reset`。提交信息要写清楚改了什么、为什么改。
|
||||
|
||||
**改完插件代码必须 `opencode service restart`**:热重载会应用新工具名,但已缓存的模块改动不一定生效。踩过两次「改了没生效」的坑。
|
||||
Reference in New Issue
Block a user