Files
Jyotisha/TASK-report-longform-gaps2-20260906.md
T

113 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 任务书 · 长报告对齐二轮:真实参数下的装配缺口(2026-09-06)
基线:`origin/staging` 最新(开工 `git fetch` 后以 HEAD 为准;出稿时 `2dc454c9` 之后)。
## 背景
产品负责人用同一真实用户重新生成了 pl9 长报告 v2(253K/2690 行)对照本地 Agent 全量版(391K/3634 行)。委托方逐段对比结论:**骨架已对齐(一轮成果有效),剩余差距集中在"真实参数组合下的装配缺口"**——多个段在上一轮虚构盘验收里 `present`,在真实用户参数下却整段消失或空表。对照两份真实报告本身**不得入库**;下述差距清单已脱敏(只有段名与行数)。
## 差距定案(按段行数 diff,全量版 vs 新版)
**A · 同根因高嫌疑:KP 装配在真实参数组合下整体静默跳过**
| 段 | 全量 | 新版 |
|---|---:|---:|
| KP Lord / Sub 原始表(本地计算) | 138 | **整段缺失** |
| 事业章 KP 结构小表 + KP 宫位核对(2/6/10/11 宫)+ 逐月 MD/AD 表 | 47 行/3 子块 | 22 行/仅剩"冲突裁决"1 子块 |
| 财运/关系章同构 | 各 48/60 | 各 23/35 |
三年 KP 月度支持的**普通月表在**,缺的全是依赖 `cmd_kp` 细产物(Lord/Sub、Ruling Planets、ABCD 显著星)的段。虚构盘 `present`、真实盘 missing → 输入相关的条件分支或键名在真实参数(候选窗传入 / raman / 具体时刻组合)下未命中,且**静默跳过无任何痕迹**。
**B · 独立装配 bug**
| 段 | 全量 | 新版 |
|---|---:|---:|
| 逐模块执行与结论追踪审计 | 77 | **5(表头在、零数据行)** |
| 力量章缺 6 子块:Bhava Bala、Yogini Dasha 周期、Narayana Rashi Dasha、Kala Chakra Dasha + 深度差异诊断 + 参考对齐 | 421 | 232 |
| 2028 KP 月度支持缺"Patyayini 外部回放""年度 Saham 外部回放"两子块(回放未按年展开;2027 是否同缺需逐年核对) | 227 | 110 |
力量章六子块的数据源都是本地模块(bhava_bala / yogini / narayana / kala chakra),与未 vendor 的 master-pack 无关,属于装配漏挂。
**C · 小段补齐**
原始模块索引与未下沉字段附录(80 行,整段缺);Profile-aware Benchmark Boundary67 行,整段缺);校时附录·分钟排行表(5 行;敏感度矩阵主体已工作,窗口/代表分钟/稳定层都在);完整 Technique Audit Table18→5);校时证据领域合同(19→7);Vargas I(-71);第二证据轴(-21);时间与年度提醒(-12)。
**D · 豁免(不补)**
全量版的"1993-08-29 版本对照覆盖表 / 本版相对短版的实质优化 / 成品判定"是 Agent 拿两个历史版本写的个案对照,生成器不应硬造。
## 硬红线
1. **静默跳过禁令(本轮防复发核心)**:任何计划内报告段因输入缺失/条件不满足而不能装配时,必须输出显式的 blocked/missing 行(段名 + 原因码),不得整段无声消失。上一轮覆盖表验收被虚构盘骗过,就是因为缺席不可见。
2. **验收必须加"真实参数组合"维度**:除虚构基础盘外,构造一个**虚构但参数同构**的盘(带候选窗、raman、同样的 pack/flags 组合)复现 A 组缺失后再修;修复验收用同一同构盘。真实用户资料仍不得入库。
3. 诚实标签延续:Muntha conflict、pyjhora_behavior_only、blocked 一律不涂色;外部回放仍是黑盒 wrapper,不 vendor AGPL。
4. 其余既有红线延续(不改 `.gitea/workflows/**`、不提升 main、`./node_modules/.bin/tsc`、隐私日志边界)。
## 开工前置
```bash
git fetch origin --prune
git worktree add -b codex/report-longform-gaps2-20260906 \
../.worktrees/report-longform-gaps2-20260906 origin/staging
```
先读 `docs/tasks/PROGRESS-report-longform-parity-20260905.md`(一轮让步清单)、`scripts/jyotish_engine.py` 的 pl9-export 装配段、`scripts/kp_monthly_report_packet.py``scripts/annual_pyjhora_replay.py`
## 任务
### 任务 0(P0,门控)· 复现 A 组缺失并定位共同根因
用参数同构虚构盘本地跑 pl9-export,确认 KP Lord/Sub 表与专题三表缺失可复现;定位触发变量(候选窗传入路径 / ayanamsa / 时刻边界 / pack 组合)与静默跳过的具体分支。PROGRESS 写明根因与触发条件。
### 任务 1(P0)· KP 装配回归 + 静默跳过禁令落地
A 组段在同构盘下全部回来;所有计划内段的装配失败路径改为显式 blocked 行(红线 1),并加"段落清单完整性"测试:给定 pack 清单,产出的标题集合必须覆盖计划段(present 或 blocked,不允许缺席)。
### 任务 2(P0)· 逐模块审计表零行修复
审计行数据源接通;测试锁:full pack 下审计表数据行 ≥ 模块执行数下限。
### 任务 3(P1)· 力量章六子块装配
Bhava Bala / Yogini / Narayana 明细 / Kala Chakra(含差异诊断与参考对齐)从本地模块装入;缺数据走显式 blocked 行。
### 任务 4(P1)· 外部回放按年展开
Patyayini / 年度 Saham 回放对三个目标年逐年执行;某年环境不可回放时输出显式 blocked 行注明年份。逐年核对 2026/2027/2028 三节的子块清单一致。
### 任务 4b(P1)· 时间精度合同分级版同步
产品负责人追查发现:新版"时间精度合同"四粒度全 blocked、允许/禁止结论全空,根因是**两仓版本漂移**——上游 yinduzhanxing 的 `scripts/timing_precision_contract.py` 是 56 行分级版(输出 `tiers`day 恒 blocked、week/month `parameter_sensitive` 候选观察窗、year 在年度返照系列存在时 `partial_verified`),本仓是 26 行精简版无 `tiers`,渲染层 `timing_contract.get('tiers', {})` 拿空 dict 全落默认 blocked。按上游语义同步分级实现(MIT 自有代码,可直接移植),保持 day 恒 blocked 的诚实边界;测试锁四粒度的状态与允许/禁止文案来源。
### 任务 4cP1)· 出生资料 provenance 接线
"出生资料来源与不确定范围"段全 `not_recorded` 不是没读到出生时间/地点(排盘正常),而是 `birth_provenance` 的可选参数(`--birthplace-label` / `--coordinate-source` / `--time-source` / `--uncertainty-minutes`engine ~:2032-2036)两条生成路径都没传——全量版同段也是 not_recorded,属两版共同缺口。产品侧数据已存在:附录路由把 `profiles.birth_place_label`、出生时间来源(`birth_time_status`/`birth_time_source`)、校正不确定范围(有候选窗时按窗宽换算)传入 payload,引擎侧 API 路径接收同名字段进 `birth_provenance`。坐标来源/精度按真实情况传(用户自报即 `user_reported`,不得虚标 hospital-grade——该段边界文案就是防这个的)。CLI 帮助文档同步。
(说明:'事件回放校验 blocked / user_history_not_supplied' 是设计而非缺陷——需要用户提供人生事件清单才解锁盲回放,全量版同样 blocked;本轮不改。若产品未来想把校正流程收集的事件在授权下喂给回放轨道,另立项。)
### 任务 5P2)· 小段补齐
C 组逐项:分钟排行表、原始模块索引附录、Profile-aware Benchmark Boundary、Technique Audit Table 行数、校时证据合同、Vargas I / 第二证据轴 / 时间与年度提醒的缺行核对(能补则补,受限材料保持诚实 missing 并在对照表注明)。
### 任务 6(P0 收尾)· 同构盘对照验收
同构盘产物与全量版做逐段行数对照表(沿用本任务书差距表格式),A/B 组段全部 present 且行数同量级;C 组给出补齐/豁免逐项结论;产品侧真实用户重新生成一次附录复核(由委托方或产品执行)。
## 不在本轮范围
- D 组个案层;五章叙事管线;vendor `professional_parity_closure`(仍走本地模块 + 诚实 blocked);Muntha producer 仲裁。
## 收尾
`docs/tasks/PROGRESS-report-longform-gaps2-20260906.md`BUG_HISTORY 条目(A 组静默跳过、审计表零行各记一条,编号对远端);推送后核对 health(部署链已于 09-06 恢复:附录迁移 migrate 2431 落地、deploy 2432 起正常,当前 `database.latestMigration=20260906010000``requiredMigrationsPresent=true`;此句替代出稿时的过期提醒);不提升 main。
## 交付物清单
1. 任务 0 根因与触发条件
2. KP 装配回归 + 段落清单完整性测试 + 静默跳过禁令落地
3. 审计表修复 + 行数下限测试
4. 力量章六子块 + 按年回放展开
5. C 组逐项结论
6. 同构盘逐段对照表(present/blocked/行数)+ 真实附录复核记录
7. 全套质量门实际输出 + PROGRESS + BUG_HISTORY