Noir::CLI::Catalog
The noir command surface: which top-level verbs exist, what each one
does, and the fixed vocabulary that follows it.
Every consumer reads it from here — the router's dispatch, each command's
-h page, noir help, and the zsh/bash/fish/elvish completion
generators. Before this module the same six lists were written out in as
many places (the router's verb list, noir help's target list, each
command's ACTIONS, and once per shell in completions.cr), with nothing linking
them: a renamed action stayed "valid" in three completion scripts, and a
new subcommand had to be remembered in six files or it silently went
uncompleted.
Constants
Sub-action vocabularies. Each command module re-exports the one it owns,
so CacheCommand::ACTIONS still reads naturally at its use site while
the list itself lives in one place.
Verbs whose next word is a path or a scan flag rather than a fixed
vocabulary: scan and the query verbs that ride its parser.
Class methods
The verb → next-word vocabulary pairs a completion script needs, in the
order its case should test them. SCAN_LIKE verbs are excluded: scan
is the fallback branch every shell falls through to, and the query verbs
take its flags and paths too.
help completes the verb list itself, which is why this can't simply be
Command#actions.