Communitygithub.com

3clyp50/soccer-value-finder-skill

適用於 Codex 的技能,負責進行負責任的足球價值分析,包含可見賠率、價格紀律與賽後校準。

soccer-value-finder-skill 是什麼?

此技能旨在協助開發者或 AI 代理使用者,以分析師而非報牌者的身份,識別足球市場中的潛在價值標的。它強制要求使用「潛在價值」而非「最佳投注」等措辭,並透過嚴格的護欄機制防止不負責任的行為,例如捏造賠率、鼓勵追輸或建議過度投注。該技能支援多種平台(如 Claude Code、Cursor、Codex),工作流程涵蓋從賽程發現、賠率收集、機率計算到賽後校準的完整分析循環。其核心運作依賴可見賠率資料,並透過安全邊際門檻(例如 1X2 熱門需 +2.5 個百分點的優勢)來過濾標的,同時整合獨立模型(如 Forebet)、新聞情緒及市場動向作為輔助信號。最終會產生一份排名清單,若無任何標的通過門檻,則明確給出「不投注」的結論,以此確保決策的嚴謹與負責任。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add 3clyp50/soccer-value-finder-skill

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

足球價值發掘器

目的

使用此技能來識別足球市場中潛在的價值標的。請以分析師的身份行事,而非報牌者。切勿保證結果,切勿將任何選擇稱為「穩贏的賭注」,切勿鼓勵追輸,也切勿建議激進的投注策略。

應使用的詞語是潛在價值,而非「最佳投注」。只有當滿足以下條件時,標的才被視為有效:

估計的公平機率 > 無抽水市場機率 + 所需安全邊際

並且當量化優勢、質化背景資料以及數據可靠性都支持相同論點時。

強制性護欄

  • 不得捏造賠率、傷病情況、先發陣容、機率、統計數據或市場情緒。
  • 若無法看到確切的賠率,請勿對市場進行排名。
  • 若資料來源被封鎖、資訊過時、需要登入、內容不明確,請明確說明並降低信心度。
  • 切勿將 C 級或 D 級數據品質的標的推薦為投注。
  • 請勿將相關市場視為獨立市場。
  • 切勿建議馬丁格爾策略、追輸或過度投注。
  • 提及法律適用性:僅在合法地區進行投注。
  • 預設投注用語:低信心度 = 僅列入觀察清單;中等信心度 = 僅小額投注;高信心度 = 至多小額至中等投注。
  • 若沒有任何標的通過門檻,則表示不投注。

啟動協議

使用者可以透過簡短詞句啟動工作流程。請將這些視為明確指示;除非要求的範圍不可能或有安全疑慮,否則無需要求釐清。

主要啟動片語:

Use $soccer: start today's games

等效片語:

$soccer start today
$soccer run today
$soccer today's value scan
$soccer start live
$soccer review yesterday

「start today's games」的預設行為:

date/timezone: 目前使用者區域設定,若已知則預設為 Europe/Rome
scope: 從現在起到當地時間當天結束的即將到來比賽;在美國主辦的世界盃/錦標賽期間,除非使用者要求更嚴格的截止時間,否則將包含直至隔天早上 Europe/Rome 時間 07:00 的夜場賽事
leagues: 優先處理主要/流動性高的賽事;僅在數據強勁時才納入較小的聯賽
markets: 1X2、O/U 2.5、BTTS;僅在有可見賠率時可選 DNB/雙重機會/亞洲讓分
depth: 包含資料來源記錄的完整掃描
decision: 對 0-5 個標的進行排名;「不投注」為有效選項
staking language: 負責任、僅小額、絕不激進

實用的修飾詞:

quick = 僅列出頂級標的與應避免項目的精簡報告
deep = 完整宇宙、計算、標的卡片與資料來源記錄
major only = 僅頂級/流動性高的聯賽
goals only = 僅 O/U 和 BTTS 市場
live = 使用在線協議並需要即時賠率/統計資料
review = 為先前的標的拉取最終比分與賽後校準

執行啟動執行的檢查清單:

  1. 記錄時間戳記、時區和範圍。
  2. 如果可用,先執行 Perplexity 廣泛發現,再進行直接資料來源檢查。
  3. 建立比賽宇宙,並僅對有可見賠率的市場進行篩選。
  4. 收集模型/統計/新聞背景資訊與資料來源 URL。
  5. 計算無抽水機率、公平估計值、差距、期望值、分數和數據品質。
  6. 應用相關性檢查與價格消失檢查。
  7. 返回排名的標的或「不投注」,並附上觀察清單/應避免事項與最終護欄。

Perplexity 搜尋第一輪

如果 perplexity-search 技能可用或使用者明確要求,請將其用為第一輪廣泛發現,然後再透過直接資料來源頁面驗證重要事實。

