# Cómo Agregar un Nuevo Comando **Sistema actual**: Los comandos se definen en `commands-registry.ncl` y se dispatch dinámicamente. ## Pasos para Agregar un Comando ### 1. Agregar a commands-registry.ncl ```nickel make_command { command = "mi-comando", aliases = ["mi", "cmd"], help_category = "mi-categoria", # ← Este es el domain description = "Descripción del comando" } ``` ### 2. Crear módulo de handler (SI es nueva categoría) Si `help_category = "mi-categoria"` es **nueva**, crear: ```bash # Archivo: provisioning/core/nulib/main_provisioning/commands/mi_categoria.nu export def handle_mi_categoria_command [ command: string ops: string flags: record ] { match $command { "subcomando1" => { # implementar lógica aquí } "subcomando2" => { # implementar lógica aquí } _ => { print $"Unknown command: ($command)" } } } ``` ### 3. Importar en dispatcher.nu (SI es nueva categoría) ```nushell # Línea ~20 use commands/mi_categoria.nu * ``` ### 4. Agregar handler al registry (SI es nueva categoría) ```nushell # Línea ~245 en handlers record let handlers = { infrastructure: {|cmd, ops, flags| handle_infrastructure_command $cmd $ops $flags} orchestration: {|cmd, ops, flags| handle_orchestration_command $cmd $ops $flags} mi-categoria: {|cmd, ops, flags| handle_mi_categoria_command $cmd $ops $flags} } ``` ## Comandos en Categoría Existente Si `help_category` usa una categoría existente (e.g., "infrastructure"), **solo** actualizar: 1. `commands-registry.ncl` (paso 1) 2. El handler correspondiente (e.g., `commands/infrastructure.nu`) **No** necesitas tocar dispatcher.nu. ## Resultado ✅ **1 archivo** para comando en categoría existente ✅ **3 archivos** para nueva categoría completa