mcpField
M
mining-session-skills

mining-session-skills

github.com/sugarforeverエージェントワークフロー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 セッションを 1 つ確認し、次回同種の作業をより速く進めるために、作成または更新する価値のあるスキルがあるか判断します。「作成する価値のあるものはありません」という明確な結論も有効です。

このスキルは、claude-session-manager(エクスポート/正規化レイヤー)の上位にある判断レイヤーです。生の JSONL ではなく、エクスポートされた Markdown を読み込みます。

前提条件

  1. スキル一覧 = このセッションで読み込まれたスキル。 作成・更新・再利用の判断は、実行中のセッションで告知/読み込み済みのスキルに照らして行います。この制限をレポートに明記してください(「比較対象はこのセッションで読み込まれたスキルに限られます」)。関連スキルが読み込まれている環境でこのスキルを実行してください。
  2. 抽出にはエクスポートされた Markdown を使用します(既定では ~/.claude/session-markdown)。これは claude-session-manager によって生成されます。対象のセッションがまだエクスポートされていない場合は、先にエクスポートします(手順 1.5)。

生の JSONL ではなく、エクスポートされた Markdown を使う理由

計測例:実際のセッションの生の JSONL は約 1.5M トークン(コンテキストウィンドウを超過)でしたが、エクスポートされたコンパクトな本文は約 91k トークン(17 倍小さい)で、ツールのペイロードはサイドカーに分離されていました。JSONL に対して grep '"type":"user"' をそのまま実行するのは落とし穴です(ツール結果も role: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 ヒント(大きな時間間隔、圧縮/継続マーカー)とトピックの判断を使って、セッションを複数のまとまりに分割します。それぞれのまとまりを個別に抽出してください。セッションにタスクが 1 つだけ含まれるとは限りません。

3. 抽出

まとまりごとに、摩擦のシグナルを抽出します。分類体系と証拠の引用方法については、references/friction-signals.md を参照してください。

4. 判定

各候補に価値判断の基準を適用します。references/worth-it-gate.md を参照してください。基準を満たすものがなければ、明確に「該当なし」と報告して終了します。

5. 決定

残った候補ごとに、このセッションで読み込まれたスキルと比較します。

  • 対応する読み込み済みスキルがない → CREATE(新しい skills/<name>/)。
  • 読み込み済みで編集可能(このリポジトリの skills/ 内)→ 該当する SKILL.md を UPDATE。
  • 読み込み済みだが編集不可(プラグインのキャッシュ内)→ 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 は形式を標準で把握しています。

コメント