Use this checklist for feature work and regressions.
- Use Retail client with addon enabled and fresh
/reload. - Confirm
CombatModeDBloads and settings panel opens (/cm). - Changelog viewer: open About → View Changelog; confirm markdown renders (headings, bullets, links). After a version bump, confirm auto-popup once per version (
lastSeenChangelogVersionin saved vars). IfCHANGELOG.mdwas edited, confirmscripts/sync-changelog-to-lua.ps1was run so in-game text matches. - If testing bindings, verify keybinds are set as expected.
- For API-sensitive changes, verify WoW API/event signatures via MCP tools first (or manual fallback in
RELEASE.md).
- Toggle CombatMode on/off and verify mouselook enters/exits correctly.
- Verify no stuck mouselook after opening/closing common UI panels.
- Test transitions in and out of combat; no protected-action errors.
- Enable/disable reticle-related settings and confirm visual/state updates.
- Confirm targeted CVars change only when feature requires it.
- Disable feature and ensure CVars/state restore path behaves correctly.
- Open Reticle Targeting CVar editor from Reticle options: filter/sort, double-click edit, reset overrides; reload and confirm
reticleTargetingCVarOverridespersistence; verify excluded CVars do not appear and externalSetCVarupdates refresh the list where hooked.
- Validate base click-cast actions on valid units.
- Validate modifier variants (Shift/Ctrl/Alt) map to expected spells/macros.
- Verify behavior remains stable in combat (no insecure action taint/errors).
- Trigger configured unlock conditions (UI panels/custom Lua if applicable).
- Confirm mouselook unlocks when expected and relocks when expected.
- Confirm pulse appears after unlock and does not persist unexpectedly.
- Open/close radial menu through configured keybind/toggle flow.
- Cast valid spells from radial targets and verify target routing.
- Check combat behavior for secure restrictions and graceful fallback.
- Change options in each category and verify immediate apply/refresh behavior.
- Reload UI and confirm saved values persist in correct scope.
- Test reset/default paths and ensure no stale state remains.
- Slash commands:
/cm,/combatmode,/undocm. - Keybinds still function after reload and after disabling/re-enabling addon.
- No Lua errors in normal use paths for edited features.
- If keybind writes were changed, verify in-combat changes defer and apply automatically after leaving combat.
- For contributor lint/format checks, use helper by default:
pwsh ./scripts/lint-changed.ps1. - Equivalent direct gate:
pre-commit run --files <changed files>. - Reserve full-repo gate for release prep:
pre-commit run --all-files.