METHOD & DATA
数据方法 · 口径说明
一、数据全景
1020次提问
2050条消息
56个活跃日
73个工作空间
645小时
998次操作
63个 WORLDS 主题
二、数据来源(全部本地)
- ~/.workbuddy/audit-log/*.jsonl — 审计日志,每个 requestId = 一次提问(69 个文件,9772 行)
- ~/.workbuddy/workbuddy.db — SQLite 会话库(136 次会话)
- ~/.workbuddy/logs/AppStartup.log — 启动日志(累计时长)
- ~/.workbuddy/projects/*/ *.jsonl — 会话记录(提问原文)
三、关键口径
| 指标 | 口径 |
|---|---|
| 活跃日 | 当日至少 1 次提问的天数 |
| 累计小时 | verified_seconds ÷ 3600(按会话持续时间累计) |
| 工作空间 | sessions 表 DISTINCT cwd 计数 |
| 留言维度化覆盖率 | 留言切段中至少 1 个维度强度 ≥1 的比例 |
| WORLDS TOP12 | 按提问频次降序的 12 个主题 |
四、隐私红线(硬规则)
- 🔒 零云端依赖:运行时无任何 AI / 云端 API 调用;数据构建期加工成静态 JSON 打包
- 🔒 教师姓名脱敏:姓+老师(复姓保留两字),真名仅 1 小时临时态
- 🔒 数据红线:_secure/、真名映射、原始截图永不入 git
- 🔒 对外口径:校名一律「A 校」
五、如何更新
- 一句话触发:对 WorkBuddy 说「更新WB看板」
- 管线:9 步全自动(提取 → 计算 → xlsx → 模板渲染)
- 产物:4 个看板 + 门户 + xlsx 全部由 _metrics.json 单一事实源渲染
- 只预览不重建:
python _update_dashboard.py --dry