mcpField
O
oma-recap

oma-recap

github.com/first-fluke生産性1.4k57 回インストール1 日前に更新
リポジトリ

oma-recap について

oma-recapは、指定期間のAIツールの会話履歴を分析するスキルです。作業の振り返りやスタンドアップ記録、利用状況の確認に向けて、活動をテーマやプロジェクト別にまとめ、根拠に基づくMarkdownを保存します。

主な機能

  1. 01日付や期間を指定した履歴収集
  2. 02作業テーマやプロジェクト別の分類
  3. 03根拠に基づくタスク状態の判定
  4. 04Markdown形式のレポート保存

活用シーン

  1. 01日次・週次の作業振り返り
  2. 02複数AIツールでの作業の確認
  3. 03スタンドアップ記録や作業ログの作成

インストール

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

$npx skills add https://github.com/first-fluke/oh-my-agent --skill oma-recap

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

同梱ファイルresources/output-formats.md

詳細

AI ツールの会話履歴の要約

指定した期間の AI ツールの会話履歴を分析し、テーマ別の作業サマリーを生成します。

スケジューリング

目標

日付または期間を指定して AI ツールの会話履歴を収集し、テーマ別かつプロジェクト中心の振り返りにまとめ、Markdown ファイルとして保存します。

インテントの特徴
  • 日次の振り返り、週次・月次サマリー、スタンドアップノート、作業ログ、ツールの使用パターン、または AI の会話履歴の分析を求められた場合。
  • 生の時系列ログではなく、作業内容ごとにグループ化した会話履歴を求められた場合。
使用する場面
  • 1 日または一定期間の作業活動を要約する場合
  • 複数の AI ツールをまたぐ作業の全体的な流れを把握する場合
  • セッション間のツール切り替えパターンを分析する場合
  • 日次のスタンドアップ、週次の振り返り、または作業ログを準備する場合
使用しない場面
  • Git コミットに基づくコード変更の振り返り → oma retro を使用
  • エージェントのリアルタイム監視 → oma dashboard terminal を使用
  • 生産性指標 → oma stats get を使用
想定される入力
  • 日付、相対日付、期間、またはツールのフィルター
  • oma recap --json または代替ソースから取得できる会話履歴
  • 希望する日次または複数日分の振り返り範囲
想定される出力
  • .agents/results/recap/{date}.md または期間を示すファイル名で保存される Markdown の振り返り
  • TL;DR、概要、テーマ・プロジェクト、その他またはサイドプロジェクト、ツールの使用パターン
  • 設定された応答言語でのユーザー向けサマリー
依存関係
  • oma recap --json
  • オプションの Claude 代替履歴 ~/.claude/history.jsonl
  • 言語動作を設定する .agents/oma-config.yaml
制御フローの特徴
  • 日付の解決、期間の長さ、利用可能なツール履歴、日次または複数日分の出力形式に応じて分岐します
  • ローカルの履歴データを読み取り、Markdown の振り返りファイルを書き込みます
  • ツールではなく、内容ごとにグループ化します

構造の流れ

開始
  1. 指定された日付または期間を解決します。
  2. 正規化された会話履歴を収集します。
  3. 日次と複数日分のどちらの出力形式にするかを決定します。
段階
  1. PREPARE:期間とツールのフィルターを解決します。
  2. ACQUIRE:CLI または代替手段で履歴を収集し、利用可能な場合は完了の証拠を保持します。
  3. REASON:内容ごとにグループ化し、証拠に基づいて各項目を「依頼済み」「進行中」「完了」に分類します。
  4. ACT:必要な形式で振り返りの Markdown を作成します。
  5. VERIFY:完了の主張すべてに直接的な証拠があることを確認し、その後、グループ分け、言語、出力先を確認します。
  6. FINALIZE:保存してサマリーを表示します。
遷移
  • 日付が指定されていない場合は、--date で今日を使用します(--window のみを指定した場合は、現在を終点とするローリング期間であり、暦日に合わせた期間ではありません)。
  • 期間が 3 日以上の場合は、日ごとの時系列ではなく、プロジェクトごとにグループ化します。
  • CLI が利用できない場合は Claude の代替手段のみを使用し、対象範囲の制限を報告します。
  • タスクがしきい値を下回る場合は、「その他」または「サイドプロジェクト」にまとめます。
