Files
Jyotisha/docs/tasks/TASK-consult-gender-optional-20260927.md
T

4.5 KiB
Raw Blame History

TASK · 星盘资料加「性别(选填)」,接到婚恋数据卡(2026-09-27)

基线

  • 串行在 TASK-consult-evidence-card-v2-20260927 之后:开工时核对该单已合入 origin/staging,以最新 origin/staging 为基线,写进 PROGRESS。
  • 分支 codex/consult-gender-optional-20260927,工作树 .worktrees/consult-gender-optional-20260927。

背景

  • 顾问意见(请教单 https://claude.ai/artifact/TTLEGmYt6m9R9sFnzynVJU ):婚恋判断须先确认性别与昼夜盘,性别决定夫星 / 妻星取法(strict-workflow-router.md §4「Confirm gender and day/night context before spouse significator analysis」)。
  • 现状(Claude 2026-09-27 核实):数据库迁移与资料页均无性别字段;数据卡 v2 婚恋卡写「性别未知」,模型同时看金星与木星、不按性别下定论。

决策记录(产品 2026-09-27)

  • G1 在星盘资料里加选填「性别」:本人资料与星盘档案里的每个人都可以填;不填不影响任何功能,不在注册 / 开场流程里强制询问。
  • G2 取值:女 / 男 / 不填(存为空)。文案对照 frontend/docs/VOICE.md,给一句说明「用于婚恋解读里判断夫星 / 妻星,不填也能用」。
  • G3 填了就写进婚恋数据卡(基础段或婚恋段的一个字段),精简清单里的「性别未知」规则只在未填时生效;已填时按 strict-workflow-router.md §4 的取法。
  • G4 性别属于个人资料,按出生资料同等隐私级别处理:不进日志、遥测、反馈记录、BUG 历史、测试夹具里的真实数据。

硬红线

  1. 数据库只做加法(AGENTS §7.6):给现有资料表加可空列(带取值 CHECK),不改旧列、不收紧约束;迁移对当前已部署代码向后兼容。动表必须真跑 npm run test:db(本机无 Docker 时以门禁 DB job 结果为准,写进 PROGRESS 并附 run 号);RLS 与现有资料列一致(只有本人可读写自己的资料)。
  2. 本人资料、星盘档案(多人物,BUG-1034~1036 相关)两处读写一致;切换当前星盘时婚恋卡用的是当前人物的性别,不串人(参考人物档案 P0 教训:他人报告用了用户主资料)。
  3. 不改引擎计算;性别只影响数据卡字段与清单规则。
  4. 前端红线全套 + 全量 Python 门禁集;改 UI 同步 frontend/DESIGN.md、新文案对照 VOICE.md;改既有断言写三栏。
  5. 禁止 git stash;只 git add <具体路径>,提交前看 git diff --cached --stat(ERR-112);不推送。

任务分解

T1 数据层

  • 迁移:可空列 + CHECK(女 / 男);读写 API(本人资料、星盘档案增改查)带上该字段;类型与 zod 同步。
  • 验收:DB 测试覆盖读写、RLS、他人不可读;旧数据为空正常工作。

T2 界面

  • 星盘档案编辑表单与本人资料编辑处加选填单选(女 / 男 / 不填),附一句说明;详情页展示(未填不展示或展示「未填」,按 DESIGN 口径)。
  • 验收:组件测试;390 / 1280 截图(虚构数据)存 docs/testing/consult-gender-optional-20260927/。

T3 接入婚恋卡

  • 数据卡带当前人物的性别;精简清单的性别规则按有无切换。
  • 验收:记录提示词的假模型测试:已填时卡里有性别、清单不出现「性别未知」规则;未填时相反;切换人物后取对应人物的值。

T4 记录

  • CHANGELOG;docs/tasks/PROGRESS-consult-gender-optional-20260927.md;docs/testing/consult-gender-optional-20260927.md(真机:给本人和另一人分别填 / 不填性别,各问一次婚恋,看回答是否按性别取夫星 / 妻星、未填时是否两边都看);docs/tasks/README.md 本单一行改「待验收」。

开工前置命令

cd /workspace/Jyotisha && git fetch origin --prune
git worktree add -b codex/consult-gender-optional-20260927 .worktrees/consult-gender-optional-20260927 origin/staging
ln -s /workspace/Jyotisha/frontend/node_modules .worktrees/consult-gender-optional-20260927/frontend/node_modules
export PATH=/exec-daemon:$PATH

先读:AGENTS.md(§5–§8,尤其 §7.6 迁移两轮规则)、deploy/README.md 迁移一节、人物档案相关 BUG(搜索「人物档案」「chart_subject」「他人报告」)、最近一次加列迁移的写法(frontend/supabase/migrations/2026092*)。开工先跑基线全量前端测试(Node 22)与全量 Python 门禁集。