洞察提取技能Skill insight-extraction

该技能用于从完成的编码会话中提取可操作的见解,帮助未来会话避免错误、遵循模式并加快代码库理解。关键词:洞察提取、编码会话、可操作知识、软件开发、模式学习、错误预防。

其他 0 次安装 0 次浏览 更新于 3/10/2026

name: insight-extraction description: ‘从完成的编码会话中提取可操作的见解。在会话完成时使用,以捕获未来会话的学习内容。’ version: 1.0.0 model: sonnet invoked_by: both user_invocable: true tools: [Read, Write, Bash, Glob, Grep] best_practices:

  • 提取可操作的知识,而不是日志
  • 每个见解都应帮助未来会话做得更好
  • 具体到文件、模式和陷阱 error_handling: graceful streaming: supported source: auto-claude verified: false lastVerifiedAt: 2026-02-19T05:29:09.098Z

洞察提取技能

概述

分析完成的编码会话,并为内存系统提取结构化的学习内容。见解帮助未来会话避免错误、遵循既定模式并更快理解代码库。

核心原则: 提取可操作的知识,而不是日志。每个见解都应帮助未来会话做得更好。

使用时机

总是:

  • 完成编码任务后
  • 修复漏洞后
  • 发现新模式后
  • 尝试失败后(特别有价值)

例外:

  • 无学习内容的琐碎更改
  • 仅文档更改

铁律

非琐碎工作的会话结束必须进行洞察提取

非琐碎会话应在上下文丢失前捕获学习内容。

所需输入

要提取见解,您需要:

  1. Git diff - 文件如何更改
  2. 任务描述 - 正在实施的内容
  3. 尝试历史 - 之前的尝试(如果有),使用了哪些方法
  4. 会话结果 - 成功或失败

工作流程

阶段 1:收集会话数据

# 获取更改的差异
git diff HEAD~1 --stat
git diff HEAD~1

# 获取提交消息
git log -1 --pretty=format:"%s%n%n%b"

# 获取修改的文件列表
git diff HEAD~1 --name-only

阶段 2:分析文件见解

对于每个修改的文件,提取:

  • 目的:该文件扮演什么角色?
  • 所做更改:进行了哪些修改?关注“为什么”而不仅仅是“什么”
  • 使用的模式:应用了哪些编码模式?
  • 陷阱:任何文件特定的陷阱?

好例子:

{
  "path": "src/stores/terminal-store.ts",
  "purpose": "使用immer中间件管理终端会话状态的Zustand存储",
  "changes_made": "添加了setAssociatedTask操作以将终端与任务关联",
  "patterns_used": ["Zustand操作模式", "immer状态突变"],
  "gotchas": ["状态更改必须通过操作进行,而非直接突变"]
}

坏例子(太模糊):

{
  "path": "src/stores/terminal-store.ts",
  "purpose": "一个存储文件",
  "changes_made": "添加了一些代码",
  "patterns_used": [],
  "gotchas": []
}

阶段 3:提取模式

仅提取可重用的模式:

  • 必须适用于不止这一个案例
  • 包括何时/何处应用该模式
  • 引用代码库中的具体示例

好例子:

{
  "pattern": "在具有onClick处理程序的容器内的交互元素上使用e.stopPropagation()",
  "applies_to": "任何嵌套在具有点击处理的父元素内的可点击元素",
  "example": "Terminal.tsx头部 - 下拉菜单需要stopPropagation以防止焦点窃取"
}

阶段 4:文档化陷阱

必须具体可操作

  • 包括触发问题的原因
  • 包括如何解决或预防
  • 避免通用建议(如“小心X”)

好例子:

{
  "gotcha": "终端头部onClick窃取子交互元素的焦点",
  "trigger": "向终端头部添加按钮/下拉菜单而没有stopPropagation",
  "solution": "在子元素的onClick处理程序中调用e.stopPropagation()"
}

阶段 5:文档化方法结果

捕获成功或失败的学习内容:

  • 如果成功:是什么让这种方法有效?关键是什么?
  • 如果失败:为什么失败?什么方法会更好?
  • 尝试的替代方案:尝试了哪些其他方法?

这有助于未来会话从过去的尝试中学习。

阶段 6:生成推荐

具体、可操作的建议,用于未来工作:

  • 必须可由未来会话实施
  • 应具体于这个代码库,而非通用
  • 关注下一步或需要注意的事项

好: “当向终端头部添加更多控件时,遵循本会话中的下拉菜单模式 - 使用stopPropagation并根据头部定位”

坏: “编写好代码”或“彻底测试”

阶段 7:输出结构化见解

创建结构化见解输出:

# 会话见解:[任务名称]

## 日期

[时间戳]

## 任务

[正在实施的描述]

## 结果

[成功/失败]

## 文件见解

### [文件路径]

- **目的**:[该文件的作用]
- **更改**:[更改了什么及原因]
- **模式**:[使用的模式]
- **陷阱**:[需要注意的事项]

## 发现的模式

### [模式名称]

- **模式**:[描述]
- **适用于**:[何时使用]
- **示例**:[文件或代码引用]

## 发现的陷阱

### [陷阱名称]

- **问题**:[需要避免什么]
- **触发**:[什么导致它]
- **解决方案**:[如何处理]

## 方法分析

### 成功之处

[成功方法的描述]

### 失败之处(如适用)

[失败方法及原因的描述]

### 尝试的替代方案

[其他尝试方法的列表]

## 未来会话推荐

1. [具体推荐 1]
2. [具体推荐 2]

保存到.claude/context/memory/learnings.md(追加)。

处理边缘案例

空或最小差异

如果差异非常小或为空:

  • 如果可以推断,仍提取文件目的
  • 注意会话进行了最小更改
  • 关注下一步的推荐

失败会话

如果会话失败:

  • 关注为什么失败 - 这是最有价值的见解
  • 提取从失败中学到的内容
  • 推荐应解决下次如何成功

多文件更改

  • 优先处理最重要的3-5个文件
  • 跳过样板更改(如package-lock.json等)
  • 关注功能核心的文件

验证清单

完成洞察提取前:

  • [ ] Git差异已分析
  • [ ] 关键文件见解已提取
  • [ ] 可重用模式已文档化
  • [ ] 陷阱已文档化,包括触发和解决方案
  • [ ] 方法结果已文档化
  • [ ] 推荐具体且可操作
  • [ ] 见解已保存到内存文件

常见错误

太模糊

为什么错误: “修复了漏洞”对任何人都没有帮助。

正确做法: “通过添加清理函数修复了useEffect中的竞态条件。模式:始终从异步效果返回清理。”

通用建议

为什么错误: “测试您的代码”不可操作。

正确做法: “更改存储逻辑后运行npm test src/stores - 测试捕获状态管理错误。”

缺少上下文

为什么错误: 未来会话无法理解原因。

正确做法: 包括文件路径、函数名称和具体场景。

与其他技能的集成

此技能适用于:

  • session-handoff:在交接文档中使用见解
  • summarize-changes:用见解补充更改摘要
  • debugging:从调试会话中提取见解

内存协议

开始前: 读取.claude/context/memory/learnings.md

完成后:

  • 新模式 -> .claude/context/memory/learnings.md
  • 发现的问题 -> .claude/context/memory/issues.md
  • 做出的决策 -> .claude/context/memory/decisions.md

假设中断:如果不在内存中,则未发生。