Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
55 lines
4.5 KiB
Markdown
55 lines
4.5 KiB
Markdown
# 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 门禁集。
|