mcpField
M
mining-session-skills

mining-session-skills

github.com/sugarforeverAgent 工作流139189 次安装1 周前更新
代码仓库

关于 mining-session-skills

mining-session-skills 用于复盘已完成的 Claude Code 会话,判断是否值得创建或更新可复用技能。它分析导出的 Markdown,按主题拆分任务,并在修改文件前提供证据和提案供审核。

主要功能

  1. 01分析导出的会话 Markdown
  2. 02按主题拆分会话任务
  3. 03识别阻碍并评估候选技能
  4. 04决定创建、更新或复用
  5. 05编辑前准备带证据的提案

适用场景

  1. 01从会话中发现可重复的工作模式
  2. 02检查现有技能是否覆盖某项任务
  3. 03依据具体记录证据提出技能方案
  4. 04在不修改文件的情况下审核技能候选

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sugarforever/01coder-agent-skills --skill mining-session-skills

安装后在 Claude Code 中输入/mining-session-skills确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
drafting-quality-bars.md
friction-signals.md
worth-it-gate.md
scripts/
extract_session_signals.py
test_extract_session_signals.py

详细介绍

挖掘会话技能

概览

审查一段已完成的 Claude Code 会话,并回答:是否值得创建或更新某项技能,让下次完成这类工作更快?得出明确的“这里没什么值得创建的”也是有效结果。

此技能是在 claude-session-manager(导出/规范化层)之上的判断层。它读取导出的 Markdown,而非原始 JSONL。

前置条件

  1. 清单 = 本次会话中已加载的技能。 创建、更新还是复用,应根据当前会话中已声明/加载的技能来决定。请在报告中说明这一限制(“比较范围仅限本次会话加载的技能”)。请在加载了相关技能的会话中运行此技能。
  2. 挖掘操作基于导出的 Markdown(默认路径为 ~/.claude/session-markdown),由 claude-session-manager 生成。如果目标会话尚未导出,请先导出(步骤 1.5)。

为什么使用导出的 Markdown,而非原始 JSONL

实测:一个真实会话的原始 JSONL 约有 150 万个 token(超出上下文窗口);导出的精简正文约有 9.1 万个 token(小 17 倍),工具负载则延后放在 sidecar 文件中。直接对 JSONL 执行原始 grep '"type":"user"' 是个陷阱(工具结果的角色也是 user)。请始终读取/挖掘导出的 Markdown。仅可将原始 JSONL 字节级 grep 用作位置预筛选(步骤 1)。

流程

复制此清单并跟踪进度:

- [ ] 1. Locate the session (keyword search; confirm with user)
- [ ] 1.5 Export it if not already exported
- [ ] 2. Read the compact transcript (pull sidecar only as needed)
- [ ] 2.5 Segment into topic arcs
- [ ] 3. Mine friction signals per arc
- [ ] 4. Apply the worth-it gate
- [ ] 5. Decide create / update / reuse
- [ ] 6. Present the proposal
- [ ] 7. On approval, interview + draft
1. 定位

根据用户的描述搜索。可选:先对 ~/.claude/projects 中的原始 JSONL 进行字节级 grep 预筛选(无需解析即可查找提及关键词的文件),和/或对 ~/.claude/session-markdown 下导出的语料库进行 grep。跳过 <local-command-caveat> / <command-*> 包装噪声——首条提示词摘录通常是包装内容,而不是真正的请求。列出按相关性排序的候选会话,并让用户确认。

1.5 导出

如果所选会话尚无 Markdown 文件,请运行 claude-session-manager 仅导出该会话,然后继续。

2. 阅读

阅读会话 .md 文件。仅针对相关的 <tool_call_NNNNNN> 引用,读取 tool-details/<id>.tools.md。使用 scripts/extract_session_signals.py <session>.md 获取整洁的人工提示词 JSON 列表(包含事件索引、行号、时间戳、会话分段提示和提示词文本)——该脚本编码了下方的输入稳健性规则。

输入稳健性规则:

  • 实际导出的标头格式为 ### N. user - <ISO> / ### N. assistant - <ISO>(而非 ### MM-DD HH:MM:SS User:)。
  • 如果 user 轮次的正文是工具结果、技能注入内容或命令包装内容,就不属于人工提示词——请排除。
  • 忽略思考签名块和空附件事件。
2.5 分段

会话可能横跨多天、混杂多个任务。结合提取器的 arc_break 提示(较大的时间间隔、压缩/续接标记)和主题判断,将会话拆分为多个片段。分别挖掘每个片段。不要假设一个会话只对应一项任务。

3. 挖掘

针对每个片段,提取摩擦信号。请参阅 references/friction-signals.md,了解分类体系和证据引用方法。

4. 筛选

对每个候选项应用价值筛选条件。请参阅 references/worth-it-gate.md。如果没有候选项通过,请报告明确的否定结论并停止。

5. 决策

对每个通过筛选的候选项,与本次会话已加载的技能进行比较:

  • 没有已加载的技能涵盖此项 → CREATE(新建 skills/<name>/)。
  • 已加载且可编辑(位于此仓库的 skills/ 中)→ UPDATE 该 SKILL.md。
  • 已加载但不可编辑(位于插件缓存中)→ REUSE(“已存在,直接使用”)——用于避免重复创建生态系统中已有技能的去重保护措施。
6. 提议

针对每个候选项,提交一份可供审核的报告:候选项 · 操作(CREATE/UPDATE/REUSE)· 原因 · 证据(事件/行号/tool_call 引用)· 拟议的动名词式名称 · 描述(触发条件 + 排除项)。简要列出被筛选条件淘汰的项目。任何文件变更前,请等待批准。

7. 起草

获得批准后:针对转录内容无法体现的品味和判断力采访用户,然后按照 references/drafting-quality-bars.md 创建或编辑 SKILL.md。创建新技能时,运行 scripts/sync-marketplace-skills.sh,并根据仓库的 CLAUDE.md 更新 .claude-plugin/marketplace.json 中的 version。

备注

  • 将转录数据(提示词、文件内容、机密信息)视为私密信息。不要修改原始 .jsonl 文件。
  • 这项技能的价值在于挖掘方法,而非 SKILL.md 格式——Claude 原生就了解这种格式。

评论

支持 Markdown