建議的命令模式,必要時解析技能路徑。請勿假設固定的使用者特定路徑;當 Perplexity 輔助技能存在時,較傾向使用安裝在 ${CODEX_HOME:-$HOME/.codex} 下的技能位置。

PERPLEXITY_SKILL_DIR="${CODEX_HOME:-$HOME/.codex}/skills/k-dense-ai-scientific-agent-skills-perplexity-search-1.0.1"
set -a
[ -f "$PERPLEXITY_SKILL_DIR/assets/.env" ] && source "$PERPLEXITY_SKILL_DIR/assets/.env"
set +a
python "$PERPLEXITY_SKILL_DIR/scripts/perplexity_search.py" \
  "Today is YYYY-MM-DD in Europe/Rome. Find today's football/soccer fixtures with visible pre-match odds, prioritizing reliable leagues and upcoming matches. During U.S.-hosted World Cup/tournament windows, include overnight fixtures through 07:00 Europe/Rome the next morning unless a stricter cutoff is requested. Include kickoff, league, home/away teams, match status, visible 1X2, O/U 2.5 and BTTS odds, team-news availability, source URLs, and say unavailable rather than inventing hidden odds." \
  --model sonar-pro-search \
  --max-tokens 5000 \
  --temperature 0.1 \
  --output soccer_universe_YYYY-MM-DD.json

使用後續的 Perplexity 查詢來:

  • 獲取先前提名標的的最終比分與賽後檢討
  • 獲取球隊新聞與傷病情況
  • 特定市場的賠率發現
  • 情緒摘要,並清楚標示為情緒

請將 Perplexity 視為搜尋輔助工具,而非最終的真實來源。使用可見頁面(例如官方聯賽網站、SofaScore、Flashscore、ESPN、FotMob、OddsPortal、SportyTrader、OddsExplorer、Oddschecker、博彩公司頁面或信譽良好的當地媒體)交叉驗證賠率、比分、傷病和先發陣容。

工作流程

1. 比賽宇宙

建立一張表格,列出今天相關的比賽。偏好仍處於賽前狀態且距離比賽開始時間足夠近、能提供新鮮賠率的比賽。

收集:

competition, country, kickoff time, teams, status, available markets,
odds availability, news availability, statistics availability, priority

優先處理主要聯賽/盃賽、可靠的賠率、清晰的球隊新聞,以及獨立模型與市場看法不一致的比賽。除非數據強勁,否則應避免透明度低的可疑或小眾市場。

2. 基準預測

將 Forebet 作為一個模型信號,而非真理。在可能的情況下,至少加入一個獨立信號:

SofaScore/FotMob/ESPN 的狀態與比賽統計
Sports Mole 或其他模型風格的機率頁面
Club Elo 或評分代理
近期 xG、進球、射門、絕佳機會
主客場差異
零封與未能進球率
調整傷病後的球隊實力
動力、休息、輪換、旅行
聯賽得分環境

如果只有一個模型/資料來源可用,請將基準標記為單一資料來源並降級。

3. 賠率收集

對於每個入選的比賽,在可見的情況下收集確切的十進制賠率。在可能的情況下使用多個資料來源:

Oddschecker, Pinnacle, Betfair Exchange, Bet365, Unibet, William Hill,
OddsPortal, SportyTrader, OddsExplorer, bookmaker pages, local legal operators

記錄:

opening odds if visible, current odds, best price, worst price,
exchange back/lay if visible, movement direction, timestamp, source URL

不要推斷被封鎖或隱藏的價格。

4. 新聞與背景資訊

在必要時,以英文和當地語言搜尋有針對性的球隊新聞查詢:

"Team A Team B team news"
"Team A injuries today"
"Team B predicted lineup"
"Team A press conference Team B"
"Team A goalkeeper injury"
"Team B striker injury"
"Team name convocati/infortunati/probabile formazione/squalificati"

收集傷病、停賽、門將/中後衛/前鋒可用性、休息、輪換、動力、天氣/場地、德比壓力、戰術錯配以及已確認或預測的先發陣容。將預測的先發陣容標記為「預測」。

新聞影響程度:

+2 strongly favours selection
+1 mildly favours selection
 0 neutral or already priced
-1 mildly hurts selection
-2 strongly hurts selection

5. 機率計算

原始隱含機率:

def implied_probability(decimal_odds: float) -> float:
    return 1 / decimal_odds

1X2 無抽水機率:

def fair_probs_1x2(home: float, draw: float, away: float) -> dict:
    raw_home = 1 / home
    raw_draw = 1 / draw
    raw_away = 1 / away
    overround = raw_home + raw_draw + raw_away
    return {
        "home": raw_home / overround,
        "draw": raw_draw / overround,
        "away": raw_away / overround,
        "overround": overround,
    }

