← お渡しページ(トップ)へ
このページの目次

第4章 情報収集を任せよう

貼るだけで、あとの整理が全部片付く。
この章で作るのは、その入口です。

この仕組みの基本は、情報を集めに行くことではなく、あなたが「いいな」と思ったものを受け取ることです。
(探しに行かなくても届く「ニュースタブ」は、この章の後半で作ります)

Xで見つけた記事。
YouTubeで刺さった話。
ふと思いついたアイデア。

「これ、いいな」と気づけるのは、あなただけです。

だから入口は、あなたのワンアクション。
貼るだけ。放り込むだけ。

そのかわり、貼ったあとは何もしなくていい。
整理も、要約も、分類も、タスク化も、ぜんぶAI社員の仕事です。

ちなみに、この「集める→提案→裁く→身につく」の流れは、DIKWモデル(データ→情報→知識→知恵)という考え方を家庭用にしたものです。
放り込んだURLやメモが「データ」。
司書がそれをあなたの明日につないだ提案が「情報」。
裁きの積み重ねから育つ判断基準が「知識」。
そして提案が実行の習慣に変わったら、それが「知恵」です。
名前は覚えなくて大丈夫。あなたがやるのは、貼ることだけです。

入口は、基本の3つに加えて、おまけの入口(Obsidian Web Clipper・Xポスト)と、探しに行かなくても届くニュースタブを用意しました。
まずは基本の3つから、好きなものを1つ選べば十分です。


入口①: 知識タブの取り込み箱

ダッシュボードを開いているなら、これが一番の近道です。

知識タブの上に「URLやテキストをここに放り込む」という箱があります。
気になる記事のURLでも、書きかけの考えごとでも、貼ってEnter。
「受け取りました。次の巡回で司書が提案にします」と出たら、もう手放してOKです。


入口②: フォルダに放り込むだけ

ダッシュボードのフォルダの中に inbox というフォルダがあります。

メモでも、URLを書いただけのファイルでも、放り込んでおくだけでOK。
朝夜の自動巡回か、次に「ダッシュボードを巡回して」と言った時に、まとめて提案に変わります(自動が基本なので、放り込んだら忘れてOKです)。

inbox とは別に、あなたのPCの好きなフォルダを1つ「自動取り込みフォルダ」として登録することもできます。登録したフォルダに置いたメモ(.md / .txt)は、自動で inbox へ運ばれます(原本は動かしません)。登録は、知識タブの「⚙ 取り込みの設定」にある「自動取り込みフォルダ」欄に、フォルダの場所を貼るだけです。

スマホで見つけた記事は、Discord連携(第8章・任意)を設定していれば「メモ 記事のURL」と送るだけ。未設定でも、自分宛てのメモに送っておいて、PCを開いた時にここへ移せばOKです。


入口③: 画面の呼びかけ欄に貼るだけ

ダッシュボードを開いているなら、タスクタブの呼びかけ欄にURLを貼って「知識にしておいて」と送るだけでもOKです。

宛先が秘書でも、中身が知識の仕事なら、ちゃんと司書が引き受けます。


Obsidian Web Clipperから放り込む(使っている人向け・任意)

もう1つ、おまけの入口です。

ノートアプリのObsidianと、そのブラウザ拡張「Obsidian Web Clipper」を普段から使っている方は、Clipperの保存先をこのダッシュボードのinboxへ向けるだけで、「気になったページをクリップする→巡回で提案に変わる」がつながります。
使っていない方は、この節は飛ばして大丈夫です(使わなくても何も困りません)。

設定は3手です。

  1. Obsidianで、ダッシュボードのフォルダを保管庫として開く。Obsidianを起動し、「保管庫としてフォルダを開く」で、解凍したダッシュボードのフォルダを選びます
  2. Obsidian Web Clipper拡張の設定を2箇所変える。ブラウザのObsidian Web Clipperアイコンから設定(歯車マーク)を開き、使うテンプレートの「Vault(保管庫)」を1で開いたダッシュボードの保管庫に、「Note location(ノートの場所)」のフォルダを inbox にします(設定画面が英語表示の場合があります)
  3. あとはクリップするだけ。気になったページでClipperのボタンを押せば、記事がinboxへ保存されます。次にAIへ「ダッシュボードを巡回して」と言えば、司書が提案に変えてくれます

クリップしたファイルの冒頭には、Clipperが付けた管理情報(タイトルやURLなど)が入りますが、そのままで大丈夫。司書は本文を読んで提案を作ります。

すでに自分の保管庫(Vault)でObsidian Web Clipperを使っている方は、保存先を変える必要はありません。
逆向きに、いま使っている保存先フォルダをダッシュボードの自動取り込みフォルダ(入口②)に登録すれば、クリップ→自動取り込みがつながります。
保存先がどのフォルダか分からない・調べるのが面倒、という時は、次のプロンプトを貼るとAIが保存の痕跡から突き止めて、設定までつないでくれます(知識タブの「⚙ 取り込みの設定」からもコピーできます。
同梱の prompts_kit/11_WebClipper保存先さがし.md と同じものです)。

