Files
danyang-match/docs/governance/decision-register.md
T
WorkBuddy 21275ef770
CI/CD Pipeline / Backend Build & Test (push) Canceled after 0s
CI/CD Pipeline / Admin Web Build (push) Canceled after 0s
CI/CD Pipeline / Mini Program Compile Check (push) Canceled after 0s
CI/CD Pipeline / Test Shell Guard (Phase 23 Gate) (push) Canceled after 0s
CI/CD Pipeline / UI Contracts (source-structure gates) (push) Canceled after 0s
CI/CD Pipeline / Migration Validation (push) Canceled after 0s
CI/CD Pipeline / E2E (live stack) (push) Canceled after 0s
docs(governance): 受控联系立项治理登记(OQ-003 转 IN_PROGRESS / OQ-009~010 新增 / DEC-MATCHMAKER-003-B1 落账)
- config-register.md: matchmaker.contact.* 五 canonical key 登记(enabled fail-safe 缺省 false / approver-authorities 双岗并列 / consent-deadline-hours 72 / default-validity-days 7 / retention-days 365,均 DEFAULT+CONFIG 非 LOCKED 待产品+法务终审)
- open-questions.md: OQ-MATCHMAKER-003 DEFERRED→IN_PROGRESS(V056 立项实现,双守卫翻转,5 项 LEGAL_VERIFY 逐项标注当前实现态与默认配置键);新增 OQ-MATCHMAKER-009(审批双岗并列待收敛,OPEN)与 OQ-MATCHMAKER-010(enabled=false 行为用例待补,QA P2-2)
- PENDING_DECISIONS.md: 受控联系行更新为已立项实现(DEC-MATCHMAKER-003-B1,V056,提交 d3735e3);剩余决策=双岗收敛+LEGAL_VERIFY 终审
- decision-register.md: DEC-MATCHMAKER-003-B1(2026-10-11 LOCKED→已实现)登记,验证数字 mvn verify 895/895、UI 24/24、后端契约 228/CURATED 20、真编译 87 WXML、负向注入 5+2
2026-10-11 13:11:52 +08:00

