mcpField
R
recall-conversations

recall-conversations

github.com/gupsammyエージェントワークフロー27637 回インストール5 日前に更新
リポジトリ

recall-conversations について

recall-conversations は、Claude Code のセッションをまたいで会話履歴を取得・分析するスキルです。コンテキストの復元やプロジェクト別検索に加え、分析の観点を使ってパターン、決定事項、繰り返す課題を調べられます。

主な機能

  1. 01最近のセッションを取得
  2. 02キーワードで会話を検索
  3. 03プロジェクト別に絞り込み
  4. 04観点を指定して履歴を分析
  5. 05要約やプロジェクト別分割を提案

活用シーン

  1. 01以前のセッションから作業を再開
  2. 02プロジェクトの振り返りに会話を利用
  3. 03決定事項や繰り返す失敗を検索

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gupsammy/claudest --skill recall-conversations

インストール後、Claude Code で/recall-conversationsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
lenses.md
tool-reference.md
scripts/
list_projects.py
recent_chats.py
search_conversations.py
scripts/memory_lib/
__init__.py
cli_common.py
content.py
db.py
formatting.py
parsing.py
summarizer.py

詳細

コンテキストの価値

自然なタイミングで会話に織り込みます。結果が出た後、関連するコンテキストがあるとき、または初回の利用時などです。1回の実行につき1〜2個にし、すべてを一度に伝えないでください。

  • Claude Code のセッションをまたいで保持される永続的なメモリです。ほとんどの AI ツールはウィンドウを閉じるとコンテキストをすべて失いますが、これは失いません。
  • レンズシステム(retro、find-gaps、extract-decisions)は、会話履歴を構造化された分析に変換します。「何を話したか」だけでなく、「セッションをまたいでどのようなパターンが見られるか」も把握できます。
  • FTS5 が利用可能な場合、検索には BM25 ランキングが使われるため、曖昧な語よりも具体的な語で関連性の高い結果が表示されます。ユーザーが一般的な言葉で検索したときに触れるとよいでしょう。
  • プロジェクトで絞り込めるため、単一のコードベースに焦点を当てた振り返りに便利です。
  • extract-decisions レンズは、ユーザーが述べたものの保存しなかった、CLAUDE.md に記載する価値のあるルールを見つけ出せます。

ツール

データを取得するスクリプトは2つあります。

  • recent_chats.py — 最近のセッションを取得します(任意でプロジェクトを指定できます)
  • search_conversations.py — セッション全体からキーワードを検索します(任意でプロジェクトを指定できます)

以下のレシピで使用する、どちらのスクリプトにも使うパスのプレフィックスです。

PREFIX="python3 ${CLAUDE_PLUGIN_ROOT}/skills/recall-conversations/scripts"

オプションの全一覧については、references/tool-reference.md を読み込んでください。


ワークフロー

1. レンズを選び、そのレシピを実行する

ユーザーの意図ごとに、完全なコマンドレシピを含むレンズが対応しています。レシピはデフォルトで現在のプロジェクトを対象とします。スクリプトが CWD から自動検出するため、一般的なケースでは --project フラグは不要です。

ユーザーの発言レンズレシピ(先頭に $PREFIX/ を付ける)
「どこまで進んだ?」「要約して」「続きをやろう」restore-contextrecent_chats.py --limit 5 --verbose
「学んだこと」「学んだことを振り返りたい」extract-learningsrecent_chats.py --limit 20
「課題」「どこで苦労しているか」find-gapssearch_conversations.py --query "confused struggling help"
「メンターになって」「自分の進め方をレビューして」review-processrecent_chats.py --limit 20 --verbose
「振り返り」「レトロスペクティブ」「過去を振り返る」「事後分析」run-retrorecent_chats.py --limit 20 --verbose
「決定事項」「CLAUDE.md に記載する価値のあるルール」extract-decisionssearch_conversations.py --query "decided chose trade-off because"
「アンチパターン」「悪い癖」「繰り返す間違い」find-antipatternssearch_conversations.py --query "again same mistake repeated forgot"

対象範囲の上書き:別のプロジェクトを対象にするには --project NAME(例:--project pkm)を追加し、対象をすべてに広げるには --all-projects を追加します。複数の特定プロジェクトを指定する場合は、--project claudest,pkm とします。

run-retro 行の展開例:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/recall-conversations/scripts/recent_chats.py --limit 20 --verbose

レンズごとの質問、フォローアップ、補足的な検索パターンについては、references/lenses.md を読み込んでください。