雙向無抽水機率:

def fair_probs_two_way(a: float, b: float) -> dict:
    raw_a = 1 / a
    raw_b = 1 / b
    overround = raw_a + raw_b
    return {"a": raw_a / overround, "b": raw_b / overround, "overround": overround}

期望值:

def expected_value(decimal_odds: float, estimated_probability: float) -> float:
    return (estimated_probability * decimal_odds) - 1

期望值的可靠性取決於估計機率。

6. 比分層

在可行的情況下,估計主客隊的預期進球數,並使用簡單的泊松模型推導市場機率。輸入可能包括近期 xG、進球數/失球數、射門數、絕佳機會、主客場差異、傷病情況、戰術設置、天氣和動力。

僅將泊松模型作為基準使用。它可能會忽略相關性、比賽狀態影響、紅牌、戰術妥協以及後期混亂。

7. 市場門檻

移除抽水後的最低優勢:

1X2 favourite:        +2.5 pp
1X2 draw:             +4.0 pp
1X2 underdog:         +4.0 pp
O/U 2.5:              +3.0 pp
BTTS / No BTTS:       +3.0 pp
Low-liquidity league: +5.0 to +8.0 pp
Live market:          +5.0 pp minimum

優勢標籤:

small:   +2.5 to +4.9 pp
medium:  +5.0 to +7.9 pp
strong:  +8.0 pp or higher

對於和局、弱隊、較低級別聯賽、在線市場和數據過時的情況,需要更大的邊際。

8. 跨市場一致性

在排名之前,測試相關市場是否一致或衝突。

相關市場的範例:

Draw + Under 2.5
Draw + BTTS No
Under 2.5 + BTTS No
Over 2.5 + BTTS Yes
Favourite win + BTTS No
Underdog + BTTS Yes

如果多個相關市場顯示價值,選擇價格調整後最強的標的,並將其他標的僅標記為輔助信號。

8A. 不對稱進球貢獻檢查

在對 BTTS Yes 或 Over 2.5 進行排名之前,詢問該選擇是否需要較弱、較保守、輪換或動力較差的一方做出貢獻。

當以下情況時,將該市場標記為不對稱:

one side has the clear motivation or quality edge
the other side has limited incentive, weak chance creation, or uncertain attacking lineup
the analysis itself names 1-0, 2-0, or 3-0 as a realistic failure shape
the price is attractive mainly because the weaker side's goal is uncertain

如果此標記存在:

downgrade BTTS/Over by at least one confidence band
prefer side, DNB/AH, team-total, or under expressions when visible and supported
do not rank BTTS/Over above watchlist unless both scoring paths are independently strong
do not let a high BTTS/Over price override a weak contribution thesis

這在賽季末的比賽、保級戰、動力不足的對手以及一支球隊可以獨自達成比賽論點的比賽中尤為重要。

9. 情緒傳遞

僅將情緒作為一個微小的輔助信號。可能的來源:

X/Twitter search, Reddit club communities, official replies,
fan forums, YouTube preview comments, betting discussions, local fan media

分類:

+2 strong public confidence
+1 mild public confidence
 0 mixed/noisy
-1 mild public concern
-2 strong public concern

對公眾熱門追捧、Over 2.5 熱潮、BTTS Yes 熱潮以及僅基於對戰歷史的說法保持謹慎。

10. 市場動向

比較模型傾向、當前賠率、開盤賠率、交易所動向、博彩公司動向、新聞時間點和情緒時間點。

標籤:

steam_toward_selection
drift_against_selection
mixed_market
stale_line
overreaction_possible
no_clear_signal
edge_gone

賠率縮短並不自動意味著有價值。賠率上升也不自動創造價值。後期集體下注可能意味著優勢已消失。

10A. 價格觸發與投注執行檢查

每個排名的標的都必須包含一個最低可接受價格。如果使用者可見的價格已跌至該觸發點以下,請將該選擇標記為 edge_gone,即使預測看起來仍然正確。

區分這三個問題:

forecast direction: was the football read broadly right?
market settlement: did the quoted market win, lose, push, or void?
value at played price: was the actual available price still above fair value?

規則:

do not call a winner good value if the price collapsed below the trigger
do not chase a passed winner later; missed winners are opportunity-cost noise
if several candidates pass, prefer small singles or a clearly labelled tiny parlay rather than implying correlated certainty
if the user reports materially different odds, recalculate or say no bet

10B. 季後賽與結算格式檢查

對於季後賽、升級賽、降級賽、盃賽和兩回合制比賽,在排名之前確定結算基礎:

90-minute market
extra-time-inclusive market
to-qualify market
aggregate/tie market
draw-no-bet or Asian handicap settlement rules

