@evolith/smart-cli 1.1.3 → 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.
- package/README.es.md +989 -200
- package/README.md +98 -20
- package/dist/.tsbuildinfo +1 -0
- package/dist/CoreApiClient.d.ts +5 -0
- package/dist/CoreApiClient.js +25 -0
- package/dist/CoreApiClient.js.map +1 -0
- package/dist/app.module.js +12 -4
- package/dist/app.module.js.map +1 -1
- package/dist/commands/agents/agents.command.d.ts +19 -6
- package/dist/commands/agents/agents.command.js +333 -21
- package/dist/commands/agents/agents.command.js.map +1 -1
- package/dist/commands/architecture/scaffold.command.js +15 -8
- package/dist/commands/architecture/scaffold.command.js.map +1 -1
- package/dist/commands/chat/chat.command.d.ts +7 -0
- package/dist/commands/chat/chat.command.js +64 -0
- package/dist/commands/chat/chat.command.js.map +1 -0
- package/dist/commands/drift/drift.command.js +12 -3
- package/dist/commands/drift/drift.command.js.map +1 -1
- package/dist/commands/evaluate/evaluate.command.d.ts +28 -0
- package/dist/commands/evaluate/evaluate.command.js +197 -0
- package/dist/commands/evaluate/evaluate.command.js.map +1 -0
- package/dist/commands/mcp/mcp.command.d.ts +17 -0
- package/dist/commands/mcp/mcp.command.js +109 -0
- package/dist/commands/mcp/mcp.command.js.map +1 -0
- package/dist/commands/plan/index.d.ts +2 -0
- package/dist/commands/plan/index.js +133 -0
- package/dist/commands/plan/index.js.map +1 -0
- package/dist/commands/satellite/index.d.ts +2 -0
- package/dist/commands/satellite/index.js +8 -0
- package/dist/commands/satellite/index.js.map +1 -0
- package/dist/commands/satellite/satellite-adopt.command.d.ts +21 -0
- package/dist/commands/satellite/satellite-adopt.command.js +193 -0
- package/dist/commands/satellite/satellite-adopt.command.js.map +1 -0
- package/dist/commands/satellite/satellite-create.command.d.ts +26 -0
- package/dist/commands/satellite/satellite-create.command.js +192 -0
- package/dist/commands/satellite/satellite-create.command.js.map +1 -0
- package/dist/commands/upgrade/upgrade.command.d.ts +12 -4
- package/dist/commands/upgrade/upgrade.command.js +139 -19
- package/dist/commands/upgrade/upgrade.command.js.map +1 -1
- package/dist/commands/validate/validate.command.js +42 -14
- package/dist/commands/validate/validate.command.js.map +1 -1
- package/dist/infrastructure/agent/agent-runtime.factory.d.ts +9 -0
- package/dist/infrastructure/agent/agent-runtime.factory.js +47 -0
- package/dist/infrastructure/agent/agent-runtime.factory.js.map +1 -0
- package/dist/infrastructure/architecture/topology-catalog.d.ts +17 -0
- package/dist/infrastructure/architecture/topology-catalog.js +69 -0
- package/dist/infrastructure/architecture/topology-catalog.js.map +1 -0
- package/dist/infrastructure/cli/command-executor.d.ts +1 -0
- package/dist/infrastructure/cli/command-executor.js +16 -0
- package/dist/infrastructure/cli/command-executor.js.map +1 -1
- package/dist/infrastructure/cli/providers/index.js +32 -29
- package/dist/infrastructure/cli/providers/index.js.map +1 -1
- package/dist/main.js +12 -1
- package/dist/main.js.map +1 -1
- package/package.json +8 -5
- package/dist/commands/init/agents.command.d.ts +0 -24
- package/dist/commands/init/agents.command.js +0 -330
- package/dist/commands/init/agents.command.js.map +0 -1
- package/dist/commands/init/upgrade.command.d.ts +0 -22
- package/dist/commands/init/upgrade.command.js +0 -178
- package/dist/commands/init/upgrade.command.js.map +0 -1
- package/dist/commands/mcp/mcp-serve.command.d.ts +0 -17
- package/dist/commands/mcp/mcp-serve.command.js +0 -153
- package/dist/commands/mcp/mcp-serve.command.js.map +0 -1
- package/dist/commands/upgrade/index.d.ts +0 -1
- package/dist/commands/upgrade/index.js +0 -6
- package/dist/commands/upgrade/index.js.map +0 -1
package/README.es.md
CHANGED
|
@@ -1,298 +1,1040 @@
|
|
|
1
|
-
#
|
|
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
|
-
##
|
|
5
|
+
## Visión General
|
|
6
6
|
|
|
7
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
53
|
+
O descarga el binario desde [GitHub Releases](https://github.com/beyondnetcode/evolith_arch32/releases) y agrégalo a tu PATH.
|
|
35
54
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
### Verificar Instalación
|
|
55
|
+
### Verificar
|
|
39
56
|
|
|
40
57
|
```bash
|
|
41
58
|
smart-cli --version
|
|
42
|
-
#
|
|
59
|
+
# 1.1.4
|
|
43
60
|
```
|
|
44
61
|
|
|
45
62
|
### Solución de Problemas
|
|
46
63
|
|
|
47
|
-
**
|
|
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
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Comandos
|
|
69
117
|
|
|
70
|
-
###
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
79
|
-
|
|
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
|
-
|
|
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
|
|
86
|
-
|
|
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
|
-
|
|
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>
|
|
100
|
-
--core <ruta>
|
|
101
|
-
--format <formato>
|
|
102
|
-
--output <archivo>
|
|
103
|
-
--ruleset <id>
|
|
104
|
-
--engine <
|
|
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
|
-
**
|
|
108
|
-
|
|
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
|
-
#
|
|
262
|
+
# Chequeo básico de cumplimiento
|
|
114
263
|
smart-cli validate
|
|
115
264
|
|
|
116
|
-
# Salida JSON para
|
|
117
|
-
smart-cli validate --format json
|
|
265
|
+
# Salida JSON para CI
|
|
266
|
+
smart-cli validate --format json --output report.json
|
|
118
267
|
|
|
119
|
-
#
|
|
120
|
-
smart-cli validate --
|
|
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
|
-
#
|
|
123
|
-
smart-cli validate --
|
|
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
|
-
|
|
294
|
+
Gestiona Architecture Decision Records.
|
|
129
295
|
|
|
130
296
|
```bash
|
|
131
|
-
smart-cli adr
|
|
297
|
+
smart-cli adr [opciones]
|
|
132
298
|
|
|
133
|
-
|
|
134
|
-
create
|
|
135
|
-
list
|
|
136
|
-
get
|
|
137
|
-
update
|
|
138
|
-
|
|
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
|
-
#
|
|
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
|
-
#
|
|
148
|
-
smart-cli adr
|
|
319
|
+
# Mostrar un ADR específico
|
|
320
|
+
smart-cli adr --get ADR-0002
|
|
149
321
|
|
|
150
|
-
#
|
|
151
|
-
smart-cli adr
|
|
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
|
-
|
|
333
|
+
Gestiona los estándares de gobernanza de Evolith (arquitectura, gobernanza, operaciones).
|
|
157
334
|
|
|
158
335
|
```bash
|
|
159
|
-
smart-cli standards
|
|
336
|
+
smart-cli standards [opciones]
|
|
160
337
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
list
|
|
164
|
-
get
|
|
165
|
-
validate
|
|
166
|
-
export
|
|
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
|
|
173
|
-
smart-cli standards init
|
|
351
|
+
# Inicializar
|
|
352
|
+
smart-cli standards --init
|
|
174
353
|
|
|
175
|
-
# Listar
|
|
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
|
-
|
|
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
|
|
371
|
+
smart-cli agents [opciones]
|
|
185
372
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
remove
|
|
190
|
-
|
|
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
|
-
|
|
201
|
-
|
|
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
|
-
|
|
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
|
|
213
|
-
--get <id>
|
|
214
|
-
--search <
|
|
215
|
-
|
|
216
|
-
|
|
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
|
-
#
|
|
229
|
-
smart-cli history --
|
|
900
|
+
# Limpiar histórico
|
|
901
|
+
smart-cli history --clear
|
|
230
902
|
```
|
|
231
903
|
|
|
904
|
+
---
|
|
905
|
+
|
|
232
906
|
### completion
|
|
233
907
|
|
|
234
|
-
|
|
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
|
|
911
|
+
smart-cli completion [opciones]
|
|
238
912
|
|
|
239
|
-
|
|
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
|
|
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
|
|
249
|
-
smart-cli completion --install
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
982
|
+
### Smoke Test
|
|
267
983
|
|
|
268
984
|
```bash
|
|
269
985
|
npm run mcp:smoke
|
|
270
986
|
```
|
|
271
987
|
|
|
272
|
-
|
|
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
|
-
|
|
990
|
+
### Herramientas MCP Disponibles
|
|
275
991
|
|
|
276
|
-
|
|
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
|
-
|
|
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-
|
|
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
|
|
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
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
|
294
|
-
|
|
295
|
-
| `evolith-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
1089
|
+
---
|
|
1090
|
+
|
|
1091
|
+
## Integración CI/CD
|
|
1092
|
+
|
|
1093
|
+
### Validación de Fase SDLC (Pipeline GT-281)
|
|
346
1094
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
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
|
-
|
|
352
|
-
|
|
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
|
-
|
|
355
|
-
path: '/user/project'
|
|
356
|
-
})
|
|
1114
|
+
### Ejemplo de GitHub Actions
|
|
357
1115
|
|
|
358
|
-
|
|
359
|
-
|
|
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
|
|
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: "
|
|
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
|
-
|
|
1168
|
+
La mayoría de comandos aceptan `--format`:
|
|
386
1169
|
|
|
387
1170
|
```bash
|
|
388
|
-
#
|
|
389
|
-
smart-cli validate
|
|
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
|
|
1177
|
+
# Tabla
|
|
392
1178
|
smart-cli validate --format table
|
|
393
1179
|
|
|
394
|
-
# YAML
|
|
1180
|
+
# YAML
|
|
395
1181
|
smart-cli validate --format yaml
|
|
396
1182
|
|
|
397
|
-
#
|
|
398
|
-
smart-cli validate --format
|
|
1183
|
+
# JSON (envelope ADR-0073 — para automatización y CI)
|
|
1184
|
+
smart-cli validate --format json
|
|
399
1185
|
```
|
|
400
1186
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
### Comando no encontrado
|
|
1187
|
+
---
|
|
404
1188
|
|
|
405
|
-
|
|
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
|
-
|
|
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
|
|
1198
|
+
smart-cli docs # generar evolith.yaml y docs base
|
|
1199
|
+
smart-cli validate
|
|
418
1200
|
```
|
|
419
1201
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
Verifica que tu `evolith.yaml` existe y es válido:
|
|
423
|
-
|
|
1202
|
+
**El servidor MCP no responde:**
|
|
424
1203
|
```bash
|
|
425
|
-
|
|
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
|
|
1220
|
+
npm link
|
|
438
1221
|
```
|
|
439
1222
|
|
|
440
|
-
###
|
|
1223
|
+
### Tests
|
|
441
1224
|
|
|
442
1225
|
```bash
|
|
443
|
-
#
|
|
444
|
-
npm test
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
npm run test
|
|
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/
|
|
458
|
-
│ ├──
|
|
459
|
-
│ ├──
|
|
460
|
-
│ ├── infrastructure
|
|
461
|
-
│ └──
|
|
462
|
-
├── shell/
|
|
463
|
-
├── templates/
|
|
464
|
-
|
|
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
|
-
|
|
1249
|
+
### Documentación Extendida
|
|
468
1250
|
|
|
469
|
-
- [Guía
|
|
470
|
-
- [Visión](docs/VISION.es.md)
|
|
471
|
-
- [Modelos de Datos](docs/data-models.es.md)
|
|
472
|
-
- [Integración MCP](docs/MCP-INTEGRATION.md)
|
|
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
|
-
|
|
477
|
-
|
|
478
|
-
|
|
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
|
-
|
|
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)
|