失敗と復旧
  • 履歴を利用できない場合は、見つからないソースと指定された期間を報告します。
  • タイムスタンプが曖昧な場合は、設定されたタイムゾーンを使用し、前提を明記します。
  • 抽出データが少ない場合は、簡潔な振り返りを作成し、対象範囲が限られていることを記載します。
終了
  • 成功:振り返りファイルが存在し、サマリーが表示されます。
  • 部分的な成功:利用できないツールや履歴、または代替手段のみでカバーした範囲を明示します。

論理操作

アクション
アクションSSL プリミティブ証拠
日付・期間を解決INFER自然言語による日付ルール
履歴を収集CALL_TOOLoma recap --json または jq による代替手段
抽出した記録を読むREAD会話履歴
テーマ・プロジェクトをグループ化して分類INFER時間・内容のルールと、プロンプト、進捗、完了、受領確認、または成果物の証拠
出力形式を検証VALIDATE日次または複数日分のテンプレート
振り返りを作成WRITE.agents/results/recap/
サマリーを報告NOTIFY表示された振り返り
ツールと機器
  • oma recap --json
  • Claude の履歴を取得する jq による代替手段
  • Markdown 出力テンプレート
標準的なコマンドパス
oma recap --date YYYY-MM-DD --json
oma recap --window 7d --json
oma recap --json  # rolling last 24h, not "today"
リソースの範囲
範囲リソースの対象
LOCAL_FS会話履歴と振り返りの出力ファイル
PROCESSoma recap、jq、日付コマンド
USER_DATA会話プロンプトとプロジェクトのアクティビティ
MEMORYテーマのグループ化と要約メモ
前提条件
  • 要求された期間を特定できること。
  • 少なくとも1つの履歴ソースを利用できること。
影響と副作用
  • .agents/results/recap/ の下に振り返りの Markdown を書き込みます。
  • ローカルの会話履歴データを読み取ります。
ガードレール
  1. 証拠のステータス:プロンプトだけで確認できるのは依頼であり、結果ではありません。明示的な完了/結果メッセージ、受領記録、または記載された成果を裏付ける成果物がある場合にのみ、作業を完了とします。進捗を示す証拠がある場合は進行中とし、それ以外は依頼済みとします。ツールの呼び出しや経過時間から完了を推測しないでください。
  2. TL;DR 必須:裏付けのある成果を上位3件記載します。証拠のステータスに関するルールを満たす場合にのみ「完了」とし、それ以外は依頼中または進行中の作業を明確に要約します。プロジェクト名+ステータス/成果を記載します。ツール名や不要な詳細は記載しません。
  3. 概要:TL;DR の後に、作業の流れを説明します。主語を「I」にして始め、証拠のステータスを維持します。
  4. 日次:15分以上の時間ブロックごとにテーマをまとめます。それ以外は「その他」に含めます。
  5. 複数日(3日以上):プロジェクトごとにセクションを分け、アクティビティ順に並べます。日次ログではなく、スプリントレポートのようにまとめます。
  6. テーマ/プロジェクトごとに2~4件の箇条書き:要点のみを簡潔に記載します。すべての手順を列挙しないでください。
  7. 内容ごとのテーマ分け:ツールではなく、実際の作業内容に基づいてグループ化します。
  8. 期間(日次のみ):(AM/PM/Evening HH:MM~HH:MM)。AM:~12:00、PM:12:00~18:00、Evening:18:00~。
  9. 結果の保存:Markdown を .agents/results/recap/ に書き込みます。
  10. 応答言語:.agents/oma-config.yaml に language の設定がある場合、その設定に従います。
  11. エムダッシュ禁止:—(エムダッシュ)の代わりに、コンマ、ピリオド、または括弧を使用します。
プロセス
1. 日付の特定

ユーザーの自然言語入力から対象の日付または期間を特定します。デフォルトは今日です。

