Ecuabet
Overview
This skill uses scripts/cli.py as the public cross-platform entrypoint and local docs in references/ for advanced execution patterns.
Activation Triggers
- User mentions
$ecuabet - User gives an Ecuabet match id/url and asks for predictions
- User asks for live refresh with cards/fouls/offsides/corners/weather/form context
- User asks for lower-risk vs higher-return tradeoff using current market state
Entry point
Cross-platform:
uv run --script <skill-dir>/scripts/cli.py ...
Set <skill-dir> to this skill directory. Do not rely on shell sourcing, executable bits, or shebang dispatch.
Layout
scripts/cli.py: public dispatcher (runandfeed)scripts/main.py: integrated internal entrypoint (all feeds + recommendations)scripts/ecuabet.py: Ecuabet markets/trackerscripts/sofascore.py: live match incidents/statsscripts/espn.py: ESPN summary/team stats/key eventsscripts/open_meteo.py: weather contextscripts/understat.py: form/xG/season modelingscripts/recommendations.py: scoring/ranking enginescripts/tests/: regression testsreferences/recipes.md: command cookbookreferences/shortcuts.md: trigger-word prompt shortcutsreferences/workflows.md: advanced scenario workflowsreferences/output-contract.md: JSON field map and extraction prioritiesreferences/troubleshooting.md: feed failure diagnosis + recovery
Runbook
Assumption: current directory is this skill folder (the one containing SKILL.md).
One-shot integrated output
uv run --script <skill-dir>/scripts/cli.py run <match_id_or_url> \
--ecuabet <match_id_or_url> \
--require-ecuabet \
--no-raw \
--compact
Live watch mode
uv run --script <skill-dir>/scripts/cli.py run <match_id_or_url> \
--ecuabet <match_id_or_url> \
--require-ecuabet \
--watch 15 \
--max-iterations 0 \
--no-raw \
--compact
Recommendation tuning
uv run --script <skill-dir>/scripts/cli.py run <match_id_or_url> \
--ecuabet <match_id_or_url> \
--require-ecuabet \
--recommend-top 10 \
--recommend-min-odds 1.01 \
--recommend-max-odds 4.0 \
--recommend-min-confidence 0.55 \
--stale-threshold-seconds 120 \
--line-history-limit 240 \
--no-raw \
--compact
Per-feed debug
uv run --script <skill-dir>/scripts/cli.py feed ecuabet <match_id_or_url> --no-raw --compact
uv run --script <skill-dir>/scripts/cli.py feed sofascore "<team_a> <team_b>" --no-raw --compact
uv run --script <skill-dir>/scripts/cli.py feed espn "<team_a> <team_b>" --league esp.1 --no-raw --compact
uv run --script <skill-dir>/scripts/cli.py feed open-meteo "<lat,lon>" --hourly-limit 12 --compact
uv run --script <skill-dir>/scripts/cli.py feed understat --league La_Liga --season 2025 --home-team "<team_a>" --away-team "<team_b>" --compact
Quality gate
uv run --with pytest pytest <skill-dir>/scripts/tests -q
Output Focus
Primary fields to report from uv run --script <skill-dir>/scripts/cli.py run output:
oneShot.topRecommendationoneShot.shortlistoneShot.globalConfidenceoneShot.feedHealthdecisionSummary.liveMetricsdecisionSummary.timelinedecisionSummary.ecuabetMarketsfeedErrors
Required follow-up reads
| Need | Read | When |
|---|---|---|
| Exact runnable commands | references/recipes.md |
Selecting flags or feed commands |
| Compact prompt semantics | references/shortcuts.md |
User supplies prompts like <id> minmax |
| Scenario strategy | references/workflows.md |
Pre-match, in-play, conflict, or watch-loop work |
| Output-field interpretation | references/output-contract.md |
Extracting or explaining result fields |
| Failure recovery | references/troubleshooting.md |
Any feed fails or data conflicts |
Resource Policy
- Use
scripts/cli.pyfor public execution; otherscripts/files are internals - Use
references/for advanced guidance and structured interpretation - No
assets/are required for this skill at this time