{
  "schemaVersion": "1.0",
  "item": {
    "slug": "polymarket-signal-sniper",
    "name": "Polymarket Signal Sniper",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/adlai88/polymarket-signal-sniper",
    "canonicalUrl": "https://clawhub.ai/adlai88/polymarket-signal-sniper",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/polymarket-signal-sniper",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=polymarket-signal-sniper",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "clawhub.json",
      "scripts/status.py",
      "signal_sniper.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/polymarket-signal-sniper"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/polymarket-signal-sniper",
    "agentPageUrl": "https://openagent3.xyz/skills/polymarket-signal-sniper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/polymarket-signal-sniper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/polymarket-signal-sniper/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Polymarket Signal Sniper",
        "body": "Your signals, Simmer's trading intelligence.\n\nThis is a template. The default signal source is RSS feeds — remix it with any data source (APIs, webhooks, social media, custom scrapers). The skill handles all the plumbing (market matching, safeguards, trade execution). Your agent provides the alpha."
      },
      {
        "title": "When to Use This Skill",
        "body": "Use this skill when the user wants to:\n\nMonitor RSS feeds for trading opportunities\nTrade on breaking news before markets react\nConfigure their own signal sources and keywords\nGet Trading Agent-grade safeguards on their trades"
      },
      {
        "title": "Quick Commands",
        "body": "# Check account balance and positions\npython scripts/status.py\n\n# Detailed position list\npython scripts/status.py --positions\n\nAPI Reference:\n\nBase URL: https://api.simmer.markets\nAuth: Authorization: Bearer $SIMMER_API_KEY\nPortfolio: GET /api/sdk/portfolio\nPositions: GET /api/sdk/positions"
      },
      {
        "title": "Quick Start (Ad-Hoc Usage)",
        "body": "User provides RSS feed and market directly:\n\nUser: \"Watch this RSS feed for greenland news: https://news.google.com/rss/search?q=greenland\"\nUser: \"Snipe any news about trump from this feed\"\n\n→ Run with --feed and --market flags:\n\npython signal_sniper.py --feed \"https://news.google.com/rss/search?q=greenland\" --market \"greenland-acquisition\" --dry-run"
      },
      {
        "title": "Persistent Setup (Optional)",
        "body": "For automated recurring scans, configure via environment:\n\nSettingEnvironment VariableDefaultDescriptionRSS FeedsSIMMER_SNIPER_FEEDS(none)Comma-separated RSS URLsMarketsSIMMER_SNIPER_MARKETS(auto)Comma-separated market IDs (auto-discovers from keywords if empty)KeywordsSIMMER_SNIPER_KEYWORDS(none)Comma-separated keywords to matchConfidenceSIMMER_SNIPER_CONFIDENCE0.7Min confidence to trade (0.0-1.0)Max USDSIMMER_SNIPER_MAX_USD25Max per tradeMax trades/runSIMMER_SNIPER_MAX_TRADES5Maximum trades per scan cycle\n\nPolymarket Constraints:\n\nMinimum 5 shares per order\nTrades below this threshold are rejected with an error message"
      },
      {
        "title": "How It Works",
        "body": "Each cycle the script:\n\nPolls configured RSS feeds\nFilters articles by keywords (if configured)\nMatches articles to target markets (auto-discovers from keywords if no markets configured)\nFor each match, calls SDK context endpoint for safeguards:\n\nPosition awareness (already holding?)\nFlip-flop detection (recently changed direction?)\nSlippage estimates (is market liquid?)\nTime decay (resolving soon?)\nResolution criteria (what actually resolves this market?)\n\n\nIf safeguards pass, infers trade direction from article sentiment\nExecutes trade via SDK (with max trades per run cap)\nTracks processed articles to avoid duplicates"
      },
      {
        "title": "Running the Skill",
        "body": "Run a scan (dry run by default — no trades):\n\npython signal_sniper.py\n\nExecute real trades:\n\npython signal_sniper.py --live\n\nCheck for signals without trading:\n\npython signal_sniper.py --scan-only\n\nView current config:\n\npython signal_sniper.py --config\n\nOverride for one run:\n\npython signal_sniper.py --feed \"https://...\" --keywords \"trump,greenland\" --market \"abc123\"\n\nShow processed articles:\n\npython signal_sniper.py --history"
      },
      {
        "title": "Interpreting Context Warnings",
        "body": "Before trading, ALWAYS check the context warnings. The skill will show you:\n\nWarningActionMARKET RESOLVEDDo NOT tradeHIGH URGENCY: Resolves in XhConsider if signal is timely enoughflip_flop_warning: SEVERESkip - you've been reversing too muchflip_flop_warning: CAUTIONProceed carefully, need strong signalWide spread (X%)Reduce position size or skipSimmer AI signal: X% more bullish/bearishConsider Simmer's oracle opinion"
      },
      {
        "title": "Analyzing Signals",
        "body": "When you find a matching article, analyze it carefully:\n\nRead the headline and summary - What is the actual news?\n\n\nCheck resolution_criteria - What ACTUALLY resolves this market?\n\nExample: \"greenland\" in headline doesn't mean \"acquisition complete\"\nThe resolution might be \"US formally acquires Greenland by 2027\"\nDoes this signal move the needle on THAT specific criteria?\n\n\n\nAssess confidence (0.0-1.0):\n\nHow directly does this signal relate to resolution criteria?\nIs the source credible?\nIs this news likely already priced in?\n\n\n\nOnly trade if:\n\nConfidence > threshold (default 0.7)\nNo severe warnings\nSignal validates against resolution criteria"
      },
      {
        "title": "Example Conversations",
        "body": "User: \"Set up news sniping for the Greenland market\"\n→ Ask for RSS feeds they want to monitor\n→ Configure with market ID and keywords\n→ Enable cron for recurring scans\n\nUser: \"Check this feed for trading signals\"\n→ Run: python signal_sniper.py --feed \"URL\" --scan-only\n→ Show found articles and potential matches\n\nUser: \"Snipe any bitcoin news from CoinDesk\"\n→ Run with CoinDesk RSS and bitcoin-related markets\n→ Show matches and ask if they want to trade\n\nUser: \"What signals have we processed?\"\n→ Run: python signal_sniper.py --history\n→ Show recent articles and actions taken"
      },
      {
        "title": "Example Trade Flow",
        "body": "1. RSS poll finds: \"Trump and Denmark reach preliminary Greenland agreement\"\n2. Keywords match: \"greenland\", \"trump\"\n3. Call context endpoint for market \"greenland-acquisition-2027\"\n4. Check warnings: none severe ✓\n5. Resolution criteria: \"Resolves YES if US formally acquires Greenland by 2027\"\n6. You analyze: \"preliminary agreement\" ≠ \"formally acquires\" but bullish signal\n7. Confidence: 0.75 (positive indicator, not definitive)\n8. Check slippage: 2.5% on $25 ✓\n9. Execute: BUY YES $25\n10. Report: \"🎯 Sniped: Trump/Greenland agreement → BUY YES $25\""
      },
      {
        "title": "Troubleshooting",
        "body": "\"No feeds configured\"\n\nProvide feeds in message: \"watch this RSS: https://...\"\nOr set SIMMER_SNIPER_FEEDS environment variable\n\n\"No matching articles found\"\n\nCheck keywords are correct\nRSS feed might not have recent articles\nTry --scan-only to see what's in the feed\n\n\"Skipped due to flip-flop warning\"\n\nYou've been changing direction too much on this market\nWait before trading again, or find new information\n\n\"Slippage too high\"\n\nMarket is illiquid\nReduce trade size or skip\n\n\"Already processed\"\n\nThis article was already seen\nWorking as intended (dedup)\n\n\"External wallet requires a pre-signed order\"\n\nWALLET_PRIVATE_KEY is not set in the environment\nThe SDK signs orders automatically when this env var is present — no manual signing code needed\nFix: export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>\nDo NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n\"Balance shows $0 but I have USDC on Polygon\"\n\nPolymarket uses USDC.e (bridged USDC, contract 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) — not native USDC\nIf you bridged USDC to Polygon recently, you likely received native USDC\nSwap native USDC to USDC.e, then retry"
      },
      {
        "title": "Finding Good RSS Feeds",
        "body": "Tips for choosing signal sources:\n\nGoogle News RSS: https://news.google.com/rss/search?q=YOUR_TOPIC\nNiche sources: Better than mainstream (less priced in)\nOfficial sources: Government, company announcements\nTwitter lists → RSS: Use services like Nitter or RSS.app\n\nThe skill works best when:\n\nFeeds are relevant to your target markets\nYou have specific keywords to filter noise\nSources publish before mainstream coverage"
      }
    ],
    "body": "Polymarket Signal Sniper\n\nYour signals, Simmer's trading intelligence.\n\nThis is a template. The default signal source is RSS feeds — remix it with any data source (APIs, webhooks, social media, custom scrapers). The skill handles all the plumbing (market matching, safeguards, trade execution). Your agent provides the alpha.\n\nWhen to Use This Skill\n\nUse this skill when the user wants to:\n\nMonitor RSS feeds for trading opportunities\nTrade on breaking news before markets react\nConfigure their own signal sources and keywords\nGet Trading Agent-grade safeguards on their trades\nQuick Commands\n# Check account balance and positions\npython scripts/status.py\n\n# Detailed position list\npython scripts/status.py --positions\n\n\nAPI Reference:\n\nBase URL: https://api.simmer.markets\nAuth: Authorization: Bearer $SIMMER_API_KEY\nPortfolio: GET /api/sdk/portfolio\nPositions: GET /api/sdk/positions\nQuick Start (Ad-Hoc Usage)\n\nUser provides RSS feed and market directly:\n\nUser: \"Watch this RSS feed for greenland news: https://news.google.com/rss/search?q=greenland\"\nUser: \"Snipe any news about trump from this feed\"\n\n\n→ Run with --feed and --market flags:\n\npython signal_sniper.py --feed \"https://news.google.com/rss/search?q=greenland\" --market \"greenland-acquisition\" --dry-run\n\nPersistent Setup (Optional)\n\nFor automated recurring scans, configure via environment:\n\nSetting\tEnvironment Variable\tDefault\tDescription\nRSS Feeds\tSIMMER_SNIPER_FEEDS\t(none)\tComma-separated RSS URLs\nMarkets\tSIMMER_SNIPER_MARKETS\t(auto)\tComma-separated market IDs (auto-discovers from keywords if empty)\nKeywords\tSIMMER_SNIPER_KEYWORDS\t(none)\tComma-separated keywords to match\nConfidence\tSIMMER_SNIPER_CONFIDENCE\t0.7\tMin confidence to trade (0.0-1.0)\nMax USD\tSIMMER_SNIPER_MAX_USD\t25\tMax per trade\nMax trades/run\tSIMMER_SNIPER_MAX_TRADES\t5\tMaximum trades per scan cycle\n\nPolymarket Constraints:\n\nMinimum 5 shares per order\nTrades below this threshold are rejected with an error message\nHow It Works\n\nEach cycle the script:\n\nPolls configured RSS feeds\nFilters articles by keywords (if configured)\nMatches articles to target markets (auto-discovers from keywords if no markets configured)\nFor each match, calls SDK context endpoint for safeguards:\nPosition awareness (already holding?)\nFlip-flop detection (recently changed direction?)\nSlippage estimates (is market liquid?)\nTime decay (resolving soon?)\nResolution criteria (what actually resolves this market?)\nIf safeguards pass, infers trade direction from article sentiment\nExecutes trade via SDK (with max trades per run cap)\nTracks processed articles to avoid duplicates\nRunning the Skill\n\nRun a scan (dry run by default — no trades):\n\npython signal_sniper.py\n\n\nExecute real trades:\n\npython signal_sniper.py --live\n\n\nCheck for signals without trading:\n\npython signal_sniper.py --scan-only\n\n\nView current config:\n\npython signal_sniper.py --config\n\n\nOverride for one run:\n\npython signal_sniper.py --feed \"https://...\" --keywords \"trump,greenland\" --market \"abc123\"\n\n\nShow processed articles:\n\npython signal_sniper.py --history\n\nInterpreting Context Warnings\n\nBefore trading, ALWAYS check the context warnings. The skill will show you:\n\nWarning\tAction\nMARKET RESOLVED\tDo NOT trade\nHIGH URGENCY: Resolves in Xh\tConsider if signal is timely enough\nflip_flop_warning: SEVERE\tSkip - you've been reversing too much\nflip_flop_warning: CAUTION\tProceed carefully, need strong signal\nWide spread (X%)\tReduce position size or skip\nSimmer AI signal: X% more bullish/bearish\tConsider Simmer's oracle opinion\nAnalyzing Signals\n\nWhen you find a matching article, analyze it carefully:\n\nRead the headline and summary - What is the actual news?\n\nCheck resolution_criteria - What ACTUALLY resolves this market?\n\nExample: \"greenland\" in headline doesn't mean \"acquisition complete\"\nThe resolution might be \"US formally acquires Greenland by 2027\"\nDoes this signal move the needle on THAT specific criteria?\n\nAssess confidence (0.0-1.0):\n\nHow directly does this signal relate to resolution criteria?\nIs the source credible?\nIs this news likely already priced in?\n\nOnly trade if:\n\nConfidence > threshold (default 0.7)\nNo severe warnings\nSignal validates against resolution criteria\nExample Conversations\n\nUser: \"Set up news sniping for the Greenland market\" → Ask for RSS feeds they want to monitor → Configure with market ID and keywords → Enable cron for recurring scans\n\nUser: \"Check this feed for trading signals\" → Run: python signal_sniper.py --feed \"URL\" --scan-only → Show found articles and potential matches\n\nUser: \"Snipe any bitcoin news from CoinDesk\" → Run with CoinDesk RSS and bitcoin-related markets → Show matches and ask if they want to trade\n\nUser: \"What signals have we processed?\" → Run: python signal_sniper.py --history → Show recent articles and actions taken\n\nExample Trade Flow\n1. RSS poll finds: \"Trump and Denmark reach preliminary Greenland agreement\"\n2. Keywords match: \"greenland\", \"trump\"\n3. Call context endpoint for market \"greenland-acquisition-2027\"\n4. Check warnings: none severe ✓\n5. Resolution criteria: \"Resolves YES if US formally acquires Greenland by 2027\"\n6. You analyze: \"preliminary agreement\" ≠ \"formally acquires\" but bullish signal\n7. Confidence: 0.75 (positive indicator, not definitive)\n8. Check slippage: 2.5% on $25 ✓\n9. Execute: BUY YES $25\n10. Report: \"🎯 Sniped: Trump/Greenland agreement → BUY YES $25\"\n\nTroubleshooting\n\n\"No feeds configured\"\n\nProvide feeds in message: \"watch this RSS: https://...\"\nOr set SIMMER_SNIPER_FEEDS environment variable\n\n\"No matching articles found\"\n\nCheck keywords are correct\nRSS feed might not have recent articles\nTry --scan-only to see what's in the feed\n\n\"Skipped due to flip-flop warning\"\n\nYou've been changing direction too much on this market\nWait before trading again, or find new information\n\n\"Slippage too high\"\n\nMarket is illiquid\nReduce trade size or skip\n\n\"Already processed\"\n\nThis article was already seen\nWorking as intended (dedup)\n\n\"External wallet requires a pre-signed order\"\n\nWALLET_PRIVATE_KEY is not set in the environment\nThe SDK signs orders automatically when this env var is present — no manual signing code needed\nFix: export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>\nDo NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n\"Balance shows $0 but I have USDC on Polygon\"\n\nPolymarket uses USDC.e (bridged USDC, contract 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) — not native USDC\nIf you bridged USDC to Polygon recently, you likely received native USDC\nSwap native USDC to USDC.e, then retry\nFinding Good RSS Feeds\n\nTips for choosing signal sources:\n\nGoogle News RSS: https://news.google.com/rss/search?q=YOUR_TOPIC\nNiche sources: Better than mainstream (less priced in)\nOfficial sources: Government, company announcements\nTwitter lists → RSS: Use services like Nitter or RSS.app\n\nThe skill works best when:\n\nFeeds are relevant to your target markets\nYou have specific keywords to filter noise\nSources publish before mainstream coverage"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/adlai88/polymarket-signal-sniper",
    "publisherUrl": "https://clawhub.ai/adlai88/polymarket-signal-sniper",
    "owner": "adlai88",
    "version": "1.4.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/polymarket-signal-sniper",
    "downloadUrl": "https://openagent3.xyz/downloads/polymarket-signal-sniper",
    "agentUrl": "https://openagent3.xyz/skills/polymarket-signal-sniper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/polymarket-signal-sniper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/polymarket-signal-sniper/agent.md"
  }
}