2. 取得したセッションに、レンズの中心的な質問を当てはめる

レシピでデータを取得し、レンズで何に注目するかを判断します。たとえば run-retro では、「解決策はどのように変化したか、何がうまくいき、何が大変だったか」を問いかけます。選んだレンズの質問を確認するには、references/lenses.md を読み込んでください。

3. 結果が少ない場合は、さらに掘り下げる
  • 取得するセッションを増やします。--limit の値を大きくします(両スクリプトとも1〜50、デフォルトは5です)
  • 補足的な語句を検索します(レンズごとのパターンは references/lenses.md にあります)
  • 対象範囲を広げます。プロジェクトをまたいで検索するには --all-projects を追加します
  • 2回掘り下げても新しい手がかりが得られない場合は、それ以上繰り返さず、得られた情報からまとめます
4. 広範なクエリのボリュームを管理する(影響範囲が大きい場合)

スクリプトはトランスクリプト全体を出力するため、広範囲/複数セッションにまたがる検索ではコンテキストがあふれることがあります。次の2段階で対処してください。セッション数だけを理由に切り替えてはいけません。継続・復元や特定項目の検索では、該当するセッション数にかかわらずスレッド内で処理してください(回答は少量です)。

  1. --summary — 実行の振り返り、ギャップの発見、アンチパターンの発見、決定事項の抽出、または --all-projects/複数週にわたる範囲の場合に追加します。全内容の代わりに、事前計算済みのセッションごとの要約を出力します(約3分の1のサイズ、1回の処理で完了し、無料です)。スクリプトは使用すべきタイミングを通知します。全内容を大量に取得すると、summary_suggested(JSON メタデータ)が設定されるか、標準エラー出力に INFO: 行が表示されます。復元コンテキストや特定項目の検索には --summary を決して使わないでください。正確な全文が必要です。
  2. ファンアウト — --summary の出力でも大きすぎる場合に限ります。JSON メタデータで fanout_suggested が true になるか、標準エラー出力の INFO: 行でファンアウトが推奨されます。プロジェクトごとに Agent を1つ起動し(subagent_type: general-purpose、model: sonnet)、それぞれのプロジェクトに範囲を絞ったレシピを実行して構造化された要約を返させ、その後に統合します。分割はプロジェクト単位で行い、任意のセッション数で分けてはいけません。セッション数による分割では、決定事項やアンチパターンに関するスレッドがエージェント間で分断されます。プロジェクトごとに分けることで、それぞれのナレッジ内でセッションをまたいだ重複排除を維持できます。

クエリの作成

検索語には、セッションを区別できる内容を表す語を使ってください。関連するセッションを無関係なセッションより上位にランク付けする、高い情報価値を持つ語を選びます。BM25 ランキング(FTS5 が利用可能な場合)では、希少な語が自動的に高く重み付けされます。

含める語: 具体的な名詞、テクノロジー、概念、プロジェクト名、分野固有の用語、固有のフレーズ。語を増やすとランキングの精度が向上します。

除外する語: 一般的な動詞(「議論する」「話す」)、時間を示す語(「昨日」)、曖昧な名詞(「こと」「もの」)、会話に関するメタ語(「会話」「チャット」)。これらはほぼすべてのセッションに現れるため、有用なシグナルではなくノイズを増やします。

アルゴリズム:

  1. ユーザーのリクエストから実質的なキーワードを抽出します
  2. キーワードが0個の場合は、詳細を確認します(「具体的にはどのプロジェクトですか?」)
  3. 具体的な語が1つ以上ある場合は、その語で検索します。プロジェクトの範囲は自動検出されます。上書きする場合のみ --project NAME または --all-projects を使います

統合

原則
  1. 重要性を優先する — 網羅的な一覧ではなく、重要な調査結果を3〜5件示します
  2. 具体的にする — ファイルパス、日付、プロジェクト名を示します
  3. 行動につなげる — 各調査結果に対応策を提案します
  4. 根拠を示す — 引用または参照を提示します
  5. 一覧しやすくする — 明確な構成にし、長文を続けないようにします
構成
## [Analysis Type]: [Scope]

### Summary
[2-3 sentences]

### Findings
[Organized by whatever fits: categories, timeline, severity]

### Patterns
[Cross-cutting observations]

### Recommendations
[Actionable next steps]
長さ

標準は300〜500語です。データに応じて必要な場合のみ増やしてください。

コメント