mcpField
U
us-undervalued-growth-screener

us-undervalued-growth-screener

github.com/tradermontyその他3.4k1.6k 回インストール2 日前に更新
リポジトリ

us-undervalued-growth-screener について

米国上場の割安成長株を選別・順位付けする Claude Code 向けスキルです。direct-FMP パイプラインによる候補抽出と、出典に基づく企業調査を組み合わせます。

主な機能

  1. 01direct-FMP スクリーニング
  2. 024レーンの候補抽出
  3. 03流動性と予測の確認
  4. 04SEC・IR 資料の調査
  5. 05監査済みランキングと成果物

活用シーン

  1. 01米国上場 GARP 株の選別
  2. 02決算や提出書類後のスクリーニング更新
  3. 03成長、評価、希薄化、リスクの比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tradermonty/claude-trading-skills --skill us-undervalued-growth-screener

インストール後、Claude Code で/us-undervalued-growth-screenerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
annual-estimates.example.jsonl
broad-screen-audit.example.json
broad-screen-results.example.jsonl
broad-screen-shortlist.example.json
candidate-input.example.json
claude-code-config.example.json
discovery-audit.example.json
discovery-pool.example.jsonl
enriched-candidate-pool.example.jsonl
enrichment-queue.example.json
global-sources.example.json
listing-only-input.example.jsonl
market-context.example.json
screening-config.example.json
universe-audit-results.example.jsonl
universe-band-audit.example.json
universe-input.example.jsonl
references/
autonomous-execution.md
checkpointing.md
claude-code-execution.md
data-contract.md
full-universe-snapshot.md
methodology-ja.md
methodology.md
migration-v1-to-v2.md
migration-v2-to-v3.md
migration-v3-to-v3.1.md
migration-v3.1-to-v3.2.md
migration-v3.2-to-v3.3.md
migration-v3.3-to-v3.4.md

詳細

米国割安成長株スクリーナー — v3.6(Claude Code Direct-FMP)

概要

最小限のリクエストから、米国の割安成長株/GARPスクリーニングを最初から最後まで実行します。会計基準、予測の組み立て、SBC、希薄化、レバレッジ、景気循環性、企業行動、同業他社との比較、情報源の鮮度、証拠の質を考慮しながら、マルチプルの拡大を前提とせずに、魅力的な2~3年のリターンを支えるほどEPSまたは1株当たりFCFが十分に複利成長する可能性のある企業を見つけます。

推奨する実行環境はClaude Codeです。 Claude Codeでは、ローカルのDirect-FMPパイプラインを一度実行します。Pythonプロセスが一括取得、永続キャッシュ、FY1の正規化、流動性計算、4つのレーンでの候補発見、決定論的な広範スクリーニングを実行し、生のFMPペイロードはディスク上に保持してモデルコンテキストには含めません。Claudeは簡潔な実行サマリーと選定された候補者パケットだけを読み取り、その後、SEC/IRの引受調査と既存の厳格な評価手順を完了します。

「このスキルを使って割安成長株をスクリーニングして」のようなリクエストは、作業全体の依頼として扱ってください。 デフォルトを解決し、最新データを収集し、実行可能なデータ取得経路を選び、進捗を記録し、取得可能な阻害要因を解消して、同じタスク内で完成した結果を返します。ユーザーが明示的に範囲を限定しない限り、ティッカーリスト、APIプランの詳細、出力先、または別途「続けて」という指示をユーザーに求めてはいけません。

詳細調査の上限とレーンの網羅性: 上限付きのDirect-FMP経路では、max_deep_dive_candidates: 3がデフォルトです。選定銘柄が3つでは、4つすべての調査レーンを代表できません。デフォルトのレーン別目標は、コアGARPが2、高成長例外が1、クオリティの僅差不採用が1、景気循環調整が1(合計5枠)です。3銘柄の実行では、レーンをまたいで候補を優先します。各レーンから1銘柄ずつ選ばれることを保証するものではありません。5枠のレーン優先選定を行うには、assets/claude-code-config.example.jsonのローカルコピーでmax_deep_dive_candidates: 5に設定し、その設定で上限付きパイプラインを再実行してください。実際のレーンの構成は、適格な候補と分散の優先度にも左右されます。別個のフルスナップショット経路では、full_snapshot_deep_dive_candidates: 5が必要です。選定と予算変更の詳細については、references/claude-code-execution.mdを参照してください。

必須の実行前チェック

過去の実行アーティファクトを読み取ったり再利用したりする前に、インストール済みランタイムを確認してください。

python3 skills/us-undervalued-growth-screener/scripts/run_pipeline.py --version
python3 skills/us-undervalued-growth-screener/scripts/screen_universe.py --version
python3 skills/us-undervalued-growth-screener/scripts/build_discovery_pool.py --version
python3 skills/us-undervalued-growth-screener/scripts/build_provider_prefilter_pool.py --version
python3 skills/us-undervalued-growth-screener/scripts/normalize_estimates.py --version
python3 skills/us-undervalued-growth-screener/scripts/manage_run_state.py --version
python3 skills/us-undervalued-growth-screener/scripts/evaluate_candidates.py --version
python3 skills/us-undervalued-growth-screener/scripts/prepublish_audit.py --version
python3 skills/us-undervalued-growth-screener/scripts/bundle_run_artifacts.py --version

すべてのコマンドで、同じメタデータが報告される必要があります。

skill_version = 3.6.1
schema_version = 3
contract_revision = 3.5
runtime_fingerprint = ug-v3.6.1-claude-code-direct-fmp-20260830

ランタイムのメタデータが異なる監査、チェックポイント、またはスナップショットは破棄し、再生成してください。v3.1~v3.5のスクリプト、アセット、実行アーティファクトを混在させてはいけません。同じ名前の古いスキルやキャッシュ済みスキルは、警告ではなく重大な実行失敗です。

