第 23 轮方向确定:保护表通用化替代轮。先深入探查剩余保护表依赖场景和任务 6 的四阶段路径,再写任务书。
梳理任务策略路径
策略建议很清晰:四阶段路径,第 23 轮优先 A+B。探查当前上下文敏感切词实现和剩余保护表的真护栏场景。
梳理剩余保护表情况
当前状态清晰:剩余 226 条保护表,上下文敏感切词已较完善。第 23 轮做阶段 A+B(风险低)+ 阶段 C 部分(内建名迁移)。写任务书。
输出任务总结
第 23 轮任务书已写好:复刻_第23轮_任务prompt分发_保护表通用化替代轮.md
6 路任务概览
表格
| 任务 | 优先级 | 核心内容 | 修改区域 |
|---|---|---|---|
| 任务 1 | P0 | 阶段 A:己并入通用规则,删除_TRAILING_ALIAS_MERGE 整表(1→0) |
lexer.py 定义 + 引用(行~457/2800/2950) |
| 任务 2 | P0 | 阶段 B:IDENTIFIER_SAFE_KEYWORDS 5 条(函数 / 打印 / 标准库 / 模块 / 输出)用后缀位置上下文规则替代 + SUFFIX_ONLY 3 条处理 | lexer.py 定义 + 引用(行~45/77/2780/2910/3000) |
| 任务 3 | P1 | 阶段 C(部分):CCW 中 codegen 映射复合名(异步读取文件 / 并发等待等)迁移到 code_generator 内建登记,从 CCW 删除 | lexer.py CCW 定义 + code_generator.py 内建登记 |
| 任务 4 | P1 | 通用规则边界测试套件(替代场景 + 合法语法反向验证 + 边界混合 + 性能) | 新增 test_R23_*.light + pytest |
| 任务 5 | P1 | 全量回归扫描(token 对比 + codegen 输出对比 + 性能对比) | 新增脚本 / 报告 |
| 任务 6 | P2 | docs 回填 + 阶段 D(_COMPOUND_SAFE_SINGLE 30 条单字)详细规划 + 收口框架 | docs / 草案 |
关键设计决策
- 本轮执行阶段 A+B+C(部分),阶段 D 留给后续轮次 :A/B 风险低证据充分,C 随内建治理推进,D 单字风险大需先解决
的递归吞分隔符缺陷 - 任务 1/2 上下文规则增强限定 :仅限各自保护表引用代码附近的小范围增强,不得修改
_at_statement_start或上下文敏感切词主分支(行 2341),需改主分支归路 M 协调 - 任务 3 跨文件:同时修改 lexer.py(删 CCW 条目)和 code_generator.py(新增内建登记),确保 codegen 行为不变
- 铁律:逐条验证全语料 token 零变化、合法语法不被误并(语句起始 + 运算符关键字)、性能回退 < 10%、_EMBED_MAX_MATCH_KEYWORDS 和_COMPOUND_SAFE_SINGLE_KEYWORDS 本轮不动
可以分发了!
第 23 轮收口总结:保护表通用化替代轮
核心成果:3 表清零,CCW 184→37,逐词白名单 226→73(降 67.7%)
表格
| 保护表 | 第 22 轮后 | 第 23 轮后 | 替代方式 |
|---|---|---|---|
| _TRAILING_ALIAS_MERGE | 1 | 0 | 阶段 A:己并入通用规则 |
| IDENTIFIER_SAFE_KEYWORDS | 5 | 0 | 阶段 B:后缀位置上下文规则 |
| IDENTIFIER_SAFE_SUFFIX_ONLY | 3 | 0 | 阶段 B:词首语义天然保证 |
| COMMON_COMPOUND_WORDS | 184 | 37 | 阶段 C:内建名已有登记 + 冗余护栏 |
| _COMPOUND_SAFE_SINGLE | 30 | 30 | 阶段 D(下一轮) |
| _EMBED_MAX_MATCH | 3 | 3 | 保留(第 22 轮验证不冗余) |
CCW 三轮累计:427→216→184→37,删 390 条(91.3%)
关键新增规则
- 后缀位置上下文规则:多字 + 非运算符 + 非排除集的关键字位于词中 / 词尾(scan_pos>0)→ 并入标识符
- 排除集
_P0A_SUFFIX_SPLIT_KW:硬语句头(如果 / 那么 / 否则 / 段落 / 类型 / 捕获 / 等待 / 定义)在词中 / 词尾保持切分
验证结果
- 4 路反跑:ALL OK
- 全量 CI:552 passed + smoke 5/5(比第 22 轮 476 多 76 个测试)
- 全语料 776 文件:token 零变化
- 性能提升 21%(11.66s→9.63s)
- codegen 产物:sha256 两侧完全一致
git 提交(待你手工 push)
- light-merge :
ca5741a8(lexer.py 230+/240-) - lightharness :6 路分路 + 收口
d92e37d(共 7 个提交)
第 24 轮方向建议
- 阶段 D------_COMPOUND_SAFE_SINGLE 单字通用化 (推荐):先修复
的递归吞分隔符缺陷,再替代 30 条单字,最终消除所有逐词白名单。详细规划见_task6_R23_阶段D规划.md - CCW 剩余 37 条继续精简
- 继续上游复刻
- test_审批.light flaky 修复(time.monotonic)