Community研究&データ分析github.com

octo-patch/MorningAI

AIエージェント(Claude Code、OpenClawなど)向けのAIニューストラッキングスキル。9つの情報源からAI関連エンティティを追跡し、日次構造化レポートを生成します。

MorningAI とは?

MorningAIは、Claude Code、OpenClaw、CodexなどのAIプログラミングエージェント向けに設計された、AI業界ニューストラッキングスキルです。Reddit、Hacker News、GitHub、HuggingFace、arXiv、X/Twitterの6つの情報源から、80以上のAI関連エンティティ(OpenAI、DeepSeek、Midjourneyなど)を24時間ごとに自動収集します。収集した情報は、製品(機能リリース、バージョン更新)、モデル(新規モデル、オープンソース重み)、ベンチマーク(リーダーボード変動、論文)、資金調達(ラウンド、買収、マイルストーン)の4つのタイプに分類され、1〜10のスコアリングと重複排除、クロスソース検証が行われます。最終的に構造化されたMarkdown形式の日次レポートを生成し、オプションでインフォグラフィック画像やSNS投稿文、メッセージダイジェスト(WeChat/Telegram/Slack)の生成もサポートします。基本的な使用にはAPIキーは不要ですが、GitHubのレート制限緩和や画像生成、SNS配信などの高度な機能を利用するにはオプションのAPIキー設定が必要です。

対応✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI✓OpenCode✓Windsurf
npx skills add octo-patch/MorningAI

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

morning-ai: MorningAI レポート生成ツール

権限の概要: Reddit、Hacker News、GitHub、HuggingFace、arXiv、X/Twitterから公開データを収集します。.env または ~/.config/morning-ai/.env にオプションのAPIキーを設定する必要があります。レポートファイルを作業ディレクトリに書き込みます。詳細は設定を参照してください。

80以上のAIエンティティを6つの情報源から追跡します。過去24時間の更新情報を収集し、スコアリングと重複排除を行い、構造化されたMarkdown形式の日次レポートを生成します。4つのタイプをカバーします: 製品(機能リリース、バージョンリリース)、モデル(新規モデル、オープンソース重み)、ベンチマーク(リーダーボードの変更、論文)、資金調達(ラウンド、買収、マイルストーン)。


--intro — 製品紹介

ユーザーが --intro を渡した場合、以下の紹介文を表示して停止します(データ収集に進みません):


MorningAI — 80以上のエンティティを6つの情報源から監視する、日次AIニューストラッカー。

機能:

  • Reddit、Hacker News、GitHub、HuggingFace、arXiv、X/Twitterから更新情報を収集
  • 1〜10のスケールでスコアリング、重複排除、クロスソース検証を実施
  • 4つのコンテンツタイプ(製品、モデル、ベンチマーク、資金調達)で構造化されたMarkdownレポートを生成
  • オプション: インフォグラフィック画像(5つのビジュアルスタイル)、メッセージダイジェスト(WeChat/Telegram/Slack)、SNS投稿文(X/小红书)

情報源(すべて無料、基本使用にAPIキーは不要):

情報源方法APIキー
Reddit公開JSON不要
Hacker NewsAlgolia API不要
GitHubREST APIオプション(GITHUB_TOKEN でレート制限緩和)
HuggingFace公開API不要
arXiv公開API不要
X/TwitterWeb検索不要

クイックスタート:

/morning-ai                     # デフォルトで実行(英語、全タイプ)
/morning-ai --lang zh           # 中国語レポート
/morning-ai --depth deep        # 包括的収集
/morning-ai --exclude Funding   # 資金調達ニュースをスキップ

オプション機能(APIキーが必要):

  • インフォグラフィック画像: IMAGE_GEN_PROVIDER + プロバイダーAPIキーを設定
  • SNS投稿文: SOCIAL_ENABLED=true を設定
  • メッセージダイジェスト: MESSAGE_ENABLED=true を設定

