[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M73FXF5PECKMH17H116EV4Z2":3,"skill-same:01M73FXF5PECKMH17H116EV4Z2":57},{"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},"01M73FXF5PECKMH17H116EV4Z2","sports--tennis-data",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--tennis-data\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: sports--tennis-data\ndescription: >-\n  |\norigin: \"github.com\u002Fmachina-sports\u002Fsports-skills (skill: tennis-data)\"\nlicense: MIT\nversion: \"1.0.0\"\ncompatibility: \"yana-ai >= 0.14.0\"\n---\n\n# Tennis Data (ATP + WTA)\n\nBefore writing queries, consult `references\u002Fapi-reference.md` for endpoints, ID conventions, and data shapes.\n\n## Quick Start\n\nPrefer the CLI — it avoids Python import path issues:\n```bash\nsports-skills tennis get_scoreboard --tour=atp\nsports-skills tennis get_rankings --tour=wta\nsports-skills tennis get_calendar --tour=atp --year=2026\n```\n\n## CRITICAL: Before Any Query\n\nCRITICAL: Before calling any data endpoint, verify:\n- The `tour` parameter is specified (`atp` or `wta`) — there is no default.\n- Year is derived from the system prompt's `currentDate` — never hardcoded.\n\n## The `tour` Parameter\n\nMost commands require `--tour=atp` or `--tour=wta`:\n- **ATP**: Men's professional tennis tour\n- **WTA**: Women's professional tennis tour\n\nIf the user doesn't specify, ask which tour or show both by calling the command twice.\n\n## Commands\n\n| Command | Description |\n|---|---|\n| `get_scoreboard` | Live\u002Frecent tournament scores for a tour |\n| `get_rankings` | ATP or WTA player rankings |\n| `get_calendar` | Full season tournament calendar |\n| `get_player_info` | Individual tennis player profile |\n\nSee `references\u002Fapi-reference.md` for full parameter lists and return shapes.\n\n## Workflows\n\n### Live Tournament Check\n1. `get_scoreboard --tour=\u003Catp|wta>`\n2. Present current matches by round.\n3. For player info, use `get_player_info --player_id=\u003Cid>`.\n\n### Rankings Lookup\n1. `get_rankings --tour=\u003Catp|wta> --limit=20`\n2. Present rankings with points and trend.\n\n### Season Calendar\n1. `get_calendar --tour=\u003Catp|wta> --year=\u003Cyear>`\n2. Filter for specific tournament.\n\n## Examples\n\nExample 1: Live matches\nUser says: \"What ATP matches are happening right now?\"\nActions:\n1. Call `get_scoreboard(tour=\"atp\")`\nResult: Current tournament matches organized by round with scores and status\n\nExample 2: Women's rankings\nUser says: \"Show me the WTA rankings\"\nActions:\n1. Call `get_rankings(tour=\"wta\", limit=20)`\nResult: Top 20 WTA players with rank, name, points, and trend\n\nExample 3: Upcoming Grand Slam date\nUser says: \"When is the French Open this year?\"\nActions:\n1. Derive year from `currentDate`\n2. Call `get_calendar(tour=\"atp\", year=\u003Cderived_year>)`\n3. Search results for \"Roland Garros\" (the French Open's official name)\nResult: French Open dates, location (Paris), and surface (clay)\n\n## Commands that DO NOT exist — never call these\n\n- ~~`get_matches`~~ — does not exist. Use `get_scoreboard` for current match scores.\n- ~~`get_draw`~~ — does not exist. Tournament draw data is not available via this API.\n- ~~`get_head_to_head`~~ — does not exist. Head-to-head records are not available via this API.\n- ~~`get_standings`~~ — does not exist. Tennis uses `get_rankings`, not standings.\n\nIf a command is not listed in the Commands table above, it does not exist.\n\n## Troubleshooting\n\nError: `get_scoreboard` returns no matches\nCause: Tennis tournaments run specific weeks; no tournament may be scheduled this week\nSolution: Call `get_calendar(tour=...)` to find when the next event is scheduled\n\nError: Rankings are empty\nCause: Rankings update weekly on Mondays; there may be a brief update window\nSolution: The command auto-retries previous weeks. If still empty, retry in a few minutes\n\nError: Player profile fails\nCause: Player ID is incorrect\nSolution: Use `get_rankings` to find player IDs from the current rankings list, or verify via ESPN tennis URLs\n\nError: Scores seem delayed or don't update live\nCause: Scores update after each set\u002Fmatch is completed, not point-by-point\nSolution: This is expected behavior. Refresh `get_scoreboard` periodically for updated set scores\n","# Tennis Data (ATP + WTA)\n\nBefore writing queries, consult `references\u002Fapi-reference.md` for endpoints, ID conventions, and data shapes.\n\n## Quick Start\n\nPrefer the CLI — it avoids Python import path issues:\n```bash\nsports-skills tennis get_scoreboard --tour=atp\nsports-skills tennis get_rankings --tour=wta\nsports-skills tennis get_calendar --tour=atp --year=2026\n```\n\n## CRITICAL: Before Any Query\n\nCRITICAL: Before calling any data endpoint, verify:\n- The `tour` parameter is specified (`atp` or `wta`) — there is no default.\n- Year is derived from the system prompt's `currentDate` — never hardcoded.\n\n## The `tour` Parameter\n\nMost commands require `--tour=atp` or `--tour=wta`:\n- **ATP**: Men's professional tennis tour\n- **WTA**: Women's professional tennis tour\n\nIf the user doesn't specify, ask which tour or show both by calling the command twice.\n\n## Commands\n\n| Command | Description |\n|---|---|\n| `get_scoreboard` | Live\u002Frecent tournament scores for a tour |\n| `get_rankings` | ATP or WTA player rankings |\n| `get_calendar` | Full season tournament calendar |\n| `get_player_info` | Individual tennis player profile |\n\nSee `references\u002Fapi-reference.md` for full parameter lists and return shapes.\n\n## Workflows\n\n### Live Tournament Check\n1. `get_scoreboard --tour=\u003Catp|wta>`\n2. Present current matches by round.\n3. For player info, use `get_player_info --player_id=\u003Cid>`.\n\n### Rankings Lookup\n1. `get_rankings --tour=\u003Catp|wta> --limit=20`\n2. Present rankings with points and trend.\n\n### Season Calendar\n1. `get_calendar --tour=\u003Catp|wta> --year=\u003Cyear>`\n2. Filter for specific tournament.\n\n## Examples\n\nExample 1: Live matches\nUser says: \"What ATP matches are happening right now?\"\nActions:\n1. Call `get_scoreboard(tour=\"atp\")`\nResult: Current tournament matches organized by round with scores and status\n\nExample 2: Women's rankings\nUser says: \"Show me the WTA rankings\"\nActions:\n1. Call `get_rankings(tour=\"wta\", limit=20)`\nResult: Top 20 WTA players with rank, name, points, and trend\n\nExample 3: Upcoming Grand Slam date\nUser says: \"When is the French Open this year?\"\nActions:\n1. Derive year from `currentDate`\n2. Call `get_calendar(tour=\"atp\", year=\u003Cderived_year>)`\n3. Search results for \"Roland Garros\" (the French Open's official name)\nResult: French Open dates, location (Paris), and surface (clay)\n\n## Commands that DO NOT exist — never call these\n\n- ~~`get_matches`~~ — does not exist. Use `get_scoreboard` for current match scores.\n- ~~`get_draw`~~ — does not exist. Tournament draw data is not available via this API.\n- ~~`get_head_to_head`~~ — does not exist. Head-to-head records are not available via this API.\n- ~~`get_standings`~~ — does not exist. Tennis uses `get_rankings`, not standings.\n\nIf a command is not listed in the Commands table above, it does not exist.\n\n## Troubleshooting\n\nError: `get_scoreboard` returns no matches\nCause: Tennis tournaments run specific weeks; no tournament may be scheduled this week\nSolution: Call `get_calendar(tour=...)` to find when the next event is scheduled\n\nError: Rankings are empty\nCause: Rankings update weekly on Mondays; there may be a brief update window\nSolution: The command auto-retries previous weeks. If still empty, retry in a few minutes\n\nError: Player profile fails\nCause: Player ID is incorrect\nSolution: Use `get_rankings` to find player IDs from the current rankings list, or verify via ESPN tennis URLs\n\nError: Scores seem delayed or don't update live\nCause: Scores update after each set\u002Fmatch is completed, not point-by-point\nSolution: This is expected behavior. Refresh `get_scoreboard` periodically for updated set scores\n",{"name":5,"origin":24,"license":15,"version":25,"description":7,"compatibility":26},"github.com\u002Fmachina-sports\u002Fsports-skills (skill: tennis-data)","1.0.0","yana-ai >= 0.14.0","main","481dcd7dd2e288b9d627a2bd017db70e64e6c6fa","core\u002Fskills\u002Fsports--tennis-data",1,"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-11 23:56:26",{"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--tennis-data",{"tool":43,"command":44},"bunx","bunx skills add Horonomos-laps\u002FYana-AI --skill sports--tennis-data",{"tool":46,"command":47},"pnpm","pnpm dlx skills add Horonomos-laps\u002FYana-AI --skill sports--tennis-data","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fsports--tennis-data\u002FSKILL.md",true,[51],{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"scripts\u002Fvalidate_params.sh","SCRIPT","脚本",304,"https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fsports--tennis-data\u002Fscripts\u002Fvalidate_params.sh",[58,65,73,81,89,97],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"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":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":69,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"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":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":69,"licenseFileUrl":77,"sourceHtmlUrl":78,"categories":79,"keywords":80,"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":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":69,"licenseFileUrl":85,"sourceHtmlUrl":86,"categories":87,"keywords":88,"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":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":69,"licenseFileUrl":93,"sourceHtmlUrl":94,"categories":95,"keywords":96,"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":98,"name":99,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":69,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":19},"01M736TK27QMCXK0DVCH25SJN5","ramdisk-tmpfs-patterns","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Framdisk-tmpfs-patterns\u002FSKILL.md",[],[]]