特定ルール:

  • 相対的な日付の表現(今日、昨日、一昨日など)→ --date YYYY-MM-DD を計算します
  • 特定の日付の指定(月+日、または完全な日付)→ --date YYYY-MM-DD に変換します
  • 相対的な曜日の表現(先週の月曜日、今週の金曜日など)→ 日付を計算します
  • 期間の表現(今週、過去3日間、過去2週間など)→ --window Nd に変換します
  • 日付の指定がない場合 → 今日とし、--date YYYY-MM-DD に解決します(単独の --window 1d は暦日ではなく、現在を終点とする直近24時間です)
  • CLI のウィンドウ上限は30日です(それより長い値は警告とともに短縮されます)。要求された期間が上限で短縮された場合は、振り返りにその旨を記載します
2. データの収集

CLI を使って正規化された会話履歴を抽出します。

# Today (calendar day, all tools)
oma recap --date $(date +%F) --json

# Last 24 hours (rolling window ending now)
oma recap --json

# Time window (rolling, ends now; capped at 30d)
oma recap --window 7d --json

# Specific date
oma recap --date 2026-04-10 --json

# Tool filter (supported: grok, claude, codex, gemini, qwen, cursor, antigravity)
oma recap --tool claude,codex --json

CLI がインストールされていない場合のフォールバック:インライン jq を使って Claude の履歴のみを処理します。

# Uses the system timezone; export TZ=<zone> first to override, and state the
# timezone assumption in the recap (per the Failure and recovery rules).
TARGET_DATE=$(date +%Y-%m-%d)
# macOS/BSD date: advance the calendar date, then parse both local midnights.
next_date=$(date -j -v+1d -f "%Y-%m-%d %H:%M:%S" "${TARGET_DATE} 12:00:00" +%Y-%m-%d)
start_ts=$(date -j -f "%Y-%m-%d %H:%M:%S" "${TARGET_DATE} 00:00:00" +%s)000
end_ts=$(date -j -f "%Y-%m-%d %H:%M:%S" "${next_date} 00:00:00" +%s)000
# Linux/GNU date alternatives (replace all three lines above):
# next_date=$(date -d "${TARGET_DATE} 12:00:00 tomorrow" +%Y-%m-%d)
# start_ts=$(date -d "${TARGET_DATE} 00:00:00" +%s)000
# end_ts=$(date -d "${next_date} 00:00:00" +%s)000
# Do not add a fixed 24 hours: DST calendar days can have 23 or 25 hours.

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分未満のタスクは「その他」セクションにまとめます
  • ツールではなく、作業内容に基づいてグループ化します

複数ツールの分析:

  • 同じ時間帯に複数のツールを使用した場合は、ワークフローを記録します
  • 例:「Antigravity で設計 -> Claude で実装 -> Codex でレビュー」
  • ツールの切り替えパターンから知見を導きます

各テーマから抽出する内容:

  • 実施した主な作業
  • 重要な決定事項
  • 使用したツールの組み合わせ
  • 作成した成果物(ドキュメント、コード、設定など)
4. 出力形式

結果を .agents/results/recap/{date}.md に保存し、同時に表示します。

resources/output-formats.md の Markdown テンプレートを使用します。

  • 日次形式(1d または特定の日付):TL;DR → 概要 → 時間帯別のテーマ → その他 → ツールの使用パターン。
  • 複数日形式(3d 以上):プロジェクト主導のスプリントレポート形式を使用します。小規模(30 プロンプト未満)の作業には「サイドプロジェクト」を使用し、同じファイルに記載されている複数日分のグループ化ルールに従います。

応答言語は .agents/oma-config.yaml の language 設定に従います。

5. 結果の保存

.agents/results/recap/{date}.md に保存します。 期間を指定する場合は、{start-date}~{end-date}.md 形式を使用します。

# Example paths
.agents/results/recap/2026-04-12.md
.agents/results/recap/2026-04-06~2026-04-12.md

参考資料

  • 出力形式のテンプレート:resources/output-formats.md
  • Recap CLI:oma recap --json
  • 出力ディレクトリ:.agents/results/recap/
  • 言語設定:.agents/oma-config.yaml
  • Claude のフォールバック履歴:~/.claude/history.jsonl

コメント