自律的な完了契約

最小限のリクエストに対して、ユーザーに制御を返さず、以下をすべて実行します。

  1. analysis_as_of と、直近で完了した米国通常取引時間の終値を確定します。
  2. フィールド単位の情報源と鮮度チェックを備えた、現在の市場状況を収集します。
  3. Claude Code では、FMP MCP の一括呼び出しを行わず、run_pipeline.py を実行します。プロバイダーのペイロードはディスクに保存し、モデルには簡潔な要約のみを公開します。
  4. プロバイダーの応答が飽和した場合は、適応的に拡張し、調査を尽くした時価総額帯を用いて、NYSE/Nasdaq/NYSE American の上場銘柄ユニバースを監査します。
  5. 再現可能な経済候補プールを構築します。市場全体について完全な財務諸表がそろっていることを必須条件にしません。
  6. エンリッチメントを試行済みとエンリッチメントが解決済みを区別します。
  7. 決定論的な広範スクリーニングスクリプトを適用します。ステータスを場当たり的な LLM のしきい値で置き換えません。
  8. Claude Code で、決定論的な複数レーンのサンプリングを通じて、経済的に妥当な詳細調査候補を最大3件選定します。対象レーンは、コア GARP、高成長の例外、品質基準にわずかに届かない銘柄、正常化が必要な景気循環銘柄です。代替候補がある場合は、セクターごとに最大2銘柄とします。成長率のしきい値は目安であり、単独の厳格な判定条件ではありません。
  9. 選定した候補プールの各銘柄を解決するか、情報源付きの調査尽力証拠を記録します。
  10. 選定したすべての銘柄について、企業行動の事前確認と一次情報に基づく引受分析を実施します。
  11. review_required、screened_out、excluded の結果を含め、選定したすべての銘柄を検証済み候補レコードとして保存します。
  12. スキーマ v3/契約 v3.5 のスナップショットを組み立てます。
  13. evaluate_candidates.py --strict --require-final を実行します。
  14. 最終品質適格性ゲートを適用し、キャッシュフローの弱さ、ROIC の低さ、過剰な負債、高度な希薄化、弱気シナリオの脆弱さ、または深刻な独占権喪失リスクがある銘柄は、conditional または review_required に分類します。
  15. prepublish_audit.py を実行し、取得可能な阻害要因をすべて修正してから再実行します。
  16. bundle_run_artifacts.py を実行し、参照されるすべての成果物を含む自己完結型の監査 ZIP を生成します。
  17. すべてのゲートを通過した場合に限り、正式なランキングとダウンロード可能なバンドルを提示します。

終了コード 2 は、同じ実行を続行することを意味します。キューのエンリッチメント、プール生成監査の検証、選定した銘柄の詳細調査の完了、または契約上の不備の修正を行います。「続行」とユーザーに入力するよう求める意味ではありません。監査結果を添付した後、manage_run_state.py next-action を実行し、返されたアクションとすべての銘柄を処理します。選定銘柄を2件と5件のどちらにするか、ユーザーに尋ねてはいけません。予算を変更する場合は、まず広範スクリーニングを再実行し、除外された銘柄が deferred_by_budget になるようにします。

完了の意味

監査済みの限定プールに基づく最終ランキング

再現可能な方法で生成された限定プールは、以下の場合に対象範囲を限定した最終ランキングを裏付けられます。

candidate-pool generation audit is valid
candidate_pool_exhausted = true
all_rows_resolved = true
unresolved_count = 0
queue_count = 0
all selected symbols have verified candidate records
strict final evaluation passes

stratified_discovery_pool や provider_prefilter など、結論の対象範囲を明記します。調査していない市場上場銘柄も経済的にスクリーニング済みであるかのように示してはいけません。

市場全体で「適格候補なし」と結論づける場合

市場全体で候補なしと結論づけるには、上記すべてに加えて、対象範囲内の経済的調査を完全に網羅する必要があります。

conclusion_scope = full_listing_universe
candidate_pool covers every in-scope listing
in_scope_missing_count = 0
at least one row was economically assessable
selected_symbols = []
限定プールで「適格候補なし」と結論づける場合

限定プールから結論づけられるのは、以下に限られます。

no qualifying candidates in the audited bounded pool

米国の小型株/中型株市場全体に適格企業がないと主張してはいけません。

ライブの最小リクエストを実行する前に、references/autonomous-execution.md を読んでください。

使用する場面

次の場合にこのスキルを使用します。

  • 米国上場の割安成長株またはGARP株を発掘し、順位付けする。
  • NYSE、Nasdaq、NYSE Americanに上場する事業会社の普通株をスクリーニングする。
  • EPSまたは1株当たりFCFの成長だけで、2~3年の期間でおよそ30%~50%の上昇余地が見込めるかを検証する。
  • 決算、業績見通し、提出書類、コーポレートアクション、予想修正の後に、以前のスクリーニングを更新する。
  • 候補銘柄を、予想バリュエーション、成長の持続性、ROIC、標準的なFCF、SBC、希薄化、同業他社、景気循環リスク、セクター固有のKPIで比較する。

次の用途には使用しないでください。

  • 銘柄選定後の一般的な単一銘柄レポート。us-stock-analysisを使用してください。
  • 純粋な配当、モメンタム、テクニカルパターン、売上計上前のバイオテクノロジー、または合併アービトラージのスクリーニング。
  • 自動注文の発注。