設定ファイル: ~/.config/morning-ai/.env — /morning-ai を設定なしで実行すると、ガイド付きセットアップが起動します。

バージョン: 1.2.9 | GitHub | ClawHub


紹介文を表示した後、停止します。ステップ0やデータ収集に進まないでください。


ステップ0: 設定ゲート(必須 — 他のステップの前に必ず完了すること)

他のことを行う前に、このコマンドを最初に実行してください:

if [ -f "$HOME/.config/morning-ai/.env" ] || [ -f ".claude/morning-ai.env" ] || [ -f ".env" ]; then echo "CONFIG_STATUS=READY"; else echo "CONFIG_STATUS=MISSING"; fi

出力に応じて分岐:

  • 出力が CONFIG_STATUS=READY の場合 — 設定ファイルを読み込み、アクティブな情報源を報告してから、ステップ1に進みます。
  • 出力が CONFIG_STATUS=MISSING の場合 — 停止。ステップ1に進む前に、以下の初回セットアップを完了する必要があります。

初回セットアップ(MISSING の場合)

重要: ここで停止。 以下のセットアップ手順はすべて、ユーザーと対話的に完了する必要があります。 設定ファイルが存在し、ゲートチェックが READY を返すまで、ステップ1(データ収集)を実行しないでください。 設定なしでデータ収集を実行すると、不完全な結果になります。

各ステップでユーザーの応答を待ちながら、対話的にセットアップを進めてください:

  1. ようこそ — MorningAIの機能を簡単に説明します: 80以上のAIエンティティを6つの情報源(Reddit、Hacker News、GitHub、HuggingFace、arXiv、X/Twitter)から追跡し、スコアリングされた日次レポートを生成します。
  2. 無料で使える機能を表示 — 6つの情報源(5つはAPIキー不要、1つはオプション):
    • Reddit(公開JSON)、Hacker News(Algolia API)、HuggingFace(公開API)、arXiv(公開API)、X/Twitter(Web検索)
    • GitHub(公開API、オプションの GITHUB_TOKEN でレート制限緩和)
  3. ユーザーに確認 GitHubのレート制限を緩和するかどうか:
キー情報源取得先
GITHUB_TOKENGitHubリリースとリポジトリ(レート制限緩和)https://github.com/settings/tokens
  1. インフォグラフィックについて確認(オプション):
