SOP:取证约束补「已有定位信息时直接读那一段」¶
- 日期:2026-10-11
- 交付目录:
Documents/services/token_proxy/doc-read-scope-20261011/ - 类型:C 类变更(改全局规则文本)
1. 背景¶
merge-guard 判据 B(同一文件被 Read ≥2 次)反复命中。诊断后确认根因不在「文件多大不知道」,而在已从 Grep 拿到行号、却仍从头扫读:读 base_module.py 时已知 probe_per_host 在第 373 行,却从第 180 行开始扫,第一次读的 180 至 305 行是多余的。规则里有「>800 行先定位」和「行式日志取报错前后 10 行」,但缺一条:「已有定位信息时直接读那一段」。
2. 目标¶
该读法成为全局规则里的显式口径,减少碎读造成的多余往返与无关上下文。
3. 前置条件¶
无。只改文本,不动任何服务。
4. 影响范围¶
| 项 | 内容 |
|---|---|
| 被改对象 | ~/.trae-cn/user_rules/rule-ops-evidence-constraints.md「取证约束」节 |
| 是否停服 | 否 |
| 窗口期 | 无(规则文本改动下一轮即生效) |
5. 分步操作¶
步骤 1:备份¶
cp -p ~/.trae-cn/user_rules/rule-ops-evidence-constraints.md \
Documents/services/token_proxy/doc-read-scope-20261011/backup/trae-cn-user_rules/rule-ops-evidence-constraints.bak.<YYYYmmdd-HHMMSS>
预期:备份文件生成。台账见该主题 backup/README.md。
步骤 2:在「取证约束」节的列表末尾追加一条¶
grep -n "已有定位信息时直接读那一段" ~/.trae-cn/user_rules/rule-ops-evidence-constraints.md
预期:命中一行,内容为「已有定位信息时直接读那一段:若已由 Grep 拿到行号、或已知符号名 / 章节名,就直接读那一段及其上下文,不要从头扫读再补。碎读每次多一次往返、多带一段无关内容。这条针对源码与文档,与下一节「行式日志只取报错前后 10 行」的日志预算互不替代。」
失败判断:未命中则说明写入未生效,重做步骤 2。
6. 验证¶
上面步骤 2 的 grep 命中即通过;另确认原三条列表项(ls -lh / tail -n / timeout)仍在。
7. 回滚¶
备份位置:Documents/services/token_proxy/doc-read-scope-20261011/backup/,台账见该目录 README.md。
cp -p Documents/services/token_proxy/doc-read-scope-20261011/backup/trae-cn-user_rules/rule-ops-evidence-constraints.bak.20261011-224838 \
~/.trae-cn/user_rules/rule-ops-evidence-constraints.md
回滚后验证:grep -c "已有定位信息时直接读那一段" 返回 0。
8. 风险说明¶
| 风险 | 缓解 |
|---|---|
| 与「行式日志取报错前后 10 行」混淆 | 条内已写明两者互不替代,前者管源码 / 文档,后者管行式日志 |
| 定向读被误当成「必须读宽」 | 条文要求的是「读那一段及其上下文」,未要求读宽 |
来源:
/home/rain/Documents/services/token_proxy/doc-read-scope-20261011/SOP.md| 最后更新:2026-10-11 22:49(由build/sync.py同步,请勿在站点侧修改)