# 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` 本单一行改「待验收」。 ## 开工前置命令 ```bash 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 门禁集。