あなたは、Obsidian Web Clipper(ブラウザ拡張)でクリップした記事が実際に保存されているフォルダを突き止め、このダッシュボードの自動取り込みフォルダへつなぐAIアシスタントです。README_dev.md のデータ契約の watch/ 節を読んでから、次の手順を番号順に実行してください。

前提: Obsidian Web Clipperの保存先設定はブラウザ拡張の中にあり、Obsidianの保管庫フォルダの中には書かれていません。保管庫から分かるのは「実際にどこへ着地したか」という痕跡だけです。痕跡から候補を出し、最後に使う人が拡張の設定画面で答え合わせできる形で報告します。推測を断定で書かず、根拠として示せる事実だけを書いてください。

表示の約束(最重要): チャット画面に出す文章は、使う人が読んで判断や行動に使う行だけにしてください。走査の途中経過・件数の内訳・除外したフォルダの一覧・技術的な考察は、チャットに書かずに作業レポートファイル watch/clipper_scan_report.md へ保存し、チャットには「詳細はレポートに保存した」と1行だけ添えます。途中の質問は10行以内、最後の報告は30行以内が目安です。同じ内容(答え合わせの手順・結果の表)を2回出さないでください。

1. Obsidianの保管庫フォルダを特定する。先にObsidianアプリの保管庫一覧ファイルを読む(macOS: ~/Library/Application Support/obsidian/obsidian.json / Windows: %APPDATA%\obsidian\obsidian.json / Linux: ~/.config/obsidian/obsidian.json)。開いている保管庫("open": true)が1つだけなら、「保管庫は◯◯でよいですか? 分からなければ、わからない とだけ答えてください。こちらで探します」と1行で確認する。分からない・返事に迷いが見えたら、それ以上聞かずAIが自分で探して特定してよい。一覧が読めない・開いている保管庫が複数ある・自走で探す場合は、ホームフォルダ配下の定番の場所(書類・デスクトップ・クラウド同期フォルダ等)から「.obsidian」という名前のフォルダを持つディレクトリを探し、候補が2つ以上あればフルパスの一覧を見せて「どれですか」の1問で選んでもらう(アプリのキャッシュ・ゴミ箱・バックアップの中は候補にしない)。1つのメッセージに質問は1つだけにする。
2. 中身の指紋でクリップの着地ファイルを探す。フォルダ名では探さない(フォルダ名は人によって違う)。保管庫内の .md ファイルを全走査し、冒頭のYAMLフロントマターが次の両方を満たすものを集める。 A) tags に clippings が含まれる B) source: に http から始まるURLがある。除外するパス: .obsidian/ .trash/ .git/ node_modules/ に加え、バックアップ・複製・配布物・教材テンプレートとみられるフォルダ(別の保管庫の複製が混ざっていると同じファイルが二重に数えられ、誤った候補が出る)。複製かどうか迷った時は、同じ source のURLが複数の場所に現れていないかを数え、重複が出ている側を複製の疑いとして扱う。除外したフォルダの一覧と根拠は作業レポートファイルに書く(チャットに出さない)。1件も見つからない場合は、条件をBだけに緩めて再走査し、「Obsidian Web Clipperの既定テンプレートを書き換えている可能性」として報告する。
3. 保存先を判定する(件数で決めないこと)。 (1) 各ファイルのフロントマターの created: の日付を読む (2) 日付が最も新しい側(最新クリップから遡って30日)のファイルがあるフォルダが現在の保存先の第一候補 (3) ヒットしたフォルダに親子関係がある場合(例 X/ と X/済み/)、親フォルダが保存先で、子フォルダはクリップ後の仕分け先と判断する (4) 件数が最も多いフォルダを保存先と判定しない(仕分けする習慣がある人ほど、保存先の直下は空に近くなる)。判定の根拠(走査件数・指紋ヒット総数・最新クリップから遡って30日の件数・最新クリップのファイル名と日付・仕分け先とみられるサブフォルダ・確信度)を作業レポートファイルへ保存する。確信度の基準: 高(最新クリップから遡って30日が1フォルダに集中)・中(2箇所以上に散在。テンプレートが複数ある可能性)・低(ヒット5件未満、または集中度50%未満)。
4. 設定の可否を1問だけ聞く。確信度が高または中なら、チャットには次の4行だけを出す: ①保存先の絶対パス ②確信度と根拠1行(例: 最新クリップから遡って30日の157件中155件がここに集中) ③現在の自動取り込みフォルダの設定(watch/settings.json に既に別のフォルダが設定済みなら、その値と「上書きになる」ことを明記) ④「この絶対パスを自動取り込みフォルダに設定しますか?」の1問——この1問の中に、先に対象フォルダ直下の取り込み対象ファイル数(.md/.txt・動画/音声・画像の3種だけ。それ以外の拡張子は取り込まれないので数えない)と .md/.txt の数を数えて『既存N件(メモM件・約K分=ceil(N/5)×20秒。メモ以外の対象は動画/音声=目印カード・画像=件数記録)が取り込まれます』を含める。詳細の根拠・除外一覧・答え合わせ手順はここでは出さない(最後の報告で1回だけ出す)。ただし、候補が watch/settings.json の現在値と一致している場合は、確信度に関わらず「設定は既に済んでいる」を報告の1行目で言い切り、手順6の動作確認(テストファイル1枚)だけを行って締める——「貼ってください」の案内はしない(既に入っているものを貼らせない)。確信度が低い場合は設定せず、手順7の⑥答え合わせ手順だけを提示し、確定した値を知識タブの「⚙ 取り込みの設定」内の「自動取り込みフォルダ」欄に貼るよう案内して終える。
5. 承認されたら設定する。watch/settings.json が既にあれば、先に watch/settings.json.bak へ退避コピーを作ってから、folder の値だけをその絶対パスへ書き換える(他のキーは変えない)。無ければ watch/settings.example.json を settings.json という名前で同じ watch/ フォルダへコピーしてから folder を書き換える。
6. 動作確認をする。先に次の2行だけ伝える:「保存先フォルダに既にあるメモも設定直後にまとめて取り込まれます(原本はそのまま・20秒ごとに5件ずつ・同じファイルは初回の1回だけ)」「AI司書の自動巡回が有効なら、初回の取り込みの後に司書が1回動き、その分のAI利用料がかかります」。その上で「取り込みテストです」と1行書いたテスト用 .md ファイルを保存先へ1件だけ置き、40秒ほど待って inbox/ に同じ内容のコピーが増えたことを確認する。既存ファイルが多い時は失敗と判定せず、(既存の件数÷5)×20秒を目安にさらに待って20秒おきに確認し直す。確認できたら、自分で作ったテストファイルと inbox/ 側のそのコピーの2件だけを片付ける(使う人がもともと置いていたファイルと、その inbox/ 側コピーは絶対に触らない)。
7. 成功条件と最終報告(1回だけ・30行以内)。チャット報告の1行目は、必ず「いまあなたがやることは: ありません/◯◯が1つあります」の言い切りから始める。完了した事実と、やってもやらなくてもよい任意の確認は別の段落に分けて書き、任意側には「必須ではありません」を添える。言い切りの直後に「この後どうなるか」を1行入れる(例: 今後は保存するたびに、約20秒でこのアプリの知識タブへ自動で入ります)。成功条件: 保存先が件数の根拠つきで特定され、答え合わせの手順まで提示された。自動取り込みフォルダへ設定した場合は、テストファイルが inbox/ へ自動で取り込まれた。報告は次を含める: ①保存先(保管庫ルートからの相対パスと絶対パス) ②根拠の要約1行(走査◯件・指紋ヒット◯件・最新クリップから遡って30日◯件) ③仕分け先とみられるサブフォルダ ④作業レポートファイルの場所 ⑤確信度 ⑥答え合わせの手順として次の文をそのまま提示する(この報告で1回だけ):「ブラウザのObsidian Web Clipper拡張アイコン → 設定(歯車)→ Templates → 使っているテンプレートを選ぶ → Note location 欄の値が正解です。テンプレートごとに保存先が違うので、複数ある場合は全部確認してください。右上の Export でテンプレートを .json に書き出した中の path も同じ値です。何も変更していなければ既定は Clippings です」 ⑦次の表で結果を報告する(セルにはOK/NGと数字1個まで。長い根拠を書かない)。

