午後、/check-earnings の通知フォーマットを仕上げた直後に、ふと別の欲が出てきた。NVDA・MU・SNDK の3銘柄は毎決算日に追えるようになったけれど、それ以外で「ビート&レイズ」をやらかしている銘柄も毎朝拾いたい。市場全体を見ているわけではないので、自分のレーダーに入っていない銘柄が静かにコンセンサスを抜いて飛んでいる可能性を取りこぼしている気がした。
そこで Claude Code に、x-search を使って過去24時間の米国決算ビート企業を調査させた。NY market close(2026-05-20)から今の 2026-05-21 までの24時間を範囲にして、コンセンサス対比のサプライズ率が高い銘柄を吐かせる。
返ってきたサマリーを読んで、机を軽く叩いた。主役は NVDA と INTU(インテュイット)で、両方とも「ビート&レイズ」になっていた。NVDA は自分の watchlist に元から入っているけれど、INTU の決算が今日この瞬間に飛んでいたことは把握していなかった。これは毎朝の習慣に組み込む価値がある。
「毎日朝に来るんですよ、この確認は」
ここで Claude Code に投げた要望はシンプルだった。「これを毎朝確認したい。/make-diary の中に組み込んでほしい。ただし make-diary 本体に書き込むんじゃなくて、独立したスキルとして切り出して、make-diary の末尾でそのスキルを呼ぶ形にしてほしい」。
理由は3つあった。
/make-diaryは毎朝走るコマンドなので、決算スキャンの差し込み口として最適。前日の作業を振り返るタイミングで、市場で何が起きたかも同時に拾える。- NVDA / MU / SNDK は
/check-earningsで別途カバーしているので、このスキルは「それ以外」を担当させたい。役割分担を明確にしておくと、後で挙動を変えるときに迷わない。 - サプライズ率5〜10%以上のガイダンスビートだけ拾う。「コンセンサスを上回った」だけの銘柄は世の中に多すぎる。ガイダンスでサプライズ5%超を出している銘柄に絞ると、株価が動く可能性のある弾だけが残る。
要件が決まった瞬間、Claude Code に「まず既存スキルの構造を確認してから設計して」と指示した。いきなり書かせると既存パターンと整合しないものが出てくるので、調査フェーズを先に踏ませる。
既存スキル構造の偵察
Claude Code に ~/.claude/skills/ 配下を覗かせて、SKILL.md のファイル名規約・frontmatter・本文構成を確認させた。x-search スキルが SKILL.md という名前で配置されているのを見て、新スキルも同じ規約に揃えることを決めた。
次に /check-earnings で使っている通知フォーマットを Claude Code に読ませた。これが今回の肝になる。/check-earnings は Revenue / EPS Diluted / Gross Margin / OpEx / Tax Rate の5項目を、コンセンサスと実績で並べて、それぞれにビート率(%)を付けて出す。ガイダンスはガイダンスで同じ5項目を別ブロックに分けて表示する。
新スキル earnings-beat-scan も、この5項目フォーマットに揃えることにした。理由は単純で、毎朝同じフォーマットの数字を読みたいから。フォーマットが揃っていれば、NVDA・MU・SNDK の通知と新スキルの結果を頭の中で同じ形式として処理できる。フォーマットが揃っていなければ、毎回読み方を切り替える負荷が乗る。
x-search の絞り込みクエリ設計
Claude Code に書かせたスキル本体のロジックは、x-search を3段階で叩く構成にした。
- 広めに撒く: 「earnings beat raise guidance 過去24時間」の自然言語クエリで、決算速報を流す金融ハンドル群(@DeItaone、@Stocktwits、@LiveSquawk 等)を範囲指定で検索
- 銘柄を抽出: 返ってきた投稿群から、外部のコンセンサスデータプロバイダの言及を含むものをティッカー単位で集計
- サプライズ率で絞る: コンセンサス対比 5〜10%以上のビート(特にガイダンス)を出している銘柄だけ残す
最初の試行では x-search の結果が散漫で、決算と無関係な投稿も多く混じった。クエリに「Q1」「Q2」「Q3」「Q4」「FY」「revenue beat」「EPS beat」「guidance raised」を含めるよう指示し直したら、決算速報だけが残るようになった。NVDA / MU / SNDK は /check-earnings 側でカバーするので、新スキルの出力からは明示的に除外させた。
/make-diary への組み込み位置
最後に /make-diary の末尾に追加する位置を決めた。/make-diary は既存で10ステップ構成になっており、前日の振り返り→今日の予定→学びメモ→memo ディレクトリ整理、と進む流れになっている。
ここで Claude Code に「ステップ11として、earnings-beat-scan スキルを呼び出す行を追加して。位置は最末尾で、振り返りと予定の生成が全部終わってから市場サマリーを末尾に追加する形にして」と指示した。
末尾にした理由は2つある。第一に、決算サマリーは「今日の作業」とは独立した情報なので、日記本文の流れを壊さない位置に置きたい。第二に、毎朝の /make-diary 実行で一番最後に表示されることで、その日の取引・watchlist 更新のアクションに直結する。日記を書き終わった瞬間に「今日はこの銘柄を見ろ」が画面に出る構造になる。
完成形
スキル earnings-beat-scan のロジックは Claude Code に書かせた。SKILL.md に発動条件(「決算ビートをスキャンして」「コンセンサス上回り銘柄を調べて」「24時間のサプライズ銘柄を探して」、または /make-diary 末尾からの呼び出し)と、出力フォーマット(NVDA/MU/SNDK と同じ5項目フォーマット)を書き込んでもらった。
/make-diary の末尾にもステップ11として earnings-beat-scan スキルの呼び出しを書き込ませた。これで明日の朝、/make-diary を走らせれば、自動的に過去24時間の米国決算ビート銘柄が末尾に出てくる。
実際に今日の出力で言えば、NVDA は /check-earnings 側で押さえているので新スキルからは外れ、INTU が単独で「ビート&レイズ」として上がってくる構造になる。これが毎朝動くと、自分の watchlist に入っていない銘柄を発見する装置として機能する。
学び
3つメモしておく。
スキルは責務で切れ。/make-diary 本体に決算スキャンのロジックを直接書き込むこともできたけれど、独立スキルに切り出した。理由は再利用性。/make-diary 以外の文脈(例えば日中に「今ビートしてる銘柄ない?」と尋ねた瞬間)にも同じスキルが呼べる。本体に埋め込むと、その文脈では使えない。
フォーマットは既存に揃えろ。NVDA/MU/SNDK の通知フォーマットを最初に確認してから、新スキルの出力をそこに合わせた。揃えておくと、毎朝の数字読みが脳内で同じ処理に乗る。揃っていないと、毎回フォーマットの読み替えに認知資源を取られる。
毎朝動く場所に差し込め。決算ビート情報は、毎日確認しなければ意味がない。週1で思い出したように見ても遅い。だから毎朝走る /make-diary の末尾に組み込んだ。「いつか見る」場所ではなく「必ず見る」場所に差し込むのが、習慣化の唯一の方法だと再確認した。
明日やること
- 明日の朝、
/make-diaryを実行してearnings-beat-scanが実際に末尾で発火するかを目で確かめる - 過去24時間で拾えた銘柄を1週間ログに残し、「サプライズ率5〜10%」の閾値が妥当か検証する
- INTU の決算詳細を press release から拾い、
/check-earningsの watchlist に追加すべきかを判断する