mcpField
R
reports

reports

github.com/garrytan生産性31.3k244 回インストール今日更新
リポジトリ

reports について

レポートの保存、検索、配信を行うエージェント向けの gbrain スキルです。カテゴリ別のタイムスタンプ付きファイルを扱い、キーワードで検索先を振り分け、配信前にリンクの実用性を確認します。

主な機能

  1. 01カテゴリ別にタイムスタンプ付きレポートを保存
  2. 02カテゴリごとの最新レポートを読み込み
  3. 03検索キーワードをカテゴリに振り分け
  4. 04gbrain でレポートを検索
  5. 05配信前にレポートのリンクを確認

活用シーン

  1. 01日次ブリーフィングの保存と取得
  2. 02キーワードによる会議・ソーシャルレポートの検索
  3. 03配信前の調査レポート内リンクの確認
  4. 04リンク切れや間接リンクを含むレポートへの対処

インストール

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

$npx skills add https://github.com/garrytan/gbrain --skill reports

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

同梱ファイルrouting-eval.jsonl

詳細

Reports Skill

契約

このスキルでは、以下が保証されます。

  • レポートはタイムスタンプ付きのファイル名とフロントマターで保存されます
  • キーワードルーティング:クエリ → レポートカテゴリのマッピング
  • カテゴリ名を指定して最新のレポートを読み込めます
  • レポートは gbrain search/query で検索できます
  • 配信前に、外部に配信するレポートがアクショナビリティゲート(以下を参照)を通過します

フェーズ

  1. レポートを保存します。 reports/{category}/{YYYY-MM-DD-HHMM}.md に、以下のフロントマターを付けて書き込みます。
    ---
    title: {report title}
    type: note            # a type the default pack declares; `report` is undeclared
    report_type: {category name}
    category: {category name}
    date: {YYYY-MM-DD}
    time: {HH:MM PT}
    ---
    
  2. 最新のレポートを読み込みます。 カテゴリを指定して、最も新しいレポートファイルを探します。
  3. キーワードルーティング。 よくあるクエリをレポートカテゴリにマッピングします。
    • "email" / "inbox" → ea-inbox-sweep
    • "social" / "mentions" → social-mentions
    • "briefing" / "morning" → morning-briefing
    • "meeting" → meeting-sync
    • カスタムマッピングを設定できます

出力形式

保存先:reports/{category}/{YYYY-MM-DD-HHMM}.md 読み込み時:メタデータを含むレポート全体の内容。

アクショナビリティゲート

朝のブリーフィング、会議のダイジェスト、調査レポートなど、レポートをユーザーに届ける前に、すべてのリンクについて次の問いに答えられる必要があります。ユーザーがこのリンクをクリックして、すぐに行動できますか? リンクの規範(決定論的で、推測した URL を使わない)は skills/_output-rules.md の「Deterministic Links」に記載されています。このゲートでは、配信時の失敗の分類と再試行ループを追加します。

4 つの失敗モード
モード意味例
Broken(無効)リンクが偽物、またはプレースホルダーですhttps://example.com、TODO-find-link
Dead(リンク切れ)脳ページへのリンク先がコミット/プッシュされていませんページは書かれていますがプッシュされていないため、リンクが 404 になります
Indirect(間接)リンク先は存在しますが、目的の場所ではありません特定の投稿 x.com/alice-example/status/<id> ではなく、プロフィール x.com/alice-example
Missing(欠落)行動につながる項目にリンクがありませんURL のない「話題になっているクリップ(約 80 万回再生)」

Broken、Dead、Indirect は配信をブロックします。Missing は警告です — 注意を促しますが、ブロックはしません。リンクがないのは正直な状態です。間接リンクは、果たされない約束です。

