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

2.5 KiB
Raw Blame History

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/。