株しらべのXを作り直した。煽りをやめて「数字だけ・1日最大4投稿」にした全記録

AI実況

この記事の現在地(2026/11/08)
・株しらべのX:フォロワー48、1投稿あたりの表示5〜90(改修前)
・新しい仕組み:完成。11/9(月)から本番
・結果:まだ出ていない。11月中旬に数字で報告する

株しらべのX(@kabusirabe225)を作り直した。

改修前の数字はこうだ。フォロワー48。1投稿あたりの表示は5〜90。

開示が出るたびに、AIが目を引く書き方で投稿文を作り、すぐにXへ流す。そういう作りだった。動いてはいた。でも、届いていなかった。

今回はその作りを捨てて、「数字だけのまとめ投稿を、1日最大4回」に組み替えた。

先に書いておく。結果はまだ出ていない。新しい形の最初の投稿は、明日(11/9)の12:07に出る。この記事は、その前日に書いている改修の記録だ。

やめたこと:煽り型の即時投稿

旧シナリオ③は、TDnetの開示をRSSで拾い、Claudeに短い投稿文を書かせ、そのままXに流す作りだった。

問題は3つあった。

  1. 煽りは信頼を削る。株の情報で強い言葉を使えば、一瞬は目に止まるかもしれない。でも「このアカウントの数字は信用できる」とは思ってもらえない。フォローしてもらいたいなら、やるべきことは逆だった。
  2. 通知が鳴りっぱなしになる。開示が多い日は、フォローしてくれた人のタイムラインを株しらべが埋める。ぼくがフォローする側なら外す。
  3. Xの上限に当たる。Xは2026年5月から、認証バッジのないアカウントの新規投稿を1日50件まで(返信は200件まで)に絞った。さらに30分ごとの細かい上限もある。開示のたびに投稿する作りは、ここに当たる。実際、ぼくは当たった(その話は後で書く)。

旧③はOFFにして、バックアップとして残してある。

決めた方針は4つ

  1. 煽りをやめて、数字を中心にする
  2. 即時投稿をやめて、まとめ投稿にする(1日最大4投稿)
  3. X Premiumには入らない。無料アカウントの上限の中で回す
  4. 開発の話はAI副業スタート(このブログ)に集める。株しらべは株の発信だけにする

4つ目の結果が、この記事だ。株しらべのXでは、もう作り方の話はしない。

新しい仕組み:3本のシナリオで役割を分けた

シナリオ動く時間やることXへの投稿
③ PDF版速報平日8:00〜20:30
15分ごと
開示PDFをAIが読み、1行のデータにしてシートにためるしない
⑥ 注目開示まとめ毎日12:07/17:07/20:37ためた中から、重要度の高い順に上位4件を1投稿にまとめるする(最大3回)
⑤ 決算まとめ毎日7:30前日にブログへ上げた日経225の決算を、営業益の伸びTOP3と全社一覧の画像で1投稿にするする(1回)

合わせて1日最大4投稿だ。

一番大きな変更は、③にXへ投稿させないことにした点だ。③は集めて、ためるだけ。投稿は⑥の仕事にした。集める係と出す係を分けたことで、投稿の回数をぼくが決められるようになった。

③ PDF版速報の流れ

  1. RSSで新しい開示を拾う(1回最大100件)
  2. タイトルのキーワードで、対象の材料だけに絞り込む(業績予想の修正・配当予想の修正・自己株式の取得・株式分割・株主優待・業務提携)
  3. 開示のPDFをダウンロードする
  4. タイトルに「訂正」を含むものは外す
  5. Claude(Haiku)がPDFを読み、1行にまとめる。対象外なら「SKIP」とだけ返す
  6. 「SKIP」を含まず、区切りの「|」を含むものだけをシートに追加する

シートにたまる1行は、こういう形だ(例)。

自社株買い|〇〇工業|0000|発行済の5.2%|5

左から、種類・会社名・証券コード・要点・重要度の順に並ぶ。

前の作りは、AIが書いた文をそのまま投稿していた。今回は、AIには「データの1行」だけを作らせる。投稿文を組み立てるのはスプレッドシートの数式だ。文の形を決めるのがAIではなく数式になったので、毎回同じ形で出る。

⑥ 注目開示まとめの流れ

  1. シートから、投稿文と「今回の最新時刻」を読む
  2. 投稿文が「【」で始まり、「SKIP」を含まないときだけ先へ進む
  3. シートの「前回の締め」の時刻を、今回の最新時刻で上書きする
  4. Bufferに投稿文を渡して、すぐに投稿する

