docs(tasks): consult plain answer — drop word caps per product (D8)

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:
Jesse_Chen
2026-10-01 09:10:10 +08:00
co-authored by Claude Opus 5.5
parent 78c2ef83f1
commit 00420f89e2
@@ -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. 未填出生分钟的档案问事业:不点个人大运,不写月份。