diff --git a/docs/tasks/TASK-consult-plain-answer-20261001.md b/docs/tasks/TASK-consult-plain-answer-20261001.md index bcfb9982..216c67b2 100644 --- a/docs/tasks/TASK-consult-plain-answer-20261001.md +++ b/docs/tasks/TASK-consult-plain-answer-20261001.md @@ -39,10 +39,10 @@ **D2 新形状:先答,再按对象分段。** 1. 开场 1–3 句人话,第一句就是结论。不写标题,不起格局名。 2. 问题里点到几个对象(妈妈、爸爸、伴侣、老板……)或几个子问题(关系如何、他们怎么对我、什么时候),开场之后每个各一段,H2 标题用问题里的词(例:`## 你和妈妈`、`## 你和爸爸`、`## 他们怎么对你`)。只有一个对象、一个子问题时不拆,开场后直接接下面第 4 步。 -3. 每段先写 1–3 句人话,讲这个人是什么样、你们怎么相处、事情会怎么走;然后在括号里给不超过 2 处盘上依据(宫、宫主、代表星、分盘、大运)。 +3. 每段先用人话讲清楚这个人是什么样、你们怎么相处、事情会怎么走,写到讲清楚为止;然后在括号里给出撑住这段判断的盘上依据(宫、宫主、代表星、分盘、大运),够用就停,不堆无关的。 4. 之后依次是 `## 时间怎么看`(卡里有相关大运或行运才写,没有就省)、`## 这周可以做的一件事`(1–3 条,只出现一次)。 5. 原 `## 盘里支持这个判断的地方` 改名 `## 盘上依据`,放在 `## 时间怎么看` 之前,只写对象段括号里没引过、而判断需要的依据(Raman 六步、Yoga 表照旧放这里,表格与正文二选一);没有新依据就省掉这一节。 -6. 首轮总长 ≤ 1,000 字(原 900;多一个对象段要多出约 100 字)。追问轮 ≤ 200 字直接答的规则(BUG-1072)不变。 +6. **不设字数上限**(D8),以讲清楚为准。约束换成两条:同一件事只说一遍(BUG-1073 的目的保留),不为显得周全写问题用不到的盘面事实。追问轮仍是第一句就答、不重开整份骨架、不重讲上一轮,但不再限 200 字。 **D3 人话自检,写进提示词。** 把每句话括号里的内容删掉后,一个完全不懂占星的人仍能看懂它在说什么。禁止: - 自造格局名、四字概括(「外松内紧」「外近内隔」之类) @@ -58,9 +58,11 @@ **D7 形状说明只定义一处。** 7 处抄写收敛为 `product-voice.ts` 导出的常量,其余位置引用它(英文骨架说明可以一句话指过去),以后改口气只改一处。 +**D8 取消字数上限(产品 2026-10-01 追加:「字数可以不限制,讲清楚最重要」)。** 推翻开场 ≤ 400 字、首轮 ≤ 900 字(BUG-1073 D8)、追问轮 ≤ 200 字(BUG-1072)三个数字。所有提示词里的字数上限一律删除(开场、首轮、追问、`natalAnswerShapeInstruction`、`followUpShape` 那句「不超过 200 字」、route 用户回合「不超过 400 字 / 全文不超过 900 字」)。保留的是目的:第一句就答、同一件事只说一遍、追问不重开骨架。行动条数(1–3 条)不是字数限制,保留。 + ## 4. 硬红线 -1. 不动生时校正的提示词、lexicon、Skill 报告;不动寒暄豁免(BUG-976/977)与追问轮 200 字规则(BUG-1072)的判定逻辑。 +1. 不动生时校正的提示词、lexicon、Skill 报告;不动寒暄豁免(BUG-976/977)与追问轮(BUG-1072)的**判定逻辑**(哪一轮算追问不变,只去掉追问指令里的 200 字)。 2. 不动 Part B / MEVG / 技法审计表的去向(仍在证据面板,不进正文);不动工具调用流程、数据卡其它领域、`route.ts` 流程代码(只改那一段指令文字)。 3. 降级路线保留语义:申报时段不讲宫位、大运、分盘、月份;无出生分钟只讲公开日历、不点个人大运、不写月份。改的只是形状,不是边界。 4. `frontend/src/app/page.tsx`、`scripts/jyotish_api_server.py` 不增长;不升级依赖;不改数据库。 @@ -74,8 +76,8 @@ - 删 `OPENER SHAPE` 整段,新写 `ANSWER SHAPE`,按 D2 / D3 / D4。降级路线两条按红线 3 改写成新形状的填法。 - `HOPE DISCIPLINE` 按 D5 改写;PERSONA 不动。 - Good / Bad 示例全部换掉。至少要有:① 父母题按对象分段的完整首轮(下附草稿,执行方可润色,不得改结构);② 单对象事业题(不拆段);③ 是非题、追问轮两个现有示例保留;④ Bad 示例:格局名 + 推修 + 扮演象的改写短句,并写明坏在哪。 -- `natalSpokenReportContract` 改为新的标题顺序(对象段 → `盘上依据` → `时间怎么看` → `这周可以做的一件事`),≤ 1,000 字。 -- **验收**:`productConversationVoice` 和 `natalSpokenReportContract` 里不再出现「扮演」「格局」「谁在推」「外松内紧」;新增单测钉住:按对象分段规则、人话自检句、禁止清单四项、空宫规则、降级路线两条。 +- `natalSpokenReportContract` 改为新的标题顺序(对象段 → `盘上依据` → `时间怎么看` → `这周可以做的一件事`),不写字数上限。 +- **验收**:`productConversationVoice` 和 `natalSpokenReportContract` 里不再出现「扮演」「格局」「谁在推」「外松内紧」;model-facing 字符串里不再出现「≤ 400」「不超过 400 字」「900」「不超过 200 字」这类字数上限(钉住这些数字的既有断言按三栏改);新增单测钉住:按对象分段规则、人话自检句、禁止清单四项、空宫规则、降级路线两条。 父母题 Good 草稿(盘上数据是示意): @@ -120,11 +122,12 @@ - `docs/testing/consult-plain-answer-20261001.md` 真机清单(见 T6)。 ### T6 效果验证 +- **长度副作用核对**(必做):去掉字数上限后,查清首轮回答会不会撞上现有的输出 token 上限和 70 s 答题时钟(BUG-1053 的双钟、BUG-1049 截断记录)。只核对、记进进度记录;如果会撞上,回报给 Claude,不要自行调大上限或时钟。 - **离线**(执行方有模型凭据才做,没有就写成环境缺口):用虚构出生资料,对 4 个问题各跑新、旧提示词一次,原文存进进度记录:①「我和父母关系如何」②「我和我妈关系怎么样」③「我的事业接下来怎么走」④「我和伴侣还能走下去吗」。逐条按 D3 禁止清单打勾。 - **真机清单**(给产品,staging,deepseek-v4-flash 与另一个模型各走一遍): 1. 问「我和父母关系如何,他们怎么对待我」:有 `你和妈妈`、`你和爸爸`、`他们怎么对你` 三段;无格局名、无「推/修/扮演」;没提空宫,或提了也讲了宫主。 2. 把每段括号外的话念给不懂占星的人听,能复述大意。 - 3. 追问「那我爸呢」:≤ 200 字,直接答,没有标题。 + 3. 追问「那我爸呢」:第一句就答,只讲爸爸,不重讲整份,没有标题。 4. 问「我的事业接下来怎么走」:不拆段,开场后直接是依据、时间、行动。 5. 打「你好」:仍是一句寒暄。 6. 未填出生分钟的档案问事业:不点个人大运,不写月份。