Install
openclaw skills install @natekohisbetterthanryan/market-trading-workflowConservative World Cup fixture-trading workflow for ClawHub: discover a market, validate the matchup, price the edge, and trade only when safe.
openclaw skills install @natekohisbetterthanryan/market-trading-workflowUse this skill as a reusable playbook for World Cup fixture trading in ClawHub-compatible agents. It bundles two layers:
Supporting notes live in references/session-notes.md.
It turns a market idea into a disciplined bet-or-pass decision:
The research and discovery layers share one team-normalization module, so alias fixes land once and apply everywhere.
The workflow is intentionally conservative. A stale market, wrong fixture, or unresolved context is more dangerous than missing a marginal edge.
references/session-notes.md — bundled research/execution split, SDK compatibility fallback, and publishing lessons from this session.references/team-name-normalization.md — canonical aliases, regression examples, and the shared normalization rule.references/world-cup-market-discovery.md — live-slate discovery recipe, matchup parsing, and query caveats.references/automated-slate-scan.md — when to scan the slate automatically, how to filter by date, and the common alias pitfalls.references/clawhub-publishing.md — ClawHub publish checklist and verification steps.references/stake-sizing-guidance.md — when to size down moderate underdogs versus passing extreme longshots.scripts/team_names.py — single source of truth for canonical team names and query expansion.scripts/team_name_smoke_test.py — quick regression check for alias/canonicalization drift.Start with the fixture, not the venue:
When the user asks for "today's games", "tomorrow's games", or "all games in the slate", use the automated slate scan first instead of waiting for them to name the teams. This is especially important when the relevant fixture is hidden behind a multilingual alias.
When the market or model uses different team names, canonicalize both through scripts/team_names.py first; do not maintain separate alias rules in the research and execution scripts.
If anything looks stale, mismatched, or ambiguous, skip the trade and report the blocker.
Use this skill when you need to:
Use SimmerClient for trades. Do not call Polymarket CLOB directly from the skill.
Default to paper trading on sim.
Paper and live share the same trade/pass decision gates; --live only changes whether the executed order is real-money or paper on sim.
Tag every trade.
Include source and skill_slug so P&L and rebuy protection work correctly.
Report both sides.
Include model_yes/model_no and market_yes/market_no in summaries so the report is readable without manual subtraction.
Paper trade on sim by default.
Use the same edge threshold and pass/trade logic for paper and live; if the venue is simulated, submit the paper trade and include the simulated fill result. Reserve --live for real-money execution only.
Moderate underdog or draw-leaning plays can size down when the model is near the market and the side is not a true longshot.
Do not downsize into extreme underdogs or 80/20-vs-90/10 style flips; those should usually pass unless the model truly supports the upset.
Read secrets from env. Never hardcode API keys or private credentials.
Keep skill_slug aligned.
The slug in clawhub.json, SKILL.md, and runtime tags should match.
Pass on uncertain mappings. If the market lookup or fixture validation is fragile, do not force a bet.
Find the active market using runtime search or tags.
Check the market page, question text, and event identity.
Estimate fair probability and compare it to market price.
Require:
If all gates pass, trade. If any gate fails, return pass with a concrete reason.
Use this format when summarizing a decision:
<question or id><model_yes> / <model_no><market_yes> / <market_no><edge><low/medium/high><paper-trade / trade / pass><exact blocker or thesis>South Korea vs Korea Republic, Bosnia vs Bosnia and Herzegovina, Ivory Coast vs Côte d'Ivoire, or Cape Verde vs Cabo Verde)A ClawHub-ready skill folder should include:
SKILL.mdclawhub.jsonDISCLAIMER.mdSee references/publishing-flow.md for the repeatable login/logout/publish sequence, device-flow auth, and account-switching notes.
See references/simmer-sdk-compat.md for the runtime-safe discovery and trade-call pattern that works across older and newer simmer-sdk installs.
Use the official ClawHub publish command from inside the folder:
npx clawhub@latest publish . --slug market-trading-workflow --version 1.0.20
If publishing is blocked by an account policy, switch to a qualifying account and repeat the device-login flow before retrying publish.
If a device code expires, restart clawhub login --device --no-browser to get a fresh code.