Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
8.2 KiB
8.2 KiB
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;报告主题段降级未做(引擎读者版正文无稳定主题→分盘映射,需引擎侧配合另开单);写作模型报告路径(生产关闭)未接入。