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:
2026-10-12 18:10:48 +08:00
parent cb9db666ba
commit 2d4df45acb
3 changed files with 24 additions and 20 deletions
+23
View File
@@ -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。