skills/polymarket-trading/SKILL.md
Self-evolving Polymarket trading bot. Design strategy with user, run paper trading, auto-improve until edge target met, then ask to switch to live.
npx skillsauth add giggle-official/storyclaw-assistant polymarket-tradingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Design a trading strategy with the user, run automated paper trading (dry-run), auto-improve parameters when underperforming, and ask permission to switch to live trading when edge target met.
Supports any market type: politics, sports, crypto prices, science, entertainment, etc.
Each user has their own credentials/{USER_ID}.json:
{
"private_key": "0x...",
"funder_address": "0x...",
"dry_run": true
}
Set USER_ID or TELEGRAM_USER_ID env var when calling scripts.
Or set POLYMARKET_PRIVATE_KEY env var.
USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/polymarket.py check
If not configured, run interactive setup:
USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/polymarket.py setup
Do NOT assume. Ask:
Based on the conversation, derive and propose concrete values. Stop and wait for user to confirm before executing anything.
USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/strategy_manager.py create --json '{
"name": "<strategy name>",
"market_filter": {
"keywords": ["<keywords>"],
"min_liquidity_usdc": 1000,
"max_days_to_expiry": 30,
"min_days_to_expiry": 1
},
"signal": {
"method": "orderbook_imbalance",
"params": { "threshold": 0.15, "max_entry_price": 0.60 }
},
"sizing": { "max_size_usdc": 5 },
"targets": { "min_sample_size": 30, "min_edge": 0.05 }
}'
SKILL_PATH={baseDir}
STRATEGY_ID=<id from step 4>
# Signal scan: every 15 minutes
(crontab -l 2>/dev/null; echo "*/15 * * * * USER_ID=$TELEGRAM_USER_ID python3 $SKILL_PATH/scripts/signal_cron.py $STRATEGY_ID >> $SKILL_PATH/state/$TELEGRAM_USER_ID.$STRATEGY_ID.log 2>&1") | crontab -
# Performance review: daily at 09:00 UTC
(crontab -l 2>/dev/null; echo "0 9 * * * USER_ID=$TELEGRAM_USER_ID python3 $SKILL_PATH/scripts/review_cron.py $STRATEGY_ID >> $SKILL_PATH/state/$TELEGRAM_USER_ID.review.log 2>&1") | crontab -
dry_run → improving → pending_live → live
Go-live condition: edge = win_rate - avg_entry_price >= min_edge AND total_pnl > 0
USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/strategy_manager.py status
USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/strategy_manager.py review <strategy_id>
USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/strategy_manager.py activate-live <strategy_id>
| Condition | Action | | ---------------------------- | -------------------------------------------- | | edge < min_edge - 10% | Raise threshold (fewer but stronger signals) | | edge < min_edge - 3% | Lower max_entry_price (cheaper entries) | | 3+ adjustments still failing | Notify user to reconsider | | edge >= min_edge AND pnl > 0 | Mark pending_live, notify user |
| Method | Best for | | ------------------- | --------------------------------------- | | orderbook_imbalance | Any liquid market with active orderbook |
New methods can be added to scripts/signals.py.
| Error | Solution |
| ---------------------------- | --------------------------------------------------- |
| py-clob-client not installed | pip3 install py-clob-client |
| USER_ID not set | Add USER_ID=xxx prefix |
| No config found | Run python3 {baseDir}/scripts/polymarket.py setup |
| API Error 401 | Re-run setup to re-derive keys |
| No markets found | Broaden keywords or lower min_liquidity_usdc |
polymarket-trading/
├── SKILL.md
├── scripts/
│ ├── strategy_manager.py # Lifecycle: create/review/status/activate-live
│ ├── signal_cron.py # Cron: scan markets, run signals, record trades
│ ├── review_cron.py # Cron: daily review + auto-improve
│ ├── signals.py # Pluggable signal methods
│ ├── market_scanner.py # Gamma API market discovery
│ └── polymarket.py # CLOB API primitives
├── credentials/
│ └── {USER_ID}.json
├── strategies/
│ └── {USER_ID}/{strategy_id}.json
└── state/
└── {USER_ID}.{strategy_id}.perf.json
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
development
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
development
X2C Distribution and Wallet API — publish video to X2C platform, manage assets (balance, claim X2C, swap to USDC, withdraw, transactions).
data-ai
Manage X (Twitter) accounts — post tweets, like, reply, retweet, view timeline, search, auto-interact, analyze data.