株式分析
このスキルは毎回同じ構造のレポートを生成します:
- 概要テーブル
- 各銘柄ごとのパネル(以下を含む):
- ファクト
- 52週高値に対する週足チャート
- リターン
- 下落の要因
- 強気・弱気のケース
- 保有銘柄、データギャップ、計算ログ
スクリプトがすべての計算とHTMLを担当します。あなたの仕事は調査と確認です。ページの再設計や手書きのHTMLは行わないでください。
SKILL_DIR はこのファイルが含まれているフォルダです。dirname を使用してこのSKILL.mdのパスから一度だけ特定してください。
ファイル
| パス | 目的 |
|---|---|
scripts/compute_drawdown.py | 日次CSV → 52週高値・安値、%下落、リターン、週次終値 |
scripts/verify.py | CSVからすべてのヘッドライン数値を再導出、フィールドとソースを確認、verified.jsonを書き込み、問題があれば終了コード1で終了 |
scripts/build_report.py | ワーカーJSON + verified.json → 1つの自己完結型HTMLページ(assets/report.cssを使用) |
scripts/build_email.py | 同じ検証済み数値 → 送信準備済みdrawdown_report.eml(メールセーフなHTML + テキスト、レポート添付);アドレスを検証 |
scripts/send_email.py | ユーザーが自分のコンピュータで実行するため:SMTP経由で.emlを送信(確認プロンプトあり、ローカルで入力されたアプリパスワードを使用) |
defaults.json | ユーザーが銘柄を指定しなかった場合に使用されるデフォルトのウォッチリスト(ユーザー編集可能) |
references/worker_brief.md | 各ワーカーが従う指示書({…}プレースホルダーを埋める) |
references/schema.md | <TICKER>.jsonの契約 |
examples/run-2026-10-16/ | 完全なリファレンス実行(FTEC, QQQ, SMH, ARTY):4つのワーカーJSONと完成したreport.html。深さ、トーン、引用スタイルの基準として使用。 |
ワークフロー
1. セットアップ
- ユーザーのリクエストから銘柄リストを読み取ります。
- 銘柄が指定されていない場合(「株式分析を実行」、「市場の高値との比較は?」):
$SKILL_DIR/defaults.jsonを読み込み、そのdefault_watchlistをその順序で使用します。最初の文章でデフォルトのウォッチリストを使用していることとそのリストを伝えてください。 - 銘柄が指定されている場合:指定されたものだけを正確に使用します。ユーザーが要求しない限り(例:「通常のものに加えてNVDA」)、デフォルトを追加しないでください。
- インデックス(S&P 500、ダウ平均、ナスダック総合…):
defaults.jsonのid(SPX、DJI)または短いラベル(COMPなど)をファイル名のティッカーとして使用し、インデックスレベル自体を調査します。ワーカーにそれがインデックスであることを伝えてください(指示書のインデックスに関する注記を参照)。
- 銘柄が指定されていない場合(「株式分析を実行」、「市場の高値との比較は?」):
- 作業フォルダを作成します:
WORK_DIR=$PWD/drawdown-<YYYY-MM-DD>。 - タスクリストを作成します:
- 各銘柄につき1タスク
- 「数値の検証」
- 「レポートの作成と公開」
2. 並列展開
各銘柄に対して1つのサブエージェントを、並列かつバックグラウンドで起動します。各エージェントへのプロンプトは:
references/worker_brief.mdの全文、{TICKER}、{WORK_DIR}、{SKILL_DIR}、{TODAY}が埋め込まれていること、- さらにチェックすべき銘柄固有の観点を加えます。例えば半導体ファンドの場合:輸出管理、ハイパースケーラーの設備投資、メモリサイクルなど。
ユーザーが1~2銘柄のみを指定し、サブエージェントを要求していない場合、同じ指示書に従って自分で調査を行っても構いません。
3. 待機
ワーカーが完了したら、そのタスクをチェックし、1行(ティッカー、下落率、高値の日付)を投稿してください。ワーカーのトランスクリプトは読まないでください。
4. 検証
以下を実行します:
python3 $SKILL_DIR/scripts/verify.py --dir $WORK_DIR --tickers <T...>
MISMATCH、MISSING、NO SOURCE/TSが報告された場合、ビルド前に問題を修正してください:
- 計算ミスまたは手作業のコピーミス:
compute_drawdown.pyを再実行し、<T>_metrics.jsonのJSONを修正します。 - 調査不足: SendMessageでワーカーを送り返します。
UNCITEDとNO CROSS-CHECKは警告です。それらが残っている場合は返信で言及してください。
5. ビルド
以下を実行します:
python3 $SKILL_DIR/scripts/build_report.py --dir $WORK_DIR --tickers <T...> \
--out $WORK_DIR/drawdown_report.html --title "<2~4単語の名前>" --eyebrow "<例:ETF下落レビュー>"
タイトルの選び方: 「テックETF下落分析」や「半導体株の調整」など、短く具体的な名前を選んでください。同じバスケットの繰り返し実行には同じタイトルを使用してください。
6. 公開
Artifactツールを使用してHTMLを公開します。icon: "chart"を使用し、銘柄と基準日を記載した一文の説明を添えてください。
- 同じバスケットの繰り返し実行: ユーザーが以前のリンクを維持したい場合は、そのアーティファクトのURLに再公開してください。
- 生成されたHTMLを編集しないでください。 レポート全体の変更は
build_report.pyまたはassets/report.cssに属します。
7. メール(ユーザーがアドレスを指定した場合のみ)
ユーザー自身のメッセージにメールアドレスが含まれている場合を除き、このステップはスキップしてください(例:「…そして[email protected]にメールしてください」)。「自分にメールして」とアドレスなしで言われた場合は、アドレスを尋ねてください。アドレスを推測したり、他の場所から再利用したりしないでください。
コネクタは使用しません。 Gmail、Outlook、その他のメールコネクタやブラウザ自動化は使用せず、メールパスワードを要求したり処理したりしないでください。送信はユーザー側で行われます。あなたは送信準備済みのメッセージを作成し、ユーザーがそれを送信します。
- メールをビルドします。
終了コード2はアドレスが無効であることを意味します:ユーザーに修正を依頼してください。スクリプトはpython3 $SKILL_DIR/scripts/build_email.py --dir $WORK_DIR --tickers <T...> --to <アドレス...> \ --report $WORK_DIR/drawdown_report.html --artifact-url <公開リンク> --title "<同じタイトル>"drawdown_report.eml(HTML + プレーンテキスト、レポート添付、受信者と件名が入力済み)、さらにemail_body.html、email_body.txt、email.jsonを書き込みます。 - 配信します。
drawdown_report.emlをSendUserFile(表示attach)で送信します。 - ユーザーに送信方法を伝えます(2~3行):
- Outlookで
.emlを開く(下書きとして開く)か、Apple Mail(メッセージ → 再送信)で確認し、送信を押します。 - または、自分のコンピュータのターミナルから:
python3 send_email.py drawdown_report.eml --from <自分のアドレス>。スクリプトは受信者を表示し、確認を求め、自身でアプリパスワードを入力するよう促します。ユーザーが要求した場合はscripts/send_email.pyも送信してください。
- Outlookで
- リンクのプライバシー。 アーティファクトはユーザーに対してプライベートです。受信者が他の人である場合、ユーザーがページを共有しない限り、添付されたレポートに依存することになると伝えてください。
8. 返信
返信は簡潔に保ってください:
- ページが何であるかを一文で説明します。
- 下落率でソートされたマークダウンテーブル(列:ティッカー、最終終値、52週高値(日付)、下落率)。
- 銘柄全体にわたる主な発見事項を2~3箇条書き。
- 実行に影響を与えたツールの障害に関する短い「データギャップ」の注記。
- メールがリクエストされた場合:
.emlが送信準備完了であることとその方法を一文で。
手順を要約しないでください。
譲れない条件
- すべての数値はツールコールから取得し、そのソースとタイムスタンプを伴います。
- 「データなし」は推測より優れています。
- すべての計算はスクリプトで行われます。
- 読み取り専用ツールのみ。 注文、アラート、ウォッチリストツールには決して触れないでください。自分でメールを送信しないでください。ステップ7はユーザーが送信するためのメッセージを準備するだけです。
- 買いまたは売りの推奨はありません。 両方のケースを公平に提示してください。