跳转至

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 同步,请勿在站点侧修改)