From cfa0409d94e2e54e9ef5650dfb54582ab2e5f51c Mon Sep 17 00:00:00 2001 From: Joywayer Date: Thu, 27 Aug 2026 21:07:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E4=B8=83=E7=8E=8B=EF=BC=9ACLAUDE.md?= =?UTF-8?q?=20=E8=A1=A5=E8=AE=B0=E6=96=AD=E8=A8=80=E5=8F=8D=E5=90=91?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E4=B8=8E=20CRLF=20=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E6=94=B9=E5=86=99=E6=B3=A8=E6=84=8F=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 两条都是本轮开发中真实踩到的: - 新增守卫断言若不做「故意破坏→看是否变红」,可能加的是空转断言; - 仓库为 CRLF 行尾,脚本化改写用 `\n` 匹配会一行不改却静默成功, 曾据此差点得出「测试抓不住原缺陷」的错误结论。 Co-Authored-By: Claude Opus 5 (1M context) --- CLAUDE.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 574eeb6..3ecb5cc 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -74,4 +74,6 @@ git config core.hooksPath .githooks ## 测试与 Git - **测试纪律**:细则见 client 05 §10 / server 04 §10。要点——测试代码可用现代语法(只跑 Node,不上线);**正式代码禁止为测试而加逻辑/放宽校验**,禁止为过测而改正式代码或降低测试标准(skip、软化断言、吞异常等);失败先用证据裁定「业务缺陷 vs 脚本缺陷」;正面/反面/边界用例都要覆盖。 +- **新增断言要反向验证**:写完一条守卫断言,**故意破坏它守的那处逻辑,确认它真会变红**——否则你加的可能是一条空转断言(「全绿但什么都没验」比红更有害)。 +- ⚠️ **本仓库文件是 CRLF 行尾**:任何基于行尾的脚本化改写(`sed`/正则批量删改)必须按 `\r?\n` 处理。写 `\n` 会**一行都匹配不上却静默成功**——曾据此得出「测试抓不住缺陷」的错误结论。脚本改完先 `git diff --stat` 确认文件真的变了,再据其结果下判断。 - **Git 提交**(细则见 server 04 §11):完成一个可独立成立的逻辑改动即可**自动提交、无需逐次确认**(`push` 按需);提交信息用中文、聚焦一件事、结尾保留 `Co-Authored-By` 署名;不用 `git add -A`/`git add .`、不跳过 hooks、不做 `reset --hard`/`push --force`。