[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M73FW9JNH4FFH11TG1FD8BCQ":3,"skill-same:01M73FW9JNH4FFH11TG1FD8BCQ":51},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":27,"commitSha":28,"skillDirectory":29,"forksCount":30,"repositoryHtmlUrl":31,"repositoryHomepageUrl":32,"ownerHtmlUrl":33,"ownerBlogUrl":34,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M73FW9JNH4FFH11TG1FD8BCQ","sports--betting",null,"|","Horonomos-laps\u002FYana-AI","Horonomos-laps","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F355299122?v=4","01M76B3QPXE88ET2SQPDPVATZT"," Horonomos-laps","01M72ZQRJPCYPSSWT4D00VJR2A",13,"MIT","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fsports--betting\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: sports--betting\ndescription: >-\n  |\norigin: \"github.com\u002Fmachina-sports\u002Fsports-skills (skill: betting)\"\nlicense: MIT\nversion: \"1.0.0\"\ncompatibility: \"yana-ai >= 0.14.0\"\n---\n\n# Betting Analysis\n\nBefore writing queries, consult `references\u002Fapi-reference.md` for odds formats, command parameters, and key concepts.\n\n## Quick Start\n\n```bash\nsports-skills betting convert_odds --odds=-150 --from_format=american\nsports-skills betting devig --odds=-150,+130 --format=american\nsports-skills betting find_edge --fair_prob=0.58 --market_prob=0.52\nsports-skills betting evaluate_bet --book_odds=-150,+130 --market_prob=0.52\nsports-skills betting find_arbitrage --market_probs=0.48,0.49\nsports-skills betting parlay_analysis --legs=0.58,0.62,0.55 --parlay_odds=600\nsports-skills betting line_movement --open_odds=-140 --close_odds=-160\n```\n\nPython SDK:\n```python\nfrom sports_skills import betting\n\nbetting.convert_odds(odds=-150, from_format=\"american\")\nbetting.devig(odds=\"-150,+130\", format=\"american\")\nbetting.find_edge(fair_prob=0.58, market_prob=0.52)\nbetting.find_arbitrage(market_probs=\"0.48,0.49\")\nbetting.parlay_analysis(legs=\"0.58,0.62,0.55\", parlay_odds=600)\nbetting.line_movement(open_odds=-140, close_odds=-160)\n```\n\n## CRITICAL: Before Any Analysis\n\nCRITICAL: Before calling any analysis command, verify:\n- Odds format is correctly identified (american, decimal, or probability).\n- ESPN odds are de-vigged with `devig` before computing edge vs prediction market prices.\n- This module computes — it does not fetch. Obtain odds from sport-specific skills or polymarket\u002Fkalshi first.\n\n## Workflows\n\n### Compare ESPN vs Polymarket\u002FKalshi\n\n1. Get ESPN moneyline odds (e.g., from `nba get_scoreboard`): Home: `-150`, Away: `+130`\n2. Get Polymarket\u002FKalshi price for the same outcome (e.g., home at `0.52`)\n3. De-vig: `devig --odds=-150,+130 --format=american` → Fair: Home 57.9%, Away 42.1%\n4. Compare: `find_edge --fair_prob=0.579 --market_prob=0.52` → Edge: 5.9%, EV: 11.3%\n5. Or all in one step: `evaluate_bet --book_odds=-150,+130 --market_prob=0.52`\n\n### Arbitrage Detection\n\n1. Get best price per outcome from different sources (Polymarket home at 0.48, Kalshi away at 0.49)\n2. `find_arbitrage --market_probs=0.48,0.49 --labels=home,away`\n3. Total implied 0.97 (\u003C 1.0) → arbitrage found, guaranteed ROI: 3.09%\n\n### Parlay Evaluation\n\n1. De-vig each leg: Leg 1 → 0.58, Leg 2 → 0.55, Leg 3 → 0.50\n2. `parlay_analysis --legs=0.58,0.55,0.50 --parlay_odds=600`\n3. Returns combined fair probability, edge, and Kelly fraction\n\n### Line Movement Analysis\n\n1. Get ESPN open and close lines: Open -140, Close -160\n2. `line_movement --open_odds=-140 --close_odds=-160`\n3. Returns probability shift, direction, and classification (sharp_action, steam_move, etc.)\n\n## Examples\n\nExample 1: Edge check using ESPN and Polymarket prices\nUser says: \"Is there edge on the Lakers game? ESPN has them at -150 and Polymarket has them at 52 cents\"\nActions:\n1. Call `devig(odds=\"-150,+130\", format=\"american\")` → fair home probability ~58%\n2. Call `find_edge(fair_prob=0.58, market_prob=0.52)` → edge ~6%, positive EV\n3. Call `kelly_criterion(fair_prob=0.58, market_prob=0.52)` → optimal bet fraction\nResult: Present edge percentage, EV per dollar, and recommended bet size as % of bankroll\n\nExample 2: Arbitrage opportunity detection\nUser says: \"Can I arb this? Polymarket has home at 48 cents and Kalshi has away at 49 cents\"\nActions:\n1. Call `find_arbitrage(market_probs=\"0.48,0.49\", labels=\"home,away\")`\n2. Check `arbitrage_found` in result\nResult: If arbitrage: present allocation percentages and guaranteed ROI. If not: present overround and explain no guaranteed profit\n\nExample 3: Parlay evaluation\nUser says: \"Is this 3-leg parlay at +600 worth it?\"\nActions:\n1. De-vig each leg to get fair probabilities (e.g., 0.58, 0.62, 0.55)\n2. Call `parlay_analysis(legs=\"0.58,0.62,0.55\", parlay_odds=600)`\nResult: Present combined fair probability, edge, EV, +EV or -EV verdict, and Kelly fraction\n\nExample 4: Line movement interpretation\nUser says: \"The line moved from -140 to -160, what does that mean?\"\nActions:\n1. Call `line_movement(open_odds=-140, close_odds=-160)`\nResult: Present probability shift, direction, magnitude, and classification (sharp action, steam move, etc.)\n\nExample 5: De-vig a standard spread\nUser says: \"What are the true odds for this spread? Both sides are -110\"\nActions:\n1. Call `devig(odds=\"-110,-110\", format=\"american\")`\nResult: Present each side as 50% fair probability, vig is ~4.5%\n\nExample 6: Odds format conversion\nUser says: \"Convert -200 to implied probability\"\nActions:\n1. Call `convert_odds(odds=-200, from_format=\"american\")`\nResult: Present 66.7% implied probability and 1.50 decimal odds\n\n## Commands that DO NOT exist — never call these\n\n- ~~`get_odds`~~ — does not exist. This module analyzes odds; it does not fetch them. Use nba-data\u002Fnfl-data\u002Fetc. for ESPN odds, or polymarket\u002Fkalshi for prediction market prices.\n- ~~`calculate_ev`~~ — does not exist. Use `find_edge` or `evaluate_bet` instead.\n- ~~`compare_markets`~~ — does not exist. Use the `markets` skill for cross-platform comparison.\n\nIf a command is not listed in `references\u002Fapi-reference.md`, it does not exist.\n\n## Troubleshooting\n\nError: `ValueError: unknown format` when calling `convert_odds`\nCause: The `from_format` parameter is not one of `american`, `decimal`, or `probability`\nSolution: Use exactly `american`, `decimal`, or `probability` as the format string\n\nError: `find_edge` returns negative EV when a positive edge is expected\nCause: Fair probability and market probability may be reversed, or de-vigging was skipped\nSolution: Run `devig` on sportsbook odds first, then pass the de-vigged `fair_prob` to `find_edge`\n\nError: `find_arbitrage` shows no arbitrage even when prices seem low\nCause: Prices may sum to more than 1.0 when all outcomes are correctly included\nSolution: Verify you are using the correct probabilities for all outcomes; check `total_implied` in the result\n\nError: Kelly fraction is very high (greater than 0.5)\nCause: Edge estimate is very large — often from a miscalculated fair probability\nSolution: Use half-Kelly or quarter-Kelly for conservative sizing. Re-verify fair probability via `devig`\n","# Betting Analysis\n\nBefore writing queries, consult `references\u002Fapi-reference.md` for odds formats, command parameters, and key concepts.\n\n## Quick Start\n\n```bash\nsports-skills betting convert_odds --odds=-150 --from_format=american\nsports-skills betting devig --odds=-150,+130 --format=american\nsports-skills betting find_edge --fair_prob=0.58 --market_prob=0.52\nsports-skills betting evaluate_bet --book_odds=-150,+130 --market_prob=0.52\nsports-skills betting find_arbitrage --market_probs=0.48,0.49\nsports-skills betting parlay_analysis --legs=0.58,0.62,0.55 --parlay_odds=600\nsports-skills betting line_movement --open_odds=-140 --close_odds=-160\n```\n\nPython SDK:\n```python\nfrom sports_skills import betting\n\nbetting.convert_odds(odds=-150, from_format=\"american\")\nbetting.devig(odds=\"-150,+130\", format=\"american\")\nbetting.find_edge(fair_prob=0.58, market_prob=0.52)\nbetting.find_arbitrage(market_probs=\"0.48,0.49\")\nbetting.parlay_analysis(legs=\"0.58,0.62,0.55\", parlay_odds=600)\nbetting.line_movement(open_odds=-140, close_odds=-160)\n```\n\n## CRITICAL: Before Any Analysis\n\nCRITICAL: Before calling any analysis command, verify:\n- Odds format is correctly identified (american, decimal, or probability).\n- ESPN odds are de-vigged with `devig` before computing edge vs prediction market prices.\n- This module computes — it does not fetch. Obtain odds from sport-specific skills or polymarket\u002Fkalshi first.\n\n## Workflows\n\n### Compare ESPN vs Polymarket\u002FKalshi\n\n1. Get ESPN moneyline odds (e.g., from `nba get_scoreboard`): Home: `-150`, Away: `+130`\n2. Get Polymarket\u002FKalshi price for the same outcome (e.g., home at `0.52`)\n3. De-vig: `devig --odds=-150,+130 --format=american` → Fair: Home 57.9%, Away 42.1%\n4. Compare: `find_edge --fair_prob=0.579 --market_prob=0.52` → Edge: 5.9%, EV: 11.3%\n5. Or all in one step: `evaluate_bet --book_odds=-150,+130 --market_prob=0.52`\n\n### Arbitrage Detection\n\n1. Get best price per outcome from different sources (Polymarket home at 0.48, Kalshi away at 0.49)\n2. `find_arbitrage --market_probs=0.48,0.49 --labels=home,away`\n3. Total implied 0.97 (\u003C 1.0) → arbitrage found, guaranteed ROI: 3.09%\n\n### Parlay Evaluation\n\n1. De-vig each leg: Leg 1 → 0.58, Leg 2 → 0.55, Leg 3 → 0.50\n2. `parlay_analysis --legs=0.58,0.55,0.50 --parlay_odds=600`\n3. Returns combined fair probability, edge, and Kelly fraction\n\n### Line Movement Analysis\n\n1. Get ESPN open and close lines: Open -140, Close -160\n2. `line_movement --open_odds=-140 --close_odds=-160`\n3. Returns probability shift, direction, and classification (sharp_action, steam_move, etc.)\n\n## Examples\n\nExample 1: Edge check using ESPN and Polymarket prices\nUser says: \"Is there edge on the Lakers game? ESPN has them at -150 and Polymarket has them at 52 cents\"\nActions:\n1. Call `devig(odds=\"-150,+130\", format=\"american\")` → fair home probability ~58%\n2. Call `find_edge(fair_prob=0.58, market_prob=0.52)` → edge ~6%, positive EV\n3. Call `kelly_criterion(fair_prob=0.58, market_prob=0.52)` → optimal bet fraction\nResult: Present edge percentage, EV per dollar, and recommended bet size as % of bankroll\n\nExample 2: Arbitrage opportunity detection\nUser says: \"Can I arb this? Polymarket has home at 48 cents and Kalshi has away at 49 cents\"\nActions:\n1. Call `find_arbitrage(market_probs=\"0.48,0.49\", labels=\"home,away\")`\n2. Check `arbitrage_found` in result\nResult: If arbitrage: present allocation percentages and guaranteed ROI. If not: present overround and explain no guaranteed profit\n\nExample 3: Parlay evaluation\nUser says: \"Is this 3-leg parlay at +600 worth it?\"\nActions:\n1. De-vig each leg to get fair probabilities (e.g., 0.58, 0.62, 0.55)\n2. Call `parlay_analysis(legs=\"0.58,0.62,0.55\", parlay_odds=600)`\nResult: Present combined fair probability, edge, EV, +EV or -EV verdict, and Kelly fraction\n\nExample 4: Line movement interpretation\nUser says: \"The line moved from -140 to -160, what does that mean?\"\nActions:\n1. Call `line_movement(open_odds=-140, close_odds=-160)`\nResult: Present probability shift, direction, magnitude, and classification (sharp action, steam move, etc.)\n\nExample 5: De-vig a standard spread\nUser says: \"What are the true odds for this spread? Both sides are -110\"\nActions:\n1. Call `devig(odds=\"-110,-110\", format=\"american\")`\nResult: Present each side as 50% fair probability, vig is ~4.5%\n\nExample 6: Odds format conversion\nUser says: \"Convert -200 to implied probability\"\nActions:\n1. Call `convert_odds(odds=-200, from_format=\"american\")`\nResult: Present 66.7% implied probability and 1.50 decimal odds\n\n## Commands that DO NOT exist — never call these\n\n- ~~`get_odds`~~ — does not exist. This module analyzes odds; it does not fetch them. Use nba-data\u002Fnfl-data\u002Fetc. for ESPN odds, or polymarket\u002Fkalshi for prediction market prices.\n- ~~`calculate_ev`~~ — does not exist. Use `find_edge` or `evaluate_bet` instead.\n- ~~`compare_markets`~~ — does not exist. Use the `markets` skill for cross-platform comparison.\n\nIf a command is not listed in `references\u002Fapi-reference.md`, it does not exist.\n\n## Troubleshooting\n\nError: `ValueError: unknown format` when calling `convert_odds`\nCause: The `from_format` parameter is not one of `american`, `decimal`, or `probability`\nSolution: Use exactly `american`, `decimal`, or `probability` as the format string\n\nError: `find_edge` returns negative EV when a positive edge is expected\nCause: Fair probability and market probability may be reversed, or de-vigging was skipped\nSolution: Run `devig` on sportsbook odds first, then pass the de-vigged `fair_prob` to `find_edge`\n\nError: `find_arbitrage` shows no arbitrage even when prices seem low\nCause: Prices may sum to more than 1.0 when all outcomes are correctly included\nSolution: Verify you are using the correct probabilities for all outcomes; check `total_implied` in the result\n\nError: Kelly fraction is very high (greater than 0.5)\nCause: Edge estimate is very large — often from a miscalculated fair probability\nSolution: Use half-Kelly or quarter-Kelly for conservative sizing. Re-verify fair probability via `devig`\n",{"name":5,"origin":24,"license":15,"version":25,"description":7,"compatibility":26},"github.com\u002Fmachina-sports\u002Fsports-skills (skill: betting)","1.0.0","yana-ai >= 0.14.0","main","481dcd7dd2e288b9d627a2bd017db70e64e6c6fa","core\u002Fskills\u002Fsports--betting",2,"https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI","https:\u002F\u002Fyana.vutam.link\u002F","https:\u002F\u002Fgithub.com\u002FHoronomos-laps","https:\u002F\u002Fyana.vutam.link","An open-source governed runtime & execution environment for multi-agent AI systems.","2026-11-14 13:24:09",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add Horonomos-laps\u002FYana-AI --skill sports--betting",{"tool":43,"command":44},"bunx","bunx skills add Horonomos-laps\u002FYana-AI --skill sports--betting",{"tool":46,"command":47},"pnpm","pnpm dlx skills add Horonomos-laps\u002FYana-AI --skill sports--betting","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fsports--betting\u002FSKILL.md",true,[],[52,59,67,75,83,91],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":19},"01M735GKET5YVYKAY62W2P5YXB","openai--sentry--sentry","Use when the user asks to inspect Sentry issues or events, summarize recent production errors, or pull basic Sentry health data via the Sentry API; perform read-only queries with the bundled script and require `SENTRY_AUTH_TOKEN`.","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fopenai--sentry--sentry\u002FSKILL.md",[],[],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":63,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":19},"01M73DCAP83T17HY7SMGK7MGFE","ito-basket-compare","Compare Itô prediction-market baskets against a user's knowledge base, portfolio notes, financial context, watchlist, or research thesis. Use for read-only basket comparison and gap analysis without investment advice or live trading.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fito-basket-compare\u002FSKILL.md",[],[],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":63,"licenseFileUrl":71,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":19},"01M734CYEMZFDR3KH6SW0JP8TD","implementing-network-traffic-baselining","Build network traffic baselines from NetFlow\u002FIPFIX data using Python pandas for statistical analysis, z-score anomaly detection, and hourly\u002Fdaily traffic pattern profiling","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-network-traffic-baselining\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-network-traffic-baselining\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":63,"licenseFileUrl":79,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M73ASZ6NJRJM44Z2P84NGQ3Q","detecting-evasion-techniques-in-endpoint-logs","Detects defense evasion techniques used by adversaries in endpoint logs including log tampering, timestomping, process injection, and security tool disabling. Use when investigating suspicious endpoint behavior, building detection rules for evasion tactics, or conducting threat hunting for stealthy adversary activity. Activates for requests involving evasion detection, defense evasion analysis, log tampering detection, or MITRE ATT&CK TA0005.","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fdetecting-evasion-techniques-in-endpoint-logs\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fdetecting-evasion-techniques-in-endpoint-logs\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":63,"licenseFileUrl":87,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":19},"01M734AFNXD06Z78QRK0VKGT7Q","implementing-microsegmentation-with-guardicore","Implementing microsegmentation using Akamai Guardicore Segmentation to map application dependencies, create granular network policies, visualize east-west traffic flows, and enforce least-privilege communication between workloads across data centers and cloud.","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-microsegmentation-with-guardicore\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-microsegmentation-with-guardicore\u002FSKILL.md",[],[],{"skillNo":92,"name":93,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":63,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":19},"01M736TK27QMCXK0DVCH25SJN5","ramdisk-tmpfs-patterns","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Framdisk-tmpfs-patterns\u002FSKILL.md",[],[]]