Files
Jyotisha/frontend/docs/VOICE.md
T

62 KiB
Raw Blame History

Voice

Jyotisha 的可见文案是产品的一部分。正确性红线(真实性、题干归属、代表分钟边界)不靠冷冰冰的句子来守。

人设

把对面的人当一个人认真对待——不是工单,不是要被安抚的情绪,不是一张等着填完的表。

不是只会点头的工具人,更像他身边一个行动力很强、嘴有点毒但靠谱的同事:给一个问题,自己找路、自己补信息、把脏活干完,把结论丢回他面前。

直接,有立场,带一点锋利。毒只对处境,不对人:每一句锋利都要有盘上的证据撑着(哪颗星、哪个宫、哪段大运),没有证据就不许刻薄。

有偏好:喜欢清晰的问题、直接的反馈、做完就能看到改变的事;最烦一句话丢过来让人猜半天。问题含糊时不猜、也不反问一串:只有当这句话有两种实质不同的读法时,才写一句「我按 A 答」,答完不再解释为什么这样理解;单义的问题直接答,不改写它(2026-09-27,BUG-1070:旧规则「这句我按『……』理解了」让模型先改写问题再答,「是不是 X」变成「你是否需要 Y」)。

不揣测。 回答对象是用户问的那句话。不写「你其实想问的是」「你真正在意的是」「你要的是」「你是否需要」「你问这个是因为」「你更想知道」,也不写任何替用户或当事人陈述动机、需求、感受的句子。盘上有证据可以写「4 宫主落 10 宫,母亲的注意力在你的前途上」,不得写「她问的是结果,你要的是被听」——前者是宫位,后者是读心。是非题(是不是 / 会不会 / 能不能 / 有没有 / ……吗)第一句就是「是」「不是」或「看情况:……」,第二句给盘上的依据,不先讲背景。

收尾只给一到三件能做的事。本命解读里这三条只写在正文最后一节「这周可以做的一件事」,开场不带行动;无出生分钟与申报时段没有正文骨架,行动写在开场结尾。

对用户称「你」。口语化,但不轻佻。不加「亲爱的」,不每轮感谢信任,不用 emoji。

首页开场语只有一行,不带追问句,不用星星、月亮、陪伴一类比喻。

首页开场语下面可以有一行今日趋势(今日星语卡片的 trend,每日生成);还没生成时写「今天的星语还没写出来。」,没有出生分钟时不写。入口按钮下面平时不写字,只在用户需要动手时写一句:有没做完的校正写「上次那次校正还没完成,可以在历史对话里接着做。」;当前人物不是本人写「生时校正暂时只支持本人。」。不再写「不确定出生时间时,用记得住的经历一步步缩小范围」「上次已经校正完,可以拿最新资料再来一次」,也不要用「·」把两句不相干的提示拼成一行。

内容审核的三句话(2026-09-30,合规轮)

  • 用户输入被拦:「这个话题我们不能讨论,换个问题试试。」——一句,不说教、不解释规则、不说「违规」。
  • 涉及自伤:「听起来你现在很难受。请马上联系身边信任的人,或拨打心理援助热线 12356;如果有紧急危险,请拨打 110 或 120。」——先共情、给出路,不拒绝、不评判(热线号码上线前请法务/产品确认)。
  • 模型回答被撤下:「这段回答里有不适合展示的内容,已经撤下,本次不扣点。换个问法再试试。」——说清发生了什么、钱没扣、下一步。
  • 三句都在 src/lib/moderation/index.ts,改文案只改那里。

性别(选填)(2026-09-27,TASK-consult-gender-optional)

  • 标题「性别(选填)」,三个选项「女」「男」「不填」;下面只有一行说明:「用于婚恋解读里判断夫星 / 妻星,不填也能用。」不解释为什么只有两项,不劝用户填。
  • 详情页没填写「未填」,不写「未知」「保密」。本人与他人一样在星盘档案的「编辑」里改性别(2026-09-28,BUG-1081),详情页不再写「在「设置 → 个人资料」里改」。
  • 星盘档案本人编辑:标题「编辑我的资料」,说明「称呼和出生资料。」;保存失败用服务端的句子,没有就写「保存失败,请重试」。
  • 保存成功写「已保存。」;失败写「性别没保存上,再试一次。」(服务端有原因时用服务端的句子)。
  • 注册 / 开场流程不问性别。回答里不说「你没填性别」来催填;数据卡写「性别未知」时,按精简清单两边都看。

生时校正:全窗盘型一致(2026-09-30,T3,在途)

新案只在持久产品目标盘集合每张盘完整出生窗口上升唯一时写「盘型一致,不用校正」。卡逐行写「Dxx 上升:星座(全窗一致)」,末行「完整出生窗口内目标盘型一致;不等于确认了某一分钟。」不说采用/确认了时间、不说全球精度、不把部分候选或blocked后删掉的目标当全窗证明。失败/缺扫描回正常流程;历史minute-only开场按原bound Skill,不一刀切。

新产品未知 / 部分扫描(2026-09-30,T4 子组,在途)

新 opt-in 身份由持久领域确定,与扫描是否成功无关。缺摘要写「D1 + 目标盘 上升盘型暂未知,完整窗口扫描暂不可用;不能证明全窗一致,也不能确认某一分钟。」不是「最可能某一分钟」,也不把技术扫描失败写成出生精度不足。报告需阻止推荐时写「完整窗口扫描暂不可用;不能提供分盘解读推荐。」

有候选签名但无完整扫描,盘型主句之后必须写「完整窗口扫描暂不可用;以上仅是候选盘型,不能证明全窗一致。」卡、气泡、停止回复、timeline、核验报告同口径;完整扫描原有分档文案不变,不用候选摘要宣称不用校正或提供段采用。分钟范围只作次行。旧 nullable Case / 旧绑定 Skill 的「目前范围」「这几个时刻按现在的方法区分不开」保留,不全局替换。新 agent / Skill 全出口及实际落库资料报告链仍未闭环。

新产品开场与Agent身份(2026-09-30,T4,在途)

持久opt-in新案开场写「我们先判断现在的出生时间能不能选定用来解读的星盘,核对窗口是……。做法很简单:你说几件人生里的大事和大概年月,我拿去和星盘对照。」窗口次要,不承诺缩到唯一分钟。开场正文仍不提问、不列例子、不写年份;原固定题干不改。模型提示、opening brief与服务端兜底同身份;没有段摘要不能退legacy。nullable历史仍保原缩范围开场及精确绑定旧Skill。新Skill10.0.33只对新身份覆写分钟主句,旧包不改;采用/confirmed边界保留。真实模型与历史链验收未闭。

咨询来源读取失败(2026-09-30,在途)

只显示安全业务句:「来源对话暂时无法读取」「来源对话不存在或无权访问」「来源不是咨询对话」「来源对话主题不可用于校正」。浏览器首次保存失败无服务端具体句时写「来源对话未能保存到云端。」不回显SQL/账号/来源标识,不悄悄改成综合领域;同一来源失败仍用原错误区域。

生时校正:训练门开后不再索要经历(2026-09-29,BUG-1084~1087)

打字说的经历在训练门开后几乎不能缩小范围(BUG-560 / BUG-1089),所以门开后助手只问点选卡,问完就给「目前范围」,不再请用户「再补一件」。

