[sanguo_vnpy_v2] 审计排期批 follow-up 五项(origin 写入方/控制台判死回写/gaps 消费方/第三份地址/NaN fail-closed) #91

Closed
opened 2026-10-05 14:32:16 +00:00 by claude_dev · 2 comments
Owner

审计排期批(P2×9+P3 簇,9 棒 SDD 全闭环)审查过程中沉淀的 5 项残留跟进。均为小件,非生产敞口。

五项清单

① 条目级 origin 生产写入方缺位(factor 域)

  • 出处:T3 审查 N1(commit 02acb48,P3-11)
  • 现状:monthly_batch.decomposer_new_names() 条目级 origin 分支=向前兼容位,但生产写入方(routes_pipeline.py:953 decompose)只写 version params,条目级分支永不触发;「人工显式改判退出」收敛出口生产不可用
  • 建议:upsert_factor 增 origin 参数 + routes_pipeline decompose 透传

② 控制台 graveyard 判决零回写(factor/api 域)

  • 出处:T4 审查 NOTE-D(commit 110f1a1,P2-10 病灶面延伸)
  • 现状:routes_pipeline.py:505-542 factor_verdict 控制台判死路径从不调用 writeback_card_death——D5 回写只活在 CLI,控制台判死=同病灶形态且零痕迹
  • 建议:评估 factor_verdict 接 writeback_card_death(复用 T4 的 death_writeback_missed 留痕)

③ data_gaps.json 消费方适配标记件形状(api 域)

  • 出处:T5 审查 N1(commit c94ac8e,P2-11)
  • 现状:routes_pipeline.py:320-331 读 data_gaps.json 产管线告警——{"manifest_missing": true} 标记件形状使 join(True) TypeError 被 except Exception:pass 吞掉=告警面对最需告警场景仍零输出(不崩但无告警项)
  • 建议:消费侧识别标记件键并转化为可见告警项

④ vps_pending_check.py 第三份 Gitea 地址字面量(infra 域)

  • 出处:T6 审查 N5(commit b75a3acc,P3-20 外溢)
  • 现状:scripts/ci/vps_pending_check.py:18 仍有同址硬编码第三份(P3-20 只收敛了 sanguo_factor 内两份)
  • 建议:改引 version_registry.GITEA_BASE_URL 或另提共享常量

⑤ NaN ICIR 不触发 exam_gate fail-closed(factor 域)

  • 出处:T8 审查 NOTE-1(commit cbee9e4,P3-16 边角)
  • 现状:judge_exam 以 is None 判周期缺失,NaN ICIR 仍可搭 SUGGEST_PROMOTE——因子档 §7.7/:240 首年校准已记录的 defer 项,非本批回归
  • 建议:缺周期判定扩 isnan(收编首年校准时一并闭合)

坐标

  • 批次台账:.superpowers/sdd/progress.md(10-05 排期批段)
  • 审查报告:.superpowers/sdd/batch2-task-{3,4,5,6,8}-review.md
审计排期批(P2×9+P3 簇,9 棒 SDD 全闭环)审查过程中沉淀的 5 项残留跟进。均为小件,非生产敞口。 ## 五项清单 ### ① 条目级 origin 生产写入方缺位(factor 域) - 出处:T3 审查 N1(commit 02acb48,P3-11) - 现状:monthly_batch.decomposer_new_names() 条目级 origin 分支=向前兼容位,但生产写入方(routes_pipeline.py:953 decompose)只写 version params,条目级分支永不触发;「人工显式改判退出」收敛出口生产不可用 - 建议:upsert_factor 增 origin 参数 + routes_pipeline decompose 透传 ### ② 控制台 graveyard 判决零回写(factor/api 域) - 出处:T4 审查 NOTE-D(commit 110f1a1,P2-10 病灶面延伸) - 现状:routes_pipeline.py:505-542 factor_verdict 控制台判死路径从不调用 writeback_card_death——D5 回写只活在 CLI,控制台判死=同病灶形态且零痕迹 - 建议:评估 factor_verdict 接 writeback_card_death(复用 T4 的 death_writeback_missed 留痕) ### ③ data_gaps.json 消费方适配标记件形状(api 域) - 出处:T5 审查 N1(commit c94ac8e,P2-11) - 现状:routes_pipeline.py:320-331 读 data_gaps.json 产管线告警——`{"manifest_missing": true}` 标记件形状使 join(True) TypeError 被 except Exception:pass 吞掉=告警面对最需告警场景仍零输出(不崩但无告警项) - 建议:消费侧识别标记件键并转化为可见告警项 ### ④ vps_pending_check.py 第三份 Gitea 地址字面量(infra 域) - 出处:T6 审查 N5(commit b75a3acc,P3-20 外溢) - 现状:scripts/ci/vps_pending_check.py:18 仍有同址硬编码第三份(P3-20 只收敛了 sanguo_factor 内两份) - 建议:改引 version_registry.GITEA_BASE_URL 或另提共享常量 ### ⑤ NaN ICIR 不触发 exam_gate fail-closed(factor 域) - 出处:T8 审查 NOTE-1(commit cbee9e4,P3-16 边角) - 现状:judge_exam 以 `is None` 判周期缺失,NaN ICIR 仍可搭 SUGGEST_PROMOTE——因子档 §7.7/:240 首年校准已记录的 defer 项,非本批回归 - 建议:缺周期判定扩 isnan(收编首年校准时一并闭合) ## 坐标 - 批次台账:.superpowers/sdd/progress.md(10-05 排期批段) - 审查报告:.superpowers/sdd/batch2-task-{3,4,5,6,8}-review.md
Author
Owner

