Files
Jyotisha/docs/tasks/TASK-rectification-telemetry-20260926.md
T

31 lines
2.5 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.
# TASK · 生时校正匿名聚合统计(2026-09-26)
## 基线
- `origin/staging`(`TASK-rectification-fewer-probes-card-20260926` 合入之后)。分支 `codex/rectification-telemetry-20260926`。
## 背景
线上没有任何校正会话的聚合数据:交付宽度、问了几题、停在哪条规则、门槛是否达标、是否补过经历都不知道(盘点 09-26)。后续所有决策(领域门槛 2→3、引导题是否再调、默认窗口宽度)都缺证据。
## 决策记录(产品 2026-09-26)
- D1 加匿名聚合统计,**只存数字与枚举**,不存出生资料、姓名、邮箱、用户 / 案例 id 以外的任何身份信息、对话内容、模型原文。
- D2 每个校正会话在交付(或放弃 / 超时结束)时写一行:起始窗口半径、出生时间来源类别、提问总数(按类型:定向 / 引导 / 带年月探针 / 性格 / 开放)、用户补经历次数、最终区间宽度(分钟)、候选数、第一名与第二名差距(百分点)、停止原因枚举(收敛 / 题源问空 / 用户说没有了 / 8 轮上限 / 用户中止 / 错误)、精度门槛是否达标、耗时(秒)、算法与策略版本。
- D3 数据只供产品负责人在管理后台看**汇总**(中位、分布、按周),不提供逐条导出;保留期 180 天。
- D4 用户 id 只用于去重与删除联动(账户删除时一并删除),汇总视图不显示。
## 硬红线
1. 隐私:AGENTS §8;字段白名单写进测试(新增字段必须改测试);日志与表中不得出现出生日期 / 时间 / 地点 / 姓名 / 对话文本。
2. 动表:迁移必须向后兼容(加表,不改旧表);**必须真跑 `npm run test:db`**(本机无 Docker 时以门禁 DB job 结果为准,写进 PROGRESS 并附 run 号);RLS:普通用户不可读写,只有服务端写、管理员读。
3. 写入失败不得影响用户会话(异步 / 吞错并记录)。
4. 全量前端测试(Node 22)与基线逐条一致、新增 0;改动断言三栏。
## 任务分解
- T1 迁移(表 + RLS + 保留期清理函数)+ 真实 Postgres 测试。
- T2 写入点:交付 / 结束路径,字段计算纯函数 + 单测(白名单)。
- T3 管理后台汇总页(沿用 admin 现有框架):宽度分布、提问数分布、停止原因占比、门槛达标率、按周趋势。
- T4 记录:CHANGELOG、PROGRESS、`docs/testing/`(产品在后台看到汇总的步骤)、隐私说明写进 `docs/operations/`。