# 2026-05-21 工作日志 ## P0 实时检测与推送 [刘新玉需求] ### 背景 - 原有两个每分钟 crontab 任务已被注释(5/11),因为每次全量重跑浪费资源且 P0 会重复推送 - 刘新玉要求做真正的增量 P0 实时分发 ### 完成事项 1. ✅ 新建 `scripts/detect_p0_realtime.py`(~200行): - 复用 `sync_feishu_feedback.py` 的聚类逻辑 + `priority_classifier.py` 的优先级判定 - 查询最近 2 小时消息 → 聚类 → 判定 P0 → 去重(簇签名 MD5)→ 推送 - 去重状态存在 `tmp/p0_dispatched_state.json`,24 小时自动过期 - 每天 10:00-10:01 自动清空去重,配合全量分发 2. ✅ crontab 每分钟执行:`* * * * * python3 detect_p0_realtime.py` 3. ✅ 步骤 4-6 不做每分钟恢复(增量改造成本高,日汇总实时性需求弱) ### AI 归纳流程修复 [刘新玉需求] ### 背景 - 5/15 问题描述出现严重退化:问题一变成"可以在这里Po问题"(元指令文本),问题二变成"图片 (1/1)" - 根因:(1) 关键词模式只能覆盖约 8 类症状,不匹配时退化到首条消息原文 (2) AI 归纳靠心跳触发,5/15 当天漏执行 ### 完成事项 1. ✅ 新建 `scripts/ai_summarize_feedback.py`: - 读取 `cluster_context_{date}.json`,调用 DeepSeek API(deepseek-v4-pro)生成精炼问题描述 - 保存 `ai_descriptions_{date}.json` → 调用 `--apply-ai` 回写到知识库 - 回写后自动清理 context 文件 2. ✅ crontab 每天 10:05 执行(在 10:00 全量同步之后) 3. ✅ HEARTBEAT.md 移除 AI 归纳任务(已由 crontab 接管) 4. ✅ 扩展 `generate_problem_description()` 关键词覆盖: - 新增:语音识别/判分、内容/命名缺失、后台弹窗残留、网络/VPN、热更/打包/测试包 - 新增:后台加载场景识别 - 5/15 验证:问题一从"可以在这里Po问题"→"语音识别不准确(对话表达,只识别成错误内容)";问题二从"图片 (1/1)"→"后台加载提示/弹窗未自动消失,持续显示 需确认是否因 VPN/网络代理导致" 5. ✅ 未启用步骤 4-6 每分钟执行(理由同刘新玉确认) ### 调度总览(更新后) ``` 每 5 分钟 → 群消息同步入 MySQL 每分钟 → P0 实时检测 + 增量推送 每分钟 → 反馈数据实时导出到表格 每天 10:00 → 全量七步处理 + 全量分发 每天 10:05 → AI 归纳(DeepSeek 生成描述 → 回写文档) ``` # 2026-05-21 工作日志 ## P0 实时检测与推送 [刘新玉需求] ### 背景 - 原有两个每分钟 crontab 任务已被注释(5/11),因为每次全量重跑浪费资源且 P0 会重复推送 - 刘新玉要求做真正的增量 P0 实时分发 ### 完成事项 1. ✅ 新建 `scripts/detect_p0_realtime.py`(~200行): - 复用 `sync_feishu_feedback.py` 的聚类逻辑 + `priority_classifier.py` 的优先级判定 - 查询最近 2 小时消息 → 聚类 → 判定 P0 → 去重(簇签名 MD5)→ 推送 - 去重状态存在 `tmp/p0_dispatched_state.json`,24 小时自动过期 - 每天 10:00-10:01 自动清空去重,配合全量分发 2. ✅ crontab 每分钟执行:`* * * * * python3 detect_p0_realtime.py` 3. ✅ 步骤 4-6 不做每分钟恢复(增量改造成本高,日汇总实时性需求弱) ### AI 归纳流程修复 [刘新玉需求] ### 背景 - 5/15 问题描述出现严重退化:问题一变成"可以在这里Po问题"(元指令文本),问题二变成"图片 (1/1)" - 根因:(1) 关键词模式只能覆盖约 8 类症状,不匹配时退化到首条消息原文 (2) AI 归纳靠心跳触发,5/15 当天漏执行 ### 完成事项 1. ✅ 新建 `scripts/ai_summarize_feedback.py`: - 读取 `cluster_context_{date}.json`,调用 DeepSeek API(deepseek-v4-pro)生成精炼问题描述 - 保存 `ai_descriptions_{date}.json` → 调用 `--apply-ai` 回写到知识库 - 回写后自动清理 context 文件 2. ✅ crontab 每天 10:05 执行(在 10:00 全量同步之后) 3. ✅ HEARTBEAT.md 移除 AI 归纳任务(已由 crontab 接管) 4. ✅ 扩展 `generate_problem_description()` 关键词覆盖: - 新增:语音识别/判分、内容/命名缺失、后台弹窗残留、网络/VPN、热更/打包/测试包 - 新增:后台加载场景识别 - 5/15 验证:问题一从"可以在这里Po问题"→"语音识别不准确(对话表达,只识别成错误内容)";问题二从"图片 (1/1)"→"后台加载提示/弹窗未自动消失,持续显示 需确认是否因 VPN/网络代理导致" 5. ✅ 未启用步骤 4-6 每分钟执行(理由同刘新玉确认) ### 调度总览(更新后) ``` 每 5 分钟 → 群消息同步入 MySQL 每分钟 → P0 实时检测 + 增量推送 每分钟 → 反馈数据实时导出到表格 每天 10:00 → 全量七步处理 + 全量分发 每天 10:05 → AI 归纳(DeepSeek 生成描述 → 回写文档) ``` --- ## 历史数据回写(2026-05-11 ~ 2026-05-19)[刘新玉需求] ### 需求 - 刘新玉要求回写 5/11~5/19 共 9 天的"问题描述"为 AI 归纳版本,验证效果 ### 工具 - 新建 `scripts/backfill_ai_descriptions.py`:循环处理多天,读MySQL→聚类→DeepSeek生成描述→覆盖写入知识库子文档 - 包含 AI 失败回退机制:空描述/无意义输出自动回退到关键词 `generate_problem_description` ### 结果 | 日期 | 问题数 | AI 归纳质量 | |------|--------|------------| | 5/11 | 2个(P1+P2) | ✅ Spine动画屏幕适配、U级别显示数字 | | 5/12 | 3个(P0+P2) | ✅ Hotfix卡加载、关卡场景物丢失 | | 5/13 | 2个(P2) | ✅ 单元名显示问号占位 | | 5/14 | 1个(P2) | ✅ AI正确识别为无实质问题 | | 5/15 | 2个(P2) | ✅ 语音识别"a bee"→"a b"、后台加载提示不消失 | | 5/16-17 | 无消息 | 周末 | | 5/18 | 1个(P0) | ✅ 热更后无法进入测试包 | | 5/19 | 2个(P2) | ✅ 图片多选数量不匹配、配置URL报错 | ### 关键发现 - **5/15 对比**:关键词版吐出"可以在这里Po问题",AI版准确归纳为「"a bee"被语音识别成"a b"」和「后台加载提示持续显示无法消失」 - **5/14**:AI正确识别当天无实质问题(闲聊/确认类消息),未强行生成描述 - **AI 偶尔失败需 fallback**:5/12有一个簇 AI 返回空,成功回退到关键词生成「【频繁】移动端关卡4-28内应用无法打开,疑似网络/VPN导致」 ### 文件清单(本次新建/修改) ``` scripts/ai_summarize_feedback.py # 日常 AI 归纳脚本(crontab 用) scripts/backfill_ai_descriptions.py # 批量回写脚本 skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py # 关键词覆盖扩展 HEARTBEAT.md # 移除 AI 归纳心跳任务 ```