docs(tasks): synastry chat must fetch report evidence and fact-check answers
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
04a70923f1
commit
5622a2dbf1
@@ -32,6 +32,7 @@
|
||||
| G5 | 计费照普通对话:每轮 `chat.standard`,开会话不扣点 |
|
||||
| G6 | 对话侧栏里这类会话标题写「A × B · 合盘追问」;当前人物是两人中任意一个时都显示;人物选择器锁定显示「A × B」 |
|
||||
| G7 | 报告被删或任一人被删:报告随之删除(#82),这些会话保留文字记录,但不能再继续提问,输入框处显示「这份合盘已删除」 |
|
||||
| G8 | **不许瞎说**(产品 10-18 追问「对话能拿到合盘数据吗,不是在瞎说吧」):今天的普通对话**拿不到**合盘数据,本单就是把数据接进来。三道保证:① 每轮回答前**必须**先调「读取合盘报告某节材料」工具,没拿到材料不回答;② 回答里提到的每一个盘面事实(某星落某宫 / 某星座、某两星相位、某段大运与起止)都要能在本轮工具返回的材料里找到;③ 回答生成后由程序逐条核对②,对不上就带着差异重写一次,仍对不上则改为固定答复「这一点在这份合盘里没有算到,我不能确定」,不输出未核实的说法 |
|
||||
|
||||
## 硬红线
|
||||
|
||||
@@ -47,13 +48,13 @@
|
||||
| --- | --- | --- |
|
||||
| T1 | **数据**:`chat_sessions.session_type` 加 `synastry_report`;加 `synastry_report_id`(指向 `personal_reports.id`,删除时置空并标记会话只读)与 `synastry_section`(节键)。`chatSessionCreateSchema`、`authoritativeSessionBinding` 同步:该类型必须带本人拥有的 `synastry_full` 报告 id 与合法节键 | `test:db`:他人报告 id 被拒;节键非法被拒;删报告后会话仍在、标记只读 |
|
||||
| T2 | **入口**:#82 阅读页「对哪一段想再问清楚?」的节按钮 → 建会话 → 跳到 `c=<id>` 并预填问题(G2);去掉 #82 里的隐藏开关 | 渲染测试;点按钮不调用 `/api/consult`、不扣点 |
|
||||
| T3 | **对话链路**:`POST /api/consult` 遇到 `synastry_report` 会话,走独立分支:不调 `run-jyotish-consultation`;用新的合盘追问提示(建议 `mastra/synastry-report-chat.ts`)+ 一个只读工具「读取合盘报告某节材料」(返回该节结论、分析逻辑、对应证据条目;时间线节返回分段与两人大运;可另取技术依据摘要);入口枚举加 `synastry_report`,跳过闲聊分类;计费照 `chat.standard` | 单测:不调用单人排盘;工具只能读本会话绑定的报告;问报告外的内容时回答里有「这份合盘没算到」类说明(用固定样例走一遍) |
|
||||
| T3 | **对话链路**:`POST /api/consult` 遇到 `synastry_report` 会话,走独立分支:不调 `run-jyotish-consultation`;用新的合盘追问提示(建议 `mastra/synastry-report-chat.ts`)+ 一个只读工具「读取合盘报告某节材料」(返回该节结论、分析逻辑、对应证据条目;时间线节返回分段与两人大运;可另取技术依据摘要),**每轮强制先调用**(G8①);入口枚举加 `synastry_report`,跳过闲聊分类;计费照 `chat.standard`。**回答核对**(G8②③):新增 `lib/synastry-chat-fact-check.ts`,从回答里抽出星曜、宫位、星座、相位、大运与日期的组合,逐条在本轮工具材料里查找;对不上 → 重写一次 → 仍对不上走固定答复;核对结果记进本轮遥测 | 单测:不调用单人排盘;工具只能读本会话绑定的报告;工具没被调用时不输出回答;用名人报告材料造三条回答样例(全对 / 编了一个不存在的「金星在 7 宫」/ 大运起止写错一年),核对分别判通过、失败、失败;失败两次时用户看到的是固定答复;问报告外的内容时回答里有「这份合盘没算到」类说明 |
|
||||
| T4 | **侧栏与选择器**:标题「A × B · 合盘追问」;两人任一为当前人物时显示;选择器锁定显示「A × B」;只读会话的输入框状态(G7) | 渲染测试 |
|
||||
| T5 | **记录**:DESIGN.md(入口与只读态)、VOICE.md(合盘追问的口吻与术语边界)、CHANGELOG、`docs/testing/synastry-report-chat-20261018.md` 真人清单(从报告进对话、预填不自动发、追问两轮、问报告外问题、删报告后只读、英文报告进对话) | 文档齐 |
|
||||
|
||||
## 让步顺序
|
||||
|
||||
T1–T3 必须一起交;T4 若来不及,侧栏先按第一个人显示,写进 PROGRESS;不得为赶工复用单人对话的提示或工具。
|
||||
T1–T3 必须一起交,T3 的回答核对不可省(没有它本单不得合入);T4 若来不及,侧栏先按第一个人显示,写进 PROGRESS;不得为赶工复用单人对话的提示或工具。
|
||||
|
||||
## 开工前置命令
|
||||
|
||||
|
||||
Reference in New Issue
Block a user