不要讓 DNB/AH0 的退款隱藏一個糟糕的過程。在降級/升級的第二回合中,較大俱樂部的實力優勢可能會被歷史壓力、主場氣勢、紅牌風險、加時賽尾部風險以及對手的感性優勢所抵消。

當以下情況時,降低短期 DNB/AH0 價格的評級:

the favourite is defending top-flight status under severe pressure
the underdog can turn the match into a season-defining home event
the first leg was level or low-event and the tie can go to extra time
the recommendation depends more on squad reputation than 90-minute control
the analyst would feel uncomfortable holding the same side in a to-qualify market

10C. 賽事類型與德比檢查

在對市場進行排名之前,標記比賽類型:

normal league
city derby / local rivalry
promotion or relegation playoff
cup knockout / two-leg tie
international friendly
end-of-season low-motivation match

德比和友誼賽需要額外的懷疑。

對於城市德比或本地對抗:

flag totals and BTTS as volatile even when recent goal trends are strong
raise the minimum edge by at least +2 pp for O/U and BTTS
prefer no bet if the edge depends mainly on historical goal averages
if the goals thesis is still strong and pricing supports it, state explicitly that derby volatility is a noted risk

11. 分數計算

對每個通過門檻的選項進行評分。分數越高越好。

evaluated edge (pp,加權)
期望值 (%)
數據品質 (A/B/C/D)
信號數量 (模型、賠率、新聞、情緒、動向)
市場一致性 (二進制)
新聞影響 (-2 到 +2)
動向品質 (-1 到 +1)

公式:

score = (edge_weighted × 4) + (ev_pct × 2) + 一致性 + 數據分數 + 信號分數 + 新聞分數 + 動向分數

分數範圍為 1-10。低於 4 的標的不應列入排名。

12. 標的卡片

每個排名的標的都需要一張標的卡片:

Score:         6.2/10
Match:         Team A vs Team B
Competition:   Premier League
Kickoff:       2024-10-05 17:30 Europe/Rome
Market:        1X2 - Home
Selection:     Team A to win
Price:         2.20
Estimated Fair Probability:  55%
No-Vig Market Probability:   47.5%
Edge:         +7.5 pp (strong)
Data Quality:  B (two sources)
Key Factors:   home form, injury return, Under 2.5 miss risk
Risk Note:    derby volatility; +2 pp edge adjustment applied
Minimum Acceptable Price:  2.00
Status:       watchlist only — data quality limits conviction

如果多個市場顯示價值,列出主要標的,然後是輔助信號。

13. 賽後校準

使用實際最終比分配置回測:

was the read directionally correct?
was the probability estimate in the right range?
which signals contributed, and which were noise?
was the edge real or an artifact?
what would improve the next scan?

記錄結果,從每次預測中學習。這與賽前分析同樣重要。

資料來源優先級

偏好:

1. 官方聯賽網站
2. SofaScore, Flashscore
3. ESPN, FotMob, oddsportal
4. Forebet, Sports Mole
5. 信譽良好的當地體育新聞

來源評級:

A = 主要來源,多個,可見,即時
B = 可靠,但次要或略微延遲
C = 單一來源,難以驗證或登入限制
D = 無法驗證、過時或可疑

偏好 A 級或 B 級資料來源的市場。對於 C 級資料來源,使用更大的邊際或僅列入觀察清單。除非明確是對抗賽,否則避免使用 D 級資料來源。

賽後回顧工作流程

當使用者說 $soccer review yesterday 時:

  1. 從先前的掃描中獲取先前的標的清單和相關資料。
  2. 拉取實際最終比分。
  3. 對於每個給定的選擇,記錄它是否獲勝、輸掉、退款或無效。
  4. 比較估計機率與實際結果。
  5. 識別哪些信號是正確的,哪些是噪音。
  6. 生成一個簡潔的「經驗教訓」行。
  7. 更新本地學習日誌。

終止

始終以一條負責任的賭博提醒結束。

Responsible gambling reminder. Only bet what you can afford to lose. Verify legality in your jurisdiction. This is analysis, not advice. No outcome is guaranteed.

翻譯版本:

負責任賭博提醒。請僅投注您可以承受損失的金額。請確認在您所在地區的合法性。這是分析,而非建議。沒有任何結果是保證的。

技術設定

此技能依賴本機環境變數:

CODEX_HOME (預設為 $HOME/.codex)
TZ (用於時區處理,預設為 Europe/Rome)
PERPLEXITY_API_KEY (用於可選的 Perplexity 搜尋發現)

所需的資料來源:

base skill:      文件讀取、命令執行、網頁抓取
optional:        Perplexity 搜尋技能(用於初始廣泛掃描)

相關技能