We are going to create a world of warcraft add on that finds the best talents and automatically enables them, with prompts to the user. We need to use the warcraftlogs to find the best M+ talents for each spec, and the best raid talents for each spec, and download them into a lua file that we can distribute with our add on. The addon should enable 'Loadouts' for the character, and when they enter a mythic level dungeon, or the current raid, it should select the appropriate talent. Note that there might be different best talents for different bosses in the raid - we will consider that a future feature. Ask me any questions you need answered, and create a ROADMAP.md file describing the work we are going to do to build this. Write the program to download content in python.
The user wants to create a World of Warcraft addon that:
Let me first check if any skills apply. The brainstorming skill seems relevant since this is a creative/feature creation task. Let me invoke it first.
Actually, I'm in plan mode, so I need to follow the plan workflow. But I should also check skills. Let me invoke brainstorming first since this is a creative task.
Now let me explore the project context and research the key technical areas in parallel.
I'll start by invoking the brainstorming skill since this is a new feature/project creation task.
Excellent research results. The project directory is empty (fresh start), and I now have a solid understanding of:
talentImportCode field in ReportFight dataC_ClassTalents.LoadConfig(), C_ClassTalents.ImportLoadout(), talent export stringsCHALLENGE_MODE_START for M+, ENCOUNTER_START for raids, ZONE_CHANGED_NEW_AREA for zone detectionLet me start with my first clarifying question:
User has answered your questions: "How should the addon handle talent switching — should it automatically apply the loadout silently, or prompt the user with a confirmation dialog before switching?"="Prompt first (Recommended)". You can now continue with the user's answers in mind.Good — prompt-first approach. Next question:
User has answered your questions: "For the Python data pipeline, how should we determine 'best' talents from WarcraftLogs? The API gives us access to individual fight reports with talent codes, but we need to aggregate across many top players."="Top rankings approach (Recommended)". You can now continue with the user's answers in mind.User has answered your questions: "Should the addon ship with pre-baked talent data (generated by the Python script and bundled as a Lua data file), or should it fetch updated data dynamically at runtime?"="Pre-baked Lua file (Recommended)". You can now continue with the user's answers in mind.User has answered your questions: "What should the addon be called? The project directory is 'azerothtoptalent' - should we use that, or do you have a different name in mind?"="it should be AzerothsTopTalent (that was a mistake in the directory name)". You can now continue with the user's answers in mind.User has answered your questions: "Should the addon support all classes and specs from day one, or should we start with a subset and expand?"="All specs from day one (Recommended)". You can now continue with the user's answers in mind.Now I have enough context to design the architecture. Let me launch Plan agents to design the two major components.
Excellent - I now have very thorough research and design from both agents. Let me synthesize this into a comprehensive plan. Let me review both designs and ensure alignment with the user's request before writing the final plan.
Key decisions confirmed:
Let me now write the comprehensive plan and ROADMAP.md. But wait - I'm in plan mode, so I can only write to the plan file.
Now I'll write out the plan file with all the implementation details and then exit plan mode so the roadmap can be created during the actual implementation phase.
Both design agents returned comprehensive plans. Let me update the task tracking and write the final plan.
Now let me write the comprehensive plan file.
Base directory for this skill: /mnt/dest-btrfs/home/jc/.claude/plugins/cache/claude-plugins-official/superpowers/4.3.0/skills/brainstorming
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design and get user approval.
Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity.Every project goes through this process. A todo list, a single-function utility, a config change — all of them. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short (a few sentences for truly simple projects), but you MUST present it and get approval.
You MUST create a task for each of these items and complete them in order:
docs/plans/YYYY-MM-DD-<topic>-design.md and commitdigraph brainstorming { "Explore project context" [shape=box]; "Ask clarifying questions" [shape=box]; "Propose 2-3 approaches" [shape=box]; "Present design sections" [shape=box]; "User approves design?" [shape=diamond]; "Write design doc" [shape=box]; "Invoke writing-plans skill" [shape=doublecircle];
"Explore project context" -> "Ask clarifying questions"; "Ask clarifying questions" -> "Propose 2-3 approaches"; "Propose 2-3 approaches" -> "Present design sections"; "Present design sections" -> "User approves design?"; "User approves design?" -> "Present design sections" [label="no, revise"]; "User approves design?" -> "Write design doc" [label="yes"]; "Write design doc" -> "Invoke writing-plans skill";}The terminal state is invoking writing-plans. Do NOT invoke frontend-design, mcp-builder, or any other implementation skill. The ONLY skill you invoke after brainstorming is writing-plans.
Understanding the idea:
Exploring approaches:
Presenting the design:
Documentation:
docs/plans/YYYY-MM-DD-<topic>-design.mdImplementation:
Here's a summary of the plan:
AzerothsTopTalent — Two components:
Python data pipeline (data_pipeline/) — Authenticates with WarcraftLogs API v2 (GraphQL, OAuth2), queries top-ranked players' characterRankings for all 39 specs across M+ and raid content, extracts talent import codes, picks the most popular build per spec, and generates a TalentData.lua file indexed by specID.
WoW Lua addon (AzerothsTopTalent/) — 7 files: TalentData (data), ImportExport (deserialize talent strings), LoadoutManager (apply talents via C_Traits API without consuming loadout slots), ContentDetector (detect M+ via CHALLENGE_MODE_START, raids via zone/encounter events), PromptUI (StaticPopup confirmation dialog), Settings (SavedVariables + panel), Core (orchestration + combat queueing).
Key decisions baked in from your answers:
13 implementation steps, from scaffolding through to ROADMAP.md creation.
Now let me save this to plan.md in the project directory as requested.
Let me follow the brainstorming process. First, I need to explore the project context, then ask clarifying questions one at a time. Let me create tasks for the brainstorming checklist items and start exploring.
Since I'm in plan mode, I should focus on understanding the project and designing the approach. Let me start by exploring the current project state and researching the WarcraftLogs API and WoW addon patterns.
Plan saved to /mnt/dest-btrfs/home/jc/src/azerothtoptalent/plan.md. Ready for approval.
Let me start by exploring the project context and researching the key technical areas.
digraph brainstorming { "Explore project context" [shape=box]; "Ask clarifying questions" [shape=box]; "Propose 2-3 approaches" [shape=box]; "Present design sections" [shape=box]; "User approves design?" [shape=diamond]; "Write design doc" [shape=box]; "Invoke writing-plans skill" [shape=doublecircle];
"Explore project context" -> "Ask clarifying questions"; "Ask clarifying questions" -> "Propose 2-3 approaches"; "Propose 2-3 approaches" -> "Present design sections"; "Present design sections" -> "User approves design?"; "User approves design?" -> "Present design sections" [label="no, revise"]; "User approves design?" -> "Write design doc" [label="yes"]; "Write design doc" -> "Invoke writing-plans skill";}