Unified slash-command registry.
Every slash command is declared once as a SlashCommand entry in COMMANDS.
Bypass-tier frozensets and autocomplete tuples are derived automatically — no
other file should hard-code command metadata.
All slash commands.
Commands that execute regardless of any busy state.
Commands that bypass only during initial server connection.
Commands that open modal UI immediately, deferring real work.
Commands whose side effect fires immediately; chat output deferred until idle.
Commands that must wait in the queue when the app is busy.
Union of all five tiers — used by drift tests.
(name, description, hidden_keywords) tuples for SlashCommandController.
Extract skill name and args from a /skill:<name> command.
Build autocomplete tuples for discovered skills.
Each skill becomes a /skill:<name> entry with its description
and the skill name as a hidden keyword for fuzzy matching.
Skills that already have a dedicated slash command in COMMANDS
(e.g., remember → /remember) are excluded to avoid duplicate
autocomplete entries.