まとめ文のルールはシート側に持たせた。投稿は「【注目開示まとめ】」の見出しで始まる。重要度の高い順、同じ重要度なら時刻の早い順に並べ、▲プラス材料/▼マイナス材料/◆その他の記号をつける。載せるのは上位4件。135字を超えたら3件、それでも超えたら2件に減らす。0件ならSKIPにして投稿しない。

実行時刻が12:07のように半端なのは、③が動く毎時00・15・30・45分と重ならないようにずらしているからだ。

3の「締めの更新」を、4の投稿より先にしているのには理由がある。これも後で書く。

⑤ 決算まとめの流れ

前日にブログへ上げた日経225の決算が対象だ。シートが社数・営業益の伸びTOP3・全社一覧(伸び順)を作る。全社一覧はHTMLにして画像に変換し、投稿に添える。

前年が赤字や空欄の会社は、伸び率が出せないので一覧の一番下に回している。対象が0社の日は投稿しない。1〜2社の日は、見出しが自動で切り替わる。

AIへの指示で効いたこと

③のAIに渡している指示文は、11/8に書き直した。全文はnoteに載せたので、ここでは考え方だけ書く。

1. 先に「載せないもの」を決める

全部の開示をまとめに載せたら、またタイムラインを埋めることになる。だから、SKIPにする条件を先に並べた。たとえばこういうものだ。

  • 業績予想の修正で、通期の予想が変わっていないもの(中間期だけの修正を含む)
  • 業績予想の修正で、増減率が−10%〜+10%に収まるもの
  • 自社株買いで、取得上限が発行済株式の1%未満のもの
  • 払込完了・取得結果など、発表済みの事項の続報
  • 資本の移動を伴わない業務提携だけの開示

2. 数字は表から拾わせる。計算はさせない

業績修正の開示には、だいたい同じ形の表がある。修正前は「前回発表予想(A)」、修正後は「今回修正予想(B)」の行から拾わせる。「前期実績」の行は使わせない。

増減率は、表の「増減率(%)」をそのまま書かせる。AIには計算させない。

数字を売りにする発信で、表と違う数字が出たらおしまいだ。だから、計算する余地ごと消した。

3. 重要度は基準で決めさせる

まとめに載る順番は、AIがつけた重要度で決まる。ここを「なんとなく」にすると順番がぶれるので、基準を書いた。

  • 5:業績修正で増減率±30%以上、自社株買い5%以上、株式分割、復配
  • 4:業績修正で増減率±20%以上、増配・減配、自社株買い3%以上、優待の新設・廃止
  • 3:それ以外

この基準がぼくの感覚と合っているかは、まだ確かめていない。明日から見ていく。

4. Haikuは「禁止」より「見本」に従う

③のAIは、ClaudeのHaiku(Effort low)だ。安く回すために選んでいる。

Haikuに「〜しない」と禁止を並べても、思ったほど守らない。効いたのは、出力の見本を3行置くことだった。見本と同じ形で返してくる。

もうひとつ。出力の中に、AIが考え直している途中の文が混ざって、データが壊れることがあった。これはExtended Thinking(考える領域を出力とは別に取る設定)をオンにしたら消えた。

X投稿の方針に合わせて、煽る言葉・株価の予想・売買の推奨も指示文で禁止している。

ハマったところ

本番前日、絞り込みのフィルタが消えていた

11/8、本番前の見直しで③の編集画面を開いた。RSSとHTTPの間にあるはずの、材料を絞り込むフィルタがなかった。

気づきにくかったのは、履歴の画面ではフィルタがちゃんと動いているように見えたからだ。11/6の実行を開くと、フィルタのラベルが出ていて、十数件の開示がそこで止まっている。でも履歴に出るのは、その実行の時点の設定だ。今の設定ではない。作り替えの途中のどこかで、フィルタだけが消えていた。

このまま本番に入っていたら、開示が出るたびに、種類に関係なく全部のPDFをダウンロードして、全部をClaudeに読ませていた。11/6のその1回は、フィルタのおかげで6クレジットで済んでいた。止まっていた十数件の分まで、HTTPとClaudeが毎回動くところだった。

フィルタは作り直した。タイトルに「業績予想の修正」「配当予想の修正」「自己株式取得に係る事項の決定」などを含むものだけを通す。条件は8つで、どれか1つに当てはまれば通る。

そして、作り直す途中でもう一度つまずいた。条件の上下が逆になっていたのだ。Makeのフィルタは、上の欄に「調べる対象(RSSのTitle)」、下の欄に「探す文字」を入れる。これを逆にすると、どの開示も通らなくなる。

今の設定は、編集画面でしか確かめられない。履歴の画面は「その時点でどう動いたか」の記録として見る。

Bufferの「再認証してください」は、接続切れとは限らない

