# Repository Guidelines

## Project Structure & Module Organization
RaidBuffStatus is a classic World of Warcraft addon written in Lua.
- Core logic: `Core.lua` (scan/report behavior), `Config.lua` (options), `MiniMap.lua` (minimap button), `ToolScanner.lua`, `oRAEvent.lua`.
- Addon manifest: `RaidBuffStatus.toc` controls load order and metadata.
- Localization: `Localization/*.lua` (`enUS.lua` is the base; keep other locales aligned).
- Embedded libraries: `Libs/` and `embeds.xml` (Ace3/LibStub stack). Treat vendored code as read-only unless updating a library intentionally.
- Historical notes: `ReadMe.txt`, `Changelog-RaidBuffStatus-release.txt`.

## Build, Test, and Development Commands
This project has no compile step or automated test runner.
- Install locally: copy this folder to `World of Warcraft/Interface/AddOns/RaidBuffStatus`.
- Reload UI in game: `/reload` after Lua changes.
- Validate addon load: ensure RaidBuffStatus appears in AddOns list and no startup errors occur.
- Optional lint (if installed): `luacheck *.lua Localization/*.lua`.

## Coding Style & Naming Conventions
- Use tabs for indentation, matching existing files.
- Keep Lua globals to a minimum; prefer local scope (`local var = ...`).
- Match established naming style: PascalCase for major tables/modules, camelCase for locals/functions where already used.
- Keep user-facing strings in localization files; avoid hardcoding non-debug text in core modules.
- Preserve `.toc` load order when adding files.

## Testing Guidelines
Testing is manual and in-game.
- Verify: addon loads cleanly, options open, minimap toggle works, and buff reports still send to party/raid.
- For localization edits, confirm fallback behavior by testing with `enUS` and at least one edited locale.
- Reproduce regressions with a small party first, then raid-sized scenarios when relevant.

## Commit & Pull Request Guidelines
Git history is not available in this workspace, so use clear, conventional commits.
- Commit format: `type(scope): short imperative summary` (example: `fix(core): avoid nil buff lookup`).
- Keep commits focused; separate refactors from behavior changes.
- PRs should include: what changed, why, test steps (in-game), and screenshots only for UI-visible changes.
- If `.toc` version or load list changes, call it out explicitly in the PR description.
