docs: progress, bug history, changelog, backtest after-run for consult no-presupposition (BUG-1164~1168)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
ec06d422d3
commit
db568d1433
@@ -152,6 +152,7 @@
|
||||
| Python 定向 | `.venv/bin/python -m pytest tests/<file>.py` | 改了对应模块 |
|
||||
| 前端 | `tsc --noEmit`、`npm run lint`、`npm test`、`npm run build` | 任何前端改动 |
|
||||
| 数据库 | `npm run test:db --prefix frontend`(需 Docker) | 动表 |
|
||||
| 普通对话提示词 / 清单 | 名人生平回测 `frontend/scripts/research/consult-biography-backtest.mts`(需模型 key,见 `docs/testing/consult-affliction-backtest-20261001.md`) | 改普通对话提示词、写作形状、示例或领域清单 |
|
||||
| 发布前 | `run_quality_gate.py --profile release` | 提升 `main` 前 |
|
||||
|
||||
- 定向测试通过不能代替快速门:改动只要含 `scripts/**` 或 `tests/**`(包括 `scripts/research/` 下的调研脚本),验收就跑快速门全量。`tests/test_api_server_growth_contract.py` 按文本计数,注释里出现 `JyotishAPIHandler.__new__` 也算一个伪造点。
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# 印度占星 Skill 更新日志
|
||||
|
||||
## 2026-10-02 — 普通对话不再预设处境;受冲时请你确认;你纠正时先认下
|
||||
|
||||
- 每段先说盘上最强的信号,包括这个人在不在你身边;受冲多时这一段先说这一面、用「可能」,并请你确认一次。不再预设你有伴侣、已婚、在上班、做哪类工作、孩子性别或父母在身边;性别未填时不用「他 / 她」称伴侣和孩子(BUG-1164)。
|
||||
- 示例里不再带读法:删掉「宫主逆行」和预设已婚、上班的示例(BUG-1165、BUG-1168)。
|
||||
- 你说「我爸其实没怎么管过我」这类纠正时,回答先认下,再说盘上哪几条对得上、原来哪句读偏了,不为原判断辩护(BUG-1166)。
|
||||
- 只问年运或只问时运的轮次,按产品 10-02 决定也加上「先看受冲」的通用读法与年运清单(BUG-1160、BUG-1161 解除)。
|
||||
- 名人生平回测成为普通对话提示词的固定验收;改动后严重冲突 39 / 72 → 19 / 72,但对照组误报 1 → 15、事业「专业 / 顾问 / 幕后」仍 16 / 18,通过线未达到(BUG-1167)。Skill 版本不变;不改数据库结构。
|
||||
|
||||
## 2026-10-02 — 普通对话先看受冲、再看旺弱;各领域都有清单;「身心压力」改名「健康」
|
||||
|
||||
- 每轮回答前先给模型一段通用读法:哪些盘面算受冲、两条以上受冲要先说出来(用「可能」)、强星本身是 6、8、12 宫主时麻烦也有力、不写「逆行 = 反复」这类没有区分度的推论、只有真正命中的瑜伽才算格局(BUG-1160)。
|
||||
|
||||
@@ -15663,3 +15663,77 @@
|
||||
- 相关记录:BUG-1160、BUG-1161
|
||||
- 复发自:无
|
||||
- 修复版本:`codex/consult-affliction-reading-20261001`(未推送)
|
||||
|
||||
## BUG-1164 | 写作形状预设对象在场:缺席的父亲被写成「话少、分量重、靠做事表达」
|
||||
|
||||
- 状态:investigating(文本已改、缺席父亲一类已修;回测发现对照组误报,待产品定受冲门槛)
|
||||
- 首次发现 / 最近更新:2026-10-01 / 2026-10-02
|
||||
- 编号说明:任务书预留 BUG-1167~1172;开工核对最大号为 BUG-1163(第二单用到 1163),按连续编号改用 1164~1168:T1 = 1164、T2 = 1165、T3 = 1166、T4 = 1167、T2b = 1168。
|
||||
- 影响面:`frontend/src/lib/consultation-thinking-plan.ts` `natalAnswerShapeBody`(新常量 `NATAL_SECTION_RULE`)、`frontend/src/mastra/product-voice.ts` ANSWER SHAPE 第 3 条、`frontend/docs/VOICE.md` §7 ③。
|
||||
- 现象:奥巴马父母「他对你有要求,也有分量」「去问爸爸的意见」;基线回测 10 份父母严重冲突,缺席的父亲一律写成在场(排查记录 C 类,`docs/testing/consult-affliction-backtest-20261001.md` 基线)。
|
||||
- 触发条件:问父母、伴侣、孩子、事业等任何「对象」题。
|
||||
- 根因(已核实):形状规定「每段先用人话讲清楚这个人是什么样、你们怎么相处、事情会怎么走」,把对象在场与日常互动当成前提;`product-voice.ts` 父母 Good 例「爸爸话少,关心靠做事来表达」「先听听爸爸的意见」被照抄。
|
||||
- 修复:任务书 T1 定稿句(D7 补「做哪类工作」)落成 `NATAL_SECTION_RULE`,`natalAnswerShapeBody` 与 shared voice 都引用这一个常量;父母 Good 例改成「受冲先说、用可能、段末请确认」,删「分量重」「问爸爸的意见」。决策 D6 推翻 `TASK-consult-plain-answer-20261001` D2 第 2 点。
|
||||
- 验证:`frontend/tests/consult-no-presupposition-20261001.test.ts` T1(定稿全文、三个要点、旧句在所有提示词源文件里不存在、规则文本只在一个文件);回测改动后:缺席 / 送养的 5 位父母题 10 份全部写出「可能不常在你身边」并请确认。
|
||||
- 未过:同一句被套到父母都在身边的人身上——对照组 Bush、Zidane 父母 4 / 4 份误报,泰勒父母 2 份、Kahlo 父母 1 份严重冲突;婚姻、健康对照项也有误报(回测合计误报 15 份,基线 1 份)。根因判断:第二单通用读法「受冲信号两个及以上」几乎每张盘都满足,T1 又要求此时第一句就写这一面。需产品决定门槛(受冲明显多于支撑 / 按强度计分 / 卡上给计数),本单未改定稿句。
|
||||
- 防复发:合同测试锁句;名人回测(BUG-1167)是普通对话提示词改动的固定验收。
|
||||
- 相关记录:BUG-1132、BUG-1071、BUG-1160、BUG-1167
|
||||
- 复发自:无
|
||||
- 修复版本:`codex/consult-no-presupposition-backtest-20261001`(未推送)
|
||||
|
||||
## BUG-1165 | 示例里的读法被照抄:「宫主逆行」→「反复、打回来」;婚姻示例预设已婚
|
||||
|
||||
- 状态:resolved(文本层;回测禁句 0)
|
||||
- 首次发现 / 最近更新:2026-10-01 / 2026-10-02
|
||||
- 影响面:`frontend/src/mastra/product-voice.ts` 示例、`frontend/docs/VOICE.md` 示例表。
|
||||
- 现象:乔布斯父母几乎照抄是非题 Good 例「4 宫主水星逆行落 10 宫,她把心力投在你的前途上」;四份乔布斯样稿把逆行写成「反复、打回来」;基线回测禁句 7 处。
|
||||
- 根因(已核实):示例括号里的盘面依据带了读法(逆行),模型当规则抄;Good 例「你这段婚姻更像先把已经在一起的关系过稳」预设已婚。
|
||||
- 修复:是非题 Good 例改「不是。(4 宫主落 10 宫)她把心力放在你的前途上……」;删已婚预设的婚姻 Good 例;父母、事业 Good 例标明「括号里是依据的占位,只演示口气与结构,不是读法」。`git grep -n "逆行" frontend/src/mastra 'frontend/src/lib/consultation-*.ts'` 只剩 3 行:第二单通用读法的禁令句「逆行不等于『反复、打回来』」与技法审计表的两个技法名(逆行次限、逆行太阳弧)。
|
||||
- 验证:`consult-no-presupposition-20261001.test.ts` T2(逐行列出「逆行」并对白名单);`consultation-voice-contract.test.ts` 三条断言改动(三栏在测试注释与进度记录);回测改动后禁句 0 处(基线 7)。
|
||||
- 防复发:合同测试白名单;VOICE.md 新增「示例只演示口气与结构」一条。
|
||||
- 相关记录:BUG-1164、BUG-1070
|
||||
- 复发自:无
|
||||
- 修复版本:`codex/consult-no-presupposition-backtest-20261001`(未推送)
|
||||
|
||||
## BUG-1166 | 用户纠正盘上判断时,追问轮没有「先认下、不辩护」的写法
|
||||
|
||||
- 状态:resolved(文本层;回测 8 / 8 通过)
|
||||
- 首次发现 / 最近更新:2026-10-01 / 2026-10-02
|
||||
- 影响面:`frontend/src/lib/consultation-thinking-plan.ts` `followUpAnswerShapeInstruction`(新常量 `FOLLOW_UP_CORRECTION_RULE`)、`frontend/docs/VOICE.md`。
|
||||
- 现象:任务书 D4:用户说「我爸其实没怎么管过我」时,追问轮可能为原判断辩护(「盘上显示你们关系不错」)。
|
||||
- 根因(已核实):追问轮形状只讲「第一句回答这句话」,没有纠正场景的写法。
|
||||
- 修复:追问轮加任务书 T3 定稿句。
|
||||
- 验证:`consult-no-presupposition-20261001.test.ts` T3(锁句、首轮形状不带);回测对四位父亲缺席名人各两次追加纠正轮,8 / 8 份先认下、列出对得上的盘面、点名读偏的句子,无一辩护。
|
||||
- 副作用(记给产品):追问轮会反向把用户的话全部「对上」,把普通配置说成必然(「在传统读法里讲的就是这个人不在场」)。不辩护不等于全盘附和,本单未改定稿句。
|
||||
- 防复发:合同测试锁句;回测脚本 `--correction` 固定这一轮。
|
||||
- 相关记录:BUG-1071、BUG-1164
|
||||
- 复发自:无
|
||||
- 修复版本:`codex/consult-no-presupposition-backtest-20261001`(未推送)
|
||||
|
||||
## BUG-1167 | 普通对话提示词改动只核格式、不核判断对不对
|
||||
|
||||
- 状态:resolved(回测基础设施与改动前 / 改动后两轮结果已交付;回测本身的通过线未达到,见 BUG-1164、BUG-1168)
|
||||
- 首次发现 / 最近更新:2026-10-01 / 2026-10-02
|
||||
- 影响面:`frontend/scripts/research/consult-biography-backtest.mts`、`scripts/research/capture_consult_biography_backtest_golden.py`、`frontend/tests/fixtures/consult-biography-backtest-golden.json`、`docs/research/consult_biography_backtest_rubric.json`、`docs/testing/consult-affliction-backtest-20261001.md`、`AGENTS.md` §10。
|
||||
- 现象:10-01 效果验证只核了格式(格局名、推修、扮演、爸妈分段),没有核对判断与生平是否冲突,两轮都没拦住父亲缺席被写成在场(排查记录第 4 节)。
|
||||
- 根因(已核实):没有「对不对」的标尺。
|
||||
- 修复:基础设施由 `691ee440` 交付(9 位 Rodden AA 公开名人 × 父母 / 婚姻 / 健康 / 事业,评分表带来源);本单:golden 用真实引擎按同一命令重生成(卡上有第一单的相位、燃烧、瑜伽分领域,两次输出逐字节相同)、脚本加 `--correction` 纠正追问轮、跑改动后全量并逐份评分;`AGENTS.md` §10 加一行「普通对话提示词 / 清单改动 → 名人生平回测(需模型 key)」。
|
||||
- 验证:改动前严重冲突 39 / 72 → 改动后 19 / 72;禁句 7 → 0;误报 1 → 15;事业「专业 / 顾问 / 幕后」16 / 18 → 16 / 18(详表见测试文档「改动后」)。
|
||||
- 防复发:AGENTS §10 固定这一层;脚本不进 CI(需外网与 key)。
|
||||
- 相关记录:BUG-1132、BUG-1071、BUG-1160~1166、BUG-1168
|
||||
- 复发自:无
|
||||
- 修复版本:`codex/consult-no-presupposition-backtest-20261001`(未推送)
|
||||
|
||||
## BUG-1168 | 事业题不论盘面都写成「专业型 / 顾问 / 幕后」
|
||||
|
||||
- 状态:investigating(示例已去职业形态;回测 16 / 18 未变,通过线 ≤ 3 / 18 未达到)
|
||||
- 首次发现 / 最近更新:2026-10-01 / 2026-10-02
|
||||
- 影响面:`frontend/src/mastra/product-voice.ts` 事业 Good / Bad 例与追问轮 Good 例、`frontend/docs/VOICE.md`;未改(不在本单范围):`frontend/src/lib/consultation-condensed-checklist.ts` 事业清单。
|
||||
- 现象:基线回测 18 份事业答案 16 份把总统、球星、影星、画家、企业家写成「专业人 / 顾问 / 幕后、不靠曝光」,对照组同样如此。
|
||||
- 根因(部分核实):任务书 D7 疑为事业示例(「之后再谈升职」「专业能力」「做深现有工作」)。本单删掉这些词后改动后回测仍 16 / 18,示例不是主因。改动后的答案显示两个更可能的来源:①通用读法让模型先写受冲,事业宫被土星照、10 宫主落 6 / 8 / 12 几乎人人都有,开头一律成了「名分被压、在别人看不见的地方做」;②事业清单第 3 行「接触(消息、面试、初步接洽)/ 结构性机会(合同、正式职位、长期项目)/ 公开落地」把读者设成求职者(奥巴马事业 r1 原样复述这三层)。AL 落 10 宫的 8 份里 5 份读出公众形象,其中 3 份方向仍写成专业型。
|
||||
- 修复:示例去掉「升职」「专业能力」「做深」「现有工作」「这份工作」「换公司」,事业 Good 例标明不预设读者在上班、做哪类工作;`NATAL_SECTION_RULE` 的「不预设」含「是否在上班、做哪类工作」。
|
||||
- 验证:`consult-no-presupposition-20261001.test.ts` T2b;回测事业 16 / 18(未过)。
|
||||
- 待办:另开单改事业清单第 3 行与 AL / 10 宫 SAV 的读法,并配合 BUG-1164 的受冲门槛决定。
|
||||
- 相关记录:BUG-1162、BUG-1164、BUG-1167
|
||||
- 复发自:无
|
||||
- 修复版本:`codex/consult-no-presupposition-backtest-20261001`(未推送,部分)
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
# PROGRESS · 普通对话去预设、示例清理、纠正追问、名人回测改动后(2026-10-02,三单之三)
|
||||
|
||||
- 任务书:`docs/tasks/TASK-consult-no-presupposition-and-backtest-20261001.md`(origin/staging 最新版,含 D7 / T2b)
|
||||
- 执行:Claude fork 子代理(直接执行模式,产品授权);未推送
|
||||
- 分支 / worktree:`codex/consult-no-presupposition-backtest-20261001` / `.worktrees/consult-no-presupposition-backtest-20261001`
|
||||
- 基线:第二单分支 `codex/consult-affliction-reading-20261001` `695fd5ee`(已含第一单,待验收、未上 staging),合入 `origin/staging`(含回测基础设施 `691ee440`)无冲突 → 合并提交 `585c7370`。门禁基线数字在 `585c7370` 的独立检出 `.worktrees/nopresup-baseline-585c7370` 上实测。
|
||||
- BUG 编号:任务书预留 1167~1172;开工核对最大号 BUG-1163,按连续编号用 **1164~1168**(T1 1164、T2 1165、T3 1166、T4 1167、T2b 1168),1169 起未用。
|
||||
- 提交:`955bab69`(T1~T3、T2b、golden 重生成、脚本 `--correction`)、`071a196d`(脚本类型修正)、`ec06d422`(产品 10-02 年运 / 时运字数口径,见下)、文档提交。
|
||||
|
||||
## 环境
|
||||
|
||||
- Node 22.14(`/exec-daemon/node`);`frontend/node_modules` 用 `cp -al` 硬链接自第一单 worktree(真目录,gitignore,未提交)。
|
||||
- 无 Docker:24 条数据库 / 部署套件失败,与基线逐条同名。
|
||||
- 模型 key 只从环境变量 `DS_KEY` 读,未写入任何文件、日志、提交。模型输出在 `scratch/consult-biography-backtest/after-20261002/`(gitignore),未提交。
|
||||
- Python 用本机 python3(无项目 `.venv`);本单未改根目录 `scripts/**` 与 `tests/**`,未跑快速门。
|
||||
|
||||
## 实现
|
||||
|
||||
| 任务 | 落点 |
|
||||
| --- | --- |
|
||||
| T1(BUG-1164) | `consultation-thinking-plan.ts` 新常量 `NATAL_SECTION_RULE` = 任务书 T1 定稿句,「不预设」一句按 D7 补「做哪类工作」;`natalAnswerShapeBody` 用它取代「这个人是什么样、你们怎么相处、事情会怎么走」,再接「每段的判断后在括号里给撑住它的盘上依据」。`product-voice.ts` ANSWER SHAPE 第 3 条原本是同一句的第二份写法,改为引用 `${NATAL_SECTION_RULE}`(硬红线 1:规则文本只在一个文件) |
|
||||
| T2(BUG-1165) | 是非题 Good 例改「不是。(4 宫主落 10 宫)她把心力放在你的前途上……」;删「你这段婚姻更像先把已经在一起的关系过稳」;父母 Good 例重写为「受冲先说、用可能、段末请确认」,删「分量重」「标杆」「问爸爸的意见」;示例标签改为「括号里是依据的占位,只演示口气与结构,不是读法」。`VOICE.md` 同步,并加「示例只演示口气与结构」「用户纠正盘上判断」两条 |
|
||||
| T2b(BUG-1168) | 事业 Good 例去「升职」、工作宫改 6 宫、依据改占位;Bad 例改「你更适合长期做一件事……把手上的事做稳」;追问轮 Good 例「这份工作还值得留……不是换公司」改「现在这条路还值得走……不是换方向」 |
|
||||
| T3(BUG-1166) | `FOLLOW_UP_CORRECTION_RULE` = 定稿句,接在 `followUpAnswerShapeInstruction` 追问轮说明之后 |
|
||||
| T4 第 5 条(BUG-1167) | golden 用真实引擎重生成(见下);脚本加 `--correction <ids>` / `--correction-text`:对列出名人的每份父母答案,在同会话追加一轮(历史 = 上一问一答,`natalUserTurnShape` 读历史走追问轮形状,`followUpTurn: true`);跑改动后全量并逐份评分,结果写进 `docs/testing/consult-affliction-backtest-20261001.md`「改动后」 |
|
||||
| 测试 | 新文件 `frontend/tests/consult-no-presupposition-20261001.test.ts`(4 条) |
|
||||
|
||||
`git grep -n "逆行" frontend/src/mastra 'frontend/src/lib/consultation-*.ts'` 结果 3 行,全是允许项:`consultation-condensed-checklist.ts:63` 第二单通用读法的禁令句「逆行不等于『反复、打回来』」;`consultation-technique-audit.ts:60–61` 技法名「逆行次限」「逆行太阳弧」。测试 T2 把这 3 行列成白名单。
|
||||
|
||||
## golden 重新生成
|
||||
|
||||
旧 golden(`691ee440`)生成于第一单之前:`graha_drishti`、`combust`、`yoga_domains`、`saturn_from_moon_house` 都是 0 处,回测看不到第一单的新卡字段。用同一命令 `JYOTISH_API_CHART_CACHE_TTL_SECONDS=0 PYTHONHASHSEED=0 python3 scripts/research/capture_consult_biography_backtest_golden.py` 在本分支重跑(capture 复用的 `trim()` 已是第一单版本),两次输出逐字节相同,未手改。2,872,080 → 3,860,364 字节;四个字段分别 36 / 252 / 36 / 36 处。`--dump-cards` 确认 36 张卡都带 `aspected_by`、通用读法段。
|
||||
|
||||
## 产品决定(2026-10-02):年运 / 时运字数口径
|
||||
|
||||
协调方转达产品决定:年运、时运与事业 / 婚姻 / 财富同口径(契约 + 卡 ≤ 12,000,含清单 ≤ 18,000)。单独提交 `ec06d422`:删 `CONSULT_READING_BUDGET_BLOCKED`,两条 size 断言与第二单的钉住测试改口径(三栏见第二单进度记录「产品决定」段),BUG-1160 / 1161 改 resolved,`BLOCKED.md` 划掉。实测三张 golden 盘:年运 契约 + 卡 9,501~9,882、总量 12,598~12,979;时运 8,555~8,604、12,208~12,257。
|
||||
|
||||
对回测的影响:两次 `--dump-cards`(提交前 / 后)36 张模型可见工具结果逐字节相同;回测的四个领域不受这一提交影响,模型 72 份也没有自选年运 / 时运,所以改动后回测结果对最终分支有效。
|
||||
|
||||
## 改动的既有断言(原值 / 新值 / 原因)
|
||||
|
||||
| 文件 · 测试 | 原值 | 新值 | 原因 |
|
||||
| --- | --- | --- | --- |
|
||||
| `consultation-voice-contract.test.ts`「the pinned Good examples…」 | `indexOf("Good (父母题首轮,按对象分段;盘上数据是示意)")`、事业同 | 标签改为「括号里是依据的占位,只演示口气与结构,不是读法」,事业再加「不预设读者在上班、做哪类工作」 | D3 / D7 |
|
||||
| 同上 | `/(4 宫母亲宫的宫主水星落在 10 宫事业宫;代表母亲的月亮也在 10 宫)/` | `/(4 宫主落 10 宫;月亮在 10 宫)/`,加锁爸爸段「可能不常在你身边…请确认」、不得有「分量重 / 标杆 / 爸爸的意见 / 靠做事」 | D1 / D3 |
|
||||
| 同上 | `/…说直接点:这份工作还值得留/` | `/…说直接点:现在这条路还值得走/` | D7 |
|
||||
| 同上 | Bad 行 `startsWith("Bad: 你更适合把已经积累的专业能力做成长期事业")` | `startsWith("Bad: 你更适合长期做一件事")`,理由不变;加全篇不得有「专业能力 / 升职 / 做深 / 现有工作 / 这份工作」 | D7 / T2b |
|
||||
| 同文件「the voice answers the sentence asked…」 | `/不是。4 宫主水星逆行落 10 宫/` | `/不是。(4 宫主落 10 宫)她把心力放在你的前途上/`,加 voice 不得有「逆行」「已经在一起的关系」 | D2 / D3 |
|
||||
| 年运 / 时运口径的 4 处 | 见第二单进度记录「产品决定」段 | | 产品 10-02 |
|
||||
|
||||
## 交付门
|
||||
|
||||
| 项 | 基线 `585c7370` | 本分支 |
|
||||
| --- | --- | --- |
|
||||
| `tsc --noEmit` | 0 错 | 0 错 |
|
||||
| `npm run lint` | 0 error / 126 warning | 0 error / 126 warning |
|
||||
| `npm test`(Node 22) | 4,884(pass 4,819 / fail 24 / skip 41 / cancelled 0) | 4,888(pass 4,823 / fail 24 / skip 41 / cancelled 0),新增 4 条、无删除;在 `ec06d422` 上实测 |
|
||||
| 失败名单 | 24 条,数据库 / 部署类 | 与基线逐条同名 |
|
||||
| `next build` | `/` ○ Static | `/` ○ Static |
|
||||
| 首屏 gzip(`index.html` 引用 26 个脚本 gzip-9 求和,第二单同法) | 555,694 B | 555,694 B(0%) |
|
||||
|
||||
## 名人回测改动后(摘要,详表见测试文档)
|
||||
|
||||
| 项 | 改动前 | 改动后 | 通过线 | 达到 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 严重冲突 | 39 / 72 | 19 / 72 | — | — |
|
||||
| 排查记录 5 份 × 2 | 10 / 10 冲突 | 奥巴马父母、乔布斯父母、泰勒婚姻 6 / 6 过;泰勒健康 2 份读反;泰勒事业 2 份严重 | 全过 | 否 |
|
||||
| 新增 4 位严重冲突 | 20 / 32 | 7 / 32 | ≤ 1 | 否 |
|
||||
| 对照组误报 | 1 | 15(Bush、Zidane 与奥巴马婚姻 / 健康) | 0 | 否 |
|
||||
| 禁句 | 7 | 0 | 0 | 是 |
|
||||
| 事业「专业 / 顾问 / 幕后」 | 16 / 18 | 16 / 18 | ≤ 3 / 18 | 否 |
|
||||
| 纠正追问(4 位 × 2) | — | 8 / 8 先认下、不辩护 | 无辩护 | 是 |
|
||||
|
||||
未达到的原因(判断,详见测试文档「读出来的东西」与 BUG-1164 / 1168):第二单「受冲信号两个及以上」门槛几乎每张盘都满足,T1 定稿句又要求此时第一句写这一面,误报从 1 涨到 15;事业题示例不是主因,可疑源头是通用读法的先写受冲与事业清单第 3 行「面试 / 正式职位」三层。定稿句、清单文本按任务书不得改意思,本单未改,交产品决定。
|
||||
|
||||
## 未做 / 交给后续
|
||||
|
||||
- 受冲门槛(BUG-1164)与事业清单(BUG-1168)——需产品决定后另开单。
|
||||
- 纠正追问轮的「反向全盘附和」副作用(BUG-1166 副作用段)。
|
||||
- 年运 / 时运单领域轮放开后的效果未回测(回测领域不含年运 / 时运)。
|
||||
- 真机清单在测试文档末尾,待 staging 部署后由产品走。
|
||||
@@ -404,5 +404,5 @@
|
||||
| `TASK-consult-timeline-no-plan-20261001.md` | `PROGRESS-consult-timeline-no-plan-20261001.md` | 普通对话进度栏提前打勾:回答提纲在算盘前就作为四行步骤显示并全部打勾(BUG-1145);产品选 B 去掉提纲行,只显示真实步骤 | **实现完成,待 Claude 验收**(直接执行) | 分支 `codex/consult-timeline-no-plan-20261001` |
|
||||
| `TASK-staging-otp-skip-password-20261001.md` | `PROGRESS-staging-otp-skip-password-20261001.md` | staging 新邮箱用固定验证码登录后被强制设置密码,测试者误以为要密码登录;产品选「测试通道验证码登录跳过设置密码」,生产不变(BUG-1152) | **已实现推 staging**(Claude 直接执行),真机清单 `docs/testing/staging-otp-skip-password-20261001.md` | 分支 `codex/staging-otp-skip-password-20261001` |
|
||||
| `TASK-consult-card-affliction-data-20261001.md` | `PROGRESS-consult-card-affliction-data-20261001.md` | 普通对话「盘上有信号、模型没认出」三单之一:数据卡补相位(谁照谁)、同宫、燃烧,父母卡带宫主与代表星完整行,健康卡加 1/12 宫、学业卡加 4 宫,瑜伽按领域分流(预留 BUG-1154~1159);排查记录 `docs/research/consult_affliction_audit_2026_10_01.md` | **已实现待验收**(Claude 子代理直接执行,BUG-1154~1159;未推送);三单串行第一 | 分支 `codex/consult-card-affliction-data-20261001` |
|
||||
| `TASK-consult-affliction-reading-20261001.md` | `PROGRESS-consult-affliction-reading-20261001.md` | 三单之二:全领域「先看受冲、再看旺弱」通用读法,补齐父母/子女/学业/迁居/家庭/年运/综合/健康中文清单,健康改名「健康」先讲体质底子(预留 BUG-1160~1166) | **已实现待验收**(Claude 子代理直接执行,BUG-1160~1163;未推送);年运 / 时运单领域轮因 12,000 字符口径 blocked,待产品决定 | 分支 `codex/consult-affliction-reading-20261001` |
|
||||
| `TASK-consult-no-presupposition-and-backtest-20261001.md` | `PROGRESS-consult-no-presupposition-backtest-20261001.md` | 三单之三:写作形状去掉「对象在场」预设、受冲时请用户确认、删被照抄的「逆行」示例、用户纠正时不辩护;建立名人生平回测作为普通对话提示词改动的固定验收(预留 BUG-1167~1172) | **待领取**;依赖第二单上 staging;回测需模型 key | 分支 `codex/consult-no-presupposition-backtest-20261001` |
|
||||
| `TASK-consult-affliction-reading-20261001.md` | `PROGRESS-consult-affliction-reading-20261001.md` | 三单之二:全领域「先看受冲、再看旺弱」通用读法,补齐父母/子女/学业/迁居/家庭/年运/综合/健康中文清单,健康改名「健康」先讲体质底子(预留 BUG-1160~1166) | **已实现待验收**(Claude 子代理直接执行,BUG-1160~1163;未推送);年运 / 时运字数口径产品 10-02 已定(同事业 / 婚姻 / 财富),实现在第三单分支 `ec06d422` | 分支 `codex/consult-affliction-reading-20261001` |
|
||||
| `TASK-consult-no-presupposition-and-backtest-20261001.md` | `PROGRESS-consult-no-presupposition-backtest-20261001.md` | 三单之三:写作形状去掉「对象在场」预设、受冲时请用户确认、删被照抄的「逆行」示例、用户纠正时不辩护;建立名人生平回测作为普通对话提示词改动的固定验收(预留 BUG-1167~1172) | **已实现待验收**(Claude 子代理直接执行,BUG-1164~1168;未推送);基于第二单分支 + staging;名人回测已跑改动后:严重冲突 39→19、禁句 7→0、纠正追问 8/8,但对照组误报 1→15、事业「专业/顾问/幕后」16/18,T4 / T2b 通过线未达到;含产品 10-02 年运 / 时运字数口径(第二单 blocker 解除) | 分支 `codex/consult-no-presupposition-backtest-20261001` |
|
||||
|
||||
@@ -103,9 +103,82 @@ Bill Clinton 不在仓库案例库里,没有加;「父亲缺席」由 Obama
|
||||
4. 婚姻题有清单,表现最好(9 / 18 通过),但多次婚姻的三位仍有 6 份写成稳定。
|
||||
5. 对照组只有 1 份轻度误报:改动后要重点看对照组有没有被「先说受冲、请确认」带出新的误报。
|
||||
|
||||
## 改动后
|
||||
## 改动后(2026-10-02)
|
||||
|
||||
(第三单 T1~T3 合入后,用同一命令重跑,按上表格式填;通过线见任务书 T4 第 5 条。)
|
||||
- 代码:`codex/consult-no-presupposition-backtest-20261001`(第一、二、三单 + 产品 10-02 年运 / 时运字数口径决定,提交 `ec06d422`)。年运 / 时运口径那个提交不影响本回测的四个领域:两次 `--dump-cards` 的模型可见工具结果逐字节相同(年运 / 时运不在回测领域里,模型 72 份里也没有自选这两个领域)。
|
||||
- golden 重新生成:旧 golden 生成于第一单之前,卡上没有相位、燃烧、瑜伽分领域、`saturn_from_moon_house`。按 capture 脚本同一命令(`PYTHONHASHSEED=0 JYOTISH_API_CHART_CACHE_TTL_SECONDS=0`)用真实引擎重跑,两次输出逐字节相同,未手改;新 golden 2.87 MB → 3.86 MB,`graha_drishti` / `yoga_domains` / `saturn_from_moon_house` 各 36 处。
|
||||
- 命令:`--repeats 2 --concurrency 6 --correction barack_obama,marilyn_monroe,judy_garland,edith_piaf`;模型、思考、输出上限与基线相同。
|
||||
- 首轮 72 份里 6 份 `provider_error`(5 份超时约 380 s,1 份 41 s;泰勒婚姻 r1/r2、健康 r1、父母 r2,奥巴马事业 r1/r2),同命令按名人 + 领域补跑,只取失败那一次的同号结果替换,没有挑选。最终 72 份、失败 0。
|
||||
- 评分:Claude 逐份阅读全部 72 份 + 8 份纠正追问,口径与基线相同(评分表 `how_to_score`)。本轮新增两条细则,基线表不受影响:①健康题对终身多病的人,开场写「底子中等 / 中等偏稳」并认出受冲的记「通过(弱)」,写「底子不差 / 中上 / 不弱」的记「读反」;②带「可能」和确认句、但与生平事实冲突的判断(例:父母都在身边却写「爸爸可能不常在你身边」)照样按 `must_not` 记「严重冲突」,对照组记「误报」——加了确认句不抵扣。
|
||||
|
||||
| 名人 | 父母 r1 / r2 | 婚姻 r1 / r2 | 健康 r1 / r2 | 事业 r1 / r2 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| Steve Jobs | 通过 / 通过 | 通过 / 通过 | 通过(弱) / 通过(弱) | 严重冲突 / 严重冲突 |
|
||||
| Barack Obama | 通过(弱) / 通过(弱) | 误报 / 误报 | 误报(轻) / 误报(轻) | 严重冲突 / 严重冲突 |
|
||||
| Elizabeth Taylor | 严重冲突 / 严重冲突 | 通过 / 通过 | 读反 / 读反 | 严重冲突 / 严重冲突 |
|
||||
| Marilyn Monroe | 读反 / 通过 | 通过 / 通过 | 读反 / 通过(弱) | 严重冲突 / 严重冲突 |
|
||||
| Judy Garland | 读反 / 通过(弱) | 通过 / 通过(弱) | 读反 / 读反 | 严重冲突 / 严重冲突 |
|
||||
| Édith Piaf | 通过 / 通过(弱) | 通过 / 通过 | 读反 / 读反 | 通过 / 通过 |
|
||||
| Frida Kahlo | 严重冲突 / 通过 | 通过 / 通过 | 通过(弱) / 读反 | 严重冲突 / 严重冲突 |
|
||||
| George W. Bush(对照) | 误报 / 误报 | 误报(轻) / 通过 | 误报(轻) / 误报(轻) | 严重冲突 / 严重冲突 |
|
||||
| Zinedine Zidane(对照) | 误报 / 误报 | 误报 / 误报 | 误报(轻) / 误报 | 严重冲突 / 严重冲突 |
|
||||
|
||||
格子说明:奥巴马父母两次都认出父亲可能不在身边并请确认,但行动仍写「主动问爸爸一件具体的事」,所以记「弱」;奥巴马婚姻、健康是评分表里的对照项(婚姻稳定、健康良好)。泰勒父母两次把父亲(r2 连母亲)写成「可能不常在你身边」——泰勒父母都在身边,评分表 `must_not` 原文就是「说父母不在身边」。Monroe 父母 r1 母亲写成「她是在的,给的东西也实」;Garland 父母 r1 母亲写成「可能不是那个一直守在身边的人」(她母亲是强势的星妈);Kahlo 父母 r1 把与她最亲的父亲写成「可能也不常在你身边」。
|
||||
|
||||
### 合计:改动前 → 改动后
|
||||
|
||||
| 项 | 改动前 | 改动后 | 通过线(任务书 T4 第 5 条 / T2b) | 是否达到 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 严重冲突 | 39 / 72 | **19 / 72**(事业 16,父母 3) | — | — |
|
||||
| 读反 | 7 | 10(健康 7、父母 3) | — | — |
|
||||
| 漏读 | 3 | 0 | — | — |
|
||||
| 误报(含轻) | 1(轻) | **15**(重 9、轻 6;全部落在对照项:Bush、Zidane、奥巴马婚姻 / 健康) | 对照组 0 | **否** |
|
||||
| 通过(含弱) | 22 | 28 | — | — |
|
||||
| 两次都通过的格子 | 9 / 36 | 12 / 36 | — | — |
|
||||
| 排查记录 5 份严重冲突,2 次各 | 10 / 10 仍冲突 | 奥巴马父母 2/2 过(弱)、乔布斯父母 2/2 过、泰勒婚姻 2/2 过;泰勒健康 2 份读反(不再是严重冲突,但没过);泰勒事业 2 份仍严重冲突 | 5 份全部不再冲突、两次都过 | **否**(泰勒健康、泰勒事业) |
|
||||
| 新增 4 位严重冲突 | 20 / 32 | **7 / 32**(Monroe 事业 2、Garland 事业 2、Kahlo 事业 2、Kahlo 父母 1) | ≤ 1 | **否** |
|
||||
| 事业题「专业 / 顾问 / 幕后」与生平冲突 | 16 / 18 | **16 / 18**(只有 Piaf 两份没写成专业型) | ≤ 3 / 18 | **否** |
|
||||
| 禁句(逆行…反复 / 来回) | 7 处,6 份 | **0** | 0 | 是 |
|
||||
| 性别未知时婚恋题用他 / 她 | 5 处 | **0** | — | — |
|
||||
| must_not 原文(筛网) | 27 | 23 | — | — |
|
||||
|
||||
按领域:
|
||||
|
||||
- **父母**:缺席的父亲这一类修好了。奥巴马、Monroe、Garland、Piaf、乔布斯 10 份全部认出「父亲可能不常在你身边」并在段末请确认,不再写「话少、分量重、靠做事表达」;乔布斯两份都写出「照顾你长大的可能不止一位」(送养)。代价是**同一句被套到了父母都在身边的人身上**:Bush 3 处、Zidane 4 处、泰勒 3 处、Kahlo 1 处写成「可能不常在你身边 / 很早就有距离」。原因:第二单通用读法的门槛「受冲信号两个及以上就先写这一面」几乎每张盘都满足(9 宫或太阳被土星 / 火星照、宫主落 6/8/12、D12 有罗睺计都,随便凑两条),T1 定稿句又要求这时第一句就写「在不在你身边」,于是「可能不在身边」成了父母题的默认开头。
|
||||
- **婚姻**:多次婚姻的五位 10 份全部读出「可能不止一段 / 断过再续」(基线 6 份写成稳定)。同样的门槛让对照组也被写成「不止一段」:奥巴马 2 份、Zidane 2 份、Bush 1 份(轻)。
|
||||
- **健康**:不再有「没有受损」「不是有严重疾病迹象」这类严重冲突(基线 7 份),终身多病的五位都认出了 8 宫 / 6 宫主受冲、慢性消耗;但 7 份开场仍是「底子不差 / 中上 / 不弱」。对照组被写成「底子偏弱 / 偏薄、从小比别人容易累」(Zidane r2,职业球员)等 5 份。
|
||||
- **事业**:没有改善。总统、影星、球星、画家、企业家依旧写成「靠专业深度立身」「顾问、老师」「幕后、不靠曝光」「名分落后于实力」。新出现的共性是两层叠加:①通用读法让模型先写受冲——事业宫被土星照、10 宫主落 6/8/12 几乎人人都有,于是开头一律是「名分被压着、在别人看不见的地方做」;②第二单之前就存在的事业清单第 3 行「①接触(消息、面试、初步接洽)②结构性机会(合同、正式职位、长期项目)③公开落地」把读者设成求职者(奥巴马事业 r1 几乎原样复述这三层)。T2b 改的 `product-voice.ts` 示例不是主因:示例删掉「升职 / 专业能力」后 16 / 18 原样不变。AL 落 10 宫(泰勒、Monroe、Garland、Piaf)只有 Piaf 两份、泰勒 r2、Monroe r2、Garland r1 读出「公众形象 / 名声就是事业」,后三份方向仍写成专业型。
|
||||
|
||||
### 纠正追问(T3 / D4)
|
||||
|
||||
对父亲缺席的四位(奥巴马、Monroe、Garland、Piaf)各两次父母答案追加一轮「我爸其实没怎么管过我」(同会话,历史为上一问一答,走追问轮形状):
|
||||
|
||||
| 名人 | r1 | r2 |
|
||||
| --- | --- | --- |
|
||||
| Barack Obama | 通过:「你说得对,我上一轮把这条读软了」→ 9 宫火星、9 宫主燃烧、土星照 → 点出上一轮「要你先问」那句读偏 | 通过:先认 → 列四条 → 点出「需要的时候总还能有人接住你」读偏 |
|
||||
| Marilyn Monroe | 通过:先认 → 四条受冲 → 收回「关系质地的问题」「你接不住」两句 | 通过:同上,收回「按远近写、说轻了」 |
|
||||
| Judy Garland | 通过:「认下了:这事是我上一轮读偏了」→ 点出「位置和标准」把没做的事包装成贡献 | 通过:先认 → 点出拿 D12 替他说「有支撑」读偏 |
|
||||
| Édith Piaf | 通过:「认下」→ 点出把 2 宫同宫读成「日常能碰得着」 | 通过:「是,他没怎么管过你」→ 点出把月亮力量当成在场程度 |
|
||||
|
||||
8 / 8 份都先认下、再说哪几条对得上、点名哪句读偏,没有一份为原判断辩护,没有「盘上显示你们关系不错」。要留意的副作用:追问轮会把用户的话反向全部「对上」,例如「9 宫主落 8 宫这种结构,常应的就是……没有落到你身上」「在传统读法里讲的就是这个人不在场」——认错之后又把一条普通配置说成必然,确定性比首轮还高。这是 D4 没覆盖的一面(不辩护 ≠ 全盘附和),记给产品。
|
||||
|
||||
### 读出来的东西(给验收和下一单)
|
||||
|
||||
1. T1 的「在不在你身边 + 请确认」对缺席的父亲有效,排查记录的 C 类在 5 位缺席 / 送养名人上消失;T2 的「逆行 → 反复」禁句从 7 处降到 0;T3 纠正追问 8 / 8 通过。
|
||||
2. 通过线没有达到。主要不是本单的句子写错,而是**受冲门槛太低**:「两个及以上受冲信号」在每张盘、每个领域几乎都成立,T1 又把它接到「第一句就写这一面」,于是对照组的误报从 1 份涨到 15 份,父母都在的泰勒也被写成父亲可能缺席。要压误报,需要产品决定其一:门槛改成「受冲信号明显多于支撑信号」或按信号强度计分;或卡上给出每个领域受冲 / 支撑的计数,让模型对比而不是只数受冲。
|
||||
3. 事业题 16 / 18 不是示例造成的。可疑源头按顺序:第二单之后的通用读法(先写受冲)、事业清单第 3 行的「面试 / 正式职位」三层、模型自身对 AL 落 12 宫 / 10 宫主落 6 宫的「幕后」读法。需要另开单,在事业清单里写明 AL 落 10 宫与 10 宫 SAV 高时先说公众性与名声、三层不预设上班。
|
||||
4. 健康题的「底子不差」开场仍有 7 份,健康清单「先讲体质底子」可能把开场固定成了对底子的评价;第二单健康清单可加一句「终身受冲信号多时,开场不写底子好」。
|
||||
5. 成本:72 份墙钟 1,097 s(并发 6,含 6 份超时),补跑 8 份;单份中位 64 s;输入 3,622,567 token(缓存命中 3,149,952,约 87%),输出 935,849(推理 843,400);查卡工具 12 次。
|
||||
6. 年运 / 时运单领域轮(第二单曾因字数口径不发通用读法)在 10-02 产品决定后已放开,但本回测没有覆盖年运 / 时运领域,效果未测。
|
||||
|
||||
## 真机清单(给产品,staging 部署后)
|
||||
|
||||
每条都在新会话里问,档案不填性别;看三件事:受冲是不是先说、是不是只请确认一次、有没有预设处境。
|
||||
|
||||
1. **父母题**:问「我和父母关系如何,他们怎么对待我?」。看:父亲或母亲盘上受冲多时,那一段第一句是不是「可能不常在你身边 / 有距离」,段末是否只有一句「如果实际情况不是这样,告诉我,我按真实情况重看」;全篇这类确认是否只出现一次;有没有「去问爸爸的意见」「他分量重」这类预设在场的话。**再追问一句**「我爸其实一直都在,挺好的」,看回答是否先认下、不辩护,也不反过来把整盘说成「其实一直很好」。
|
||||
2. **婚姻题**:问「我的婚姻和感情会是什么样?」(自己实际已婚或未婚都可以)。看:有没有默认你已婚或有伴侣(「你们之间」「你这段婚姻」);有没有用「他 / 她」称伴侣;说「可能不止一段」时有没有请确认。如果你的感情实际一直很稳,看它是不是仍写成「可能不止一段」——这是本轮回测里对照组最常见的误报。
|
||||
3. **健康题**:问「我的身体底子怎么样,健康上要注意什么?」。看:受冲信号多时开场是不是先说「可能需要长期照看」,而不是「底子不差」;有没有诊断、病名;结尾是否有「不是医疗意见」。
|
||||
4. **事业题(补充)**:问「我的事业会往什么方向走,能做到什么程度?」。看:有没有默认你在上班、在找工作(「面试」「升职」「投简历」),有没有不论盘面都写成「专业型 / 顾问 / 幕后」。
|
||||
|
||||
## 成本(一次全量)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user