learninglisted
Install: claude install-skill xiaobei930/cc-best
# 持续学习技能
本技能用于从开发会话中提取可复用的模式和知识,实现持续学习和改进。
## 快速参考
- **核心职责**: 从开发会话中提取可复用模式(错误解决、调试技巧、变通方案、项目知识)
- **学习模式**: 错误解决模式、调试技巧、变通方案、项目特定知识
- **本能系统**: 观察 → 记录 → 本能 → 演化(置信度 0.3~0.9)
- **自动化**: 会话评估 Hook(`evaluate-session.js`)+ 观察 Hook(`observe-patterns.js`)
- **子文件引用**:
- [extraction-guide.md](extraction-guide.md) — 会话学习方法论(知识分类、置信度系统)
<!-- 详细内容 -->
## 目录
- [子文件](#子文件)
- [触发条件](#触发条件)
- [学习模式类型](#学习模式类型)
- [评估清单](#评估清单)
- [知识库结构](#知识库结构)
- [知识文档模板](#知识文档模板)
- [自动化集成](#自动化集成)
- [本能系统(进阶)](#本能系统进阶)
- [最佳实践](#最佳实践)
## 子文件
- [extraction-guide.md](extraction-guide.md) - 会话学习方法论(知识分类、置信度系统)
## 触发条件
- 会话结束时评估
- 发现新的调试���巧
- 解决了复杂问题
- 创建了可复用的解决方案
- 学到了项目特定知识
## 学习模式类型
### 1. 错误解决模式
当解决了一个错误,记录:
- 错误信息
- 根本原因
- 解决方案
- 预防措施
````markdown
## 错误: Cannot read property 'xxx' of undefined
### 场景
访问嵌套对象属性时
### 根本原因
异步数据未加载完成就访问
### 解决方案
```typescript
// 使用可选链
const value = obj?.nested?.property;
// 或提供默认值
const value = obj?.nested?.property ?? defaultValue;
```
````
### 预防
- 始终使用可选链访问可能为空的属性
- 在组件中添加加载状态检查
````
### 2. 调试技巧
```markdown
## 技巧: 调试 Next.js API 路由
### 场景
API 路由返回意外结果
### 技巧
1. 在 route.ts 开头添加日志
```typescript
export async function GET(request: NextRequest) {
console.log('[API] GET /api/xxx', {
url: request.url,
headers: Object.fromEntries(request.headers)
})
// ...
}
````
2. 使用 Postman/curl 直接测试
3. 检查中间件是否拦截
````
### 3. 变通方案
```markdown
## 变通: Prisma 不支持的复杂查询
### 场景
需要执行 Prisma 不原生支持的 SQL
### 变通方案
```typescript
// 使用 $queryRaw 执行原生 SQL