前提条件

  • Python 3.9以降。
  • 生成されたFMP直接クライアントにはrequestsを使用します。それ以外の決定論的な評価および監査スクリプトは標準ライブラリを使用します。
  • Claude Codeの直接モードでは、環境変数にFMP_API_KEYが必要です。キーをコミットしたり、出力したりしないでください。
  • 選定企業の引受評価に利用できる最新のSEC、企業IR、マクロ経済関連の情報源。
  • 書き込み可能なreports/および.cache/ディレクトリ。
  • 特定の有料FMPプランは前提としていません。一括エンドポイントでエラーが発生した場合は、銘柄ごとの範囲を限定した補完に切り替え、診断情報で開示します。

デフォルトの対象範囲

ユーザーが指定しない限り、以下を適用します。

  • 取引所:NYSE、Nasdaq、NYSE American。
  • 証券の種類:上場中の事業会社の普通株。
  • 時価総額の対象:5億~200億米ドル。
  • 最低株価:5米ドル。
  • 推奨する平均日次売買代金:500万米ドル。絶対的な下限は100万米ドル。
  • Claude Codeのプロバイダー事前フィルター対象プール:コード側で経済性と確認済み流動性を評価した後、30銘柄を目標とします。範囲を限定した銘柄ごとのフォールバックでは、最大80銘柄を調査できますが、各銘柄のプロバイダーペイロードをモデルのコンテキストに読み込むことはありません。
  • 詳細調査の予算:Claude Codeの範囲限定パスでは、デフォルトで3銘柄を、4つの決定論的な調査レーンから選定します。3枠では4つのレーンすべてを網羅できません。選定後は、すべての銘柄について調査を完了する必要があります。予算を減らす場合は、広範なスクリーニングを再実行し、除外銘柄がdeferred_by_budgetになるようにしてください。
  • 順位付け結果の最大数:10。ただし、確認済みの詳細調査対象はこれより少なくなる場合があります。
  • 正式な一定倍率での最低上昇率:根拠のある2年または3年の期間で30%。
  • マルチプル縮小ストレス:現在の予想マルチプルを20%引き下げます。
  • 順位付け可能なコンセンサス予測期間に必要なアナリスト数:3人。ただし、独立予測を十分な出典とともに作成した場合を除きます。
変更不可のリクエスト対象範囲と制限付き実行

最小限のリクエストでは、ユーザーが求める時価総額の対象範囲は常に5億~200億米ドルです。便宜上の30億~40億米ドルの範囲をリクエスト対象範囲として設定し直すよう、実行設定を変更してはいけません。user_requested_scopeとexecuted_scopeを別々に記録してください。ユーザーが明示的に指定していない限り、より狭い実行対象範囲は不完全です。コンテキストやツール予算の制約は、対象範囲を変更する許可にはなりません。すべての行を読み込んで会話コンテキストに入れるのではなく、上場銘柄リストのページや区分をストリーミングでJSONLに出力してください。

流動性の根拠

1取引日の出来高だけからADDVを計算してはいけません。候補銘柄の生成には、プロバイダーが提供する平均売買代金指標、または平均期間が少なくとも20取引日であることとソースIDを明示したprice × average_volumeが必要です。有効な平均流動性の根拠がない行はneeds_enrichmentのままとし、発掘対象プールに入れてはいけません。

現在の予想期間

現在のP/Eは、NTMまたはFY1であることが明示され、プラスの現在予想EPS、株価、会計年度/期間のメタデータ、予想日、アナリスト数、ソースIDと整合していなければなりません。一般的な複数年先のP/E値は無効です。FY1/NTMのデータがない行、ゼロをまたぐレンジ、または極端な予測のばらつきがある場合は、補完調査に回すかunavailable_after_enrichmentとします。P/Eが低いことを理由に選定対象として表示してはいけません。

結果品質の管理

決定論的な複数レーン候補発掘

単一の全体スコアによって、調査予算が特定のスタイルやセクターに偏らないようにしてください。条件を満たす銘柄がある場合、デフォルトの5件の詳細調査を以下のレーンに割り当てます。

  • コアGARP銘柄を2件、
  • Forward P/Eが最大30xの高成長例外を1件、
  • ガイドラインを下回る見出し成長率を低いバリュエーションで補える、僅差の品質銘柄を1件、
  • 明示的な中期モデルが必要な景気循環銘柄を1件。

未使用の枠は決定論的な優先順位で補充し、代替候補がある場合は選定数をセクターあたり2件までに制限します。選定した各銘柄のselection_laneを報告してください。LLMはこうした判断の説明はできますが、独自のカットオフで置き換えてはいけません。

正式な適格性の品質ゲート

アップサイドテストに合格した銘柄が、自動的にeligibleになるわけではありません。正式なランキングには、さらに以下の条件を満たす必要があります。

  • 最終スコアが70以上であること。
  • SBC調整後FCF利回りが3%以上、またはEV/FCFが30x以下であること。
  • ROICが8%以上であること。
  • 適用される場合、Net Debt/EBITDAが3.0x以下であること。
  • 希薄化後株式数のCAGRが5%以下であること。
  • 裏付けのあるコンセンサス下限ケースで、アップサイドが少なくとも15%あること。
  • 深刻なLOEによるテール損失が、設定済みのしきい値を超えて悪化していないこと。

通常の不合格項目が1つか2つある場合はconditionalとなることがあります。深刻なFCFまたはLOEの不合格や、より広範な弱点がある場合はreview_requiredとなります。平均コンセンサスEPSが30%のアップサイドを示すというだけで、P/Eが低くEV/FCFが高い移行期のストーリーを正式な勝者として扱ってはいけません。

独立した予測ドライバーのエビデンス

ランキング対象となるすべての2年目/3年目のブリッジでは、construction_method=independent_driver_modelを使用する必要があります。各売上高、利益率、利息、税金、株式数、FCF、調整のドライバーには、オリジンとソースIDが必要です。目標EPSから逆算して解いたドライバーにはtarget_solved=trueを設定してください。この場合、ブリッジは不合格となります。モデルをコンセンサスに合わせるだけの残差調整は、独立した検証ではありません。

