@saulwade/swl-ses 2.1.0 → 2.2.0
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 +1 -1
- package/README.md +1 -1
- package/bin/swl-ses.js +63 -0
- package/comandos/swl/adoptar-proyecto.md +258 -255
- package/comandos/swl/aprender.md +828 -840
- package/comandos/swl/aprobar-plan.md +23 -35
- package/comandos/swl/autoresearch.md +12 -14
- package/comandos/swl/briefing.md +5 -8
- package/comandos/swl/checkpoint.md +10 -15
- package/comandos/swl/claudemd.md +239 -234
- package/comandos/swl/configurar-ci.md +20 -19
- package/comandos/swl/cron.md +10 -12
- package/comandos/swl/ejecutar-fase.md +10 -3
- package/comandos/swl/evolucionar.md +6 -11
- package/comandos/swl/inbox.md +10 -10
- package/comandos/swl/modelo.md +7 -9
- package/comandos/swl/notificaciones.md +19 -116
- package/comandos/swl/nuevo-proyecto.md +205 -205
- package/comandos/swl/status.md +333 -348
- package/comandos/swl/verificar.md +817 -813
- package/habilidades/swl-claudemd/SKILL.md +10 -6
- package/hooks/lib/propose-step.js +1 -0
- package/llms.txt +1 -1
- package/manifiestos/skills-lock.json +5 -5
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/scripts/auditar-claudemd.js +38 -0
- package/scripts/cli/aprobar-plan.js +73 -0
- package/scripts/cli/briefing.js +23 -0
- package/scripts/cli/ciclo-evolucion.js +26 -0
- package/scripts/cli/configurar-ci.js +40 -0
- package/scripts/cli/derivar-feature-list.js +25 -0
- package/scripts/cli/detectar-host.js +27 -0
- package/scripts/cli/diary-entry.js +69 -0
- package/scripts/cli/execution-state.js +18 -0
- package/scripts/cli/gateway-notify.js +41 -0
- package/scripts/cli/liberar-fase.js +42 -0
- package/scripts/cli/loop-telemetry.js +125 -0
- package/scripts/cli/mark-evolved.js +56 -0
- package/scripts/cli/metricas-dora.js +26 -0
- package/scripts/cli/near-duplicate.js +55 -0
- package/scripts/cli/notificaciones.js +123 -0
- package/scripts/cli/propose-step.js +29 -0
- package/scripts/cli/schedule-parse.js +19 -0
- package/scripts/cli/sugerir-modelo.js +20 -0
- package/scripts/cli/verificar-plan.js +36 -0
- package/scripts/cli/verificar-trazabilidad.js +35 -0
- package/scripts/derivar-feature-list.js +1 -0
- package/scripts/lib/auditar-invocaciones-comandos.js +104 -0
- package/scripts/lib/resolver-plan-fase.js +37 -0
- package/scripts/validar.js +13 -0
- package/scripts/verificar-trazabilidad.js +1 -1
|
@@ -134,19 +134,14 @@ Aplica siguiendo las reglas de governance y safety checks del skill:
|
|
|
134
134
|
|
|
135
135
|
Respeta la governance: PARCHE auto-aplicable, MENOR requiere revisión, MAYOR requiere aprobación humana. Modificar agentes siempre requiere aprobación humana.
|
|
136
136
|
|
|
137
|
-
**OBLIGATORIO — Marcar como evolucionado
|
|
137
|
+
**OBLIGATORIO — Marcar como evolucionado** con el subcomando del CLI (resuelve
|
|
138
|
+
cross-scope; ver `docs/invocacion-cli-cross-scope.md`):
|
|
138
139
|
|
|
139
140
|
```bash
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
from: pkg.version,
|
|
145
|
-
by: 'evolucionar',
|
|
146
|
-
note: '[descripción breve del cambio]'
|
|
147
|
-
});
|
|
148
|
-
console.log(r.marked ? 'Marcado como evolucionado' : 'Error: ' + r.error);
|
|
149
|
-
"
|
|
141
|
+
swl-ses mark-evolved "[RUTA_ARCHIVO_MODIFICADO]" \
|
|
142
|
+
--by=evolucionar \
|
|
143
|
+
--note="[descripción breve del cambio]"
|
|
144
|
+
# fallback: npx -y @saulwade/swl-ses@latest mark-evolved "[RUTA]" --by=evolucionar --note="..."
|
|
150
145
|
```
|
|
151
146
|
|
|
152
147
|
Reemplazar los placeholders entre corchetes con los valores reales.
|
package/comandos/swl/inbox.md
CHANGED
|
@@ -58,16 +58,16 @@ node -e "const R = require('./gateway/command-relay'); const fs = require('fs');
|
|
|
58
58
|
|
|
59
59
|
### Paso 4 — Notificar de vuelta al usuario (opcional)
|
|
60
60
|
|
|
61
|
-
Si el comando merece respuesta al canal origen (Telegram, Discord), encolar un
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
texto
|
|
68
|
-
to
|
|
69
|
-
|
|
70
|
-
|
|
61
|
+
Si el comando merece respuesta al canal origen (Telegram, Discord), encolar un
|
|
62
|
+
`gateway_notification` con el subcomando del CLI (resuelve cross-scope; ver
|
|
63
|
+
`docs/invocacion-cli-cross-scope.md`):
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
swl-ses gateway-notify \
|
|
67
|
+
--texto="✅ Comando procesado: <resumen>" \
|
|
68
|
+
--to=telegram \
|
|
69
|
+
--reply-to="<chatId>"
|
|
70
|
+
# fallback: npx -y @saulwade/swl-ses@latest gateway-notify --texto="..." --to=telegram --reply-to="<chatId>"
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
### Paso 5 — Auditar
|
package/comandos/swl/modelo.md
CHANGED
|
@@ -35,19 +35,17 @@ Si el usuario pasó una descripción entre comillas, usar esa descripción direc
|
|
|
35
35
|
|
|
36
36
|
## Paso 2 — Evaluar complejidad
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
Evaluar la complejidad con el subcomando del CLI (resuelve cross-scope: repo
|
|
39
|
+
madre / `swl-ses` en PATH / `npx`; ver `docs/invocacion-cli-cross-scope.md`):
|
|
39
40
|
|
|
40
41
|
```bash
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const result = sugerirModelo(desc);
|
|
45
|
-
console.log(JSON.stringify(result, null, 2));
|
|
46
|
-
" "DESCRIPCIÓN_DE_LA_TAREA"
|
|
42
|
+
swl-ses sugerir-modelo "DESCRIPCIÓN_DE_LA_TAREA"
|
|
43
|
+
# fallback si swl-ses no está en PATH:
|
|
44
|
+
# npx -y @saulwade/swl-ses@latest sugerir-modelo "DESCRIPCIÓN_DE_LA_TAREA"
|
|
47
45
|
```
|
|
48
46
|
|
|
49
|
-
Si el
|
|
50
|
-
|
|
47
|
+
Si el subcomando falla (CLI no disponible), aplicar la tabla de routing
|
|
48
|
+
manualmente (ver Paso 3).
|
|
51
49
|
|
|
52
50
|
## Paso 3 — Tabla de routing manual (fallback)
|
|
53
51
|
|
|
@@ -191,50 +191,21 @@ Subcomandos disponibles:
|
|
|
191
191
|
|
|
192
192
|
### Paso 2 — Ejecutar según subcomando
|
|
193
193
|
|
|
194
|
-
|
|
194
|
+
Todos los subcomandos usan el CLI cross-scope (resuelve repo madre / `swl-ses`
|
|
195
|
+
en PATH / `npx`; ver `docs/invocacion-cli-cross-scope.md`). El subcomando
|
|
196
|
+
encapsula el formato de salida y la detección de TTY.
|
|
195
197
|
|
|
196
|
-
|
|
197
|
-
node -e "
|
|
198
|
-
const { init } = require('./scripts/lib/notificaciones-telegram');
|
|
199
|
-
init({ esTty: true }).then(r => {
|
|
200
|
-
console.log('[resultado]', r.resultado, r.detalle || '');
|
|
201
|
-
process.exit(r.resultado === 'error' ? 1 : 0);
|
|
202
|
-
}).catch(e => { console.error(e.message); process.exit(1); });
|
|
203
|
-
"
|
|
204
|
-
```
|
|
198
|
+
**Para `init`** (requiere TTY; el subcomando detecta su ausencia y guía):
|
|
205
199
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
```
|
|
210
|
-
Este subcomando requiere entrada interactiva (TTY).
|
|
211
|
-
Ejecuta desde tu terminal:
|
|
212
|
-
node -e "require('./scripts/lib/notificaciones-telegram').init({ esTty: true })"
|
|
213
|
-
O usa el instalador:
|
|
214
|
-
npx @saulwade/swl-ses@latest install
|
|
200
|
+
```bash
|
|
201
|
+
swl-ses notificaciones init
|
|
202
|
+
# fallback: npx -y @saulwade/swl-ses@latest notificaciones init
|
|
215
203
|
```
|
|
216
204
|
|
|
217
205
|
**Para `status`**:
|
|
218
206
|
|
|
219
207
|
```bash
|
|
220
|
-
|
|
221
|
-
const { status } = require('./scripts/lib/notificaciones-telegram');
|
|
222
|
-
const s = status();
|
|
223
|
-
console.log('');
|
|
224
|
-
console.log('Notificaciones Telegram — estado actual');
|
|
225
|
-
console.log(' .env: ', s.envExiste ? 'existe' : 'no existe');
|
|
226
|
-
console.log(' token: ', s.tokenConfigurado ? 'configurado' : 'no configurado');
|
|
227
|
-
console.log(' chat_id: ', s.chatIdConfigurado ? ('configurado (' + s.chatIdParcial + ')') : 'no configurado');
|
|
228
|
-
const mudos = s.proyectosSilenciados.length
|
|
229
|
-
? s.proyectosSilenciados.join(', ')
|
|
230
|
-
: 'ninguno';
|
|
231
|
-
console.log(' proyectos mudos: ', mudos);
|
|
232
|
-
const botS = require('./scripts/lib/notificaciones-telegram').botStatus();
|
|
233
|
-
console.log(' bot daemon: ', botS.activo ? ('activo (PID ' + botS.pid + ')') : 'detenido');
|
|
234
|
-
const autostartLabel = process.platform === 'win32' ? 'Scheduled Task' : (process.platform === 'linux' ? 'systemd --user' : 'LaunchAgent');
|
|
235
|
-
console.log(' autostart: usar /swl:notificaciones bot enable-autostart (' + autostartLabel + ')');
|
|
236
|
-
console.log('');
|
|
237
|
-
"
|
|
208
|
+
swl-ses notificaciones status
|
|
238
209
|
```
|
|
239
210
|
|
|
240
211
|
**Para `disable`**:
|
|
@@ -247,122 +218,54 @@ Antes de invocar la lib, pedir confirmación al usuario:
|
|
|
247
218
|
|
|
248
219
|
Si responde `n` o vacío: cancelar sin tocar nada.
|
|
249
220
|
|
|
250
|
-
Si responde `s
|
|
221
|
+
Si responde `s` (agregar `--purge` para eliminar también las credenciales, tras
|
|
222
|
+
confirmación adicional del usuario):
|
|
251
223
|
|
|
252
224
|
```bash
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
const r = disable({ confirmar: true, conservarEnv: true });
|
|
256
|
-
console.log('[resultado]', r.resultado, r.detalle || '');
|
|
257
|
-
process.exit(r.resultado === 'error' ? 1 : 0);
|
|
258
|
-
"
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
Si se pasó `--purge`, pedir confirmación adicional:
|
|
262
|
-
```
|
|
263
|
-
¿Eliminar también las credenciales (~/.claude/notifications/.env)? [s/N]
|
|
225
|
+
swl-ses notificaciones disable # conserva ~/.claude/notifications/.env
|
|
226
|
+
swl-ses notificaciones disable --purge # elimina también las credenciales
|
|
264
227
|
```
|
|
265
|
-
Si confirma, llamar con `conservarEnv: false`.
|
|
266
228
|
|
|
267
229
|
**Para `repair`**:
|
|
268
230
|
|
|
269
231
|
```bash
|
|
270
|
-
|
|
271
|
-
const { repair } = require('./scripts/lib/notificaciones-telegram');
|
|
272
|
-
repair().then(r => {
|
|
273
|
-
console.log('[repair]', r.resultado, r.detalle || '');
|
|
274
|
-
process.exit(r.resultado === 'error' ? 1 : 0);
|
|
275
|
-
}).catch(e => { console.error(e.message); process.exit(1); });
|
|
276
|
-
"
|
|
232
|
+
swl-ses notificaciones repair
|
|
277
233
|
```
|
|
278
234
|
|
|
279
235
|
**Para `bot start`**:
|
|
280
236
|
|
|
281
237
|
```bash
|
|
282
|
-
|
|
283
|
-
const { botStart } = require('./scripts/lib/notificaciones-telegram');
|
|
284
|
-
const r = botStart();
|
|
285
|
-
if (r.ok) {
|
|
286
|
-
console.log('[bot]', r.mensaje || 'Bot iniciado.');
|
|
287
|
-
} else {
|
|
288
|
-
console.error('[bot] Error:', r.error);
|
|
289
|
-
process.exit(1);
|
|
290
|
-
}
|
|
291
|
-
"
|
|
238
|
+
swl-ses notificaciones bot-start
|
|
292
239
|
```
|
|
293
240
|
|
|
294
241
|
**Para `bot stop`**:
|
|
295
242
|
|
|
296
243
|
```bash
|
|
297
|
-
|
|
298
|
-
const { botStop } = require('./scripts/lib/notificaciones-telegram');
|
|
299
|
-
const r = botStop();
|
|
300
|
-
if (r.ok) {
|
|
301
|
-
console.log('[bot]', r.mensaje || 'Bot detenido.');
|
|
302
|
-
} else {
|
|
303
|
-
console.error('[bot] Error:', r.error);
|
|
304
|
-
process.exit(1);
|
|
305
|
-
}
|
|
306
|
-
"
|
|
244
|
+
swl-ses notificaciones bot-stop
|
|
307
245
|
```
|
|
308
246
|
|
|
309
247
|
**Para `bot status`**:
|
|
310
248
|
|
|
311
249
|
```bash
|
|
312
|
-
|
|
313
|
-
const { botStatus } = require('./scripts/lib/notificaciones-telegram');
|
|
314
|
-
const r = botStatus();
|
|
315
|
-
console.log('');
|
|
316
|
-
console.log('Bot daemon — estado actual');
|
|
317
|
-
console.log(' activo:', r.activo ? 'sí' : 'no');
|
|
318
|
-
console.log(' pid: ', r.pid !== null ? r.pid : 'n/a');
|
|
319
|
-
console.log('');
|
|
320
|
-
"
|
|
250
|
+
swl-ses notificaciones bot-status
|
|
321
251
|
```
|
|
322
252
|
|
|
323
253
|
**Para `bot restart`**:
|
|
324
254
|
|
|
325
255
|
```bash
|
|
326
|
-
|
|
327
|
-
const { botRestart } = require('./scripts/lib/notificaciones-telegram');
|
|
328
|
-
const r = botRestart();
|
|
329
|
-
if (r.ok) {
|
|
330
|
-
console.log('[bot]', r.mensaje || 'Bot reiniciado.');
|
|
331
|
-
} else {
|
|
332
|
-
console.error('[bot] Error:', r.error);
|
|
333
|
-
process.exit(1);
|
|
334
|
-
}
|
|
335
|
-
"
|
|
256
|
+
swl-ses notificaciones bot-restart
|
|
336
257
|
```
|
|
337
258
|
|
|
338
259
|
**Para `bot enable-autostart`**:
|
|
339
260
|
|
|
340
261
|
```bash
|
|
341
|
-
|
|
342
|
-
const { botEnableAutostart } = require('./scripts/lib/notificaciones-telegram');
|
|
343
|
-
const r = botEnableAutostart();
|
|
344
|
-
if (r.ok) {
|
|
345
|
-
console.log('[autostart]', r.mensaje || 'Autostart habilitado.');
|
|
346
|
-
} else {
|
|
347
|
-
console.error('[autostart] Error:', r.error);
|
|
348
|
-
process.exit(1);
|
|
349
|
-
}
|
|
350
|
-
"
|
|
262
|
+
swl-ses notificaciones bot-enable-autostart
|
|
351
263
|
```
|
|
352
264
|
|
|
353
265
|
**Para `bot disable-autostart`**:
|
|
354
266
|
|
|
355
267
|
```bash
|
|
356
|
-
|
|
357
|
-
const { botDisableAutostart } = require('./scripts/lib/notificaciones-telegram');
|
|
358
|
-
const r = botDisableAutostart();
|
|
359
|
-
if (r.ok) {
|
|
360
|
-
console.log('[autostart]', r.mensaje || 'Autostart deshabilitado.');
|
|
361
|
-
} else {
|
|
362
|
-
console.error('[autostart] Error:', r.error);
|
|
363
|
-
process.exit(1);
|
|
364
|
-
}
|
|
365
|
-
"
|
|
268
|
+
swl-ses notificaciones bot-disable-autostart
|
|
366
269
|
```
|
|
367
270
|
|
|
368
271
|
### Paso 3 — Reportar resultado
|