Files
Jyotisha/docs/tasks/PROGRESS-pl9-render-split-20261013.md
T
jesse-uxandGrok (agent loop) dbba127e71 拆分报告渲染函数的第一阶段,把 34 个无外层依赖的辅助函数搬到 report_render。
同一份真实盘包在屏蔽与不屏蔽 PyJHora 下新旧渲染 sha 都一致,各 24 项且退出码 0。指定 pytest 233 通过、3 跳过。

Co-Authored-By: Grok (agent loop)
2026-10-15 20:59:11 +08:00

3.3 KiB
Raw Blame History

PROGRESS · 报告渲染函数拆分第一阶段

  • 日期:2026-10-15
  • 分支:codex/pl9-render-split-20261013
  • 基线:origin/staging 32b238cf8619cfab4b1107059ec997c974eb0d13
  • 范围:只做任务书第一阶段。不改 BUG_HISTORY(开工最大号 BUG-1357,本单不占号)、CHANGELOG、前端、API 服务器。

做了什么

把 render_pl9_markdown 里不依赖外层数据的 34 个嵌套函数原样搬到 scripts/report_render/。函数体只把 planet_label_cn 改成模块常量 PLANET_LABEL_CN。SIGNS / SIGNS_CN 按原字面量抄到 text.py,避免新包顶层导入引擎。

模块 函数
envelope.py _unwrap _envelope_list _envelope_dict _bool_text _source_dict _has_executed_payload
text.py _humanize_reader_token _humanize_reader_group _humanize_tajika_candidate _humanize_tajika_motion _display_rashi_from_value _humanize_reader_summary_line _humanize_annual_highlight_line _humanize_annual_narrative_highlight _humanize_domain_title _workbook_readable_label _workbook_readable_sentence _workbook_reading_paragraph _md_cell _render_compact_payload _sign_text _value_text _compose_narrative_paragraph _append_unique_text _planet_list_text
sections_misc.py _render_boundary_packet_summary_line _status_from_report_pack_section _section_evidence_boundary _domi_pl9_current_gap_appendix _chart_planets_from_positions _kp_house_focus_text _high_value_theme_authority_sentence _kp_conflict_adjudication_sentence _prashna_exact_cusp_boundary_sentence

排除

  • _degree_text:函数内定义两次,本阶段不搬。
  • _sign_degree_text、_longitude_text:任务书点名与度数簇一起排除。
  • _profile_aware_benchmark_appendix:要读引擎里的 _blocked_planned_section 和 ROOT_DIR。新包不能顶层导入引擎,否则成环,也过不了干净进程导入测试。
  • 依赖外层数据、或调用上述未搬函数的嵌套函数:留给下一阶段。

前后

项 搬之前 搬之后
render_pl9_markdown 行数 6917 6506
嵌套函数 148 114

行数少了 411,嵌套函数少了 34。没有改既有断言。

检查

检查 命令 结果数字
未搬移,不屏蔽 report_render_split_diff.py 退出码 0,24 项
未搬移,屏蔽 同上 --mask-pyjhora 退出码 0,24 项
搬移后,不屏蔽 同上 退出码 0,24 项
搬移后,屏蔽 同上 --mask-pyjhora 退出码 0,24 项
指定 pytest + 隐私扫描 .venv\Scripts\python.exe -m pytest 任务书列表与 tests/test_repo_privacy_markers.py 退出码 0;236 收集,233 通过,3 跳过,0 失败

同一轮里,基线工作树和新代码渲染同一份 pickle,24 个 sha 全部相同。完整数据版中英 8 个 sha 在四轮里不变。屏蔽那轮曾有一次基线对基线不一致:夜间盘接口响应里年主重放一会儿是超时、一会儿是导入失败。这是屏蔽后的外部重放抖动,不是这次搬函数引入的。原样重跑后退出码 0。

偏离

任务书预期行数下降约 600 到 900。实际 411,因为上面三个排除项里有一份 142 行的附录。没有做第二阶段及以后。