ブロック対象と警告対象
パターンステータス問題点
x.com/<handle>ブロックプロフィール ≠ 投稿。x.com/<handle>/status/<id> にリンクしてください
出版社のドメインのみブロックホームページ ≠ 記事。記事へのパスを追加してください
youtube.com/@channelブロックチャンネル ≠ 動画。youtube.com/watch?v=... にリンクしてください
脳ページへのリンク、ファイル未コミットブロックコミットしてプッシュするまでリンクが 404 になります
example.com / TODO のプレースホルダーブロック有効なリンクではありません
google.com/search?q=...警告検索結果 ≠ 情報源。実際の検索結果にリンクしてください
URL のない行動可能な箇条書き警告どこにありますか?リンクを付けるか、見つけ方を説明してください
再試行ループ(エージェントによる確認)

強制実行用のスクリプトはありません。リンクを含むレポートを配信する前に、エージェントが以下の確認を実行します。

  1. レポートを作成します。
  2. 上記の失敗モードに照らして、すべてのリンクを確認します。
    • 脳ページへのリンク: 脳リポジトリで git status を実行します。リンク先のページが未コミットなら Dead リンクです。先にコミットしてプッシュしてください。gbrain get <slug> でページ自体が存在することを確認できます。
    • 外部リンク: 特定のコンテンツの代わりにプロフィール、ホームページ、チャンネルの URL を使っている場合は Indirect です。
  3. 確認で問題が見つかった場合は、リンクを修正します。
    • 直接の URL(投稿 ID、記事のパス、申請ページ)がありますか?それを使ってください。
    • ありませんか?情報源を検索して、該当する項目を探してください。
    • 見つかりませんか?リンクを削除し、代わりにコンテンツを説明してください。「@alice-example のタイムラインにあるクリップ、約 80 万回再生 — そこで検索してください。」コンテンツへのリンクの代わりにプロフィールへのリンクを残してはいけません。
  4. 再確認します。
  5. 最大 2 回まで再試行します → Missing に分類される警告が残っている場合は、明示的な警告フラグを付けて配信します。Broken、Dead、Indirect のリンクは決して配信しません。
LLM プロンプト用ゲートのスニペット

レポート生成プロンプト(サブエージェントのダイジェスト、調査の要約、cron のレポートジョブ)に貼り付けてください。

ACTIONABILITY GATE: Before finishing, verify every link answers "can the user
click this and act immediately?"
- Every X link → https://x.com/{user}/status/{post_id} — NEVER a profile link
- Every article → full URL with path — NEVER a bare domain
- Every brain-page link → committed + pushed, or don't link it
- If you don't have the direct URL → describe the content WITHOUT a link
- A missing link is better than an indirect link
利用者

レポートの提示面は、ハーネスのルーティング規約(リゾルバーが適用するルーティングルールであり、機械的に保証されるものではありません)に従って、このゲートを経由します。これには、朝のブリーフィング(skills/briefing/SKILL.md)、会議のダイジェスト、調査レポート、外部リンクを含む保存済みレポートが該当します。

失敗した場合

gbrain のエラー code、終了コード、[AGENT] ブロック、または通知ブロックが発生した場合は、エージェント運用者プロトコルに従ってください。このスキルに固有の対応は次のとおりです。

  • レポートのリンクが配信スキャンに失敗した場合(リンク切れ、無効、間接的):配信前に修正してください。リンクがない場合は警告であり、ブロッカーではありません。
  • レポートの保存で write_pending(終了コード 10)が返された場合:書き込みがコミットされるまでリンクは 404 になります。共有する前に gbrain write-request <request_id> をポーリングしてください。
  • レポート検索(gbrain search)の結果が空で、縮退状態の通知がある場合は、「以前のレポートはありません」ではなく、キーワードのみで検索したことを伝えてください。

アンチパターン

  • フロントマターなしでレポートを保存する(検索できなくなります)
  • 実行ごとに一貫性のないカテゴリ名を使用する
  • 最新のレポートだけでよいのに、すべてのレポートを読み込む
  • キーワードでルーティングしない(完全一致するカテゴリ名を強制する)
  • 特定のコンテンツの代わりに、プロフィール/ホームページ/チャンネルへのリンクを含むレポートを配信する(間接リンクは配信をブロックします)
  • コミットおよびプッシュされていない脳のページにリンクする(リンク切れ)

コメント