自己完結した結果のみを公開

最終レポートは、prepublish_audit.pyが参照されるすべての監査ファイル、件数、ハッシュ、シナリオの計算、候補ステータス、最終3件のラベル、および未完了の実行を示す表現がないことを検証するまで公開できません。bundle_run_artifacts.pyで実行ディレクトリ全体をパッケージ化してください。Markdown/JSONの要約のみを含むZIPは不完全です。

データ取得戦略

推奨するClaude Codeの方法 — FMPに直接接続し、モデルコンテキストを簡潔に保つ

ローカルコマンドを1つ実行します。

python3 skills/us-undervalued-growth-screener/scripts/run_pipeline.py \
  --config skills/us-undervalued-growth-screener/assets/claude-code-config.example.json \
  --output-dir reports/us-undervalued-growth-screener

生成されるFMPクライアントは、リポジトリ内の一元管理された scripts/fmp_client/のソース・オブ・トゥルース方式を再利用します。生のレスポンスと永続的なSQLiteキャッシュをディスクに書き込みます。生のプロバイダーツリーを言語モデルのコンテキストに貼り付けたり読み込ませたりしないでください。run-summary.json、NEXT_ACTION.json、audit/broad-screen-audit.json、およびcandidate-packets/内の簡潔なパケットのみを読み込んでください。

一括推定値を含まないプランで市場全体を実行する場合は、凍結されたユニバースのシャードをすべて収集してから、検証済みスナップショットをスクリーニングします。

python3 skills/us-undervalued-growth-screener/scripts/run_pipeline.py \
  --stage collect-estimates --shard-index 0 --shard-count 8 \
  --snapshot-dir .cache/us-garp/snapshot-current \
  --config skills/us-undervalued-growth-screener/assets/claude-code-config.example.json \
  --resume

python3 skills/us-undervalued-growth-screener/scripts/run_pipeline.py \
  --stage screen-full-snapshot \
  --snapshot-dir .cache/us-garp/snapshot-current \
  --config skills/us-undervalued-growth-screener/assets/claude-code-config.example.json \
  --output-dir reports/us-undervalued-growth-screener

各シャードは--resumeを付けずに1回実行してください。--resumeは、既存の部分的なシャードを続行する場合にのみ使用します。収集とスクリーニングはどちらも現行データのみを対象とします。収集では推定値の正規化基準を固定し、スクリーニングでは正確な流動性とTTM品質のエビデンスを追加します。最初の収集では、尽きるまで行った上場銘柄の列挙監査をスナップショットのマニフェストに紐付けます。スクリーニングは、プロバイダーまたは実行のアーティファクトを作成する前に、読み取り専用のコンテンツ/鮮度の事前チェックを実行します。また、列挙証明と検証済みの各シャードを下流の監査に紐付けるダイジェストを引き継ぎ、流動性の不合格を補充して有効銘柄50件または適格候補の完全な枯渇まで続け、詳細調査対象としてプローブ済みの銘柄5件を確定します。収集とスクリーニングの契約の全容については、references/full-universe-snapshot.mdを参照してください。 画面エンリッチメント中にプロバイダー呼び出しの予算が枯渇した場合、コマンドは終了コード 2 で終了し、audit/partial-run-diagnostic.json と audit/enriched-estimates.partial.jsonl を書き出します。この診断ファイルは最後のアトミックなコミットマーカーであり、スナップショット ID/ダイジェスト、ステージ、決定論的に試行/完了/保留/中断されたシンボル、中断されたプロバイダー操作、プロバイダーカウンター、および部分アーティファクトのハッシュを記録します。部分アーティファクトは、そのマーカーが存在し、記録されたハッシュと行数が検証できる場合にのみ読み取ってください。マーカーが存在しないか一致しない場合、部分出力は非権威的なものとなります。screen-full-snapshot には --resume はありません。プロバイダー予算を復元した後、同じ検証済みスナップショットを再実行してください。これにより、成功した呼び出しからの新しいキャッシュ/生レコードを許可しつつ、既存のキャッシュ/生データを削除または書き換えることなく再利用できます。パケットステージでの予算超過も broad-screen-audit.json を不完全/診断ありとしてマークし、ネストされたすべての選択コミットメントフィールドをクリアし、すべてのブロードスクリーン行(拒否された行を含む)を deferred_by_budget に書き換え、選択適格性を無効にします。元の decision は prior_decision に、元のトップレベル選択フィールドは prior_selection に保存されます。これらのアーカイブは監査専用であり、選択の権威となることは決してなく、繰り返しの無効化では最初のアーカイブが保持されます。監査も部分出力も、市場全体の最終的な結論ではありません。品質プローブの calls_used と actual_eps_calls は FMP プロバイダー予算単位をカウントします。キャッシュ済みまたは未送信の呼び出しはコストゼロであり、消費されたリトライ応答は引き続きカウントされます。各リトライは新しい空の実行ディレクトリを使用します。CLI は一意の試行サフィックスを追加し、生レスポンスを兄弟の試行ディレクトリに保持しますが、直接呼び出す側は空でない出力ディレクトリを再利用してはなりません。

直接ランナーはまずバルクの ratios、key metrics、estimate、および EOD データセットを試行します。バルクアクセスが利用できない場合にのみ、境界付きのシンボル単位エンリッチメントにフォールバックします。プラン制限された(402/403)バルクエンドポイントはキャッシュに 30 日間記憶されるため、以降の実行で再プローブに呼び出しを消費しません。フォールバックパスでは、estimate シードは層化されたセクター × 時価総額のサンプル(√重み付き Hamilton クォータ、セル内で流動性ランク付け、ハッシュによるタイブレーク)であり、そのサイズは残りの呼び出し予算から導出されます。audit/seed-audit.json に選択基準が記載されます。プール選択の前に、トップレーンの候補は key-metrics-ttm 品質プローブ(ROIC、FCF イールド、EV/FCF、レバレッジ、SBC)を受け取り、プローブで判明した SBC 調整後 FCF イールドが 1% 未満の行は high_growth_exception 以外のどのレーンにも入ることができません。正確な 20 日間 ADDV の作業は、ティッカー順ではなく 4 つの経済的レーンによって優先順位付けされます。完全な実行契約については references/claude-code-execution.md と references/migration-v3.6-to-v3.6.1.md をお読みください。