69 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 决策登记表 — decision-register.md
> **版本**:V1.0.1 配置与规则纠偏基线 · **生效**:2026-09-20 · **owner**:产品负责人
> **只登记产品负责人已正式确认的决策**(LOCKED / 已确认默认)。未确认项一律在
> `open-questions.md`,**不得**出现在本表(消解 PENDING「同一事项既待确认又已确认」矛盾)。
> 确认值同步记入 `config-register.md` 的「产品正式确认」列。
---
## 已确认决策
| 类别 | 确认项 | 分类 | 代码载体 / 备注 |
|------|--------|:---:|----------------|
| 品牌 | 善缘丹阳品牌正式启用 | LOCKED | 品牌资源统一走 `admin-web/src/brand.ts` 的 `BASE_URL` 拼接 |
| 首页 | Banner 运营 + 8 个核心入口 + 固定顺序 | LOCKED | INV-017 顺序固定,运营不可重排;Banner 仅内部跳转(INV-016) |
| 数据保留 | **注销后用户数据保留不得低于 36 个月**(2026-09-19 产品确认) | LOCKED | `account.data-retention-months`(默认 36);到期人工审核匿名化清除(V049 `users.closed_at` + `DataRetentionService` + `account.retention.purge`);隐私政策 §3.3 / PIA §8 已修订 |
| 服务站 | 万善公园婚姻登记处为固定阵地 | LOCKED | `service_locations` 种子数据 |
| 服务 | 婚恋咨询 + 婚前辅导进入 V1.1 首发 | LOCKED | counseling / premarital 模块 |
| 内容 | 婚恋课堂 + 婚恋反诈进入 V1.1 首发 | LOCKED | content 模块 |
| 活动 | 多类型公益活动 + 活动双向沟通确认进入 V1.1 首发 | LOCKED | 二阶段同意(INV-014/015) |
| 核心规则 | Required 不可放宽 / Mutual 后才 Chat / Block 优先 | LOCKED | 匹配/聊天不变量 |
| 推荐 | 每日 6 人 / Pass 冷却 180 天 | LOCKED | `match.default-daily-limit=6`、`match.default-cooldown-days=180` |
| 资料 | 兴趣标签上限 8 个 / 自我介绍 500 字符 | LOCKED | 前端常量 + 后端校验 |
| 隐私 | Privacy 默认全 TRUE | LOCKED | `user_privacy_settings` |
| 活动规则 | 需审核 / 男女名额独立配置 / 互选最大 3 人 / 截止后 48 小时 | LOCKED | activity 模块 |
| 关系状态 | searching / getting_to_know / paused / matched_successfully / service_exited | LOCKED | 关系状态枚举 |
| 推荐重置 | 每日 00:00 Asia/Shanghai | LOCKED | 时区统一 Asia/Shanghai |
| 红娘权限 | DEC-MATCHMAKER-001 红娘角色定位与权限边界(受授权、受范围限制的公益服务角色,非管理员/裁决者/风控) | LOCKED | 见下方「红娘角色权限专项」 |
| 红娘权限 | DEC-MATCHMAKER-002 / A1 服务对象由平台授权人员或红娘组长分配,普通红娘仅访问本人有效分配对象 | LOCKED | 见下方「红娘角色权限专项」 |
| 红娘权限 | DEC-MATCHMAKER-003 / B1 红娘联系用户默认平台内渠道,不默认开放电话/线下/完整联系方式 | LOCKED | 见下方「红娘角色权限专项」 |
| 红娘权限 | DEC-MATCHMAKER-004 红娘不得代替用户执行交友决策(Like/Pass/活动意向/开启聊天/修改择偶条件/同意公开资料) | LOCKED | 见下方「红娘角色权限专项」 |
| 红娘权限 | DEC-MATCHMAKER-005 红娘数据访问最小必要(角色权限∧有效分配∧范围∧字段隐私∧服务目的,五条件同时满足) | LOCKED | 见下方「红娘角色权限专项」 |
| 红娘权限 | DEC-MATCHMAKER-006 红娘操作全程留痕(分配/受限查看/授权/越权拒绝等审计事件 + 第八节字段要求) | LOCKED | 见下方「红娘角色权限专项」 |
---
### 红娘角色权限专项(ZC-MM-001~007,2026-10-10 登记)
> 决策基准:《善缘丹阳 V1.1 红娘角色权限正式决策与开发规则》V1.1(A1/B1 均标记 LOCKED)。
> 实施全链路:审计先行 → A1 建模 → 数据范围/字段隐私 → B1/代操作护栏 → 审计与权限回收 → 本登记。
| 决策 | 实施摘要 | 落地提交 | 验证 |
|------|---------|---------|------|
| DEC-MATCHMAKER-001~006 差距审计 | 全仓只读走查(角色/分配建模/数据范围/联系方式/代操作/审计/测试/治理 9 项),产出 P0×5 / P1×6 / P2×6 差距清单 | 2d60f78(ZC-MM-001 审计报告) | — |
| DEC-MATCHMAKER-002 / A1 | `matchmaker_assignments` 五态状态机(V053 部分唯一索引防多主责 + 存量回填)、`matchmaker_leader` 角色 + `matchmaker.team.assign`(V054)、`ServiceAssignmentPolicy` 唯一判定器、claim 端点删除、/pending 权限收敛 | 861c78e(ZC-MM-002) | 定向 38/38、UI 24/24、小程序真编译通过 |
| DEC-MATCHMAKER-005 / §5.2 | 读侧纯判定器(删除 assigned_operator_id 回退)、非持有人 404 防探测、字段白名单 7 键 + showOccupation 接入、组长团队脱敏统计 | 3caf5f8(ZC-MM-005) | mvn verify 884/884、UI 契约 24/24、后端契约 198 |
| DEC-MATCHMAKER-003 / B1 | 纯护栏(零生产代码改动):MM-CONTACT-001~004 守卫锁定(无联系端点/无授权机制/零联系方式回显,含紧急联系人 write-only);受控联系机制 DEFERRED(见 OQ-MATCHMAKER-003) | 5e484d0(ZC-MM-003) | MatchmakerContactGuardTest(负向注入) |
| DEC-MATCHMAKER-004 | 代操作核查 + 锁定:红娘可调写端点逐一无代用户意思表示;operator 主体调用户决策端点认证层 403(SecurityConfig 身份类型防线);转介 must-confirm 语义测试锁死 | 5e484d0(ZC-MM-004) | MatchmakerActionGuardTest(负向注入) |
| DEC-MATCHMAKER-005/006 | V055 audit_logs 补 purpose_code/service_assignment_id/actor_role_snapshot/request_trace_id;JWT 权限实时查库回收(零缓存);SensitiveAccessLog 接入服务详情;写接口 404 化防探测统一 | 1be0d98(ZC-MM-006) | mvn verify 884/884、后端契约 198 |
| **DEC-MATCHMAKER-003-B1 例外通道立项**(2026-10-11 LOCKED→已实现) | 受控联系全链路:V056 `matchmaker_contact_authorizations` 六态状态机(申请→审批→**用户单独同意**[PIPL,独立端点/无预同意参数]→限时生效→撤销/过期)+ ContactAuthorizationPolicy/Service + 双控制器 + 前端三端(miniapp 同意页/工作台入口、admin-web 审批 tab);**唯一披露出口** disclose 专用端点(enabled fail-safe + 404 化 deny + user_phone_disclosure 敏感审计 + phone 不落应用日志);守卫翻转五条(ReferralService 响应键白名单与无 @Scheduled 保留,其余从「锁不存在」改「锁新机制契约」);审批岗/有效期/保留期等全部 DEFAULT+CONFIG(config-register `matchmaker.contact.*` 五键,非 LOCKED 待终审) | d3735e3 | mvn verify **895/895**、UI 契约 **24/24**、后端契约 **228**/CURATED 20、小程序真编译 **87 WXML**、守卫负向注入 **5+2** |
**专项验证汇总**:mvn verify 全量 **884/884**、UI 契约 **24/24**、后端契约 **198**、守卫负向注入变异验证 **7 处判红→还原**(守卫有效性自证)。
---
## 明确「非」已确认(防止误登记,OQ 见 open-questions.md)
| 事项 | 正确定位 | 参见 |
|------|----------|------|
| 照片上限 6 | **技术默认,未产品确认**(OQ-PROFILE-001) | open-questions |
| 推荐阈值 60 | **技术默认,未产品确认**(OQ-MATCH-001) | open-questions |
| 活体核验强制 | **V1.1 首发不强制**,Flag 默认关(OQ-IDENTITY-001) | open-questions |
| Banner 最大活跃数量 | **未定 + 代码未实现**(OQ-BANNER-001,真缺口) | open-questions |
| 有效匹配报送口径 | **PROVISIONAL,未产品裁决**(OQ-ANALYTICS-001) | open-questions |
---
*最后更新: 2026-10-11 — 登记 DEC-MATCHMAKER-003-B1 受控联系例外通道立项(V056 / 提交 d3735e3,QA PASS 0 P0/P1);OQ-MATCHMAKER-003 转 IN_PROGRESS,剩余 LEGAL_VERIFY 终审项与审批双岗收敛见 open-questions OQ-MATCHMAKER-003/009,参数 canonical key 见 config-register `matchmaker.contact.*`。此前:2026-10-10 登记红娘角色权限专项 DEC-MATCHMAKER-001~006(ZC-MM-001~007 全链路);2026-09-20 登记 15 项已确认决策。*