scheduled-summary について
scheduled-summaryは、設定したローカルデータを定期ダイジェストにまとめるコマンドラインスキルです。セッション、スケジュールジョブ、メモリの変更、ツール利用状況、未処理項目を簡潔に確認したい運用者向けで、Markdown、JSON、テキストを出力できます。
主な機能
- 01設定したセッション、cron、メモリ、ログを読み込み
- 02指定した期間で活動を絞り込み
- 03活動、エラー、未処理項目を集約
- 04Markdown、JSON、テキストで出力
- 05セクション選択と設定テンプレートに対応
活用シーン
- 01日次または週次の活動ダイジェストを作成
- 02スケジュールジョブの失敗や遅延を確認
- 03ツール利用状況とログエラーを追跡
- 04通知チャネル向けの簡潔なダイジェストを生成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ moonlight-lupin/ agent-skills --skill scheduled-summaryインストール後、Claude Code で/scheduled-summaryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/data-sources.mddigest-format.mdscripts/summarize.pytemplates/digest-template.mdtests/test_summarize.py詳細
定期サマリー
概要
メッセージングプラットフォームは、1つの進行中の会話には優れていますが、ほかのセッション、スケジュール済みジョブ、保存されたメモリ、以前の作業で未解決の項目など、別の場所で発生したアクティビティは見えにくくなります。このスキルは、こうしたセッションをまたいだアクティビティを、チャットメッセージングプラットフォームや、Markdown またはプレーンテキストを受け付けるあらゆる通知チャネルに適したコンパクトな形式で提示する、定期的なダイジェストを作成します。
このダイジェストは cron スケジューラー向けに設計されています。任意のローカルデータソース(セッションストア、cron 出力ディレクトリ、メモリ JSON ファイル、ログファイル)を読み込み、設定可能な期間のアクティビティに絞り込んで、Markdown、JSON、またはプレーンテキストを出力します。データソースが設定されていない場合は、エージェントがプラットフォーム固有のセッション履歴、スケジューラーの状態、メモリツールを使って内容を補える、テンプレート形式のダイジェストを出力します。
クイックスタート
このスキルのディレクトリから実行します。
python scripts/summarize.py generate --since 24h
データソースを明示して実行します。
python scripts/summarize.py generate \
--since 24h \
--sessions-db /path/to/sessions.sqlite \
--cron-dir /path/to/cron-output \
--memory-dir /path/to/memory-json \
--log-file /path/to/agent.log
現在の設定とスキップされたソースを表示します。
python scripts/summarize.py config
記入用の設定テンプレートを作成します。
python scripts/summarize.py init --output .summary-config.json
ダイジェストに含まれる内容
- セッションアクティビティ — 期間内に開始または完了したセッションと、利用可能な場合はトピックのタイトルです。
- Cron ジョブの状態 — 正常に実行されたジョブ、失敗したジョブ、出力ファイルによって期限超過と判定されたジョブです。
- メモリの変更 — JSON レコードに含まれる、新たに保存されたメモリと更新された情報です。
- ツールの使用状況 — テキストまたは JSONL ログファイルに基づく、最も使用されたツール、呼び出しの合計数、エラー数です。
- 未対応の項目 — 期限を迎えた判断のレビュー、未完了のタスク、セッションのトランスクリプト内で見つかった TODO に類する項目です。
- 期間 — ソースが項目を明示的に期限超過としている場合を除き、各セクションは
--since(24h、7d、2wなど)の期間に限定されます。
ワークフロー
- 配信頻度を決めます。 デフォルトとしては毎日が適しています。アクティビティの少ないシステムでは毎週でも構いません。下流のチャネルでスレッド化や一括処理が十分にできない場合は、高頻度のサマリーを避けてください。
- データソースを選びます。 ダイジェストに読み取りを許可するストアだけを設定します。まず cron の出力とログから始め、スキーマを把握してからセッションストアとメモリストアを追加してください。
- 一度手動で生成します。
generate --since 24hを実行し、長さ、機密フィールド、重複項目を確認します。 - セクションを調整します。 最初にスケジュールするダイジェストを短くするには、
--sections sessions,cron,outstandingを使用します。有用であればmemoryとtoolsを追加してください。 - コマンドをスケジュールします。 cron スケジューラーから実行し、出力をチャネル連携先、または通知ツールが読み取るファイルにリダイレクトします。
- 1週間後に見直します。 ダイジェストに実行可能な項目が表示されているか確認します。ノイズの多いセクションを削除し、不足しているソースパスを追加してください。
完了条件:スケジュール済みのコマンドによって、生成時刻と指定したセクションが含まれ、想定外のシークレットやトランスクリプト全体が含まれないダイジェストが作成されることです。
Cron スケジューラーの設定
汎用的な毎日の cron スケジューラー設定:
0 8 * * * cd /path/to/scheduled-summary && python scripts/summarize.py generate --since 24h --output /tmp/activity-digest.md
フラグの代わりに環境変数を使用する例:
0 8 * * * SESSIONS_DB=/data/sessions.sqlite CRON_OUTPUT_DIR=/data/cron MEMORY_DIR=/data/memory LOG_FILE=/data/agent.log python /path/to/scheduled-summary/scripts/summarize.py generate --since 24h
メッセージングプラットフォームに配信するには、生成したファイルを自分の通知ツールでパイプ処理または投稿します。
python scripts/summarize.py generate --since 24h --output /tmp/digest.md
python /path/to/send_notification.py /tmp/digest.md
スクリプトをさまざまなプラットフォームで移植可能に保つため、通知ツールはダイジェスト生成ツールと分離してください。
出力形式
Markdown 出力は、チャットプラットフォーム向けに最適化されています。
- コンパクトな
##/###見出し。 - 段落ではなく箇条書き。
- すばやく確認できる絵文字のステータスマーカー。
- トランスクリプトの抜粋ではなく、短い引用形式のトピック。
- 役立つ場合に限り、詳細な統計にはコードブロックを使用。
- 最後に UTC で生成時刻を表示。
対応している形式:
python scripts/summarize.py generate --format markdown
python scripts/summarize.py generate --format json
python scripts/summarize.py generate --format text
ファイルに書き込みます。
python scripts/summarize.py generate --since 7d --output weekly-digest.md
カスタマイズ
特定のセクションのみを含めます。
python scripts/summarize.py generate --sections sessions,cron,outstanding
よく使われるセクションの組み合わせ:
- 日次の運用ダイジェスト:
sessions,cron,outstanding - 週次レビュー:
sessions,cron,memory,tools,outstanding - ノイズを抑えたヘルスチェック:
cron,tools - エージェントが入力するテンプレート: ソースパスを設定せずに実行し、プラットフォーム固有のツールからプレースホルダーを入力します。
フラグ、環境変数、または生成された設定ファイルでパスを設定します。
| ソース | フラグ | 環境変数 |
|---|---|---|
| セッションの SQLite データベース | --sessions-db | SESSIONS_DB |
| Cron の出力ディレクトリ | --cron-dir | CRON_OUTPUT_DIR |
| メモリの JSON ディレクトリ | --memory-dir | MEMORY_DIR |
| ツール/ログファイル | --log-file | LOG_FILE |
| 決定記録 | --decisions-dir | DECISIONS_DIR |
想定される形式とスキーマに関する注意事項は、references/data-sources.md を参照してください。
インテグレーション
decision-log
決定記録のディレクトリが利用できる場合は、--decisions-dir または
DECISIONS_DIR で指定します。ダイジェストは Markdown の決定記録をスキャンし、
Next review: YYYY-MM-DD の期日を迎えた承認済みまたは提案中の決定を探してから、
未対応項目のセクションに件数とタイトルを報告します。
news-monitoring
ニュース監視ジョブは通常、スケジュールされた出力ファイルを書き出します。--cron-dir に
それらの出力を含むディレクトリを指定します。ダイジェストは、監視が実行されたか、
成功したか、失敗したか、または期限超過としてマークされたかを報告します。ニュースの
概要全体は専用のファイルに保管し、スケジュールされた概要には、監視が実行されたか、
対応が必要かどうかだけを記載してください。
よくある落とし穴
- チャットには詳しすぎる内容。 ダイジェストにトランスクリプト全体や Cron ログ全体を貼り付けないでください。件数、タイトル、1 行の対応事項を示してください。
- 機密データの漏えい。 セッションのタイトル、メモリ内の事実、ログの行には、秘密情報や個人データが含まれることがあります。最初の出力は手動で確認し、必要に応じて上流のソースで情報を伏せてください。
- 実行頻度が高すぎる。 1 時間ごとの概要は、通知疲れやアクティブなチャットとの重複を招くことがよくあります。通常は毎日または毎週の実行が適しています。
- 概要間で重複が排除されない。 同じ期限超過項目が毎日表示される場合は、対応を完了するか、上流で抑制するか、このダイジェストの外部で一貫した決定/タスクの担当者を設定してください。
- テンプレートモードを完全なデータだと見なすこと。 プレースホルダーが出力される場合、読み取り可能なデータソースがありません。エージェントまたはオペレーターがプラットフォームのツールから情報を入力する必要があります。
- セッションのスキーマがどこでも共通だと仮定すること。 セッションの保存形式はプラットフォームによって異なります。スクリプトは可能な範囲で SQLite をイントロスペクションしますが、正確な件数は利用可能なカラムによって異なります。
- 生成と配信を混在させること。 ダイジェスト生成ツールは、プラットフォーム固有の Webhook やボットのコードから独立させてください。これにより、テストや移行が容易になります。
このスキルの対象外
- セッション検索ツールではありません。特定の会話を探す場合は、プラットフォームのセッション検索またはトランスクリプトブラウザーを使用してください。
- トランスクリプト全体をエクスポートするツールではありません。意図的に、タイトル、件数、TODO のような行のみを要約します。
- セッションの閲覧に代わるものではありません。次に確認すべき内容を決めるのに役立ちます。
- スケジューラーの完全なダッシュボードではありません。出力ファイルとステータスマーカーを読み取りますが、スケジューラーの管理や実行は行いません。
- 秘密情報のスキャナーではありません。内容の冗長さは抑えますが、ソースデータをメッセージングプラットフォームに安全に送信できるとは保証できません。
参考ファイル
references/digest-format.md— セクションの仕様、出力の種類、日次および週次の例。references/data-sources.md— ソースの設定、想定される形式、スキーマの例。templates/digest-template.md— エージェントによる入力や手動で整理したダイジェスト用の空の Markdown テンプレート。scripts/summarize.py— 要約ファイルの生成、設定、初期化を行う標準ライブラリの CLI。
検証チェックリスト
-
python scripts/summarize.py --helpにgenerate、config、initが表示されます。 -
python scripts/summarize.py generate --since 24hは、ソースがなくても動作し、テンプレートモードの出力を生成します。 - ソースを指定したモック実行では、明示的に期限を過ぎた cron ジョブを除き、時間枠内のイベントのみが含まれます。
-
--sectionsは、省略したセクションを Markdown、JSON、テキストから除外します。 -
--format jsonは、解析可能な JSON を返します。 - メッセージングプラットフォームに接続する前に、最初のスケジュール出力について、シークレットや過剰な長さがないか確認します。