キー説明
IMAGE_GEN_PROVIDERプロバイダー: gemini
IMAGE_STYLEスタイル: classic
GEMINI_API_KEYGoogle Gemini/Imagen(https://aistudio.google.com/apikey)
MINIMAX_API_KEYMiniMax global(https://www.minimax.io)
MINIMAX_API_KEYMiniMax cn(https://platform.minimaxi.com)
  1. SNSコンテンツ配信について確認(オプション):

    • SNSコンテンツ生成を有効にしますか? SOCIAL_ENABLED=true を設定
    • どのプラットフォームですか? X(Twitter)、小红书(Little Red Book)、または両方
    • 高度なマルチアカウント/マルチスタイル設定の場合、~/.config/morning-ai/social_channels.json を作成します(スキーマは skills/gen-social/SKILL.md を参照)。クイックシングルチャンネル設定の場合は、SOCIAL_PLATFORM、SOCIAL_STYLE、SOCIAL_LANG の環境変数を設定するだけです。
  2. メッセージダイジェストについて確認(オプション):

    • メッセージングプラットフォーム(WeChat、Telegram、Slack)で共有するための簡潔なメッセージダイジェストを有効にしますか?
    • はいの場合: MESSAGE_ENABLED=true を設定
    • オプション設定: MESSAGE_MIN_SCORE(デフォルト5)、MESSAGE_MAX_ITEMS(デフォルト10)、MESSAGE_LINKS(bottom または inline)、MESSAGE_CATEGORY_BALANCE(デフォルトtrue、コンテンツタイプ間でスロットを分散)
  3. 設定ファイルを作成 — ユーザーが提供したキーを収集し、~/.config/morning-ai/.env に KEY=value 形式(1行に1つ)で書き込みます。必要に応じてディレクトリを作成: mkdir -p ~/.config/morning-ai

  4. 確認 — アクティブになった情報源の数を表示(N/9)

  5. 検証 — ゲートチェックを再実行して CONFIG_STATUS=READY を確認:

    if [ -f "$HOME/.config/morning-ai/.env" ] || [ -f ".claude/morning-ai.env" ] || [ -f ".env" ]; then echo "CONFIG_STATUS=READY"; else echo "CONFIG_STATUS=MISSING"; fi
    

    出力が READY の場合のみステップ1に進みます。

  6. ユーザーがAPIキーの設定をスキップして無料の情報源のみを使用したい場合は、最初に最小限の設定ファイルを作成してからステップ1に進みます:

    mkdir -p ~/.config/morning-ai && echo "# morning-ai config — free sources only" > ~/.config/morning-ai/.env
    

言語

パラメータデフォルト例
--langen(英語)--lang zh(中国語)、--lang ja(日本語)

ルール:

  • デフォルトは英語です。--lang が明示的に指定されない限り、レポートはすべて英語で記述する必要があります。 タイトル、要約、セクションヘッダー、テーブルラベル、箇条書き、「Why It Matters」分析、その他すべての人間が読むコンテンツは英語で記述してください。
  • --lang が指定された場合、すべての人間が読むコンテンツにその言語を使用します。
  • エンティティ名は固有名詞です(OpenAI、DeepSeek、Midjourney など)— 言語に関係なくそのままにしてください。
  • ソースデータがターゲット言語と異なる場合(例: 中国語のソース → 英語のレポート)、レポート生成中に翻訳してください。翻訳されていない断片を残さないでください。
  • --lang 設定はインフォグラフィックのプロンプトコンテンツにも適用されます(ステップ4を参照)。

前提条件: ステップ0で CONFIG_STATUS=READY が返されている必要があります。ステップ0を完了していない場合は、戻って実行してください。

ステップ1: データ収集

Pythonコレクターを実行して、自動化された情報源からデータを収集します:

cd {SKILL_DIR} && python3 skills/tracking-list/scripts/collect.py --date {YYYY-MM-DD} --depth default -o {CWD}/data_{YYYY-MM-DD}.json

パラメータ:

  • --date: 対象日、デフォルトは今日(YYYY-MM-DD)
  • --depth: 収集の深さ — quick(高速、結果が少ない)、default、deep(包括的)
  • --sources: 特定の情報源のみ、例: --sources reddit hackernews github
  • -o: 出力JSONファイルパス

機能:

  • 5つのコレクターを同時に実行(Reddit、HN、GitHub、HuggingFace、arXiv)
  • 時間枠: [昨日08:00、今日08:00) UTC+8
  • パイプライン: 収集 → スコアリング(1-10) → 重複排除 → クロスソースリンク → 検証ボーナス
  • すべてのアイテム、統計、収集メタデータを含む構造化JSONを返す

タイムアウト: デフォルトの深さで最大3分、深い場合は最大5分を許可します。

ユーザーが --exclude タイプ(例: --exclude Funding)を指定した場合、ステップ3でフィルタリングするタイプをメモします。

X/Twitter検索

自動収集が完了したら、Web検索を使用して、追跡対象エンティティからの最近のX/Twitter更新情報を発見します。追跡対象のXハンドルは {SKILL_DIR}/lib/entities.py の X_HANDLES にリストされています。

検索戦略: マルチレイヤーアカウントチェック

X/Twitterを3つのレイヤーで優先順位順に検索:

レイヤー1 — 公式アカウント(最優先): 公式の企業/製品アカウントからの最近の投稿を検索します。ハンドルは {SKILL_DIR}/entities/ のエンティティファイルにリストされています。

  • 焦点: モデルリリース、製品ローンチ、APIアップデート、価格変更

レイヤー2 — CEO / 主要人物アカウント: 主要人物のアカウントで、公式アカウントがカバーしない可能性のある発表、プレビュー、コンテキストを確認します。各エンティティファイルの「Key People」としてリストされています。

  • 焦点: 初期プレビュー、戦略的コンテキスト、技術的詳細、競合に関するコメント

レイヤー3 — KOLとベンチマーク機関: 独立した分析、ベンチマーク結果、話題のディスカバリーについて、AIオピニオンリーダーと評価アカウントを確認します。{SKILL_DIR}/entities/kol.md と {SKILL_DIR}/entities/benchmarks-academic.md を参照してください。

  • 焦点: 論文ハイライト、ベンチマークランキング、コミュニティトレンド、独立テスト

検索の実行

各検索の深さについて:

深さレイヤー1(公式)レイヤー2(関係者)レイヤー3(KOL)
quick優先順位で上位5エンティティスキップスキップ
defaultすべての主要エンティティ(約20)トップCEOアカウント(約10)トップKOL(約5)
deepXハンドルを持つすべてのエンティティすべての関係者アカウントすべてのKOL + ベンチマークアカウント

以下のようなWeb検索クエリを使用:

  • site:x.com @{handle} since:{昨日} — 特定のアカウントの投稿
  • site:x.com "{エンティティ名}" AI announcement — より広範な発見
  • site:x.com AI model release OR benchmark OR open-source {日付} — トレンドのAIニュース

RT/引用ツイートの処理

発見された投稿がリツイート(RT)または引用ツイートの場合:

  1. 元の投稿をトレース — イベントのタイムスタンプは、RT/引用の時間ではなく、元の投稿時間です
  2. 元の投稿時間が24時間の収集ウィンドウ [昨日08:00、今日08:00) UTC+8 内にあることを検証
  3. source_url にはRT/引用のURLではなく、元の投稿URLを使用
  4. source_label で元の作成者をクレジット(例: "@AnthropicAI on X(@karpathy RT経由)")

適時性の検証

  • すべてのX投稿時間は、ウィンドウ検証のためにUTC+8に変換する必要があります
  • 収集ウィンドウは [昨日08:00、今日08:00) UTC+8 です
  • このウィンドウ外の投稿は拒否されます — 関連性に関わらず含めないでください
  • RT/引用ツイートの場合は、リツイート時間ではなく元の投稿時間を検証してください

Xソースアイテムのソース優先度

優先度ソースタイプ信頼性
1公式ブログ / チェンジログ最高
2公式X/Twitterアカウント高
3APIチェンジログ / ドキュメント高
4公式GitHubリリース高
5CEO / 主要人物Xアカウント中高
6ベンチマーク機関Xアカウント中
7KOL Xアカウント参考のみ — クロス検証が必要

KOLアカウント(優先度7)のみからソースされたアイテムは、控えめにスコアリングし、公式ソースとのクロス検証のためにフラグを立てる必要があります。

X発見結果の組み込み

検証された各X/Twitter更新について:

  1. source: "x"、source_url を元のツイートへのポインタ、source_label を "@{handle} on X" として、TrackerItemを作成します
  2. 同じイベントが既に自動コレクター(Reddit、HN、GitHubなど)によって発見されている場合は、重複を作成するのではなく、cross_ref としてマージします — これにより検証スコアが強化されます
  3. 自動データにない真に新しい発見である場合は、適切なスコアリングで新しいアイテムとして追加します

ステップ2: 仕様書を読む

データ収集が完了したら、トラッキング仕様書を読んで、スコアリング基準、レコード形式、適時性ルールを理解します:

Read {SKILL_DIR}/skills/tracking-list/SKILL.md

この仕様書は以下を定義しています:

  • 4つのトラッキングタイプ(製品/モデル/ベンチマーク/資金調達)と包含/除外基準
  • ソース優先度ランキング
  • スコアリング基準(5次元の1-10スケール)
  • 適時性検証ルール(イベント日 ≠ ページ日)
  • クロス検証要件(7以上のスコアには2つ以上の独立したソースが必要)
  • レポートのレコード形式

レポートを作成する前に仕様書を十分に理解してください。 スコアリング参照テーブルとタイプ分類ガイドに特に注意してください。


ステップ3: レポートを生成する

  1. ステップ1のJSON出力を読み込む
  2. レポートテンプレートを読む: Read {SKILL_DIR}/templates/report.md
  3. 作業ディレクトリに report_{YYYY-MM-DD}.md を生成する

レポート生成ルール:

  • 言語: デフォルトは英語です。--lang が明示的に指定されない限り、すべてのコンテンツを英語で記述してください。ソースデータが異なる言語の場合は翻訳してください。エンティティ名(固有名詞)はそのままにします。
  • ソースリンク: すべてのアイテムには、元のコンテンツを指すクリック可能なソースリンク [ソース名](URL) を含める必要があります。これはTLDR、詳細エントリ、コンパクトテーブル行など、すべてのセクションに適用されます。
  • 詳細品質: 要約箇条書きには、バージョン番号、改善率、パラメータ数、価格、可用性日付、ベンチマークスコアなど、具体的な詳細を含める必要があります。具体的な数値のないあいまいな説明は避けてください。
  • 事実検証可能性: スコアが7以上のアイテムは、少なくとも2つの独立したソースで検証する必要があります。各検証済みアイテムについて、レポートの該当エントリにクロス参照をリストしてください。
  • スコアリング参照: 仕様書のスコアリングテーブルに従って、1〜10のスコアを割り当てます。各スコアに影響を与える要因を説明する正当化を提供します。
  • タイプ分類: 各アイテムを正確に4つのタイプ(製品、モデル、ベンチマーク、資金調達)の1つに分類します。タイプ分類ガイドに従って、不適切な分類を回避します。

ステップ4: オプションの後処理

設定で有効になっている場合、レポート生成後にオプションのステップを実行します。

これらのスキルのドキュメントは {SKILL_DIR}/skills/ にあります:

  • gen-image/SKILL.md — インフォグラフィック画像生成
  • gen-social/SKILL.md — SNS配信
  • gen-message/SKILL.md — メッセージダイジェスト

ユーザーの設定で有効になっている機能のみを実行します。チェックしてください:

  • IMAGE_GEN_PROVIDER が設定されている → gen-imageを呼び出す
  • SOCIAL_ENABLED=true → gen-socialを呼び出す
  • MESSAGE_ENABLED=true → gen-messageを呼び出す

インフォグラフィック画像(gen-image)

gen-imageスキルのドキュメントを読み、適切なパラメータで呼び出します:

  • IMAGE_GEN_PROVIDER を使用して画像生成プロバイダーを選択
  • IMAGE_STYLE を使用してビジュアルスタイルを選択
  • レポートデータを入力として渡す
  • --lang が指定されている場合は、プロンプトにその言語を使用

SNS配信(gen-social)

gen-socialスキルのドキュメントを読み、適切なパラメータで呼び出します:

  • SOCIAL_PLATFORM と SOCIAL_STYLE を渡す
  • --lang が指定されている場合は、それに従って言語を設定
  • 簡単な設定の場合は環境変数を使用、高度な設定の場合は設定ファイルを参照

メッセージダイジェスト(gen-message)

gen-messageスキルのドキュメントを読み、適切なパラメータで呼び出します:

  • MESSAGE_MIN_SCORE(デフォルト5)で最小スコアを設定
  • MESSAGE_MAX_ITEMS(デフォルト10)で最大アイテム数を設定
  • MESSAGE_LINKS でリンク配置(bottom または inline)を制御
  • MESSAGE_CATEGORY_BALANCE(デフォルトtrue)でコンテンツタイプ間のバランスを確保

関連スキル