Skip to content

Validation

R41z0r edited this page Jun 13, 2026 · 4 revisions

Contents

Use this page before handing off changes. It separates documentation-only checks from runtime checks and gives agents a repeatable way to report what was validated.

For docs, examples, AGENTS.md, or SKILL.md changes:

  1. Confirm no runtime files were changed unless the task explicitly allowed it.
  2. Update docs/_Sidebar.md and folder _Sidebar.md files when adding, renaming, or moving pages.
  3. Update README.md and docs/Home.md when adding important pages.
  4. Keep examples generic unless documenting a host-addon wrapper pattern.
  5. Prefer stable ids and realistic field names in every code snippet.
  6. Avoid introducing undocumented API names in examples.
  7. Make every example explain when to use it and what value shape it stores.
  8. Check Markdown tables render cleanly.
  9. Check headings match the table of contents anchors.
  10. Keep SKILL.md operational: it should tell an AI what to read, what to change, what not to change, and how to validate.

For allowed code changes in this repository, run focused syntax checks from the repository root:

lua -e 'assert(loadfile("runtime/LibSettingsDesigner/LibSettingsDesignerConfig.lua")); assert(loadfile("runtime/LibSettingsDesigner/LibSettingsDesignerUI.lua"))'

When validating a host addon that vendors the library, run the same check against that addon's local copy:

lua -e 'assert(loadfile("libs/LibSettingsDesigner/LibSettingsDesignerConfig.lua")); assert(loadfile("libs/LibSettingsDesigner/LibSettingsDesignerUI.lua"))'

Run the host addon's configured lint/test command when available. If library files are intentionally excluded from lint, say so in the final report and show the syntax-check result instead.

Useful local checks:

rg -n '\[[^]]+\]\([^)]*\)' README.md AGENTS.md SKILL.md docs
rg -n 'TO[D]O|TB[D]|FIXM[E]' README.md AGENTS.md SKILL.md docs

Manual checks:

  • docs/_Sidebar.md links to high-level pages.
  • docs/API/_Sidebar.md links back to Home, Vendoring, Quick Start, Elements, and Examples.
  • docs/Elements/_Sidebar.md links to every element page.
  • docs/Examples/_Sidebar.md links to every example page.
  • New pages are discoverable from at least docs/Home.md or README.md.

When source files are available, use this process to keep docs matched to code:

  1. Inspect exported namespaces in runtime/LibSettingsDesigner/LibSettingsDesignerConfig.lua and runtime/LibSettingsDesigner/LibSettingsDesignerUI.lua.
  2. List public Config methods and compare them with docs/API/Config-API.md.
  3. List public UI methods and compare them with docs/API/UI-API.md.
  4. Search for supported control type values and compare them with docs/Elements/Elements.md.
  5. For every changed control type, update its element page with fields, callbacks, value shape, and at least one example.
  6. Search for field aliases in code and compare them with docs/Field-Glossary.md.
  7. Search for old names and verify docs do not recommend them.
  8. Run examples mentally against the documented read/write/default order.
  9. Report any docs that could not be verified because source files were not available.

Useful commands when source files exist:

rg -n 'function .*Register|Register[A-Za-z]+\s*=|\.Register[A-Za-z]+' runtime/LibSettingsDesigner
rg -n 'type\s*==\s*"|control\.type|data\.type' runtime/LibSettingsDesigner
rg -n 'getValue|setValue|getSelection|setSelection|parentCheck|visibleWhen|hiddenWhen' runtime/LibSettingsDesigner
  1. /reload
  2. Open the settings center.
  3. Verify the dashboard, sidebar, search field, and close button.
  4. Open a category page list and a page detail view.
  5. Test each touched control type.
  6. Verify disabled rows do not show active hover/interaction states.
  7. Verify hidden rows/pages are actually absent.
  8. Test search by label, id, keyword alias, and note text.
  9. Test reset on one control and one page.
  10. Test direct navigation: ConfigUI:Open(app, pageID, controlID).
  11. Test compact/comfortable density when enabled.
  12. Check BugSack or the default Lua error frame.

Use this format in final handoff notes:

Changed:
- Docs: ...
- Skill/agent instructions: ...
- Runtime code: none / list files

Validated:
- Markdown/navigation: ...
- Source/API match: verified against code / not possible because source files were absent
- Syntax/lint: ...
- In-game: done / not run

Remaining recommendations:
- ...

Wiki
  • Home
  • Architecture
  • Vendoring
  • Quick Start
  • Field Glossary
  • Troubleshooting
  • Validation

Reference
  ⚬ Config API
  ⚬ UI API
  ⚬ Elements
  ⚬ Examples

Elements
  Structure
   • Category
   • Page
   • Group
   • Dashboard
   • InfoPage
   • Custom
  Controls
   • Toggle
   • CheckboxDropdown
   • Dropdown
   • MultiDropdown
   • SoundDropdown
   • Input
   • Slider
   • Button
  Advanced
   • ColorPicker
   • ColorPalette
   • ColorOverrides
   • ReorderList
   • Expandable
   • Notes

Examples
  Start
   • Minimal Addon
   • Complete Settings Center
   • Wrapper Bridge Pattern
  Data and Behavior
   • Dependent Controls
   • Nested Database Values
   • Dynamic Dropdowns
   • Runtime Refresh
   • Search and New Badges
   • Custom Hosted Editors
  Polish
   • Support Links
   • Theme Colors
   • Theme Borders

Clone this wiki locally