レイヤー 1 — 上場ユニバース監査

広範なカバレッジに適したフィールドのみを収集します:

  • シンボルと取引所、
  • アクティブ/普通株ステータス、
  • 価格とクォートのタイムスタンプ、
  • 時価総額、
  • 1 日平均ドル出来高、またはそれを計算するのに十分なデータ、
  • 利用可能な場合はセクターと業種。

ADDV しきい値の代わりに出来高の下限を使用しないでください。API が出来高のみでフィルタリングできる場合は、広く取得し、price × average volume を計算し、ドル流動性ルールをローカルで適用してください。

上場フィールドの完全性を少なくとも 95% 目標としてください。プロバイダーの合計と、ページネーションの枯渇またはギャップのない時価総額バンドの枯渇を用いて列挙を証明してください。要求された時価総額の下限と上限のエンドポイントのみを一致させることは、完全性の証明にはなりません。

レイヤー 2 — 経済的候補プール

以下の順序で最適なルートを選択します。

  1. build_provider_prefilter_pool.py で構築する複数レーンのプロバイダー事前フィルタープール。コア GARP、P/E 21~30 の高成長銘柄、低 P/E の高品質な惜しい銘柄、正規化が必要な景気循環銘柄について、幅広い行をそれぞれ個別に取得します。狭い P/E≤20 + revenue≥8% + low-cycle クエリを使うのではなく、各レーンを統合して監査します。
  2. 上場銘柄の行にすでに付与されている推定値/ファンダメンタルズを利用し、同じ4つのレーンタグを適用します。
  3. 層化した検出フォールバックとして build_discovery_pool.py を使い、その後エンリッチメントを行います。
  4. ユーザーが明示的にプールを指定した場合に限り、ユーザー提供のプールを使います。

範囲を限定したライブ実行では、プロバイダーが明らかに枯渇している場合を除き、少なくとも30件の解決済みプール行と、少なくとも3つのレーンを含めることを目指します。より小さい利便性重視のプールは診断用には使えますが、再現率の高い GARP 検索として説明してはいけません。

経済的な対象範囲は正直に示してください。run-summary.json は listing_enumeration_complete と economic_screen_scope_complete を分けており、estimate_seed_coverage_pct/valid_estimate_coverage_pct を報告します。範囲を限定した銘柄ごとのフォールバック経路では、経済的な対象範囲が完了することはなく、検出監査には provider_exhausted_scope: estimate_seed が記録されます。このような結果は、「コンセンサス推定値を用いて、シードに含まれる N 銘柄を評価」と記述し、市場全体に関する結論としてはいけません。銘柄ごとの経路で final_marketwide を出力できるのは、ユニバース全体の分類を十分に検証し、検証ダイジェストを紐付けた screen-full-snapshot のみです。

TTM または財務諸表のエンドポイントがプラン制限の対象であるという理由で処理を中止してはいけません。自動的に別のルートに切り替えてください。

決定論的な広範スクリーニングのルール
  • 売上高成長率、1株当たり成長率、ROIC、レバレッジ、望ましい評価水準は、目安であり、単独で適用する厳格な足切り基準ではありません。
  • 目安に届かない点は guideline_misses に記録します。
  • screen_fail_reasons は、必要な場合の標準 FCF がプラスでない、ROIC がマイナス、レバレッジが過大、成長で正当化できない極端なバリュエーション、または将来成長率がマイナスといった、重大な除外理由に限って使用します。
  • バリュエーションが魅力的で、売上高成長率が目安に届かなくても1株当たり成長率に信頼性がある場合は、near_miss_review を許可します。
  • 成長性と証拠が審査を正当化する場合は、P/E 21~30 の高成長銘柄の例外を許可します。
  • 景気循環性スコアが3~5の場合は、mid_cycle_normalization_required を追加します。行を自動的に除外してはいけません。
  • peak_profit_risk=true の場合は、景気循環性スコアの数値にかかわらず正規化を必須とします。
  • 銀行、保険会社、REIT、BDC、MLP、自動車ディーラーは、セクターに適したバリュエーションまたはレバレッジの根拠が得られるまで対象外とします。
  • スクリプトが生成したショートリストを正として扱います。スクリプトの実行後に、非公式な売上高成長率または景気循環性の基準を適用して、GDDY のような惜しい銘柄や KGS/AMKR のような景気循環銘柄を除外してはいけません。
レイヤー 3 — 一次情報源による詳細調査

選定した銘柄のみを対象に、SEC 提出書類および企業の IR で重要な事実を検証します。ベンダーは検出データやコンセンサスデータの提供元として利用できますが、実際の売上高、キャッシュフロー、負債、株式数、SBC、ガイダンス、コーポレートアクション、会計上の調整については、入手可能な限り一次情報源を根拠としてください。

情報源と証拠に関するルール

以下の優先順位を使用します。

  1. SEC 提出書類。
  2. 企業の IR。
  3. 公式のマクロ経済/統計情報源。
  4. マーケットデータおよびコンセンサスのベンダー。
  5. 補足的な背景情報としてのみ使用する、信頼できるニュースおよび第三者による書き起こし。
  6. 明示的にラベル付けしたアナリストの計算および仮定。