| 確認 | 判定 |
|---|---|
| 保管庫を全走査し、指紋(clippingsタグ+sourceのURL)で保存先を特定した | OK または NG |
| 走査の詳細(除外フォルダ含む)を作業レポートファイルへ保存した | OK または NG |
| 答え合わせの手順(拡張のTemplates画面)を提示した | OK または NG |
| 自動取り込みフォルダへ設定し、テストファイルが inbox/ へ自動で取り込まれた | OK または NG(設定を見送った時は「見送り」と理由) |
| 使う人のファイルを動かしたり消したりしていない(自分で作ったテスト2件の片付けを除く) | OK または NG |

XポストのURLを貼るとき

Xのポストだけは、少し事情が違います。
XのページはAIのWeb閲覧では読めないことが多いのです(ログインを求められたり、中身が空で返ってきたりします)。

なので、Xポストの取り込みはとてもかんたんにしてあります。

XポストのURLを貼って「このXポストを取り込んで」とあなたのAIに言うだけです(AIが同梱の手引き ai/x_import.md を読んで進めます)。
無料の道具(yt-dlp)を使ってURLからポストの本文・投稿者・日付を取り出し、inboxへ保存して、提案化までつなぎます。道具がまだ入っていなければ、AIが導入から案内してくれます。

動画つきのポストなら、本文ごと取り出せます。
動画の無いポストは道具でも読めないことがあり、その時はAIが「本文をコピーして貼ってください」と1回だけお願いしてきます。本文をコピペすれば、あとは同じ流れです。


