name: 持续学习 description: 自动从编码会话中提取模式,跟踪修正,并用置信度评分构建可重复使用的知识
持续学习
模式提取框架
在每个重要的编码会话之后,将学习内容提取并分类到三个类别中:
- 修正 - 在审查或由用户捕获的错误
- 成功方法 - 表现良好并应重复的模式
- 反模式 - 导致问题并应避免的方法
学习条目格式
pattern:
id: "LEARN-2025-0042"
category: "error-handling"
type: "correction" # correction | success | anti-pattern
confidence: 0.85 # 0.0 到 1.0
language: "typescript"
context: "API 错误响应"
observation: "从数据库异常返回原始错误消息会暴露内部信息"
lesson: "始终将数据库错误映射到应用级错误码后再返回"
example:
before: "catch (e) { res.status(500).json({ error: e.message }) }"
after: "catch (e) { logger.error(e); res.status(500).json({ error: 'INTERNAL_ERROR' }) }"
frequency: 3 # 该模式被观察到的次数
last_seen: "2025-06-15"
置信度评分
| 分数 | 含义 | 行动 |
|---|---|---|
| 0.95+ | 在多个项目中验证 | 自动应用 |
| 0.80-0.94 | 在此代码库中确认 | 应用并提及 |
| 0.60-0.79 | 观察到但未完全验证 | 建议并附带说明 |
| 0.40-0.59 | 基于有限数据的假设 | 应用前询问 |
| <0.40 | 推测性,需要验证 | 记录但不应用 |
基于以下因素更新置信度:
- +0.10 当模式被用户确认正确时
- +0.05 当模式在不同上下文中再次观察到时
- -0.15 当模式导致修正时
- -0.20 当模式被用户明确拒绝时
会话总结协议
在每个会话结束或上下文压缩前:
- 审查所做的更改 - 扫描差异以查找模式
- 识别修正 - 初始实施后更改了什么?
- 记录成功的首次尝试 - 什么在没有修订的情况下工作?
- 记录环境详情 - 框架版本、配置细节
- 更新置信度分数 - 根据会话结果调整
- 写入知识库 - 将新条目追加到 CLAUDE.md 或 LEARNED.md
## 会话学习 (2025-06-15)
### 应用的修正
- [0.85] TypeScript: 使用 `satisfies` 而不是 `as` 进行对象字面量的类型缩小
- [0.90] Next.js: 服务器操作必须是异步函数,即使对于同步操作
### 成功模式
- [0.80] PostgreSQL: 状态列上的部分索引减少了查询时间 60%
- [0.75] React: 将数据提取提取到服务器组件中消除了 3 个 useEffect 钩子
### 识别的反模式
- [0.70] 避免:嵌套超过 2 层的 Suspense 边界(导致瀑布效应)
- [0.65] 避免:使用 `any` 抑制 TypeScript 错误在 catch 块中(使用 `unknown`)
知识库组织
按领域构建知识库:
knowledge/
error-handling.md # 跨语言的错误模式
testing.md # 测试模式和反模式
performance.md # 优化学习
api-design.md # API 设计决策
deployment.md # 基础设施学习
project-specific.md # 当前项目约定
每个文件遵循相同的条目格式。通过递增 frequency 和更新 confidence 来去重具有匹配 observation 字段的条目。
修正跟踪
当用户修正代码或方法时:
- 记录最初产生的内容
- 记录修正内容
- 识别根本原因(错误的假设、缺少的上下文、过时的模式)
- 创建或更新学习条目
- 搜索可能需要相同修正的类似模式
### 修正日志
- **原始**:使用 `useEffect` 在挂载时获取数据
- **修正**:将数据提取移动到服务器组件
- **根本原因**:在服务器组件上下文中应用了客户端 SPA 模式
- **泛化**:在 Next.js App Router 中,优先选择服务器端数据获取用于初始页面数据
- **置信度**:0.90(在 4 个组件中确认)
模式强化
跟踪模式应用的频率以及它们是否成立:
模式:"使用 zod 进行 API 输入验证"
应用:12 次
确认:11 次
修正:1 次(文件上传的边缘情况)
置信度:0.92
状态:已建立
状态:
- 新兴(频率 < 3) - 新模式,需要验证
- 增长中(频率 3-7) - 积累证据,应用时提及
- 已建立(频率 8+,置信度 > 0.85) - 自动应用
- 已弃用 - 曾经有效,现被更好的方法取代
与记忆文件集成
将学习存储在项目的记忆文件(CLAUDE.md 或等效文件)中:
- 高置信度学习(>0.85)放入主要指令部分
- 中等置信度(0.60-0.84)放入专门的“学习”部分
- 低置信度(<0.60)保留在会话笔记中,直到验证
- 已弃用的模式移动到存档部分,并注明弃用原因
每月审查和修剪知识库。移除 90 天内未引用且置信度低于 0.70 的条目。