{"id":"b451ac70-a9f7-4e2d-8a24-1d1558748794","shortId":"xDxTWx","kind":"skill","title":"forge-fupan","tagline":"协作复盘与知识沉淀。在完成一段工作后，先启动本地 Fupan Workbench 让用户确认想学的知识区和深度，再按选择调研并生成结构化复盘文档、show-widget 仪表盘，并按需用 Image 2 生成学习图/决策路径图。触发方式：用户说\"总结知识\"、\"学习总结\"、\"复盘\"、\"可视化复盘\"、\"/forge-fupan\"时使用。","description":"# 复盘 — 协作知识沉淀与深度诊断\n\n## 使用建议\n\n> **在会话收尾时复盘，不要在中途插入。** 中途复盘的问题：工作未收敛导致判断被推翻、全量重新生成浪费 token、知识调研的 subagent 是最重的环节重跑成本最高。最佳节奏：一个会话的工作做完 → 复盘一次 → 结束。同会话迭代机制仅作为兜底方案保留。\n>\n> **绝对不要在 `/compact` 之后复盘。** `/compact` 会将原始对话压缩为 LLM 摘要，用户的原始 prompt 文本、具体的消息序列、完整的工具调用结果都会丢失。而复盘的表达复盘（逐条分析用户表达）和行为模式检测（扫描行为序列）都依赖原始对话，二手摘要无法支撑。正确顺序：**功能开发 → 复盘（在原始对话中）→ compact 或新开会话 → 下一个功能**。\n>\n> **长会话的 token 管理**：Claude Code 无状态，每轮重发全部历史，长会话 input tokens 会二次方增长。建议：单次功能完成后 `/compact`；隔夜/隔天继续时新开会话；超过 200 条消息无论如何都该压缩或新开。但**压缩前务必先完成复盘**。\n\n---\n\n## 输出位置\n\n统一保存到 `~/claudecode_workspace/记录/复盘/{项目名}/` 目录：\n- **项目名**由 AI 根据当前项目判断（如 `info2action`、`skill-system`、`视频转文本`），用户可覆盖\n- 文件名格式：`{YYYY-MM-DD}-{HHMM}-[任务标签]-{主题关键词}.md`\n  - 日期在最前，后跟 24 小时制时分（取复盘文档创建时的当前时间），便于按时间排序\n  - 任务标签应与具体功能点/任务挂钩，示例：`[调整前端布局]`、`[视频转文本工具]`、`[安全加固]`\n- 示例路径：`~/claudecode_workspace/记录/复盘/info2action/2026-04-06-1430-[多数据源聚合]-RSS-HN-Reddit-GitHub信息源扩展.md`\n\n---\n\n## 前置脚本（每次先运行）\n\n```bash\n_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)\n_BRANCH=$(git branch --show-current 2>/dev/null || echo \"unknown\")\necho \"当前分支: $_BRANCH\"\necho \"项目根目录: $_ROOT\"\n\n# === Git 卫生检查 ===\ngit fetch --quiet 2>/dev/null\n_AHEAD=$(git rev-list @{u}..HEAD --count 2>/dev/null || echo \"?\")\n_BEHIND=$(git rev-list HEAD..@{u} --count 2>/dev/null || echo \"?\")\necho \"远程同步: 领先 $_AHEAD / 落后 $_BEHIND\"\nif [ \"$_BEHIND\" != \"?\" ] && [ \"$_BEHIND\" -gt 0 ]; then\n  echo \"⚠️ 落后远程 $_BEHIND 个提交，自动 rebase...\"\n  _HAS_CHANGES=$(git status --porcelain 2>/dev/null | head -1)\n  [ -n \"$_HAS_CHANGES\" ] && git stash --quiet 2>/dev/null && _STASHED=1 || _STASHED=0\n  git pull --rebase --quiet 2>/dev/null && echo \"✅ 已同步远程\" || echo \"❌ rebase 失败，请手动处理\"\n  [ \"$_STASHED\" = \"1\" ] && git stash pop --quiet 2>/dev/null\nfi\n_DIRTY=$(git status --porcelain 2>/dev/null | head -5)\n[ -n \"$_DIRTY\" ] && echo \"⚠️ 工作区有未提交改动\"\n\n# === 项目上下文收集 ===\n_RECENT_COMMITS=$(git log --oneline -20 2>/dev/null)\n_DIFF_STAT=$(git diff --stat HEAD~10..HEAD 2>/dev/null)\n_PROJECT_DOCS=$(ls docs/*.md 2>/dev/null)\necho \"--- 最近提交 ---\"\necho \"$_RECENT_COMMITS\"\necho \"--- 变更统计 ---\"\necho \"$_DIFF_STAT\"\necho \"--- 项目文档 ---\"\necho \"$_PROJECT_DOCS\"\n\n# === Token 统计 ===\n# 定位当前会话 JSONL 并解析 token 消耗\n_CLAUDE_PROJECT_DIR=\"$HOME/.claude/projects\"\n_PARSE_TOKENS=$(find ~/claudecode_workspace -path '*/forge-fupan/parse_tokens.py' -type f 2>/dev/null | head -1)\nif [ -d \"$_CLAUDE_PROJECT_DIR\" ]; then\n  _JSONL_FILE=$(find \"$_CLAUDE_PROJECT_DIR\" -name \"*.jsonl\" -type f -print0 2>/dev/null | xargs -0 ls -t 2>/dev/null | head -1)\n  if [ -n \"$_JSONL_FILE\" ]; then\n    echo \"--- Token 统计 ---\"\n    echo \"会话日志: $_JSONL_FILE\"\n    if [ -n \"$_PARSE_TOKENS\" ]; then\n      python3 \"$_PARSE_TOKENS\" \"$_JSONL_FILE\" 2>/dev/null || echo \"⚠️ Token 解析失败，将使用轮次估算\"\n    else\n      echo \"⚠️ parse_tokens.py 未找到，将使用轮次估算\"\n    fi\n  fi\nfi\n\n# === 同会话迭代检测 ===\n_FUPAN_DIR=\"$HOME/claudecode_workspace/记录/复盘\"\nif [ -n \"$_JSONL_FILE\" ]; then\n  _SESSION_ID=$(basename \"$_JSONL_FILE\")\n  _EXISTING_FUPAN=$(grep -rl \"session: $_SESSION_ID\" \"$_FUPAN_DIR\" 2>/dev/null | head -1)\n  if [ -n \"$_EXISTING_FUPAN\" ]; then\n    echo \"⚠️ 检测到同会话已有复盘: $_EXISTING_FUPAN\"\n    echo \"将迭代更新该文档，而非新建\"\n  fi\nfi\n```\n\n---\n\n## 文档结构\n\n复盘文档以 frontmatter 开头，包含会话标记：\n\n```markdown\n---\nsession: {JSONL文件名}\niteration: {迭代次数，首次为1}\ncreated: {首次创建时间}\nupdated: {最后更新时间}\n---\n```\n\n随后先写 `TLDR`，再写导航目录和 7 个章节，信息密度从高到低排列。\n\n---\n\n### TLDR（必须位于文档最上方）\n\n`TLDR` 放在 frontmatter 之后、导航目录之前。它是给用户快速学习用的记忆卡，不是普通摘要。\n\n```markdown\n## TLDR\n\n- **关键词**：{本次最值得记住的 3-6 个术语 / 工具 / 判断标准}\n- **表达方法**：下次可以说：{一条可直接复制的高质量指令}\n- **关键知识**：{这次真正学到的原理、机制或工作流}\n- **关键决策**：{本次最重要的取舍，以及为什么}\n- **避坑提醒**：{下次最容易重犯的误区或检查点}\n- **下次行动**：{一条最小、具体、可执行的后续动作}\n```\n\n硬性规则：\n\n- TLDR 必须是分点陈述，6-10 条为宜；不得写成长段落。\n- 每条都必须来自本次复盘正文中的证据、知识拓展或决策复盘，不得凭空发明。\n- 至少包含 1 条 `表达方法`，格式必须出现“下次可以说：...”。\n- 至少包含 1 条 `关键知识`，用人话讲清楚，不只堆专业名词。\n- 至少包含 1 条 `避坑提醒` 或 `下次行动`，方便用户立刻迁移到下一次协作。\n- 如果某类内容本次不明显，可以省略该类，但 TLDR 总条数不得少于 5 条。\n\n---\n\n### 导航目录\n\n```markdown\n## 目录\n\n- [TLDR](#tldr)\n- [仪表盘速览](#仪表盘速览)\n- [一、会话脉络](#一会话脉络)\n- [二、表达复盘](#二表达复盘)\n- [三、知识拓展](#三知识拓展)\n- [四、决策复盘](#四决策复盘)\n- [五、AI 表现复盘](#五ai-表现复盘)\n- [六、速查手册](#六速查手册)\n- [七、下次行动清单](#七下次行动清单)\n```\n\n---\n\n### 仪表盘速览\n\n放在导航目录之后、第一章之前。用 show-widget 生成，截图保存为 PNG 插入文档。\n\n仪表盘必须包含以下区块：\n\n1. **标题栏**：复盘主题 + 日期 + 迭代次数（如有）\n2. **精力分布**：进度条可视化各阶段占比\n3. **表达复盘摘要**：按学习优先级分组，每条给出简要描述\n   - 🔴 ×N 待补背景：逐条列出具体哪个领域需要补背景\n   - 🟡 ×N 概念模糊：逐条列出具体哪个概念模糊\n   - 🟢 ×N 表达可优化：逐条列出具体哪个表达可以更直接\n4. **行为模式警示**：每个模式一行描述（名称 + 一句话概括）\n5. **AI 表现**：四维度评分 + 颜色标记\n6. **知识拓展领域**：列出本次覆盖的知识领域\n7. **核心收获**：top 3 最有价值的实践，一行一条\n\n仪表盘设计原则：**信息密度高，一屏看完核心内容。** 看完仪表盘就知道这次复盘的全貌，再决定深入哪个章节。\n\n---\n\n### 一、会话脉络\n\n用精力/Token 分布展示整个会话的工作过程。\n\n#### 精力分布（基于 output tokens 统计）\n\n进度条 + 表格结合，每个阶段显示 input/output token 绝对值：\n\n```\n██████████░░░░░░░░░░ 方案探索与验证   ~48%  1.3M/23k  ← 5种方案对比，3种失败\n████████░░░░░░░░░░░░ OCR管线搭建      ~35%  980k/18k  ← SDK失败→httpx切换+去重调参\n███░░░░░░░░░░░░░░░░░ 合并与图片提取   ~12%  350k/6k\n█░░░░░░░░░░░░░░░░░░░ 收尾              ~5%  140k/3k\n```\n\n| 阶段 | 占比 | in/out | 关键事件 | ⚠️ 问题点 |\n|------|------|--------|---------|----------|\n| 方案探索 | ~48% | 1.3M/23k | 5种方案对比，CV方案全部失败 | 我没说清\"手机拍屏幕\"这个前提 [→ #P1](#p1) |\n| OCR管线 | ~35% | 980k/18k | SDK→httpx切换，三层去重 | \"做个去重\"没说清是哪层 [→ #P3](#p3) |\n| ... | ... | ... | ... | ... |\n\n> **in/out 格式说明**：`1.3M/23k` 表示 effective input 1.3M tokens / output 23k tokens。\n> effective input = cache_read + cache_create（真实输入侧消耗，raw input_tokens 是流式占位符不可用）。\n\n#### 工作叙事\n\n按阶段展开，每个阶段标注关键转折和问题点：\n\n```\n阶段 1：方案探索（~48%）\n  → 尝试纯 CV 方案检测全屏图 → 失败（手机拍屏幕像素特征太相似）\n  → 🔀 转向 LLM 语义判断\n  → ⚠️ 我在描述需求时完全没提到\"手机拍屏幕\"这个关键前提 [→ #P1]\n\n阶段 2：OCR管线搭建（~35%）\n  → openai SDK 解析失败 → 🔀 切换到 httpx 直调\n  → 加入 SSIM 去重，阈值从 0.7 调到 0.9\n  → ⚠️ \"做个去重\"没指定是图像级还是文本级 [→ #P3]\n  ...\n```\n\n🔀 = 方向性转折，⚠️ = 沟通/表达/行为问题点（引用到第二章具体条目）。\n\n**同会话迭代时**：在进度条中加入复盘分界线：\n```\n██████░░░░░░░░░░░░░░ 方案探索        ~30%\n████░░░░░░░░░░░░░░░░ OCR管线         ~22%\n██░░░░░░░░░░░░░░░░░░ 合并提取         ~8%\n█░░░░░░░░░░░░░░░░░░░ 第一次复盘       ~3%\n                      ─── 复盘分界线 ───\n████░░░░░░░░░░░░░░░░ Bug修复+迭代    ~25%\n██░░░░░░░░░░░░░░░░░░ 验证收尾        ~12%\n```\n\n**Token 统计方法**：\n- 使用 `parse_tokens.py` 解析当前会话的 JSONL 日志\n- **effective input** = cache_read + cache_create（raw input_tokens 是流式占位符，全部为 0/1，不可用）\n- **output tokens** 经 message.id 去重后可信\n- 每个阶段显示 `in/out` 绝对值（如 `1.3M/23k`）+ 占比百分比\n- 用 `~` 前缀标注占比为估算值（因为阶段边界由 AI 人工划分）\n- 如果 token 解析失败，降级为基于对话轮次数 + 工具调用数的粗估\n\n---\n\n### 二、表达复盘\n\n**本章是整篇复盘的信息入口。** 目标：把本次会话里“我当时怎么说、其实想解决什么、下次可以怎么说”讲清楚。语气必须像老师帮用户补课，不像批改作业。\n\n#### 2.1 逐条 Prompt 分析\n\n**不设数量限制**，有问题的全部挑出来。按严重度分级标注：\n\n- **🔴 待补背景**：用户描述了一个需求，但该领域的核心术语/概念没有出现。说明这里适合先补背景。**重点展开对象**，每条必须关联到第三章知识拓展的对应领域。\n- **🟡 概念模糊**：用户用了一些词但不精确，AI 需要猜测用户的意思。\n- **🟢 表达可优化**：用户知道要什么，但说法还可以更直接。\n\n每条分析的格式：\n\n```markdown\n<a id=\"p3\"></a>\n#### 🔴 #P3: \"把去重做一下\"\n\n- **问题**：没指定是哪一层去重（图像/文本/合并阶段），没给判断标准\n- **AI 做了什么**：只在合并阶段加了 prompt 级去重\n- **实际需要的**：在 OCR 阶段加文本行级去重 + SSIM 图像级去重 + 合并 prompt 去重，三层递进\n- **更好的说法**：\"在 OCR 阶段加文本行级去重，规则是：如果某行文本在上一帧的 OCR 结果中已存在则跳过。同时保留现有的 SSIM 图像去重和合并阶段的 prompt 去重\"\n- **学习线索**：🏷️ 待补背景 — 不了解视频处理管线中去重是分层策略\n- **关联知识拓展**：[→ §三-领域1「视频内容理解」](#领域-1视频内容理解)\n- **增加的沟通成本**：约 3 轮\n```\n\n#### 2.2 模式诊断\n\n不看单条 prompt，看整个对话的沟通、思维和行为模式。分三个独立维度：\n\n##### a) 表达模式\n\n分析用户的沟通习惯中有哪些结构性问题：\n- 碎片化描述 vs 一次给完整需求\n- 描述现象但从不描述期望的目标状态\n- 使用模糊代词而非具体指称\n- ...\n\n##### b) 思考模式\n\n分析用户的思维方式中有哪些缺口：\n- 把多层问题当成单点操作（缺乏系统思维）\n- 没有意识到前后端/多模块可能冲突（缺乏全链路思维）\n- 直觉驱动而非假设驱动（缺乏实验思维）\n- ...\n\n##### c) 行为模式\n\n分析用户的工作流程中有哪些低效模式。**每个行为模式必须独立完成深度分析**，由 subagent 执行（见 Phase 2），输出格式统一：\n\n```markdown\n#### 行为模式 B1：碎片修复循环\n\n1. **表现**：fix bug → QA → 发现新bug → fix → QA... 循环了4轮\n2. **频率**：本次会话中出现 3 次，贯穿第二阶段始终\n3. **根因**：急于看到\"绿灯\"的心理驱动，没有先建立全局视图\n4. **影响**：浪费约 8 轮对话，每次 QA 都是全量运行但只验证一个修复\n5. **正确做法**：先跑一次完整 QA 收集所有问题 → 分类分优先级 → 批量修复 → 再跑 QA 验证\n6. **触发检查点**：当你准备说\"帮我测一下这个改动\"时，停下来问自己——\"我是在修完所有已知问题后测试，还是刚改了一个就急着测？\"\n7. **关联**：与 B2「过早进入实现」相关——急于修复是因为跳过了问题全景扫描\n```\n\n---\n\n### 三、知识拓展\n\n**核心目标**：以本次实践为锚点，按用户在 Workbench 里选择的学习深度补齐知识。不只记录「本次用了什么」，而是系统性地展示「这个领域你还应该知道什么」。\n\n每个知识领域标注来源 Prompt：\n\n```markdown\n### 领域 1：视频内容理解与帧处理 [来自 #P1, #P3, #P7]\n```\n\n每个领域分两部分：\n\n#### Part A：本次实践总结（精简版）\n\n3-5 条核心收获，一行一条：\n```\n1. LLM 做语义判断 + CV 做像素操作 = 正确的职责分配\n2. 多层去重 > 单层去重（SSIM → 文本行 → prompt）\n3. 先 3 帧测试 API 再跑全量，避免 242 帧浪费\n```\n\n#### Part B：领域知识拓展\n\n**由 subagent 并行调研**（见 Phase 2）。每个领域必须通过 web search 回答以下 6 个问题：\n\n**Q1. 标准术语**（命名锚定）\n> 这个问题在业界的标准术语叫什么？搜索该术语的权威定义。\n> 输出：术语名 + 一句话定义 + \"下次可以说：xxx\"\n\n**Q2. 方案光谱**（主流解决方案全景）\n> 主流的解决方案有哪几类？各自适用什么场景？\n> 输出：方案列表，每个方案附适用场景和局限性\n\n**Q3. 工具箱**（常用工具/库/服务）\n> 目前最常用的工具/库/服务是哪些？\n> 输出：工具名 + 一句话定位 + 适用场景 + 是否活跃维护\n> → \"下次可以说：用 {工具名} 做 {场景}\"\n\n**Q4. 80% 核心知识**（帕累托边界）\n> 这个领域的从业者默认知道的核心知识点有哪些？\n> 输出：知识点列表，每个用 2-3 句话讲清楚\n\n**Q5. 常见反模式**（避坑边界）\n> 常见的错误做法有哪些？\n> 输出：反模式名 + 为什么是错的 + 正确做法\n\n**Q6. 学习路径**（深入资源）\n> 如果要深入学习，最值得看的 2-3 个资源是什么？\n> 输出：资源名（含链接）+ 看什么部分 + 解决什么问题\n> 资源必须权威：官方文档、知名作者博客、高赞社区讨论，禁止低质量转载\n\n**每个知识点以「下次可以说：xxx」结尾**，给用户可直接使用的 prompt 关键词。\n\n---\n\n### 四、决策复盘\n\n只记录**有权衡取舍的关键决策**。不是每个决策都需要记录——只记录踩了坑的、有明确权衡的、或暴露认知问题的。\n\n每个决策的格式：\n\n```markdown\n#### 决策 1：放弃 openai SDK，改用 httpx 直调\n\n- **触发**：SDK 解析 sub2api 返回格式失败\n- **权衡**：SDK 便利性 vs 兼容性\n- **结论**：非官方 API 都用 httpx，官方 API 用 SDK\n- **反思**：应该在第一帧就测试 SDK 兼容性，而不是跑了 10 帧才发现\n```\n\n---\n\n### 五、AI 表现复盘\n\n#### 评分总览\n\n| 维度 | 评级 | 说明 |\n|------|------|------|\n| 需求理解准确度 | 🟢/🟡/🔴 | 一句话 |\n| 自主决策质量 | 🟢/🟡/🔴 | 一句话 |\n| 迭代效率 | 🟢/🟡/🔴 | 一句话 |\n| 输出完整度 | 🟢/🟡/🔴 | 一句话 |\n\n#### 具体问题\n\n每个问题用以下结构：\n\n- **问题标题**\n  - 表现：发生了什么\n  - 根因：AI 侧的具体失误（误解/遗漏/过度/低效）\n  - 增加的沟通成本：N 轮\n  - 应有做法：AI 当时应该怎么做\n\n#### 评级标准\n\n全文档统一：\n- 🔴 = 同一问题返工 ≥3 轮，或方向性错误\n- 🟡 = 需要 1-2 轮修正，或有遗漏但不影响交付\n- 🟢 = 一次到位或决策合理\n\n---\n\n### 六、速查手册\n\n备查区，需要时来翻。合并概念速查表、避坑指南、效率词典为统一的备查区。\n\n#### 概念速查表\n\n按知识领域分组：\n\n| 概念 | 一句话解释 | 什么时候用 | 下次告诉 AI 的关键词 |\n|------|-----------|-----------|-------------------|\n\n#### 避坑指南\n\n| 坑 | 触发条件 | 解决方案 |\n|----|---------|---------|\n\n#### 效率词典\n\n| 中文 | 英文 | 一句话解释 | 场景 | 下次怎么说 |\n|------|------|-----------|------|-----------|\n\n---\n\n### 七、下次行动清单\n\n不给通用建议，只给**具体到可以直接执行**的行动项。至少 3 条。\n\n```markdown\n□ 下次描述去重需求时，明确指定在哪个环节做（采样/图像/文本/语义）\n□ 涉及第三方 API 时，第一步永远是\"用 1 条数据测通 API\"\n□ 了解 PySceneDetect 的基本用法，下次视频处理项目备用\n□ 准备说\"帮我测一下\"之前，先问自己：已知问题是否全部修完？\n```\n\n---\n\n## 执行流程\n\n### Phase 0：环境准备\n\n运行前置脚本，完成：\n1. Git 卫生检查 + 项目上下文收集\n2. Token 统计（parse_tokens.py 解析 JSONL）\n3. 同会话迭代检测\n4. 读取 MEMORY.md 和 WORKSPACE-PULSE.json\n\n### Phase 1：对话分析（主 agent 串行）\n\n回溯完整对话，串行完成以下分析：\n\n1. **提取会话脉络**：\n   - 将对话按工作阶段分段\n   - 标注每个阶段的关键转折（🔀）和问题点（⚠️）\n   - 结合 parse_tokens.py 的输出，计算各阶段 token 占比\n\n2. **逐条 Prompt 分析**：\n   - 扫描用户的每一条消息\n   - 标注有问题的 prompt（🔴/🟡/🟢），不设数量限制\n   - 重点标注 🔴 待补背景：核心术语一个都没出现的 prompt\n\n3. **识别行为模式**：\n   - 扫描对话中的行为序列（如 fix→QA→fix 循环）\n   - 提取所有疑似低效行为模式，列出清单\n   - 为每个模式准备对话证据（具体轮次和用户原文）\n\n4. **识别知识领域**：\n   - 从 🔴 级 Prompt 和工作内容中提取需要调研的知识领域\n   - 为每个领域准备调研上下文（用户背景、已有认知、知识缺口）\n\n5. **识别关键决策**：\n   - 提取有权衡取舍的关键决策点\n   - 区分用户决策 vs AI 决策\n\n6. **AI 表现评估**：\n   - 评估四维度评分\n   - 记录具体问题\n\n### Phase 1.5：学习地图确认（Workbench 优先）\n\nPhase 1 完成后，**不要直接进入 Phase 2 调研**。先把你推测的学习内容交给用户确认。目标是让用户选择“学什么、学多少”，避免生成一篇专业但读不下去的复盘。\n\n#### 1. 生成学习地图 JSON\n\n把 Phase 1 的分析整理为 `/tmp/fupan-learning-map.json`：\n\n```json\n{\n  \"project\": \"{项目名}\",\n  \"session\": \"{JSONL文件名}\",\n  \"source_thread\": \"{可为空}\",\n  \"active\": true,\n  \"summary\": \"本次复盘背景，用人话概括\",\n  \"user_questions\": [\n    \"用户原话摘录 1\",\n    \"用户原话摘录 2\"\n  ],\n  \"expression_issue_quotes\": [\n    {\n      \"quote\": \"用户表达有问题的原话，必须逐字摘录\",\n      \"issue\": \"这句话为什么会增加歧义或沟通成本\",\n      \"suggestion\": \"下次可以怎么说\"\n    }\n  ],\n  \"topics\": [\n    {\n      \"id\": \"react\",\n      \"title\": \"React\",\n      \"plain_explanation\": \"用来搭网页界面的前端框架。\",\n      \"why_relevant\": \"本次设计了 React + Vite 的本地页面。\",\n      \"recommended_depth\": \"表达\",\n      \"selected\": true,\n      \"depth\": \"表达\"\n    }\n  ]\n}\n```\n\nTopic 规则：\n\n- 数量由用户最终选择，AI 只提出候选。\n- 每个 topic 必须有 `plain_explanation`，不能只写专业名词。\n- `recommended_depth` 只能是 `了解 / 表达 / 复现`。\n- 推荐深度只是建议，不代表替用户做决定。\n\n表达原话规则：\n\n- `expression_issue_quotes` 由 LLM 自行分析本次原始会话，不要求用户手动指出。\n- 只摘录真实出现过的用户原话，不能改写、概括或美化。\n- 只要用户表达导致目标、范围、验收标准、技术关键词、优先级或约束不清，就必须收入。\n- 如果确实没有表达问题，写空数组 `[]`。\n- `issue` 和 `suggestion` 要服务学习：告诉用户为什么这句话不够清楚，以及下次可以怎么说。\n\n#### 2. 创建 task 并启动 Workbench\n\n```bash\n_WB=\"skills/forge-fupan/workbench/launcher.py\"\n_TASK_JSON=\"/tmp/fupan-learning-map.json\"\n_TASK=$(python3 \"$_WB\" create-task --input \"$_TASK_JSON\")\n_TASK_ID=$(python3 -c 'import json,sys; print(json.load(sys.stdin)[\"id\"])' <<< \"$_TASK\")\npython3 \"$_WB\" start --task-id \"$_TASK_ID\" --open\n```\n\n启动成功后，在对话里只提示一句：\n\n> 我已经打开 Fupan Workbench，请去页面确认这次想学习的知识区和深度；提交后我会自动继续。\n\n不要要求用户回命令行输入“好了”。\n\n#### 3. 等待当前 task 提交\n\n```bash\npython3 \"$_WB\" wait --task-id \"$_TASK_ID\" --timeout 1800\n```\n\n硬性规则：\n\n- 只轮询当前 `_TASK_ID`。\n- 不得读取或消费其他会话创建的 task。\n- 30 分钟未提交则停止等待，告诉用户页面仍可提交，下次可继续读取。\n- 如果 workbench 启动失败、FastAPI/Uvicorn 缺失或浏览器无法打开，降级到对话内确认。\n\n#### 4. 对话内降级格式\n\n只有在 Workbench 不可用时使用：\n\n```markdown\nWorkbench 暂时没启动成功，我先用对话内确认兜底。\n\n我推测这次可以学：\n1. React — 人话解释：... — 推荐：表达\n2. FastAPI — 人话解释：... — 推荐：了解\n\n请告诉我：\n- 要学哪些编号\n- 每个编号学到：了解 / 表达 / 复现\n- 还有没有补充反馈\n```\n\n#### 5. 后续写作约束\n\n- Phase 2 只深度调研用户选择的 topic。\n- 未选择 topic 不得长篇展开，只能在附录“未展开候选”里一行带过。\n- `了解` 输出：人话解释 + 本次为什么出现 + 暂时不用深入学什么。\n- `表达` 输出：关键词表 + 下次可以怎么说 + 常见误区。\n- `复现` 输出：原理拆解 + 最小可复现实例 + 检查清单 + 练习方向。\n\n### Phase 2：并行调研\n\nPhase 1.5 完成后，为用户选择的每个知识领域和每个行为模式启动 subagent，**全部并行**。\n\n#### 知识调研 Subagent（每个知识领域一个）\n\nPrompt 模板：\n\n```\n你正在为一次协作复盘做知识调研。\n\n## 调研领域\n{领域名称，如\"视频内容理解与帧处理\"}\n\n## 项目背景\n{本次项目做了什么，核心目标是什么}\n\n## 用户背景\n{用户的角色、技术水平、工作习惯}\n{用户在本次会话中对该领域展现出的认知水平}\n{用户用过的术语和没用到的术语}\n\n## 用户的核心目标\n通过复盘按用户选择的学习深度补齐该领域的关键背景。不只是知道\"本次用了什么\"，\n还要知道\"这个领域大家都怎么做、有哪些工具、有哪些坑\"。\n\n## 本次实践摘要\n{用户在这个领域做了什么、用了什么方案、踩了什么坑}\n\n## 用户需要补的背景\n{具体列出哪些 Prompt 暴露了哪些知识缺口}\n\n## 强制调研清单（每项必须通过 web search 验证，不凭记忆编造）\n\n1. **标准术语**：这个问题在业界叫什么？搜索该术语的权威定义。\n   输出格式：术语名 + 一句话定义 + \"下次可以说：xxx\"\n\n2. **方案光谱**：主流解决方案有哪几类？各自适用场景？\n   输出格式：方案列表，每个附适用场景和局限性\n\n3. **工具箱**：最常用的工具/库/服务？\n   输出格式：工具名 + 一句话定位 + 适用场景 + 是否活跃维护\n   每个工具以\"下次可以说：用 {工具名} 做 {场景}\"结尾\n\n4. **80% 核心知识**：这个领域从业者默认知道的核心知识点\n   输出格式：知识点列表，每个 2-3 句话讲清楚\n\n5. **常见反模式**：常见错误做法，搜索 \"common mistakes in {领域}\"\n   输出格式：反模式名 + 为什么是错的 + 正确做法\n\n6. **学习路径**：最值得看的 2-3 个资源\n   输出格式：资源名（含链接）+ 看什么部分 + 解决什么问题\n   资源必须权威：官方文档、知名作者博客、高赞社区讨论\n\n## 约束\n- 每项至少做一次 web search，不凭记忆编造\n- 所有工具/库必须给出准确名称和当前维护状态\n- 每个知识点以\"下次可以说：xxx\"结尾\n- 控制篇幅：每项 3-8 条，不写百科全书\n- 输出纯 markdown，不含代码块\n```\n\n#### 行为模式分析 Subagent（每个模式一个）\n\nPrompt 模板：\n\n```\n你正在分析一个用户的工作行为模式。\n\n## 行为模式\n{模式名称，如\"碎片修复循环\"}\n\n## 对话中的证据\n{主 agent 提取的具体对话片段，包括轮次编号和用户原文}\n\n## 用户背景\n{用户的角色、工作习惯、已知的偏好}\n\n## 分析框架（全部 7 点必须完成，每点 2-5 句话，必须引用对话证据）\n\n1. **表现**：用对话证据还原这个模式的完整过程\n2. **频率**：本次会话中出现了几次？是偶发还是贯穿始终？\n3. **根因**：为什么会形成这个行为模式？（心理驱动/认知缺口/习惯惯性）\n4. **影响**：这个模式浪费了多少轮次/精力？如果不改会怎样？\n5. **正确做法**：业界或高效协作者在同样场景下怎么做？\n6. **触发检查点**：给用户一个具体的自检问题，在即将重蹈覆辙时能拦截自己\n7. **关联**：这个模式是否和其他已识别的模式有关联？\n\n## 约束\n- 不要泛泛而谈，每个论点必须有对话证据支撑\n- 触发检查点必须是一个具体的问句，而非笼统的建议\n- 输出纯 markdown\n```\n\n### Phase 3：组装文档（主 agent 串行）\n\n收集所有 subagent 返回的结果，组装完整复盘文档：\n\n1. **撰写文档**：按 7 章结构组装，插入 subagent 的调研结果和分析结果\n2. **提炼 TLDR**：从表达复盘、知识拓展、决策复盘、速查手册和下次行动清单中提取最值得记住的内容，放到文档最上方\n3. **建立锚点引用**：表达复盘 ↔ 知识拓展双向引用\n4. **保存文档**：\n   - 新文档：写入复盘目录\n   - 迭代更新：覆写已有文档，更新 frontmatter 的 iteration 和 updated\n\n#### 文档内容 Checklist（全部 PASS 才能进入 Phase 4）\n\n```\n□ 每个知识领域的 6 问调研全部有内容（无空项）\n□ 每个行为模式的 7 点分析全部有内容（无空项）\n□ TLDR 位于 frontmatter 后、目录前，且至少 5 条\n□ TLDR 至少包含 1 条“下次可以说：...”表达方法\n□ TLDR 的关键词、知识、决策、避坑或行动均能在正文中找到支撑\n□ 所有 🔴 级 Prompt 都有对应的知识拓展章节锚点\n□ 导航目录的锚点跳转全部正确\n□ 决策复盘至少包含 2 个关键决策（除非本次确实无权衡决策）\n□ 下次行动清单至少 3 条且具体可执行\n□ 速查手册中的概念表和避坑表不为空\n□ frontmatter 中 session/iteration/created/updated 字段正确\n```\n\n**如果某项 FAIL，必须修复后重新检查。**\n\n---\n\n### Phase 4：图表生成与验证（独立 Phase，不可跳过）\n\n**此 Phase 是独立的强制阶段。文档写完后必须立即执行图表生成，不能合并到其他步骤中，不能推迟，不能跳过。**\n\n本阶段默认使用 show-widget / HTML 截图生成结构化仪表盘。若本次复盘包含新的心智模型、复杂行为模式、设计/前端判断、或用户明确希望“可视化学习”，读取 `../_shared/visual-decision-layer.md`，按需补充 Image 2 学习图。Image 2 图用于记忆和理解，不替代仪表盘，也不替代证据截图。\n\n#### 4.1 创建 assets 目录\n\n```bash\nmkdir -p ~/claudecode_workspace/记录/复盘/{项目名}/assets\n```\n\n#### 4.2 生成仪表盘（强制）\n\n1. 用 `show-widget` 生成仪表盘 HTML，必须包含全部 7 个区块：\n   - 标题栏（主题 + 日期 + 迭代次数）\n   - 精力分布（进度条）\n   - 表达复盘摘要（按学习优先级分组，每条含具体描述）\n   - 行为模式警示（名称 + 一句话概括）\n   - AI 表现（四维度评分 + 颜色标记）\n   - 知识拓展领域列表\n   - 核心收获 top 3\n2. 将 HTML 写入 `/tmp/fupan_dashboard.html`\n3. 用 `render_widget.js` 截图：\n   ```bash\n   NODE_PATH=$(npm root -g 2>/dev/null || echo \"/opt/homebrew/lib/node_modules\") \\\n   node ~/claudecode_workspace/.claude/skills/render_widget.js \\\n   /tmp/fupan_dashboard.html \\\n   ~/claudecode_workspace/记录/复盘/{项目名}/assets/{日期}-{主题}_dashboard.png\n   ```\n4. 在复盘文档的「仪表盘速览」章节插入：`![复盘仪表盘](assets/{日期}-{主题}_dashboard.png)`\n\n#### 4.3 生成其他图表（按需）\n\n如有需要（知识拓展中的方案对比图、决策流程图等），每张图表重复以下流程：\n1. `show-widget` 生成 HTML\n2. 写入 `/tmp/fupan_chart_N.html`\n3. `render_widget.js` 截图保存 PNG 到 `assets/`\n4. 文档中插入图片引用\n\n#### 4.3.1 Image 2 学习图（按需）\n\n当 show-widget 只能表达结构、但用户更需要“看懂一个新心智模型”时，生成 1 张 Image 2 学习图：\n\n- **行为模式图**：把本次低效循环画成 before/after 工作流，不用批改感文案。\n- **知识地图图**：把 3-5 个关键知识领域画成一张学习地图，突出“下次可以怎么说”。\n- **设计/前端判断图**：把设计前置判断、真实截图和最终实现之间的关系画成一张决策路径图。\n\n规则：\n1. 先写清楚「这张学习图要帮助用户记住什么」。\n2. 保存图片、prompt、meta 到复盘 `assets/`。\n3. 在「仪表盘速览」之后或对应知识章节插入图片。\n4. prompt 中不得使用真人人名，不得包含隐私、token、内部路径。\n5. 如果没有可用生图能力，保存 prompt pack 并继续复盘，不阻塞 Phase 5。\n\n#### 4.4 强制验证（硬性拦截，不通过则禁止继续）\n\n```bash\n# 验证仪表盘 PNG 存在且非空\n_DASHBOARD_PNG=\"$HOME/claudecode_workspace/记录/复盘/{项目名}/assets/{日期}-{主题}_dashboard.png\"\nif [ ! -s \"$_DASHBOARD_PNG\" ]; then\n  echo \"❌ 仪表盘 PNG 不存在或为空: $_DASHBOARD_PNG\"\n  echo \"Phase 4 未通过，禁止进入 Phase 5。必须先生成仪表盘。\"\n  exit 1\nfi\necho \"✅ 仪表盘 PNG 已验证: $(ls -lh \"$_DASHBOARD_PNG\" | awk '{print $5}')\"\n```\n\n**如果仪表盘 PNG 不存在或为空文件，禁止执行 Phase 5 的 git commit。必须回到 4.2 重新生成。**\n\n---\n\n### Phase 5：回流与索引\n\n0. **清理 `.forge/active.md` 本会话登记**（v6.0 新增，forge-bugfix v6+ 产生的并行心跳文件）：\n\n   ```bash\n   _ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)\n   ACTIVE=\"$_ROOT/.forge/active.md\"\n\n   if [ -f \"$ACTIVE\" ]; then\n     # 获取当前 session id\n     SID_SCRIPT=\"\"\n     for s in \"$HOME/.claude/skills/forge-bugfix/scripts/get-session-id.sh\" \\\n              \"$HOME/.claude/skills/forge/skills/forge-bugfix/scripts/get-session-id.sh\"; do\n       [ -f \"$s\" ] && SID_SCRIPT=\"$s\" && break\n     done\n     CURRENT_SID=$(bash \"$SID_SCRIPT\" 2>/dev/null || echo \"\")\n\n     if [ -n \"$CURRENT_SID\" ]; then\n       # 删除 active.md 里 session id 匹配当前会话的所有行（本会话可能登记了多个 bug）\n       python3 -c \"\n   import pathlib\n   p=pathlib.Path('$ACTIVE')\n   txt=p.read_text()\n   lines=txt.split('\\n')\n   sid='$CURRENT_SID'\n   out=[l for l in lines if not (l.startswith('- session: ') and sid in l)]\n   # 如果进行中会话区变空了，补回占位\n   result='\\n'.join(out)\n   p.write_text(result)\n   print(f'已清理 session {sid[:12]} 的 active 登记')\n   \"\n     else\n       echo \"⚠️ 无法获取 session id，active.md 清理跳过，下次跑 /forge-status 兜底\"\n     fi\n   fi\n   ```\n\n   **硬性规则**：\n   - 只清当前会话自己的登记行（session id 匹配），不动别的会话\n   - 无法获取 session id → 不清理 + 提示用户后续 /forge-status 兜底\n   - 如果本会话有多个 bug 登记，一次全清（session id 一致）\n   - 这一步在 Memory 回流之前执行，确保即使 Memory 写入失败 active 也已清理\n\n1. **Memory 回流**：\n   - 读取当前 MEMORY.md\n   - 从复盘中提取跨会话有价值的内容：\n     - Feedback：行为指令（\"做X/不做Y\" + 原因）\n     - Project：项目状态更新\n     - Reference：复盘文件索引\n   - 写入规则：\n     - 每条 Feedback 创建独立 `.md` 文件，在 MEMORY.md 加一行索引\n     - 已有相同主题 → 更新而非新建\n     - 只提取行为指令，不复制复盘全文\n     - MEMORY.md 总行数控制在 40 行以内\n   - 输出新增/更新的 memory 条目，让用户确认\n\n2. **WORKSPACE-PULSE 更新**：\n   - 读取 `~/claudecode_workspace/WORKSPACE-PULSE.json`\n   - 增量更新：active_work / recent_learnings / pain_points / itch_list / unsolved_questions 等\n   - 更新 `updated_at` 和 `updated_by`\n\n3. **INDEX.md 维护**：\n   - 读取 `~/claudecode_workspace/记录/复盘/INDEX.md`\n   - 新文档：在对应日期下追加条目\n   - 迭代更新：更新已有条目的描述和迭代标记\n   - 条目格式：`- **[标题](相对路径)** \\`项目标签\\` \\`领域标签\\` — 一句话描述`\n\n4. **标记 Workbench task 已完成**：\n   - 如果本轮通过 Phase 1.5 创建了 `_TASK_ID`，最终复盘 Markdown 和索引写完后，必须把 task 标记为 `consumed`。\n   - `consumed` task 会保留 JSON 追溯，但不再出现在 Workbench 首页任务队列。\n\n   ```bash\n   _WB=\"${_WB:-skills/forge-fupan/workbench/launcher.py}\"\n   if [ -n \"${_TASK_ID:-}\" ] && [ -f \"$_WB\" ]; then\n     python3 \"$_WB\" consume --task-id \"$_TASK_ID\" || echo \"⚠️ Workbench task 标记 consumed 失败，可稍后手动处理: $_TASK_ID\"\n   fi\n   ```\n\n5. **提交与推送**：\n   ```bash\n   git add ~/claudecode_workspace/记录/复盘/ 2>/dev/null\n   git add ~/.claude/projects/*/memory/ 2>/dev/null\n   git add ~/claudecode_workspace/WORKSPACE-PULSE.json 2>/dev/null\n   git commit -m \"docs: 复盘 — [主题关键词]\"\n   git push origin \"$_BRANCH\" 2>/dev/null && echo \"✅ 复盘已推送\"\n   ```\n\n6. **最终输出**：\n   - 在对话中重新用 `show-widget` 渲染仪表盘（确保对话末尾能看到完整概览）\n   - 列出所有生成的文件路径\n   - **注意**：此步骤的 widget 不需要再截图（Phase 4 已保存）\n\n---\n\n## INDEX.md 规范\n\n**位置**：`~/claudecode_workspace/记录/复盘/INDEX.md`\n\n**格式**：\n\n```markdown\n# 复盘索引\n\n## 2026-04-06\n\n- **[视频转文本工具：从 brainstorm 到端到端交付](视频转文本/2026-04-06-0100-[视频转文本工具]-从brainstorm到端到端交付.md)** `视频转文本` `工具开发` `视频处理` `LLM-API`\n  录屏/截图→结构化文档的全自动管线。核心收获：LLM做语义+CV做像素。\n\n## 2026-04-05\n\n- **[v12.1 安全加固：密码重置+CORS+Rate-Limiting+法律合规](info2action/2026-04-05-1200-[v12.1安全加固]-密码重置+CORS+Rate-Limiting+法律合规.md)** `info2action` `安全` `后端`\n  产品上线前安全审查，22项P0+P1全量实现。核心收获：安全配置分层dev/production。\n```\n\n**规则**：\n- 按日期倒序（最新在上）\n- 同一天多篇复盘按时间排列\n- 每条：标题超链接 + 项目标签 + 领域标签 + 1-2 句话描述（含核心收获）\n- 路径使用相对路径（相对于 INDEX.md 所在目录）\n- 同会话迭代时更新已有条目，加 `迭代×N` 标签\n- 每次 forge-fupan 执行完自动追加/更新\n\n---\n\n## 同会话迭代规范\n\n当 Phase 0 检测到当前会话已有复盘文档时：\n\n1. **读取已有文档**，获取 frontmatter 中的 iteration 和 created\n2. **全量重新分析**整个对话（包括第一次复盘前后的所有内容）\n3. **覆写原文件**，更新 frontmatter：\n   ```yaml\n   iteration: {原值+1}\n   updated: {当前时间}\n   ```\n4. **INDEX.md** 更新已有条目，加 `迭代×N` 标签\n5. **会话脉络**中加入复盘分界线，展示复盘前后的精力对比\n6. **Git 提交信息**：`docs: 复盘迭代 — [主题关键词] (iter {N})`\n\n---\n\n## 约束规范\n\n### 图表双向同步铁律\n- **所有 `show-widget` 必须在对话和复盘文档中同时可见，没有例外**\n- 每个 show-widget 都必须走完整流程：对话渲染 → 截图 PNG → 插入文档\n- 仪表盘和精力分布图是强制生成项，其他图表按需生成\n- Phase 5 最终输出的重渲染是唯一例外：复用 Phase 4 的截图\n\n### 内容规范\n- **不放代码片段**：用自然语言描述概念\n- **结构化优先**：所有内容尽量分点论述，避免大段文字\n- **表格从简**：表格只用于天然适合对比/查找的内容，不用于表达因果关系\n- **内容全面优先**：不控制文档长度，确保每个分析点都有充分的内容\n\n### AI 表现复盘规范\n- 必须归因到 AI 侧的具体失误，不能写\"双方沟通不够\"这类模糊归因\n- 每个问题必须写\"应有做法\"\n- 如果 AI 表现全部合格，仍需列出\"做得好但可以更好\"的点\n\n### Research 规范\n- 每个知识领域至少做一次 web search（由 subagent 执行）\n- 用户描述模糊的地方，必须调研该领域的标准表达方式并告诉用户\"下次可以说\"\n- 资源必须权威：官方文档、知名作者博客、高赞社区讨论，禁止低质量转载\n- 调研结果融入知识拓展章节，不单独成章\n\n### Memory 回流规范\n- ✅ 行为指令：\"做X/不做Y\" + 原因\n- ✅ 项目活跃状态：架构、设计方向、待解决问题\n- ✅ 外部资源指向：API 文档、监控地址、配置文件位置\n- ❌ 代码实现细节\n- ❌ 完整踩坑过程（已在复盘文件中）\n- ❌ 一次性任务的临时状态\n\n### Memory 文件格式\n```markdown\n---\nname: 名称\ndescription: 一行描述（用于判断是否相关，要具体）\ntype: feedback | project | reference\n---\n\n行为指令或项目状态描述。\n\n**Why:** 原因\n**How to apply:** 适用场景\n```","tags":["forge","fupan","skills","yike-gunshi","agent-skills","ai-development","claude-code","skill-md","skillsmp"],"capabilities":["skill","source-yike-gunshi","skill-forge-fupan","topic-agent-skills","topic-ai-development","topic-claude-code","topic-forge","topic-skill-md","topic-skillsmp"],"categories":["forge-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/yike-gunshi/forge-skills/forge-fupan","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add yike-gunshi/forge-skills","source_repo":"https://github.com/yike-gunshi/forge-skills","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 11 github stars · SKILL.md body (21,607 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-25T19:02:44.923Z","embedding":null,"createdAt":"2026-04-24T07:03:38.539Z","updatedAt":"2026-04-25T19:02:44.923Z","lastSeenAt":"2026-04-25T19:02:44.923Z","tsv":"'+1':2653 '-0':357 '-04':2549,2573 '-05':2574 '-06':2550 '-1':227,336,363,428 '-10':501 '-2':1218,2611 '-20':279 '-3':1098,1114,1714,1732 '-5':268,1014,1788,2093 '-6':478 '-8':1757 '/.claude/projects':2499 '/2026-04-06-0100-':2556 '/_shared/visual-decision-layer.md':1948 '/assets':1969,2029,2144 '/claudecode_workspace':93,131,328,1965,2025,2418,2492,2541 '/claudecode_workspace/.claude/skills/render_widget.js':2023 '/claudecode_workspace/workspace-pulse.json':2395,2505 '/compact':46,48,83 '/dev/null':154,163,178,188,199,225,235,245,259,266,281,291,298,334,355,361,387,426,2019,2217,2249,2496,2502,2507,2519 '/forge-fupan':26 '/forge-fupan/parse_tokens.py':330 '/forge-status':2320,2335 '/index.md':2421,2544 '/info2action/2026-04-06-1430-':134 '/memory':2500 '/opt/homebrew/lib/node_modules':2021 '/production':2601 '/tmp/fupan-learning-map.json':1392,1497 '/tmp/fupan_chart_n.html':2057 '/tmp/fupan_dashboard.html':2007,2024 '/token':625 '0':211,239,1282,2196,2632 '0.7':739 '0.9':741 '0/1':784 '1':237,253,508,514,520,576,710,933,1002,1017,1144,1217,1268,1286,1304,1311,1374,1385,1390,1409,1578,1673,1791,1836,1893,1973,2049,2080,2102,2168,2352,2610,2634 '1.3':640,663,684,689,795 '1.5':1369,1627,2439 '10':1175 '12':651,765,2308 '140k/3k':655 '1800':1551 '1视频内容理解':888 '2':17,153,162,177,187,198,224,234,244,258,265,280,290,297,333,354,360,386,425,582,726,927,942,1023,1046,1097,1113,1290,1322,1378,1411,1487,1583,1598,1624,1682,1713,1731,1787,1794,1844,1908,1951,1954,2003,2018,2055,2068,2083,2105,2216,2248,2389,2495,2501,2506,2518,2642 '2.1':819 '2.2':893 '200':87 '2026':2548,2572 '22':755 '22项p0':2597 '23k':693 '24':120 '242':1036 '25':763 '3':477,585,614,759,891,945,948,1013,1029,1031,1213,1254,1296,1334,1537,1689,1756,1798,1827,1852,1912,2002,2008,2058,2092,2111,2414,2646 '30':753,1558 '35':645,673,728 '350k/6k':652 '3种失败':643 '4':598,954,1298,1346,1568,1706,1804,1856,1874,1923,2033,2064,2115,2161,2432,2536,2656,2699 '4.1':1958 '4.2':1970,2191 '4.3':2042 '4.3.1':2066 '4.4':2130 '40':2382 '48':639,662,712 '5':531,603,654,962,1356,1595,1716,1809,1889,2121,2129,2165,2180,2186,2194,2487,2663,2695 '5种方案对比':642,665 '6':500,608,972,1051,1363,1728,1812,1876,2522,2667 '7':461,611,980,1784,1816,1839,1880,1981 '8':757,957 '80':1090,1707 '980k/18k':646,674 'activ':1401,2219,2223,2270,2310,2350,2397 'active.md':2257,2317 'add':2491,2498,2504 'agent':1307,1775,1830 'ahead':179,204 'ai':100,553,604,801,835,850,1178,1198,1208,1235,1361,1364,1446,1995,2714,2717,2725 'api':1033,1163,1167,1264,1270,2565,2759 'appli':2785 'asset':1960,2038,2063,2110 'awk':2178 'b':908,1039 'b1':931 'b2':983 'basenam':413 'bash':144,1492,1541,1962,2012,2134,2207,2245,2458,2489 'before/after':2087 'behind':190,206,208,209,215 'brainstorm':2553 'branch':156,158,168,2517 'break':2241 'bug':936,2263,2338 'bugfix':2204 'bug修复':761 'c':918,1510,2265 'cach':697,699,775,777 'chang':220,230 'checklist':1869 'claud':73,321,339,346 'code':74 'commit':275,303,2189,2509 'common':1720 'compact':67 'consum':2449,2450,2471,2481 'cor':2578,2587 'count':186,197 'creat':454,700,778,1502,2641 'create-task':1501 'current':161,2243,2253,2278 'cv':714,1020 'cv做像素':2571 'cv方案全部失败':666 'd':338 'dashboard':2138,2150,2157,2176 'dashboard.png':2032,2041,2147 'dd':113 'depth':1437,1441,1455 'descript':2772 'diff':282,285,307 'dir':323,341,348,402,424 'dirti':261,270 'doc':293,295,313,2511,2670 'done':2242 'echo':164,166,169,189,200,201,213,246,248,271,299,301,304,306,309,311,369,372,388,393,434,438,2020,2153,2159,2170,2250,2313,2477,2520 'effect':687,695,773 'els':392,2312 'exist':416,431,436 'exit':2167 'explan':1428,1452 'express':1412,1463 'f':332,352,2222,2236,2304,2466 'fail':1920 'fastapi':1584 'fastapi/uvicorn':1565 'feedback':2358,2369,2777 'fetch':175 'fi':260,397,398,399,441,442,2169,2322,2323,2486 'file':344,367,375,385,409,415 'find':327,345 'fix':935,939,1338,1340 'forg':2,2203,2625 'forge-bugfix':2202 'forge-fupan':1,2624 'forge/active.md':2198 'frontmatt':445,468,1863,1885,1915,2637,2649 'fupan':3,7,401,417,423,432,437,1531,2626 'g':2017 'git':146,157,172,174,180,191,221,231,240,254,262,276,284,1287,2188,2209,2490,2497,2503,2508,2514,2668 'github信息源扩展':140 'grep':418 'gt':210 'head':185,195,226,267,287,289,335,362,427 'hhmm':114 'hn':138 'home/.claude/projects':324 'home/.claude/skills/forge-bugfix/scripts/get-session-id.sh':2233 'home/.claude/skills/forge/skills/forge-bugfix/scripts/get-session-id.sh':2234 'home/claudecode_workspace':403,2140 'html':1939,1979,2005,2054 'httpx':733,1149,1165 'httpx切换':648,676 'id':412,422,1423,1508,1517,1524,1526,1547,1549,1555,2227,2260,2316,2327,2332,2342,2442,2465,2474,2476,2485 'imag':16,1950,1953,2067,2082 'import':1511,2266 'in/out':658,682,792 'index.md':2415,2538,2616,2657 'info2action':103,2593 'info2action/2026-04-05-1200-':2583 'input':78,688,696,703,774,780,1504 'input/output':635 'issu':1413,1418,1464,1481 'itch':2403 'iter':451,1865,2639,2651,2673 'join':2298 'json':1387,1393,1496,1506,1512,2453 'json.load':1515 'jsonl':317,343,350,366,374,384,408,414,771,1295 'jsonl文件名':450,1397 'l':2281,2283,2293 'l.startswith':2288 'learn':2400 'lh':2175 'limit':2581,2590 'line':2274,2285 'list':183,194,2404 'llm':50,719,1018,1467,2564 'llm-api':2563 'llm做语义':2570 'log':277 'ls':294,358,2174 'm':690,2510 'm/23k':641,664,685,796 'markdown':448,473,534,841,929,1000,1142,1256,1573,1761,1825,2444,2546,2769 'md':117,141,296,2371,2559,2592 'memori':2345,2348,2353,2386,2748,2767 'memory.md':1300,2356,2374,2380 'message.id':789 'meta':2108 'mistak':1721 'mkdir':1963 'mm':112 'n':228,269,365,377,407,430,589,592,595,1205,2252,2276,2297,2463,2621,2661,2674 'name':349,2770 'node':2013,2022 'npm':2015 'ocr':857,867,871 'ocr管线':672,754 'ocr管线搭建':644,727 'onelin':278 'open':1527 'openai':729,1146 'origin':2516 'output':629,692,786 'p':1964,2268 'p.read':2272 'p.write':2300 'p1':670,671,724,1005 'p1全量实现':2598 'p3':680,681,744,842,1006 'p7':1007 'pack':2125 'pain':2401 'pars':149,325,378,382,2212 'parse_tokens.py':394,769,1293,1317 'part':1009,1038 'pass':1871 'path':329,2014 'pathlib':2267 'pathlib.path':2269 'phase':926,1045,1281,1303,1368,1373,1377,1389,1597,1623,1626,1826,1873,1922,1926,1929,2128,2160,2164,2185,2193,2438,2535,2631,2694,2698 'plain':1427,1451 'png':573,2061,2136,2139,2151,2155,2158,2172,2177,2182,2690 'point':2402 'pop':256 'porcelain':223,264 'print':1514,2179,2303 'print0':353 'project':292,312,322,340,347,1394,2363,2778 'prompt':53,821,853,862,876,896,999,1028,1131,1324,1328,1333,1350,1635,1665,1766,1904,2107,2116,2124 'pull':241 'puls':2392 'push':2515 'pwd':155,2218 'pyscenedetect':1272 'python3':381,1499,1509,1519,1542,2264,2469 'q1':1053 'q2':1063 'q3':1071 'q4':1089 'q5':1100 'q6':1108 'qa':937,940,960,965,970,1339 'question':1407,2406 'quiet':176,233,243,257 'quot':1414,1415,1465 'rate':2580,2589 'rate-limit':2579,2588 'raw':702,779 'react':1424,1426,1433,1579 'read':698,776 'rebas':218,242,249 'recent':274,302,2399 'recommend':1436,1454 'reddit':139 'refer':2365,2779 'relev':1431 'render_widget.js':2010,2059 'research':2730 'result':2296,2302 'rev':148,182,193,2211 'rev-list':181,192 'rev-pars':147,2210 'rl':419 'root':145,171,2016,2208 'root/.forge/active.md':2220 'rss':137 'rss-hn-reddit-github信息源扩展':136 'script':2229,2239,2247 'sdk':675,730,1147,1152,1157,1169,1172 'sdk失败':647 'search':1049,1670,1746,2734 'select':1439 'session':411,420,421,449,1396,2226,2259,2289,2306,2315,2326,2331,2341 'session/iteration/created/updated':1917 'show':12,151,160,569,1937,1976,2051,2073,2214,2526,2679,2685 'show-curr':159 'show-toplevel':150,2213 'show-widget':11,568,1936,1975,2050,2072,2525,2678,2684 'sid':2228,2238,2244,2246,2254,2277,2279,2291,2307 'skill':105 'skill-forge-fupan' 'skill-system':104 'skills/forge-fupan/workbench/launcher.py':1494,2461 'sourc':1398 'source-yike-gunshi' 'ssim':736,859,874,1026 'start':1521 'stash':232,236,238,252,255 'stat':283,286,308 'status':222,263 'sub2api':1154 'subag':38,923,1042,1630,1633,1764,1833,1842,2736 'suggest':1420,1483 'summari':1403 'sys':1513 'sys.stdin':1516 'system':106 'task':1489,1495,1498,1503,1505,1507,1518,1523,1525,1539,1546,1548,1554,1557,2435,2441,2447,2451,2464,2473,2475,2479,2484 'task-id':1522,1545,2472 'text':2273,2301 'thread':1399 'timeout':1550 'titl':1425 'tldr':459,464,466,474,498,529,536,537,1846,1883,1891,1897 'token':36,71,79,314,319,326,370,379,383,389,630,636,691,694,704,766,781,787,804,1291,1320,2119 'top':613,2001 'topic':1422,1443,1449,1600,1602 'topic-agent-skills' 'topic-ai-development' 'topic-claude-code' 'topic-forge' 'topic-skill-md' 'topic-skillsmp' 'toplevel':152,2215 'true':1402,1440 'txt':2271 'txt.split':2275 'type':331,351,2776 'u':184,196 'unknown':165 'unsolv':2405 'updat':456,1867,2409,2412,2654 'user':1406 'v12.1':2575,2584 'v6':2205 'v6.0':2200 'vite':1434 'vs':904,1159,1360 'wait':1544 'wb':1493,1500,1520,1543,2459,2460,2467,2470 'web':1048,1669,1745,2733 'widget':13,570,1938,1977,2052,2074,2527,2533,2680,2686 'work':2398 'workbench':8,992,1371,1491,1532,1563,1571,1574,2434,2456,2478 'workspac':2391 'workspace-puls':2390 'workspace-pulse.json':1302 'xarg':356 'xxx':1062,1128,1681,1752 'yaml':2650 'yyyi':111 'yyyy-mm-dd':110 '~10':288 '一':540,622 '一个会话的工作做完':41 '一会话脉络':542 '一句话':1185,1187,1189,1191 '一句话定义':1060,1679 '一句话定位':1081,1696 '一句话描述':2431 '一句话概括':602,1994 '一句话解释':1232,1244 '一屏看完核心内容':619 '一条可直接复制的高质量指令':484 '一条最小':494 '一次全清':2340 '一次到位或决策合理':1221 '一次性任务的临时状态':2766 '一次给完整需求':905 '一致':2343 '一行一条':616,1016 '一行描述':2773 '七':561,1247 '七下次行动清单':563 '三':546,883,987 '三-领域1':882 '三层去重':677 '三层递进':864 '三知识拓展':548 '下一个功能':69 '下次可以怎么说':815,1421,1615,2096 '下次可以说':483,512,1061,1084,1127,1680,1700,1751,1895,2740 '下次可继续读取':1561 '下次告诉':1234 '下次怎么说':1246 '下次描述去重需求时':1257 '下次最容易重犯的误区或检查点':492 '下次行动':493,524 '下次行动清单':562,1248 '下次行动清单至少':1911 '下次视频处理项目备用':1274 '下次跑':2319 '不了解视频处理管线中去重是分层策略':880 '不代表替用户做决定':1461 '不做i':2361,2752 '不像批改作业':818 '不写百科全书':1759 '不凭记忆编造':1672,1747 '不动别的会话':2329 '不单独成章':2747 '不只堆专业名词':518 '不只是知道':1653 '不只记录':994 '不可用':785 '不可用时使用':1572 '不可跳过':1927 '不含代码块':1762 '不复制复盘全文':2379 '不存在或为空':2156 '不存在或为空文件':2183 '不得写成长段落':503 '不得凭空发明':506 '不得包含隐私':2118 '不得读取或消费其他会话创建的':1556 '不得长篇展开':1603 '不控制文档长度':2712 '不放代码片段':2702 '不是普通摘要':472 '不是每个决策都需要记录':1137 '不替代仪表盘':1956 '不清理':2333 '不用于表达因果关系':2710 '不用批改感文案':2089 '不看单条':895 '不给通用建议':1249 '不能写':2719 '不能只写专业名词':1453 '不能合并到其他步骤中':1932 '不能推迟':1933 '不能改写':1471 '不能跳过':1934 '不要在中途插入':32 '不要求用户手动指出':1469 '不要泛泛而谈':1820 '不要直接进入':1376 '不要要求用户回命令行输入':1535 '不设数量限制':823,1329 '不通过则禁止继续':2133 '不阻塞':2127 '不需要再截图':2534 '与':982 '且至少':1888 '业界或高效协作者在同样场景下怎么做':1811 '个关键决策':1909 '个关键知识领域画成一张学习地图':2094 '个区块':1982 '个提交':216 '个术语':479 '个章节':462 '个资源':1733 '个资源是什么':1115 '个问题':1052 '中':1916 '中不得使用真人人名':2117 '中加入复盘分界线':2665 '中文':1242 '中的':2638 '中途复盘的问题':33 '串行':1308,1831 '串行完成以下分析':1310 '为什么会形成这个行为模式':1800 '为什么是错的':1106,1726 '为每个模式准备对话证据':1344 '为每个领域准备调研上下文':1352 '为用户选择的每个知识领域和每个行为模式启动':1629 '主':1306,1774,1829 '主流的解决方案有哪几类':1066 '主流解决方案全景':1065 '主流解决方案有哪几类':1684 '主题':1984,2031,2040,2146 '主题关键词':116,2513,2672 '之前':1277 '之后':469 '之后复盘':47 '之后或对应知识章节插入图片':2114 '也不替代证据截图':1957 '也已清理':2351 '习惯惯性':1803 '了解':1271,1457,1587,1591,1607 '二':543,808 '二手摘要无法支撑':62 '二表达复盘':545 '五':552,1177 '五ai':556 '五ai-表现复盘':555 '产品上线前安全审查':2596 '产生的并行心跳文件':2206 '人工划分':802 '人话解释':1580,1585,1609 '什么时候用':1233 '仍需列出':2727 '从':1348,2552 '从brainstorm到端到端交付':2558 '从复盘中提取跨会话有价值的内容':2357 '从表达复盘':1847 '代码实现细节':2763 '以及下次可以怎么说':1486 '以及为什么':490 '以本次实践为锚点':990 '仪表盘':14,2154,2171 '仪表盘和精力分布图是强制生成项':2692 '仪表盘必须包含以下区块':575 '仪表盘设计原则':617 '仪表盘速览':538,539,564,2035,2113 '任务挂钩':125 '任务标签':115 '任务标签应与具体功能点':124 '优先':1372 '优先级或约束不清':1477 '会二次方增长':80 '会保留':2452 '会将原始对话压缩为':49 '会话日志':373 '会话脉络':541,623,2664 '但':89,528 '但不再出现在':2455 '但用户更需要':2076 '但该领域的核心术语':828 '但说法还可以更直接':839 '位于':1884 '位置':2540 '低效':1203 '你正在为一次协作复盘做知识调研':1637 '你正在分析一个用户的工作行为模式':1768 '使用':768 '使用建议':30 '使用模糊代词而非具体指称':907 '侧的具体失误':1199,2718 '便于按时间排序':123 '便利性':1158 '保存':2123 '保存图片':2106 '保存文档':1857 '信息密度从高到低排列':463 '信息密度高':618 '做':1087,1703 '做x':2360,2751 '做个去重':678,742 '做了什么':851 '做像素操作':1021 '做得好但可以更好':2728 '做语义判断':1019 '停下来问自己':977 '先':1030 '先写清楚':2103 '先启动本地':6 '先把你推测的学习内容交给用户确认':1380 '先跑一次完整':964 '先问自己':1278 '兜底':2321,2336 '全文档统一':1211 '全部':1783,1870 '全部为':783 '全部并行':1631 '全量重新分析':2643 '全量重新生成浪费':35 '六':558,1222 '六速查手册':560 '关联':981,1817 '关联知识拓展':881 '关键事件':659 '关键决策':488 '关键知识':485,516 '关键词':475,1132 '关键词表':1614 '其他图表按需生成':2693 '其实想解决什么':814 '具体':495 '具体列出哪些':1664 '具体到可以直接执行':1251 '具体的消息序列':55 '具体轮次和用户原文':1345 '具体问题':1192 '兼容性':1160,1173 '内容全面优先':2711 '内容规范':2701 '内部路径':2120 '再写导航目录和':460 '再决定深入哪个章节':621 '再按选择调研并生成结构化复盘文档':10 '再跑':969 '再跑全量':1034 '写入':2006,2056 '写入复盘目录':1859 '写入失败':2349 '写入规则':2367 '写空数组':1480 '决策':1143,1362,1900 '决策复盘':550,1134,1849 '决策复盘至少包含':1907 '决策流程图等':2047 '决策路径图':19 '准备说':1275 '分三个独立维度':899 '分布展示整个会话的工作过程':626 '分析':822,1325 '分析框架':1782 '分析用户的工作流程中有哪些低效模式':920 '分析用户的思维方式中有哪些缺口':910 '分析用户的沟通习惯中有哪些结构性问题':902 '分类分优先级':967 '分钟未提交则停止等待':1559 '切换到':732 '列出所有生成的文件路径':2530 '列出本次覆盖的知识领域':610 '列出清单':1343 '创建':1488,1959 '创建了':2440 '创建独立':2370 '删除':2256 '判断标准':481 '到':2062 '到复盘':2109 '到端到端交付':2554 '前端判断':1944 '前端判断图':2098 '前缀标注占比为估算值':799 '前置脚本':142 '功能开发':64 '加':2619,2659 '加一行索引':2375 '加入':735 '包含会话标记':447 '包括第一次复盘前后的所有内容':2645 '包括轮次编号和用户原文':1777 '匹配':2328 '匹配当前会话的所有行':2261 '区分用户决策':1359 '协作复盘与知识沉淀':4 '协作知识沉淀与深度诊断':29 '单层去重':1025 '单次功能完成后':82 '占比':657,1321 '占比百分比':797 '卫生检查':173,1288 '压缩前务必先完成复盘':90 '原值':2652 '原因':2362,2753,2782 '原理拆解':1619 '去重':737,863,877 '去重后可信':790 '去重调参':649 '双方沟通不够':2720 '反思':1170 '反模式名':1105,1725 '发现新bug':938 '发生了什么':1196 '取复盘文档创建时的当前时间':122 '变更统计':305 '句话':1789 '句话描述':2612 '句话讲清楚':1099,1715 '只在合并阶段加了':852 '只提出候选':1447 '只提取行为指令':2378 '只摘录真实出现过的用户原话':1470 '只有在':1570 '只深度调研用户选择的':1599 '只清当前会话自己的登记行':2325 '只给':1250 '只能在附录':1604 '只能是':1456 '只能表达结构':2075 '只要用户表达导致目标':1473 '只记录':1135 '只记录踩了坑的':1138 '只轮询当前':1553 '可为空':1400 '可以省略该类':527 '可执行的后续动作':496 '可稍后手动处理':2483 '可视化复盘':25 '可视化学习':1946 '各自适用什么场景':1067 '各自适用场景':1685 '合并':861 '合并与图片提取':650 '合并提取':756 '合并概念速查表':1226 '合并阶段':848 '同一天多篇复盘按时间排列':2605 '同一问题返工':1212 '同会话迭代时':750 '同会话迭代时更新已有条目':2618 '同会话迭代机制仅作为兜底方案保留':44 '同会话迭代检测':400,1297 '同会话迭代规范':2629 '同时保留现有的':873 '名称':601,1993,2771 '后':1886 '后端':2595 '后续写作约束':1596 '后跟':119 '含核心收获':2613 '含链接':1118,1736 '启动失败':1564 '启动成功后':1528 '告诉用户为什么这句话不够清楚':1485 '告诉用户页面仍可提交':1560 '命名锚定':1055 '和':1301,1482,1866,2411,2640 '和工作内容中提取需要调研的知识领域':1351 '和索引写完后':2445 '和行为模式检测':59 '和问题点':1315 '四':549,1133 '四决策复盘':551 '四维度评分':606,1997 '回流':2354 '回流与索引':2195 '回流之前执行':2346 '回流规范':2749 '回溯完整对话':1309 '回答以下':1050 '因为阶段边界由':800 '图像':846,1260 '图像去重和合并阶段的':875 '图像级去重':860 '图用于记忆和理解':1955 '图表双向同步铁律':2676 '图表生成与验证':1924 '在':856,866,2112,2373 '在会话收尾时复盘':31 '在即将重蹈覆辙时能拦截自己':1815 '在原始对话中':66 '在复盘文档的':2034 '在完成一段工作后':5 '在对应日期下追加条目':2423 '在对话中重新用':2524 '在对话里只提示一句':1529 '在进度条中加入复盘分界线':751 '场景':1088,1245,1704 '坑':1238 '基于':628 '增加的沟通成本':889,1204 '增量更新':2396 '备查区':1224 '复杂行为模式':1942 '复现':1459,1593,1617 '复用':2697 '复盘':24,28,65,95,133,405,1967,2027,2142,2420,2494,2512,2543 '复盘一次':42 '复盘主题':578 '复盘仪表盘':2037 '复盘分界线':760 '复盘已推送':2521 '复盘文件索引':2366 '复盘文档以':444 '复盘索引':2547 '复盘迭代':2671 '外部资源指向':2758 '多层去重':1024 '多数据源聚合':135 '多模块可能冲突':914 '失败':250,716,2482 '好了':1536 '如':102,794,1337,1640,1771 '如有':581 '如有需要':2045 '如果':803,1562,2724 '如果不改会怎样':1808 '如果仪表盘':2181 '如果本会话有多个':2337 '如果本轮通过':2437 '如果某类内容本次不明显':526 '如果某行文本在上一帧的':870 '如果某项':1919 '如果没有可用生图能力':2122 '如果确实没有表达问题':1479 '如果要深入学习':1111 '如果进行中会话区变空了':2294 '字段正确':1918 '存在且非空':2137 '学习图':1952,2069,2084 '学习地图确认':1370 '学习总结':23 '学习线索':878 '学习路径':1109,1729 '学什么':1382 '学多少':1383 '它是给用户快速学习用的记忆卡':471 '安全':2594 '安全加固':129,2576,2585 '安全配置分层dev':2600 '完成':1285 '完成后':1375,1628 '完整的工具调用结果都会丢失':56 '完整踩坑过程':2764 '官方':1166 '官方文档':1122,1740,2742 '定位当前会话':316 '实际需要的':855 '密码重置':2577,2586 '对话中的证据':1773 '对话内降级格式':1569 '对话分析':1305 '对话渲染':2688 '导航目录':533 '导航目录之前':470 '导航目录的锚点跳转全部正确':1906 '将':2004 '将使用轮次估算':391,396 '将对话按工作阶段分段':1313 '将迭代更新该文档':439 '小时制时分':121 '尝试纯':713 '就必须收入':1478 '展示复盘前后的精力对比':2666 '工作习惯':1648,1780 '工作区有未提交改动':272 '工作叙事':706 '工作未收敛导致判断被推翻':34 '工作流':2088 '工具':480 '工具名':1080,1086,1695,1702 '工具开发':2561 '工具箱':1072,1690 '工具调用数的粗估':807 '已保存':2537 '已同步远程':247 '已在复盘文件中':2765 '已完成':2436 '已有相同主题':2376 '已有认知':1354 '已清理':2305 '已知的偏好':1781 '已知问题是否全部修完':1279 '已验证':2173 '帕累托边界':1092 '帧才发现':1176 '帧测试':1032 '帧浪费':1037 '帮我测一下':1276 '帮我测一下这个改动':975 '常用工具':1073 '常见反模式':1101,1717 '常见的错误做法有哪些':1103 '常见误区':1616 '常见错误做法':1718 '并启动':1490 '并按需用':15 '并继续复盘':2126 '并行调研':1043,1625 '并解析':318 '库':1074,1077,1692 '库必须给出准确名称和当前维护状态':1749 '应有做法':1207,2723 '应该在第一帧就测试':1171 '建立锚点引用':1853 '建议':81 '开头':446 '引用到第二章具体条目':749 '张':2081 '强制':1972 '强制调研清单':1667 '强制验证':2131 '当':2071,2630 '当你准备说':974 '当前分支':167 '当前时间':2655 '当时应该怎么做':1209 '录屏':2566 '影响':955,1805 '待补背景':590,826,879,1331 '待解决问题':2757 '循环':1341 '循环了4轮':941 '心理驱动':1801 '必须位于文档最上方':465 '必须修复后重新检查':1921 '必须先生成仪表盘':2166 '必须包含全部':1980 '必须回到':2190 '必须在对话和复盘文档中同时可见':2681 '必须引用对话证据':1790 '必须归因到':2716 '必须把':2446 '必须是分点陈述':499 '必须有':1450 '必须调研该领域的标准表达方式并告诉用户':2739 '必须逐字摘录':1417 '思维和行为模式':898 '思考模式':909 '急于修复是因为跳过了问题全景扫描':986 '急于看到':950 '总条数不得少于':530 '总结知识':22 '总行数控制在':2381 '我先用对话内确认兜底':1576 '我在描述需求时完全没提到':721 '我已经打开':1530 '我当时怎么说':813 '我推测这次可以学':1577 '我是在修完所有已知问题后测试':978 '我没说清':667 '或':523 '或新开会话':68 '或方向性错误':1215 '或暴露认知问题的':1140 '或有遗漏但不影响交付':1220 '或用户明确希望':1945 '截图':2011,2567,2689 '截图保存':2060 '截图保存为':572 '截图生成结构化仪表盘':1940 '所在目录':2617 '所有':1902,2677 '所有内容尽量分点论述':2705 '所有工具':1748 '手机拍屏幕':668,722 '手机拍屏幕像素特征太相似':717 '才能进入':1872 '执行':924,2737 '执行完自动追加':2627 '执行流程':1280 '扫描对话中的行为序列':1336 '扫描用户的每一条消息':1326 '扫描行为序列':60 '批量修复':968 '技术关键词':1476 '技术水平':1647 '把':1388,2091 '把去重做一下':843 '把多层问题当成单点操作':911 '把本次会话里':812 '把本次低效循环画成':2086 '把设计前置判断':2099 '按':1838 '按严重度分级标注':825 '按学习优先级分组':587,1990 '按日期倒序':2603 '按用户在':991 '按知识领域分组':1230 '按阶段展开':707 '按需':2044,2070 '按需补充':1949 '控制篇幅':1754 '推荐':1581,1586 '推荐深度只是建议':1460 '描述现象但从不描述期望的目标状态':906 '提交':1540 '提交与推送':2488 '提交信息':2669 '提交后我会自动继续':1534 '提取会话脉络':1312 '提取所有疑似低效行为模式':1342 '提取有权衡取舍的关键决策点':1358 '提取的具体对话片段':1776 '提炼':1845 '提示用户后续':2334 '插入':1841 '插入文档':574,2691 '搜索':1719 '搜索该术语的权威定义':1057,1676 '摘要':51 '撰写文档':1837 '收尾':653 '收集所有':1832 '收集所有问题':966 '改用':1148 '放到文档最上方':1851 '放在':467 '放在导航目录之后':565 '放弃':1145 '效率词典':1241 '效率词典为统一的备查区':1228 '数量由用户最终选择':1445 '整个对话':2644 '文件':2372 '文件名格式':109 '文件格式':2768 '文本':54,847,1261 '文本行':1027 '文档':2760 '文档中插入图片引用':2065 '文档内容':1868 '文档写完后必须立即执行图表生成':1931 '文档结构':443 '新增':2201 '新文档':1858,2422 '方便用户立刻迁移到下一次协作':525 '方向性转折':745 '方案光谱':1064,1683 '方案列表':1069,1687 '方案探索':661,711,752 '方案探索与验证':638 '方案检测全屏图':715 '无法获取':2314,2330 '无状态':75 '无空项':1878,1882 '日志':772 '日期':579,1985,2030,2039,2145 '日期在最前':118 '时':976,1265,2078 '时使用':27 '明确指定在哪个环节做':1258 '是偶发还是贯穿始终':1797 '是否活跃维护':1083,1698 '是最重的环节重跑成本最高':39 '是流式占位符':782 '是流式占位符不可用':705 '是独立的强制阶段':1930 '暂时不用深入学什么':1611 '暂时没启动成功':1575 '暴露了哪些知识缺口':1666 '更好的说法':865 '更新':1862,2393,2408,2628,2648 '更新已有条目':2658 '更新已有条目的描述和迭代标记':2425 '更新的':2385 '更新而非新建':2377 '最佳节奏':40 '最值得看的':1112,1730 '最后更新时间':457 '最小可复现实例':1620 '最常用的工具':1691 '最新在上':2604 '最有价值的实践':615 '最终复盘':2443 '最终输出':2523 '最终输出的重渲染是唯一例外':2696 '最近提交':300 '有哪些坑':1658 '有哪些工具':1657 '有明确权衡的':1139 '有权衡取舍的关键决策':1136 '有问题的全部挑出来':824 '服务':1075,1693 '服务是哪些':1078 '未展开候选':1605 '未找到':395 '未选择':1601 '未通过':2162 '本会话可能登记了多个':2262 '本会话登记':2199 '本次为什么出现':1610 '本次会话中出现':944 '本次会话中出现了几次':1796 '本次复盘背景':1404 '本次实践总结':1011 '本次实践摘要':1659 '本次最值得记住的':476 '本次最重要的取舍':489 '本次用了什么':995,1654 '本次设计了':1432 '本次项目做了什么':1643 '本章是整篇复盘的信息入口':810 '本阶段默认使用':1935 '术语名':1059,1678 '机制或工作流':487 '权衡':1156 '条':509,515,521,532,1255,1758,1890,1894 '条且具体可执行':1913 '条为宜':502 '条数据测通':1269 '条核心收获':1015 '条消息无论如何都该压缩或新开':88 '条目':2387 '条目格式':2426 '来自':1004 '架构':2755 '查找的内容':2709 '标准术语':1054,1674 '标注有问题的':1327 '标注每个阶段的关键转折':1314 '标签':2622,2662 '标记':2433,2480 '标记为':2448 '标题':2427 '标题栏':577,1983 '标题超链接':2607 '核心收获':612,2000,2569,2599 '核心术语一个都没出现的':1332 '核心目标':989 '核心目标是什么':1644 '核心知识':1091,1708 '根因':949,1197,1799 '根据当前项目判断':101 '格式':2545 '格式必须出现':511 '格式说明':683 '检查清单':1621 '检测到同会话已有复盘':435 '检测到当前会话已有复盘文档时':2633 '概念':1231 '概念模糊':593,833 '概念没有出现':829 '概念速查表':1229 '概括或美化':1472 '模式名称':1770 '模式诊断':894 '模板':1636,1767 '次':946 '正确做法':963,1107,1727,1810 '正确的职责分配':1022 '正确顺序':63 '此':1928 '此步骤的':2532 '每个':1448,1712,2683 '每个决策的格式':1141 '每个工具以':1699 '每个方案附适用场景和局限性':1070 '每个模式一个':1765 '每个模式一行描述':600 '每个用':1096 '每个知识点以':1126,1750 '每个知识领域一个':1634 '每个知识领域标注来源':998 '每个知识领域的':1875 '每个知识领域至少做一次':2732 '每个编号学到':1590 '每个行为模式必须独立完成深度分析':921 '每个行为模式的':1879 '每个论点必须有对话证据支撑':1821 '每个问题必须写':2722 '每个问题用以下结构':1193 '每个阶段显示':634,791 '每个阶段标注关键转折和问题点':708 '每个附适用场景和局限性':1688 '每个领域分两部分':1008 '每个领域必须通过':1047 '每张图表重复以下流程':2048 '每条':2368,2606 '每条分析的格式':840 '每条含具体描述':1991 '每条必须关联到第三章知识拓展的对应领域':832 '每条给出简要描述':588 '每条都必须来自本次复盘正文中的证据':504 '每次':959,2623 '每次先运行':143 '每点':1786 '每轮重发全部历史':76 '每项':1755 '每项必须通过':1668 '每项至少做一次':1744 '沟通':746 '没指定是哪一层去重':845 '没指定是图像级还是文本级':743 '没有例外':2682 '没有先建立全局视图':953 '没有意识到前后端':913 '没给判断标准':849 '没说清是哪层':679 '法律合规':2582,2591 '注意':2531 '浪费约':956 '消耗':320 '涉及第三方':1263 '深入资源':1110 '清理':2197 '清理跳过':2318 '渲染仪表盘':2528 '点分析全部有内容':1881 '点必须完成':1785 '独立':1925 '环境准备':1283 '生成':571,2053,2079 '生成仪表盘':1971,1978 '生成其他图表':2043 '生成学习图':18 '生成学习地图':1386 '用':567,798,1085,1168,1267,1701,1974,2009 '用了什么方案':1661 '用于判断是否相关':2774 '用人话概括':1405 '用人话讲清楚':517 '用对话证据还原这个模式的完整过程':1793 '用户原话摘录':1408,1410 '用户可覆盖':108 '用户在本次会话中对该领域展现出的认知水平':1649 '用户在这个领域做了什么':1660 '用户描述了一个需求':827 '用户描述模糊的地方':2738 '用户用了一些词但不精确':834 '用户用过的术语和没用到的术语':1650 '用户的原始':52 '用户的核心目标':1651 '用户的角色':1646,1779 '用户知道要什么':838 '用户背景':1353,1645,1778 '用户表达有问题的原话':1416 '用户说':21 '用户需要补的背景':1663 '用来搭网页界面的前端框架':1429 '用精力':624 '用自然语言描述概念':2703 '由':99,922,1041,1466,2735 '登记':2311,2339 '的':1864,2187,2309 '的关键词':1236,1898 '的分析整理为':1391 '的基本用法':1273 '的心理驱动':952 '的截图':2700 '的本地页面':1435 '的点':2729 '的行动项':1252 '的调研结果和分析结果':1843 '的输出':1318 '监控地址':2761 '目前最常用的工具':1076 '目录':97,535,1961 '目录前':1887 '目标':811 '目标是让用户选择':1381 '直觉驱动而非假设驱动':916 '直调':734,1150 '相关':985 '相对于':2615 '相对路径':2428 '看什么部分':1119,1737 '看完仪表盘就知道这次复盘的全貌':620 '看懂一个新心智模型':2077 '看整个对话的沟通':897 '真实截图和最终实现之间的关系画成一张决策路径图':2100 '真实输入侧消耗':701 '知名作者博客':1123,1741,2743 '知识':1899 '知识地图图':2090 '知识拓展':547,988,1848 '知识拓展中的方案对比图':2046 '知识拓展双向引用':1855 '知识拓展或决策复盘':505 '知识拓展领域':609 '知识拓展领域列表':1999 '知识点列表':1095,1711 '知识缺口':1355 '知识调研':1632 '知识调研的':37 '硬性拦截':2132 '硬性规则':497,1552,2324 '确保即使':2347 '确保对话末尾能看到完整概览':2529 '确保每个分析点都有充分的内容':2713 '碎片修复循环':932,1772 '碎片化描述':903 '示例':126 '示例路径':130 '禁止低质量转载':1125,2745 '禁止执行':2184 '禁止进入':2163 '突出':2095 '章结构组装':1840 '章节插入':2036 '第一次复盘':758 '第一步永远是':1266 '第一章之前':566 '等':2407 '等待当前':1538 '管理':72 '精力':1807 '精力分布':583,627,1987 '精简版':1012 '约':890 '约束':1743,1819 '约束规范':2675 '级':1349,1903 '级去重':854 '练习方向':1622 '组装完整复盘文档':1835 '组装文档':1828 '经':788 '结合':1316 '结尾':1129,1705,1753 '结束':43 '结构化优先':2704 '结构化文档的全自动管线':2568 '结果中已存在则跳过':872 '结论':1161 '给用户一个具体的自检问题':1814 '给用户可直接使用的':1130 '绝对不要在':45 '绝对值':637,793 '统一保存到':92 '统计':315,371,631,1292 '统计方法':767 '维度':1181 '维护':2416 '绿灯':951 '缺乏全链路思维':915 '缺乏实验思维':917 '缺乏系统思维':912 '缺失或浏览器无法打开':1566 '而不是跑了':1174 '而复盘的表达复盘':57 '而是系统性地展示':996 '而非新建':440 '而非笼统的建议':1823 '自主决策质量':1186 '自动':217 '自行分析本次原始会话':1468 '至少':1253 '至少包含':507,513,519,1892 '若本次复盘包含新的心智模型':1941 '英文':1243 '范围':1474 '获取':2636 '获取当前':2225 '落后':205 '落后远程':214 '行为指令':2359,2750 '行为指令或项目状态描述':2780 '行为模式':919,930,1769 '行为模式分析':1763 '行为模式图':2085 '行为模式警示':599,1992 '行为问题点':748 '行以内':2383 '补回占位':2295 '表格从简':2707 '表格只用于天然适合对比':2708 '表格结合':633 '表现':605,934,1195,1792,1996 '表现全部合格':2726 '表现复盘':554,557,1179 '表现复盘规范':2715 '表现评估':1365 '表示':686 '表达':747,1438,1442,1458,1582,1592,1612 '表达原话规则':1462 '表达可优化':596,837 '表达复盘':544,809,1854 '表达复盘摘要':586,1989 '表达方法':482,510,1896 '表达模式':901 '要具体':2775 '要学哪些编号':1589 '要服务学习':1484 '覆写原文件':2647 '覆写已有文档':1861 '见':925,1044 '规则':1444,2101,2602 '规则是':869 '规范':2539,2731 '视频内容理解':885 '视频内容理解与帧处理':1003,1641 '视频处理':2562 '视频转文本':107,2555,2560 '视频转文本工具':128,2551,2557 '解决什么问题':1120,1738 '解决方案':1240 '解析':1153,1294 '解析失败':390,731,805 '解析当前会话的':770 '触发':1151 '触发方式':20 '触发条件':1239 '触发检查点':973,1813 '触发检查点必须是一个具体的问句':1822 '计算各阶段':1319 '认知缺口':1802 '让用户确认':2388 '让用户确认想学的知识区和深度':9 '记录':94,132,404,1966,2026,2141,2419,2493,2542 '记录具体问题':1367 '讲清楚':816 '设计':1943,2097 '设计方向':2756 '评估四维度评分':1366 '评分总览':1180 '评级':1182 '评级标准':1210 '识别关键决策':1357 '识别知识领域':1347 '识别行为模式':1335 '语义':1262 '语义判断':720 '语气必须像老师帮用户补课':817 '误解':1200 '说明':1183 '说明这里适合先补背景':830 '请去页面确认这次想学习的知识区和深度':1533 '请告诉我':1588 '请手动处理':251 '读取':1299,1947,2394,2417 '读取已有文档':2635 '读取当前':2355 '调到':740 '调整前端布局':127 '调研':1379 '调研结果融入知识拓展章节':2746 '调研领域':1638 '贯穿第二阶段始终':947 '资源名':1117,1735 '资源必须权威':1121,1739,2741 '超过':86 '路径使用相对路径':2614 '踩了什么坑':1662 '转向':718 '轮':892,1206,1214 '轮修正':1219 '轮对话':958 '输出':1058,1068,1079,1094,1104,1116,1608,1613,1618 '输出位置':91 '输出完整度':1190 '输出新增':2384 '输出格式':1677,1686,1694,1710,1724,1734 '输出格式统一':928 '输出纯':1760,1824 '过度':1202 '过早进入实现':984 '运行前置脚本':1284 '返回格式失败':1155 '返回的结果':1834 '还是刚改了一个就急着测':979 '还有没有补充反馈':1594 '还要知道':1655 '这一步在':2344 '这个关键前提':723 '这个前提':669 '这个模式是否和其他已识别的模式有关联':1818 '这个模式浪费了多少轮次':1806 '这个问题在业界叫什么':1675 '这个问题在业界的标准术语叫什么':1056 '这个领域从业者默认知道的核心知识点':1709 '这个领域你还应该知道什么':997 '这个领域大家都怎么做':1656 '这个领域的从业者默认知道的核心知识点有哪些':1093 '这句话为什么会增加歧义或沟通成本':1419 '这张学习图要帮助用户记住什么':2104 '这次真正学到的原理':486 '这类模糊归因':2721 '进度条':632,1988 '进度条可视化各阶段占比':584 '远程同步':202 '迭代':762,2620,2660 '迭代效率':1188 '迭代更新':1860,2424 '迭代次数':452,580,1986 '追溯':2454 '适用场景':1082,1697,2786 '逐条':820,1323 '逐条分析用户表达':58 '逐条列出具体哪个概念模糊':594 '逐条列出具体哪个表达可以更直接':597 '逐条列出具体哪个领域需要补背景':591 '通过复盘按用户选择的学习深度补齐该领域的关键背景':1652 '速查手册':559,1223 '速查手册中的概念表和避坑表不为空':1914 '速查手册和下次行动清单中提取最值得记住的内容':1850 '遗漏':1201 '避免':1035 '避免大段文字':2706 '避免生成一篇专业但读不下去的复盘':1384 '避坑或行动均能在正文中找到支撑':1901 '避坑指南':1227,1237 '避坑提醒':491,522 '避坑边界':1102 '都依赖原始对话':61 '都必须走完整流程':2687 '都是全量运行但只验证一个修复':961 '都有对应的知识拓展章节锚点':1905 '都用':1164 '配置文件位置':2762 '采样':1259 '里':2258 '里一行带过':1606 '里选择的学习深度补齐知识':993 '重新生成':2192 '重点展开对象':831 '重点标注':1330 '长会话':77 '长会话的':70 '问调研全部有内容':1877 '问题':844 '问题标题':1194 '问题点':660 '阈值从':738 '阶段':656,709,725 '阶段加文本行级去重':858,868 '降级为基于对话轮次数':806 '降级到对话内确认':1567 '除非本次确实无权衡决策':1910 '随后先写':458 '隔夜':84 '隔天继续时新开会话':85 '需求理解准确度':1184 '需要':1216 '需要时来翻':1225 '需要猜测用户的意思':836 '非官方':1162 '项目上下文收集':273,1289 '项目名':96,98,1395,1968,2028,2143 '项目文档':310 '项目标签':2429,2608 '项目根目录':170 '项目活跃状态':2754 '项目状态更新':2364 '项目背景':1642 '领先':203 '领域':887,1001,1723 '领域-1视频内容理解':886 '领域1':884 '领域名称':1639 '领域标签':2430,2609 '领域知识拓展':1040 '频率':943,1795 '颜色标记':607,1998 '首次为1':453 '首次创建时间':455 '首页任务队列':2457 '验收标准':1475 '验证':971,1671 '验证仪表盘':2135 '验证收尾':764 '高赞社区讨论':1124,1742,2744","prices":[{"id":"883afcff-1e2f-4cf8-af1b-858a47ac2f62","listingId":"b451ac70-a9f7-4e2d-8a24-1d1558748794","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"yike-gunshi","category":"forge-skills","install_from":"skills.sh"},"createdAt":"2026-04-24T07:03:38.539Z"}],"sources":[{"listingId":"b451ac70-a9f7-4e2d-8a24-1d1558748794","source":"github","sourceId":"yike-gunshi/forge-skills/forge-fupan","sourceUrl":"https://github.com/yike-gunshi/forge-skills/tree/main/skills/forge-fupan","isPrimary":false,"firstSeenAt":"2026-04-24T07:03:38.539Z","lastSeenAt":"2026-04-25T19:02:44.923Z"}],"details":{"listingId":"b451ac70-a9f7-4e2d-8a24-1d1558748794","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"yike-gunshi","slug":"forge-fupan","github":{"repo":"yike-gunshi/forge-skills","stars":11,"topics":["agent-skills","ai-development","claude-code","forge","skill-md","skillsmp"],"license":"mit","html_url":"https://github.com/yike-gunshi/forge-skills","pushed_at":"2026-04-25T10:22:48Z","description":"Forge — 文档驱动的 AI 辅助开发框架 | Document-driven AI development framework with 14 Skills covering brainstorm → PRD → design → engineering → QA → review → ship → retrospective","skill_md_sha":"da6362d0d2870dc1873bc90c1a0ea6bea391090f","skill_md_path":"skills/forge-fupan/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/yike-gunshi/forge-skills/tree/main/skills/forge-fupan"},"layout":"multi","source":"github","category":"forge-skills","frontmatter":{"name":"forge-fupan","description":"协作复盘与知识沉淀。在完成一段工作后，先启动本地 Fupan Workbench 让用户确认想学的知识区和深度，再按选择调研并生成结构化复盘文档、show-widget 仪表盘，并按需用 Image 2 生成学习图/决策路径图。触发方式：用户说\"总结知识\"、\"学习总结\"、\"复盘\"、\"可视化复盘\"、\"/forge-fupan\"时使用。"},"skills_sh_url":"https://skills.sh/yike-gunshi/forge-skills/forge-fupan"},"updatedAt":"2026-04-25T19:02:44.923Z"}}