X APIキーを持っている人向け(任意)

X APIキーを持っている人は、APIを使ってポストを取り込むこともできます。
読み取りは1件およそ0.005ドル(1円弱)で、無料枠はありません。
使わない場合も、X APIキーが無い場合も、手帳の全機能は従来どおり動きます。

取込方法は3段構えです。

  1. X APIキーがある → X APIで取得
  2. X APIキーがない → yt-dlpで取得
  3. どちらも使えない → Xポストの本文をコピーして貼り付け

Google連携にAPIキーは一切不要です(従来どおり使えます)。
設定したい人は、あなたのAIに「X連携をセットアップして」と言ってください(AIが ai/x_setup.md を読んで、設定を代行してくれます。
知識タブの「X連携」カードからでも始められます)。


急ぎの時は「今すぐ」と言う

ためておいて、巡回でまとめて処理。
これが基本の流れです。

たまり具合は覚えておかなくて大丈夫。

あなたの返事や判断が必要なものがあると、画面上部のバナーが「あなたの出番待ちが◯件あります」と教えてくれて、ボタン1つで巡回が始まります。
AIだけで片付けられるもの(メールの振り分けなど)はバナーに数えず、巡回のときにまとめて片付きます。

「この記事、今日の作業に使いたい」という急ぎの時だけ、あなたのAIにURLごと貼って「これ、今すぐ提案にして」と頼んでください。
次の巡回を待たず、その場で提案になります。


ニュースは、集めに行かず「届く」側へ(ニュースタブ)

ここまでは「見つけた情報を放り込む」入口でした。
最後は、そもそも探しに行かなくても毎朝勝手に届く入口です。

ニュースタブを開いてみてください。

  • 上のチップで、関心のあるトピックだけに絞り込めます(「すべて」に戻せばぜんぶ出ます)
  • いちばん上の大きなカードは、最新の未読記事です
  • 記事のタイトルを押すと、元の記事が新しいタブで開きます(開いた記事は既読になり、タブの未読バッジが減ります。「すべて既読」でまとめて0にもできます)
  • 「これは使えそう」と思った記事は 「→ 知識へ」 を1回押すだけ。取り込み箱(この章の入口①)と同じ流れに乗って、次の巡回で司書が提案に変えてくれます

つまりニュースタブは、第5章につながる専用の玄関です。
読むだけで終わらせず、「→ 知識へ」から提案→タスクへ変わっていくのが、このアプリのニュースの使い方です。


有効にするには

ニュースの自動収集は、news/settings.json という設定ファイルを置いた時だけ動きます(置くまでは何も取得しません。通信も発生しません)。

作り方は2つです。

  1. はじめまして整理(第2章の面談)に任せる。整理の締めに「ニュースも毎朝集めておこうか?」と聞かれるので、望めばあなたの関心に合わせた設定を自動で作ってくれます
  2. AIに頼む。同梱の見本 news/settings.example.json(AI関連の公式フィード・定番メディア10本入り)を settings.json という名前でコピーしてもらえば、そのまま動き始めます

既定では毎朝6:30に、Claude Code・OpenAI・Google AIなどの公式フィードと定番のAI系メディアから新着を集めます。朝の自動段取りを設定していれば、その15分前に集まる時刻で作られるので、朝いちばんのダイジェストに「今朝のニュース」も載ります。


フィードを増やす

「AI以外のジャンルも集めたい」と思ったら、ニュースタブの「+ 連携」ボタンを押してください。
プロンプトが3枚入っていて、押すだけでコピーできます。

1枚目は、フィードを増やす係です。

あなたは、このダッシュボード(クローバー)のニュース収集へ新しいフィードを追加するAIアシスタントです。README_dev.md の「外部連携インターフェース」節と news/settings.example.json を読んでから、次の手順を番号順に実行してください。クローバー本体のコード(serve.py など)は改造しないでください。使う人への質問と報告は専門用語を使わず平易に、技術方式の選択は自分で決めて推奨1つを言い切ってください。

