Single-file executable (`Program.cs`) targeting `net48` with no external dependencies beyond the standard library and a few referenced assemblies. The entry point accepts one argument — the path to a compiled macro assembly — then iterates over four embedded resource cultures (`en-US`, `it-IT`, `pl-PL`, `ko-KR`), loading the target assembly via reflection for each culture and emitting one per-culture Markdown file plus per-category files under a sibling `Docs/` directory. Reflection is used to discover types in the `ClassicAssist.Data.Macros.Commands` namespace, read `CommandsDisplayAttribute` / `CommandsDisplayStringSeeAlsoAttribute` metadata on public static members, and extract parameter info; attribute values are accessed through `dynamic` because this tool has no compile-time reference to the macro project. Localized strings come from `Properties/Resources.*.resx` resources (generated by `PublicResXFileCodeGenerator`). A custom `AssemblyResolve` handler bridges missing framework assemblies (including a typo workaround for `Colletions` → `System.Collections`) by probing the current directory and the runtime directory. Output model classes (`Commands`, `Parameter`, `CommandComparer`) live alongside `Program` and are not shared with any other project.