docs(tasks): upstream sync brief — surface coverage matrix, rectification freeze rationale, task 6 wiring new engine fields
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VawU7Xfd5jS9wUEXz1XYmS
This commit is contained in:
@@ -97,7 +97,7 @@
|
||||
|
||||
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `TASK-upstream-sync-20260903.md` | — | 上游快照推进到 `a6f47abd`、引擎三方合并、health 三窗 / VedAstro REST 桥 / 专业报告导出 | 待领取 | — |
|
||||
| `TASK-upstream-sync-20260903.md` | — | 上游快照推进到 `a6f47abd`、引擎三方合并、health 三窗 / VedAstro REST 桥 / 专业报告导出 / 新字段接聊天与报告;校正本轮冻结不同步 | 待领取 | — |
|
||||
|
||||
## 命名与归档
|
||||
|
||||
|
||||
@@ -53,11 +53,20 @@
|
||||
- **授权不包括**:接收上游约 640 个研究脚本、150 万行证据台账、750 个研究测试、两份 PDF、`skills/financial-astrology`、上游版校正 skill;修改岁差默认值(保持 Raman,见 `TASK-repo-hygiene-20260903.md`);放松写作 agent 输入隔离;改数据库结构;改 `.gitea/workflows/**`。
|
||||
- **注册表新增 25 项的商业状态默认规则**:凡网页路径(`/api/consultation_workflow`)没有实际执行的,覆盖层一律 `research_only_blocked`;只有 `scripts/full_technique_invocation_matrix.py` 证明会执行的才可写 `partial` 或 `reference_only`。不得因上游写 `covered` 就进确定性结论。
|
||||
|
||||
## 三个产品面的覆盖对照
|
||||
|
||||
| 产品面 | 上游相关变化 | 本任务书落点 |
|
||||
| --- | --- | --- |
|
||||
| 普通聊天(`/api/consultation_workflow` → 折叠技法审计表) | finance 别名、health 三窗、Ashtottari 状态、`_build_technique_audit_table` / `_build_module_execution_audit`、叙事种子 `timing_narrative`、`planetary_friendship` 模块 | 任务 1(覆盖层与路由文档)、任务 2(引擎合并)、任务 3(health)、**任务 6(把新字段接到响应与前端)** |
|
||||
| 生时校正(`/api/rectification/*`、`/api/active_rectification_events`) | `3bb90620` 分钟收窄、`d5b83c71` `compare_candidate_minutes` + 事件域注册表、`dbb9804a` 弹性流程、上游便携版校正 skill v2.0.0 | **本轮不同步**,理由见硬红线 3 的补充说明;解冻后另开任务书评估 `compare_candidate_minutes` 与事件域注册表 |
|
||||
| 报告生成(个人报告管线、报告中心) | health 主题、`pl9-export`、解读模板注册表 +145 行、`timing_narrative` / `pratyantar_dasha_timeline` / `planetary_friendship` 可作解读性事实 | 任务 1(模板注册表)、任务 3(health 主题)、任务 5(专业导出)、任务 6(新字段进 bundle) |
|
||||
|
||||
## 硬红线
|
||||
|
||||
1. **方向单向。** 只从 `/workspace/yinduzhanxing` 读,不得向其写入、提交或推送;不得改 `sync_policy.v2.json` 的方向、受保护路径与最小保护集。
|
||||
2. **受保护路径不接收上游内容**:`skills/jyotish-birth-time-rectification/**`、`skills/jyotish-vedic-astrology/**`(只能新增版本目录,不能改既有版本)、根 `SKILL.md`(只允许语义合并本任务书列出的三段)、`frontend/**`、`deploy/**`、`.gitea/**`、`references/oracle/commercial_skill_truth_overlay.v1.json`(只允许按决策记录新增条目)。
|
||||
3. **校正冻结。** `scripts/active_rectification_questions.py`、`scripts/active_rectification_events.py`、`scripts/active_rectification_event_engine.py`、`scripts/birth_time_rectifier.py`、`scripts/candidate_time_sensitivity_scan.py` 及一切 `minute_rectification_*` / `dynamic_rectification_*`:**本轮不合并上游改动**,在 PROGRESS 记录"跳过、上游改了什么"即可。
|
||||
补充说明(2026-09-03 核实):上游自快照以来对校正的改动只有四个提交。`3bb90620`(08-31 "improve rectification minute narrowing")新增 `_known_case_regression_hint`,对 `1993-04-17` 出生时间直接读作者本人的已知案例标定文件并把 `14:49` 当作回归目标,**这就是 `docs/tasks/TASK-rectification-*` 与 BUG 历史里定性过的答案泄漏**,产品仓已核实干净,绝不能合回来。`a9058663` 的便携版校正 skill 是 v2.0.0 独立谱系,与本仓 v10.0.14 服务器权威 Case 模型不同源,属受保护路径。`d5b83c71` 的 `compare_candidate_minutes` 与 `references/rectification_evidence_contract_v1.json`(事件域注册表)和 `dbb9804a` 的弹性流程是**可能有价值的候选**,但本仓校正正处于"冻结新行为直到浏览器走查清零"期(2026-09-03 产品决定),本轮只在 PROGRESS 记录其内容,解冻后另开任务书评估。
|
||||
4. **咨询响应契约不得变形。** `/api/consultation_workflow` 响应里前端已读取的键路径与类型(任务 0 的 golden 快照)改后必须逐一存在且类型一致;上游改动只允许**新增**键,不得改名、删键、改形状。`frontend/tests` 里的契约测试与 `tests/test_api_server_growth_contract.py` 等 Python 契约测试必须绿,不得改断言来迁就(除非断言锁的就是本轮要改的注册表计数或 README 徽章,改动处注明原值原因并在 PROGRESS 单列)。
|
||||
5. **合并冲突的裁决规则**:商业侧函数体优先;上游改动仅在(i)纯新增函数/子命令且其 import 在本仓可解析,或(ii)修的是计算正确性且本仓同函数无商业改动时才取。任何 import 了本仓不存在模块的上游代码块一律不取,不得为了让它跑而顺手拖入研究脚本。每处冲突的取舍写进 PROGRESS 的冲突表。
|
||||
6. **隐私与体积**:不得引入 `.pdf`、私有出生资料、PL9 参考报告原文、`review-only` 全量 payload;`scripts/public_release_privacy_scan.py` 与 `scripts/commercial_privacy_artifact_scan.py` 必须过。fixture 一律用虚构 smoke 出生数据。
|
||||
@@ -91,7 +100,7 @@ git -C /workspace/yinduzhanxing rev-parse HEAD
|
||||
- `frontend/src/lib/personal-report-generation.ts`、`report-theme-evidence-plan.ts`、`personal-report-route-core.ts`、`consultation-methodology.ts`
|
||||
- 上游:`docs/architecture/professional_report_reference_contract_v1.md`、`docs/research/vedastro_rest_bridge_default_decision_2026_09_01.md`、`docs/research/ashtottari_primary_text_verification_2026_09_01.md`、`references/strict-workflow-router.md` §7
|
||||
|
||||
**串行顺序**:任务 0 → 1 → 2 在分支 `codex/upstream-sync-20260903` 上完成并验收后合入 staging;任务 3 / 4 / 5 在其上另开 `codex/upstream-capabilities-20260903`,三者可以并行但推送串行。任务 4 不依赖任务 2,如需提前可单独分支。
|
||||
**串行顺序**:任务 0 → 1 → 2 在分支 `codex/upstream-sync-20260903` 上完成并验收后合入 staging;任务 3 / 4 / 5 / 6 在其上另开 `codex/upstream-capabilities-20260903`,任务 6 先于任务 3 做(任务 3 的 health 种子沿用任务 6 打通的透传路径),其余可并行但推送串行。任务 4 不依赖任务 2,如需提前可单独分支。
|
||||
|
||||
---
|
||||
|
||||
@@ -218,10 +227,29 @@ git -C /workspace/yinduzhanxing rev-parse HEAD
|
||||
|
||||
---
|
||||
|
||||
## 任务 6(P1)· 把合并进来的引擎新字段接到聊天与报告
|
||||
|
||||
任务 2 只是把上游代码合进引擎;`/api/consultation_workflow` 的 `ai_prompt_pack` 是 `scripts/jyotish_api_server.py` 自己的精简版 `_build_chart_prompt_pack`,前端的报告提取层又是 allowlist 制,**不做这一步,聊天和报告什么都不会变**。
|
||||
|
||||
### 做法
|
||||
|
||||
1. **响应侧(只新增键)**:在 `_compute_consultation_workflow` / `_build_chart_prompt_pack` 里新增并透传:`timing_narrative`(上游 `_build_timing_narrative_payload(modules)`,结构对齐既有 career / relationship / finance 种子)、`modules.planetary_friendship`(上游 `_build_planetary_friendship_snapshot`)、`module_execution_audit`(上游 `_build_module_execution_audit`)、`pratyantar_dasha_timeline`(上游在 `cmd_dasha` 里挂的,需要在 workflow 的 dasha 子周期里同样挂上)。上游 `response_envelope` 键是纯附加,透传或忽略都可以,不得据此改既有键。任务 0 的 golden 重新采集后必须是超集。
|
||||
2. **聊天侧**:折叠技法审计表新增 `planetary_friendship` 与 `module_execution_audit` 派生的行(executed / blocked / not_applicable 三态照旧);Ashtottari 行按任务 1 覆盖层的 `partial` 显示为"参数敏感、未验证",不得显示 executed 为确定性;finance / wealth 别名在审计表与路由展示一致。`_build_chart_prompt_pack` 里给聊天模型的证据快照加 `timing_narrative`,长度上限与既有种子一致。
|
||||
3. **报告侧**:`personal-report-generation.ts` 的 `interpretiveFacts` allowlist 加 `planetary_friendship`(只取友敌等级表,不取自由文本)与 `pratyantar_dasha_timeline`(只取当前与下一段的边界日期),`themeNarrativeSeeds` 加 `timing_narrative`(timing 主题);沿用 `filterReportEvidenceBundleForSection` 按主题裁剪;净化、长度上限、hash 覆盖与 `TASK-report-skill-parity-20260901.md` 的规则一致。timing 主题 claim card 的 conclusion 可以引用 pratyantar 边界。
|
||||
4. 成本:报告每章 `inputTokens` 改前改后对照写进 PROGRESS,p50 超过改前 1.3 倍必须停下摆数据(这轮只是增补字段,不应接近报告对齐那轮的 2 倍线)。
|
||||
|
||||
### 验收
|
||||
|
||||
- golden 超集测试绿;前端 `tsc` 0 错;聊天与报告相关测试绿。
|
||||
- smoke 数据实跑一次聊天(timing 题)与一份 personal_full 报告:审计表出现新行且三态正确;timing 章节的 claim card 含 pratyantar 边界日期;bundle hash 稳定(同输入两次一致)。
|
||||
- 每章 `inputTokens` 对照表在 PROGRESS 里。
|
||||
|
||||
---
|
||||
|
||||
## BUG 编号起点
|
||||
|
||||
开工时核对 `docs/BUG_HISTORY.md` 最大号;截至本任务书为 **BUG-510**,新条目从 **BUG-511** 起。
|
||||
|
||||
## 回报格式
|
||||
|
||||
`docs/tasks/PROGRESS-upstream-sync-20260903.md`(任务 0–2)与 `docs/tasks/PROGRESS-upstream-capabilities-20260903.md`(任务 3–5):每个任务写做了什么、测试数字、冲突表、偏离与原因、环境缺口;并在 `docs/tasks/README.md` 状态板改状态。
|
||||
`docs/tasks/PROGRESS-upstream-sync-20260903.md`(任务 0–2)与 `docs/tasks/PROGRESS-upstream-capabilities-20260903.md`(任务 3–6):每个任务写做了什么、测试数字、冲突表、偏离与原因、环境缺口;并在 `docs/tasks/README.md` 状态板改状态。
|
||||
|
||||
Reference in New Issue
Block a user