0. 作業場所を確定する: 今のフォルダに serve.py と config.json の両方があれば、そこがクローバーのフォルダ。無ければ「クローバーのフォルダ(serve.py があるフォルダ)はどこですか?」と1問だけ聞く(似た名前のフォルダを探し回らない——取り違えるより聞く方が確実)。以後のファイル名はそのフォルダ直下からの相対パス。
1. 「どんなジャンルのニュースを増やしたいですか?(例: AI画像生成、Web制作、投資、ゲーム開発)」と1問だけ聞き、答えを受け取ってから先へ進む。複数ジャンルが挙がったら、1ジャンルずつ順に処理する。
2. そのジャンルのRSS/Atomフィードを探す。優先順は ①特定のツール・サービスのジャンルなら公式ブログ・公式発表のフィード ②業界全体の広いジャンル(Web制作・デザイン等)なら定番の専門メディアのフィード ③Zenn・Qiitaなどのトピックフィード。GitHub releases などリポジトリの更新履歴フィードは選ばない(バージョン番号の羅列はニュースとして読めない——読み物として書かれた記事・発表を優先する)。note などのハッシュタグ/タグ購読フィードも選ばない(誰でもタグを付ければ載る無審査の流し込みで、記事の質の選別が効かない)。X・SNSの非公式RSSミラー(nitter などの代理サイト)も選ばない(公式の配信でなく、いつ止まるか分からない)。URLは配信元サイトから辿っても、よくあるパターンの類推から試してもよいが、どちらの場合も次の実在確認を必ず通す(確認していないURLは採用しない)。
3. 候補URLごとに実在確認を3点行う: ①HTTP 200で取得できる ②RSS 2.0・RSS 1.0(RDF)・AtomのいずれかとしてXMLパースが通る ③最新エントリのタイトルと日付を取り出して提示できる。3点を通過したURLだけを採用する(1つでも通らないURLは捏造の疑いありとして捨てる)。
4. news/settings.json を開き、feeds[] へ通過したフィードを {"name": "表示名", "url": "フィードURL", "source": "出典名"} の形で追記する。追記のみ行い、既存のフィードは消さない・並べ替えない。feeds は合計20本まで(超える分は追加せず、どれを外すか使う人に確認する)。ファイルが無い場合は news/settings.example.json を settings.json という名前でコピーしてから追記する。編集は一時ファイルへ書いて読み直してから置換する。
5. 必要なら interests[] にもジャンル名を追加してよい(ジャンルごとに1語。ニュースタブの絞り込みチップに出る)。
6. 公式フィードが見つからない場合は、Zenn・Qiita等のトピックフィードを代替として提案する。それも無ければ「このジャンルの安定したフィードは見つからなかった」とそのまま伝える(それらしいURLをでっち上げない)。X・SNSなど、そもそもRSSが無いソースを求められた場合は、ニュースタブ「+ 連携」の「Xのポストをタイムラインで見る」(Xの場合・ニュースタブの「X」に届く。Xの有料キーが必要——読み取り1件約0.005ドル≒約0.75円・前払い、と一言添える)または「自分のAIが集めた記事をここへ届ける」(その他のソース)のカードを案内して終える。
7. 最後に、追加したフィードを表で報告する。列は「フィード名 | URL | 最新記事の日付」。次の取得時刻(news/settings.json の fetch_times)からニュースタブへ流れ始めることを一言添える。

ポイントは、AIが実在確認を通したURLだけを追加すること。
AIは実在しないURLをそれらしく作ってしまうことがあるので、「HTTP 200・XMLパース・最新記事の日付」の3点検査を通ったフィードだけが設定に入ります。


自前のシステムやMCP(AI同士をつなぐ接続口)をつなぐ

2枚目は上級者向けのおまけ……ではなく、このアプリの拡張の入口です。

あなたが既に持っているニュースの入手経路——自作のスクリプト、契約しているAPI、MCPサーバー——があるなら、そこから集めた記事をこのニュースタブへ流し込めます。

あなたは、使う人が持っているニュースソース(自前システム・API・MCP・スクリプト)を、このダッシュボード(クローバー)のニュースタブへつなぐAIアシスタントです。README_dev.md の「外部連携インターフェース」節を読んでから、次の手順を番号順に実行してください。使う人への質問と報告は専門用語を使わず平易に、技術方式の選択は自分で決めて推奨1つを言い切ってください。

0. 作業場所を確定する: 今のフォルダに serve.py と config.json の両方があれば、そこがクローバーのフォルダ。無ければ「クローバーのフォルダ(serve.py があるフォルダ)はどこですか?」と1問だけ聞く(似た名前のフォルダを探し回らない——取り違えるより聞く方が確実)。以後のファイル名はそのフォルダ直下からの相対パス、<ポート番号> はそのフォルダの config.json の port の値(既定は8787)。
1. 次の3問を1問ずつ聞く(まとめて聞かない)。
   - どのニュースソースをつなぎたいですか?(例: 社内の情報共有ツール、有料ニュースのAPI、MCPサーバー、自作の収集スクリプト、XのAPI——Xは専用カード「Xのポストをタイムラインで見る」が近道)
   - そのソースから記事を取り出す手段は何ですか?(MCP / API / RSS / スクリプト / その他)
   - どれくらいの頻度で流し込みたいですか?(毎朝1回、1日2回 など)
