docs: 归档 #38;改正六份归档里未经验证的 Go 版本说法

#38 归档记录了打回一次的经过(ParseSpec 两个失败分支无测试覆盖,
其中 size=="" 就是真实数据里 2 行走的分支),以及架构角色第一轮
变异打在死分支上、差点误报「测试没牙」的过程。

改正:/usr/local/go 从 2026-07-02 起一直是 1.26.5,而六份归档都写着
「架构角色亲自执行(Go 1.23.0)」——那是照项目固定版本抄的,
没有实际验证过工具链,违反 CLAUDE.md §9「说验证过必须真的跑过」。
措辞改为不宣称具体版本。已用 GOTOOLCHAIN=go1.23.0 补验,结论不变。

admin/AGENTS.md 加两条 [必须]:
- 交付前至少跑一次带 GOTOOLCHAIN=go1.23.0 的验证。开发机装的可能更新,
  Go 会默默用它编译,测过的不是要交付的那个版本。新加依赖时尤其要跑。
- 改数据库时不要只测全新库,先列出现实中存在哪些 schema 状态再一个个验(来自 #20)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
chengma
2026-08-08 09:59:34 +08:00
co-authored by Claude Opus 5
parent e29d6683ad
commit 10b724f62a
8 changed files with 263 additions and 6 deletions
+14
View File
@@ -119,8 +119,22 @@ go test ./...
go run .
```
`[必须]` **交付前至少跑一次带 `GOTOOLCHAIN=go1.23.0` 的验证**:
```powershell
$env:GOTOOLCHAIN="go1.23.0"; go build ./...; go test ./... -count=1
Remove-Item Env:GOTOOLCHAIN
```
本项目固定 Go 1.23.0(见 [00 上手指南](../docs/admin/00-getting-started.md)),
但开发机上装的可能是更新的版本,Go 会默默用它编译,**测过的不是要交付的那个版本**。
本项目已经发生过:连续六份归档写着「Go 1.23.0 验证通过」,实际全跑在 1.26.5 上。
新加依赖时尤其要跑——依赖的 `go` 指令高于 1.23.0 的话,只有这条命令能发现。
- `go run .` 启动后访问 `http://localhost:8080`,**不会连手机、不会下单**,可随时运行。
- 修改数据库时测试首次建库和从上一版本迁移。
`[必须]` **不要只测全新库。** 先列出现实中存在哪些 schema 状态
(不同版本的程序建过的库都算),一个个迁过来验。见 `docs/task/20-*.md`。
- 修改给 Client 的接口时,跑契约测试,确认仍满足 Client 侧 §6.1 的无条件接受。
- 修改 Excel 导入时用 `raw_data/` 下的样本跑一遍,核对导入条数。
该样本含商业数据、**不在仓库里**,需向项目负责人索取;自动化测试用 `testdata/` 下的脱敏小样本。