今天做了什么
- 经验切片工作流(人审闭环,对齐 stars 终审模式):
- 新增
site/scripts/sync-slices.mjs:读取 session-log「已补摘要」的会话 → 在 memory/slices/ 生成候选卡(状态机 candidate → approved/promoted/discarded,同会话不重复生成)。
site-data/workbench/slices.json(仅数量,公开安全)+ slice-summary.md(Obsidian 嵌入);memory/slices/README.md 写明工作流。
- 首个候选已生成:
memory/slices/2026-08-06-复利工作台阶段-1.md(来源会话 #8d16f8),待人终审。
- 日报/周报自动化:
analyze-sessions.mjs v2:日报草稿增强(会话摘要 + 经验切片统计);新增周报草稿 drafts/log/2026-W32-周报.md(近 7 天会话/项目/技能/切片/摘要,不存在才创建)。
- 新增
pnpm analyze = sync-slices + analyze-sessions 一键跑。
- skillUsage 自动化:
site-data/workbench/skill-usage.json(近 14 天技能真实使用)→ generate-data 生成 skill-usage.data.ts → /workbench 新增「技能调用 · 近 14 天」;skills.ts 清理 }, 残留,改为「计数机器统计、叙事按周整理」。
- /workbench 新增「经验切片 · 人审闭环」板块(候选/留用/已沉淀/弃用数量)+ 指标条;Obsidian
工作台.md 新增切片看板(dataview + slice-summary 嵌入)。
- 构建 71 页通过;Playwright QA 通过(新板块渲染、无溢出、无控制台报错)。
过程与坑
- PowerShell 5.1 的 stdin 管道会把中文按 GBK 转码,Node 脚本里的中文路径/字符串因此错乱;所有含中文的脚本改用临时 .cjs(UTF-8 无 BOM)执行,避免踩坑。
- 文件行尾是 CRLF 时,字符串替换锚点要兼容
\r?\n(skills.ts 注释替换因此失败过一次)。
- titleFrom 截断标题时,全角冒号在第 9 位、下一标点在 37 位,
{10,32} 正则两头不靠 → 改为 {6,32} 后正确生成「复利工作台阶段 1」。
- /workbench 用 GSAP reveal 动画,折叠区初始 visibility:hidden;QA 断言要先滚动触发 reveal,否则 innerText 为空误报。
- 周报草稿首次运行显示「经验切片:尚未生成」,因为 analyze 先于 sync-slices 执行;
pnpm analyze 已调整为先 slices 后 analyze。
下一步
- 人审首个候选切片(memory/slices/2026-08-06-复利工作台阶段-1.md),决定 approved / promoted(整理进 publish/notes)。
- 阶段 3(可选):CF 免费后台(图纸堆 12)——D1 存指标、Workers AI 摘要、Webhook 推送。
- 观察 /workbench 经验切片与近 14 天技能数据,决定是否把 Stop hook 的「摘要待补」升级为自动抓「做了什么/下一步」草稿。