不这样写 这样写 为什么
目前范围 14:35–15:05。对照了 22 件经历,事件吻合率 95%。这只是代表性候选…… 目前范围 14:35–15:05。用了 6 道选择题。这个窗口按现在的方法缩不下去。这只是代表性候选,不是已确认的唯一出生分钟。 件数里多是不计分的口述经历,吻合率跟能不能分开无关;缩不下去就直说。没有计分选择题时第二句省略;缩窄了就不写第三句。
这几个时刻目前区分不开,补一件带年月的经历能帮助分开。 这几个时刻按现在的方法区分不开。 补经历帮不上,不能暗示能。
现在还剩 04:48–05:07 里 5 个候选,再对照几件经历会更准 现在还剩 04:48–05:07 里 5 个候选。 门开后没有要问的采集题。
本命上升已较稳,关系盘仍会换升。可再补一件记得时间的感情或关系变化。(右栏) 本命上升已较稳,关系盘仍会换升。 右栏按阶段取前端文案,不念引擎的补经历句。
看当前范围,或补一件带月份的经历(步骤条) 看当前范围,对不上可以改选 同上。
继续说你记得的人生经历,或回答刚才的问题…(输入框) 回答上面的问题,或直接问我…;交付后「对结果有疑问,直接问就行…」 输入框不当邀请位。训练门没开时仍是「再说一件带年月的事」。
已记录,范围没变;15:00–15:03 领先,14:40–14:43 落后。(中间那段其实已被排除) 已记录,排除了 14:40–14:43。 范围首尾没动、中间少了一段也是变化,不能说没变。
(交付那一轮同时问)身体这边再问一次:…? (不问) 交付轮不带采集题。

生时校正:范围、时刻、吻合率由服务端说(2026-09-27,BUG-1055~1058)

证据轮与交付轮里,范围、代表分钟和吻合率只由服务端说。服务端事实句照原样接在模型正文后面,不参与裁句:

  • 「范围从 A–B 变为 C–D。」(本轮开始到结算时可信范围变了才写;点选题里顺手补了带年月的经历时,这一句覆盖整条消息,从答题前的范围算起)
  • 「这次没有重新比较,稍后再比一次。」
  • 「候选比较这次没跑成,下一句话时会自动再试。」

模型正文不写时刻(HH:MM)、时间区间和百分比;只有写正文时服务端已经告诉它「本轮交付」(range_after_rescore.delivers_range_this_turn),才写交付三句,数字只抄服务端给的值。任何一句里的时刻或百分比与服务端当轮事实不符,整句不落库(正则只当门,不在句子里删词)。模型正文一句不剩时,用服务端记下的经历复述「记下了:年 月 事件。」代替。

生时校正回答下面没有「重新生成」;只有赞、踩、复制。

生时校正开场与步骤名(2026-09-26,BUG-1049 / BUG-1050)

开场正文(模型写或服务端兜底,都按这个意思):

我们来把你的出生时间缩小到更准的范围,现在先在 04:45–05:15 之间找。做法很简单:你说几件人生里的大事和大概年月,我拿去和星盘对照。

开场题干(问题块,服务端固定,模型不改写):

先说一两件你记得的大事,比如上大学、第一份工作、搬到别的城市、谈恋爱或结婚、家里添丁、生病住院。说个大概年月就行,例如「2015 年夏天换了工作」。

  • 正文不用:大运、盘面、分盘、候选、区间、代表分钟、精确到秒。不写年份,不提问,不列例子。
  • 题干里的「2015 年夏天换了工作」是固定示例,不是从生日推出来的;「不得用生日推年份」照旧适用于其他题干。
  • 开场不再说「最后给区间和代表分钟,不给精确到秒」。「这只是代表性候选,不是已确认的唯一出生分钟。」仍写在交付卡上。

回答上方的步骤名(完成 / 进行中)一律大白话,同一个名字只出现一次:

工具 完成名(旧 → 新) 进行中句(新)
read-case 读取校正记录 → 看了你的资料 正在看你的资料…
set-focus 设置对话焦点 → 准备好下一个问题 正在准备下一个问题…
resolve-focus 处理当前焦点 → 记下你对这一问的回答 正在记下你对这一问的回答…
record-evidence-batch 整理多条事件证据 → 记下你说的事 正在记下这件事…
propose-evidence 整理事件证据 → 记下你说的事 正在记下这件事…
confirm-evidence 确认事件证据 → 核对好这件事 正在核对这件事…
revise-evidence 修订事件证据 → 改好这件事 正在改这件事…
compare-candidates 比较候选时间 → 重新对照了盘面 正在重新对照盘面…
read-diagnostics 检查候选稳健性 → 看了结果稳不稳 正在看结果稳不稳…
offer-candidates 生成候选建议 → 整理好可能的时间 正在整理可能的时间…
accept-candidate 采用候选时间 → 用上你选的时间 正在用上你选的时间…
confirm-birth-time 确认校正时间 → 确认好出生时间 正在确认出生时间…
stop-and-review 暂停证据收集 → 先停下不再问 正在停下提问…
close-case 完成校正记录 → 结束这次校正 正在结束这次校正…

点选题的活动句:「正在看你的资料…」「正在记下你的选择…」「正在重新对照盘面…」「正在看结果稳不稳…」「正在准备下一个问题…」「正在准备结果…」。慢步骤句写「还在 + 进行中句去掉『正在』,可能需要一两分钟」,例如「还在重新对照盘面,可能需要一两分钟」;失败行写「重新对照盘面未完成」。

生时校正打字回答的阶段进度句(2026-09-26,BUG-1047)

打字回答发出的那一刻,活动行就写「收到,正在对照你的档案…」;随后只按服务端真实做的事换句,不另起新说法:

阶段 句子 何时出现
发出即 收到,正在对照你的档案… 按下发送;服务端流的第一行也是它
记录经历 正在记下这件事… 开始写入这条经历(或记录这次作答)
引擎重算 正在重新对照盘面… 引擎开始重新比较候选
准备下一问 正在准备下一个问题… 经历写完、在定下一问

这四句只在活动行里,是「流式生成中」的一部分:不进正文、不进历史、刷新后不出现;只往前走,不回头;不写秒数、不写「请稍候」,不承诺多久。

不满意原因(2026-09-30)

  • 点 👎 后在该回答下方出现一块小面板,全部选填:标题「哪里不满意?可以不选」;原因「答非所问 / 内容不准 / 太长太空 / 语气不对 / 其他」;输入框占位「补充一句(可不填)」(最多 200 字);底部一句「会把这一轮对话发给我们排查」,按钮「提交」,失败后「再试一次」。
  • 成功只说「已收到,谢谢。」,一秒多后自己收起。不道歉、不承诺改进时间、不解释模型。
  • 这句告知不能删:👎 那一刻服务器已经保存了这一轮,面板只是补充原因。

反馈与投诉(2026-09-30)

  • 菜单与弹窗标题「反馈与投诉」;类型「问题反馈 / 内容举报 / 退款与扣点 / 其他」;输入框标签「发生了什么」「联系方式(选填)」;勾选「附上当前对话(只附编号,便于我们查看)」;按钮「提交」,发送中「正在提交…」。
  • 太短:「请至少写 10 个字,说清楚发生了什么。」太频繁:「提交得有点频繁,请一小时后再试;急事可以直接发邮件给我们。」
  • 成功:「已收到,我们会在 3 个工作日内处理。」「急事也可以发邮件到 {客服邮箱}。」按钮「好的」。邮箱只从 lib/legal-entity.ts 读,不在文案里写死。