2. 役割分担を確認する: 記事の取得はあなた(使う人のAI環境)側で行い、クローバーは受け口だけを提供する。クローバー本体(serve.py)は改造しない。
3. 受け口の契約: クローバーが起動している状態で POST http://127.0.0.1:<ポート番号>/api/news/ingest へJSONを送る(ポート番号は config.json の port。既定は8787)。本文の形は {"items": [{"title": "記事タイトル", "url": "https://記事のURL", "source": "ソース名", "published_at": "2026-08-09T07:00:00+09:00", "thumbnail_url": "https://画像のURL"}]}。title と url は必須、残りは任意。1回に送れるのは50件まで。同じURLは自動で重複排除されるので、毎回全件を送り直しても増えない。
   curlの実例(8787の部分は必ず自分の config.json の port の値に置き換える): curl -X POST http://127.0.0.1:8787/api/news/ingest -H "Content-Type: application/json" -d '{"items":[{"title":"テスト記事","url":"https://example.com/test"}]}'
3.5. クローバーが既に同じ配信元を購読していないか、news/settings.json の feeds を見せてもらって確認する(同じURLは自動で重複排除されるため、送っても added が 0 になる)。連携先が決まったら、確認の対象を連携先に合わせて広げる(X連携なら x/ フォルダ内の既存設定と、OSのスケジューラ登録の両方——枚3の定期化の手順にある実例コマンドで確かめる)。
4. まず試し流しを1件行う: 実際のソースから記事を1件取り出して上の形でPOSTし、応答の added が 1 になることを確認する。そのあと使う人に、ニュースタブへ「連携」バッジ付きで表示されたことを画面で確認してもらう。画面をすぐ確認できない環境では、GET http://127.0.0.1:<ポート番号>/api/data/news に該当URLの項目が origin "ingest" で入っていることの確認で代えてよい。
5. 試しが通ったら、本流し込みの仕組みを使う人のAI環境側に作る。定期実行したい場合は、使う人のOSのスケジューラ(Macは launchd、Windowsはタスクスケジューラ)か、あなたのAIへの毎朝の頼みごとに組み込む形を案内する。
6. 掟を守る: APIキー・パスワード等の秘密情報をクローバーのフォルダ内のファイルへ書かない(秘密情報は使う人のAI環境側で管理する。例外: Xの鍵だけは、クローバー同梱の鍵置き場〔x/settings.json・設定手順は ai/x_setup.md〕を使ってよい——専用カード「Xのポストをタイムラインで見る」の手順に従う)。クローバーの既存データ(data/ 配下)を直接編集・削除しない(ニュースの書き込みは /api/news/ingest だけを使う)。流し込む記事は「読む人の役に立つか」で選別する: リポジトリのリリース履歴・反応がほとんど付いていない投稿・専門家にしか読めない技術速報は流さず、公式発表・まとまった記事・広く価値のあるものを優先する(全部流すより、少なくても選ばれている方が価値が高い)。古い記事をまとめて流さない(ニュース欄は100件を超えると古い順に消える。目安は直近7日分)。
7. 最後に、つないだソース名・取得手段・頻度・試し流しの結果(addedの件数と画面確認)を表で報告する。

仕組みは単純で、このアプリには POST /api/news/ingest という受け口が1つ空いています。
あなたのAIが集めた記事をここへ送ると、ニュースタブに「連携」バッジ付きで並びます。
同じURLは自動で重複排除されるので、毎回まとめて送り直しても大丈夫。
取得はあなたのAI側・受け取りはクローバー側、という役割分担です。


Xのポストをタイムラインで見る

3枚目は、Xを情報源にしたい人向けの専用カードです。
検索ワードの新着や、気になる発信者の新着ポストを、ニュースタブの「X」へタイムライン表示で届けられます(X連携がオンの間、ニュースタブ上部に「X」の切り替えが現れます)。

前提が1つだけあります。Xの有料APIキーです(読み取り1件約0.005ドル≒約0.75円・無料枠なし)。
キーの設定は、知識タブの「⚙ 取り込みの設定」のX連携カードからAIに任せられます。費用をかけたくない場合は、1枚目の「見たいジャンルのニュースを増やす」で専門メディアの記事を無料で集める、が正式な代替です。

あなたは、Xのポスト(検索ワードの新着や、気になる発信者の新着)を、このダッシュボード(クローバー)のニュースタブの「X」(タイムライン表示)へ届ける設定を行うAIアシスタントです。取得と変換はクローバー同梱の収集スクリプト x/collect.py が行うため、あなたの仕事は「条件を決めて、設定ファイルを作り、試してから、定期実行につなぐ」ことです。README_dev.md などのファイル名は、クローバーのフォルダ直下からの相対パスです。手順0で作業場所を確かめてから、次の手順を番号順に実行してください。使う人への質問と報告は専門用語を使わず平易に、技術方式の選択は自分で決めて推奨1つを言い切ってください。1つのメッセージに質問は1つだけ。費用・代替案の説明は、質問と同じメッセージに詰め込まず、選ばれた後に出す。

