User-facing command output should go through DisplayManager or one of the display classes under cli/core/display/.
Do not:
console.print() from command, module, config, repository, validation, or template-rendering codeConsole from rich.console for general command output outside display classes or cli/__main__.pyDo:
module_instance.display in module/command codeDisplayManager() when standalone core command code needs outputcli/core/display/ when new output patterns are neededCentralized display handling keeps CLI output consistent and makes it easier to manage:
DisplayManager acts as a facade over focused display components.
Current responsibilities include:
External code should call facade methods on DisplayManager. Internally, the facade delegates to specialized display classes.
Example:
display = DisplayManager()
display.success("Template generated")
display.error("Validation failed", details="Missing variable")
If a needed display method does not exist, add one to the display layer instead of printing directly from feature code.
Prompt/input internals under cli/core/input/ may use Rich prompt primitives directly when implementing interactive input behavior. Keep regular command output in the display layer.