@evolith/smart-cli 1.1.4 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.es.md +989 -200
  2. package/README.md +98 -20
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/CoreApiClient.d.ts +5 -0
  5. package/dist/CoreApiClient.js +25 -0
  6. package/dist/CoreApiClient.js.map +1 -0
  7. package/dist/app.module.js +12 -4
  8. package/dist/app.module.js.map +1 -1
  9. package/dist/commands/agents/agents.command.d.ts +19 -6
  10. package/dist/commands/agents/agents.command.js +333 -21
  11. package/dist/commands/agents/agents.command.js.map +1 -1
  12. package/dist/commands/chat/chat.command.d.ts +7 -0
  13. package/dist/commands/chat/chat.command.js +64 -0
  14. package/dist/commands/chat/chat.command.js.map +1 -0
  15. package/dist/commands/evaluate/evaluate.command.d.ts +28 -0
  16. package/dist/commands/evaluate/evaluate.command.js +197 -0
  17. package/dist/commands/evaluate/evaluate.command.js.map +1 -0
  18. package/dist/commands/mcp/mcp.command.d.ts +17 -0
  19. package/dist/commands/mcp/mcp.command.js +109 -0
  20. package/dist/commands/mcp/mcp.command.js.map +1 -0
  21. package/dist/commands/plan/index.d.ts +2 -0
  22. package/dist/commands/plan/index.js +133 -0
  23. package/dist/commands/plan/index.js.map +1 -0
  24. package/dist/commands/satellite/index.d.ts +2 -0
  25. package/dist/commands/satellite/index.js +8 -0
  26. package/dist/commands/satellite/index.js.map +1 -0
  27. package/dist/commands/satellite/satellite-adopt.command.d.ts +21 -0
  28. package/dist/commands/satellite/satellite-adopt.command.js +193 -0
  29. package/dist/commands/satellite/satellite-adopt.command.js.map +1 -0
  30. package/dist/commands/satellite/satellite-create.command.d.ts +26 -0
  31. package/dist/commands/satellite/satellite-create.command.js +192 -0
  32. package/dist/commands/satellite/satellite-create.command.js.map +1 -0
  33. package/dist/commands/upgrade/upgrade.command.d.ts +12 -4
  34. package/dist/commands/upgrade/upgrade.command.js +139 -19
  35. package/dist/commands/upgrade/upgrade.command.js.map +1 -1
  36. package/dist/commands/validate/validate.command.js +17 -3
  37. package/dist/commands/validate/validate.command.js.map +1 -1
  38. package/dist/infrastructure/agent/agent-runtime.factory.d.ts +9 -0
  39. package/dist/infrastructure/agent/agent-runtime.factory.js +47 -0
  40. package/dist/infrastructure/agent/agent-runtime.factory.js.map +1 -0
  41. package/dist/infrastructure/cli/command-executor.d.ts +1 -0
  42. package/dist/infrastructure/cli/command-executor.js +16 -0
  43. package/dist/infrastructure/cli/command-executor.js.map +1 -1
  44. package/dist/infrastructure/cli/providers/index.js +32 -29
  45. package/dist/infrastructure/cli/providers/index.js.map +1 -1
  46. package/dist/main.js +12 -1
  47. package/dist/main.js.map +1 -1
  48. package/package.json +8 -5
  49. package/dist/commands/init/agents.command.d.ts +0 -24
  50. package/dist/commands/init/agents.command.js +0 -330
  51. package/dist/commands/init/agents.command.js.map +0 -1
  52. package/dist/commands/init/upgrade.command.d.ts +0 -22
  53. package/dist/commands/init/upgrade.command.js +0 -178
  54. package/dist/commands/init/upgrade.command.js.map +0 -1
  55. package/dist/commands/mcp/mcp-serve.command.d.ts +0 -17
  56. package/dist/commands/mcp/mcp-serve.command.js +0 -153
  57. package/dist/commands/mcp/mcp-serve.command.js.map +0 -1
  58. package/dist/commands/upgrade/index.d.ts +0 -1
  59. package/dist/commands/upgrade/index.js +0 -6
  60. package/dist/commands/upgrade/index.js.map +0 -1
package/README.es.md CHANGED
@@ -1,298 +1,1040 @@
1
- # Evolith CLI
1
+ # @evolith/smart-cli
2
2
 
3
- Interfaz de línea de comandos para gobernanza, validación de estándares e integración con agentes IA.
3
+ Interfaz de línea de comandos para Evolith — gobernanza, validación de estándares, scaffolding de arquitectura, gestión del ciclo de vida SDLC e integración con agentes IA.
4
4
 
5
- ## Características
5
+ ## Visión General
6
6
 
7
- - **Gobernanza**: Gestión de ADR, seguimiento de estándares, instalación de agentes
8
- - **Validación**: Cumplimiento del repositorio contra los estándares de Evolith
9
- - **Integración IA**: Servidor MCP para llamadas de herramientas de agentes IA
10
- - **Observabilidad**: Logging estructurado, métricas, reporte de errores
7
+ SmartCLI es el punto de entrada principal al ecosistema Evolith. Conecta tres capas:
11
8
 
12
- ## Instalación
9
+ ```
10
+ repositorio satélite
11
+
12
+
13
+ smart-cli ──────── evolith.yaml (configuración)
14
+
15
+ ├── Evolith Core (rulesets, ADRs, estándares, evidencia de gates)
16
+
17
+ └── Servidor MCP ──── Agentes IA (Cursor, Claude Desktop, propios)
18
+ ```
19
+
20
+ ## Arquitecturas Soportadas
13
21
 
14
- El CLI se publica en npm registry y es compatible con todos los gestores de paquetes JavaScript.
22
+ Evolith Core define **8 topologías de arquitectura** a través de dimensiones complementarias. Cualquier comando que acepte `--topology` las referencia por su id canónico:
15
23
 
16
- ### npm
24
+ | Topología (id) | Nombre | Dimensión |
25
+ |---------------|------|-----------|
26
+ | `modular-monolith` | Monolito Modular | eje progresivo |
27
+ | `distributed-modules` | Módulos Distribuidos | eje progresivo |
28
+ | `microservices` | Microservicios | eje progresivo |
29
+ | `serverless` | Serverless | ejecución |
30
+ | `edge-computing` | Edge Computing | ejecución |
31
+ | `event-driven` | Orientada a Eventos | integración |
32
+ | `data-mesh` | Data Mesh | datos |
33
+ | `agentic-ai` | Agentic AI | ia |
34
+
35
+ El **eje progresivo** (`modular-monolith → distributed-modules → microservices`) es una progresión lineal de madurez gestionada por el comando `upgrade`. Las demás dimensiones (ejecución, integración, datos, ia) son complementarias y se eligen según las necesidades del proyecto.
36
+
37
+ > **Legado `F1/F2/F3`:** versiones anteriores usaban `--arch F1|F2|F3` mapeando al eje progresivo (`F1 = modular-monolith`, `F2 = distributed-modules`, `F3 = microservices`). Estos flags están **deprecados** — usa `--topology <id>` con los ids canónicos anteriores. (Las antiguas etiquetas "Microfrontend / Microfrontend Distribuido" son obsoletas y ya no reflejan el corpus.)
38
+
39
+ ## Instalación
17
40
 
18
41
  ```bash
19
42
  npm install -g @evolith/smart-cli
20
43
  ```
21
44
 
22
- ### pnpm
23
-
24
45
  ```bash
25
46
  pnpm add -g @evolith/smart-cli
26
47
  ```
27
48
 
28
- ### yarn
29
-
30
49
  ```bash
31
50
  yarn global add @evolith/smart-cli
32
51
  ```
33
52
 
