world-cup-predictor について
Codex のスキルとして、メインエージェントとサブエージェントの分析をウェブダッシュボードに集約し、ライブのワールドカップ予測ルームを運営します。終了済みの試合と予測を区別し、更新を保存して再生できます。
主な機能
- 01ライブ予測ダッシュボード
- 02グループ別・試合別の並行分析
- 03ニュース、市場、天候シグナルの収集
- 04終了済み試合結果の固定
- 05スナップショット履歴と再生
活用シーン
- 01グループステージから決勝までの予測
- 02分析に応じた予測の段階的な追跡
- 03予測の時間経過による変化の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ agentara/ skills --skill world-cup-predictorインストール後、Claude Code で/world-cup-predictorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlassets/dashboard/app.jsindex.htmlstyles.cssassets/dashboard/data/final-subagent-dashboard.jsongroups.jsonlive-state.jsonlocked-results.jsonpartial-subagent-dashboard.jsonpredictions.jsonsignals.jsonsource-log.jsonthird-place-annex-c.jsonreferences/agent-native-workflow.mddashboard-data-contract.jsonprediction-schema.jsonresearch-protocol.mdsubagents.mdworldcup-2026-groups.jsonscripts/bootstrap_worldcup.pybuild_final_forecast.pycollect_signals.pymerge_predictions.pypublish_dashboard.pyreplay_history.pyset_live_state.pystart_dashboard.pysync_locked_results.pyvalidate_skill.shtests/test_skill_regressions.py詳細
ワールドカップ予測
概要
このスキルを使って、エージェントネイティブなワールドカップ予測ルームを運用します。呼び出し元の Codex エージェントがまずウェブダッシュボードを起動し、最新のシグナルを収集して、個別に分析するサブエージェントを起動します。その後、サブエージェントの結果が届くたびに、予測の更新をページに公開します。
決定論的、静的、またはハードコードされた予測で代用しないでください。モデルの推論は、現在の Codex エージェントとそのサブエージェントによるものでなければなりません。
デフォルトのアクション
「今回のワールドカップを予測して」「大会の展開を予測して」「優勝するのは誰?」などの幅広いリクエストに対しては、次の手順を実行します。
- まずダッシュボードサーバーを起動します。
- スキルのルートから、長時間稼働するフォアグラウンドのツールセッションで
python3 scripts/start_dashboard.py --port 8789を実行します。 - 8789 が使用中の場合、ヘルパーが次に空いているポートを選びます。表示された URL を報告してください。
- シェルのバックグラウンド実行に
&を使わないでください。一部の Codex シェルでは、ブラウザーが接続する前にデタッチされたプロセスが終了することがあります。
- スキルのルートから、長時間稼働するフォアグラウンドのツールセッションで
- ページの状態を初期化します。
scripts/bootstrap_worldcup.py --out assets/dashboard/dataを実行します。scripts/set_live_state.py --stage kickoff --message "Starting subagent World Cup prediction room" --progress 0.03を実行します。
- 終了済みの試合結果を確定します。
- 公式または信頼できるライブスコア情報源で、すでに終了した試合の結果を確認します。
scripts/sync_locked_results.pyを使って、結果をassets/dashboard/data/locked-results.jsonに書き込みます。- 確定済みの試合をサブエージェントに予測させないでください。
- 最新のシグナルを収集します。
scripts/collect_signals.py --out assets/dashboard/data/signals.jsonを実行します。signals.jsonにstatus: "fallback-required"の Polymarket の行、またはstatus: "missing ODDS_API_KEY"のオッズが含まれている場合は、それらの行を保持し、市場分析のサブエージェントに記載された公開ページを手動で調査させてください。市場データが空であることを確率ゼロとして扱わないでください。scripts/set_live_state.py --stage signal-collection --message "Collected news, markets, weather, and optional odds" --progress 0.10を実行します。
references/agent-native-workflow.md、references/research-protocol.md、references/dashboard-data-contract.jsonを読みます。references/agent-native-workflow.mdの階層型ワークフローに従ってサブエージェントを起動します。marketsとnews-weatherは、サイドカーのシグナルエージェントとして維持します。- グループステージでは、グループごとに 1 つのサブエージェント(
group-aからgroup-l)を起動します。 - ノックアウトステージでは、現在のラウンドの試合ごとに 1 つのサブエージェントを起動し、決勝までラウンドごとに進めます。
- 準決勝の勝者が確定した後、決勝は決勝戦専用のサブエージェント 1 つが予測します。
- サブエージェントの結果が届くたびに、
scripts/publish_dashboard.pyを使ってダッシュボードの部分的な JSON を公開します。- 最初の待機時間よりサブエージェントに時間がかかる場合は、より長い間隔で待機を続け、ダッシュボードが稼働状態を保てるよう、ライブ状態のハートビート更新を公開します。
- コンパクトな結果を無理に出させるためだけに、応答の遅い役割エージェントを中断しないでください。明示的な失敗、サブエージェント用ツールが利用できない場合、または待機をやめるというユーザーのリクエストがあった場合に限り、不足している役割を統合してください。
- 最終出力には、確定済みの結果と、残りの大会の全行程に関する予測を含めます。
scripts/publish_dashboard.py --completeを使って最終データを公開します。- ローカル回帰テストを実行してから、Browser プラグインでダッシュボードとリプレイ操作を確認します。
回帰テスト
最終的なダッシュボードデータを公開した後、ローカル回帰テストスイートを実行します。
python3 -m unittest discover -s tests -v
スキルのルートではなくリポジトリのルートから実行する場合は、次を使います。
python3 -m unittest discover -s world-cup-predictor/tests -v
これらのテストでは、Python 標準の unittest フレームワークを使用します。将来の依存関係ファイルで明示的に追加されない限り、pytest を必須にしないでください。pytest が見つからない場合は、回帰テストの失敗ではなく、環境またはツールの問題として扱ってください。
予測の契約
- Web ページはライブ表示面です。作業の進行中も
assets/dashboard/data/live-state.jsonとassets/dashboard/data/predictions.jsonを更新し、変化し続ける状態にしてください。 - 公開された予測とライブ状態の更新は、
assets/dashboard/data/replay.jsonにスナップショットを追記します。実行中はこのファイルを保持し、完成したダッシュボードで予測ルームを再生できるようにしてください。 - サブエージェントの推論が予測エンジンです。決定論的な評価やハードコードされた予測で代用しないでください。
- 終了した試合は予測ではなく確定結果です。予測前にロックし、サブエージェントの予測対象から除外してください。
- すべての試合パケットに、確率、予想スコア、イベントのタイムライン、勢い、根拠、リスク、環境要因を含めてください。
- 最終的なダッシュボード JSON は
references/dashboard-data-contract.jsonに適合させてください。 - サブエージェントのツールを利用できない場合は、メインエージェントで同じ分析を行い、並列化が利用できなかったことを明記してください。
根拠に関するルール
- すべての情報源に日付を付けてください。ワールドカップは開催中で、情報はすぐに変化します。
- 観測された結果と予測を分けてください。すでに行われた試合は事実としてロックしてください。
- データが欠落している、または古くなっている場合は、推測で補わず、その旨を明示してください。
- ライブデータコネクターに障害が発生した場合は、
signals.jsonに記載された明示的な代替 URL を使用し、コネクターの障害をダッシュボードの説明文に記載してください。 - Polymarket とオッズについては、市場のタイトル、URL、タイムスタンプ、確認できる場合は流動性/取引量、価格、正規化したインプライド確率を記録してください。
- 戦術に関する主張には、具体的な対戦要素を挙げてください。プレスへの対応力、ビルドアップの形、トランジション守備、セットプレー、サイドでの数的優位、ゴールキーパーの配球、メンバーのローテーション、高度/移動/休養、出場停止のリスクなどです。
- シミュレーションに関する主張では、可能な限り各イベントの要因を挙げてください。暑さによる疲労、湿度によるテンポ低下、負傷による制約、セットプレーのミスマッチ、ベンチの層の厚さ、ゴールキーパーの特性、戦術の変更などです。
リソース
references/agent-native-workflow.md:サブエージェントを起動する Codex エージェント向けの、キー不要のデフォルトワークフローです。references/research-protocol.md:情報源のチェックリスト、確率の調整、確信度の評価基準です。references/subagents.md:サブエージェント向けの役割プロンプトと引き継ぎの契約です。references/prediction-schema.json:試合単位のエージェント出力に関する JSON 契約です。references/dashboard-data-contract.json:大会予測のダッシュボード全体に関する JSON 契約です。references/worldcup-2026-groups.json:初期グループスナップショットです。scripts/bootstrap_worldcup.py:ダッシュボードのデータ構成を作成します。scripts/start_dashboard.py:8789 または次に空いているポートで静的ダッシュボードを起動します。scripts/collect_signals.py:最新のニュース RSS、Polymarket、天気、任意のオッズ情報を収集します。scripts/set_live_state.py:ダッシュボードのブロードキャストバーを更新します。scripts/replay_history.py:実行後の再生に使うダッシュボードのスナップショットを追記します。scripts/sync_locked_results.py:すでに終了し、予測対象にすべきでない試合の結果を管理します。scripts/publish_dashboard.py:サブエージェント由来の予測を部分公開または最終公開します。scripts/merge_predictions.py:サブエージェントが重複する出力を生成した場合に、役割別の試合パケットを統合します。scripts/validate_skill.sh:ローカルの仮想環境を作成し、検証用の依存関係をインストールして、公式スキルバリデーターを実行します。assets/dashboard/:静的ライブダッシュボードです。
コメント
Markdown 対応