追加第⑥项(T9 审查 NOTE-2):偏差 4 测试钉缺口——200 但体非 JSON → LLMError 走 502 已实现(client.py:73-76/121-124,commit 4725593)但无测试钉住;旧码该异常实际被路由层 except ValueError 兜住(JSONDecodeError⊂ValueError)非真裸 500,新语义仍更优。下一班 llm 相关班车顺手补一测试钉(MockTransport 返 200 text=非 JSON → LLMError)。

追加第⑥项(T9 审查 NOTE-2):**偏差 4 测试钉缺口**——200 但体非 JSON → LLMError 走 502 已实现(client.py:73-76/121-124,commit 4725593)但无测试钉住;旧码该异常实际被路由层 except ValueError 兜住(JSONDecodeError⊂ValueError)非真裸 500,新语义仍更优。下一班 llm 相关班车顺手补一测试钉(MockTransport 返 200 text=非 JSON → LLMError)。
Author
Owner

#91 六项全闭销项(10-07 开工批,计划=docs/superpowers/plans/2026-10-07-factor-followup-batch.md,7 棒 SDD 双裁定全过+全量回归 1682 绿):

项 收编 commit 备注
① 条目级 origin 写入方 upsert_factor 增 origin 参(合法 decomposer/manual,建条即落/幂等不覆盖/非法拒)+decompose 透传 97c0cd9 P3-11 条目级分支转正;已随 promote@5d5a9f2 上 NAS
② 控制台判死零回写 factor_verdict graveyard 分支接 writeback_card_death(复用 T4 降级留痕不阻断) 45de5e5 promote/revise 分支零变化
③ gaps 消费方标记件 todos() 识别 manifest_missing 键转 warn 告警项(稳定 id gap-manifest-missing) b7cc8fb 正常缺口形状循环不变
④ 第三份 Gitea 地址 vps_pending_check importlib spec 直载 version_registry.GITEA_BASE_URL(P3-20 单源) 622c768 infra 域代刀;首版包导入方案被三解释器验证门否决(CI 裸 python3 经包 init 缺 polars/3.9 死 PEP604),spec 直载绕开;docstring 勘正唯一调用方;待 infra 验收
⑤ NaN ICIR fail-closed judge_exam 缺周期判定扩 isnan(部分 NaN=INSUFFICIENT_PERIODS/全 NaN=DATA_INSUFFICIENT) 6f75059 defer 项提前闭合;已上 NAS
⑥ T9 偏差4 测试钉 200 非 JSON 体→LLMError 补 MockTransport 回归钉 e233e99 纯钉直接绿(LLMError 直继承 Exception=语义真钉);infra 批准代收

同批附带:P3-14 双机开单竞态→c8ba9ea(host 参权威单机制,NAS 单侧开单+vps 结构性拒开+双 wrapper 声明侧别,已随 peer push 在 origin)。②③④⑥+P3-14 待本推送(e8902c2..78e6bea)CI test 绿+手动 promote 上 NAS。

**#91 六项全闭销项**(10-07 开工批,计划=docs/superpowers/plans/2026-10-07-factor-followup-batch.md,7 棒 SDD 双裁定全过+全量回归 1682 绿): | 项 | 收编 | commit | 备注 | |----|------|--------|------| | ① 条目级 origin 写入方 | upsert_factor 增 origin 参(合法 decomposer/manual,建条即落/幂等不覆盖/非法拒)+decompose 透传 | `97c0cd9` | P3-11 条目级分支转正;已随 promote@5d5a9f2 上 NAS | | ② 控制台判死零回写 | factor_verdict graveyard 分支接 writeback_card_death(复用 T4 降级留痕不阻断) | `45de5e5` | promote/revise 分支零变化 | | ③ gaps 消费方标记件 | todos() 识别 manifest_missing 键转 warn 告警项(稳定 id gap-manifest-missing) | `b7cc8fb` | 正常缺口形状循环不变 | | ④ 第三份 Gitea 地址 | vps_pending_check importlib spec 直载 version_registry.GITEA_BASE_URL(P3-20 单源) | `622c768` | infra 域代刀;首版包导入方案被三解释器验证门否决(CI 裸 python3 经包 __init__ 缺 polars/3.9 死 PEP604),spec 直载绕开;docstring 勘正唯一调用方;**待 infra 验收** | | ⑤ NaN ICIR fail-closed | judge_exam 缺周期判定扩 isnan(部分 NaN=INSUFFICIENT_PERIODS/全 NaN=DATA_INSUFFICIENT) | `6f75059` | defer 项提前闭合;已上 NAS | | ⑥ T9 偏差4 测试钉 | 200 非 JSON 体→LLMError 补 MockTransport 回归钉 | `e233e99` | 纯钉直接绿(LLMError 直继承 Exception=语义真钉);infra 批准代收 | 同批附带:P3-14 双机开单竞态→c8ba9ea(host 参权威单机制,NAS 单侧开单+vps 结构性拒开+双 wrapper 声明侧别,已随 peer push 在 origin)。②③④⑥+P3-14 待本推送(e8902c2..78e6bea)CI test 绿+手动 promote 上 NAS。
Sign in to join this conversation.