34
- ### Binario Manual
53
+ O descarga el binario desde [GitHub Releases](https://github.com/beyondnetcode/evolith_arch32/releases) y agrégalo a tu PATH.
35
54
 
36
- Descarga el binario más reciente desde [GitHub Releases](https://github.com/beyondnetcode/evolith_arch32/releases) y agrégalo a tu PATH.
37
-
38
- ### Verificar Instalación
55
+ ### Verificar
39
56
 
40
57
  ```bash
41
58
  smart-cli --version
42
- # smart-cli version 1.1.0
59
+ # 1.1.4
43
60
  ```
44
61
 
45
62
  ### Solución de Problemas
46
63
 
47
- **Errores de permisos en macOS/Linux:**
64
+ **EACCES en macOS/Linux:**
48
65
  ```bash
49
- # Si obtienes errores EACCES, intenta:
50
66
  sudo npm install -g @evolith/smart-cli --unsafe-perm
51
67
  ```
52
68
 
53
- **Usando nvm (Node Version Manager):**
69
+ **nvm binario no encontrado tras instalar:**
54
70
  ```bash
55
- # Asegúrate de que el path global esté en PATH
56
71
  export PATH=$(npm config get prefix)/bin:$PATH
57
72
  ```
58
73
 
59
- ## Inicio Rápido
74
+ **`WORKSPACE_ROOT` (opcional):** la CLI incluye un workflow SDLC por defecto, así que funciona sin configurar nada. Define `WORKSPACE_ROOT` apuntando a la raíz de un checkout solo si quieres sobreescribir el workflow/rulesets desde disco (`$WORKSPACE_ROOT/rulesets/sdlc/default-workflow.yaml`).
75
+
76
+ ### Variables de entorno
60
77
 
61
- ### 1. Inicializar un Repositorio
78
+ La CLI funciona sin configuración. Las siguientes variables son overrides opcionales. Las marcadas *(MCP)* las lee únicamente el paquete incluido `@evolith/mcp-server` mientras `smart-cli mcp serve` está en ejecución.
79
+
80
+ | Variable | Leída por | Propósito |
81
+ |---|---|---|
82
+ | `EVOLITH_PROFILE` | CLI | Selecciona el perfil con nombre activo (valores por defecto por entorno) en lugar de `default`. |
83
+ | `EVOLITH_API_KEY` | CLI / MCP | API key para el transporte HTTP del MCP (equivalente a `--api-key`); requerida en modo HTTP de producción. |
84
+ | `PORT` | CLI / MCP | Puerto HTTP por defecto para `mcp serve --transport http` cuando se omite `--port` (por defecto `3000`). |
85
+ | `OTEL_ENABLED` | CLI | Cuando es `true`, habilita la exportación de trazas OpenTelemetry desde la CLI. |
86
+ | `WORKSPACE_ROOT` | Core | Raíz del checkout para sobreescribir el workflow/rulesets incluidos desde disco (ver arriba). |
87
+ | `MCP_HTTP_HOST` *(MCP)* | MCP | Host de enlace para el transporte HTTP (por defecto `0.0.0.0`; usa `127.0.0.1` para acceso local). |
88
+ | `JWT_SECRET` *(MCP)* | MCP | Secreto HS256 que habilita la autenticación JWT bearer opcional en el transporte HTTP. |
89
+ | `LOG_LEVEL` *(MCP)* | MCP | Nivel de detalle de logs del servidor MCP (por defecto `info`). |
90
+ | `NODE_ENV` *(MCP)* | MCP | `production` fuerza el comportamiento fail-closed de auth/policy en el servidor MCP. |
91
+
92
+ ## Inicio Rápido
62
93
 
63
94
  ```bash
64
- cd tu-proyecto
95
+ # 1. Sembrar un proyecto demo para explorar la CLI
96
+ smart-cli fixtures --type demo
97
+
98
+ # 2. Inicializar un repositorio real
65
99
  smart-cli init
100
+
101
+ # 3. Generar la documentación base
102
+ smart-cli docs
103
+
104
+ # 4. Validar cumplimiento
105
+ smart-cli validate
106
+
107
+ # 5. Scaffolding de arquitectura (fase 1)
108
+ smart-cli scaffold --phase 1
109
+
110
+ # 6. Conectar un agente IA
111
+ smart-cli mcp serve
66
112
  ```
67
113
 
68
- Esto crea un archivo `evolith.yaml` con la configuración por defecto.
114
+ ---
115
+
116
+ ## Comandos
69
117
 
70
- ### 2. Ejecutar la Primera Validación
118
+ ### init
119
+
120
+ Inicializa un repositorio satélite con selección interactiva de herramientas. Crea `evolith.yaml` y la estructura del proyecto.
71
121
 
72
122
  ```bash
73
- smart-cli validate
123
+ smart-cli init [opciones]
124
+
125
+ Opciones:
126
+ -d, --dry-run Ejecuta sin escribir archivos
127
+ -c, --config <ruta> Ruta a evolith.setup.json para modo batch
128
+ -r, --runtime <id> Runtime: nodejs, dotnet, python
129
+ -m, --monorepo <id> Estrategia monorepo: none, nx, npm-workspaces, rush
130
+ -a, --arch <id> Patrón de arquitectura: clean, hexagonal, ddd
131
+ --db <id> Base de datos: postgresql, mongodb, sqlserver
74
132
  ```
75
133
 
76
- Salida:
134
+ **Ejemplos:**
135
+
136
+ ```bash
137
+ # Wizard interactivo
138
+ smart-cli init
139
+
140
+ # Modo batch (no interactivo)
141
+ smart-cli init --config evolith.setup.json
142
+
143
+ # Previsualizar sin escribir
144
+ smart-cli init --dry-run
77
145
  ```
78
- ✓ Validando repositorio...
79
- El repositorio cumple con los estándares de Evolith
146
+
147
+ Tras completar `init`, la CLI imprime los siguientes pasos sugeridos, incluyendo `validate`, `agents --install` y `sdlc handoff`.
148
+
149
+ ---
150
+
151
+ ### init-wizard
152
+
153
+ Una alternativa totalmente guiada, paso a paso, a `init` que recorre nombre del proyecto, runtime, estrategia de monorepo y patrón de arquitectura con prompts interactivos. Úsalo para una configuración inicial asistida; usa `init` (con flags o `--config`) para ejecuciones automatizadas o no interactivas.
154
+
155
+ ```bash
156
+ smart-cli init-wizard [opciones]
157
+
158
+ Opciones:
159
+ --no-wizard Usa el flujo estándar de init en lugar del asistente
160
+ --no-interactive Ejecuta en modo no interactivo (CI/automatización)
80
161
  ```
81
162
 
82
- ### 3. Instalar un Agente
163
+ ---
164
+
165
+ ### docs
166
+
167
+ Genera los archivos de documentación base que Evolith requiere en el directorio actual.
168
+
169
+ Archivos creados por defecto:
170
+ - `README.md` — plantilla de visión general del proyecto
171
+ - `AGENTS.md` — configuración y reglas de agentes IA
172
+ - `MASTER_INDEX.md` — índice de documentación
173
+ - `.evolith/evolith.yaml` — configuración de Evolith
83
174
 
84
175
  ```bash
85
- smart-cli agents install
86
- # Seleccionar la plantilla "standard" cuando se solicite
176
+ smart-cli docs [opciones]
177
+
178
+ Opciones:
179
+ -d, --dry-run Previsualiza archivos sin escribir
180
+ -f, --force Sobreescribe archivos existentes
181
+ -t, --template <tipo> Tipo de plantilla: default (los 4 archivos), minimal (solo README + AGENTS)
182
+ --format <formato> Formato de salida: json (envelope ADR-0073) o human (por defecto)
87
183
  ```
88
184
 
89
- ## Comandos
185
+ **Ejemplos:**
186
+
187
+ ```bash
188
+ # Generar toda la documentación
189
+ smart-cli docs
190
+
191
+ # Previsualizar lo que se crearía
192
+ smart-cli docs --dry-run
193
+
194
+ # Scaffold mínimo
195
+ smart-cli docs --template minimal
196
+
197
+ # Forzar sobreescritura y emitir envelope JSON
198
+ smart-cli docs --force --format json
199
+ ```
200
+
201
+ ---
90
202
 
91
203
  ### validate
92
204
 
93
- Valida el cumplimiento del repositorio contra los estándares de Evolith.
205
+ Valida el cumplimiento del repositorio contra los estándares de Evolith. Soporta múltiples motores, rulesets, topologías y fases SDLC.
94
206
 
95
207
  ```bash
96
208
  smart-cli validate [opciones]
97
209
 
98
210
  Opciones:
99
- --satellite <ruta> Ruta al repositorio satélite (por defecto: cwd)
100
- --core <ruta> Ruta a Evolith Core
101
- --format <formato> Formato de salida: json, table, yaml, markdown
102
- --output <archivo> Escribir salida a archivo
103
- --ruleset <id> Validar ruleset específico (acl, open-core, inheritance)
104
- --engine <engine> Motor de evaluación de políticas: native u opa (por defecto: native)
211
+ -s, --satellite <ruta> Ruta al repositorio satélite (por defecto: cwd)
212
+ -c, --core <ruta> Ruta a Evolith Core (por defecto: auto-detect)
213
+ -f, --format <formato> Formato de salida: json, table, yaml, markdown (por defecto: markdown)
214
+ -o, --output <archivo> Escribe la salida a un archivo
215
+ -r, --ruleset <id> Valida un ruleset específico (ver tabla abajo)
216
+ -e, --engine <motor> Motor de validación: native (por defecto) u opa
217
+ -t, --topology <id> Topología a validar por id canónico, p. ej. modular-monolith,
218
+ microservices, serverless, event-driven, agentic-ai (repetible).
219
+ Los alias legacy F1/F2/F3 siguen mapeando al eje progresivo.
220
+ -m, --manifest <ruta> SatelliteManifest JSON para evaluación end-to-end (pipeline GT-281)
221
+ -p, --phase <fase> Fase SDLC a evaluar: discovery, design, construction, qa, release (legacy f1..f5 deprecado; activa pipeline GT-281)
222
+ --adr <id> Validar contra un conjunto de reglas ADR específico
223
+ --file <ruta> Validar un solo archivo (modo ad-hoc)
224
+ --composable Usar el motor composable GT-312 con resolución inteligente de modos
105
225
  ```
106
226
 
107
- **Evaluación de Políticas Dual-Engine:**
108
- La CLI soporta la evaluación de políticas utilizando el motor integrado en TypeScript (`native`) o módulos WebAssembly de Open Policy Agent (`opa`). Ver [Core ADR-0041](../../reference/architecture/adrs/core/0041-dual-engine-policy-evaluation.es.md) para más detalles.
227
+ **Rulesets disponibles (`--ruleset`):**
228
+
229
+ | ID | Valida |
230
+ |----|-----------|
231
+ | `acl` | Reglas de la capa de control de acceso |
232
+ | `open-core` | Límites de módulos open-core |
233
+ | `inheritance` | Contratos de herencia y extensión |
234
+ | `cli-release` | Preparación de release de la CLI |
235
+ | `cli-parity` | Paridad de comandos CLI entre versiones |
236
+ | `evidence` | Completitud de artefactos de evidencia de gates |
237
+ | `mcp` | Cumplimiento del contrato del servidor MCP |
238
+ | `observability` | Cobertura de logging, métricas y trazas |
239
+ | `adr-0002` | Reglas específicas de ADR-0002 |
240
+
241
+ El enum `rulesets` de `reference/config/evolith.config.schema.json` reconoce además: `satellite-contracts`, `executive-scorecards`, `compliance-baseline`, `definition-of-done`, `engineering-manifesto`, `repository-taxonomy`, `phase-gates`, `quality-thresholds` y `dependency-pinning`. Son valores de configuración válidos aunque los atajos `--ruleset` de arriba cubran el conjunto del día a día.
242
+
243
+ **Reglas ADR disponibles (`--adr`):** `adr-0002`, `adr-0005`, `adr-0010`, `adr-0018`, `adr-0032`, `adr-0040`, `adr-0050`
244
+
245
+ **Motores de validación:**
246
+ - `native` — motor TypeScript integrado (por defecto, sin dependencias externas)
247
+ - `opa` — módulos WebAssembly de Open Policy Agent
248
+
249
+ **Motor composable (GT-312):**
250
+ Cuando se activa `--composable`, la CLI resuelve automáticamente qué modos de validación activar según el contexto proporcionado:
251
+ - `SdlcValidationMode` — se activa cuando hay `--phase`
252
+ - `ArchitectureValidationMode` — se activa cuando hay `--topology`
253
+ - `RulesetValidationMode` — se activa cuando hay `--ruleset`
254
+ - `AdrValidationMode` — se activa cuando hay `--adr`
255
+ - `AdhocValidationMode` — se activa cuando hay `--file`
256
+
257
+ **Códigos de salida:** `validate` sale con `0` cuando el repositorio pasa (incluido el estado `warning`) y con `1` cuando el estado del resultado es `failed`. Los comandos `gate`, `phase advance` y `scaffold` también salen con `1` ante un fallo, y cualquier error no controlado durante el arranque de la CLI sale con `1`. Esto hace que la CLI sea segura para condicionar pipelines de CI. En `--format json`, el detalle del fallo viaja en el sobre ADR-0073 en lugar de imprimirse como texto.
109
258
 
110
259
  **Ejemplos:**
111
260
 
112
261
  ```bash
113
- # Validación básica
262
+ # Chequeo básico de cumplimiento
114
263
  smart-cli validate
115
264
 
116
- # Salida JSON para automatización
117
- smart-cli validate --format json
265
+ # Salida JSON para CI
266
+ smart-cli validate --format json --output report.json
118
267
 
119
- # Salida en tabla para humanos
120
- smart-cli validate --format table
268
+ # Validar una sola topología
269
+ smart-cli validate --topology microservices
270
+
271
+ # Validar múltiples topologías
272
+ smart-cli validate --topology modular-monolith --topology event-driven
273
+
274
+ # Validar un ruleset específico
275
+ smart-cli validate --ruleset evidence
121
276
 
122
- # Validar ruleset específico
123
- smart-cli validate --ruleset acl
277
+ # Evaluación completa de fase SDLC (pipeline GT-281)
278
+ smart-cli validate --phase discovery
279
+
280
+ # Validar con un SatelliteManifest
281
+ smart-cli validate --manifest ./satellite-manifest.json --phase design
282
+
283
+ # Validación ad-hoc de un archivo
284
+ smart-cli validate --file src/domain/user.entity.ts --composable
285
+
286
+ # Motor OPA
287
+ smart-cli validate --engine opa --ruleset acl
124
288
  ```
125
289
 
290
+ ---
291
+
126
292
  ### adr
127
293
 
128
- Gestionar Registros de Decisiones de Arquitectura.
294
+ Gestiona Architecture Decision Records.
129
295
 
130
296
  ```bash
131
- smart-cli adr <comando>
297
+ smart-cli adr [opciones]
132
298
 
133
- Comandos:
134
- create Crear nuevo ADR
135
- list Listar todos los ADR
136
- get Mostrar detalles del ADR
137
- update Actualizar ADR existente
138
- matrix Mostrar matriz de ADR
299
+ Opciones:
300
+ -c, --create Crear un nuevo ADR (interactivo)
301
+ -l, --list Listar todos los ADRs
302
+ -g, --get <id> Mostrar un ADR específico
303
+ -u, --update <id> Actualizar el estado de un ADR
304
+ -s, --status <estado> Nuevo estado: Accepted, Deprecated, Superseded, Amended
305
+ -r, --reason <texto> Razón del cambio de estado
306
+ -m, --matrix Mostrar el resumen de la matriz de ADRs
307
+ -d, --dry-run Previsualizar sin escribir archivos
139
308
  ```
140
309
 
141
310
  **Ejemplos:**
142
311
 
143
312
  ```bash
144
- # Crear nuevo ADR
145
- smart-cli adr create
313
+ # Creación interactiva
314
+ smart-cli adr --create
315
+
316
+ # Listar todos
317
+ smart-cli adr --list
146
318
 
147
- # Listar todos los ADR
148
- smart-cli adr list
319
+ # Mostrar un ADR específico
320
+ smart-cli adr --get ADR-0002
149
321
 
150
- # Obtener ADR específico
151
- smart-cli adr get ADR-0002
322
+ # Actualizar estado
323
+ smart-cli adr --update ADR-0005 --status Accepted --reason "Aprobado en revisión de diseño"
324
+
325
+ # Mostrar matriz
326
+ smart-cli adr --matrix
152
327
  ```
153
328
 
329
+ ---
330
+
154
331
  ### standards
155
332
 
156
- Gestionar estándares de gobernanza.
333
+ Gestiona los estándares de gobernanza de Evolith (arquitectura, gobernanza, operaciones).
157
334
 
158
335
  ```bash
159
- smart-cli standards <comando>
336
+ smart-cli standards [opciones]
160
337
 
161
- Comandos:
162
- init Inicializar directorio de estándares
163
- list Listar todos los estándares
164
- get Mostrar detalles del estándar
165
- validate Validar contra estándares
166
- export Exportar estándar a markdown/json
338
+ Opciones:
339
+ --init Inicializar la estructura de directorios de standards
340
+ -l, --list Listar todos los standards
341
+ -g, --get <id> Mostrar un standard específico
342
+ -v, --validate <code> Validar código contra los standards
343
+ -e, --export <id> Exportar un standard
344
+ -f, --format <formato> Formato de exportación: markdown, json
345
+ -c, --category <id> Filtrar por categoría
167
346
  ```
168
347
 
169
348
  **Ejemplos:**
170
349
 
171
350
  ```bash
172
- # Inicializar estándares
173
- smart-cli standards init
351
+ # Inicializar
352
+ smart-cli standards --init
174
353
 
175
- # Listar estándares
176
- smart-cli standards list
354
+ # Listar todos los standards
355
+ smart-cli standards --list
356
+
357
+ # Filtrar por categoría
358
+ smart-cli standards --list --category governance
359
+
360
+ # Exportar como markdown
361
+ smart-cli standards --export STD-001 --format markdown
177
362
  ```
178
363
 
364
+ ---
365
+
179
366
  ### agents
180
367
 
181
- Instalar y gestionar agentes de Evolith.
368
+ Gestiona los agentes BMAD de Evolith — instala, lista y elimina agentes de gobernanza en el repositorio satélite.
182
369
 
183
370
  ```bash
184
- smart-cli agents <comando>
371
+ smart-cli agents [opciones]
185
372
 
186
- Comandos:
187
- install Instalar nuevo agente
188
- list Listar agentes instalados
189
- remove Eliminar agente
190
- validate Validar ruleset del agente
191
- upgrade Actualizar agente
373
+ Opciones:
374
+ -l, --list Listar agentes instalados
375
+ -i, --install [name] Instalar un agente nombrado (interactivo si se omite el nombre)
376
+ -r, --remove [name] Eliminar un agente instalado
377
+ -d, --dry-run Previsualizar sin hacer cambios
192
378
  ```
193
379
 
380
+ **Plantillas de agente disponibles:**
381
+
382
+ | Plantilla | Descripción |
383
+ |---|---|
384
+ | `standard` | Agente por defecto con reglas básicas de gobernanza (ACL-01 a ACL-06) |
385
+ | `minimal` | Agente ligero solo con reglas esenciales |
386
+ | `full-compliance` | Agente de cumplimiento completo con audit trail y cadenas de aprobación |
387
+
194
388
  **Ejemplos:**
195
389
 
196
390
  ```bash
391
+ # Listar agentes instalados
392
+ smart-cli agents --list
393
+
197
394
  # Instalación interactiva
198
- smart-cli agents install
395
+ smart-cli agents --install
396
+
397
+ # Instalar una plantilla específica
398
+ smart-cli agents --install standard
399
+ smart-cli agents --install full-compliance
400
+
401
+ # Previsualizar instalación sin escribir
402
+ smart-cli agents --install standard --dry-run
403
+
404
+ # Eliminar un agente
405
+ smart-cli agents --remove minimal
406
+ ```
407
+
408
+ ---
409
+
410
+ ### scaffold
411
+
412
+ Genera la arquitectura de Evolith en el workspace actual **a lo largo del eje progresivo** — fase 1 (`modular-monolith`), fase 2 (`distributed-modules`) y fase 3 (`microservices`). Las fases 2–3 se generan como un host + remotes de Module Federation (microfrontends), con frameworks de frontend, ORMs y nombres de dominio configurables. (`F1/F2/F3` siguen aceptándose como alias legacy de las fases 1/2/3.)
413
+
414
+ ```bash
415
+ smart-cli scaffold [opciones]
416
+
417
+ Opciones:
418
+ --frontend <framework> Framework frontend: react, angular
419
+ --orm <orm> ORM: prisma, typeorm
420
+ -d, --dry-run Previsualizar sin escribir archivos
421
+ -f, --format <formato> Formato de salida: json (envelope ADR-0073) o human (por defecto)
422
+ --phase <fase> Fase de arquitectura: 1 (F1), 2 (F2), 3 (F3) — requerida con --format json
423
+ --api-name <name> Nombre de la app backend (por defecto: tracker-api)
424
+ --web-app-name <name> Nombre de la web app para fase 1 (por defecto: tracker-web)
425
+ --host-name <name> Nombre de la app host para fase 2/3 (por defecto: tracker-host)
426
+ --remotes <names> Nombres de remotes separados por comas para fase 2/3
427
+ --domains <names> Nombres de dominio separados por comas a generar
428
+ ```
429
+
430
+ **Ejemplos:**
199
431
 
200
- # Listar agentes
201
- smart-cli agents list
432
+ ```bash
433
+ # Scaffold de fase 1 (Monolito Modular) interactivo
434
+ smart-cli scaffold
435
+
436
+ # Scaffold de fase 1 con React + Prisma, dry run
437
+ smart-cli scaffold --phase 1 --frontend react --orm prisma --dry-run
438
+
439
+ # Scaffold de fase 2 (Microfrontend) con nombres personalizados
440
+ smart-cli scaffold --phase 2 --host-name shell-app --remotes catalog,checkout
441
+
442
+ # Scaffold de fase 3 con dominios personalizados y salida JSON
443
+ smart-cli scaffold --phase 3 --domains orders,payments,users --format json
444
+
445
+ # Generar solo dominios específicos
446
+ smart-cli scaffold --domains auth,notifications
447
+ ```
448
+
449
+ ---
450
+
451
+ ### drift
452
+
453
+ Detecta drift de arquitectura entre el nivel de topología declarado y la estructura real del código. Guarda histórico para análisis de tendencias.
454
+
455
+ ```bash
456
+ smart-cli drift [opciones]
457
+
458
+ Opciones:
459
+ -p, --path <ruta> Ruta del proyecto a analizar (por defecto: cwd)
460
+ -l, --level <nivel> Nivel de arquitectura declarado: F1, F2, F3
461
+ --json Salida como JSON crudo
462
+ --history Mostrar el histórico de escaneos de drift
463
+ --trend Mostrar el análisis de tendencia de drift (mejorando / estable / degradando)
464
+ -f, --format <fmt> Formato de salida: json (envelope ADR-0073) o human (por defecto)
465
+ ```
466
+
467
+ El reporte de drift incluye:
468
+ - **Nivel declarado** vs **nivel detectado**
469
+ - **Score general** (0–100%)
470
+ - **Severidad del drift**: critical, high, medium, low, none
471
+ - **Violaciones nuevas** — introducidas desde el último escaneo
472
+ - **Violaciones persistentes** — no resueltas a través de varios escaneos
473
+ - **Violaciones resueltas** — corregidas desde el último escaneo
474
+
475
+ **Ejemplos:**
476
+
477
+ ```bash
478
+ # Detectar drift (auto-detecta el nivel declarado desde evolith.yaml)
479
+ smart-cli drift
480
+
481
+ # Especificar el nivel declarado explícitamente
482
+ smart-cli drift --level F2
483
+
484
+ # Analizar una ruta de proyecto diferente
485
+ smart-cli drift --path ../my-satellite
486
+
487
+ # Mostrar escaneos históricos
488
+ smart-cli drift --history
489
+
490
+ # Mostrar tendencia (requiere al menos 2 escaneos previos)
491
+ smart-cli drift --trend
492
+
493
+ # Salida JSON para CI
494
+ smart-cli drift --format json
495
+ ```
496
+
497
+ ---
498
+
499
+ ### gate
500
+
501
+ Evalúa los phase gates SDLC y emite artefactos `GateEvidence` ADR-0073. Soporta entrega por webhook y contextos multi-actor.
502
+
503
+ ```bash
504
+ smart-cli gate <acción> [opciones]
505
+
506
+ Acciones:
507
+ evaluate Evaluar gates para la fase indicada
508
+
509
+ Opciones:
510
+ -p, --phase <fase> Fase SDLC: discovery, design, construction, qa, release
511
+ --project <ruta> Ruta del proyecto satélite (por defecto: cwd)
512
+ -c, --core <ruta> Ruta a Evolith Core (por defecto: auto-detect)
513
+ -f, --format <formato> Formato de salida: json (envelope ADR-0073) o human (por defecto)
514
+ --evaluated-by <actor> Clase de actor: human (por defecto), agent, ci
515
+ --initiative <id> Contexto de iniciativa — reflejado en meta.context
516
+ --tenant <id> Contexto de tenant — reflejado en meta.context
517
+ --webhook-url <url> POST de la evidencia del gate a esta URL al completar
518
+ ```
519
+
520
+ **Ejemplos:**
521
+
522
+ ```bash
523
+ # Evaluar gates de la fase design
524
+ smart-cli gate evaluate --phase design
525
+
526
+ # Evaluación CI con salida JSON
527
+ smart-cli gate evaluate --phase construction --evaluated-by ci --format json
528
+
529
+ # Evaluación dirigida por agente con entrega por webhook
530
+ smart-cli gate evaluate --phase qa --evaluated-by agent --webhook-url https://ci.example.com/hooks/evolith
531
+
532
+ # Contexto multi-tenant
533
+ smart-cli gate evaluate --phase release --tenant acme --initiative Q3-launch
534
+ ```
535
+
536
+ ---
537
+
538
+ ### phase
539
+
540
+ Propone una transición entre fases SDLC. Emite un artefacto de propuesta de transición.
541
+
542
+ ```bash
543
+ smart-cli phase advance [opciones]
544
+
545
+ Opciones:
546
+ --from <fase> Fase SDLC actual
547
+ --to <fase> Fase SDLC objetivo
548
+ --project <ruta> Ruta del proyecto satélite (por defecto: cwd)
549
+ -c, --core <ruta> Ruta a Evolith Core (por defecto: auto-detect)
550
+ -f, --format <formato> Formato de salida: json (envelope ADR-0073) o human (por defecto)
551
+ --evaluated-by <actor> Clase de actor: human, agent (por defecto), ci
552
+ --initiative <id> Contexto de iniciativa — reflejado en meta.context
553
+ --tenant <id> Contexto de tenant — reflejado en meta.context
554
+ --webhook-url <url> POST de la propuesta de transición a esta URL
202
555
  ```
203
556
 
557
+ **Ejemplos:**
558
+
559
+ ```bash
560
+ # Proponer avanzar de design a construction
561
+ smart-cli phase advance --from design --to construction
562
+
563
+ # Dirigido por agente con salida JSON
564
+ smart-cli phase advance --from construction --to qa --evaluated-by agent --format json
565
+
566
+ # Con webhook y contexto de tenant
567
+ smart-cli phase advance --from qa --to release --webhook-url https://ci.example.com/hooks/evolith --tenant acme
568
+ ```
569
+
570
+ ---
571
+
572
+ ### sdlc
573
+
574
+ Comando padre que orquesta los artefactos SDLC y las transiciones del ciclo de vida. Ejecútalo sin subcomando para ver los subcomandos disponibles.
575
+
576
+ ```bash
577
+ smart-cli sdlc <subcomando>
578
+
579
+ Subcomandos:
580
+ handoff Transferir artefactos entre fases con flujo guiado interactivo
581
+ generate Generar scaffold de Arquitectura Hexagonal desde un archivo de modelo DDD
582
+ gate-status Mostrar el estado de validación de phase gates y métricas DORA
583
+ ```
584
+
585
+ #### sdlc handoff
586
+
587
+ Guía una transición de fase interactiva, valida gates y genera artefactos de evidencia.
588
+
589
+ ```bash
590
+ smart-cli sdlc handoff [opciones]
591
+
592
+ Opciones:
593
+ -f, --from <fase> Fase origen (phase-0, phase-1, etc.)
594
+ -t, --to <fase> Fase destino (phase-0, phase-1, etc.)
595
+ -a, --artifacts Generar artefactos de evidencia
596
+ --validate Validar los phase gates antes del handoff
597
+ --force Forzar el handoff aunque los gates fallen
598
+ ```
599
+
600
+ **Ejemplos:**
601
+
602
+ ```bash
603
+ # Wizard de handoff interactivo
604
+ smart-cli sdlc handoff
605
+
606
+ # Handoff de phase-0 a phase-1 con validación de gates
607
+ smart-cli sdlc handoff --from phase-0 --to phase-1 --validate
608
+
609
+ # Generar artefactos y forzar aunque los gates fallen
610
+ smart-cli sdlc handoff --from phase-1 --to phase-2 --artifacts --force
611
+ ```
612
+
613
+ #### sdlc generate
614
+
615
+ Genera un scaffold completo de Arquitectura Hexagonal leyendo un `classDiagram` de Mermaid desde un archivo de modelo DDD en Markdown.
616
+
617
+ ```bash
618
+ smart-cli sdlc generate [opciones]
619
+
620
+ Opciones:
621
+ -f, --from <ruta> Ruta al archivo Markdown que contiene el classDiagram de Mermaid
622
+ -o, --output <dir> Directorio destino para los archivos generados (por defecto: cwd)
623
+ --dry-run Imprimir lo que se generaría sin escribir archivos
624
+ ```
625
+
626
+ **Ejemplos:**
627
+
628
+ ```bash
629
+ # Generar desde un archivo de modelo DDD
630
+ smart-cli sdlc generate --from docs/domain-model.md
631
+
632
+ # Previsualizar sin escribir
633
+ smart-cli sdlc generate --from docs/domain-model.md --dry-run
634
+
635
+ # Salida a un directorio específico
636
+ smart-cli sdlc generate --from docs/domain-model.md --output src/domain
637
+ ```
638
+
639
+ El archivo de entrada debe contener un bloque Mermaid con cercado (fenced) que incluya un `classDiagram`. El generador crea entidades, value objects, repositorios, casos de uso y puertos siguiendo las convenciones de la arquitectura hexagonal.
640
+
641
+ #### sdlc gate-status
642
+
643
+ Muestra el estado actual de validación de phase gates SDLC junto con métricas DORA calculadas a partir del histórico de git.
644
+
645
+ ```bash
646
+ smart-cli sdlc gate-status [opciones]
647
+
648
+ Opciones:
649
+ --since <días> Días de histórico de git a analizar para las métricas DORA (por defecto: 90)
650
+ ```
651
+
652
+ Métricas DORA reportadas:
653
+ - **Deployment Frequency** — con qué frecuencia despliega el equipo a producción
654
+ - **Lead Time for Changes** — tiempo desde el commit hasta producción
655
+ - **Change Failure Rate** — porcentaje de despliegues que causan fallos
656
+ - **Time to Restore** — tiempo para recuperarse de un fallo en producción
657
+
658
+ **Ejemplos:**
659
+
660
+ ```bash
661
+ # Estado de gates con ventana DORA de 90 días
662
+ smart-cli sdlc gate-status
663
+
664
+ # Analizar solo los últimos 30 días
665
+ smart-cli sdlc gate-status --since 30
666
+ ```
667
+
668
+ ---
669
+
670
+ ### profile
671
+
672
+ Gestiona perfiles de CLI nombrados. Cada perfil guarda un conjunto de valores por defecto (ruta del satélite, ruta de core, tenant, iniciativa) que se aplican automáticamente a los comandos posteriores.
673
+
674
+ ```bash
675
+ smart-cli profile <acción> [opciones]
676
+
677
+ Acciones:
678
+ current Mostrar el perfil activo
679
+ list Listar todos los perfiles
680
+ create Crear un nuevo perfil
681
+ switch Cambiar a un perfil nombrado
682
+ delete Eliminar un perfil
683
+
684
+ Opciones:
685
+ -n, --name <name> Nombre del perfil (usado con create y switch)
686
+ ```
687
+
688
+ **Ejemplos:**
689
+
690
+ ```bash
691
+ # Mostrar el perfil actual
692
+ smart-cli profile current
693
+
694
+ # Listar todos los perfiles
695
+ smart-cli profile list
696
+
697
+ # Crear un perfil interactivamente
698
+ smart-cli profile create
699
+
700
+ # Crear con nombre
701
+ smart-cli profile create --name staging
702
+
703
+ # Cambiar de perfil
704
+ smart-cli profile switch --name staging
705
+
706
+ # Eliminar un perfil
707
+ smart-cli profile delete --name staging
708
+ ```
709
+
710
+ ---
711
+
712
+ ### fixtures
713
+
714
+ Siembra archivos de fixtures reproducibles para demos, tests y onboarding. El primer paso recomendado en cualquier entorno nuevo.
715
+
716
+ ```bash
717
+ smart-cli fixtures [tipo] [opciones]
718
+
719
+ Argumentos:
720
+ tipo Tipo de fixture (por defecto: demo)
721
+
722
+ Opciones:
723
+ -d, --dir <directorio> Directorio destino (por defecto: cwd)
724
+ -n, --dry-run Previsualizar archivos sin escribir
725
+ -t, --type <tipo> Tipo de fixture: demo, adr, ruleset, evolith, full
726
+ ```
727
+
728
+ **Tipos de fixture:**
729
+
730
+ | Tipo | Contenido |
731
+ |------|----------|
732
+ | `demo` | Proyecto de ejemplo con evolith.yaml y estructura demo |
733
+ | `adr` | Entradas ADR pre-pobladas |
734
+ | `ruleset` | Rulesets de ejemplo (dominio, naming, convenciones de archivos) |
735
+ | `evolith` | Archivos de configuración completos de Evolith |
736
+ | `full` | Todo lo anterior combinado |
737
+
738
+ **Ejemplos:**
739
+
740
+ ```bash
741
+ # Sembrar un proyecto demo (la forma más rápida de explorar la CLI)
742
+ smart-cli fixtures --type demo
743
+
744
+ # Previsualizar lo que se crearía
745
+ smart-cli fixtures --type full --dry-run
746
+
747
+ # Sembrar fixtures ADR en un directorio específico
748
+ smart-cli fixtures --type adr --dir ./reference/architecture/adrs
749
+ ```
750
+
751
+ ---
752
+
753
+ ### api
754
+
755
+ Navega e inspecciona la superficie de API de Evolith: herramientas MCP, recursos, schemas y comandos CLI.
756
+
757
+ ```bash
758
+ smart-cli api [opciones]
759
+
760
+ Opciones:
761
+ -l, --list Listar todas las operaciones de API disponibles
762
+ -i, --inspect <name> Inspeccionar una operación, recurso o comando específico
763
+ -c, --category <category> Filtrar por categoría: tools, resources, schemas, commands
764
+ ```
765
+
766
+ **Ejemplos:**
767
+
768
+ ```bash
769
+ # Listar todo
770
+ smart-cli api --list
771
+
772
+ # Filtrar solo herramientas MCP
773
+ smart-cli api --list --category tools
774
+
775
+ # Inspeccionar una herramienta específica
776
+ smart-cli api --inspect evolith-validate
777
+
778
+ # Inspeccionar el schema de un comando CLI
779
+ smart-cli api --inspect validate --category commands
780
+ ```
781
+
782
+ ---
783
+
784
+ ### update
785
+
786
+ Comprueba y aplica actualizaciones de la CLI.
787
+
788
+ ```bash
789
+ smart-cli update [opciones]
790
+
791
+ Opciones:
792
+ -c, --current Mostrar la versión instalada actual de la CLI
793
+ --check Comprobar actualizaciones disponibles sin instalar
794
+ -i, --install Instalar la última versión disponible
795
+ ```
796
+
797
+ **Ejemplos:**
798
+
799
+ ```bash
800
+ # Mostrar la versión actual
801
+ smart-cli update --current
802
+
803
+ # Comprobar actualizaciones
804
+ smart-cli update --check
805
+
806
+ # Instalar la última
807
+ smart-cli update --install
808
+ ```
809
+
810
+ ---
811
+
812
+ ### upgrade
813
+
814
+ Actualiza un repositorio satélite a la siguiente topología del eje progresivo o versión de gobernanza.
815
+
816
+ ```bash
817
+ smart-cli upgrade [opciones]
818
+
819
+ Opciones:
820
+ --dry-run Simular el upgrade sin hacer cambios
821
+ --target <target> Versión de gobernanza o topología objetivo (p. ej., F2, 1.1.0)
822
+ --force Saltar las comprobaciones de elegibilidad
823
+ ```
824
+
825
+ **Ejemplos:**
826
+
827
+ ```bash
828
+ # Previsualizar upgrade a la siguiente topología
829
+ smart-cli upgrade --dry-run
830
+
831
+ # Upgrade a F2
832
+ smart-cli upgrade --target F2
833
+
834
+ # Forzar upgrade ignorando las comprobaciones de elegibilidad
835
+ smart-cli upgrade --target F3 --force
836
+ ```
837
+
838
+ ---
839
+
840
+ ### alias
841
+
842
+ Gestiona alias abreviados para comandos de la CLI.
843
+
844
+ ```bash
845
+ smart-cli alias [opciones]
846
+
847
+ Opciones:
848
+ --add <alias=comando> Agregar un nuevo alias (formato: nombre=comando)
849
+ --remove <alias> Eliminar un alias
850
+ --list Listar todos los alias
851
+ ```
852
+
853
+ **Ejemplos:**
854
+
855
+ ```bash
856
+ # Agregar un alias
857
+ smart-cli alias --add "v=validate --format table"
858
+
859
+ # Listar alias
860
+ smart-cli alias --list
861
+
862
+ # Eliminar un alias
863
+ smart-cli alias --remove v
864
+ ```
865
+
866
+ ---
867
+
204
868
  ### history
205
869
 
206
- Ver y gestionar historial de comandos.
870
+ Visualiza y gestiona el histórico de ejecución de comandos de la CLI.
207
871
 
208
872
  ```bash
209
873
  smart-cli history [opciones]
210
874
 
211
875
  Opciones:
212
- --list Listar comandos recientes
213
- --get <id> Mostrar detalles del comando
214
- --search <consulta> Buscar comandos
215
- --stats Mostrar estadísticas
216
- --clear Limpiar historial
876
+ -l, --list Listar comandos recientes
877
+ -g, --get <id> Mostrar detalles del comando por ID
878
+ -s, --search <query> Buscar en el histórico
879
+ --stats Mostrar estadísticas del histórico
880
+ --clear Limpiar todo el histórico
881
+ -n, --limit <número> Número de entradas a mostrar (por defecto: 20)
882
+ --replay <id> Mostrar la cadena del comando de una entrada del histórico
217
883
  ```
218
884
 
219
885
  **Ejemplos:**
220
886
 
221
887
  ```bash
222
- # Mostrar últimos 20 comandos
888
+ # Mostrar los últimos 20 comandos
223
889
  smart-cli history
224
890
 
891
+ # Mostrar los últimos 50
892
+ smart-cli history --limit 50
893
+
894
+ # Buscar ejecuciones de validate
895
+ smart-cli history --search validate
896
+
225
897
  # Mostrar estadísticas
226
898
  smart-cli history --stats
227
899
 
228
- # Buscar comandos
229
- smart-cli history --search validate
900
+ # Limpiar histórico
901
+ smart-cli history --clear
230
902
  ```
231
903
 
904
+ ---
905
+
232
906
  ### completion
233
907
 
234
- Generar scripts de completado de shell.
908
+ Genera e instala scripts de autocompletado de shell. También provee funciones hook de shell para mostrar contexto y estado.
235
909
 
236
910
  ```bash
237
- smart-cli completion --install <shell>
911
+ smart-cli completion [opciones]
238
912
 
239
- Shells soportados: bash, zsh, fish
913
+ Opciones:
914
+ --install <shell> Instalar autocompletado para el shell indicado: bash, zsh, fish
915
+ --shell <shell> Generar script de autocompletado para el shell indicado (imprime a stdout)
916
+ --hooks Generar funciones hook de shell para contexto/estado
240
917
  ```
241
918
 
242
919
  **Ejemplos:**
243
920
 
244
921
  ```bash
245
- # Instalar completado bash
922
+ # Instalar autocompletado zsh
923
+ smart-cli completion --install zsh
924
+
925
+ # Instalar autocompletado bash
246
926
  smart-cli completion --install bash
247
927
 
248
- # Instalar completado zsh
249
- smart-cli completion --install zsh
928
+ # Instalar autocompletado fish
929
+ smart-cli completion --install fish
930
+
931
+ # Imprimir el script de autocompletado a stdout (para configuración manual)
932
+ smart-cli completion --shell zsh
933
+
934
+ # Generar funciones hook
935
+ smart-cli completion --hooks
250
936
  ```
251
937
 
252
- ## Servidor MCP (Integración con Agentes IA)
938
+ Los scripts pre-construidos también vienen incluidos en el paquete bajo `shell/`:
939
+ - `shell/completion.bash`
940
+ - `shell/completion.zsh`
941
+ - `shell/completion.fish`
942
+ - `shell/hooks.bash`
943
+ - `shell/hooks.zsh`
944
+
945
+ ---
946
+
947
+ ## Servidor MCP
253
948
 
254
- La CLI de Evolith incluye un servidor MCP para integración con agentes IA.
949
+ La CLI de Evolith incluye un servidor MCP listo para producción para la integración con agentes IA.
255
950
 
256
- ### Iniciar el Servidor MCP
951
+ > **Aviso de deprecación:** `smart-cli mcp` imprime una advertencia de deprecación al arrancar y será removido en una futura versión mayor. El servidor MCP ahora se distribuye como paquete independiente — migra a `@evolith/mcp-server` (`npx @evolith/mcp-server serve` o el binario `evolith-mcp serve`). El comando CLI sigue funcionando mientras tanto delegando de forma perezosa (lazy) en ese paquete.
952
+
953
+ ### Iniciar el Servidor
954
+
955
+ `mcp` acepta una acción posicional opcional que por defecto es `serve`, por lo que `smart-cli mcp` y `smart-cli mcp serve` son equivalentes.
257
956
 
258
957
  ```bash
958
+ # Transporte stdio (por defecto — para Cursor, Claude Desktop)
259
959
  smart-cli mcp serve
960
+
961
+ # Transporte HTTP (para despliegues remotos o en contenedor)
962
+ smart-cli mcp serve --transport http --port 3000
963
+
964
+ # HTTP con autenticación por API key
965
+ smart-cli mcp serve --transport http --port 3000 --api-key <secret>
260
966
  ```
261
967
 
262
- El servidor se comunica vía stdio JSON-RPC.
968
+ ```bash
969
+ smart-cli mcp [acción] [opciones]
970
+
971
+ Acciones:
972
+ serve Iniciar el servidor MCP (por defecto)
973
+ version Imprime un banner de versión estático del servidor MCP (no lee la versión del paquete @evolith/mcp-server)
263
974
 
264
- ### Smoke Test MCP
975
+ Opciones:
976
+ -t, --transport <stdio|http> Transporte: stdio (por defecto) o http
977
+ -p, --port <número> Puerto del servidor HTTP (por defecto: 3000, o $PORT)
978
+ --api-key <key> API key para autenticación del transporte HTTP (o $EVOLITH_API_KEY)
979
+ --no-confirm Saltar los prompts de confirmación
980
+ ```
265
981
 
266
- Usar el smoke test antes de releases o cambios de protocolo MCP:
982
+ ### Smoke Test
267
983
 
268
984
  ```bash
269
985
  npm run mcp:smoke
270
986
  ```
271
987
 
272
- El smoke verifica `initialize`, `tools/list`, `resources/list`, `prompts/list` y una llamada real `tools/call` mediante la CLI compilada.
988
+ Verifica `initialize`, `tools/list`, `resources/list`, `prompts/list` y un `tools/call` real de extremo a extremo a través de la CLI construida.
273
989
 
274
- También puedes iniciar en modo HTTP:
990
+ ### Herramientas MCP Disponibles
275
991
 
276
- ```bash
277
- smart-cli mcp serve --transport http --port 3000
278
- ```
992
+ El servidor incluido registra **27 herramientas**. El conjunto vigente y autoritativo siempre se puede explorar con `smart-cli api --list --category tools`; la tabla siguiente refleja el registro actual de `@evolith/mcp-server`.
279
993
 
280
- ### Herramientas MCP Disponibles
994
+ **Validación y arquitectura**
995
+
996
+ | Herramienta | Descripción |
997
+ |------|-------------|
998
+ | `evolith-validate` | Validar un repositorio satélite contra las reglas de Evolith (pipeline end-to-end vía manifest) |
999
+ | `evolith-composable-validate` | Validar con el motor composable (GT-312): modos SDLC, Architecture, Ruleset, ADR, Ad-hoc (combinables) |
1000
+ | `evolith-architecture-validate` | Validar la arquitectura contra la topología declarada con análisis profundo opcional |
1001
+ | `evolith-drift-detect` | Detectar drift de arquitectura en un repositorio |
1002
+ | `evolith-auto-fix` | Aplicar correcciones automáticas a violaciones arquitectónicas reportadas por los evaluadores de reglas de Core |
1003
+ | `evolith-topology-list` | Listar todas las topologías de arquitectura disponibles en Evolith Core |
1004
+ | `evolith-topology-get` | Obtener una topología de arquitectura específica por id |
1005
+
1006
+ **SDLC, gates y métricas**
1007
+
1008
+ | Herramienta | Descripción |
1009
+ |------|-------------|
1010
+ | `evolith-gate-evaluate` | Evaluar un phase gate SDLC específico |
1011
+ | `evolith-phase-advance` | Proponer una transición de fase SDLC evaluando los criterios de salida |
1012
+ | `evolith-sdlc-handoff` | Realizar un handoff de phase gate (p. ej. phase-0 → phase-1) |
1013
+ | `evolith-sdlc-status` | Obtener el estado actual de la fase SDLC |
1014
+ | `evolith-dora-metrics` | Calcular aproximaciones de métricas DORA desde el histórico de git |
1015
+ | `evolith-metrics` | Obtener métricas del servidor MCP (conteos de llamadas por herramienta, latencia, fallos) |
1016
+
1017
+ **Agentes**
281
1018
 
282
1019
  | Herramienta | Descripción |
283
- |-------------|-------------|
284
- | `evolith-validate` | Validar cumplimiento del repositorio |
285
- | `evolith-agent-install` | Instalar nuevo agente |
1020
+ |------|-------------|
1021
+ | `evolith-agent-install` | Instalar un nuevo agente BMAD |
286
1022
  | `evolith-agent-list` | Listar agentes instalados |
287
- | `evolith-agent-validate` | Validar ruleset del agente |
1023
+ | `evolith-agent-validate` | Validar un ruleset de agente |
288
1024
  | `evolith-agent-upgrade` | Actualizar un agente existente |
289
1025
  | `evolith-agent-remove` | Eliminar un agente |
290
- | `evolith-architecture-validate` | Validar arquitectura (F1/F2/F3) con análisis profundo opcional |
291
- | `evolith-sdlc-handoff` | Generar manifiesto de artefactos de transición de fase |
292
- | `evolith-sdlc-status` | Mostrar estado de phase gate SDLC |
293
- | `evolith-config-get` | Obtener valor de configuración de `evolith.yaml` |
294
- | `evolith-config-set` | Establecer valor de configuración en `evolith.yaml` |
295
- | `evolith-metrics` | Obtener métricas del servidor MCP |
1026
+
1027
+ **Configuración**
1028
+
1029
+ | Herramienta | Descripción |
1030
+ |------|-------------|
1031
+ | `evolith-config-get` | Obtener un valor de configuración de Evolith |
1032
+ | `evolith-config-set` | Establecer un valor de configuración de Evolith |
1033
+
1034
+ **Priorización MoSCoW**
1035
+
1036
+ | Herramienta | Descripción |
1037
+ |------|-------------|
296
1038
  | `evolith-moscow-create` | Crear un nuevo análisis de priorización MoSCoW |
297
1039
  | `evolith-moscow-load` | Cargar un análisis MoSCoW existente |
298
1040
  | `evolith-moscow-update` | Actualizar un ítem en un análisis MoSCoW |
@@ -303,7 +1045,7 @@ smart-cli mcp serve --transport http --port 3000
303
1045
 
304
1046
  ### Configuración para Cursor AI
305
1047
 
306
- Agregar a `~/.cursor/mcp.json`:
1048
+ Añade a `~/.cursor/mcp.json`:
307
1049
 
308
1050
  ```json
309
1051
  {
@@ -318,7 +1060,7 @@ Agregar a `~/.cursor/mcp.json`:
318
1060
 
319
1061
  ### Configuración para Claude Desktop
320
1062
 
321
- Agregar a `~/Library/Application Support/Claude/claude_desktop_config.json`:
1063
+ Añade a `~/Library/Application Support/Claude/claude_desktop_config.json`:
322
1064
 
323
1065
  ```json
324
1066
  {
@@ -331,37 +1073,63 @@ Agregar a `~/Library/Application Support/Claude/claude_desktop_config.json`:
331
1073
  }
332
1074
  ```
333
1075
 
334
- ## Ejemplo de Flujo de Trabajo con Agente IA
335
-
336
- Cuando está integrado con un agente IA, puedes tener conversaciones como:
1076
+ ### Transporte HTTP (despliegue remoto)
337
1077
 
1078
+ ```json
1079
+ {
1080
+ "mcpServers": {
1081
+ "evolith": {
1082
+ "url": "http://localhost:3000",
1083
+ "headers": { "x-api-key": "<secret>" }
1084
+ }
1085
+ }
1086
+ }
338
1087
  ```
339
- Tú: Valida mi repositorio
340
- Agente: Déjame ejecutar la validación...
341
1088
 
342
- await mcp.callTool('evolith-validate', {
343
- path: '/user/project',
344
- format: 'summary'
345
- })
1089
+ ---
1090
+
1091
+ ## Integración CI/CD
1092
+
1093
+ ### Validación de Fase SDLC (Pipeline GT-281)
346
1094
 
347
- Resultado: ✓ El repositorio cumple con los estándares de Evolith
348
- Reglas verificadas: 12
349
- Todas las puertas pasaron
1095
+ ```bash
1096
+ # Validar una fase SDLC específica con evaluación completa de gates
1097
+ smart-cli validate --phase design --format json --output gate-evidence.json
1098
+
1099
+ # Con SatelliteManifest explícito
1100
+ smart-cli validate --manifest ./satellite-manifest.json --phase construction --format json
1101
+ ```
350
1102
 
351
- Tú: Muéstrame el estado SDLC
352
- Agente: Déjame verificar el estado de los phase gates...
1103
+ ### Evaluación de Gates en CI
1104
+
1105
+ ```bash
1106
+ # Evaluar gates de construction desde CI
1107
+ smart-cli gate evaluate \
1108
+ --phase construction \
1109
+ --evaluated-by ci \
1110
+ --format json \
1111
+ --webhook-url $WEBHOOK_URL
1112
+ ```
353
1113
 
354
- await mcp.callTool('evolith-sdlc-status', {
355
- path: '/user/project'
356
- })
1114
+ ### Ejemplo de GitHub Actions
357
1115
 
358
- Resultado: Fase 1 — 3 gates pasados, 0 fallados
359
- Todos los artefactos de evidencia presentes
1116
+ ```yaml
1117
+ - name: Evolith Gate Evaluation
1118
+ run: |
1119
+ smart-cli gate evaluate \
1120
+ --phase ${{ env.SDLC_PHASE }} \
1121
+ --evaluated-by ci \
1122
+ --format json \
1123
+ --output gate-evidence.json
1124
+ env:
1125
+ SDLC_PHASE: construction
360
1126
  ```
361
1127
 
1128
+ ---
1129
+
362
1130
  ## Configuración
363
1131
 
364
- Evolith usa un archivo `evolith.yaml` en la raíz del repositorio:
1132
+ Evolith usa `evolith.yaml` en `.evolith/` o en la raíz del repositorio:
365
1133
 
366
1134
  ```yaml
367
1135
  coreRef:
@@ -375,57 +1143,72 @@ governance:
375
1143
  status: "accepted"
376
1144
 
377
1145
  product:
378
- name: "mi-proyecto"
1146
+ name: "my-project"
379
1147
  type: "library"
380
1148
  runtime: "typescript"
381
1149
  ```
382
1150
 
1151
+ ### Perfiles Multi-Entorno
1152
+
1153
+ ```bash
1154
+ # Crear un perfil por entorno
1155
+ smart-cli profile create --name local
1156
+ smart-cli profile create --name staging
1157
+ smart-cli profile create --name ci
1158
+
1159
+ # Cambiar antes de ejecutar comandos
1160
+ smart-cli profile switch --name staging
1161
+ smart-cli validate
1162
+ ```
1163
+
1164
+ ---
1165
+
383
1166
  ## Formatos de Salida
384
1167
 
385
- Todos los comandos soportan múltiples formatos de salida:
1168
+ La mayoría de comandos aceptan `--format`:
386
1169
 
387
1170
  ```bash
388
- # JSON (por defecto para automatización)
389
- smart-cli validate --format json
1171
+ # Legible para humanos (por defecto en la mayoría de comandos)
1172
+ smart-cli validate
1173
+
1174
+ # Markdown
1175
+ smart-cli validate --format markdown
390
1176
 
391
- # Tabla (legible para humanos)
1177
+ # Tabla
392
1178
  smart-cli validate --format table
393
1179
 
394
- # YAML (integración en pipelines)
1180
+ # YAML
395
1181
  smart-cli validate --format yaml
396
1182
 
397
- # Markdown (documentación)
398
- smart-cli validate --format markdown
1183
+ # JSON (envelope ADR-0073 — para automatización y CI)
1184
+ smart-cli validate --format json
399
1185
  ```
400
1186
 
401
- ## Solución de Problemas
402
-
403
- ### Comando no encontrado
1187
+ ---
404
1188
 
405
- Si `evolith` no se encuentra después de la instalación, asegúrate de que el binario global de npm está en tu PATH:
1189
+ ## Solución de Problemas
406
1190
 
1191
+ **Comando no encontrado tras instalar:**
407
1192
  ```bash
408
- # Agregar a ~/.bashrc o ~/.zshrc
409
1193
  export PATH="$(npm config get prefix)/bin:$PATH"
410
1194
  ```
411
1195
 
412
- ### Servidor MCP no responde
413
-
414
- Asegúrate de que el servidor MCP está corriendo:
415
-
1196
+ **La validación falla sin evolith.yaml:**
416
1197
  ```bash
417
- smart-cli mcp serve &
1198
+ smart-cli docs # generar evolith.yaml y docs base
1199
+ smart-cli validate
418
1200
  ```
419
1201
 
420
- ### La validación falla
421
-
422
- Verifica que tu `evolith.yaml` existe y es válido:
423
-
1202
+ **El servidor MCP no responde:**
424
1203
  ```bash
425
- cat evolith.yaml
426
- smart-cli validate --verbose
1204
+ smart-cli mcp serve --no-confirm
427
1205
  ```
428
1206
 
1207
+ **Topología desconocida en scaffold o drift:**
1208
+ Asegúrate de que tu `evolith.yaml` tenga un campo `product.topology` válido usando un id de topología canónico — `modular-monolith`, `distributed-modules`, `microservices`, `serverless`, `edge-computing`, `event-driven`, `data-mesh` o `agentic-ai` (según `reference/config/evolith.config.schema.json`). `F1/F2/F3` legacy se aceptan solo como flags CLI deprecados, no como valores de manifest.
1209
+
1210
+ ---
1211
+
429
1212
  ## Desarrollo
430
1213
 
431
1214
  ### Construir desde el Código Fuente
@@ -434,56 +1217,62 @@ smart-cli validate --verbose
434
1217
  cd sdk/cli
435
1218
  npm install
436
1219
  npm run build
437
- npm link # Enlazar globalmente para pruebas
1220
+ npm link
438
1221
  ```
439
1222
 
440
- ### Ejecutar Pruebas
1223
+ ### Tests
441
1224
 
442
1225
  ```bash
443
- # Ejecutar todas las pruebas
444
- npm test
445
-
446
- # Ejecutar con reporte de cobertura
447
- npm run test:cov
1226
+ npm test # unit + e2e
1227
+ npm run test:unit # solo unit
1228
+ npm run test:e2e # solo e2e
1229
+ npm run test:cov # reporte de cobertura
1230
+ npm run mcp:smoke # smoke test del protocolo MCP
448
1231
  ```
449
1232
 
450
- **Cobertura (v0.0.3-beta):** 88.7% statements · 89.8% lines · 77.0% branches · 83.6% functions · 1 369 tests
451
-
452
1233
  ### Estructura del Proyecto
453
1234
 
454
1235
  ```
455
1236
  sdk/cli/
456
1237
  ├── src/
457
- │ ├── commands/ # Comandos CLI (adr, validate, agents, etc.)
458
- │ ├── application/ # Casos de uso
459
- │ ├── domain/ # Lógica de negocio (servicios, entidades)
460
- │ ├── infrastructure/# Integraciones externas (catálogo, CLI)
461
- │ └── core/ # Compartido (DI, observabilidad, errores, MCP)
462
- ├── shell/ # Scripts de completado de shell
463
- ├── templates/ # Plantillas de configuración
464
- └── docs/ # Documentación
1238
+ │ ├── commands/ # Comandos CLI (un directorio por comando)
1239
+ │ ├── config/ # Catálogo de runtimes, matriz de comandos CLI, alias
1240
+ │ ├── contributions/ # Validación de contribuciones
1241
+ │ ├── infrastructure/ # Config, filesystem, formatters, prompts, plugins
1242
+ │ └── plugins/ # Registro y módulo de plugins
1243
+ ├── shell/ # Autocompletado y hooks Bash, Zsh, Fish
1244
+ ├── templates/ # Plantillas de configuración
1245
+ ├── test/ # Suite de tests E2E
1246
+ └── docs/ # Documentación extendida
465
1247
  ```
466
1248
 
467
- ## Documentación
1249
+ ### Documentación Extendida
468
1250
 
469
- - [Guía de Demo SMART CLI](docs/SMART-CLI-DEMO.es.md) - Guía completa que cubre todos los comandos, flujo SDLC, tipos de producto, integración MCP y validación de arquitectura
470
- - [Visión](docs/VISION.es.md) - Visión y hoja de ruta de la CLI
471
- - [Modelos de Datos](docs/data-models.es.md) - Modelos de datos del dominio
472
- - [Integración MCP](docs/MCP-INTEGRATION.md) - Detalles de integración del servidor MCP
1251
+ - [Guía Demo](docs/SMART-CLI-DEMO.es.md) recorrido end-to-end de todos los comandos y flujos SDLC
1252
+ - [Visión](docs/VISION.es.md) visión y roadmap de la CLI
1253
+ - [Modelos de Datos](docs/data-models.es.md) referencia del modelo de datos del dominio
1254
+ - [Integración MCP](docs/MCP-INTEGRATION.md) detalles del protocolo del servidor MCP
1255
+ - [Protocolo de Handoff](docs/HANDOFF-PROTOCOL.md) — especificación del artefacto de handoff SDLC
1256
+
1257
+ ---
473
1258
 
474
1259
  ## Contribuir
475
1260
 
476
- 1. Haz fork del repositorio
477
- 2. Crea una rama de característica
478
- 3. Haz cambios con pruebas
1261
+ Consulta el [CONTRIBUTING.md](../../CONTRIBUTING.md) en la raíz del repositorio para el flujo completo, las convenciones de ramas/commits y los estándares de autoría.
1262
+
1263
+ 1. Haz un fork del repositorio
1264
+ 2. Crea una rama de feature
1265
+ 3. Realiza cambios con tests
479
1266
  4. Envía un pull request
480
1267
 
1268
+ ---
1269
+
481
1270
  ## Licencia
482
1271
 
483
- ISC
1272
+ MIT
484
1273
 
485
1274
  ## Soporte
486
1275
 
1276
+ - [Issue Tracker](https://github.com/beyondnetcode/evolith_arch32/issues)
1277
+ - [Discussions](https://github.com/beyondnetcode/evolith_arch32/discussions)
487
1278
  - [Documentación](https://github.com/beyondnetcode/evolith_arch32#readme)
488
- - [Rastreador de Incidencias](https://github.com/beyondnetcode/evolith_arch32/issues)
489
- - [Discusiones](https://github.com/beyondnetcode/evolith_arch32/discussions)