すべての情報源に、以下が必要です。

unique source ID
tier and kind
publication timestamp
retrieval timestamp
data_as_of when different
URL
non-empty supports[] array

公式情報源のラベルは公式ドメインと一致していなければなりません。第三者による書き起こしは、企業の IR ではありません。動的な市場データ項目は、取得時刻だけでなく、基となるデータの日付に照らして検証します。

財務および予測の管理

標準的な FCF および TTM のエビデンス

次を使用します。

standard FCF = operating cash flow − capex cash outflow

Capex は正のキャッシュアウトフローです。TTM キャッシュフローは、次のいずれか 1 つの文書化された方法で構築します。

  • 報告された TTM、
  • 4 つの個別四半期、または
  • 直近の通期 + 当年度累計 − 前年同期累計。

各構成期間には、解決可能なソース ID が必要です。累積された 10-Q キャッシュフロー値を二重計上しないでください。

現金の分類

通常の事業会社では、報告された現金および現金同等物を corporate_cash に正規化し、適格な市場性証券を別途識別します。決済、保管、マーケットプレイス、ブローカー、または送金事業の場合、企業の現金を決済資金・顧客資金および制限付き現金から明示的に分離します。企業価値および純有利子負債には、株主が利用可能な現金のみを使用します。

ドライバー由来の予測ブリッジ

単に EPS × shares と等しく設定された分子を割ることで予測を検証しないでください。

EPS については、次を独立に再構築します。

forecast operating income = forecast revenue × forecast operating margin
forecast pretax income = operating income + net interest/other income
forecast GAAP net income = pretax income × (1 − tax rate)
forecast adjusted net income = GAAP net income + sourced after-tax adjustments
forecast EPS = forecast net income ÷ forecast diluted shares

1 株当たり FCF については、OCF と capex から標準的な FCF を導出するか、完全にソース付けされた売上高/FCF マージンモデルから導出し、それを予測希薄化後株式数で割ります。

ドライバーの結果は、許容範囲内で主張された指標と一致しなければなりません。提供された分子/分母フィールドは相互チェック専用です。調整後期間では、ドライバー由来の GAAP 指標および税引後調整額を GAAP 調整表と一致させる必要もあります。

GAAP および調整後指標

基準は、当年度、第 2 年度、第 3 年度について別々に保存します。基準が混在している場合は正式なシナリオがブロックされます。反復的な「一時的」除外項目、SBC、買収費用、および無形資産償却は、説明し、品質/リスク評価に反映する必要があります。

ROIC、EBITDA、および品質のエビデンス

スコアリングまたはレバレッジ計算に使用される ROIC および EBITDA には、ソースにリンクされた入力、または透明なアナリスト計算が必要です。エビデンスが欠落している場合、データ品質が上限に制限され、根拠のない 100 スコアはブロックされます。

セクターおよびサイクル制御

商業バイオファーマおよびロイヤルティ/ドラッグデリバリープラットフォーム

企業が商業製品/ロイヤルティのエクスポージャーを有する場合、biopharma、pharma、biotechnology、royalty_biopharma、drug_delivery_platform などのエイリアスを commercial_biopharma に正規化します。

次を必須とします。

  • 製品またはロイヤルティの集中度、
  • 直近の重要な LOE/特許イベント、
  • LOE までの年数、
  • 解決可能なソース ID、
  • 重要な場合に構成される 6x および 8x の LOE ストレスシナリオ。

構造的リスクのエビデンスが欠落している場合、review_required および品質上限が発生します。

シクリカルおよびピーク利益リスク

シクリカリティが 3~5 である または peak_profit_risk=true の場合、ミッドサイクルの売上高/マージン/EPS/FCF を含むソース付き正規化オブジェクト、または現在の経済性が持続可能である理由を文書化したものを必須とします。正規化を伴わないリスクフラグだけでは eligible には不十分です。

ワークフロー

ステップ 1 — Claude Code で直接ディスカバリーを実行する

Claude Code の場合は、上記の直接ランナーから開始します。これにより、run ディレクトリ、リスティングおよび候補プールの監査、コンパクトな候補パケット、run-summary.json、および NEXT_ACTION.json が作成されます。ユーザーに確認を求めることなく NEXT_ACTION.json に従ってください。以下の手動コマンドは、直接 HTTP コードを実行できないホスト向けのフォールバックとして残ります。

ステップ 1B — 手動ホストのフォールバック: run ディレクトリとライブコンテキストを作成する
reports/us-undervalued-growth-screener/<run-id>/
├── market-context.json
├── global-sources.json
├── universe.jsonl
├── discovery/
├── broad-screen/
├── run/
└── final/

合成のサンプルアセットから、値、URL、日付、ソース ID、またはティッカーをライブ run にコピーしないでください。

Step 2 — 候補プールの構築、正規化、監査

実行契約では、ユーザーが当初指定したスコープを維持してください。バルクデータに基づく経済指標を利用できない場合は、要求された時価総額の範囲を狭めずに、完全に監査済みの上場銘柄一覧から範囲を限定した探索プールを構築してください。プールの生成に使用するすべての上場銘柄行には、検証済みのプロバイダー平均流動性、または20取引日以上の流動性を示す証拠を含める必要があります。

プロバイダーによるスクリーニングが利用可能な場合は、レーンごとに1つのJSONLを保存し、次の手順で決定論的に結合してください。

