会话学习技能 - 双模式学习引擎:会话范围分析当前会话,历史范围批量分析日志发现配置改进点
Analyzes conversations and historical logs to extract user preferences and automatically update configuration files across four storage layers.
npx claudepluginhub cuipengfei/promptsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
双模式学习引擎:分析交互内容,提取有价值的学习并持久化。
两种模式共享同一条处理管线(信号提取 → 四层分类 → 存储探测 → 确认 → 持久化),区别仅在于数据从哪来。
先判断数据源,再进入统一流程。
判断规则(按优先级):
注意:参数中偶然包含"历史"一词(如"分析历史片段")不触发历史模式。只有参数以"历史分析"作为显式前缀时才切换。
根据模式路由结果,选择对应的数据采集方式。两种方式的输出相同:一组待分析的原始交互数据。
回顾当前会话内容,直接进入 Phase 2。
从 agent 历史会话日志中批量采集交互数据。
核心原则: 不硬编码任何路径。利用 agent 的自认知能力自适应定位资源。
~/.<tool-name>/ 或 ~/.local/share/<tool-name>/)CLAUDE.md、AGENTS.md、.claude/CLAUDE.md、.claude/AGENTS.md,记录路径和内容摘要~/.<agent-name>/、XDG ~/.local/share/<agent-name>/)*.jsonl、*.db/*.sqlite、*.json)向用户报告发现结果(配置文件 + 相关会话数量),确认后继续。
对采集到的数据,使用以下维度提取有价值的信号。
| 维度 | 关注点 |
|---|---|
| 进展顺利 | 成功的方法、有效的解决方案、好的决策 |
| 进展不顺 | 失败的尝试、错误的方向、浪费时间的地方 |
| 明确纠正 | 用户纠正的地方、拒绝的建议、表达不满的地方。检测纠正短语——中文:"不要"/"别"/"不是…是…"/"我说的是"/"请用";英文:"don't"/"stop"/"I said"/"I meant"/"please use" |
| 推断偏好 | 沟通风格、工具偏好、代码风格、工作流习惯 |
历史数据源拥有多会话视角,额外检测以下模式:
| 信号类型 | 检测方法 |
|---|---|
| 重复纠正 | 对"明确纠正"结果按主题聚类。同一主题跨 ≥2 个会话被纠正 → 信号升级为高优先级 |
| 隐含偏好 | 用户在 ≥3 个会话中对同类选择做出相同决定(工具选择、文件命名、代码风格、沟通语言、响应长度等),但配置中无对应规则 |
| 偏好冲突 | 先提取现有配置中的规则列表。有规则但仍被纠正 → 规则表述不清或已过时,需更新 |
| 过时规则 | 提取配置文件中所有具体行为规则(排除身份性/通用性规则)。最近 10+ 个会话中从未触发且不属于低频场景 → 标记为可能过时 |
| 负面情绪 | 搜索情绪信号词:连续感叹号(≥2)、全大写词(≥3字母)、"又"/"again"/"为什么总是"/"怎么又"。仅标记相关会话片段供人工审查,不直接生成建议——情绪信号需人工判断根因 |
对每个提取的信号,记录:
| 层级 | 核心问题 | 特性 |
|---|---|---|
| Layer 1: 用户配置 | "每个会话都需要知道什么?" | 跨项目、身份性、自动加载 |
| Layer 2: 项目根配置 | "这个项目整体需要知道什么?" | 项目级、版本控制 |
| Layer 3: 子模块配置 | "这个子模块需要知道什么?" | 子模块特定、就近原则 |
| Layer 4: 情境记忆 | "特定情境下需要召回什么?" | 情境性、按需查询 |
对于每个学习项,依次问:
│
├─ Q1: 是否是每个新会话、跨所有项目都需要的信息?
│ ├─ 是 → Layer 1 用户配置
│ └─ 否 → 继续 Q2
│
├─ Q2: 是否与当前项目整体相关?
│ ├─ 是 → Layer 2 项目根配置
│ └─ 否 → 继续 Q3
│
├─ Q3: 是否与项目中某个特定子模块/子目录相关?
│ ├─ 是 → Layer 3 子模块配置(写入最近的子目录配置文件)
│ └─ 否 → 继续 Q4
│
└─ Q4: 是否是特定情境才需要的经验/知识/解决方案?
└─ 是 → Layer 4 情境记忆
关键区分:
| 学习内容 | 层级 | 理由 |
|---|---|---|
| "用户偏好 bun 而非 npm" | L1 用户 | 跨项目的工具选择 |
| "用户偏好简洁响应" | L1 用户 | 跨项目的风格偏好 |
| "用户偏好中文交流" | L1 用户 | 跨项目的语言设置 |
| "这个项目有 19 个独立插件" | L2 项目根 | 项目整体结构 |
| "插件 plugin.json 不要用 $schema 字段" | L2 项目根 | 项目通用规范 |
| "oc-tweaks 发布必须走 CI,禁止 npm publish" | L3 子模块 | oc-tweaks 子模块特定 |
| "openspec proposal 必须包含 Why 和 What Changes" | L3 子模块 | openspec 子模块特定 |
| "GitHub Code Search 按相关性排序" | L4 情境记忆 | 特定技术的经验教训 |
| "并行 API 调用用 ThreadPoolExecutor" | L4 情境记忆 | 特定场景的解决方案 |
在持久化前,先探测当前环境可用的存储后端。不假设任何特定插件或 MCP 存在。
L1/L2/L3 本质相同:都是扫描 CLAUDE.md 和 AGENTS.md,只是扫描层级不同。不硬编码具体路径——不同 agent 工具的用户级目录各异,由 agent 根据自身环境自适应探测。
| 层级 | 扫描范围 |
|---|---|
| L1 用户配置 | 用户级 agent 配置目录(如 ~/.<agent-name>/)下的 CLAUDE.md、AGENTS.md |
| L2 项目根配置 | 项目根目录及其 .claude/ 子目录下的 CLAUDE.md、AGENTS.md |
| L3 子模块配置 | 项目子目录中已存在的 CLAUDE.md、AGENTS.md(排除根目录、node_modules 等) |
统一规则:
按优先级探测:
*.md 文件)→ 用 Read/Edit/Write.memory/ 目录,以 markdown 文件存储原则: 探测到什么用什么。不要求用户安装任何额外依赖。
## 学习摘要
### L1 用户配置(写入 {探测到的文件名})
- [学习项 1]
### L2 项目根配置(写入 {探测到的文件名})
- [学习项 1]
### L3 子模块配置(写入 {探测到的文件名})
- [子模块知识 1]
### L4 情境记忆(写入 {探测到的后端描述})
- [经验 1]
### 标记过时(如有)
- [规则 1] — 原因:最近 N 个会话中从未触发
### 待确认(如有)
- [发现 1] — 需要用户判断:[具体问题]
使用 AskUserQuestion 让用户逐条审核:
用户可选择全部、部分或跳过。
确认后:
patterns.md),保持简洁,用 bullet points仅在使用了支持图谱/实体的记忆工具时执行。文件系统后端不需要。
数据已干净则说明"已检查,无需整理"。
| 场景 | 处理方式 |
|---|---|
| 配置文件不存在 | 创建并添加适当头部 |
| 子模块无配置文件 | 归入 Layer 2 |
| 情境记忆后端不可用 | 降级到下一优先级后端 |
| 所有后端都不可用 | 使用兜底方案 |
| 用户拒绝所有项目 | 确认并不持久化 |
| 找不到会话历史(历史数据源) | 报告搜索路径和结果,请用户指定位置 |
| 会话格式无法解析(历史数据源) | 读取少量样本推断结构;失败则跳过,继续处理其他会话源,最终报告跳过清单及原因 |
| 会话数据过大(历史数据源) | 严格遵守 20 会话上限,优先最近的 |
| 无有意义的模式 | 如实报告"未发现明显的改进信号",不生造建议 |
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.