0. 作業場所を確定する: 今のフォルダに serve.py と config.json の両方があれば、そこがクローバーのフォルダ。無ければ「クローバーのフォルダ(serve.py があるフォルダ)はどこですか? 分からなければ、わからない とだけ答えてください。こちらで探します」と1問だけ聞く(似た名前のフォルダを探し回らない——取り違えるより聞く方が確実)。分からない・返事に迷いが見えたら、それ以上聞かずAIが自分で探して特定してよい。探し方: デスクトップの clover フォルダ→無ければユーザーフォルダ配下で serve.py と config.json が並ぶフォルダを探す(探索は1分まで。候補が2つ以上見つかったらフルパスの一覧を見せて「どれですか」の1問で選んでもらい、見つからなければフォルダ画面を見せてもらう)。特定したら「ここで作業する」とフルパスを1行伝えてから進める。以後のファイル名はそのフォルダ直下からの相対パス、<ポート番号> はそのフォルダの config.json の port の値(既定は8787)。
1. 役割分担と費用を最初に伝える: ポストの取得と変換はクローバー同梱の収集スクリプト(x/collect.py)が行い、あなたは条件の設定と定期実行の登録を手伝う。費用はX APIの従量課金で、読み取り1件およそ0.005ドル(約0.75円・1ドル150円換算)・無料枠なし。やらない選択も正式な使い方で、費用をかけたくない場合は「見たいジャンルのニュースを増やす」カードで専門メディアの記事を無料で集める代替がある——ここまでを先に伝え、進めるかを確認してから先へ行く。
2. 鍵の状態を確かめる: クローバーが起動している状態で GET http://127.0.0.1:<ポート番号>/api/x/status を読む(返るのは configured・enabled・month_count だけで、キーの値は返らない)。クローバーが起動していなければ先に起動を案内する。configured が false なら、ai/x_setup.md の手順(python3 x/set_token.py)でキーの設定を先に済ませる。enabled が false の時は勝手に進めず、「知識タブの『⚙ 取り込みの設定』でX連携をオンにしてから進めます」と案内して待ち、「オンにした」と言われたら /api/x/status を読み直して enabled が true になったことを確かめてから先へ進む。
3. 「何のために集めますか?」と1問だけ聞く(例: 競合や市場の動きを見張りたい・特定の人の発信を追いたい・自分のテーマの話題を広く拾いたい)。答えを受け取ったら、目的に合う収集条件を A=検索ワード(例: AI手帳) B=気になる発信者(例: @ユーザー名)の2種類からあなたが具体的に1〜3本提案し、選んでもらってから先へ進む。AとBの両方でも、複数本でもよい(1本増えるごとに費用も増える——目安は手順6)。
4. 条件を設定する: x/collect_config.example.json を collect_config.json という名前で同じ x/ フォルダへコピーし、手順3で決めた条件を sources[] へ書く(type が search なら value に検索ワード・user なら value に発信者のユーザー名〔@は付けない〕。extra_query は絞り込みの追加語)。1回の読み上限は sources[] の外側にある max_results で決める(既定10件。Xの仕様で10〜100の範囲——範囲外を書いてもスクリプトが10〜100へ丸める)。鍵はこのファイルに書かない(鍵は x/settings.json のままでよく、スクリプトが自分で読む)。ポート番号も書かなくてよい(同じフォルダの上にある config.json の port をスクリプトが自動で読む)。
5. 試し刈り: python3 x/collect.py --dry-run を1回実行する(Windowsは py x\collect.py --dry-run)。取れた件名一覧(発信者名と本文の先頭)が表示されるので使う人に見せ、要らないポスト(宣伝・無関係)が混ざっていたら collect_config.json の extra_query を直してもう1回だけ試す。絞り込みの型: 日本語だけでよければ lang:ja を付ける/宣伝は除外語で削る(例: -副業 -プレゼント -無料配布)/同じ言葉が別ジャンルでも使われる罠に注意する(実例: 「第二の脳」はメモ術のつもりでも腸活・健康の投稿を大量に連れてくる。その語を捨てて別の掛け合わせへ変える方が効くことがある)。応答は自動で x/cache/ に保存される——読み取りは1件ごとに課金されるため、あとの流し込みはこの保存分から行い、同じポストを取り直さない(取り直しは同じものへの二重払いになる)。
6. 上限と棚の掟を伝える: 既定は1本あたり1日1回・読み10件まで(変える時は使う人が collect_config.json の max_results で決める。Xの仕様で10〜100)。毎日続けると1本あたり月およそ1.5ドル(約225円・1ドル150円換算)で、条件の本数に比例して増える。流し込む前に GET http://127.0.0.1:<ポート番号>/api/data/x_posts で今の棚(items)の件数を数える——Xの棚(クローバー側の保存枠・正本は README_dev.md の data/x_posts.json 節)は100件が上限で、超えた分は「①司書へ送付済み → ②既読 → ③未読」の順に、それぞれ古いものから消える(間引き順序の掟。検索の条件は1〜2本から始める)。利用量と請求の正本はXの管理画面(コンソール) https://console.x.com (古い画面のアカウントは https://developer.x.com/en/portal/projects-and-apps )で、クローバー画面の「今月の読み取り」にはこの仕組みで読んだ分は含まれない——ここまでを一言で伝える。
7. 流し込み: まず python3 x/collect.py --from-cache <手順5で保存されたファイル> --limit 1 を実行し、記録(画面と x/logs/collect.log)に added=1 が出ることを確かめる。そのあと --limit を外して同じコマンドで残りを流す(Xから取り直さない——保存分からの流し込みは無料。この本流し込みが済むと、次回からは新着だけを読む記録〔since_id〕も自動で付く)。同じポストIDを送り直しても増えない(発信者の画像・引用元の画像・数字だけが最新値へ更新される。既読の印は消えない)。
8. 画面確認: 使う人に、ニュースタブ上部の「X」(連携がオンの間だけ現れる切り替えボタン)を押すとタイムライン表示されることを画面で確認してもらう(すぐ確認できない環境では、GET http://127.0.0.1:<ポート番号>/api/data/x_posts の items に該当のポストIDが入っていることの確認で代えてよい)。動画つきのポストは▶を押すとその場で再生され、引用ポストはカードの下に引用元が出ます。
9. 定期化と止め方を1組で渡す: (a) 先に既存の登録を確かめる——Windowsは schtasks /Query /FO CSV | findstr /I clover(0件なら全一覧を眺める)・Macは launchctl list | grep -i clover と ls ~/Library/LaunchAgents。あれば新規作成せず既存を使う。 (b) 登録前に必ず1回試走する——py x\collect.py --dry-run が動くか(「'py' は認識されていません」等で動かない時は、AIが実際のPythonの絶対パスを調べ、同梱の x\collect_daily.cmd を直接編集せず、別名コピー x\collect_daily_local.cmd を作ってそちらを登録する)。 (c) Windowsは同梱の x\collect_daily.cmd(または別名コピー)をタスクスケジューラへ毎朝1回で登録し、登録後にPowerShellで $t = Get-ScheduledTask -TaskName "<タスク名>"; $t.Settings.StartWhenAvailable = $true; Set-ScheduledTask -TaskName "<タスク名>" -Settings $t.Settings を1回実行する(PCが消えていた日の分を次回起動時に追いかける設定。確認は (Get-ScheduledTask -TaskName "<タスク名>").Settings.StartWhenAvailable が True と出ること。うまくいかない時は画面の「設定」タブで同じチェックを入れてもよい)。Macは launchd——AIが設定ファイル(plist)を生成して登録する: labelは com.clover.xcollect・which python3 で調べた絶対パスと x/collect.py の絶対パスを ProgramArguments へ・StartCalendarInterval で毎朝1回・ログの出力先は x/logs/collect_task.log。launchctl load で登録して1回試走する(スリープで寝過ごした回は起動後に launchd が追いかけるので追加設定は不要)。前回の続きから新着だけを読む仕組み(since_id)はスクリプトが自動で行い、新着が無い日は読み0件=0円になる。 (d) 止め方も同じ場で渡す: 画面の「X連携を使う」トグルをオフにすれば収集も止まる(スクリプトが実行のたびに確かめて、オフなら何もせず終わる。試しにオフで1回走らせて「何もせず終わる」を確かめ、確認できたらトグルをオンへ戻すとよい)。仕組みごと外す時はタスク/launchdの登録を削除する。定期実行の登録は費用が続く操作——月の目安金額と一緒にもう一度確認してから登録する。
10. 掟を守る: キーの値を画面・チャット・報告に出さない。クローバー本体のコード(serve.py など)は改造しない。クローバーの既存データ(data/ 配下)を直接編集・削除しない。例外: x/collect.py は改造してよい(ファイル冒頭の案内どおり、改造する時は別名コピーにして、呼び出しを別名へ向ける。アプリの更新で公式版に上書きされるため)。エラーが急に出るようになった時は、Xの仕様・プランの変更の可能性があるため、https://console.x.com で状態を確かめてもらう。
11. 最後に、次の列の表で報告する:「集める対象 | 頻度 | 1回の上限 | 月の費用目安 | 止め方」。表の下に、今日の試しで使った読み取り件数と概算費用(x/logs/collect.log の末尾に出る)・設定ファイル(x/collect_config.json)と記録の置き場所(x/cache/・x/logs/)・ニュースタブ上部の切り替えで「X」を選ぶと見られること・翌朝の何時ごろ増えるか——を1行ずつ添える。

プロンプト自体が、費用の説明→試し刈りで絞り込み→上限と止め方の受け渡しまで面倒を見ます。
「集めっぱなしで課金が膨らむ」「要らないポストで棚が埋まる」を先回りで防ぐ作りです。


次の章へ

第5章 集めた情報をタスクに変えよう

届いた提案をボタン2つで裁く、クローバーの心臓部の章です。