Files
Jyotisha/docs/tasks/PROGRESS-rectification-chart-tier-caveats-20261001.md
T
Jesse_ChenandClaude Opus 5.5 209352eb31
Independent Staging Quality Gate / validate (push) Successful in 13m35s
Independent Staging Quality Gate / publish (push) Successful in 3m41s
docs(rectification): Claude acceptance of chart-tier caveats (BUG-1138/1139 resolved)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-01 10:15:11 +08:00

8.2 KiB
Raw Blame History

PROGRESS · 报告与聊天标注判断不了的分盘(2026-10-01)

任务书:TASK-rectification-chart-tier-caveats-20261001.md(BUG-1138 / BUG-1139)。执行:Claude fork 子代理。分支 codex/rectification-chart-tier-caveats-20261001,基线 origin/staging @ 437dcecb。只 commit,未 push。

环境

Linux,Node 22.14(/exec-daemon/node),Python 3.13(系统 python3,本机无 .venv)。frontend/node_modules 用 cp -al 硬链主检出(同一 lockfile;Turbopack 不接受软链),未执行 npm ci。基线在独立 worktree .worktrees/tier-caveats-base(437dcecb)同机同依赖量。无 Docker:真库断言用 PostgreSQL 17.9 本地替身,正式证据待产品真 Docker。

实现

T 内容 提交
T1 frontend/src/lib/rectification-adopted-chart-tiers.ts:仅 active_birth_provenance.contract === "segment-v1" 时按 case_id 读 get_agentic_rectification_case_dossier(服务账号),解析 latest_result.decision_receipt.inference_state.segment_summary,blocked / indistinct → 不可判分盘;同 Case 有更新结果用更新的,跨 Case 拒绝;5 分钟缓存;失败记日志返回 null 5f279214
T2 聊天:共用范围读取 loadReportCandidateRange 在 segment-v1 时附带 unreliableVargas(经服务账号读资料来源列,20260927020000 已授列权);prepareConsultationRoute 写入排盘工具输入 unreliable_vargas;runConsultationWorkflow 从引擎载荷剔除该字段,并经 applyUnreliableVargasToWorkflowContext 写 answer_policy.unreliable_vargas / deterministic_claims_forbidden_for 与一句 user_facing_limitation;projectEvidenceContract 把两项透传进模型数据包。未改 consult/route.ts、product-voice.ts、consultation-evidence-card.ts、consultation-thinking-plan.ts(挂接点在路由已注入的范围读取函数) e68ac9b2
T3 报告:frontend/src/lib/personal-report-chart-caveats.ts 在不可判分盘的图盘标题与数值位置表标题下插一行提示;generatePersonalReportLongform 在计算快照哈希前对中英文正文各自应用;引擎载荷不变,不改 Python 6372ad8a
真库 tests/database-segment-adoption.test.ts 追加:采用后服务账号读来源列 + 档案 RPC → { source: "segment-v1", resultMatch: "adopted", unreliable: [] } da88c325
T4 BUG-1138 / 1139、CHANGELOG、VOICE、DESIGN、真机清单、本记录、README 末提交

helper 五种输入(T1 测试)

输入 输出
segment-v1,结果 D9/D10 blocked(虚构 ±60 宽窗) { source: "segment-v1", resultMatch: "adopted", unreliable: ["D9","D10"] },1 次 RPC
旧采用(contract: "candidate-v2") null,0 次 RPC
未校正(provenance 为 null) null,0 次 RPC
结果缺失(RPC 报错 / 档案无 latest_result) null + 警告 P0001 / invalid_segment_summary
摘要损坏(档位与占比不一致) null + 警告 invalid_segment_summary

另:真实引擎扫描(公开 AA,31 分钟)窄窗 → D1 certain、D9/D10 credible,不标注。

聊天 A/B

  • 工具输入:segment-v1 多 unreliable_vargas: ["D9","D10"],其余字段与旧采用逐字节相同;旧采用工具输入字节快照锁在测试里。
  • 引擎载荷:带 / 不带 unreliable_vargas 逐字节相同(字段不出站)。
  • 上下文与模型数据包:segment-v1 多 answer_policy.unreliable_vargas、deterministic_claims_forbidden_for,user_facing_limitation 末尾追加「你的出生时间范围里,婚恋(D9)、事业(D10)的上升会变,这几张盘判断不了;涉及它们的部分只看本命盘和大运,不按它们下结论。」
  • 旧资料逐字节不变(硬红线 1):基线 worktree 与本分支各跑同一脚本(scratchpad/tier/peek2.ts、peek3.ts):旧采用聊天工具输入 cmp 相同;真实工作流 golden 下「引擎请求 + 工作流上下文 + 模型数据包」226,949 字节 cmp 相同。