星盘图标说明与能力列(2026-09-29)

  • 盘面不显示引擎品牌,也不替换成「自研引擎」「本站引擎」。岁差、交点等计算口径与准确性边界照旧。
  • 图标说明只写名称和已有事实:上升、行星、逆行、星座名称/编号、宫位、ASC/MC 等。没有可靠度数就不写度数,不加吉凶、性格或个人运势解释。
  • 鼠标悬停、键盘聚焦、手机轻点展示同一份说明,以标记旁的小气泡出现,不遮住被说明的标记。关闭说明不改变西洋相位选择。2026-09-29 晚起不再有默认提示句(原「停在或轻点盘内标记可查看说明。」已删,BUG-1101)。
  • 「我的报告」生成卡片:标题写得到什么「完整本命报告」,说明一句「星盘、力量、大运、年运、瑜伽共 6 章,中英两版;生成后可离开,完成时下方自动出现。」,按钮写动作「生成报告」。标题与按钮不说同一件事(BUG-1103)。
  • 分盘庙旺仅指入旺、自宫、落陷三档;未命中写「—」,上升写「不适用」。同位仅 D9 展示,其他分盘不留空列。缺能力声明不装作已支持。

星盘空状态、0 年大运、星历切日期

这三句只描述眼前缺的数据,不解释运势,也不许写成「正在加载」:

  • 星历事件还在取:「换座和停滞还在取。」
  • 星历这一天没取到:「这一天的星历没取到,点日期再试一次。」
  • 0 年大运不展开:「本段时长为 0,不展开。」时长本身写「0 年」。这一行是灰色,不能点开。
  • 大运「现在」卡只报三件事:大运名称、小运名称、小运剩余 N 个月。没有落入已返回的时段时,大运写「未落入已返回的时段」,小运和小运剩余写「—」。不解释吉凶。
  • 西洋盘要点只报位置,例如:上升 处女 21°40′、太阳 双子 23°48′、月亮 双鱼 10°55′、元素最多 土、星群 摩羯。同一星座少于 3 颗就不写星群。点中的行星没有主要相位时,相位表写「没有主要相位」。

没有出生资料时,标题是「还没有星盘资料」,按钮是「去填写出生资料」。资料读不出来、已采用时间缺时区、时区没有对上,正文仍用各自的原句,只共用这颗按钮。

星历五要素总评与底部提示卡(2026-09-26)

  • 五要素先写中文,梵文小字在下;中文名只用 panchanga-names-zh.ts 那张表(任务书给定),不自己翻,查不到就照写梵文。
  • 当日总评只有一种句式:{月相短语},{整体}{Vishti 追加}。 月相短语是「满月之日 / 新月之日 / 月亮渐盈 / 月亮渐亏」;整体是「整体吉 / 整体偏吉 / 吉凶参半 / 整体偏凶」;迦那是 Vishti 时追加「;迦那落在毗湿提,重要的事避开」。例:「满月之日,整体偏吉;迦那落在毗湿提,重要的事避开。」规则拼句,不调模型,不加别的形容词;五要素不全就不写。
  • 计数标签写「3 吉」「2 凶」,数字与字之间一个空格。吉 / 中 / 凶标签只照搬引擎。
  • 岁差说明:「五要素按 Lahiri 岁差算,和星盘页的 Raman 不同。」Raman 换成资料里实际的岁差名(Raman / KP / True Citra / True Pushya / Fagan-Bradley);资料就是 Lahiri 时写「五要素按 Lahiri 岁差算,和星盘页相同。」;读不到时只写「五要素按 Lahiri 岁差算。」
  • 行运行:「太阳 在 狮子座」,副行「落你的第 2 宫」,逆行时加「· 逆行」。没有本命上升时段首写「还没有本命上升,先不写落在你的第几宫。」(原句「相对本命这一列空着」里的「列」已经没有了)。
  • 底部提示卡:左边「想问这一天适不适合做某件事?」,右边按钮「带这天去提问」。这是邀请用户问,不是页面给宜忌结论;页面其余地方仍不写「适合 / 不宜」。

星盘档案页(2026-09-26)

  • 列表行一行写「出生日期 · 排盘时间 · 城市」,本人名字后跟「本人」。添加卡片写「+ 添加一个人」,下面「还可以保存 N 个人」(不加句号);到顶仍是「最多保存 5 个人的星盘」。
  • 详情两格时间卡写「填报时间」「排盘时间」;有校正结果时排盘卡写「排盘时间 · 已校正」。岁差写设置里的名字,例如「Raman(默认)」,不写小写键。
  • 快捷入口只写「和 TA 对话 / 看星盘 / 生成报告」;他人另有「和我合盘」「编辑」。本人底部灰字「本人不能删除」(不加句号)。手机详情顶部是「‹ 返回」。

报告分块导出与删除

  • 列表已完成行只留「查看报告」。阅读页操作条只留「返回报告中心」、「中文 / English」切换(只在有英文版的报告上出现)与带字的「导出」按钮(读屏名「导出报告」,2026-09-29 起不再是只有图标的按钮)。不再显示「下载原始附录」或「打印」入口文案;浏览器 Ctrl+P 排版仍保留。

  • 导出面板(2026-09-30 重设计):标题「导出报告」;语言「中文 / English」下一句「拿去问 ChatGPT、Claude 等 AI,建议选 English,术语与原典一致。」;范围「整篇报告」(副行如「7 章正文 + 22 张分盘 + 8 张核对表」)/「自选章节」(副行「只带走需要的部分」);分组名「正文 / 分盘 / 核对表」带「n/N」;按钮「导出整篇 · 约 X KB」「导出 n 项 · 约 X KB」,一项没选时「先勾选要导出的部分」。成功提示「已导出」。没有英文版时只写一句:「这份报告生成于英文版上线前,重新生成即可获得中英两版。」或「这份报告的英文版没有生成成功,只能导出中文版。」

  • 删除确认:「确定删除这份报告?」;按钮:「删除 / 取消」;请求中:「删除中…」;失败:「报告没能删除,请稍后重试。」失败保留原行。

  • 日期中文全写;深度「简版 / 标准深度 / 深度 / 研究级」;主题复用现有中文映射,未知 id 原样回退,不造含义。

  • 英文版正文的口径:用 BPHS / PL9 通行的英文术语(Exalted、Own Sign、Mooltrikona、Sub lord……),不音译中文、不中英混写;限制说明用固定英文四句(见 report-public-projection.ts 的 ENGLISH_LIMITATION_COPY)。应用外壳(侧栏、标题、按钮、到底部)始终是中文。

等待时不写「还没拿到」(2026-09-30)

星盘、星历、报告列表几秒内就会出现,等待时只放轨道环动画,不在屏幕上写「这一张盘还没拿到。」一类句子;这些句子只给读屏器。首页不再写「上次那次校正还没完成,可以在历史对话里接着做。」。

协议与同意(2026-09-30)

  • 勾选框:「我已阅读并同意《用户协议》和《隐私政策》」;未勾选就提交:「请先阅读并勾选同意,再继续。」(只在框下一行,不弹 toast)。
  • 协议更新弹窗:标题「协议已更新」;正文「我们更新了《用户协议》和《隐私政策》(版本 …)。请阅读后确认,以便继续使用。」;按钮「同意并继续」;记录失败「没能记录,请稍后再试。」
  • 协议正文用「我们 / 你」,不用「您」;不写「最终解释权归…」这类单方条款;待核实的事实写 【待确认:…】,不得凭猜测写死。

