{
  "schemaVersion": "1.0",
  "item": {
    "slug": "weather-py",
    "name": "Polymarket Weather Trader",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/johnjerry8749/weather-py",
    "canonicalUrl": "https://clawhub.ai/johnjerry8749/weather-py",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/weather-py",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=weather-py",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "_meta.json",
      "config.json",
      "status.py",
      "weather_trader.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/weather-py"
    },
    "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/weather-py",
    "agentPageUrl": "https://openagent3.xyz/skills/weather-py/agent",
    "manifestUrl": "https://openagent3.xyz/skills/weather-py/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/weather-py/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 Weather Trader",
        "body": "Trade temperature markets on Polymarket using NOAA forecast data."
      },
      {
        "title": "When to Use This Skill",
        "body": "Use this skill when the user wants to:\n\nTrade weather markets automatically\nSet up gopfan2-style temperature trading\nBuy low on weather predictions\nCheck their weather trading positions\nConfigure trading thresholds or locations"
      },
      {
        "title": "What's New in v1.2.0",
        "body": "Max Trades Per Run: New SIMMER_WEATHER_MAX_TRADES config to limit trades per scan cycle (default: 5)"
      },
      {
        "title": "v1.1.1",
        "body": "Status Script: New scripts/status.py for quick balance and position checks\nAPI Reference: Added Quick Commands section with API endpoints"
      },
      {
        "title": "v1.1.0",
        "body": "Source Tagging: All trades tagged with sdk:weather for portfolio tracking\nSmart Sizing: Position sizing based on available balance (--smart-sizing)\nContext Safeguards: Checks for flip-flop warnings, slippage, time decay\nPrice Trend Detection: Detects recent price drops for stronger signals"
      },
      {
        "title": "Setup Flow",
        "body": "When user asks to install or configure this skill:\n\nAsk for Simmer API key\n\nThey can get it from simmer.markets/dashboard → SDK tab\nStore in environment as SIMMER_API_KEY\n\n\n\nAsk about settings (or confirm defaults)\n\nEntry threshold: When to buy (default 15¢)\nExit threshold: When to sell (default 45¢)\nMax position: Amount per trade (default $2.00)\nLocations: Which cities to trade (default NYC)\n\n\n\nSave settings to environment variables\n\n\nSet up cron (disabled by default — user must enable scheduling)"
      },
      {
        "title": "Configuration",
        "body": "SettingEnvironment VariableDefaultDescriptionEntry thresholdSIMMER_WEATHER_ENTRY0.15Buy when price below thisExit thresholdSIMMER_WEATHER_EXIT0.45Sell when price above thisMax positionSIMMER_WEATHER_MAX_POSITION2.00Maximum USD per tradeMax trades/runSIMMER_WEATHER_MAX_TRADES5Maximum trades per scan cycleLocationsSIMMER_WEATHER_LOCATIONSNYCComma-separated citiesSmart sizing %SIMMER_WEATHER_SIZING_PCT0.05% of balance per trade\n\nSupported locations: NYC, Chicago, Seattle, Atlanta, Dallas, Miami"
      },
      {
        "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": "Running the Skill",
        "body": "# Dry run (default — shows opportunities, no trades)\npython weather_trader.py\n\n# Execute real trades\npython weather_trader.py --live\n\n# With smart position sizing (uses portfolio balance)\npython weather_trader.py --live --smart-sizing\n\n# Check positions only\npython weather_trader.py --positions\n\n# View config\npython weather_trader.py --config\n\n# Disable safeguards (not recommended)\npython weather_trader.py --no-safeguards\n\n# Disable trend detection\npython weather_trader.py --no-trends\n\n# Quiet mode — only output on trades/errors (ideal for high-frequency runs)\npython weather_trader.py --live --quiet\n\n# Combine: frequent scanning, minimal noise\npython weather_trader.py --live --smart-sizing --quiet"
      },
      {
        "title": "How It Works",
        "body": "Each cycle the script:\n\nFetches active weather markets from Simmer API\nGroups markets by event (each temperature day is one event)\nParses event names to get location and date\nFetches NOAA forecast for that location/date\nFinds the temperature bucket that matches the forecast\nSafeguards: Checks context for flip-flop warnings, slippage, time decay\nTrend Detection: Looks for recent price drops (stronger buy signal)\nEntry: If bucket price < threshold and safeguards pass → BUY\nExit: Checks open positions, sells if price > exit threshold\nTagging: All trades tagged with sdk:weather for tracking"
      },
      {
        "title": "Smart Sizing",
        "body": "With --smart-sizing, position size is calculated as:\n\n5% of available USDC balance (configurable via SIMMER_WEATHER_SIZING_PCT)\nCapped at max position setting ($2.00 default)\nFalls back to fixed size if portfolio unavailable\n\nThis prevents over-deployment and scales with your account size."
      },
      {
        "title": "Safeguards",
        "body": "Before trading, the skill checks:\n\nFlip-flop warning: Skips if you've been reversing too much\nSlippage: Skips if estimated slippage > 15%\nTime decay: Skips if market resolves in < 2 hours\nMarket status: Skips if market already resolved\n\nDisable with --no-safeguards (not recommended)."
      },
      {
        "title": "Source Tagging",
        "body": "All trades are tagged with source: \"sdk:weather\". This means:\n\nPortfolio shows breakdown by strategy\nCopytrading skill won't sell your weather positions\nYou can track weather P&L separately"
      },
      {
        "title": "Example Output",
        "body": "🌤️ Simmer Weather Trading Skill\n==================================================\n\n⚙️ Configuration:\n  Entry threshold: 15% (buy below this)\n  Exit threshold:  45% (sell above this)\n  Max position:    $2.00\n  Locations:       NYC\n  Smart sizing:    ✓ Enabled\n  Safeguards:      ✓ Enabled\n  Trend detection: ✓ Enabled\n\n💰 Portfolio:\n  Balance: $150.00\n  Exposure: $45.00\n  Positions: 8\n\n📍 NYC 2026-01-28 (high temp)\n  NOAA forecast: 34°F\n  Matching bucket: 34-35°F @ $0.12\n  💡 Smart sizing: $2.00 (capped at max position)\n  ✅ Below threshold ($0.15) - BUY opportunity! 📉 (dropped 15% in 24h)\n  Executing trade...\n  ✅ Bought 62.5 shares @ $0.12\n\n📊 Summary:\n  Events scanned: 12\n  Entry opportunities: 1\n  Trades executed: 1"
      },
      {
        "title": "Troubleshooting",
        "body": "\"Safeguard blocked: Severe flip-flop warning\"\n\nYou've been changing direction too much on this market\nWait before trading again\n\n\"Slippage too high\"\n\nMarket is illiquid, reduce position size or skip\n\n\"Resolves in Xh - too soon\"\n\nMarket resolving soon, risk is elevated\n\n\"No weather markets found\"\n\nWeather markets may not be active (seasonal)\n\n\"API key invalid\"\n\nGet new key from simmer.markets/dashboard → SDK tab"
      }
    ],
    "body": "Polymarket Weather Trader\n\nTrade temperature markets on Polymarket using NOAA forecast data.\n\nWhen to Use This Skill\n\nUse this skill when the user wants to:\n\nTrade weather markets automatically\nSet up gopfan2-style temperature trading\nBuy low on weather predictions\nCheck their weather trading positions\nConfigure trading thresholds or locations\nWhat's New in v1.2.0\nMax Trades Per Run: New SIMMER_WEATHER_MAX_TRADES config to limit trades per scan cycle (default: 5)\nv1.1.1\nStatus Script: New scripts/status.py for quick balance and position checks\nAPI Reference: Added Quick Commands section with API endpoints\nv1.1.0\nSource Tagging: All trades tagged with sdk:weather for portfolio tracking\nSmart Sizing: Position sizing based on available balance (--smart-sizing)\nContext Safeguards: Checks for flip-flop warnings, slippage, time decay\nPrice Trend Detection: Detects recent price drops for stronger signals\nSetup Flow\n\nWhen user asks to install or configure this skill:\n\nAsk for Simmer API key\n\nThey can get it from simmer.markets/dashboard → SDK tab\nStore in environment as SIMMER_API_KEY\n\nAsk about settings (or confirm defaults)\n\nEntry threshold: When to buy (default 15¢)\nExit threshold: When to sell (default 45¢)\nMax position: Amount per trade (default $2.00)\nLocations: Which cities to trade (default NYC)\n\nSave settings to environment variables\n\nSet up cron (disabled by default — user must enable scheduling)\n\nConfiguration\nSetting\tEnvironment Variable\tDefault\tDescription\nEntry threshold\tSIMMER_WEATHER_ENTRY\t0.15\tBuy when price below this\nExit threshold\tSIMMER_WEATHER_EXIT\t0.45\tSell when price above this\nMax position\tSIMMER_WEATHER_MAX_POSITION\t2.00\tMaximum USD per trade\nMax trades/run\tSIMMER_WEATHER_MAX_TRADES\t5\tMaximum trades per scan cycle\nLocations\tSIMMER_WEATHER_LOCATIONS\tNYC\tComma-separated cities\nSmart sizing %\tSIMMER_WEATHER_SIZING_PCT\t0.05\t% of balance per trade\n\nSupported locations: NYC, Chicago, Seattle, Atlanta, Dallas, Miami\n\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\nRunning the Skill\n# Dry run (default — shows opportunities, no trades)\npython weather_trader.py\n\n# Execute real trades\npython weather_trader.py --live\n\n# With smart position sizing (uses portfolio balance)\npython weather_trader.py --live --smart-sizing\n\n# Check positions only\npython weather_trader.py --positions\n\n# View config\npython weather_trader.py --config\n\n# Disable safeguards (not recommended)\npython weather_trader.py --no-safeguards\n\n# Disable trend detection\npython weather_trader.py --no-trends\n\n# Quiet mode — only output on trades/errors (ideal for high-frequency runs)\npython weather_trader.py --live --quiet\n\n# Combine: frequent scanning, minimal noise\npython weather_trader.py --live --smart-sizing --quiet\n\nHow It Works\n\nEach cycle the script:\n\nFetches active weather markets from Simmer API\nGroups markets by event (each temperature day is one event)\nParses event names to get location and date\nFetches NOAA forecast for that location/date\nFinds the temperature bucket that matches the forecast\nSafeguards: Checks context for flip-flop warnings, slippage, time decay\nTrend Detection: Looks for recent price drops (stronger buy signal)\nEntry: If bucket price < threshold and safeguards pass → BUY\nExit: Checks open positions, sells if price > exit threshold\nTagging: All trades tagged with sdk:weather for tracking\nSmart Sizing\n\nWith --smart-sizing, position size is calculated as:\n\n5% of available USDC balance (configurable via SIMMER_WEATHER_SIZING_PCT)\nCapped at max position setting ($2.00 default)\nFalls back to fixed size if portfolio unavailable\n\nThis prevents over-deployment and scales with your account size.\n\nSafeguards\n\nBefore trading, the skill checks:\n\nFlip-flop warning: Skips if you've been reversing too much\nSlippage: Skips if estimated slippage > 15%\nTime decay: Skips if market resolves in < 2 hours\nMarket status: Skips if market already resolved\n\nDisable with --no-safeguards (not recommended).\n\nSource Tagging\n\nAll trades are tagged with source: \"sdk:weather\". This means:\n\nPortfolio shows breakdown by strategy\nCopytrading skill won't sell your weather positions\nYou can track weather P&L separately\nExample Output\n🌤️ Simmer Weather Trading Skill\n==================================================\n\n⚙️ Configuration:\n  Entry threshold: 15% (buy below this)\n  Exit threshold:  45% (sell above this)\n  Max position:    $2.00\n  Locations:       NYC\n  Smart sizing:    ✓ Enabled\n  Safeguards:      ✓ Enabled\n  Trend detection: ✓ Enabled\n\n💰 Portfolio:\n  Balance: $150.00\n  Exposure: $45.00\n  Positions: 8\n\n📍 NYC 2026-01-28 (high temp)\n  NOAA forecast: 34°F\n  Matching bucket: 34-35°F @ $0.12\n  💡 Smart sizing: $2.00 (capped at max position)\n  ✅ Below threshold ($0.15) - BUY opportunity! 📉 (dropped 15% in 24h)\n  Executing trade...\n  ✅ Bought 62.5 shares @ $0.12\n\n📊 Summary:\n  Events scanned: 12\n  Entry opportunities: 1\n  Trades executed: 1\n\nTroubleshooting\n\n\"Safeguard blocked: Severe flip-flop warning\"\n\nYou've been changing direction too much on this market\nWait before trading again\n\n\"Slippage too high\"\n\nMarket is illiquid, reduce position size or skip\n\n\"Resolves in Xh - too soon\"\n\nMarket resolving soon, risk is elevated\n\n\"No weather markets found\"\n\nWeather markets may not be active (seasonal)\n\n\"API key invalid\"\n\nGet new key from simmer.markets/dashboard → SDK tab"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/johnjerry8749/weather-py",
    "publisherUrl": "https://clawhub.ai/johnjerry8749/weather-py",
    "owner": "johnjerry8749",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/weather-py",
    "downloadUrl": "https://openagent3.xyz/downloads/weather-py",
    "agentUrl": "https://openagent3.xyz/skills/weather-py/agent",
    "manifestUrl": "https://openagent3.xyz/skills/weather-py/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/weather-py/agent.md"
  }
}