python3 skills/us-undervalued-growth-screener/scripts/build_provider_prefilter_pool.py \
  --universe reports/us-undervalued-growth-screener/<run-id>/universe.jsonl \
  --lane core_garp=reports/us-undervalued-growth-screener/<run-id>/provider/core.jsonl \
  --lane high_growth_exception=reports/us-undervalued-growth-screener/<run-id>/provider/high-growth.jsonl \
  --lane quality_near_miss=reports/us-undervalued-growth-screener/<run-id>/provider/near-miss.jsonl \
  --lane cyclical_normalization=reports/us-undervalued-growth-screener/<run-id>/provider/cyclical.jsonl \
  --output-dir reports/us-undervalued-growth-screener/<run-id>/provider \
  --analysis-as-of <ISO-8601> \
  --source-id <provider-source-id> \
  --per-lane 15 --max-pool 60 --minimum-pool 30

出力されたprovider-prefilter-audit.jsonを--discovery-auditとして使用し、provider-prefilter-pool.jsonlを候補プールとして使用してください。

python3 skills/us-undervalued-growth-screener/scripts/build_discovery_pool.py \
  --input reports/us-undervalued-growth-screener/<run-id>/universe.jsonl \
  --output-dir reports/us-undervalued-growth-screener/<run-id>/discovery \
  --source-id <listing-source-id> \
  --min-market-cap 500000000 \
  --max-market-cap 20000000000 \
  --user-requested-min-market-cap 500000000 \
  --user-requested-max-market-cap 20000000000 \
  --max-pool 120 \
  --per-cell 3

Broad Screenの前に、日付付きの年間コンセンサス行を正規化してください。--estimate-as-ofは必須です。NTM/FY1の行を解決できない企業については、診断用に生の外側年度データのみを保持し、unavailableにするか、エンリッチメントに残してください。現在のForward P/Eを付与することはできません。

python3 skills/us-undervalued-growth-screener/scripts/normalize_estimates.py \
  --estimates reports/us-undervalued-growth-screener/<run-id>/discovery/raw-annual-estimates.jsonl \
  --listing-input reports/us-undervalued-growth-screener/<run-id>/discovery/discovery-pool.jsonl \
  --analysis-as-of <ISO-8601> \
  --estimate-as-of <ISO-8601> \
  --source-id <estimate-source-id> \
  --output reports/us-undervalued-growth-screener/<run-id>/discovery/enriched-candidate-pool.jsonl

正規化した推定値の行を範囲限定済みプールにマージし、screen_universe.pyを実行してください。取得範囲を明示し、上場銘柄の列挙を裏付ける証拠を提示してください。生成監査を--discovery-auditで渡してください。

python3 skills/us-undervalued-growth-screener/scripts/screen_universe.py \
  --input reports/us-undervalued-growth-screener/<run-id>/universe.jsonl \
  --candidate-pool reports/us-undervalued-growth-screener/<run-id>/discovery/enriched-candidate-pool.jsonl \
  --discovery-audit reports/us-undervalued-growth-screener/<run-id>/discovery/discovery-audit.json \
  --output-dir reports/us-undervalued-growth-screener/<run-id>/broad-screen \
  --analysis-as-of <ISO-8601> \
  --source-id <listing-source-id> \
  --candidate-source-id <estimate-source-id> \
  --candidate-generation-mode liquidity_stratified_estimates \
  --retrieval-min-market-cap 500000000 \
  --retrieval-max-market-cap 20000000000 \
  --user-requested-min-market-cap 500000000 \
  --user-requested-max-market-cap 20000000000 \
  --provider-reported-total <count> \
  --pages-fetched <count> \
  --pagination-exhausted \
  --config skills/us-undervalued-growth-screener/assets/screening-config.example.json \
  --max-deep-dives 5

コマンドが2で終了した場合は、enrichment-queue.jsonとbroad-screen-audit.jsonを確認し、同じタスク内でエンリッチメントを続けてから再実行してください。すべての行が解決され、生成監査によって範囲が限定されていることが証明された後にのみ、--candidate-pool-exhaustedを渡してください。

Step 3 — 実行をチェックポイントに保存

スクリーニング監査を初期化して紐付けます。

python3 skills/us-undervalued-growth-screener/scripts/manage_run_state.py init \
  --run-dir reports/us-undervalued-growth-screener/<run-id>/run \
  --analysis-as-of <ISO-8601> \
  --price-as-of <ISO-8601> \
  --session regular_close \
  --price-source-id <source-id> \
  --market-context reports/us-undervalued-growth-screener/<run-id>/market-context.json \
  --global-sources reports/us-undervalued-growth-screener/<run-id>/global-sources.json \
  --base-commit <git-sha>

python3 skills/us-undervalued-growth-screener/scripts/manage_run_state.py set-screening-audit \
  --run-dir reports/us-undervalued-growth-screener/<run-id>/run \
  --audit reports/us-undervalued-growth-screener/<run-id>/broad-screen/broad-screen-audit.json \
  --universe-artifact reports/us-undervalued-growth-screener/<run-id>/broad-screen/universe-audit-results.jsonl \
  --candidate-artifact reports/us-undervalued-growth-screener/<run-id>/broad-screen/broad-screen-results.jsonl
Step 4 — 選定銘柄の詳細分析を完了

選定したすべての銘柄について:

  1. まずコーポレートアクションの事前確認を行います。
  2. 最新四半期と通期をそれぞれ個別に検証します。
  3. 標準FCFとTTMの証拠を構築します。
  4. 現金の分類を正規化します。
  5. 同一基準による現在、2年目、3年目の評価期間を構築します。
  6. 独立した予測ブリッジを作成します。
  7. 調整後指標をGAAPと照合します。
  8. ROIC、EBITDA、SBC、希薄化、ピア企業、市場サイクル/セクターの証拠を情報源から取得します。
  9. 最終的な候補ステータスがreview_required、screened_out、excludedとなる場合でも、候補をverifiedとして保存します。
python3 skills/us-undervalued-growth-screener/scripts/manage_run_state.py save-candidate \
  --run-dir reports/us-undervalued-growth-screener/<run-id>/run \
  --candidate reports/us-undervalued-growth-screener/<run-id>/candidates/<SYMBOL>.json \
  --stage verified