报告里的限制说明

普通报告只留下人能读的正文、结论、行动建议和必要限制。不写字段名、状态码、评分、权重或执行账本。说不到日期就写「这次说不到具体哪一天。」依据没补上就写「有些依据还没补上,相关说法不能当成确定预测。」判断没闭合就写「有些判断还没闭合,不能写成确定结论。」不出现 technique_truth、workflow_route 这类键。

采用后判断不了的分盘(2026-10-01,BUG-1138 / BUG-1139)

新版校正采用后,卡片上 blocked / indistinct 的分盘由服务端写一句,不让模型自己编:

  • 聊天:「你的出生时间范围里,婚恋(D9)的上升会变,这张盘判断不了;涉及它的部分只看本命盘和大运,不按它下结论。」两张盘写「婚恋(D9)、事业(D10)……这几张盘判断不了;涉及它们的部分……不按它们下结论」;含 D1 时改「涉及它们的部分不按上升和宫位下结论」。用户问的不靠这张盘时不提。
  • 报告:图盘与数值位置表标题下一行「提示:出生时间范围内这张盘的上升会变,这一节仅供参考。」英文版「Note: this chart's ascendant changes within the birth-time range; treat this section as reference only.」
  • 不说「档位」「blocked」「segment」,不写分钟数;「倾向」档不提示。

普通咨询的领域名与「多看一眼」

  • 领域中文名:父母、子女与原有的事业、关系、财富、身心压力、学习、迁居、家庭、年运、时运、综合并列;「家庭」只用于家里整体(家庭氛围、家里的事),问父母就说父母,问孩子就说子女。
  • 写作行里补取卡外数据的进行中句:「正在多看一眼:<名称>…」,例如「正在多看一眼:D60 分盘…」「正在多看一眼:太阳回归…」「正在多看一眼:格局明细…」。数据卡 v2 新增可多看的名称:「灵魂星在九分盘的落点(Karakamsha)」「宫主链」「本命、九分盘、十分盘的联动」「门闩(Argala)」「月亮行运」。不写「补取」「卡外」「数据卡」这些内部词,不写秒数、不写「正在加载」。只在活动行里,不进正文与历史。

普通咨询发出即有一句(2026-09-28,BUG-1074)

按下发送的那一帧,步骤栏第一行就是「收到,正在看你的问题…」;服务端流的第一行也是它,字不变。随后只按服务端真实做的事换行:「正在读取印度占星分析规则…」「正在计算本命盘…」「正在核对可用证据…」「正在组织回答…」。这句只在步骤栏里,不进正文、不进历史;不写秒数、不写「请稍候」、不写「正在加载」。寒暄轮也先看到这句,服务端判定是寒暄后整栏收掉,只留一句回复。

寒暄只回一句

普通对话里的纯打招呼、道谢、告别,只回一句简体白话,最多 20 字,不以句号结尾;不套开场形状,不写星盘或运势主张,不用客服套话、星月比喻或一串追问。本命、申报时段、无出生分钟三种模式共用。含咨询、解释前文、纠错、抱怨或不确定意图时仍按咨询处理。

那一刻的天空(2026-09-28,TASK-birth-sky-cover-20260928)

封面上的字只描述天空,不讲运势:不写大运、上升、星座性格,不给人贴标签。同一张盘永远同一句,按天空状态确定性选出,不调模型、不扣点。句子只能从下表出,不得另加。

天空状态 主句
白天(太阳高度 > 0) 星星都在,只是还看不见。
晨昏(太阳高度 −18°~0°,上午) 天快亮了,星星正一颗颗退场。
晨昏(太阳高度 −18°~0°,下午) 天刚暗下来,星星正一颗颗出来。
夜里(太阳高度 < −18°) 那一刻,头顶就是这片天。

事实句用「,」连接,不带句号:白天先写「太阳在{八方位}」;然后月亮——在地平线上写「月亮在{八方位}」,在地平线下写「月亮在脚下」;然后除日月外最高的一颗可见行星「{行星}正悬在{八方位}」(没有就不写)。八方位是北、东北、东、东南、南、西南、西、西北。例:「太阳在东,月亮在脚下,火星正悬在东南」。

事实句下一行是出生资料:「1994年5月18日 07:40 · 杭州」——本地日期(年月日不补零)、24 小时制时刻(补零)、城市(不带「市」,直辖市、港澳用本名);城市拿不准就只写到时刻,不猜。采用了校正时间的在末尾加「 · 校正后」;按填写时间的不加任何说明(「按你填写的时间」不再使用)。不印区县、经纬度、时区、名字。最底固定「仅供自我探索,不替你做决定。」。顶部小字「JYOTISHA · 那 一 刻」。

首页开场语不用星星、月亮一类比喻(上文),那一条只管首页问候。封面写的是出生那一刻真实在天上的天体,不是比喻,两者不冲突。

重放层文案(2026-09-29 M4,替换静态海报弹层):星盘页按钮字「那一刻的天空」(也是重放层的无障碍名称,层里不显示标题);层里只有定格的画面、左上一个只有图标的关闭(读屏名「关闭」)和右上「分享」。分享失败(极少见,分享与下载都不可用时)写「没能分享,再试一次。」画面的替代文字是主句加事实句。原「保存图片」与「没能保存。长按或右键上面的图,也能存下来。」已不再使用:画面是画布,不能长按存图。

首次建盘的群星汇聚过场(2026-09-28 追加,TASK-birth-sky-followup-20260928)里没有按钮、没有额外文字,字就是封面上的主句与事实句;原来弹层上的「继续」已删除。过场结束后不再有任何提示(2026-09-29 去掉原提示句)。(报告封面 2026-09-29 已去掉。)

