| name | description |
|---|---|
DotaCoach |
Dota 2 coaching, analytics, and game knowledge system. USE WHEN user mentions dota, dota 2, hero, patch, meta, counterpick, matchup, item build, draft, mmr, match id, analyze match, OR wants to analyze patch notes, get hero info, check winrates, find counters, understand abilities, analyze match history, or improve at dota. |
Your personal Dota 2 analyst and coach. Provides real-time game data, patch analysis, hero breakdowns, meta insights, and strategic recommendations using official Valve APIs and OpenDota statistics.
| Source | Data | Endpoint | Docs |
|---|---|---|---|
| Valve Datafeed | Heroes, abilities, items, patch notes | dota2.com/datafeed/ |
— |
| OpenDota API | Winrates, matchups, pro builds, match history | api.opendota.com/api/ |
Explorer |
| STRATZ API | Advanced stats, matchups, player data | api.stratz.com/graphql |
GraphiQL |
OpenDota/Valve — no keys required. STRATZ — requires API key (free tier available).
All tools are in tools/ directory and run via Bun:
| Tool | Purpose | Example |
|---|---|---|
GetPatch.ts |
Fetch latest or specific patch notes | bun run tools/GetPatch.ts --version=7.40 |
GetHero.ts |
Get hero details (abilities, talents, facets) | bun run tools/GetHero.ts "Anti-Mage" |
GetHeroStats.ts |
Winrates, pickrates from OpenDota | bun run tools/GetHeroStats.ts |
GetMatchups.ts |
Hero counters, synergies, draft analysis | bun run tools/GetMatchups.ts "Pudge" or --against="Hero1,Hero2" |
GetItemBuilds.ts |
Popular item builds for hero | bun run tools/GetItemBuilds.ts "Invoker" |
GetMatch.ts |
Match data with proper hero mapping | bun run tools/GetMatch.ts 8597260572 |
When executing a workflow, output this notification directly:
Running the **WorkflowName** workflow from the **DotaCoach** skill...
| Workflow | Trigger | File |
|---|---|---|
| AnalyzePatch | "what changed in patch", "patch notes", "7.40 changes", "latest patch" | workflows/AnalyzePatch.md |
| HeroBreakdown | "tell me about [hero]", "how does [ability] work", "hero info" | workflows/HeroBreakdown.md |
| MetaAnalysis | "what's meta", "best heroes", "winrates", "strong picks" | workflows/MetaAnalysis.md |
| Counterpick | "counter [hero]", "who beats [hero]", "matchups for [hero]" | workflows/Counterpick.md |
| DraftCoach | "analyze draft", "help me draft", "is this draft good" | workflows/DraftCoach.md |
| MatchAnalysis | "analyze match [id]", "match [id]", "what happened in match", "look up match" | workflows/MatchAnalysis.md |
Example 1: Patch Analysis
User: "What changed in the latest Dota patch?"
→ Invokes AnalyzePatch workflow
→ Fetches patch 7.40 from Valve Datafeed
→ Summarizes key changes: talents rework, map changes, hero buffs/nerfs
→ Highlights meta-impacting changes
Example 2: Hero Deep Dive
User: "Tell me about Invoker's abilities"
→ Invokes HeroBreakdown workflow
→ Fetches hero data from Valve API
→ Explains all abilities with current values
→ Details talents, facets, shard/scepter upgrades
Example 3: Meta Check
User: "What heroes are strong right now?"
→ Invokes MetaAnalysis workflow
→ Fetches current winrates from OpenDota
→ Lists top heroes by role and bracket
→ Explains why they're strong in current patch
Example 4: Counterpicking
User: "Who counters Pudge?"
→ Invokes Counterpick workflow
→ Fetches matchup data from OpenDota
→ Lists best counters with win% advantage
→ Explains why each counter works
Example 5: Draft Analysis
User: "Analyze this draft: Pudge, Invoker, Juggernaut, Earthshaker, Crystal Maiden"
→ Invokes DraftCoach workflow
→ Analyzes team composition
→ Identifies strengths, weaknesses, win conditions
→ Suggests playstyle and timing
Example 6: Match Analysis
User: "Analyze match 8597260572"
→ Invokes MatchAnalysis workflow
→ Runs GetMatch.ts to fetch match data with proper hero names
→ Shows teams, players, K/D/A, GPM, damage
→ Displays draft order and bans
→ Provides insights on why the game went this way
Example 7: Draft Matchup Check
User: "Is DK good against Huskar, LC, Pugna, Dark Willow?"
→ Runs GetMatchups.ts "Dragon Knight" --against="Huskar,LC,Pugna,Dark Willow"
→ Shows winrate vs each enemy hero with statistical significance
→ Calculates average winrate against the draft
→ Gives verdict: GOOD PICK / NEUTRAL / BAD PICK
# List all patches
curl "https://www.dota2.com/datafeed/patchnoteslist"
# Get specific patch notes (FULL CONTENT)
curl "https://www.dota2.com/datafeed/patchnotes?version=7.40&language=english"
# Get all heroes
curl "https://www.dota2.com/datafeed/herolist?language=english"
# Get hero details (abilities, talents, facets)
curl "https://www.dota2.com/datafeed/herodata?hero_id=1&language=english"
# Get all items
curl "https://www.dota2.com/datafeed/itemlist?language=english"
# Get ability details
curl "https://www.dota2.com/datafeed/abilitydata?ability_id=5003&language=english"# Hero stats (winrates, pickrates)
curl "https://api.opendota.com/api/heroStats"
# Hero matchups (counters)
curl "https://api.opendota.com/api/heroes/14/matchups" # 14 = Pudge
# Hero item popularity
curl "https://api.opendota.com/api/heroes/74/itemPopularity" # 74 = Invoker
# Pro matches
curl "https://api.opendota.com/api/proMatches"
# Live games
curl "https://api.opendota.com/api/live"
# Player profile
curl "https://api.opendota.com/api/players/{account_id}"
# Match data (IMPORTANT: use GetMatch.ts for proper hero name mapping)
curl "https://api.opendota.com/api/matches/{match_id}"| Hero | ID | Hero | ID |
|---|---|---|---|
| Anti-Mage | 1 | Pudge | 14 |
| Axe | 2 | Shadow Fiend | 11 |
| Crystal Maiden | 5 | Invoker | 74 |
| Earthshaker | 7 | Juggernaut | 8 |
| Drow Ranger | 6 | Phantom Assassin | 44 |
| Mirana | 9 | Rubick | 86 |
Full list: curl "https://api.opendota.com/api/heroes"
When coaching, always consider:
- Bracket Context — Advice differs by MMR (Herald vs Immortal)
- Patch Relevance — Always check if advice matches current patch
- Role Clarity — Specify position (1-5) when discussing heroes
- Timing Windows — When heroes are strong/weak in game
- Win Conditions — How the team should play to win
# Get latest patch notes
bun run tools/GetPatch.ts
# Get hero info
bun run tools/GetHero.ts "Invoker"
# Get current meta stats
bun run tools/GetHeroStats.ts
# Get hero counters
bun run tools/GetMatchups.ts "Pudge"
# Check hero vs enemy draft (DRAFT ANALYSIS)
bun run tools/GetMatchups.ts "Dragon Knight" --against="Huskar,LC,Pugna,Dark Willow"
# Get item builds
bun run tools/GetItemBuilds.ts "Anti-Mage"
# Get match data (with proper hero names!)
bun run tools/GetMatch.ts 8597260572
# Get match draft only
bun run tools/GetMatch.ts 8597260572 --draft