报告 A/B

  • 引擎载荷:旧 / 新资料逐字节相同。
  • 落库正文:旧资料 = 引擎原文逐字节;新资料(D9+D10)多 3 行(密度版真实输出:D9 两处、D10 一处图盘标题),删去这 3 行后与引擎原文相同;图盘数不变。
  • 读者版真实输出(虚构出生)命中标题:##### Navamsha、##### D9 九分盘、##### D10 Dasamsa、#### D9 九分盘 数值位置表、#### D10 Dasamsa 数值位置表;英文版:##### Navamsha、##### D9 Navamsa、#### D9 Navamsa Position Table。
  • 样例:
##### D9 九分盘

提示:出生时间范围内这张盘的上升会变,这一节仅供参考。

(图盘)
  • 图盘网格:卡片解析允许标题与图之间恰好一段,提示行成为图注;密度版卡片数前后相同,3 张卡带该图注。

门禁(基线 437dcecb vs 本分支,同机同依赖)

检查 基线 本分支
tsc 0 0
lint 0 error / 126 warning 0 error / 126 warning
npm test 4809 / pass 4744 / fail 24 / cancel 0 / skip 41 4823 / pass 4758 / fail 24 / cancel 0 / skip 41;失败清单逐名相同,基线名 0 丢失,新增 14
/ Static Static
首屏 gzip(/ 预渲染 HTML 引用 JS + CSS,gzip -9) JS 555,325 / CSS 68,764 JS 555,325 / CSS 68,764(±0.00%)
快速门 Python 1036 passed / 1 skipped 1036 passed / 1 skipped / 0 failed
快速门 npm 步 24 环境失败(Docker / PG / 部署) 同 24 条
真库(替身)database-segment-adoption.test.ts — 2/2
隐私守卫 — 通过

改动的既有断言

无。tests/database-segment-adoption.test.ts 只追加断言,未改既有断言。

缺口

  • 真 Docker 未跑(替身证据);真机与真实模型输出待部署 staging 后按 docs/testing/rectification-chart-tier-caveats-20261001.md 走。
  • 写作模型报告路径(PERSONAL_REPORT_WRITER_ENABLED = false)未接 demoteThemesMissingRequiredCharts;该路径生产关闭,开启前需补。
  • 只给图盘 / 数值位置表加提示,未给依赖 D9/D10 的主题段落(报告正文为引擎输出,无稳定的主题→分盘映射);若要按主题降级需引擎侧配合,另立单。
  • 已生成的旧报告不回改(任务书 D3)。

Claude 验收修正(2026-10-01)

项 原值 新值 原因
分盘可靠性判定 最新结果 segment_summary 中档位为 blocked / indistinct 即不可判 另加:非全窗唯一的分盘,存盘分钟(来源记录 window_offset_minutes)不在该盘头段,或偏移缺失,也不可判(unreliableChartsForSavedMinute) 存盘分钟不随采用后的新结果变;D7 头段无交集时退回 D1 头段中点;只看档位会把存盘分钟读不到的星座标为较可信,放宽置信边界(AGENTS §8.4)
rectification-adopted-chart-tiers.test.ts fixture 来源记录无 window_offset_minutes 补该字段(60 / summary.adoption_minute.offset) 真实 segment-v1 来源恒含此字段
新增测试 — 存盘分钟落在 D9 非头段 → 标注 D9;偏移缺失 → 窗内会变的盘全部标注 锁定上面的规则

Claude 独立验收(2026-10-01,变基到 origin/staging @ c304cf3a)

检查 基线 本分支
tsc / lint 0 / 0 error、126 warning 0 / 0 error、126 warning
npm test 4811 / fail 24 4827 / fail 24;失败清单逐名相同,基线名 0 丢失,新增 16
按 deploy/railway-web.Dockerfile COPY 清单构建(ERR-113) — exit 0
/ / 首屏 gzip Static / JS 555,325、CSS 68,764 Static / 完全相同
database-segment-adoption.test.ts(PostgreSQL 17 替身) — 2/2
快速门 — Python 1036 passed / 1 skipped / 0 failed;npm 步同 24 条环境失败

结论:通过。缺口:真机与真实模型待部署后按 docs/testing/rectification-chart-tier-caveats-20261001.md;报告主题段降级未做(引擎读者版正文无稳定主题→分盘映射,需引擎侧配合另开单);写作模型报告路径(生产关闭)未接入。