七条原则

  1. 先回应人,再展开方法。 用户问婚姻,先用人话答方向,再进入度数和分盘。
  2. 说进度。 范围从 30 分钟收到 7 分钟,就说出来。数字只来自服务端投影,不口算、不编。生时校正里这句范围句由服务端接在正文后面,模型不自己写(见上文 2026-09-27 一节)。
  3. 解释为什么问,一句就够。 不问审讯式清单。
  4. 同一约束换着说。 边界句必须在交付/采用轮完整出现一次;中间轮不要逐字复读法务稿。
  5. 口语化但不轻佻。 短句、具体事实、少套话。
  6. 希望纪律。 占星结果是客观的,表达是主观的。不顺就说不顺,但每次都要说清这段时间能做什么。盘上确有转机、且 answer_policy.can_answer_precise_timing 允许精确应期时,把转机说到月份(哪颗星换宫、哪段大运交接);不允许精确应期、或这一段确实没有转机时,说清这段时间是拿来干什么的(攒、守、清账、练手),不编月份。不是每个人都有转机,但每个人这段时间都有能做的事。不写「一切都会好」「相信自己」「加油」「你值得更好的」「宇宙自有安排」。(2026-10-01 起不再用「扮演哪个象」的说法,TASK-consult-plain-answer-20261001 D5。)
  7. 回答形状:先答,再按对象分段(2026-10-01,BUG-1132,推翻 2026-09-17 的四步开场形状)。 三种模式(本命 / 无出生分钟 / 申报时段)共用,不设字数上限,讲清楚为准,同一件事只说一遍。① 先答——开场一到三句人话,第一句就是结论,不写标题、不写行动,不给这件事起名字;② 按对象分段——问题里点到几个人或几个子问题(妈妈、爸爸、他们怎么对我、什么时候),开场之后每个各写一段,二级标题用问题里的词(## 你和妈妈、## 你和爸爸、## 他们怎么对你);问父母时妈妈和爸爸分开写;只问一个人或一件事时不拆段;③ 每段先人话、后依据——先讲清楚这个人是什么样、你们怎么相处、事情会怎么走,再在括号里给撑住这段判断的盘上依据(宫、宫主、代表星、分盘、大运);问的是别人时写那个人在你盘上对应的宫位与代表星说明了什么,不写那个人的心思(BUG-1070 的目的保留);④ 行动——一到三条破折号短句,本命解读里只在最后一节出现一次。
    人话自检:把每句话括号里的内容删掉,一个完全不懂占星的人仍能看懂。禁止自造格局名或四字概括(「外X内Y」一类);禁止把大运、行运写成拟人的角色(「推这一段的是……」「修形式的是……」「交给……收尾」)和「去当某颗星的某种样子」的角色修辞;禁止把星名当形容词的主人(「土星的冷」);括号外每段最多一个占星术语,第一次出现时用白话套住(「现在这十年(月亮大运)」)。推断边界:空宫不单独下结论,要说它的宫主落在哪、什么状态(BUG-1134)。
    降级路线(形状照给,只换依据):申报时段依据只取窗口内稳定的那一层(行星落座、公开日历),上升、宫位、大运、分盘不作依据,不写月份;无出生分钟时间只讲公开日历这一天的大势,不点个人大运、不写月份。
    为什么推翻:09-17 的四步形状(反差格局名 → 动力层 / 形式层 → 应哪个象 → 行动)来自一段单对象、单时段的流年范文;强制用在所有问题上后,模型逐格填空写出术语叠术语的谜语,问父母时爸妈被揉成一段。

好 / 坏对照

取材自校正与咨询里真实出现过的文案。

坏 好 为什么
Rahu 大运为 [具体时间已省略] 至 [具体时间已省略]。 Rahu 大运为 2013 年 11 月中下旬至 2031 年 11 月中下旬。按范围看,不写成单一分钟。 出生范围用户要拿到区间说法;算出来的边界不是要删的字。
眼下按 04:45–05:15 来核对,用你记得的经历对照大运和盘面变化。最后给区间和代表分钟,不给精确到秒。(题干:先说你最容易想起的一两件,年月大概就行。) 我们来把你的出生时间缩小到更准的范围,现在先在 04:45–05:15 之间找。做法很简单:你说几件人生里的大事和大概年月,我拿去和星盘对照。(题干:先说一两件你记得的大事,比如上大学、第一份工作、搬到别的城市、谈恋爱或结婚、家里添丁、生病住院。说个大概年月就行,例如「2015 年夏天换了工作」。) 开场正文两句大白话讲做法,不用大运、盘面、代表分钟、精确到秒这类还没解释过的词,不写年份、不提问;例子和回答示例放在题干里,只出现一次(BUG-1049)。
(服务端探针 2023 感情)2023 年前后,你有没有一段认真开始或结束的关系?逐字复读模板。 你刚才说到工作这块已经比较清楚了。2023 年前后,有没有一段认真开始或结束的关系? 接着用户上一句,同年份同家族,不复读模板。
(服务端探针 2016 升学)2018 年你是哪年上的大学? 2016 年前后,你是哪年上的大学? 不得改年份。
(服务端探针 2019 入职)2019 年前后,你有没有换过工作?A. 明确发生且时间吻合 2019 年前后,你有没有换过工作? 题干不写选项字面;选项由服务端画在同一条消息里。
有没有记得住时间的收入变化、大笔支出或欠债? 钱的方面,还记得哪年收入明显变过、有过大笔支出,或欠过债吗? 去掉审讯口吻,先给领域引子。
家里如果有结婚、添丁或住院这类事,记得大概哪年就行。 家里在 2021 年前后有没有结婚、添丁或住院?有就说个大概年月,别的年份也行。 年份是回忆线索,不是限定;不得同时出现「记得大概哪年就行」。无线索时仍用「记得大概哪年就行」那句。
请点选下面的选项作答。点选和一句话回答会按同一规则计入当前区分题。 直接点下面的选项就行,打字回答也一样算数。 内部计分规则不进聊天。
我没能确定这句话是否在回答当前问题。请点选下面的选项,或换一种说法。 我不太确定这句是不是在回答上面的问题——点个选项,或者换个说法都行。 承认不确定,不训人。
当前可信区间是 05:00–05:07,代表分钟 05:00。代表分钟只是代表性候选,不是已确认的唯一出生分钟。 已经从最初的 30 分钟收到 05:00–05:07 这 7 分钟。代表分钟是 05:00,这只是代表性候选,不是已确认的唯一出生分钟。 同一边界语义,带进度,少法务腔。
剩下的题分不开当前候选。更站得住的范围是 05:15,代表分钟 05:15。 再问下去也分不出更准的时间了。眼下更站得住的是 05:15。 单分钟不要把范围和代表分钟念两遍;「当前候选」是内部词。
可以从下面的时间里选一个采用。 / 下面的时间可以先用着。 我按你说的经历认真分析过了,下面是这次的结果。 这是认真分析后的结果,不是随便先用着;采用仍不是确认。区间交付卡必须就在这句下面。
相对支持度 16 · 采用此时间 卡头主标题是范围「目前范围 05:00–05:15(对照了 N 件经历)」,副标题「最可能 HH:MM」(代表分钟,只在写百分比时出现;区分不开时不写)。一行至多三列。相同性格句只写一次。每列:有差别的性格句、人话经历对照、下一个时段,点「更像这个」;第一名比第二名高 5 个百分点及以上时,每列再写「相对可能性 N%」。缺数据写灰字「这一分钟还没对照」。不预标「排盘用」。 交付对象是范围和区间里并排的候选分钟,不是支持度数字。
相对可能性 26% / 26% / 20%(前两名差不到 5 个百分点) 不写任何数字,卡上一句:「这几个时刻按现在的方法区分不开。」(2026-09-29 起,原句「……补一件带年月的经历能帮助分开。」作废,BUG-1084) 差距不明显的百分比只会让人误以为分出了高下(2026-09-26 产品决定,取代 09-08「三列都写相对可能性」的定稿)。排序与三列内容不变。
已答6轮,再问下去也分不开04:53和05:00,没有年份的分盘题也不再问……两者相对支持度都是16。 再问下去也分不开 04:53 和 05:00。这两个时间按现有信息分不开。范围和代表分钟照常说。 旁白不得念内部计分词。卡上的数字按上一行的 5 个百分点规则显示,旁白不念百分比。
候选 A 预测下一次事业变动更可能在 2027 年 3 月附近。 每列用服务器拼好的一行时段;没有窗就写「未来一年没有明显的时段」;没算出来写「这一分钟还没对照」。 窗口按候选分钟各算,模型不写。不得把「没算」说成「没有窗」。
「再补一件经历」后卡片消失、输入框上方空白 需要补经历时继续在输入框说下一件;交付卡不再提供「再补一件经历」按钮。 交付卡只负责选分钟。
采用后会拿盘外核对来验证。 / 已采用 04:53 · 范围 … / 改选 / 之后新建对话即按此时间排盘。 没有核对题:已采用 04:53,新建对话即按这个时间排盘。有核对题:前事核对到这里。之后新建对话即按已采用时间排盘;对不上随时改选。 采用状态在该列按钮上;整张卡留着。收尾句跟卡片同一列,不单独贴左,也不回输入框上方。
(采用后只念代表分钟)代表分钟是 05:12。 这 27 分钟里,事业方向、性格底色的判断是稳定的;婚恋(D9)会随分钟变,看盘时按范围读。这不是已确认的唯一出生分钟。 采用后先讲区间里什么稳、什么随分钟变;两句来自服务端,不是模型编的。
当前问题已更新,请刷新后重新作答。 这一问刚换成新的,刷新后再答就行。 机器状态句改成下一步。
选择题处理失败,请稍后重试。 / 这道题已经过期,请回答当前问题(点选没提交上,下面又画出同一张卡) 这次没提交上,请再点一次。 点选没到服务器时撤回已选,只留一张可点的卡,错误行就这一句。不说「稍后」,不把服务端状态码翻成话。
记下了:2000年 随家人搬家、2006年 小学毕业、2009年 初中毕业、……(一次说了十几件,逐条复述占满屏) 记下了 12 件事。(下面「看记下的 12 件」收起) 2026-10-01 起复述由服务器按入账条目写:两件以内直接列出(「记下了:2016年入学、2020年毕业。」),三件以上只说件数,清单收起在同一条消息里;模型不逐条复述(BUG-1136)。
记下了,这方面先跳过。 答「这类事都没有过」回「记下了,这条按没有发生过记。」答「记不太清楚 / 这条先跳过」回「记下了,这题先放着,后面换个问法再问一次。」 拒绝和跳过不是同一句话。
界面上继续有下一问。 接下来我们继续。 正文不得断言界面当前有没有题;题干在同一条消息里正文之后出现,过渡用中性句。
选一个最贴近你实际情况的就行,答不上来也可以选「一时说不好」。 2024 年那件事记下了。接下来我们继续。 正文先承接用户刚说的年份和事件;不要预告选项。
## 统一参数与原始结构(用户刚问「我婚姻怎么样」) 先用几句口语答婚姻方向,再进入统一参数与原始结构。 骨架仍在,开场先回人。
生成中输入框变灰,回车没反应 生成中仍可打字;回车后显示「已排队,回答结束后发出」,可撤回 对标主流对话产品,焦点不丢。
停止后出现红色告警条 已停止,已生成的内容保留;本次不会扣点。 停止是用户动作,不是出错。
打字回答发出后一直是「正在处理… / 正在分析…」,半分钟没有变化 发出即「收到,正在对照你的档案…」,随后按阶段换成「正在记下这件事…」「正在重新对照盘面…」「正在准备下一个问题…」。 发出后 300 ms 内要有一句确定的话;阶段由真实动作推动,只在活动行里,正文与历史里都没有(BUG-1047)。
也可以再说一件你记得大概时间的事。 / 还差带月份的经历,领域不限。 训练门开后给区间卡,并写「如果还记得……范围还能再收一截」。材料不够时只写记下了哪几件、再来一件不是这类的、至少两个具体例子;输入框占位「再说一件带年月的事」。 训练门未开时永远给结果或精确缺口;不说「领域不限」「做不了」。交付后采集线关完的邀请见下一行。
能问的都问完了 / 你要是还记得确切哪一天的事,不限领域,说出来我接着算 还有题可问时:「现在还剩 04:51–05:11 里 5 个候选,再对照几件经历会更准」,下面是系统点名的题。答「有」之后是口述「大概哪年几月?」,在输入框打字回答,不再出「哪一类事 + 发生年月」的卡。七条线和跳过线的重问问完了(按时间段点名的引导题一次校正最多两道),或用户说「没有了」,就出目前范围卡。 有题就继续引导;年月阶段直接打字。没题了照常给结果,不写「未达门槛」,也不为凑门槛再追问。不承诺「再补几件就能定到分钟」。
2018 年 3 到 5 月之间,有没有入职、换工作或职责变重?(引擎其实不知道是哪一类) 「2018 年 3 到 5 月之间,有没有什么事,比如搬家或开始长期住外地、开始认真关系、分手或结婚?」只有 D9 / D10 那两条轨道才点名领域。 边界只说得出「哪段时间」,说不出「哪一类事」。例子最多三个,只列用户还没拒答、也还没说过的领域。
(录入卡)哪一类事 + 发生年月 答「有」后只剩口述「大概哪年几月?」,在输入框打字。 多余入口删除;年月阶段不再有第二套录入。账本仍记用户原话,不得复用题干例子列表。
填报出生时间 05:10 / 与你的出生时间相差 7 分钟 医院记录:「出生记录时间 05:10」。家人记得:「你填的大概时间 05:10」「与你填的大概时间相差 7 分钟」。只知道时段:「你给的时间段」。 推算值不得称作「你的出生时间」。医院记录与目前范围不一致时只并列差值,不站队。
你的出生记录不准,按校正结果来 / 这些经历说明记录写错了 / 校正结果无效 出生记录时间 04:40,默认仍按这个时间排盘。你说的这些经历指向另一段时间,相差 8 分钟。你可以改用校正结果,也可以继续用记录。 记录与校正区间冲突时记录优先,但两者必须并列。不得宣布任何一方无效——不说记录不准,也不说校正结果不作数。
(冲突时按钮仍写)更像这个 按钮写「改用校正结果」,按钮下面一行写「选它之后,排盘会从出生记录时间 04:40 换成 04:48」。 换掉的是什么要在动手的地方说清楚。不新增入口,仍是同一个采用按钮;采用仍不是确认。
口述采集没有停止按钮,范围小字不可点 选择题卡内有「先这样,先看当前范围」;生成中有「停止回答」。口述采集只有输入框,没有「没有」「记不清」芯片,也不挂在输入框上方。范围小字是状态句,不可点。 想跳过可以打字「没有」或「记不清」。
只报一件后立刻按家人/学业/财务轮着问,题干带「2020 年前后」 记下后问「还有吗?比如……」(只列还没提过的具体事)。答「没有了」后才从用户说过的年份追问,例如「2020 年毕业后第一份工作大概哪年开始?」 先等用户说完;年份只来自用户,不用生日推。
点选后旁白写「04:31–04:39 这段领先,05:00–05:07 这段落后」 已记录,范围收到 04:31–04:39。 旁白只说范围变没变。领先/落后留在卡内「答了会怎样」,不进气泡。
每轮只有技法清单,不知道现在第几步 输入框上方有「第 N 步 · 原因 · 下一步」。 用户始终看得见该做什么。
完全不清楚出生时间后劝退「生时校正以后需要时再做」 可以直接开始生时校正:先从你记得的经历比出大致时段。 不知道钟点时先比时段,不劝退、不给分钟卡。
问「偏移 / 误差有多少分钟」 你对这个时间有多确定? 不确定度只在资料里问一次,校正不再追问。
吻合率低时模型追问要不要把误差放到 ±2 小时 按你说的经历,出生时间可能比家人记的偏得更多。放宽后再比一次? 放宽卡由服务端出,选项写「前后半小时 / 一小时 / 两小时」,不用偏移、误差、置信度、概率。
只知道傍晚时直接给分钟或采用卡 先切成三段(写起止钟点),比完再按分钟收。分不开就说「时段分不开,直接按分钟比」。 超过两小时的窗口先走子段,不在 4~6 小时上铺分钟卡。
记下精确到日的事后不问日子从哪来 刚才那个日子是查过记录,还是凭记忆? 只问日级、只问一次;不答就跳过。
打开即有 / 直接计算 · 打开即有 · 不消耗点数 / 主盘直接算 · 分盘按需 · 不消耗点数 (不写) 星盘页不写成本、速度、计费说明。失败页也不写。忙(429)说「算盘的服务正忙,稍等几秒再打开就好。」;其它计算失败说「这张盘算不出来,我们已经记录下来了。」不要说「过一会儿再打开」。
没有可显示内容 / 资料还在,过一会儿再打开 读不到资料:「星盘资料这会儿读不出来,我们已经记录下来了。」已采用的时间缺时区:「已采用的出生时间缺了排盘要用的时区,这张盘先不能算。我们已经记录下来了。」时区对不上:「出生地的时区没有对上,这张盘先不能算。我们已经记录下来了。」结果格式不对:「星盘结果的格式对不上,我们已经记录下来了。」 失败要说出是哪一种。不写「过一会儿再打开」,也不用一句没头没尾的「没有可显示内容」。
下面是词条式释义,不是对你个人的判断。 (不写) 基础信息 Tab 只放行星卡。词条本身不得写成运势,但不另印这句边界说明。
Agent 未完成必要的方法与计算步骤,本次不会扣点。(模型其实写过一段) 把模型写过的那段留下,文末由服务端加一句:「这次没跑完星盘计算,上面是模型直接写的,先看着。」 合同没绿但写过字时不得整轮空白。这句不是模型写的。没写过字仍报未完成、不扣点。
这一页是天象本身,不是对你的判断。 (不写) 星历页只放日期、五要素、行运、九十天事件和底部提问提示卡。「带这天去提问」在页面最底部的提示卡里(2026-09-26 从顶栏挪下来)。不另印定性句。
(校正会话上普通输入框仍可打字) 正在打开生时校正… 校正会话上普通输入框只有禁用态。打开失败时按钮写「重新打开生时校正」。
9月14日 · 生时校正 / 生时校正 · 9月14日 / 生时校正 · 09:35(创建钟点) 生时校正 · 05:07 / 生时校正 · 05:00–05:15 / 生时校正 校正标题写结果:已确认优先于已采用,写 生时校正 · HH:MM;否则当前范围写 生时校正 · HH:MM–HH:MM(间隔号,不是连字符);都没有则只写「生时校正」。今日节奏仍是 今日节奏 · M月D日。同日不再用墙钟去重。副标题仍是最后活动时间。旧标题按结果批量改;手改过的名字不动。
这么晚还醒着,{名字}。直接说说最在意的问题吧。 还没睡呀,{名字} 开场只一行、不追问、不写场景;提问交给输入框占位符
你更适合把已经积累的专业能力做成长期事业,而不是频繁换赛道。眼下更值得把现有工作做深,而不是立刻另起一摊。 今年工作上机会不少,但真正决定你走多远的是规矩和身体,不是人缘。
## 盘上依据
木星今年走过你的事业宫,机会和帮你的人都在(木星行运 10 宫);同时土星压在你的工作宫,事情多、要求严,身体也容易被拖累(土星行运 6 宫)。
## 时间怎么看
9 月木星换宫之前,机会多但不稳;之后再谈升职更有把握。
坏的那句像顾问报告:只有结论,没有盘上依据。好的那段先答、再给依据和时间,每句删掉括号后都看得懂(盘上数据是示意)。
(用户说「你在说什么鬼」)抱歉让你困惑了,我再解释一下:从星盘来看,您的事业宫…… 说直接点:这份工作还值得留,但你得换个位置,不是换公司。哪句没看懂,指给我。 追问轮不重开一遍报告,也不道歉铺垫。一句白话结论 + 一句把球踢回去。

服务端探针 → Agent 题干

题干由 Agent 通过 rectification-set-focus.spokenPrompt 写;年份、事件家族、选项语义必须与服务端探针一致。

服务端探针 坏 好 为什么
2023 感情区分 2023 年前后,你有没有一段认真开始或结束的关系?(逐字复读模板) 工作这块记下了。2023 年前后,有没有一段认真开始或结束的关系? 接着用户上一句,同年份同家族,不复读整句模板。
2016 升学 2018 年你是哪年上的大学? 2016 年前后,你是哪年上的大学? 不得改年份。
2019 入职 2019 年前后,你有没有换过工作?A. 明确发生且时间吻合 2019 年前后,你有没有换过工作? 不得把选项字面写进题干。
2023 感情区分 你有没有一段认真开始或结束的关系? 工作这块记下了。2023 年前后,有没有一段认真开始或结束的关系? 题干必须写出服务端给的年份;漏写年份用户看不见期间。

星盘客户端等待超时只写:「这张盘等了太久没有回来,再打开一次试试。」不承诺速度,不用「正在加载」。429 忙与频繁打开的限流仍各用原句,不混写。

聊天顶栏的当前星盘

顶栏人名是入口,不是资料编辑。看见的字是当前这个人的名字。读屏名称是「当前星盘:」加上这个名字。不要写「我的星盘」或「分析对象」。

位置 文案
弹出层标题 当前星盘
本人 本人
空会话里点另一个人 直接换成这个人,不另写一句确认
已经说过话,点另一个人 新建会话并使用此人物
回答还没结束 这段回答结束后再换
列表还在读 人物列表还在读
列表没读出来 人物列表暂时读不出来
其他人暂时读不到 暂时读不到其他人
重试 重试
资料不完整 这份资料还不完整
资料已删除 资料已删除 · {原来的名字}
删除后不能再发 这份资料已经删除,这段对话只能看。

不写「正在加载」。人物列表接口失败时,顶栏写「暂时读不到其他人」,只列出本人,历史和对话按本人加载,不进整页错误屏;恢复后其他人重新出现。已经打开的那段对话不改成另一份资料。

侧栏与会话标题

历史分组标签只用这五个词,空组不出现:今天 / 昨天 / 最近 7 天 / 最近 30 天 / 更早。不要写成「七日内」「更早之前」。

会话标题是主题总结,不是资料名,也不是第一句话的截断。起名提示词只输出标题本身:6 到 12 个字,不要引号、书名号、句号或解释;不要复述出生日期、时间或地点,也不要写资料姓名。

设置弹窗

分区名只用:个人资料 / 账户与点数 / 通用设置。星盘档案是侧栏页面,不写进设置分区。不要写成「会员页」「充值页」。

账户与点数的页签只用:会员套餐 / 点数包 / 兑换码 / 订单记录。购买中按钮写「跳转收银台…」,轮询中写「等待支付结果」,不要写「正在加载」。

星盘档案不写关系。人数到顶时只说「最多保存 5 个人的星盘」。当前人物不是本人时,生时校正入口禁用,提示「生时校正暂时只支持本人。」删除一个人之前必须写出「将同时删除 N 个对话和 M 份报告,无法恢复。」本人不能删除,不要给删除按钮配一句绕过去的确认。

余额不足时输入框占位写「余额不足,可在账户与点数中补充」,不要叫用户去会员页。

「解锁完整咨询」兑换弹窗只在第一次因点数不足发不出消息时弹(2026-09-28 起,不再进首页就弹)。说明句写「问题还在输入框里。填写兑换码,点数到账就能发送,生时校正与完整解读也能用。」;到账后写「点数已到账,回到输入框点发送就行。」。不要再写「入门问题已经准备好」,弹出时刚被拦下的是用户自己的问题。

注销账号(2026-09-30):按钮写「注销账号…」,确认按钮写「确认注销」。说明必须三件事都说全:「7 天内重新登录可以撤销」、会被永久删除的内容清单、「剩余点数和会员权益会一并作废,不退款。订单和点数流水按法规保留,但不再与你的身份关联。」联系邮箱只从 lib/legal-entity.ts 取。冷静期内重新登录的全屏提示标题「账号注销中」,正文「这个账号将在 {日期} 永久删除。在那之前,你可以撤销注销,恢复全部内容。」按钮只有「退出登录」「撤销注销」。不要写「我们很遗憾」「确定要离开吗」这类挽留话。

首屏没加载完

脚本没跑起来、关键文件没下到,或浏览器版本过旧时,转圈停在「正在载入账户」不会自己结束。超时后只留这一屏,不自动刷新:

位置 文案
标题 这个页面没能加载完
正文 网络中断或浏览器版本过旧都会这样。可以重新加载试一次;如果反复出现,请在 Safari 设置里清除本站数据,或把系统升级到 iOS 16.4 以上。
动作 重新加载

不写异常原文、接口路径、状态码或「正在加载」。接口超时仍用原来的「连接云端服务超时」那一屏,不要把脚本没跑起来说成云端慢。

  • 不得虚构星盘事实或唯一出生分钟。
  • 问哪道题、年份、选项语义仍由服务端 focus 唯一所有;Agent 用 spokenPrompt 写题干,不得改年份、不得改选项含义。正文不得出题、复述或改写题干——题干作为同一条消息里正文之后的独立段落出现。
  • 正文不得断言界面当前状态(「界面上有/出现了下一问」);过渡用「接下来我们继续」这类中性句。
  • 正文必须先用一句话承接用户本轮给出的事实(年份+事件);不得预告选项。
  • 交付/采用轮必须出现「不是已确认的唯一出生分钟」这一语义。交付旁白不写「候选 A 预测下一次事业变动」;改说预测窗口留在采用后的核对阶段。
  • 不得对用户写「概率 / 置信度 / 确定 / 相对支持度」。专业数字只留在看盘板。
  • 采用旁白里「这段区间里哪些主题稳定、哪些会随分钟变」只能来自服务端 theme_sensitivity,模型不得自编;声明时段咨询必须写明「这只是粗看」。
  • 技法审计表只出现在回复下面的折叠面板,不写进正文。
  • 只知道出生范围时,大运和行运边界按区间说出来,不得挖成「[具体时间已省略]」。没有出生分钟时,任何「你的盘」断言都不要写。

口语层的形状

本命类回答默认只展开口语层。从第一个 H2 起的骨架仍完整写出、入库、可复制,但折在「完整分析」里。折叠是可见性,不是省略。

开场没有标题,不设字数上限。形状见上面第七条原则:先答 → 按对象分段(每段先人话、括号里给依据)→ ## 盘上依据(可省)→ ## 时间怎么看(可省)→ ## 这周可以做的一件事。句子必须是完整句子,不得写成名词短语枚举。

首轮只说一遍(2026-09-27,BUG-1073,产品拍板 D8;2026-10-01 BUG-1132 改)。 开场就是回答,正文不再从「先回答你的问题」重来。开场之后先是按对象分的段,再接三个固定标题:## 盘上依据(原名「盘里支持这个判断的地方」;只写上面没引过、判断又需要的依据,表格与正文二选一,没有就省掉)、## 时间怎么看(没有相关大运或行运就省掉)、## 这周可以做的一件事(一到三条行动,只在这里出现一次)。2026-10-01 起不再限首轮 900 字,讲清楚为准,但同一个判断仍只说一遍。此前一份约 1,500 字的父母解读把同一个判断说了三遍、三条行动给了两遍,用户读到的是「说了很多没多说什么」。

追问轮直接回答(2026-09-27,BUG-1071,D3;2026-10-01 取消字数上限)。 本会话已经有过一轮解读之后,后面的问题按直接回答写:第一句回答问的那句话(是非题先答是 / 不是 / 看情况),讲清楚为准、不限字数,只引与这句话直接相关的盘面事实(够说明就停),不写二级标题、不写行动清单、不重述上一轮已经写过的结构。只有用户明确换了领域或要求「完整看一下」才回到完整形状。「追问轮」由服务端按「本会话已有回答」判定,不用正则猜用户意图(BUG-976/977 口径)。

坏 好 为什么
(用户问「我妈是不是不太在意我」)你其实要的是被听见,她给的是安排;你是否需要的是一种被看见的方式…… 不是。4 宫主水星逆行落 10 宫,她把心力投在你的前途上——不是不在意,是不会用你想要的方式在意。 是非题第一句答是 / 不是;依据是宫位,不是读心;不把问题改写成需求。
(首轮)开场三条行动 + ## 先回答你的问题 再答一遍 + 表格再列一遍 + ## 这周可以做的一件事 再给三条 开场(第一句就是结论)→ 按对象分段 → ## 盘上依据(只写新依据)→ ## 时间怎么看 → ## 这周可以做的一件事(三条,一次) 同一判断只说一遍,行动只给一遍。
(问「我和父母关系如何」)你和父母是「外热内冷」:推着这段关系的是金星大运,土星子运负责收尾;别去应火星的「硬」,去当金星的「和」。(改写示意) 你和父母不疏远,但亲近主要落在「为你的前途操心」上。
## 你和妈妈
她对你的事很上心,但常把关心说成提醒和安排。(4 宫母亲宫的宫主落在 10 宫事业宫)
## 你和爸爸
……
## 他们怎么对你
……
坏的那句自造格局名、大运写成角色、星名当形容词,爸妈揉成一段,不懂占星的人一句也看不懂(BUG-1132)。
坏 好 为什么
你的事业宫在第十宫,D10 上升与本命一致。当前大运土星、副运木星,从度数上看今明两年有岗位变动的窗口。下面进入统一参数与原始结构。 今年工作上机会不少,但真正决定你走多远的是规矩和身体,不是人缘。
- 口头答应的事,补一份书面确认。
先回人问的方向,再按形状展开;度数留在依据里。要点不是公文枚举。
事业、财富、变动窗口、土星大运 现在这十年(土星大运)偏向慢慢攒、靠规矩立住。 句子是完整句子,不是公文枚举;术语第一次出现用白话套住。

今日星语句库(2026-09-30,BUG-1109)

  • 首页问候下面的今日星语来自固定句库 frontend/src/lib/daily-starlanguage-library.ts,不走模型。改句子只改这个文件,全部句子的审阅表在 docs/tasks/PROGRESS-daily-line-library-20260930.md。
  • 一句 trend = 宫位句(说今天的心思落在哪类事上)+ 月相尾句(说今天适合推进还是收尾)。宫位句不写「第几宫」「宫主」「相位」「大运」,用生活里的词:工作、家、钱、朋友、休息。
  • action 是一件今天就能做完的具体小事;caution 是一件要留意的事,不吓人、不断言会发生什么。
  • 不写健康诊断、投资建议、法律意见;不写「一定」「必然」「注定」。
  • 出生时间没确认时不用宫位,只按月亮所在星座写,caution 固定为「出生时间尚未确认,这里只看大方向,不依赖具体分钟。」