docs(tasks): #91 stage A fix brief (agent loop, first rejection)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
c30387e50a
commit
42898f6ead
@@ -517,9 +517,10 @@
|
||||
| `TASK-chart-ascendant-slash-20261021.md` | `PROGRESS-chart-ascendant-slash-20261021.md` | #87 上升状态格「不适用」改「/」+ 悬停 / 点按说明;报告上升行同改并在表下加说明(推翻 10-15 口径) | 已合入 staging | `codex/chart-ascendant-slash-20261021` |
|
||||
| `TASK-report-english-han-leak-20261021.md` | `PROGRESS-report-english-han-leak-20261021.md` | #89 个人报告英文版约 4 成整份丢弃:漏译汉字源头补英文孪生字段、修吃空格;200 张固定种子回归 + 快速门 smoke(复发自 BUG-1272);中文逐字节不变 | 已合入 staging | `codex/report-english-han-leak-20261021` |
|
||||
| `TASK-chart-dasha-yogini-20261021.md` | — | #88 星盘页大运右栏切换 Chara / Yogini,Yogini 补小运(按比例,内部核对,页面注明未经外部软件核对);Ashtottari 另立单(起运表与 PyJHora 8/12 宿不一致) | 已合入 staging | `codex/chart-dasha-yogini-20261021` |
|
||||
| `TASK-full-data-parity-1-20261021.md` | — | #91 完整数据版补齐(一):A 段渲染(中文附录改中文源、71 小节归 6 章、导出星座名)→ B 段引擎(Yogi 点、标准大运子运、Kalachakra 简化子运、年运三年全展开、36 个月星历、解释补长);不设大小上限 | 待领取(等 #89 合入;T3 与 #90 串行) | `codex/full-data-parity-1-20261021` |
|
||||
| `TASK-full-data-parity-1-20261021.md` | — | #91 完整数据版补齐(一):A 段渲染(中文附录改中文源、71 小节归 6 章、导出星座名)→ B 段引擎(Yogi 点、标准大运子运、Kalachakra 简化子运、年运三年全展开、36 个月星历、解释补长);不设大小上限 | A 段第 1 次打回,修复单见下行 | `codex/full-data-parity-1-20261021` |
|
||||
| `TASK-goel-jaimini-strength-20261022.md` | `PROGRESS-goel-jaimini-strength-20261022.md` | #94 搬上游公开的 Goel Jaimini 强度与 Brahma / Maheshwara / Rudra(4 个上游原样文件,按 #81 决策 A 先例根目录预算 448→452;来源串改书目引用);只做计算、不改报告;冻结身份不变 | 已合入 staging | `codex/goel-jaimini-strength-20261022` |
|
||||
| `TASK-chart-subject-table-fix-20261022.md` | `PROGRESS-chart-subject-table-fix-20261022.md` | **#86 第 1 次打回**:报告所有表被强制单行(打印跑出纸面);保存他人复制了档案页代码且已分叉;点编辑框内边距会丢修改 | 已合入 staging | `codex/chart-subject-table-20261021` |
|
||||
| `TASK-full-data-parity-3-20261022.md` | — | #93 完整数据版补齐(三):「独立年度方法参考」正式环境调 PyJHora(子进程隔离;装上后其余输出逐字节不变,7 个换路径开关钉死);输入默认用本地时间与正确年份(D6 待产品确认) | 待领取(等 #91 合入) | `codex/full-data-parity-3-20261022` |
|
||||
| `TASK-synastry-staging-fix-fix-20261022.md` | `PROGRESS-synastry-staging-fix-fix-20261022.md` | **#85 第 1 次打回**(T7~T11 主体通过):新地址没登记进路由清单致快速门红;CHANGELOG 与 T11 矛盾;侧栏点亮测试是空断言 | 已合入 staging | `codex/synastry-staging-fix-20261021` |
|
||||
| `TASK-report-english-han-leak-fix-20261022.md` | `PROGRESS-report-english-han-leak-fix-20261022.md` | **#89 第 1 次打回**:改了冻结的校正打分文件 `jaimini.py`;测试的 PyJHora 屏蔽没传到子进程(测的不是生产那份报告,也是慢的原因);缺英文时留空藏住漏洞 | 已合入 staging | `codex/report-english-han-leak-20261021` |
|
||||
| `TASK-full-data-parity-1-fix-20261022.md` | `PROGRESS-full-data-parity-1-20261021.md` | **#91 A 段第 1 次打回**:新六章 69 节里 16 节在三张虚构盘上整节「未判定」,其中 12 节数据在资料包里、是读错了字段;测试抓不到整节未判定;新六章绕过了报告口径替换;中文附录悄悄丢列和瑜伽条目要量出来 | 待执行 | `codex/full-data-parity-1-20261021` |
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
# 修复单:完整数据版补齐(一)A 段(issue #91,第 1 次打回,2026-10-22)
|
||||
|
||||
- 被验提交:`aed9de537`(分支 `codex/full-data-parity-1-20261021`,A 段 T1~T3)
|
||||
- 原任务书:`TASK-full-data-parity-1-20261021.md`
|
||||
- 执行方:Grok。同一分支继续,只推这个分支;本修复单做完才进 B 段。BUG 编号 1416、1417 保持不变,新问题从当时最大号 +1 起。
|
||||
|
||||
## 验收结论(Claude,Linux)
|
||||
|
||||
做对了的:中文附录改由同一渲染函数按中文字段出,回译路径已删;Dosha 摘要改读 `has_dosha` 等结构化字段,无火星煞的盘中英都写「无 / No」,部分时蛇煞写出「7 颗中 5 颗」;友敌矩阵读 `rows`;六章标题中英一一对应;Narayana 两种口径分列;Goel 一节带出处;导出图盘列表中文用中文星座名;冻结文件交集为空;中英卫生门为 0。
|
||||
|
||||
**未通过:T2「A、B 类每节出现且非空」。** 新六章共 69 节,Claude 用任务书指定的 0、1、9 号虚构盘(屏蔽 PyJHora)逐节统计:**16 节在三张盘、中英两版里整节只有「未判定 / Not determined」**。其中 12 节的数据在资料包里是有的,是渲染函数读错了位置或字段名;现有测试只检查「节不为空」,整节「未判定」也算通过,所以没拦住。
|
||||
|
||||
## J1 · 有数据却整节「未判定」(必修)
|
||||
|
||||
下表是 Claude 在 0 号虚构盘的资料包里查到的实际位置(以 `build_professional_report_reference_packet` 的输出为准,开工时自行核对):
|
||||
|
||||
| 节 | 现在读的 | 资料包里实际的 |
|
||||
| --- | --- | --- |
|
||||
| Vimsopaka Contribution | `strengths_and_scores.vimsopaka.planets` | `strengths_and_scores.vimsopaka.<行星>`(直接以行星为键,含 `total_score`、`category`、`varga_scores`) |
|
||||
| Karakamsha | `jaimini.karakamsha` 的 `planet / sign / house` | `advanced_systems.jaimini.karakamsha` 的 `karakamsha_sign`、`karakamsha_degree`、`karakamsha_lord` |
|
||||
| Darakaraka | 同上 | `advanced_systems.jaimini.darakaraka` 的 `dk_planet`、`dk_sign`、`dk_house`、`dk_degree`、`d9_sign`、`d9_dignity` 等 |
|
||||
| D9 Dignity | `varga_full.D9` / `Navamsa` | `divisional_and_special_charts.varga_full.D9_Navamsa`,行星直接是键(另有 `_meta`、`Ascendant`) |
|
||||
| Divisional Mapping | 各分盘 `ascendant.sign` | 键名形如 `D9_Navamsa`,上升在 `Ascendant.sign`(大写) |
|
||||
| D30 States、D30 Source Input | — | `varga_full.D30_Trimsamsa`;Shadbala 的 `sthana_bala.sapta_d30` |
|
||||
| Avastha Inputs | — | `advanced_systems.avasthas.<行星>.avasthas` |
|
||||
| Dispositor Terminals | — | `advanced_systems.final_dispositors`(行星 → 终点星)、`advanced_systems.dispositor_chains` |
|
||||
| Sudarshana Points | — | `divisional_and_special_charts.sudarshana.raw.reference_points` |
|
||||
| Bhava Chalit Centres | — | `divisional_and_special_charts.bhava_chalit.raw`(宫心 / 宫界在 `raw` 下) |
|
||||
| Natal Saham Formula Basis | — | `advanced_systems.sahams.<名>_saham` |
|
||||
| Dated Transit | — | `timing_and_predictive_systems.transit_multi_reference`、`advanced_systems.nakshatra_dasha.transit_overlay` |
|
||||
|
||||
另 4 节(Navamsha AD Duration、Pancha Pakshi、Rashi Tulya Navamsa,以及你回报里说的逐领域收敛)在公开资料包里只出现在 `raw_module_usage_map`,确实没有数据。这 4 节保留「未判定」,但每节第一行写一句原因(例如「公开报告资料包未带此模块」/ "This module is not in the public report packet"),并在 PROGRESS 列出;是否在 B 段把模块接进资料包,由 Claude 验收时再定。
|
||||
|
||||
验收:上表 12 节在 0、1、9 号盘中英两版都至少有一行真实数据(不是「未判定」)。
|
||||
|
||||
## J2 · 测试要能抓住「整节未判定」(必修)
|
||||
|
||||
`tests/test_full_data_parity_chapters.py` 加一条:0、1、9 号盘中英两版,每节至少一行数据单元格不全是「未判定 / Not determined」;允许整节未判定的节写成测试里的白名单(只放 J1 末尾那 4 节),每项带一句原因。白名单之外出现整节未判定,测试失败。
|
||||
|
||||
## J3 · 新六章绕过了报告口径替换(必修,小)
|
||||
|
||||
`render_full_data_markdown` 现在先跑 `_apply_local_report_conventions`(「必然→可能」「divorce→relationship strain」、去掉 BUG-1210 本地加减分等),**之后**才 `_append_parity_chapters`,所以新六章不经过这层(红线 7)。改成先拼六章、再统一跑口径替换(中英两路都改)。加一条测试:给某节源字段塞入「必然」/ `divorce`,渲染结果里已被替换。
|
||||
|
||||
## J4 · 中文附录里被悄悄丢掉的内容要数出来(必修,只量测)
|
||||
|
||||
中文附录有三处会不声不响地丢内容:
|
||||
- 年运等表只保留 `FIELD_ZH` 里有中文名的列(`keys = [field for field in keys if field in FIELD_ZH]`);
|
||||
- 可用瑜伽表的「作用」里,带英文连接词的条目被删掉;
|
||||
- 「组合」带英文连接词时整格变成「未判定」。
|
||||
|
||||
跑 200 张扫描时顺带统计这三处各丢了多少(列名清单、条目数、受影响的盘数),写进 PROGRESS。被丢掉的列只要补一个中文列名就能印的,直接补进 `FIELD_ZH`;瑜伽条目是中文源字段本身带英文的,列出源头(`yoga_rules.json` 哪条或哪个函数),交 Claude 判断,本单不改源头。
|
||||
|
||||
## 顺手(小)
|
||||
|
||||
- 回报里说「阅读页里另一处中文叙述仍可能带英文星座名」:PROGRESS 写清是哪个文件哪个函数、在什么情况下出现。只改一处映射就能修的,本单修并加断言;否则留给 Claude 另立单。
|
||||
|
||||
## 交回前必跑
|
||||
|
||||
- `pytest tests/test_full_data_parity_chapters.py tests/test_full_data_parity_appendix.py tests/test_report_english_sweep_smoke.py` 及原任务书第 7 节列出的文件。
|
||||
- 200 张英文扫描(屏蔽 PyJHora)。
|
||||
- `tsc --noEmit`、`npm run lint`(若又动了前端)。
|
||||
- 快速门、全量 pytest、前端全量与 build 由 Claude 复验。
|
||||
Reference in New Issue
Block a user