oma-recap
Claude、Codex、Gemini、Qwen、Cursorなど複数のAIツールの会話履歴を分析し、テーマ別の日次・期間ごとの作業サマリーを生成します。日付や時間範囲でフィルタリングすることもできます。
description の原文を見る
Analyze conversation histories from multiple AI tools (Claude, Codex, Gemini, Qwen, Cursor) and generate themed daily/period work summaries. Filter by date or time window.
SKILL.md 本文
AI ツール会話履歴サマリー
指定された期間の AI ツール会話履歴を分析し、テーマ別の作業サマリーを生成します。
スケジューリング
目的
指定された日付またはウィンドウの AI ツール会話履歴を収集し、テーマ別かつプロジェクト指向のレポートに合成し、Markdown 出力として保存します。
インテント署名
- ユーザーが日次レコップ、週次/月次サマリー、スタンドアップノート、作業ログ、ツール使用パターン、または AI 会話履歴分析をリクエストします。
- ユーザーが会話履歴を生の時系列ログではなく、作業内容でグループ化されたものを望みます。
使用する場合
- 1 日または期間の作業活動をサマリーする場合
- 複数の AI ツール全体の作業フローの全体像を理解したい場合
- セッション間でのツール切り替えパターンを分析する場合
- 日次スタンドアップ、週次レトロスペクティブ、または作業ログを準備する場合
使用しない場合
- Git コミットベースのコード変更レトロスペクティブ ->
oma retroを使用 - リアルタイムエージェント監視 ->
oma dashboardを使用 - 生産性メトリクス ->
oma statsを使用
予想される入力
- 日付、相対日付、時間ウィンドウ、またはツールフィルター
oma recap --jsonまたは代替ソースを通じて利用可能な会話履歴- 望ましい日次または複数日のレコップスコープ
予想される出力
.agents/results/recap/{date}.mdまたは範囲ファイル名に保存された Markdown レコップ- TL;DR、概要、テーマ/プロジェクト、その他またはサイドプロジェクト、ツール使用パターン
- 設定された応答言語でのユーザー向けサマリー
依存関係
oma recap --json- オプションの Claude フォールバック履歴(
~/.claude/history.jsonl) - 言語動作の設定ファイル
.agents/oma-config.yaml
制御フロー機能
- 日付解決、ウィンドウ長、利用可能なツール履歴、日次対複数日出力形状で分岐
- ローカル履歴データを読み込み、Markdown レコップファイルを書き込み
- ツール別ではなくコンテンツ別でグループ化
構造的フロー
エントリー
- リクエストされた日付またはウィンドウを解決します。
- 正規化された会話履歴を収集します。
- 日次対複数日出力構造を決定します。
シーン
- PREPARE: 時間範囲とツールフィルターを解決します。
- ACQUIRE: CLI またはフォールバックを通じて履歴を収集します。
- REASON: コンテンツ別にグループ化し、テーマ/プロジェクト、決定、アーティファクト、ツール切り替えパターンを推測します。
- ACT: 必要な形式の Markdown レコップを書き込みます。
- VERIFY: TL;DR、グループ化、言語、出力パスをチェックします。
- FINALIZE: サマリーを保存して表示します。
トランジション
- 日付が指定されない場合、今日を使用します。
- ウィンドウが 3 日以上の場合、日の時系列ではなくプロジェクト別にグループ化します。
- CLI が利用不可の場合、Claude フォールバックのみを使用し、スコープの制限を報告します。
- タスクが閾値未満の場合、それらを「その他」または「サイドプロジェクト」にグループ化します。
失敗と回復
- 履歴が利用不可の場合、欠落しているソースとリクエストされた範囲を報告します。
- タイムスタンプが曖昧な場合、設定されたタイムゾーンを使用し、仮定を明記します。
- 抽出されたデータが不足している場合、簡潔なレコップを生成し、カバレッジが限定されていることを注記します。
エグジット
- 成功: レコップファイルが存在し、サマリーが表示されます。
- 部分的成功: 欠落しているツール/履歴またはフォールバックのみのカバレッジが明示されます。
論理操作
アクション
| アクション | SSL プリミティブ | エビデンス |
|---|---|---|
| 日付/ウィンドウを解決 | INFER | 自然言語日付ルール |
| 履歴を収集 | CALL_TOOL | oma recap --json または jq フォールバック |
| 抽出されたレコードを読む | READ | 会話履歴 |
| テーマ/プロジェクトをグループ化 | INFER | 時間/コンテンツグループ化ルール |
| 出力形状を検証 | VALIDATE | 日次または複数日テンプレート |
| レコップを書き込み | WRITE | .agents/results/recap/ |
| サマリーを報告 | NOTIFY | 表示されるレコップ |
ツールと機器
oma recap --json- Claude 履歴の
jqフォールバック - Markdown 出力テンプレート
標準的なコマンドパス
oma recap --json
oma recap --window 7d --json
oma recap --date YYYY-MM-DD --json
リソーススコープ
| スコープ | リソース対象 |
|---|---|
LOCAL_FS | 会話履歴とレコップ出力ファイル |
PROCESS | oma recap、jq、日付コマンド |
USER_DATA | 会話プロンプトとプロジェクト活動 |
MEMORY | テーマグループ化とサマリーノート |
前提条件
- リクエストされた時間範囲が解決可能です。
- 少なくとも 1 つの履歴ソースが利用可能です。
エフェクトと副エフェクト
.agents/results/recap/の下に Markdown レコップを書き込みます。- ローカル会話履歴データを読み込みます。
ガードレール
プロセス
1. 日付を解決
ユーザーの自然言語入力から対象日付またはウィンドウを決定します。デフォルトは今日です。
解決ルール:
- 相対日参照 (today、yesterday、day before yesterday など) ->
--date YYYY-MM-DDを計算 - 特定日付メンション (月 + 日、または完全な日付) ->
--date YYYY-MM-DDに変換 - 相対曜日参照 (last Monday、this Friday など) -> 日付を計算
- 期間参照 (this week、last 3 days、past 2 weeks など) ->
--window Ndに変換 - 日付が指定されない -> 今日 (
--window 1d)
2. データを収集
CLI を通じて正規化された会話履歴を抽出します。
# デフォルト (今日、すべてのツール)
oma recap --json
# 時間ウィンドウ
oma recap --window 7d --json
# 特定の日付
oma recap --date 2026-04-10 --json
# ツールフィルター
oma recap --tool claude,gemini --json
CLI がインストールされていない場合のフォールバック - インライン jq を使用して Claude 履歴のみを処理します:
TARGET_DATE=$(date +%Y-%m-%d)
TZ=Asia/Seoul start_ts=$(date -j -f "%Y-%m-%d %H:%M:%S" "${TARGET_DATE} 00:00:00" +%s)000
end_ts=$((start_ts + 86400000))
TZ=Asia/Seoul jq -r --argjson start "$start_ts" --argjson end "$end_ts" '
select(.timestamp >= $start and .timestamp < $end and .display != null and .display != "") |
{
time: (.timestamp / 1000 | localtime | strftime("%H:%M")),
project: (.project | split("/") | .[-1]),
prompt: (.display | gsub("\n"; " ") | if length > 150 then .[0:150] + "..." else . end)
}
' ~/.claude/history.jsonl
3. テーマ分析とグループ化
すべての抽出されたデータを読み込み、以下の基準で分析します:
グループ化ルール:
- 作業が 15 分以上 (タイムスタンプギャップとプロンプト数に基づく) の場合にのみ、独立したテーマとして分類
- 同じトピックの連続したプロンプトを 1 つのテーマにマージ
- 15 分未満のタスクを「その他」セクションに収集
- ツール別ではなく 作業コンテンツ 別にグループ化
クロスツール分析:
- 同じ時間ウィンドウで複数のツールが使用される場合のワークフローを追跡
- 例: 「Gemini でデザイン -> Claude で実装 -> Codex でレビュー」
- ツール切り替えパターンから洞察を導出
各テーマから抽出:
- 実施された中核作業
- なされた主要な決定
- 使用されたツール組み合わせ
- 生成されたアーティファクト (ドキュメント、コード、設定など)
4. 出力形式
.agents/results/recap/{date}.md に結果を保存して同時に表示します。
以下の Markdown 形式で出力します。応答言語は .agents/oma-config.yaml の language 設定に従います。
日次形式 (1d または特定日付)
## {date} Recap
> **TL;DR**
> - {達成したこと 1 — プロジェクト名 + 成果}
> - {達成したこと 2}
> - {達成したこと 3}
### Overview
その日の 2-3 文のサマリー。「I did X」の視点で書きます。
アウトカムと進捗に焦点を当て、ツール比率や技術詳細は含めません。
### {テーマ 1} (AM 09:36~11:30)
- 実施された中核作業
- 主要な決定
- テーマあたり 2-4 個のバレット
### {テーマ 2} (PM 13:33~15:21)
- 実施された中核作業
- 主要な決定
### その他
- 15 分未満のタスクの簡潔なサマリー
### ツール使用パターン
- ツール使用比率と主要な目的
- 注目すべきツール切り替えパターン
複数日形式 (3d、7d、2w、30d)
任意の複数日ウィンドウの場合、プロジェクト駆動構造 (スプリントレポート同様) を使用します。 日別の時系列ではなく、プロジェクトあたりで達成されたことに焦点を当てます。
## {開始} ~ {終了} Monthly Recap
> **TL;DR**
> - {達成したこと 1 — プロジェクト名 + 成果}
> - {達成したこと 2}
> - {達成したこと 3}
### Overview
その月の 3-5 文のナラティブ。週ごとの主要なフォーカスシフト、
達成された主要マイルストーン、全体的な方向性。「I did X」の視点で書きます。
### {プロジェクト A}
このプロジェクトが何か、期間中に達成されたこと。
- 主要なマイルストーンまたは成果物 1
- 主要なマイルストーンまたは成果物 2
- なされた主要な決定
- 現在のステータス (リリース済み / 進行中 / ブロック中)
### {プロジェクト B}
- ...
### サイドプロジェクト
30 プロンプト未満のプロジェクト、簡潔にサマリーされます。
- {project}: ワンライン概要
- {project}: ワンライン概要
### ツール使用パターン
- ツール使用比率とその月での推移
- 注目すべきシフト (例: 「月半ばから Codex を使用開始」)
複数日グループ化ルール:
- 日付別ではなく プロジェクト 別にグループ化
- プロジェクトを活動量で順序付け (最もアクティブなものから)
- 各プロジェクトセクション: それが何であるか、何が達成されたか、主要な決定、現在のステータス
- プロジェクトヘッダーにプロンプト数または日付範囲を含めない — これらは内部メトリクスです
- 小規模プロジェクト (30 プロンプト未満) は「サイドプロジェクト」にワンライナーとして入ります
- 概要はログではなくスプリントレポートのナラティブのように読むべきです
5. 結果を保存
.agents/results/recap/{date}.md に保存します。
ウィンドウ範囲の場合は {start-date}~{end-date}.md 形式を使用します。
# パス例
.agents/results/recap/2026-04-12.md
.agents/results/recap/2026-04-06~2026-04-12.md
中核ルール
- TL;DR が必須: 「達成したこと」の上位 3 行。プロジェクト名 + 成果。ツール名や技術詳細は含めません。
- Overview: TL;DR の後、フローを説明します。「I」で始まります。
- 日次: テーマを時間ブロック別 (15 分以上)。残りは「その他」へ。
- 複数日 (3d+): セクションをプロジェクト別、活動量で順序付け。日次ログではなくスプリントレポートのように読みます。
- テーマ/プロジェクトあたり 2-4 個のバレット: 簡潔な要点のみ。すべてのステップを列挙しません。
- テーマはコンテンツ別: ツール別ではなく実際の作業でグループ化。
- 時間範囲 (日次のみ):
(AM/PM/Evening HH:MM~HH:MM)。AM:12:00、PM: 12:0018:00、Evening: 18:00~。 - 結果を保存: Markdown を
.agents/results/recap/に書き込みます。 - 応答言語:
.agents/oma-config.yamlで設定されている場合、そのlanguage設定に従います。 - em ダッシュなし:
—(em ダッシュ) の代わりに、コンマ、ピリオド、または括弧を使用します。
参考資料
- Recap CLI:
oma recap --json - 出力ディレクトリ:
.agents/results/recap/ - 言語設定:
.agents/oma-config.yaml - Claude フォールバック履歴:
~/.claude/history.jsonl
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- first-fluke
- ライセンス
- MIT
- 最終更新
- 2026/5/11
Source: https://github.com/first-fluke/fullstack-starter / ライセンス: MIT