会場別のコース適性を分析する。会場を省略すると全会場の成績を表示する。「コース分析」「会場別の適性を見たい」といった依頼で発動する。
race-list
登録済みレース一覧を表示し、ユーザーが選んだレースについてML確率予測を主・ルールベース10要素を理由の内訳として予想結果を出力する。「レース一覧」「予想して」「どのレースを予想する?」といった依頼で発動する。
含まれるファイル(1)
- SKILL.md7.3 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
レース一覧表示と予想実行
登録済みのレース一覧を表示し、予想したいレースを選択できます。
位置づけ(重要)
- ML確率が主: 単勝確率(レース内合計100%)と複勝確率(合計300%)が予想の軸。
- ルールベース10要素は「理由の内訳」: 順位付けの根拠ではなく、 なぜその馬が高いのか/低いのかを人間に説明するための材料として使う。
- 採用ゲート未通過なら主従が逆転する:
bun start ml --validateの 採用ゲートが ❌ の場合、順位付けはルールベース総合スコアを主とし、 ML確率は参考値として併記する(後述)。
手順
1. レース一覧を取得
bun start score --list
2. ユーザーに質問
レース一覧を表示したら、AskUserQuestion ツールを使って以下のように質問してください:
- 質問: 「どのレースを予想しますか?」
- ヘッダー: 「レース選択」
- 選択肢: レース一覧から上位4件を選択肢として提示(ID: レース名 形式)
3. 採用ゲートを確認(最初に1回)
bun start ml --validate
出力の「採用ゲート」を読み、以下のどちらの方針で進めるかを決めてください。
| ゲート判定 | 予想の主軸 | 表示方法 |
|---|---|---|
| ✅ 通過(log loss が市場のみモデルを下回り、top-1 / Brier でも市場のみモデルに負けていない) | ML確率 | ML順で並べ、10要素は理由として添える |
| ❌ 未通過 / データ不足で検証不能 | ルールベース10要素 | スコア順で並べ、ML確率は「参考」と明記して併記 |
ゲートが未通過、または「walk-forward には最低10レース必要です」等の データ不足メッセージが出た場合は、必ず予想の冒頭に 「ML は採用基準を満たしていないため、順位はルールベースを主としています」と書いてください。
4. ML予測を実行
bun start ml --race <選択されたレースID>
出力される列:
| 列 | 意味 |
|---|---|
| 単勝 | ML の単勝確率(レース内合計100%) |
| 複勝 | ML の3着以内確率(レース内合計300%) |
| 市場 | 控除率補正済みの市場暗黙勝率。全馬にオッズが揃っているレースはオッズから、揃っていなければ人気順位から算出 |
| ルール | ルールベース10要素の総合スコア(0-100) |
「単勝 − 市場」が正の馬は、モデルが市場より高く評価している馬です(妙味候補)。
過去レース結果ページには全馬の事前単勝オッズが無いため、 蓄積データでは
race_entries.win_oddsが大半 NULL です(異常ではありません)。 そのため市場系の指標は 人気順位(popularity) を主軸にしています。backtest/ml --validateの出力に「算出元: 単勝オッズ N件 / 人気順位 M件」が出るので、 市場との比較を語るときはどちらで算出したかを併記してください。
5. ルールベースの内訳を取得
bun start score --race <選択されたレースID>
10要素(直近成績 / コース適性 / 距離適性 / 上がり3F / G1実績 / ローテ適性 / 騎手能力 / 馬場適性 / 枠順効果 / 調教師)の内訳を、予想理由の説明に使います。
- 調教師スコアは Orchestrator 未実装のため現状は全馬0点です。0点を「弱い」と解釈しないこと。
- 重みの正は
src/constants/ScoringConstants.tsです。 - 10要素は ML の特徴量の一部でもあります(
ruleScores)。 「10要素だけが ML の特徴量」ではありません。ML は市場オッズ・馬体重・斤量・ 通算成績・前走情報・レース内相対化も使います。
6. 予想結果の出力
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🏆 最終予想
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(採用ゲート: ✅通過 / ❌未通過 → 主軸は ML / ルールベース)
◎ 本命: XX番 馬名(単勝XX% / 市場XX%)
○ 対抗: XX番 馬名(単勝XX% / 市場XX%)
▲ 単穴: XX番 馬名(単勝XX% / 市場XX%)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
確率と市場の比較表
📊 ML確率 × 市場 × ルールベース
馬名 単勝 複勝 市場 妙味 ルール順
------------------------------------------------------------
XXXXX 28.0% 61.0% 22.0% +6.0pt 2位
YYYYY 18.0% 45.0% 25.0% -7.0pt 1位
- 妙味 = ML単勝確率 − 市場暗黙確率
- 「ルール順」はルールベース総合スコアの順位
予想理由(ML確率が結論、10要素が内訳)
📝 予想理由
【◎ 本命 XX番 馬名】
・ML: 単勝XX%(市場XX%より +XXpt)
・内訳(10要素): 直近成績XX点 / コース適性XX点 / 距離適性XX点
・総合判断: XXXX
【○ 対抗 XX番 馬名】
...
穴馬候補
💎 穴馬候補
★ XX番 馬名
→ 市場XX%に対し ML XX%。内訳では 距離適性XX点 / 上がり3F XX点 が効いている
懸念点・リスク
⚠️ 懸念点
【モデル信頼度について】
・採用ゲート: ✅/❌(log loss: ML XX vs 市場 XX、top-1: ML XX% vs ルール XX%)
・学習レース数 / 出走行数: `ml --train` の出力を記載
・較正: `ml --validate` の較正テーブルで、予測確率と実績勝率が大きくズレる帯があれば明記
・データが少ない場合は「確率の絶対値は信用しない。順位のみ参考」と書く
【本命 XX番について】
・ML確率とルールベース順位が乖離する場合はその理由
・データ不足、未経験条件など
買い目提案
🎯 買い目提案
・単勝: XX番(単勝XX%、市場比 +XXpt)
・複勝: XX番(複勝XX%)
・馬連 / ワイド / 3連複: XX-XX ...
やってはいけないこと
- ML確率を「的中率」と言い換えないこと(確率であって保証ではない)。
- 採用ゲート未通過なのに ML順を主軸として提示しないこと。
- 特徴量の重要度を固定で決めつけないこと。
ml --trainの 「特徴量寄与度(標準化係数)」の実出力から述べること。 - 存在しない特徴量(中山複勝率、過去3走偏差値など)を説明に使わないこと。
出力順序
- 最終予想(採用ゲートの状態を明記)
- ML確率 × 市場 × ルールベースの比較表
- 予想理由(ML確率が結論、10要素が内訳)
- 穴馬候補
- 懸念点・リスク
- 買い目提案
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
抽出済みJSONファイル(馬・血統・レース出走データ)をSQLiteデータベースにインポートする。「DBインポート」「データベースに保存」「JSONをDBに登録」といった依頼で発動する。
実装前に参照する設計原則。理解容易性 = 読み手の思考量の少なさを基準に、AI が作りがちな失敗4パターン(引数・依存5個以上、コマンド層肥大・ドメイン貧血症、ポリモーフィズム機会の見逃し、トリッキーな実装)と、実装後セルフチェックの7観点(名称・役割・参照・状態・面積・階層・秩序)を言語化。Use when starting any implementation task, when user says '設計原則', 'design principles', or before writing new entities/commands/repositories.
agent 向けテキスト指示(skill / slash command / task プロンプト / コード生成プロンプト)を、バイアスを排した実行者に動かしてもらい、両面(実行者の自己申告 + 指示側メトリクス)で評価して反復改善する手法。改善が頭打ちになるまで回す。Use when user says 'プロンプトを改善して', 'スキルをチューニング', 'empirical-prompt-tuning', or after creating/heavily revising a skill or prompt.
JRA公式サイトから特定レースの出馬表HTMLを取得して馬データを抽出する。「データ取得」「JRAからデータを取ってきて」「出馬表を取得して」といった依頼で発動する。
有馬記念分析システムで利用可能なスキル一覧と使い方、スコア配分、基本ワークフローを表示する。「ヘルプ」「使い方を教えて」「何ができるの」といった依頼で発動する。