Bufferに「チャンネル接続を再認証してください」と出た。普通は接続が切れたと思う。ぼくもそう思った。

でも原因は、Xの1日の投稿上限だった。Xアプリから手動で投稿してみると「daily post limit」と表示される。これで見分けられる。

Bufferのエラー文をそのまま信じて接続をいじると、遠回りになる。

本当に接続が切れていたときの直し方も書いておく。

  1. Xの設定の「連携しているアプリ」から、Bufferの許可を取り消す
  2. Bufferの「チャンネル」画面で、該当のアカウントを更新する
  3. Xの許可画面で、そのアカウントのまま許可する

3のとき、ブラウザでログインしているXが別のアカウントになっていないかを必ず確認する。アカウントを複数持っていると、ここで間違える。

処理の順番ひとつで、二重投稿が起きる

⑥を「投稿する→前回の締めを更新する」の順で組むと、投稿は成功したのに締めの更新だけ失敗したとき、次の回に同じ開示がもう一度まとめに入る。

まったく同じ本文なら、Buffer側が二重投稿として拒否してくれる。でも次の回に1件でも新しい開示が加われば、本文は変わる。Bufferの拒否には頼れない。

だから「締めを更新する→投稿する」の順にした。こうしておけば、失敗したときに起きるのは投稿漏れのほうになる。株の情報で同じ内容が2回出るより、1回抜けるほうがまだいい。

Makeのフィルタは、見た目を信用しない

フィルタの演算子が「text:notcontain:ci」のような内部の表記で表示されることがある。こうなったら、演算子を選び直す。

もうひとつ。条件の値が空欄になっていないかも確かめる。条件を入れたつもりで値が抜けていると、フィルタは思ったとおりに動かない。フィルタを作ったら、条件の値まで目で確認する。

名前が変わったモジュールは、探しても見つからない

MakeのHTTPモジュールはv4で、「Get a file」が「Download a file」に名前が変わっていた。古い解説を見ながら探すと見つからない。

Bufferのエラーハンドラーが見つけられなかった

Bufferのモジュールに、エラーを無視して進めるエラーハンドラー(Ignore)をつけようとしたが、ぼくは見つけられなかった。代わりに、シナリオの設定で「Store incomplete executions」をYesにしている。途中で止まった実行が保存されるので、後から確認できる。

TODAY()が日付どおりに変わらない

⑤の対象は「前日にブログへ上げた分」で、シートのTODAY()で決めている。スプレッドシートの再計算の設定を「変更時と毎時」にしておかないと、シートに変更がない日にTODAY()が更新されない。これは必須の設定だった。

テストで流した開示は、消してから本番に戻す

③をテストするとき、RSSの開始位置を過去の日付にして実行すると、過去の開示が速報ストックに書き込まれる。そのままにしておくと、次の⑥がそれを拾って、まとめとして投稿してしまう。

集める係と投稿する係を分けたので、テストの後始末も1つ増えた。テストしたら、追加された行を削除してから稼働させる。

お金と上限

  • X:無料アカウントのまま。新規投稿は1日50件・返信は200件まで、さらに30分ごとの上限がある。新しい作りは1日最大4投稿なので、上限からは遠い
  • 画像生成(HTML/CSS to Image):無料枠は月50枚。⑤で月22枚前後を使う見込み
  • Make:オペレーション数がプランの上限に収まるかは、1週間動かしてから確認する

まだ何も証明できていない

ここまで書いたのは、全部「作った」話だ。伸びた話ではない。

次に確認することは、これだけある。

  • 11/9(月):午前のうちに速報ストックに行が増えるか(注目の材料がない日は増えないこともある)。12:07に最初の「【注目開示まとめ】」が出るか
  • 同じ週:重要度の付け方が、ぼくの感覚と合っているか。ずれていれば指示文の基準を直す
  • 1週間後:Makeのオペレーション数がプランの上限に収まっているか
  • 11月中旬:1投稿あたりの表示回数とフォロワー数を、改修前(表示5〜90、フォロワー48)と比べる

手をつけていないこともある。開示を話題にしている個人投資家のフォローを増やすこと(今は3人前後しかフォローしていない)。開示まとめを日経225の銘柄に絞ること。それから、Makeを使わずにPythonで動かす形への移植だ。

11月中旬に、数字で結果を書く。伸びていなくても書く。

③のAIに渡している指示文の全文(11/8版)、スプレッドシートの組み方、テストのやり方、トラブルの直し方はnoteにまとめた。
→ noteを読む

【使用ツール】Make / Claude(Haiku)/ Google スプレッドシート / Buffer / HTML/CSS to Image / WordPress(Cocoon)

コメント

タイトルとURLをコピーしました