Files
Jyotisha/docs/tasks/PROGRESS-onboarding-2-intake-20261022.md
T
jesse-uxandGrok (agent loop) 4d63475caf
Independent Staging Quality Gate / validate (push) Failing after 10m31s
Independent Staging Quality Gate / publish (push) Skipped
建档先问看谁的盘,空白首页给出起步三问(#96)。
建档改为四步。帮别人看写入已有人物档案,不新增数据库列。本人没有出生资料时不显示今日星语,「和我合盘」改成一句说明。起步三问只读已有上升和月亮:前两问直接发送,第三问只聚焦输入框。

自测:tsc 退出码 0;lint 0 error、121 warning;定向测试 142 项,pass 142,fail 0,cancelled 0;build 成功,/ 仍是 Static。首屏 gzip 592895,相对基线 578435 为 +2.50%。未跑全量 npm test、Python 快速门和 test:db。

Co-Authored-By: Grok (agent loop)
2026-10-24 22:51:06 +08:00

9.0 KiB
Raw Blame History

PROGRESS · 新用户启程(二)建档先看谁的盘、起步三问(2026-10-24)

工单 #96。分支 codex/onboarding-2-intake-20261022。基线 origin/staging d3be9491eeb115559424c4c5e457497062765e18(#104 已在这个提交里)。只做任务书 T3、T4。T1、T2 用 #95 已经合入的字段,没有新迁移。T5–T8 和 D6 动效不做。

结论

建档多了一步「这次先看谁的盘」。可以先帮别人看,自己的出生资料以后再补。建完后的空白首页,在第一次提问还没用掉时,给出三个起步问题。第一问不扣点。点前两问直接发出去,点第三问只让输入框亮一下。

做了什么

  • 建档四步:称呼、看谁的盘、出生日期与时间、出生地。进度条四格。第二步的两句大选项、五个关系、第三步和第四步的句子,按任务书逐字。
  • 选「我自己」:后面仍写本人资料。选「帮别人看」:名字和关系写入已有的人物档案;本人只留下称呼。建完后当前人物是这一位,新的空白对话也绑在这一位。
  • 建完的口径:本人资料完整,或档案里至少有一位资料完整的人。中途退出,下次从缺的那一步接着问。
  • 「我自己」在出生资料还没保存之前,选择记在这台浏览器里(localStorage,键 jyotisha_onboarding_intake: 加账户 id)。没有新的数据库列,也没有写入 onboarding_state。
  • 本人没有出生资料时,首页不显示今日星语按钮,问候下面的趋势句也不显示。「和我合盘」换成一句「加上你自己后可合盘」。补上本人之后,今日星语出现,合盘可以点。
  • 当前人物不是本人时,生时校正本来就不会提议(已有「生时校正暂时只支持本人。」)。这一张没有重做。
  • 起步三问的显示条件:已经建完档、账户仍是首问免费、当前是空白首页,并且当前这位的盘是完整的。用掉首问后,下次回到空白首页不再出现。前端只读 firstConsultFree,不在本地改它。
  • 三个问题的句子放在 frontend/src/lib/starter-questions.ts。星座只用今日星语已经算好的上升和月亮,转成「白羊」这种短名。没有多发请求,也没有再调模型。出生时间不知道到分钟时,今日星语不算上升,第一问走「从盘看」那一档。
  • 新界面用已有的 shadcn 按钮、输入框、单选。白名单没有加长。Home() 的 useState / useRef 没有增加。
  • 顺手去掉建档里到不了的校正分支,以及首页说明里已经不存在的生时校正卡。过场结束仍然不弹提示。onboardingJustCompleted 仍保留,但永远是关着的:删掉这个状态会碰到很多调用点,而冻结规则不许再加状态。页面上不再显示那句到不了的完成语。

没有新迁移

读写的是 #95 已有的人物档案、关系和账户上的 firstConsultFree。选「我自己」的中途记录只在本机。没有改查询形状,没有跑、也没有宣称 npm run test:db。

断言改动(原值 / 新值 / 原因)

测试 原值 新值 原因
birth-time-guided-review-fixes.test.ts 引导屏含 onboardingStep === "rectification" 引导屏不再出现这一支 BUG-1431。校正步骤到不了,地点回显留在出生地那一步
profile-onboarding-birth-sky-reveal.test.ts onOwnBirthPlaceSaved?.() onOwnBirthPlaceSaved?.(subjectId) 帮别人看时过场带上这一位;本人仍是 self
同上 loadBirthSkyRevealSky(signal) loadBirthSkyRevealSky(signal, id) 天空按当前人物取,默认仍是本人
people-archive-view.test.tsx 他人详情始终是可点的「和我合盘」 本人资料不完整时,该位置是「加上你自己后可合盘」,没有「和我合盘」 先帮别人看时,合盘要等本人资料齐。本人完整的那一则仍断言「和我合盘」
rectification-lazy-loading.test.ts 引导屏动态加载 BirthTimeRectification 引导屏不再包含它;首页仍挂载对话里的校正 BUG-1431。建档里的校正卡是死代码
home-bootstrap-screens.test.tsx 另渲一屏校正,断言「出生时间尚未完成评估」和「重新评估」 出生步不再出现这两句 同上。另加一屏「看谁的盘」,锁住四格进度和两个选项
rectification-agentic-entry.test.ts missingProfileStep(profile) missingProfileStep(profile, chartLibrary) 建完改为本人完整,或档案里至少一位完整
onboarding-intake-20261022.test.ts(新文件) 起草时曾要求「看谁的盘」源码里直接写出「其他」 组件用 PERSON_RELATIONS.map 和 PERSON_RELATION_LABELS[item];五个中文在 person-relation.ts 关系文案本来就集中在那一处。产品句子没有改

其余既有断言没有放宽。源码里仍保留「和我合盘」这四个字,给本人资料完整时使用。

自测

检查 命令 结果
类型 frontend\node_modules\.bin\tsc --noEmit -p frontend 退出码 0,无输出。补合盘说明样式是 CSS,不影响类型。其后 npm run build 的 TypeScript 步骤也没有报错
检查 在 frontend 下 npm run lint 退出码 0。0 error,121 warning。同一基线上组件库那一单记下的是 122 warning。没有去修无关警告
定向测试 在 frontend 下 node node_modules/tsx/dist/cli.mjs --test 下面 14 个文件 142 项,pass 142,fail 0,cancelled 0,skipped 0,退出码 0。第一次是 140 通过、2 失败(关系文案断言写错位置、合盘说明缺一条样式)。改完后整组再跑是这一行
构建 在 frontend 下 npm run build 退出码 0。/ 是 ○ Static。79 页。skill-package-registry 的 5 条 Turbopack 警告是改前就有的
首屏体积 首页 HTML 引用的 /_next/static/**.js,gzip-9 相加 基线 d3be9491:33 个文件,578435 字节。这一张:33 个文件,缺失 0,592895 字节。+14460 字节,+2.50%。±2% 的上限是 590004,超出约 2891 字节

定向测试文件:onboarding-intake-20261022、home-bootstrap-screens、profile-onboarding-birth-sky-reveal、birth-time-guided-review-fixes、rectification-lazy-loading、rectification-agentic-entry、people-archive-view、starter-questions、daily-starlanguage、daily-starlanguage-library、home-shell-growth-contract、chart-library-other-profile、birth-time-assessment-loading、ui-kit-whitelist。

首屏仍是这 33 个脚本,没有新的首屏文件。多出来的体积是首页接上「看谁的盘」、起步三问,以及从已有的今日星语结果里记住上升和月亮。没有为了凑进 ±2% 去删无关代码,也没有把起步三问改成用到才加载。空白首页本来就是首屏。

没有跑前端全量 npm test,没有跑 Python 快速门。Python 入口和 scripts/jyotish_api_server.py 没有改。

限制(验收时会碰到)

  • 选「我自己」之后、出生资料还没保存就关掉:同一台浏览器会接着问。换一台设备会回到「看谁的盘」,因为这一步只记在本机。已经写下别人的名字和关系时,档案在服务器上,换设备也会接着问这个人的出生资料。
  • 档案里如果留下一位写了名字但资料不齐的人,而本机又没有「我自己」的记录,下次会接着问这个人,而不是先问看谁的盘。这就是「从缺的那一步接着问」。
  • 帮别人看的天空过场,副句是「那一刻,{名字}的上升在{星座}」。上升要等今日星语那一次计算返回。过场常常先结束,这时不另写一行,原来的天空句子照常播。没有为了这一行再排一次盘。星座稍后才到时,只补上这一行,过场动画不重头播。
  • 名字或上升还不知道时,不显示这行副句。
  • 档案列表在保存后短暂还没回来时,出生地那一页会先留着,避免闪回出生日期。列表回来后才进入首页。
  • 第一问回答完,当时的对话里问题会消失。若在账户状态刷新之前又开一条空对话,三个问题可能再闪一次。扣不扣点仍由服务器决定,前端不把「已用」写死在本地。
  • 没有做 650 毫秒转场、星点和闪烁。看谁的盘展开用的是原来 180 毫秒的卡片入场。

环境缺口

  • 没有登录态,也没有用浏览器走完建档。不能写成「已经在真机上看过」。可照做的步骤在 docs/testing/onboarding-journey-20261022.md 的「先看谁的盘」和「起步三问」。
  • 没有 Docker 上的数据库测试。这一张不改数据库访问层。

记录

  • BUG-1431,状态 enhancement。不是缺陷。
  • CHANGELOG.md、frontend/DESIGN.md、frontend/docs/VOICE.md(写明 2026-10-24 起步三问这条例外)、docs/testing/onboarding-journey-20261022.md。
  • 任务书基线 c1aa72fcb 和 BUG 起点 1420 都已过期。本单基线是上面的 d3be9491,编号用 1431。