Analyze a WarcraftLogs raid report and provide mechanic-focused improvement feedback with video/guide resources. Use when the user says "raid review", "review this raid", "analyze this log for improvement", or invokes /raid-review with a WarcraftLogs URL. Do NOT activate on general WarcraftLogs questions — those are handled by the warcraftlogs skill.
43:T224c,
Analyze a WarcraftLogs raid report and produce actionable improvement feedback for raiders. Identifies mechanic failures, flags underperformance, and finds relevant video guides and community resources.
Before starting, verify access to:
${CLAUDE_SKILL_DIR}/../warcraftlogs/scripts/wcl.sh — API query execution${CLAUDE_SKILL_DIR}/../warcraftlogs/references/queries.md — query templates<skill-path>/references/analysis-guide.md — analytical framework<skill-path>/references/resource-sources.md — resource discovery strategyExtract the report code from the WarcraftLogs URL:
https://www.warcraftlogs.com/reports/ABC123 → code is ABC123https://www.warcraftlogs.com/reports/ABC123#fight=5 → code is ABC123 (ignore fragment)If no URL is provided, ask the user for one.
Run query template #14 (rate limit check) via ${CLAUDE_SKILL_DIR}/../warcraftlogs/scripts/wcl.sh:
${CLAUDE_SKILL_DIR}/../warcraftlogs/scripts/wcl.sh '{ rateLimitData { limitPerHour pointsSpentThisHour pointsResetIn } }'
Estimate the query budget for this report: 1 rate limit check + 1 overview + N combined death/damage queries + K rankings queries (kills only). For a 15-fight report with 8 kills, that's ~25 queries. Compare this estimate against remaining API points. If insufficient, warn the user and suggest waiting or prioritizing wipe fights only.
Run a combined query for report overview + master data (saves API points):
{
reportData {
report(code: "$CODE") {
title
startTime
endTime
zone { name }
guild { name }
masterData(translate: true) {
actors(type: "Player") {
id
name
subType
server
}
}
fights(killType: Encounters) {
id
encounterID
name
kill
startTime
endTime
difficulty
size
}
}
}
}
Execute via: ${CLAUDE_SKILL_DIR}/../warcraftlogs/scripts/wcl.sh '<query>'
From the response, build:
Handle errors:
For each boss encounter (prioritize wipes first, then messy kills, then clean kills last).
Multiple kills of the same boss: A report may contain re-kills (e.g., Normal then Heroic, or re-clears). Analyze each fight separately — they may be different difficulties. Group them in the boss summary output (e.g., "Crown of the Cosmos (Normal) — Kill (4:23)" and "Crown of the Cosmos (Heroic) — 3 wipes").
4a. Deaths query — query template #6:
{
reportData {
report(code: "$CODE") {
table(dataType: Deaths, fightIDs: [$FIGHT_ID])
}
}
}
4b. Damage taken query — query template #5 with DamageTaken:
{
reportData {
report(code: "$CODE") {
table(dataType: DamageTaken, fightIDs: [$FIGHT_ID], hostilityType: Friendlies)
}
}
}
4c. Rankings query — query template #7 (only for kills, not wipes):
{
reportData {
report(code: "$CODE") {
rankings(encounterID: $ENCOUNTER_ID, difficulty: $DIFFICULTY)
}
}
}
Combine queries where possible using GraphQL aliases to save API points:
{
reportData {
report(code: "$CODE") {
deaths: table(dataType: Deaths, fightIDs: [$FIGHT_ID])
damageTaken: table(dataType: DamageTaken, fightIDs: [$FIGHT_ID], hostilityType: Friendlies)
}
}
}
For each fight, apply the analysis framework from references/analysis-guide.md:
API budget management:
Aggregate across all analyzed fights per player:
Apply underperformance flag logic from references/analysis-guide.md:
For each unique mechanic problem identified (e.g., "Shadow Orb damage on Crown of the Cosmos"):
<skill-path>/references/resource-sources.md for search strategyGroup resources by mechanic (not by player) to avoid redundant searches — multiple players failing the same mechanic share the same resource links.
Print the raid overview immediately. Format:
== RAID REVIEW: [Difficulty] [Raid Name] — [Date] ==
[X] players | [Duration] | [X/Y] [Difficulty] ([wipe count]x wipes on [boss])
--- BOSS SUMMARY ---
[For each boss, one line:]
[Boss Name] ([Difficulty]) — [Kill/Wipe] ([Duration or wipe count])
[If notable issues: brief description]
--- RAID-WIDE ISSUES ---
[Ranked by wipe impact, max 5:]
1. [Mechanic] ([Boss]) — [impact description]
Resource: [URL]
--- TOP 3 PRIORITIES FOR NEXT RAID ---
1. [Priority with brief action item]
2. [Priority with brief action item]
3. [Priority with brief action item]
---
What would you like to dig into?
- "Show [boss name] breakdown" — detailed fight analysis
- "Show [player name]'s report" — individual improvement feedback
- "Show all player reports" — everyone's feedback
- "What should we focus on?" — distilled priorities
Boss breakdown (when user asks about a specific boss):
Player report (when user asks about a specific player):
--- [Player Name] ([Spec] [Class]) ---
Attended: [X/Y] fights
Mechanic Issues:
1. [Ability name] ([Boss]) — died [X] times
What to do: [Brief actionable tip]
Resource: [URL with description]
2. [Ability name] ([Boss]) — [damage outlier / other issue]
What to do: [Brief actionable tip]
Resource: [URL with description]
[If underperformance flag:]
Note: Parses are averaging in the [color] range ([X]th percentile).
Combined with the mechanic issues above, focusing on survival first
will naturally improve your numbers.
Keep to 2-3 action items max per player. Tone: constructive, action-oriented, resources as help not homework.
All player reports (when user asks for everyone):