yichengyang-ethan/oracle3-prediction-market-agent/pm-constraint-arbitrage
Claude Code and agent skill by yichengyang-ethan/oracle3-prediction-market-agent
- community
Checking that the SKILL.md file is still in the repository.
Check whether prices of related prediction-market contracts violate a probability bound after venue fees, using the oracle3 MCP server or Python API. Paper trading only.
Install
npx vskill@latest install yichengyang-ethan/oracle3-prediction-market-agent/pm-constraint-arbitrageSKILL.md
PM Constraint Arbitrage
Use this skill when the user asks whether related markets are mispriced relative to each other, for example "does P(A) exceed P(B) even though A implies B?", or whether a cross-venue price gap survives fees.
Tools
MCP server (pip install oracle3, then run oracle3-mcp):
search_markets,get_quote,get_orderbookto find markets and read executable prices.check_constraint_liveto fetch quotes and fee schedules and evaluate a relation.check_constraintto evaluate a relation on quotes you supply.trading_feeto price a single fill under a venue's schedule.paper_order,paper_portfolioto paper-trade the legs.
Python API: oracle3.arbitrage.check_constraint and oracle3.fees.
Relations
| Relation | Bound | Quotes, in order | |
|---|---|---|---|
| implication | P(A) <= P(B) when A implies B | A, B | |
| exclusivity | probabilities sum to at most 1 | every outcome | |
| complement | P(A) + P(B) = 1 | A, B | |
| same_event | P(A) = P(B), one event on two venues | A, B | |
| event_sum | probabilities sum to exactly 1 | every outcome |
Steps
- Find the markets with
search_marketsand read both markets' resolution rules withget_market. - Decide which relation holds. This is a judgment about the contract wording, not something the tool can verify.
- Run
check_constraint_livewith the relation and the markets in the order above. - Read
best.gross_edge_per_contract(edge before fees),best.fees_per_contractandbest.net_edge_per_contract. - Only if the net edge is positive and the book is deep enough, paper-trade each leg with
paper_orderat a limit no worse than the quoted ask.
Hard rules
- Never place real orders from this skill; the MCP server cannot, and the CLI
livemode is out of scope. - State the relation you assumed and why; a wrong relation turns an "arbitrage" into a directional bet.
- Report fees per leg. Kalshi taker fees are 0.07·M·C·P·(1−P); Polymarket taker fees are rate·C·p·(1−p) with a per-market rate; Polymarket makers pay nothing.
- The check assumes every leg fills at the quoted price. Say so when the displayed size is smaller than the order.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/pm-constraint-arbitrage/SKILL.md
Popularity
- Repository stars
- 287
- Repository forks
- 40
- 7-day trend score
- 33
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/yichengyang-ethan/oracle3-prediction-market-agent/pm-constraint-arbitrage)