diff --git a/docs/tasks/TASK-upstream-sync-20260903.md b/docs/tasks/TASK-upstream-sync-20260903.md index 0ee8b5fd..69b209dd 100644 --- a/docs/tasks/TASK-upstream-sync-20260903.md +++ b/docs/tasks/TASK-upstream-sync-20260903.md @@ -149,6 +149,12 @@ git -C /workspace/yinduzhanxing rev-parse HEAD 2. **低冲突计算模块**:`varga.py`、`tajika.py`、`tajika_kernel.py`、`kp_system.py`、`narayana_dasha.py`、`ashtottari_dasha.py`、`gulika.py`、`ayanamsa_utils.py`、`domain_calculation_service.py`、`run_quality_gate.py`、`report_orchestrator.py`、`report_pack_contract.py`。按硬红线 5 裁决。`run_quality_gate.py` 的 `RELEASE_CRITICAL_UNTRACKED_PATHS` 与门禁范围不得被上游改窄。 3. **高冲突入口文件**:`unified_consultation_orchestrator.py`(取 `route_surface_contract` 与 finance 别名、health 路由的 `focus_techniques` 与 `evidence_packet_required_sections`;专家判断影子层只在其依赖模块可解析时取)、`mcp_server.py`(取三个新工具,前提是 `pl9-export` 已可运行)、`jyotish_api_server.py`(保留本仓全部商业路由;上游 nadi leaf assistant 路由不取)、`jyotish_engine.py`(`_build_ai_prompt_pack` / `cmd_full_reading` / `cmd_varga_full` / `cmd_dasha` / 叙事种子生成器 / `pl9-export` 相关函数按硬红线 5 取;`cmd_classical_*` / `cmd_nadi_*` 全部不取;`main` 中对应子命令注册不取)。 4. 校正相关文件按硬红线 3 跳过。 +5. **引擎运行时读取的数据文件,按下面规则处理**(2026-09-03 核实:批 B 计算模块 muhurta / jaimini / narayana_dasha / ashtottari_dasha / varga / western_timing_engine / solar_return 不读任何数据文件;`yoga_rules.json`、`saham_rules.json`、`assets/**` 本仓与上游逐字节一致;算法不依赖上游证据台账): + - **必须带入**(引擎运行时无守护地读取、内容是状态/合同元数据、无隐私):`scripts/kp_system.py` `kp_maturity_profile()` 读的四个文件 `references/oracle/kp_exact_cusp_closure_dashboard_2026_08_22.json`、`kp_exact_cusp_mainline_status_2026_08_22.json`、`kp_12_cusp_numeric_oracle_readiness_2026_07_23.json`、`kp_real_event_replay_gate_2026_07_30.json`。不带入则合并后 KP 分析路径直接抛异常。带入前逐个打开确认无出生资料。 + - **应同步的产品面内容**(非研究台账):`references/interpretation_template_registry.json`(上游 +145 行,报告生产者索引它)、`references/ai-reading-workflow-prompt.md`、`references/mandatory-verification-gate-protocol.md`,走语义合并。 + - **不带入、靠守护降级**:`_event_replay_contract` 读的 `references/oracle/1993_birth_time_candidate_segment_table_2026_08_23.json`(上游作者本人出生案例,隐私,代码已 try/except)、`_build_timing_boundary_attribution` / `_profile_aware_benchmark_appendix` / `_load_rectification_evidence_contract` 读的状态文件(均已守护,缺失时该段显示 blocked / unavailable,这是保守方向,可接受)。PROGRESS 记录哪些段因此为 blocked。 + - **随研究子命令一起不取**:`references/nadi_low_risk_rule_pack_draft.json`、`references/real_case_calibration/classical_doctrine_loci_manifest_2026_08_28.json`、`references/chat_safety_audit_manifest.json`。 + - 通用规则:合并后 `grep` 引擎入口文件里所有 `references/` / `docs/` 路径字面量与 `Path(...) / 'references'` 拼接,逐一核对本地存在性;不存在且无守护的,要么按上面带入,要么加守护返回 `blocked`,不得让缺文件变成运行时异常。 5. 合并完成后重新采集任务 0 的 golden,跑契约测试;用虚构数据实跑一次 `python scripts/jyotish_engine.py full-reading` 与 `/api/consultation_workflow`(career / wealth / health 三题),确认 `modules` 里没有新增 `status=failed` 的模块。 ### 验收