Step 5 — 完了して組み立てる
python3 skills/us-undervalued-growth-screener/scripts/manage_run_state.py set-status \
  --run-dir reports/us-undervalued-growth-screener/<run-id>/run \
  complete

python3 skills/us-undervalued-growth-screener/scripts/manage_run_state.py assemble \
  --run-dir reports/us-undervalued-growth-screener/<run-id>/run \
  --output reports/us-undervalued-growth-screener/<run-id>/final/final-snapshot.json
Step 6 — 厳格な評価と修正のループ
python3 skills/us-undervalued-growth-screener/scripts/evaluate_candidates.py \
  --input reports/us-undervalued-growth-screener/<run-id>/final/final-snapshot.json \
  --artifact-root reports/us-undervalued-growth-screener/<run-id> \
  --output-dir reports/us-undervalued-growth-screener/<run-id>/final \
  --language ja \
  --strict \
  --require-final

終了コードが0で、出力に以下が含まれている場合を除き、正式な結果を提示しないでください。

contract.valid = true
ranking_status = final
unprocessed_candidates = []
runtime.contract_revision = 3.5
Step 7 — 公開前監査と自己完結型バンドル

生成された最終JSONとMarkdownを特定してから、次を実行します。

python3 skills/us-undervalued-growth-screener/scripts/prepublish_audit.py \
  --report-json reports/us-undervalued-growth-screener/<run-id>/final/<report>.json \
  --report-md reports/us-undervalued-growth-screener/<run-id>/final/<report>.md \
  --artifact-root reports/us-undervalued-growth-screener/<run-id> \
  --output reports/us-undervalued-growth-screener/<run-id>/final/prepublish-audit.json

python3 skills/us-undervalued-growth-screener/scripts/bundle_run_artifacts.py \
  --run-dir reports/us-undervalued-growth-screener/<run-id> \
  --report-json reports/us-undervalued-growth-screener/<run-id>/final/<report>.json \
  --report-md reports/us-undervalued-growth-screener/<run-id>/final/<report>.md \
  --output reports/us-undervalued-growth-screener/<run-id>/final/us-undervalued-growth-screen-<date>.zip

両方のコマンドが0で終了する必要があります。レポートとともに、自己完結型のZIPを提示してください。

出力形式

JSONとMarkdownの両方を生成してください。Markdownには以下を含める必要があります。

  • 実行時情報/バージョンと結論の対象範囲
  • 分析時刻と株価のタイムスタンプ
  • 市場の状況と情報源台帳
  • 上場銘柄と候補プールの監査/ファネル
  • Broad Screenの選定、保留、レビュー対象、利用不可、スクリーニング除外、対象除外の各行
  • 正式なランキングとスコアの内訳
  • 明示的な2Y/3Y一定倍率シナリオ、および2Y/3Yの倍率20%縮小シナリオ
  • 候補の詳細、最新決算、予測ブリッジ、GAAPとの照合、ピア企業、市場サイクル/セクターのリスク、カタリスト、無効化条件
  • ランキングが確定している場合に限り、最終上位3銘柄
  • 未解決のデータと全体に関する警告

ラベルのない同一列で、2Yのベースケースと3Yのストレスケースを組み合わせないでください。

リソース

  • references/claude-code-execution.md — FMP の直接実行、キャッシュ、コンテキストの圧縮、引き継ぎに関する契約。
  • references/autonomous-execution.md — 同一ターン内の実行、フォールバック、ランタイム、完了に関する契約。
  • references/data-contract.md — schema-v3 / contract-v3.5 のソース、監査、候補、出力に関する契約。
  • references/methodology.md and methodology-ja.md — 財務および投資の方法論。
  • references/research-checklist.md — 一次情報に基づく引受調査のチェックリスト。
  • references/scoring-rubric.md — スコア、ペナルティ、品質上限、ステータスゲート。
  • references/sector-kpis.md — セクター別の評価指標/KPI 要件。
  • references/output-template.md — 必須の JSON/Markdown 表示形式。
  • references/checkpointing.md — アトミックな保存/再開手順。
  • references/review-regression-matrix.md — 確認された不具合と、それを防ぐテスト。
  • references/migration-v3.5-to-v3.6.md — Claude Code の FMP 直接利用への移行と運用変更。
  • references/migration-v3.4-to-v3.5.md — 以前の破壊的変更とアップグレード手順。
  • scripts/skill_version.py — ランタイム/バージョン定数の正規定義。
  • scripts/fmp_client.py — SQLite キャッシュと生データアーティファクトの保存機能を備えた、安定性を優先する生成済み FMP クライアント。
  • scripts/run_pipeline.py — コンパクトな標準出力を備えた、Claude Code ネイティブの FMP 直接利用型ディスカバリーランナー。
  • scripts/build_provider_prefilter_pool.py — 監査済みの 4 レーンプロバイダープールビルダー。
  • scripts/build_discovery_pool.py — 平均流動性の検証を伴う、決定論的なフォールバックプール生成。
  • scripts/normalize_estimates.py — 現在の NTM/FY1 コンセンサス期間の特定と検証。
  • scripts/screening_semantics.py — 流動性と将来期間に関する、共有のフェイルクローズ方式のセマンティクス。
  • scripts/screen_universe.py — 上場監査と広範なスクリーニングエンジン。
  • scripts/manage_run_state.py — チェックポイントおよび最終スナップショットの管理。
  • scripts/evaluate_candidates.py — 決定論的な厳格評価、品質適格性ゲート、レポートのレンダラー。
  • scripts/prepublish_audit.py — 最終成果物/件数/シナリオ/文章の監査。
  • scripts/bundle_run_artifacts.py — 決定論的な自己完結型監査バンドルビルダー。

コメント