@saulwade/swl-ses 2.2.0 → 2.2.3
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/CLAUDE.md +199 -196
- package/README.md +597 -579
- package/agentes/arquitecto-swl.md +0 -5
- package/agentes/backend-python-swl.md +0 -5
- package/agentes/implementador-swl.md +0 -5
- package/agentes/nemesis-auditor-swl.md +0 -5
- package/agentes/orquestador-swl.md +0 -5
- package/agentes/planificador-swl.md +0 -5
- package/agentes/revisor-codigo-swl.md +0 -5
- package/bin/swl-mcp-server.js +1 -1
- package/comandos/swl/adoptar-proyecto.md +253 -258
- package/comandos/swl/aprender.md +823 -828
- package/comandos/swl/claudemd.md +234 -239
- package/comandos/swl/ejecutar-fase.md +0 -5
- package/comandos/swl/nuevo-proyecto.md +200 -205
- package/comandos/swl/release.md +19 -5
- package/comandos/swl/revisar-impacto.md +0 -5
- package/habilidades/agent-browser/SKILL.md +0 -5
- package/habilidades/angular-moderno/SKILL.md +0 -5
- package/habilidades/api-rest-diseno/SKILL.md +0 -5
- package/habilidades/aprendizaje-continuo/SKILL.md +0 -5
- package/habilidades/auth-patrones/SKILL.md +0 -5
- package/habilidades/build-errors-nextjs/SKILL.md +0 -5
- package/habilidades/changelog-generator/SKILL.md +174 -179
- package/habilidades/checklist-seguridad/SKILL.md +0 -5
- package/habilidades/contenedores-docker/SKILL.md +0 -5
- package/habilidades/datos-etl/SKILL.md +0 -5
- package/habilidades/doc-sync/SKILL.md +0 -5
- package/habilidades/extractor-de-aprendizajes/SKILL.md +0 -5
- package/habilidades/fastapi-experto/SKILL.md +0 -5
- package/habilidades/frontend-avanzado/SKILL.md +0 -5
- package/habilidades/iam-secretos/SKILL.md +0 -5
- package/habilidades/manejo-errores/SKILL.md +0 -5
- package/habilidades/mapear-codebase/SKILL.md +0 -5
- package/habilidades/meta-skills-estandar/SKILL.md +0 -5
- package/habilidades/monitoring-alertas/SKILL.md +0 -5
- package/habilidades/nextjs-experto/SKILL.md +0 -5
- package/habilidades/nextjs-testing/SKILL.md +0 -5
- package/habilidades/node-experto/SKILL.md +0 -5
- package/habilidades/orquestacion-async/SKILL.md +0 -5
- package/habilidades/patrones-python/SKILL.md +227 -232
- package/habilidades/planear-fase/SKILL.md +336 -341
- package/habilidades/postgresql-experto/SKILL.md +0 -5
- package/habilidades/prevencion-sobreingenieria/SKILL.md +0 -5
- package/habilidades/protocolo-revision-swl/SKILL.md +0 -5
- package/habilidades/react-experto/SKILL.md +0 -5
- package/habilidades/release-semver/SKILL.md +0 -5
- package/habilidades/swl-claudemd/SKILL.md +0 -5
- package/habilidades/tdd-workflow/SKILL.md +710 -715
- package/habilidades/testing-python/SKILL.md +335 -340
- package/habilidades/verificar-trabajo/SKILL.md +0 -5
- package/hooks/lib/etapa-perfil-usuario.js +1 -1
- package/hooks/lib/evolution-tracker.js +191 -35
- package/hooks/resumen-sesion.js +4 -4
- package/llms.txt +1 -1
- package/manifiestos/canonical-hashes.json +1310 -0
- package/manifiestos/modulos.json +3 -0
- package/manifiestos/skills-lock.json +70 -70
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/scripts/doctor.js +13 -0
- package/scripts/generar-canonical-hashes.js +147 -0
- package/scripts/instalador.js +140 -54
- package/scripts/lib/audit-evolved.js +76 -0
- package/scripts/lib/canonical-hash.js +94 -0
- package/scripts/lib/evolved-fuente.js +138 -0
- package/scripts/lib/manifiestos.js +1 -1
- package/scripts/publicar.js +42 -5
- package/scripts/remediar-evolved-instaladas.js +242 -0
- package/scripts/validar.js +14 -0
- package/scripts/vendor/claude-usage/__pycache__/scanner.cpython-314.pyc +0 -0
- package/scripts/verificar-evolucion.js +36 -0
- package/scripts/verificar-release.js +33 -0
- package/agentes/.evolved.json +0 -9
- package/comandos/swl/.evolved.json +0 -23
- package/habilidades/auth-patrones/.evolved.json +0 -9
- package/habilidades/extractor-de-aprendizajes/.evolved.json +0 -9
- package/habilidades/instalar-sistema/.evolved.json +0 -9
- package/habilidades/manejo-errores/.evolved.json +0 -9
- package/habilidades/node-experto/.evolved.json +0 -9
- package/habilidades/release-semver/.evolved.json +0 -9
package/README.md
CHANGED
|
@@ -1,579 +1,597 @@
|
|
|
1
|
-
# swl-ses v2.2.
|
|
2
|
-
|
|
3
|
-
> El paquete anterior `@saulwadeleon/swl-software-engineering-system` está deprecado. Migrar a `@saulwade/swl-ses` (npmjs.org canónico) o `@saul-wade/swl-ses` (mirror en GitHub Packages) — el CLI `swl-ses` no cambia.
|
|
4
|
-
|
|
5
|
-
Sistema de ingeniería de software auto-evolutivo **multi-runtime** con agentes especializados, habilidades modulares, hooks de seguridad y orquestación ligera. 100% en español (México). Soporta 11 lenguajes: Python, TypeScript, Java, Go, Rust, C#, Kotlin, Swift, PHP, Next.js y C++.
|
|
6
|
-
|
|
7
|
-
Soporta 7 runtimes de IA: Claude Code, OpenClaude, OpenCode y Gemini CLI (soporte completo); Cursor, Codex CLI y GitHub Copilot (soporte parcial — reglas + MCP server o consolidación en archivo de instrucciones según el runtime). Incluye sistema de transformadores que adapta el formato canónico SWL al formato nativo de cada runtime, **multi-target install** (`--target=claude,cursor,codex` en una sola invocación), y **`swl-mcp-server` v1.0.0** con auth opt-in para que Cursor, Codex y otros clientes MCP consulten la memoria SWL (aprendizajes, instintos, sesiones).
|
|
8
|
-
|
|
9
|
-
Cubre el SDLC completo: discovery, requisitos, arquitectura, UX/UI, frontend, backend, mobile, datos, testing, seguridad, CI/CD, observabilidad, releases, documentación, notificaciones y auto-evolución. Incluye sistema de notificaciones Telegram opt-in (hook saliente, bot bidireccional con 15 comandos, autostart cross-platform), **auditoría profunda Nemesis** (loop iterativo Feynman + State Inconsistency hasta convergencia, ahora con loop evaluator-optimizer opt-in vía `/swl:nemesis --remediar` desde v1.5.2 - ADR-0021) con 8 tools ejecutables JSON-output para code-profiler, pentest-scanner, dep-doctor, bundle-tracker y más (ADR-0018, v1.4.1), e **instalador/actualizador TUI custom** zero-deps con paneles, multi-select y barra de progreso por categoría (v1.6.0).
|
|
10
|
-
|
|
11
|
-
## Inventario
|
|
12
|
-
|
|
13
|
-
| Componente | Cantidad |
|
|
14
|
-
|-----------|----------|
|
|
15
|
-
| Agentes SWL | 60 |
|
|
16
|
-
| Habilidades | 182 (todas <=300 líneas, con divulgación progresiva a recursos/) |
|
|
17
|
-
| Comandos (/swl:*) | 43 (todos <=300 líneas, delegan a skills) |
|
|
18
|
-
| Reglas | 37 base + 40 por lenguaje (8 lenguajes x 5) |
|
|
19
|
-
| Hooks | 46 + 73 librerías en hooks/lib/ |
|
|
20
|
-
| Tools ejecutables (audit-tools) | 8 (code-profiler, pentest-scanner, dep-doctor, bundle-tracker, env-validator, migration-checker, canary-monitor, audit-history) |
|
|
21
|
-
| Schemas | 15 |
|
|
22
|
-
| Perfiles de instalación | 17 |
|
|
23
|
-
| Contextos | 3 (dev, review, research) |
|
|
24
|
-
| Gateway multi-plataforma | Telegram, Discord, WhatsApp, Slack, Email, Webhook (salida bidireccional opt-in) |
|
|
25
|
-
|
|
26
|
-
## Lenguajes soportados (11)
|
|
27
|
-
|
|
28
|
-
| Lenguaje | Reglas | Skills | Agente Revisor | Agente Implementador | Build Errors |
|
|
29
|
-
|----------|--------|--------|----------------|---------------------|-------------|
|
|
30
|
-
| Python | base | 7 | revisor-codigo-swl | backend-python-swl | build-errors-python |
|
|
31
|
-
| TypeScript | base | 2 | revisor-codigo-swl | backend-node-swl | build-errors-typescript |
|
|
32
|
-
| Java | 5 | 4 | revisor-java-swl | backend-java-swl | build-errors-java |
|
|
33
|
-
| Go | 5 | 4 | revisor-go-swl | backend-go-swl | build-errors-go |
|
|
34
|
-
| Rust | 5 | 4 | revisor-rust-swl | backend-rust-swl | build-errors-rust |
|
|
35
|
-
| C#/.NET | 5 | 4 | revisor-csharp-swl | backend-csharp-swl | build-errors-csharp |
|
|
36
|
-
| Kotlin | 5 | 4 | revisor-kotlin-swl | mobile-android-swl | build-errors-kotlin |
|
|
37
|
-
| Swift | 5 | 4 | revisor-swift-swl | mobile-ios-swl | build-errors-swift |
|
|
38
|
-
| PHP | 5 | 4 | revisor-php-swl | implementador-swl | build-errors-php |
|
|
39
|
-
| Next.js | 5 | 4 | revisor-nextjs-swl | frontend-react-swl | build-errors-nextjs |
|
|
40
|
-
| C++ | - | 1 | - | - | build-errors-cpp |
|
|
41
|
-
|
|
42
|
-
## Instalación
|
|
43
|
-
|
|
44
|
-
### Entender `init` vs `install`
|
|
45
|
-
|
|
46
|
-
El setup requiere **dos comandos en orden**, con propósitos distintos:
|
|
47
|
-
|
|
48
|
-
| Comando | Qué crea | Dónde | Instala agentes/skills |
|
|
49
|
-
|---------|----------|-------|------------------------|
|
|
50
|
-
| `npx @saulwade/swl-ses@latest init` | `.planning/` y `_userland/` (plantillas vacías) | En el proyecto actual | ❌ No |
|
|
51
|
-
| `npx @saulwade/swl-ses@latest install` | Agentes, skills, reglas, hooks, comandos `/swl:*` | En `.claude/` del proyecto o en `~/.claude/` global | ✅ Sí |
|
|
52
|
-
|
|
53
|
-
**`init` siempre es local al proyecto.** `install` puede ser local (`--local`, default) o global (`--global`).
|
|
54
|
-
|
|
55
|
-
> Instalar globalmente (`--global` o `npm install -g swl-ses`) pone los componentes en `~/.claude/`
|
|
56
|
-
> y los hace disponibles en todos tus proyectos. Aun así, cada proyecto necesita su propio `init`
|
|
57
|
-
> para obtener `.planning/` y `_userland/`.
|
|
58
|
-
|
|
59
|
-
### Modo recomendado: TUI visual (v1.6.0+)
|
|
60
|
-
|
|
61
|
-
Desde v1.6.0, al ejecutar `install` o `update` sin flags desde una terminal
|
|
62
|
-
interactiva, swl-ses lanza un **TUI custom** con paneles, selectores con
|
|
63
|
-
flechas, multi-select con espacio y barra de progreso por categoría.
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
# Lanza el TUI: Welcome → Menú → Wizard → Progreso → Resumen
|
|
67
|
-
npx -y @saulwade/swl-ses@latest install
|
|
68
|
-
npx -y @saulwade/swl-ses@latest update
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Opt-out con `--no-tui` para usar el asistido lineal clásico, o pasa cualquier
|
|
72
|
-
flag (`--target`, `--profile`, `--force`, etc.) y el CLI usa el flujo directo
|
|
73
|
-
sin prompts. Ver [`MANUAL_USO.md`](./MANUAL_USO.md) sección "Opción C — Modo
|
|
74
|
-
TUI visual" para capturas ASCII de cada pantalla.
|
|
75
|
-
|
|
76
|
-
### Opción 1: CLI vía npmjs (recomendada)
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
cd /ruta/a/tu/proyecto
|
|
80
|
-
npx @saulwade/swl-ses@latest init # Crea .planning/ y _userland/
|
|
81
|
-
npx @saulwade/swl-ses@latest install --target claude --profile core # Instala agentes, skills, hooks y reglas
|
|
82
|
-
npx @saulwade/swl-ses@latest doctor # Verifica que todo quedó correcto
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
No requiere autenticación. El paquete `swl-ses` está publicado en npmjs.
|
|
86
|
-
|
|
87
|
-
#### Instalación global (una vez, disponible en todos los proyectos)
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
# Instalar swl-ses globalmente
|
|
91
|
-
npm install -g swl-ses
|
|
92
|
-
|
|
93
|
-
# En cada proyecto nuevo:
|
|
94
|
-
cd /ruta/a/mi-proyecto
|
|
95
|
-
swl-ses install --global --target claude --profile core # Componentes en ~/.claude/ (una sola vez)
|
|
96
|
-
swl-ses init # Estructura .planning/ en este proyecto
|
|
97
|
-
swl-ses doctor
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### Opción 2: CLI vía GitHub Packages (mirror)
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
# Requiere autenticación con GitHub (ver INSTALACION.md)
|
|
104
|
-
npx @saul-wade/swl-ses@latest init
|
|
105
|
-
npx @saul-wade/swl-ses@latest install --target claude --profile core
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Nota: la opción canónica es **npmjs.org** (`@saulwade/swl-ses`), GitHub Packages
|
|
109
|
-
es un mirror para usuarios que prefieran ese registry. El binario y el contenido
|
|
110
|
-
son idénticos.
|
|
111
|
-
|
|
112
|
-
#### Por qué los scopes difieren
|
|
113
|
-
|
|
114
|
-
La organización en npmjs.org se llama `saulwade` (sin guion) porque
|
|
115
|
-
**npm no permite guiones en nombres de organización** — el registro
|
|
116
|
-
los rechaza desde el formulario de creación. La organización en GitHub
|
|
117
|
-
sí acepta guiones y se llama `saul-wade`. Como cada registry deriva el
|
|
118
|
-
scope del paquete del nombre de la org propietaria, terminamos con
|
|
119
|
-
`@saulwade/swl-ses` en npmjs y `@saul-wade/swl-ses` en GitHub Packages.
|
|
120
|
-
El contenido publicado es idéntico; el comando CLI `swl-ses` no cambia.
|
|
121
|
-
|
|
122
|
-
### Opción 3: Clonar y usar directamente
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
git clone https://github.com/saul-wade/swl-ses.git
|
|
126
|
-
cd swl-ses
|
|
127
|
-
claude
|
|
128
|
-
# Claude lee CLAUDE.md y tiene acceso a todo el sistema
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Opción 4: Plugin de Claude Code
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
# Dentro de una sesion de Claude Code:
|
|
135
|
-
/plugin marketplace add https://github.com/saul-wade/swl-ses
|
|
136
|
-
/plugin install swl-ses@saul-wade
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
> Para forzar siempre la última versión:
|
|
140
|
-
> `npx @saulwade/swl-ses@latest <comando>`
|
|
141
|
-
|
|
142
|
-
## Comandos del CLI
|
|
143
|
-
|
|
144
|
-
> Las tablas siguientes usan el alias corto `swl-ses@latest` (sin scope) por
|
|
145
|
-
> compatibilidad con instalación global (`npm install -g swl-ses` enlaza el
|
|
146
|
-
> bin con ese nombre). Para forzar el paquete canónico desde npmjs sin
|
|
147
|
-
> tocar la instalación global, sustituir por `@saulwade/swl-ses@latest`
|
|
148
|
-
> (npmjs canónico) o `@saul-wade/swl-ses@latest` (mirror GitHub Packages).
|
|
149
|
-
|
|
150
|
-
| Comando | Descripción |
|
|
151
|
-
|---------|-------------|
|
|
152
|
-
| `npx @saulwade/swl-ses@latest init` | Crea `.planning/` (plantillas de planificación) y `_userland/` (tus personalizaciones) en el proyecto actual. **No instala agentes ni skills.** |
|
|
153
|
-
| `npx @saulwade/swl-ses@latest install` | Instala agentes, skills, reglas, hooks y comandos `/swl:*` en el runtime destino (`.claude/` local o `~/.claude/` global). |
|
|
154
|
-
| `npx @saulwade/swl-ses@latest doctor` | Diagnostica problemas de la instalación |
|
|
155
|
-
| `npx @saulwade/swl-ses@latest update` | Actualiza componentes instalados |
|
|
156
|
-
| `npx @saulwade/swl-ses@latest uninstall` | Desinstala componentes del runtime |
|
|
157
|
-
| `npx @saulwade/swl-ses@latest info` | Muestra información del sistema instalado |
|
|
158
|
-
| `npx @saulwade/swl-ses@latest skills list` | Lista skills instalados |
|
|
159
|
-
| `npx @saulwade/swl-ses@latest skills add <fuente>` | Agrega skill desde repo Git, owner/repo, o path local |
|
|
160
|
-
| `npx @saulwade/swl-ses@latest skills remove <nombre>` | Remueve un skill individual |
|
|
161
|
-
| `npx @saulwade/swl-ses@latest agents list` | Lista agentes instalados |
|
|
162
|
-
| `npx @saulwade/swl-ses@latest agents add <fuente>` | Agrega agente desde repo Git o path local |
|
|
163
|
-
| `npx @saulwade/swl-ses@latest agents remove <nombre>` | Remueve un agente individual |
|
|
164
|
-
|
|
165
|
-
### Opciones de install
|
|
166
|
-
|
|
167
|
-
| Opción | Valores | Descripción |
|
|
168
|
-
|--------|---------|-------------|
|
|
169
|
-
| `--target <runtime>` | `claude`, `openclaude`, `copilot`, `opencode`, `codex`, `gemini` | Runtime destino (default: `claude`) |
|
|
170
|
-
| `--profile <perfil>` | Ver perfiles abajo | Perfil de instalación (default: `completo`) |
|
|
171
|
-
| `--global` | — | Instala en directorio global (`~/.claude/`) |
|
|
172
|
-
| `--local` | — | Instala en directorio local del proyecto (`.claude/`) |
|
|
173
|
-
| `--with <componentes>` | Separados por coma | Incluir módulos adicionales |
|
|
174
|
-
| `--without <componentes>` | Separados por coma | Excluir módulos |
|
|
175
|
-
| `--dry-run` | — | Muestra plan sin aplicar cambios |
|
|
176
|
-
| `--force` | — | Sobrescribe archivos existentes |
|
|
177
|
-
|
|
178
|
-
###
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
|
203
|
-
|
|
204
|
-
| `
|
|
205
|
-
| `
|
|
206
|
-
| `
|
|
207
|
-
| `
|
|
208
|
-
| `
|
|
209
|
-
| `
|
|
210
|
-
| `
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
#
|
|
236
|
-
npx @saulwade/swl-ses@latest
|
|
237
|
-
|
|
238
|
-
#
|
|
239
|
-
npx @saulwade/swl-ses@latest
|
|
240
|
-
|
|
241
|
-
#
|
|
242
|
-
npx @saulwade/swl-ses@latest
|
|
243
|
-
|
|
244
|
-
#
|
|
245
|
-
npx @saulwade/swl-ses@latest
|
|
246
|
-
|
|
247
|
-
#
|
|
248
|
-
npx @saulwade/swl-ses@latest
|
|
249
|
-
|
|
250
|
-
#
|
|
251
|
-
npx @saulwade/swl-ses@latest install --target
|
|
252
|
-
|
|
253
|
-
#
|
|
254
|
-
npx @saulwade/swl-ses@latest
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
###
|
|
278
|
-
`
|
|
279
|
-
|
|
280
|
-
###
|
|
281
|
-
`
|
|
282
|
-
|
|
283
|
-
###
|
|
284
|
-
`
|
|
285
|
-
|
|
286
|
-
###
|
|
287
|
-
`
|
|
288
|
-
|
|
289
|
-
###
|
|
290
|
-
`
|
|
291
|
-
|
|
292
|
-
###
|
|
293
|
-
`
|
|
294
|
-
|
|
295
|
-
###
|
|
296
|
-
`
|
|
297
|
-
|
|
298
|
-
###
|
|
299
|
-
`
|
|
300
|
-
|
|
301
|
-
###
|
|
302
|
-
`
|
|
303
|
-
|
|
304
|
-
###
|
|
305
|
-
`
|
|
306
|
-
|
|
307
|
-
### Revisores
|
|
308
|
-
`revisor-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
|
331
|
-
|
|
332
|
-
| `/swl:
|
|
333
|
-
| `/swl:
|
|
334
|
-
| `/swl:
|
|
335
|
-
| `/swl:
|
|
336
|
-
| `/swl:
|
|
337
|
-
| `/swl:
|
|
338
|
-
| `/swl:
|
|
339
|
-
| `/swl:
|
|
340
|
-
| `/swl:
|
|
341
|
-
| `/swl:
|
|
342
|
-
| `/swl:
|
|
343
|
-
| `/swl:
|
|
344
|
-
| `/swl:
|
|
345
|
-
| `/swl:
|
|
346
|
-
| `/swl:
|
|
347
|
-
| `/swl:
|
|
348
|
-
| `/swl:
|
|
349
|
-
| `/swl:
|
|
350
|
-
| `/swl:
|
|
351
|
-
| `/swl:
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
.
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
```bash
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
1
|
+
# swl-ses v2.2.3
|
|
2
|
+
|
|
3
|
+
> El paquete anterior `@saulwadeleon/swl-software-engineering-system` está deprecado. Migrar a `@saulwade/swl-ses` (npmjs.org canónico) o `@saul-wade/swl-ses` (mirror en GitHub Packages) — el CLI `swl-ses` no cambia.
|
|
4
|
+
|
|
5
|
+
Sistema de ingeniería de software auto-evolutivo **multi-runtime** con agentes especializados, habilidades modulares, hooks de seguridad y orquestación ligera. 100% en español (México). Soporta 11 lenguajes: Python, TypeScript, Java, Go, Rust, C#, Kotlin, Swift, PHP, Next.js y C++.
|
|
6
|
+
|
|
7
|
+
Soporta 7 runtimes de IA: Claude Code, OpenClaude, OpenCode y Gemini CLI (soporte completo); Cursor, Codex CLI y GitHub Copilot (soporte parcial — reglas + MCP server o consolidación en archivo de instrucciones según el runtime). Incluye sistema de transformadores que adapta el formato canónico SWL al formato nativo de cada runtime, **multi-target install** (`--target=claude,cursor,codex` en una sola invocación), y **`swl-mcp-server` v1.0.0** con auth opt-in para que Cursor, Codex y otros clientes MCP consulten la memoria SWL (aprendizajes, instintos, sesiones).
|
|
8
|
+
|
|
9
|
+
Cubre el SDLC completo: discovery, requisitos, arquitectura, UX/UI, frontend, backend, mobile, datos, testing, seguridad, CI/CD, observabilidad, releases, documentación, notificaciones y auto-evolución. Incluye sistema de notificaciones Telegram opt-in (hook saliente, bot bidireccional con 15 comandos, autostart cross-platform), **auditoría profunda Nemesis** (loop iterativo Feynman + State Inconsistency hasta convergencia, ahora con loop evaluator-optimizer opt-in vía `/swl:nemesis --remediar` desde v1.5.2 - ADR-0021) con 8 tools ejecutables JSON-output para code-profiler, pentest-scanner, dep-doctor, bundle-tracker y más (ADR-0018, v1.4.1), e **instalador/actualizador TUI custom** zero-deps con paneles, multi-select y barra de progreso por categoría (v1.6.0).
|
|
10
|
+
|
|
11
|
+
## Inventario
|
|
12
|
+
|
|
13
|
+
| Componente | Cantidad |
|
|
14
|
+
|-----------|----------|
|
|
15
|
+
| Agentes SWL | 60 |
|
|
16
|
+
| Habilidades | 182 (todas <=300 líneas, con divulgación progresiva a recursos/) |
|
|
17
|
+
| Comandos (/swl:*) | 43 (todos <=300 líneas, delegan a skills) |
|
|
18
|
+
| Reglas | 37 base + 40 por lenguaje (8 lenguajes x 5) |
|
|
19
|
+
| Hooks | 46 + 73 librerías en hooks/lib/ |
|
|
20
|
+
| Tools ejecutables (audit-tools) | 8 (code-profiler, pentest-scanner, dep-doctor, bundle-tracker, env-validator, migration-checker, canary-monitor, audit-history) |
|
|
21
|
+
| Schemas | 15 |
|
|
22
|
+
| Perfiles de instalación | 17 |
|
|
23
|
+
| Contextos | 3 (dev, review, research) |
|
|
24
|
+
| Gateway multi-plataforma | Telegram, Discord, WhatsApp, Slack, Email, Webhook (salida bidireccional opt-in) |
|
|
25
|
+
|
|
26
|
+
## Lenguajes soportados (11)
|
|
27
|
+
|
|
28
|
+
| Lenguaje | Reglas | Skills | Agente Revisor | Agente Implementador | Build Errors |
|
|
29
|
+
|----------|--------|--------|----------------|---------------------|-------------|
|
|
30
|
+
| Python | base | 7 | revisor-codigo-swl | backend-python-swl | build-errors-python |
|
|
31
|
+
| TypeScript | base | 2 | revisor-codigo-swl | backend-node-swl | build-errors-typescript |
|
|
32
|
+
| Java | 5 | 4 | revisor-java-swl | backend-java-swl | build-errors-java |
|
|
33
|
+
| Go | 5 | 4 | revisor-go-swl | backend-go-swl | build-errors-go |
|
|
34
|
+
| Rust | 5 | 4 | revisor-rust-swl | backend-rust-swl | build-errors-rust |
|
|
35
|
+
| C#/.NET | 5 | 4 | revisor-csharp-swl | backend-csharp-swl | build-errors-csharp |
|
|
36
|
+
| Kotlin | 5 | 4 | revisor-kotlin-swl | mobile-android-swl | build-errors-kotlin |
|
|
37
|
+
| Swift | 5 | 4 | revisor-swift-swl | mobile-ios-swl | build-errors-swift |
|
|
38
|
+
| PHP | 5 | 4 | revisor-php-swl | implementador-swl | build-errors-php |
|
|
39
|
+
| Next.js | 5 | 4 | revisor-nextjs-swl | frontend-react-swl | build-errors-nextjs |
|
|
40
|
+
| C++ | - | 1 | - | - | build-errors-cpp |
|
|
41
|
+
|
|
42
|
+
## Instalación
|
|
43
|
+
|
|
44
|
+
### Entender `init` vs `install`
|
|
45
|
+
|
|
46
|
+
El setup requiere **dos comandos en orden**, con propósitos distintos:
|
|
47
|
+
|
|
48
|
+
| Comando | Qué crea | Dónde | Instala agentes/skills |
|
|
49
|
+
|---------|----------|-------|------------------------|
|
|
50
|
+
| `npx @saulwade/swl-ses@latest init` | `.planning/` y `_userland/` (plantillas vacías) | En el proyecto actual | ❌ No |
|
|
51
|
+
| `npx @saulwade/swl-ses@latest install` | Agentes, skills, reglas, hooks, comandos `/swl:*` | En `.claude/` del proyecto o en `~/.claude/` global | ✅ Sí |
|
|
52
|
+
|
|
53
|
+
**`init` siempre es local al proyecto.** `install` puede ser local (`--local`, default) o global (`--global`).
|
|
54
|
+
|
|
55
|
+
> Instalar globalmente (`--global` o `npm install -g swl-ses`) pone los componentes en `~/.claude/`
|
|
56
|
+
> y los hace disponibles en todos tus proyectos. Aun así, cada proyecto necesita su propio `init`
|
|
57
|
+
> para obtener `.planning/` y `_userland/`.
|
|
58
|
+
|
|
59
|
+
### Modo recomendado: TUI visual (v1.6.0+)
|
|
60
|
+
|
|
61
|
+
Desde v1.6.0, al ejecutar `install` o `update` sin flags desde una terminal
|
|
62
|
+
interactiva, swl-ses lanza un **TUI custom** con paneles, selectores con
|
|
63
|
+
flechas, multi-select con espacio y barra de progreso por categoría.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Lanza el TUI: Welcome → Menú → Wizard → Progreso → Resumen
|
|
67
|
+
npx -y @saulwade/swl-ses@latest install
|
|
68
|
+
npx -y @saulwade/swl-ses@latest update
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Opt-out con `--no-tui` para usar el asistido lineal clásico, o pasa cualquier
|
|
72
|
+
flag (`--target`, `--profile`, `--force`, etc.) y el CLI usa el flujo directo
|
|
73
|
+
sin prompts. Ver [`MANUAL_USO.md`](./MANUAL_USO.md) sección "Opción C — Modo
|
|
74
|
+
TUI visual" para capturas ASCII de cada pantalla.
|
|
75
|
+
|
|
76
|
+
### Opción 1: CLI vía npmjs (recomendada)
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
cd /ruta/a/tu/proyecto
|
|
80
|
+
npx @saulwade/swl-ses@latest init # Crea .planning/ y _userland/
|
|
81
|
+
npx @saulwade/swl-ses@latest install --target claude --profile core # Instala agentes, skills, hooks y reglas
|
|
82
|
+
npx @saulwade/swl-ses@latest doctor # Verifica que todo quedó correcto
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
No requiere autenticación. El paquete `swl-ses` está publicado en npmjs.
|
|
86
|
+
|
|
87
|
+
#### Instalación global (una vez, disponible en todos los proyectos)
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Instalar swl-ses globalmente
|
|
91
|
+
npm install -g swl-ses
|
|
92
|
+
|
|
93
|
+
# En cada proyecto nuevo:
|
|
94
|
+
cd /ruta/a/mi-proyecto
|
|
95
|
+
swl-ses install --global --target claude --profile core # Componentes en ~/.claude/ (una sola vez)
|
|
96
|
+
swl-ses init # Estructura .planning/ en este proyecto
|
|
97
|
+
swl-ses doctor
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Opción 2: CLI vía GitHub Packages (mirror)
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Requiere autenticación con GitHub (ver INSTALACION.md)
|
|
104
|
+
npx @saul-wade/swl-ses@latest init
|
|
105
|
+
npx @saul-wade/swl-ses@latest install --target claude --profile core
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Nota: la opción canónica es **npmjs.org** (`@saulwade/swl-ses`), GitHub Packages
|
|
109
|
+
es un mirror para usuarios que prefieran ese registry. El binario y el contenido
|
|
110
|
+
son idénticos.
|
|
111
|
+
|
|
112
|
+
#### Por qué los scopes difieren
|
|
113
|
+
|
|
114
|
+
La organización en npmjs.org se llama `saulwade` (sin guion) porque
|
|
115
|
+
**npm no permite guiones en nombres de organización** — el registro
|
|
116
|
+
los rechaza desde el formulario de creación. La organización en GitHub
|
|
117
|
+
sí acepta guiones y se llama `saul-wade`. Como cada registry deriva el
|
|
118
|
+
scope del paquete del nombre de la org propietaria, terminamos con
|
|
119
|
+
`@saulwade/swl-ses` en npmjs y `@saul-wade/swl-ses` en GitHub Packages.
|
|
120
|
+
El contenido publicado es idéntico; el comando CLI `swl-ses` no cambia.
|
|
121
|
+
|
|
122
|
+
### Opción 3: Clonar y usar directamente
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
git clone https://github.com/saul-wade/swl-ses.git
|
|
126
|
+
cd swl-ses
|
|
127
|
+
claude
|
|
128
|
+
# Claude lee CLAUDE.md y tiene acceso a todo el sistema
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Opción 4: Plugin de Claude Code
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Dentro de una sesion de Claude Code:
|
|
135
|
+
/plugin marketplace add https://github.com/saul-wade/swl-ses
|
|
136
|
+
/plugin install swl-ses@saul-wade
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
> Para forzar siempre la última versión:
|
|
140
|
+
> `npx @saulwade/swl-ses@latest <comando>`
|
|
141
|
+
|
|
142
|
+
## Comandos del CLI
|
|
143
|
+
|
|
144
|
+
> Las tablas siguientes usan el alias corto `swl-ses@latest` (sin scope) por
|
|
145
|
+
> compatibilidad con instalación global (`npm install -g swl-ses` enlaza el
|
|
146
|
+
> bin con ese nombre). Para forzar el paquete canónico desde npmjs sin
|
|
147
|
+
> tocar la instalación global, sustituir por `@saulwade/swl-ses@latest`
|
|
148
|
+
> (npmjs canónico) o `@saul-wade/swl-ses@latest` (mirror GitHub Packages).
|
|
149
|
+
|
|
150
|
+
| Comando | Descripción |
|
|
151
|
+
|---------|-------------|
|
|
152
|
+
| `npx @saulwade/swl-ses@latest init` | Crea `.planning/` (plantillas de planificación) y `_userland/` (tus personalizaciones) en el proyecto actual. **No instala agentes ni skills.** |
|
|
153
|
+
| `npx @saulwade/swl-ses@latest install` | Instala agentes, skills, reglas, hooks y comandos `/swl:*` en el runtime destino (`.claude/` local o `~/.claude/` global). |
|
|
154
|
+
| `npx @saulwade/swl-ses@latest doctor` | Diagnostica problemas de la instalación |
|
|
155
|
+
| `npx @saulwade/swl-ses@latest update` | Actualiza componentes instalados |
|
|
156
|
+
| `npx @saulwade/swl-ses@latest uninstall` | Desinstala componentes del runtime |
|
|
157
|
+
| `npx @saulwade/swl-ses@latest info` | Muestra información del sistema instalado |
|
|
158
|
+
| `npx @saulwade/swl-ses@latest skills list` | Lista skills instalados |
|
|
159
|
+
| `npx @saulwade/swl-ses@latest skills add <fuente>` | Agrega skill desde repo Git, owner/repo, o path local |
|
|
160
|
+
| `npx @saulwade/swl-ses@latest skills remove <nombre>` | Remueve un skill individual |
|
|
161
|
+
| `npx @saulwade/swl-ses@latest agents list` | Lista agentes instalados |
|
|
162
|
+
| `npx @saulwade/swl-ses@latest agents add <fuente>` | Agrega agente desde repo Git o path local |
|
|
163
|
+
| `npx @saulwade/swl-ses@latest agents remove <nombre>` | Remueve un agente individual |
|
|
164
|
+
|
|
165
|
+
### Opciones de install
|
|
166
|
+
|
|
167
|
+
| Opción | Valores | Descripción |
|
|
168
|
+
|--------|---------|-------------|
|
|
169
|
+
| `--target <runtime>` | `claude`, `openclaude`, `copilot`, `opencode`, `codex`, `gemini` | Runtime destino (default: `claude`) |
|
|
170
|
+
| `--profile <perfil>` | Ver perfiles abajo | Perfil de instalación (default: `completo`) |
|
|
171
|
+
| `--global` | — | Instala los **componentes** en el directorio global (`~/.claude/`). No reinstala el binario CLI — ver "Modelo de dos planos" abajo. |
|
|
172
|
+
| `--local` | — | Instala en directorio local del proyecto (`.claude/`) |
|
|
173
|
+
| `--with <componentes>` | Separados por coma | Incluir módulos adicionales |
|
|
174
|
+
| `--without <componentes>` | Separados por coma | Excluir módulos |
|
|
175
|
+
| `--dry-run` | — | Muestra plan sin aplicar cambios |
|
|
176
|
+
| `--force` | — | Sobrescribe archivos existentes. **Excepción**: los componentes evolucionados por el usuario (auto-evolución local) NUNCA se sobrescriben — se preservan y se genera un diff de reconciliación. Los componentes pre-evolucionados de fábrica que el usuario no tocó sí se actualizan, con backup previo. |
|
|
177
|
+
|
|
178
|
+
### Modelo de dos planos: binario CLI vs componentes
|
|
179
|
+
|
|
180
|
+
Actualizar swl-ses tiene **dos planos independientes**:
|
|
181
|
+
|
|
182
|
+
1. **Binario CLI** (`swl-ses` en el PATH): se instala/actualiza con
|
|
183
|
+
`npm install -g @saulwade/swl-ses@latest`. `npx … install` **no** lo toca.
|
|
184
|
+
2. **Componentes** (agentes, skills, comandos, reglas, hooks en `~/.claude/` o
|
|
185
|
+
`.claude/`): se propagan con `npx -y @saulwade/swl-ses@latest install …`.
|
|
186
|
+
|
|
187
|
+
Para una actualización completa, ejecuta **ambos**:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
npm install -g @saulwade/swl-ses@latest # plano 1: binario
|
|
191
|
+
npx -y @saulwade/swl-ses@latest install --global --force # plano 2: componentes
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Correr solo uno deja el otro plano en una versión anterior.
|
|
195
|
+
|
|
196
|
+
### Perfiles de instalación
|
|
197
|
+
|
|
198
|
+
| Perfil | Descripción |
|
|
199
|
+
|--------|-------------|
|
|
200
|
+
| `core` | Mínimo viable: orquestador + agentes base + reglas + comandos |
|
|
201
|
+
| `backend-python` | FastAPI/Django + patrones + testing + async + API + datos |
|
|
202
|
+
| `backend-node` | Express/Fastify/NestJS + TypeScript + API + datos |
|
|
203
|
+
| `backend-java` | Spring Boot + Maven/Gradle + patrones Java + testing + API |
|
|
204
|
+
| `backend-go` | Go + Gin/Echo + patrones Go + testing + API |
|
|
205
|
+
| `backend-rust` | Rust + Axum/Actix + patrones Rust + testing + API |
|
|
206
|
+
| `backend-csharp` | .NET + ASP.NET Core + patrones C# + testing + API |
|
|
207
|
+
| `frontend-react` | React/Next.js + UX + estilos + accesibilidad |
|
|
208
|
+
| `frontend-angular` | Angular v20+ + signals + UX + estilos |
|
|
209
|
+
| `fullstack-python-angular` | Python backend + Angular frontend + datos + seguridad |
|
|
210
|
+
| `fullstack-node-react` | Node.js backend + React frontend + datos + seguridad |
|
|
211
|
+
| `fullstack-java-angular` | Java backend + Angular frontend + datos + seguridad |
|
|
212
|
+
| `fullstack-go-react` | Go backend + React frontend + datos + seguridad |
|
|
213
|
+
| `mobile` | Android + iOS + React Native/Flutter + UX |
|
|
214
|
+
| `devops` | CI/CD + cloud + observabilidad + releases + seguridad |
|
|
215
|
+
| `polyglot` | Todos los lenguajes: 11 lenguajes + revisores + build resolvers |
|
|
216
|
+
| `completo` | Todo: 60 agentes + 182 habilidades + 44 comandos + 77 reglas + 48 hooks |
|
|
217
|
+
|
|
218
|
+
### Targets soportados
|
|
219
|
+
|
|
220
|
+
| Target | Runtime | Soporte | Componentes |
|
|
221
|
+
|--------|---------|---------|-------------|
|
|
222
|
+
| `claude` | Claude Code | Completo | Agentes, skills, comandos, reglas, hooks |
|
|
223
|
+
| `openclaude` | OpenClaude | Completo | Agentes, skills, comandos, reglas, hooks |
|
|
224
|
+
| `opencode` | OpenCode | Completo | Agentes, skills, comandos, reglas, hooks |
|
|
225
|
+
| `gemini` | Gemini CLI | Completo | Agentes, skills, comandos, reglas, hooks |
|
|
226
|
+
| `copilot` | GitHub Copilot | Parcial | Solo agentes y reglas (limitación de plataforma) |
|
|
227
|
+
| `codex` | Codex CLI | Completo | Agentes en `~/.codex/agents/<name>.toml` (Sub-fase 11) + AGENTS.md con marcadores como índice + skills en `~/.agents/skills/<name>/SKILL.md` (path oficial OpenAI) + hooks en `~/.codex/hooks.json` (6 eventos) + MCP en `~/.codex/config.toml` con `--with-mcp` |
|
|
228
|
+
| `cursor` | Cursor | Completo | Agentes en `.cursor/agents/<name>.md` (Subagents) + skills en `.cursor/skills/<name>/SKILL.md` + reglas en `.cursor/rules/*.mdc` + hooks en `.cursor/hooks.json` (17 eventos) + MCP en `.cursor/mcp.json` con `--with-mcp` |
|
|
229
|
+
|
|
230
|
+
> **OpenClaude** usa los mismos directorios de proyecto que Claude Code (`.claude/`). Instalar `--target openclaude` en un proyecto con Claude Code aplica a ambos simultáneamente.
|
|
231
|
+
|
|
232
|
+
### Ejemplos
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Perfil básico en Claude Code
|
|
236
|
+
npx @saulwade/swl-ses@latest install --target claude --profile core
|
|
237
|
+
|
|
238
|
+
# Backend Python en Gemini CLI
|
|
239
|
+
npx @saulwade/swl-ses@latest install --target gemini --profile backend-python
|
|
240
|
+
|
|
241
|
+
# Frontend React en GitHub Copilot
|
|
242
|
+
npx @saulwade/swl-ses@latest install --target copilot --profile frontend-react
|
|
243
|
+
|
|
244
|
+
# Full-stack en OpenClaude (multi-proveedor, usa .claude/ igual que Claude Code)
|
|
245
|
+
npx @saulwade/swl-ses@latest install --target openclaude --profile fullstack-python-angular
|
|
246
|
+
|
|
247
|
+
# Full-stack en OpenCode
|
|
248
|
+
npx @saulwade/swl-ses@latest install --target opencode --profile fullstack-python-angular
|
|
249
|
+
|
|
250
|
+
# Perfil completo en directorio global
|
|
251
|
+
npx @saulwade/swl-ses@latest install --target claude --profile completo --global
|
|
252
|
+
|
|
253
|
+
# Agregar skills desde GitHub con selector interactivo
|
|
254
|
+
npx @saulwade/swl-ses@latest skills add anthropics/skills
|
|
255
|
+
|
|
256
|
+
# Agregar un skill específico por nombre
|
|
257
|
+
npx @saulwade/swl-ses@latest skills add anthropics/skills --skill docx
|
|
258
|
+
|
|
259
|
+
# Agregar todos los skills de un repo sin selector
|
|
260
|
+
npx @saulwade/swl-ses@latest skills add anthropics/skills --all
|
|
261
|
+
|
|
262
|
+
# Agregar skill desde URL completa
|
|
263
|
+
npx @saulwade/swl-ses@latest skills add https://github.com/user/repo --skill mi-skill
|
|
264
|
+
|
|
265
|
+
# Agregar agente desde path local
|
|
266
|
+
npx @saulwade/swl-ses@latest agents add ./mis-agentes --agent mi-agente
|
|
267
|
+
|
|
268
|
+
# Ver que se instalaria sin hacer cambios
|
|
269
|
+
npx @saulwade/swl-ses@latest install --target codex --profile core --dry-run
|
|
270
|
+
|
|
271
|
+
# Ver información del sistema
|
|
272
|
+
npx @saulwade/swl-ses@latest info --target claude
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## Agentes (59)
|
|
276
|
+
|
|
277
|
+
### Orquestación y Proceso
|
|
278
|
+
`orquestador-swl`, `producto-prd-swl`, `consolidador-swl`, `auto-evolución-swl`
|
|
279
|
+
|
|
280
|
+
### Discovery e Investigación
|
|
281
|
+
`investigador-swl`, `investigador-ux-swl`
|
|
282
|
+
|
|
283
|
+
### Arquitectura
|
|
284
|
+
`arquitecto-swl`, `planificador-swl`
|
|
285
|
+
|
|
286
|
+
### UX / UI / Diseño
|
|
287
|
+
`investigador-ux-swl`, `disenador-ui-swl`, `accesibilidad-wcag-swl`
|
|
288
|
+
|
|
289
|
+
### Frontend
|
|
290
|
+
`frontend-swl`, `frontend-react-swl`, `frontend-angular-swl`, `frontend-css-swl`, `frontend-tailwind-swl`
|
|
291
|
+
|
|
292
|
+
### Backend
|
|
293
|
+
`implementador-swl`, `backend-python-swl`, `backend-node-swl`, `backend-api-swl`, `backend-workers-swl`
|
|
294
|
+
|
|
295
|
+
### Backend Multi-Lenguaje (nuevo)
|
|
296
|
+
`backend-java-swl`, `backend-go-swl`, `backend-csharp-swl`, `backend-rust-swl`
|
|
297
|
+
|
|
298
|
+
### Mobile
|
|
299
|
+
`mobile-android-swl`, `mobile-ios-swl`, `mobile-cross-swl`
|
|
300
|
+
|
|
301
|
+
### Datos
|
|
302
|
+
`datos-swl`, `migrador-swl`
|
|
303
|
+
|
|
304
|
+
### Calidad
|
|
305
|
+
`tdd-qa-swl`, `revisor-codigo-swl`, `revisor-seguridad-swl`
|
|
306
|
+
|
|
307
|
+
### Revisores por Lenguaje (nuevo)
|
|
308
|
+
`revisor-java-swl`, `revisor-go-swl`, `revisor-rust-swl`, `revisor-csharp-swl`, `revisor-kotlin-swl`, `revisor-swift-swl`, `revisor-php-swl`, `revisor-nextjs-swl`
|
|
309
|
+
|
|
310
|
+
### Infraestructura
|
|
311
|
+
`devops-ci-swl`, `cloud-infra-swl`, `observabilidad-swl`
|
|
312
|
+
|
|
313
|
+
### Rendimiento y Releases
|
|
314
|
+
`rendimiento-swl`, `release-manager-swl`
|
|
315
|
+
|
|
316
|
+
### Documentación, Notificaciones, Debugging
|
|
317
|
+
`documentador-swl`, `notificador-swl`, `depurador-swl`
|
|
318
|
+
|
|
319
|
+
### Build Resolution
|
|
320
|
+
`resolutor-build-swl`
|
|
321
|
+
|
|
322
|
+
### LLM, Pagos y SRE
|
|
323
|
+
`llm-apps-swl`, `pagos-swl`, `sre-swl`
|
|
324
|
+
|
|
325
|
+
### Revisores adicionales
|
|
326
|
+
`revisor-typescript-swl`, `revisor-react-swl`, `revisor-angular-swl`
|
|
327
|
+
|
|
328
|
+
## Comandos (/swl:*)
|
|
329
|
+
|
|
330
|
+
| Comando | Función |
|
|
331
|
+
|---------|---------|
|
|
332
|
+
| `/swl:instalar` | Instalación interactiva dentro de Claude Code |
|
|
333
|
+
| `/swl:actualizar` | Actualizar sin desinstalar |
|
|
334
|
+
| `/swl:nuevo-proyecto` | Inicializar proyecto con PROYECTO.md y roadmap |
|
|
335
|
+
| `/swl:discutir-fase` | Recopilar contexto antes de planificar |
|
|
336
|
+
| `/swl:planear-fase` | Crear PLAN.md con vertical slices |
|
|
337
|
+
| `/swl:ejecutar-fase` | Ejecutar plan con commits atómicos |
|
|
338
|
+
| `/swl:verificar` | Verificar implementación contra spec |
|
|
339
|
+
| `/swl:mapear-codebase` | Analizar codebase existente |
|
|
340
|
+
| `/swl:checkpoint` | Guardar estado para continuar después |
|
|
341
|
+
| `/swl:compactar` | Reducir contexto preservando info clave |
|
|
342
|
+
| `/swl:aprender` | Extraer aprendizajes de la sesión |
|
|
343
|
+
| `/swl:evolucionar` | Auto-evolución de agentes/skills |
|
|
344
|
+
| `/swl:autoresearch` | Loop de auto-mejora iterativa contra checklist |
|
|
345
|
+
| `/swl:crear-skill` | Crear nuevo skill con guía interactiva |
|
|
346
|
+
| `/swl:status salud` | Diagnóstico de integridad del sistema |
|
|
347
|
+
| `/swl:release` | Ciclo de release SemVer |
|
|
348
|
+
| `/swl:auditar-deps` | Auditoría de dependencias (CVEs) |
|
|
349
|
+
| `/swl:contexto` | Cambiar modo de desarrollo activo (dev/review/research) |
|
|
350
|
+
| `/swl:sesiones` | Gestionar persistencia de sesiones de trabajo |
|
|
351
|
+
| `/swl:instintos` | Inspeccionar y gestionar instintos del sistema |
|
|
352
|
+
| `/swl:modelo` | Configurar modelo de IA por agente o globalmente |
|
|
353
|
+
| `/swl:status metricas` | Ver métricas de sesión y productividad |
|
|
354
|
+
| `/swl:status dashboard` | Dashboard histórico de uso multi-sesión (gráficas interactivas) |
|
|
355
|
+
| `/swl:revisar-impacto` | Análisis de impacto estructural: blast radius, risk score, comunidades |
|
|
356
|
+
| `/swl:evaluar-skill` | Evaluación formal de skills: 2 capas (estática + semántica), badges de calidad |
|
|
357
|
+
| `/swl:wiki` | Gestionar wiki de conocimiento del proyecto (init/ingest/query/lint) |
|
|
358
|
+
| `/swl:plugins` | Gestionar plugins y extensiones del sistema |
|
|
359
|
+
| `/swl:revisar` | Revisión de código por tecnología |
|
|
360
|
+
| `/swl:brainstorm` | Brainstorming estructurado |
|
|
361
|
+
| `/swl:ayuda` | Ayuda interactiva: catálogo, detalle de comando, búsqueda por keyword |
|
|
362
|
+
| `/swl:skill-search` | Buscar skills por keyword o dominio |
|
|
363
|
+
| `/swl:mcp-status` | Estado de servidores MCP conectados |
|
|
364
|
+
| `/swl:cron` | Gestionar tareas programadas |
|
|
365
|
+
| `/swl:gateway` | Configurar gateway multi-plataforma + modo relay bidireccional Telegram → Claude |
|
|
366
|
+
| `/swl:inbox` | Consumir comandos entrantes del gateway (enviados desde Telegram/Discord/webhook) |
|
|
367
|
+
| `/swl:reflect-skills` | Analizar historial JSONL para detectar patrones candidatos a skill/comando emergente |
|
|
368
|
+
| `/swl:contribuir` | Contribuir evoluciones al core (filtro dominio + PluginEval ≥80) |
|
|
369
|
+
| `/swl:exportar-vault` | Exportar resumen de sesión al vault personal (Obsidian u otro) |
|
|
370
|
+
|
|
371
|
+
Ver [COMANDOS.md](COMANDOS.md) para flags y opciones detalladas de cada comando.
|
|
372
|
+
Ver [MANUAL_USO.md](MANUAL_USO.md) para explicaciones prácticas de cada comando y guías de cuándo usarlos.
|
|
373
|
+
|
|
374
|
+
## Arquitectura
|
|
375
|
+
|
|
376
|
+
### Thin Orchestrator
|
|
377
|
+
|
|
378
|
+
```
|
|
379
|
+
Comando (/swl:planear-fase)
|
|
380
|
+
+-> Cargar habilidad (planear-fase/SKILL.md)
|
|
381
|
+
+-> Spawn agente (planificador-swl) con contexto fresco
|
|
382
|
+
+-> Verificar resultado (revisor-codigo-swl)
|
|
383
|
+
+-> Actualizar estado (.planning/ESTADO.md)
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### Estado en archivos (.planning/)
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
.planning/
|
|
390
|
+
PROYECTO.md # Vision, contexto, objetivos
|
|
391
|
+
REQUISITOS.md # Requisitos con IDs (REQ-001...)
|
|
392
|
+
HOJA-RUTA.md # Fases con entregables y verificación
|
|
393
|
+
ESTADO.md # Estado actual, decisiones, riesgos
|
|
394
|
+
CONTEXTO.md # Modo de desarrollo activo
|
|
395
|
+
METRICAS.md # Métricas de sesión
|
|
396
|
+
research/ # Investigación del dominio
|
|
397
|
+
fases/ # Documentos por fase (CONTEXTO, PLAN, RESUMEN, VERIFICACION)
|
|
398
|
+
sessions/ # Persistencia de sesiones JSON
|
|
399
|
+
comms/ # Comunicación entre agentes
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### Arquitectura de 4 capas
|
|
403
|
+
|
|
404
|
+
| Capa | Componente | Propósito |
|
|
405
|
+
|------|-----------|-----------|
|
|
406
|
+
| L1 | CLAUDE.md | Contexto persistente y reglas |
|
|
407
|
+
| L2 | Skills | Paquetes de conocimiento versionados |
|
|
408
|
+
| L3 | Hooks | Seguridad y automatización |
|
|
409
|
+
| L4 | Agents | Subagentes con contexto aislado |
|
|
410
|
+
|
|
411
|
+
## Gateway bidireccional con Telegram (opt-in)
|
|
412
|
+
|
|
413
|
+
El sistema incluye un gateway que permite **enviar comandos a Claude desde Telegram** (u otro adaptador) y recibir respuestas sin necesidad de estar frente al teclado. Todo el flujo es opt-in y queda en audit trail.
|
|
414
|
+
|
|
415
|
+
### Flujo
|
|
416
|
+
|
|
417
|
+
```
|
|
418
|
+
Telegram (móvil) → CommandRelay (valida) → .planning/inbox/cmd-*.json → /swl:inbox en Claude
|
|
419
|
+
o claude -p headless (auto)
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### Protecciones del CommandRelay
|
|
423
|
+
|
|
424
|
+
- Whitelist de usuarios por plataforma (`relay.platforms.<nombre>.allowedUsers`)
|
|
425
|
+
- Rechazo de payload injection: `<script>`, `.env`, `id_rsa`, `.ssh/`, etc.
|
|
426
|
+
- Límite de 4000 chars por mensaje
|
|
427
|
+
- Rate limit: 10 msg/min por usuario (configurable)
|
|
428
|
+
- Dedup por hash SHA-1 en ventana de 30s
|
|
429
|
+
- Audit trail append-only en `.planning/inbox/audit.jsonl`
|
|
430
|
+
|
|
431
|
+
### Modos de consumo
|
|
432
|
+
|
|
433
|
+
| Modo | Qué hace | Compatible |
|
|
434
|
+
|---|---|---|
|
|
435
|
+
| Portable (default) | Los mensajes se encolan; al ejecutar `/swl:inbox` en tu sesión Claude los procesas con juicio humano | Windows / Linux / macOS |
|
|
436
|
+
| Auto-exec headless | El bot invoca `claude -p --model haiku-4-5 --max-budget-usd 0.50 --allowedTools <solo-lectura>` en el cwd del proyecto y responde con el output | Windows / Linux / macOS |
|
|
437
|
+
| tmux inject (opt-in) | Daemon `scripts/inbox-tmux-inject.js` inyecta a una sesión tmux con `tmux send-keys` | Linux / macOS |
|
|
438
|
+
|
|
439
|
+
Configuración en `manifiestos/gateway-config.json`. Ver [MANUAL_USO.md](MANUAL_USO.md) sección `/swl:gateway` para setup completo.
|
|
440
|
+
|
|
441
|
+
## Skills bundled de Claude Code
|
|
442
|
+
|
|
443
|
+
Los agentes SWL pueden usar estos 17 skills que vienen con Claude Code:
|
|
444
|
+
|
|
445
|
+
`/pdf`, `/pptx`, `/docx`, `/xlsx`, `/frontend-design`, `/web-artifacts-builder`,
|
|
446
|
+
`/claude-api`, `/brand-guidelines`, `/skill-creator`, `/mcp-builder`,
|
|
447
|
+
`/webapp-testing`, `/internal-comms`, `/doc-coauthoring`, `/canvas-design`,
|
|
448
|
+
`/algorithmic-art`, `/theme-factory`, `/slack-gif-creator`
|
|
449
|
+
|
|
450
|
+
## Modo _userland/
|
|
451
|
+
|
|
452
|
+
Coloca tus agentes y habilidades personalizados en `_userland/`:
|
|
453
|
+
|
|
454
|
+
```
|
|
455
|
+
_userland/
|
|
456
|
+
agentes/
|
|
457
|
+
mi-agente-custom.md
|
|
458
|
+
habilidades/
|
|
459
|
+
mi-habilidad/
|
|
460
|
+
SKILL.md
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
El instalador detecta `_userland/`, hace merge con los componentes core y da prioridad a tus archivos.
|
|
464
|
+
|
|
465
|
+
## Publicación
|
|
466
|
+
|
|
467
|
+
El paquete se publica en dos registros (dual-publish):
|
|
468
|
+
|
|
469
|
+
| Registro | Paquete | Requiere auth |
|
|
470
|
+
|----------|---------|---------------|
|
|
471
|
+
| npmjs.org (canónico) | `@saulwade/swl-ses` | Solo para publicar |
|
|
472
|
+
| GitHub Packages (mirror) | `@saul-wade/swl-ses` | Para instalar y publicar |
|
|
473
|
+
|
|
474
|
+
```bash
|
|
475
|
+
# Publicar a ambos registros
|
|
476
|
+
npm run publish:all
|
|
477
|
+
|
|
478
|
+
# Solo GitHub Packages
|
|
479
|
+
npm run publish:github
|
|
480
|
+
|
|
481
|
+
# Solo npmjs
|
|
482
|
+
npm run publish:npmjs
|
|
483
|
+
|
|
484
|
+
# Simular sin publicar
|
|
485
|
+
npm run publish:dry
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
Ver [INSTALACION.md](INSTALACION.md) para configuración detallada de autenticación y publicación.
|
|
489
|
+
|
|
490
|
+
## Verificación (doctor)
|
|
491
|
+
|
|
492
|
+
```bash
|
|
493
|
+
npx @saulwade/swl-ses@latest doctor
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
Verifica: Node.js >= 22, runtimes detectados, `.planning/` completo, `_userland/` presente, estado íntegro, permisos, `.env` en `.gitignore`. Repara automáticamente hooks sin `"type": "command"` en settings.json.
|
|
497
|
+
|
|
498
|
+
## Estructura del repositorio
|
|
499
|
+
|
|
500
|
+
```
|
|
501
|
+
swl-ses/
|
|
502
|
+
package.json # Paquete npm con bin swl-ses
|
|
503
|
+
plugin.json # Manifest para Claude Code plugin system
|
|
504
|
+
bin/swl-ses.js # CLI principal
|
|
505
|
+
scripts/ # Lógica del CLI
|
|
506
|
+
comandos/ # Handlers de subcomandos (skills, agents, info)
|
|
507
|
+
lib/ # Librerías compartidas
|
|
508
|
+
transformadores/ # Transformadores por target (claude, copilot, opencode, codex, gemini)
|
|
509
|
+
detectar-runtime.js # Detección de runtimes de IA
|
|
510
|
+
gestor-componentes.js # Gestión de skills y agentes individuales
|
|
511
|
+
resolver-externo.js # Resolución de repos Git y paths locales
|
|
512
|
+
hooks-settings.js # Registro de hooks en settings.json
|
|
513
|
+
estado.js # Estado de instalación (v3)
|
|
514
|
+
manifiestos.js # Resolución de perfiles/módulos
|
|
515
|
+
seguridad.js # Validaciones de seguridad
|
|
516
|
+
manifiestos/ # Perfiles y módulos de instalación
|
|
517
|
+
agentes/ # 60 agentes especializados
|
|
518
|
+
habilidades/ # 160 habilidades modulares
|
|
519
|
+
comandos/swl/ # 44 comandos slash
|
|
520
|
+
reglas/ # 28 reglas base + 40 por lenguaje
|
|
521
|
+
hooks/ # 48 hooks + 76 librerías en hooks/lib/
|
|
522
|
+
schemas/ # 15 JSON Schemas
|
|
523
|
+
contextos/ # 3 modos de desarrollo
|
|
524
|
+
instintos/ # Instintos YAML con confianza
|
|
525
|
+
plantillas/ # Templates para .planning/
|
|
526
|
+
gateway/ # Gateway multi-plataforma (adapters + CommandRelay)
|
|
527
|
+
adapters/ # Telegram, Discord, Slack, WhatsApp, Email, Webhook
|
|
528
|
+
command-relay.js # Receptor bidireccional con whitelist + validaciones
|
|
529
|
+
_userland/ # Personalización del usuario
|
|
530
|
+
CLAUDE.md # Fuente de verdad del sistema
|
|
531
|
+
COMANDOS.md # Referencia completa de comandos
|
|
532
|
+
MANUAL_USO.md # Guía práctica de uso por comando
|
|
533
|
+
INSTALACION.md # Guía de configuración y publicación
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
## ¿Por qué usar SWL? (Análisis y Ejemplo Práctico)
|
|
537
|
+
|
|
538
|
+
El Sistema SWL transforma la manera tradicional de interactuar con la IA (prompts aislados y pérdida de contexto) en un flujo de **Ingeniería de Software Estructurada**.
|
|
539
|
+
|
|
540
|
+
### Beneficios Principales
|
|
541
|
+
|
|
542
|
+
1. **Estado Persistente y Cero Pérdida de Contexto:** El directorio `.planning/` mantiene documentado el producto (`PROYECTO.md`), los requerimientos (`REQUISITOS.md`) y el roadmap de desarrollo. La IA siempre sabrá en qué fase está el proyecto.
|
|
543
|
+
2. **Especialización (Agentes expertizados):** Delega las tareas a agentes especializados integrados (ej. `arquitecto-swl`, `frontend-react-swl`, `revisor-seguridad-swl`) en lugar de usar comandos genéricos.
|
|
544
|
+
3. **Desarrollo Metódico:** Fuerza un flujo de trabajo estructurado de *Planificar -> Ejecutar -> Verificar*.
|
|
545
|
+
4. **Comandos Simplificados (`/swl:*`):** Automatiza flujos de trabajo masivos de desarrollo (ej. `/swl:planear-fase` o `/swl:auditar-deps`).
|
|
546
|
+
5. **Personalización Absoluta:** El directorio `_userland/` permite inyectar plantillas, redefinir instintos de la IA y crear Habilidades (Skills) específicas para la lógica de negocio.
|
|
547
|
+
|
|
548
|
+
### Ejemplo de Flujo de Trabajo Real
|
|
549
|
+
|
|
550
|
+
Un proyecto típico (ej. construir una App Fullstack) usando SWL sigue estos pasos:
|
|
551
|
+
|
|
552
|
+
1. **Instalación y Setup inicial**
|
|
553
|
+
```bash
|
|
554
|
+
npx @saulwade/swl-ses@latest init
|
|
555
|
+
npx @saulwade/swl-ses@latest install --target claude --profile fullstack-node-react
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
2. **Definición del Proyecto (Discovery)**
|
|
559
|
+
Usa el comando `/swl:nuevo-proyecto` para estructurar la idea. El agente `producto-prd-swl` genera, tras hacerte un par de preguntas clave, los archivos `PROYECTO.md`, `REQUISITOS.md` y un `HOJA-RUTA.md` dividido en fases lógicas (Ej. Fase 1: Setup, Fase 2: Auth).
|
|
560
|
+
|
|
561
|
+
3. **Planeación de la Arquitectura**
|
|
562
|
+
Usa `/swl:planear-fase Fase 2`. El agente `planificador-swl` investigará tu código y creará un `PLAN.md` que detalla los archivos a crear, dependencias a instalar y plan de pruebas. Todo documentado para tu revisión antes de escribir código.
|
|
563
|
+
|
|
564
|
+
4. **Ejecución de la Fase**
|
|
565
|
+
Apruebas el plan y ejecutas `/swl:ejecutar-fase`. Los agentes de programación (ej. `backend-node-swl` y `frontend-react-swl`) implementan el código según el plan mediante commits "atómicos" que garantizan un desarrollo seguro.
|
|
566
|
+
|
|
567
|
+
5. **Revisión y Verificación**
|
|
568
|
+
Finalizas con `/swl:verificar`. El agente `revisor-codigo-swl` audita el nuevo código bajo reglas estrictas (Seguridad, Clean Code, patrones específicos) y comprueba que cumpla con los requisitos iniciales.
|
|
569
|
+
|
|
570
|
+
Con SWL, pasas de ser un "programador asistido por IA" a convertirte en el **Gerente de Ingeniería** de un equipo de IA altamente coordinado.
|
|
571
|
+
|
|
572
|
+
## Desarrollo
|
|
573
|
+
|
|
574
|
+
### Tests
|
|
575
|
+
|
|
576
|
+
```bash
|
|
577
|
+
npm test # tests unitarios con node:test nativo
|
|
578
|
+
npm run test:validate # Validación estructural del paquete
|
|
579
|
+
npm run test:all # Ambos
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
### CI/CD
|
|
583
|
+
|
|
584
|
+
El repositorio incluye GitHub Actions (`.github/workflows/ci.yml`) que ejecuta automáticamente en push/PR a main: sintaxis de hooks, validación estructural, tests unitarios y consistencia de versiones.
|
|
585
|
+
|
|
586
|
+
Los mismos workflows son distribuibles a cualquier proyecto usuario vía `/swl:configurar-ci init`: revisión de seguridad con Claude en cada PR (`swl-security.yml`), CI genérico Node 22+24 (`swl-ci.yml`) y releases automáticos desde conventional commits (`release-please.yml`). Instalación opt-in, no afecta al repo destino sin consentimiento explícito.
|
|
587
|
+
|
|
588
|
+
### Herramientas de mantenimiento
|
|
589
|
+
|
|
590
|
+
```bash
|
|
591
|
+
npm run generate:docs # Regenera INVENTARIO.md y SALUD.md desde el disco
|
|
592
|
+
npm run field-report # Reporte de uso real de skills y agentes
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
## Licencia
|
|
596
|
+
|
|
597
|
+
MIT
|