| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| Dockerfile | ||
| components.json | ||
| eslint.config.mjs | ||
| next-env.d.ts | ||
| next.config.mjs | ||
| package.json | ||
| postcss.config.mjs | ||
| tsconfig.json |
## 测试服全量实证(不是本地样本)
jvs-dw 43,279 条亲戚边,与年龄矛盾 428 条 → 1.0%,方向基本可信
friday 2,427 条;只看父母/子女**对**更刺眼:
mother↔ child 326 对里只有 8 对方向对(2.5%)
father↔ child 231 对里只有 9 对(3.9%) → 97% 反了
## 根因
data/friday/assemblers/patient_relation.yaml 的 enum_mapping 假设源码语义是
「本人是对方的 X」,于是映射时取了**逆关系**(码2 爸爸 → child)。数据说这个假设是错的:
FRIDAY 存的码本来就是「对方是本人的 X」,跟 PAC 契约同向 —— 多反转了一次。
互反边可以证:秦佳(47)--mother-->韩秦瑜(21) 与 韩秦瑜--child-->秦佳 两条边互相自洽、
但都与年龄矛盾;去掉那次反转两条就都对了。
⚠ ️ 摄入侧的修法(改 yaml + 重摄该资源)另开一件事 —— patient_relation 是 upsert 资源、
不进 transaction,没有原文可 reparse,得从源重拉。
## 这次做的是展示侧:年龄定方向,不降级
按你的要求不降级成「亲属」,而是**实时算出真实关系**:
· 标成长辈但对方更年轻 → 子女 / 孙辈
· 标成晚辈但对方更年长 → 按对方性别拆父/母(性别缺 → 中性「父母」,不硬猜)
· 配偶 / 兄弟姐妹是对称关系,没有方向可纠,原样返回(同岁配偶很正常,不许被误标)
· 任一方缺生日 → 原样返回,不猜(会显示的边 98.8% 两边都有生日)
纠正过的在关系后打一个 `*`,hover 显示「源数据记的是「mother」,与双方年龄不符,已按年龄纠正」——
客服跟宿主对账时能看出差异在哪,而不是以为 PAC 显示错了。载荷同时留 relationshipRaw。
口径收在 @pac/types/kin-relationship.ts(纯函数,附实证数字),11 条用例锁住,
其中"同岁也算矛盾""配偶不许被纠""缺生日不猜"三条是最容易被后来人改坏的。
本地实测(王红兵 58 岁):源里的「妈妈 王迪 31岁」现在显示「子女* · 31岁」,配偶 59 岁不动。
717 tests / 47 suites + 两端 typecheck 通过。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| public | Loading commit data... | |
| src | Loading commit data... | |
| .dockerignore | Loading commit data... | |
| .env.example | Loading commit data... | |
| Dockerfile | Loading commit data... | |
| components.json | Loading commit data... | |
| eslint.config.mjs | Loading commit data... | |
| next-env.d.ts | Loading commit data... | |
| next.config.mjs | Loading commit data... | |
| package.json | Loading commit data... | |
| postcss.config.mjs | Loading commit data... | |
| tsconfig.json | Loading commit data... |