@saulwade/swl-ses 2.6.0 → 2.6.1
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 +197 -197
- package/README.md +600 -600
- package/agentes/_intent-spec.md +73 -73
- package/agentes/_propose-step.md +90 -90
- package/agentes/accesibilidad-wcag-swl.md +690 -690
- package/agentes/arquitecto-swl.md +267 -267
- package/agentes/auto-evolucion-swl.md +932 -932
- package/agentes/backend-csharp-swl.md +420 -420
- package/agentes/backend-go-swl.md +390 -390
- package/agentes/backend-java-swl.md +281 -281
- package/agentes/backend-rust-swl.md +364 -364
- package/agentes/backend-workers-swl.md +482 -482
- package/agentes/cloud-infra-swl.md +509 -509
- package/agentes/consolidador-swl.md +541 -541
- package/agentes/depurador-swl.md +352 -352
- package/agentes/devops-ci-swl.md +400 -400
- package/agentes/disenador-ui-swl.md +569 -569
- package/agentes/documentador-swl.md +345 -345
- package/agentes/frontend-angular-swl.md +621 -621
- package/agentes/frontend-css-swl.md +716 -716
- package/agentes/frontend-react-swl.md +692 -692
- package/agentes/frontend-swl.md +496 -496
- package/agentes/frontend-tailwind-swl.md +826 -826
- package/agentes/investigador-swl.md +432 -432
- package/agentes/investigador-ux-swl.md +505 -505
- package/agentes/migrador-swl.md +442 -442
- package/agentes/mobile-android-swl.md +511 -511
- package/agentes/mobile-cross-swl.md +541 -541
- package/agentes/mobile-ios-swl.md +502 -502
- package/agentes/mobile-testing-swl.md +302 -302
- package/agentes/nemesis-auditor-swl.md +285 -285
- package/agentes/observabilidad-swl.md +438 -438
- package/agentes/pagos-swl.md +310 -310
- package/agentes/perfilador-usuario-swl.md +321 -321
- package/agentes/planificador-swl.md +399 -399
- package/agentes/producto-prd-swl.md +589 -589
- package/agentes/red-team-swl.md +218 -218
- package/agentes/release-manager-swl.md +590 -590
- package/agentes/rendimiento-swl.md +713 -713
- package/agentes/revisor-angular-swl.md +278 -278
- package/agentes/revisor-csharp-swl.md +264 -264
- package/agentes/revisor-go-swl.md +259 -259
- package/agentes/revisor-java-swl.md +257 -257
- package/agentes/revisor-kotlin-swl.md +273 -273
- package/agentes/revisor-nextjs-swl.md +281 -281
- package/agentes/revisor-php-swl.md +271 -271
- package/agentes/revisor-react-swl.md +278 -278
- package/agentes/revisor-rust-swl.md +346 -346
- package/agentes/revisor-seguridad-swl.md +399 -399
- package/agentes/revisor-swift-swl.md +268 -268
- package/agentes/revisor-typescript-swl.md +346 -346
- package/agentes/tdd-qa-swl.md +393 -393
- package/comandos/swl/actualizar.md +174 -174
- package/comandos/swl/adoptar-proyecto.md +265 -265
- package/comandos/swl/aprender.md +836 -836
- package/comandos/swl/aprobar-plan.md +146 -146
- package/comandos/swl/auditar-deps.md +134 -134
- package/comandos/swl/autoresearch.md +264 -264
- package/comandos/swl/ayuda.md +224 -224
- package/comandos/swl/brainstorm.md +51 -51
- package/comandos/swl/briefing.md +119 -119
- package/comandos/swl/checkpoint.md +325 -325
- package/comandos/swl/claudemd.md +234 -234
- package/comandos/swl/compactar.md +310 -310
- package/comandos/swl/configurar-ci.md +235 -235
- package/comandos/swl/contexto.md +110 -110
- package/comandos/swl/contribuir.md +233 -233
- package/comandos/swl/crear-skill.md +292 -292
- package/comandos/swl/cron.md +194 -194
- package/comandos/swl/discutir-fase.md +169 -169
- package/comandos/swl/ejecutar-fase.md +233 -233
- package/comandos/swl/evaluar-skill.md +520 -520
- package/comandos/swl/evolucion-continua.md +73 -73
- package/comandos/swl/evolucionar.md +267 -267
- package/comandos/swl/exportar-vault.md +583 -583
- package/comandos/swl/fix.md +118 -118
- package/comandos/swl/gateway.md +158 -158
- package/comandos/swl/inbox.md +116 -116
- package/comandos/swl/instalar.md +220 -220
- package/comandos/swl/instintos.md +86 -86
- package/comandos/swl/mapear-codebase.md +312 -312
- package/comandos/swl/mcp-status.md +175 -175
- package/comandos/swl/modelo.md +100 -100
- package/comandos/swl/nemesis.md +433 -433
- package/comandos/swl/notificaciones.md +299 -299
- package/comandos/swl/nuevo-proyecto.md +251 -251
- package/comandos/swl/planear-fase.md +263 -263
- package/comandos/swl/plugins.md +256 -256
- package/comandos/swl/predecir.md +169 -169
- package/comandos/swl/reflect-skills.md +125 -125
- package/comandos/swl/release.md +450 -450
- package/comandos/swl/revisar-impacto.md +201 -201
- package/comandos/swl/revisar.md +330 -330
- package/comandos/swl/seguridad.md +189 -189
- package/comandos/swl/sesiones.md +200 -200
- package/comandos/swl/skill-search.md +113 -113
- package/comandos/swl/status.md +345 -345
- package/comandos/swl/verificar.md +817 -817
- package/comandos/swl/wiki.md +620 -620
- package/gateway/cron/jobs.example.json +12 -12
- package/habilidades/auto-evolucion-protocolo/SKILL.md +294 -294
- package/habilidades/backend-async-postgres-testing/SKILL.md +2 -1
- package/habilidades/changelog-generator/SKILL.md +174 -174
- package/habilidades/compactacion-contexto/SKILL.md +2 -1
- package/habilidades/contenedores-docker/SKILL.md +4 -2
- package/habilidades/doubt-driven-review/SKILL.md +207 -207
- package/habilidades/drift-detection/SKILL.md +1 -1
- package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
- package/habilidades/extractor-de-aprendizajes/SKILL.md +8 -2
- package/habilidades/git-worktrees-paralelo/SKILL.md +19 -1
- package/habilidades/harness-claude-code/SKILL.md +314 -314
- package/habilidades/instalar-sistema/SKILL.md +227 -227
- package/habilidades/planear-fase/SKILL.md +358 -358
- package/habilidades/prevencion-sobreingenieria/recursos/soluciones-nativas.md +166 -166
- package/habilidades/prevencion-sobreingenieria/recursos/variables-residuales-post-refactor.md +85 -85
- package/habilidades/proceso-ingenieria-requerimientos/SKILL.md +147 -147
- package/habilidades/release-semver/SKILL.md +2 -2
- package/habilidades/tdd-workflow/SKILL.md +749 -749
- package/hooks/agente-lifecycle.js +1 -1
- package/hooks/audit-trail.js +1 -1
- package/hooks/auto-consolidacion.js +1 -1
- package/hooks/captura-acciones-post.js +1 -1
- package/hooks/captura-acciones-session.js +1 -1
- package/hooks/captura-feedback-usuario.js +1 -1
- package/hooks/contexto-iteracion.js +1 -1
- package/hooks/contexto-subagente.js +68 -68
- package/hooks/degradacion-instintos.js +1 -1
- package/hooks/grafo-contexto.js +1 -1
- package/hooks/guardrail-modelo.js +1 -1
- package/hooks/inbox-aviso.js +1 -1
- package/hooks/inyeccion-contexto.js +1 -1
- package/hooks/lib/agent-matcher.js +1 -1
- package/hooks/lib/agent-routing.js +1 -1
- package/hooks/lib/captura-acciones.js +1 -1
- package/hooks/lib/etapa-metricas.js +1 -1
- package/hooks/lib/evolution-tracker.js +1 -1
- package/hooks/lib/gateway-notify.js +193 -193
- package/hooks/lib/mcp-health.js +1 -1
- package/hooks/lib/notificacion-formato.js +58 -0
- package/hooks/lib/nudge-tracker.js +1 -1
- package/hooks/lib/otlp-exporter.js +1 -1
- package/hooks/lib/propose-step.js +1 -1
- package/hooks/lib/raiz-proyecto.js +127 -102
- package/hooks/lib/run-log.js +1 -1
- package/hooks/lib/singleton-guard.js +20 -13
- package/hooks/lib/telegram-cliente.js +11 -3
- package/hooks/notificacion-telegram.js +13 -3
- package/hooks/preservar-estado-pre-compact.js +1 -1
- package/hooks/registro-turnos.js +1 -1
- package/hooks/resumen-sesion.js +1 -1
- package/hooks/risk-scoring.js +1 -1
- package/hooks/session-briefing.js +1 -1
- package/hooks/spec-gate.js +1 -1
- package/hooks/sugerir-regenerar-inventario.js +1 -1
- package/hooks/tdd-gate.js +1 -1
- package/hooks/telemetria-agentes.js +1 -1
- package/hooks/telemetria-skill-routing.js +1 -1
- package/hooks/tracking-costos.js +1 -1
- package/hooks/validar-formato-post-subagente.js +1 -1
- package/hooks/validar-intent-spec.js +1 -1
- package/hooks/validar-planning-paths.js +1 -1
- package/llms.txt +29 -29
- package/manifiestos/canonical-hashes.json +5588 -5257
- package/manifiestos/hooks-config.json +469 -469
- package/manifiestos/invariantes-criticos.json +30 -30
- package/manifiestos/modulos.json +1429 -1428
- package/manifiestos/skills-lock.json +1275 -1275
- package/package.json +94 -94
- package/plugin.json +369 -369
- package/scripts/auditar-clases-conocidas.js +134 -134
- package/scripts/bootstrap-instintos.js +85 -14
- package/scripts/canario-hooks.js +166 -166
- package/scripts/cli/autonomia.js +23 -23
- package/scripts/cli/benchmark-memoria.js +37 -37
- package/scripts/cli/ciclo-autonomo.js +73 -73
- package/scripts/cli/ciclo-fase-b.js +102 -102
- package/scripts/cli/guardrail-metrics.js +39 -39
- package/scripts/cli/memoria-search.js +69 -69
- package/scripts/cli/nudge-accionar.js +39 -39
- package/scripts/cli/run-eval.js +38 -38
- package/scripts/doctor.js +26 -3
- package/scripts/evidencia-valor.js +101 -101
- package/scripts/field-report.js +16 -16
- package/scripts/instalador.js +13 -0
- package/scripts/lib/activar-hooks-proyecto.js +116 -116
- package/scripts/lib/ciclo-autonomo/candidatos.js +174 -174
- package/scripts/lib/ciclo-autonomo/config.js +165 -165
- package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -174
- package/scripts/lib/ciclo-autonomo/fallback.js +77 -77
- package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -139
- package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -112
- package/scripts/lib/ciclo-autonomo/index.js +301 -301
- package/scripts/lib/ciclo-autonomo/lock.js +124 -124
- package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -122
- package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -240
- package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -248
- package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -190
- package/scripts/lib/ciclo-autonomo/yaml-instintos.js +535 -535
- package/scripts/lib/evidencia-valor.js +228 -228
- package/scripts/lib/expandir-targets.js +71 -71
- package/scripts/lib/limpiar-basura-global.js +161 -0
- package/scripts/lib/toml-merge.js +204 -204
- package/scripts/mcp-server/auth.js +105 -105
- package/scripts/mcp-server/cache.js +106 -106
- package/scripts/tui/pantallas/install-wizard.js +403 -403
- package/instintos/.backups/perfil-usuario.yaml.2026-07-10-165128.bak +0 -53
- package/instintos/.backups/proyecto.yaml.2026-07-10-165128.bak +0 -372
package/comandos/swl/predecir.md
CHANGED
|
@@ -1,169 +1,169 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: swl:predecir
|
|
3
|
-
description: >
|
|
4
|
-
Análisis predictivo pre-implementación: 5 personas expertas (Arquitecto,
|
|
5
|
-
Seguridad, Rendimiento, Confiabilidad, Abogado del Diablo) analizan EN FRÍO
|
|
6
|
-
un cambio propuesto antes de implementarlo, un sintetizador deduplica con
|
|
7
|
-
anti-herd check y entrega hallazgos rankeados por severidad × confianza ×
|
|
8
|
-
acuerdo. Usar antes de /swl:planear-fase en fases de riesgo, antes de un
|
|
9
|
-
refactor grande, o cuando el costo de descubrir un problema DESPUÉS de
|
|
10
|
-
implementar es alto. Con --adversarial usa el set atacante (Rompedor,
|
|
11
|
-
Tramposo, Escalador, Novato, Insider). Con --abogado-diablo delega al agente
|
|
12
|
-
abogado-diablo-swl una crítica profunda de la decisión (pre-mortem +
|
|
13
|
-
doubt-driven review) cuyo dictamen puede ser NO PROCEDER.
|
|
14
|
-
argument-hint: "[descripción del cambio] [--scope <glob>] [--adversarial] [--abogado-diablo] [--presupuesto N] [--chain planear-fase]"
|
|
15
|
-
allowed-tools: [Read, Grep, Glob, Bash, Write, Agent, Skill]
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
# /swl:predecir — Análisis predictivo pre-implementación
|
|
19
|
-
|
|
20
|
-
Eres el coordinador de un panel de personas expertas que evalúan un cambio
|
|
21
|
-
propuesto ANTES de que se implemente. El valor del comando está en el
|
|
22
|
-
aislamiento: cada persona analiza en frío, sin ver a las demás — los sesgos
|
|
23
|
-
de manada y de confirmación se eliminan por construcción.
|
|
24
|
-
|
|
25
|
-
Complementa (no reemplaza) a `/swl:verificar` y `/swl:nemesis`: esos auditan
|
|
26
|
-
código que YA existe; `predecir` ataca el plan cuando corregirlo cuesta una
|
|
27
|
-
conversación, no un refactor.
|
|
28
|
-
|
|
29
|
-
## Cuándo usar
|
|
30
|
-
|
|
31
|
-
- Antes de `/swl:planear-fase` en fases que tocan auth, dinero, datos
|
|
32
|
-
productivos o contratos públicos de API.
|
|
33
|
-
- Antes de un refactor cross-módulo o una migración de schema.
|
|
34
|
-
- Cuando el usuario duda entre implementar o no un cambio con blast radius alto.
|
|
35
|
-
|
|
36
|
-
**Cuándo NO usar**: cambios triviales (1-2 archivos), código ya implementado
|
|
37
|
-
(usar `/swl:verificar`), o decisiones entre 2+ alternativas (usar el debate
|
|
38
|
-
adversarial de `Skill("proceso-debate-adversarial")` — predecir analiza UNA
|
|
39
|
-
propuesta, el debate compara varias).
|
|
40
|
-
|
|
41
|
-
## Flags
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
[descripción] La propuesta de cambio a analizar (obligatoria; si falta, preguntar)
|
|
45
|
-
--scope <glob> Archivos relevantes para grounding (default: derivar del texto)
|
|
46
|
-
--adversarial Set de personas atacantes en vez del set default
|
|
47
|
-
--abogado-diablo Crítica profunda de la decisión (agente abogado-diablo-swl) en vez del panel
|
|
48
|
-
--presupuesto N Máximo de hallazgos totales (default: 40 → 8 por persona)
|
|
49
|
-
--chain planear-fase Al terminar, ofrecer arrancar /swl:planear-fase con los hallazgos como contexto
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## Paso 0 — Carga y configuración
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
Skill("proceso-debate-adversarial")
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
El skill define el protocolo COLD START, el anti-herd check y el formato de
|
|
59
|
-
síntesis. Las definiciones de personas viven en
|
|
60
|
-
`habilidades/proceso-debate-adversarial/recursos/personas.md`.
|
|
61
|
-
|
|
62
|
-
Confirmar con el usuario: propuesta, scope, set de personas, presupuesto.
|
|
63
|
-
|
|
64
|
-
## Paso 1 — Reconocimiento del codebase
|
|
65
|
-
|
|
66
|
-
Construir el paquete de conocimiento que recibirá CADA persona (idéntico para
|
|
67
|
-
todas): descripción de la propuesta + inventario de archivos del scope +
|
|
68
|
-
dependencias relevantes + superficie de API afectada + cobertura de tests del
|
|
69
|
-
área. Usar `code-review-graph` si está disponible (blast radius, callers);
|
|
70
|
-
si no, Grep/Glob dirigidos. Máximo ~1,500 tokens — las personas analizan, no
|
|
71
|
-
exploran.
|
|
72
|
-
|
|
73
|
-
## Paso 2 — Análisis en frío (5 invocaciones Agent independientes)
|
|
74
|
-
|
|
75
|
-
Por cada persona, UNA invocación del Agent tool (general-purpose o el agente
|
|
76
|
-
afín al dominio) con prompt autocontenido:
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
Eres [persona] — [enfoque de recursos/personas.md].
|
|
80
|
-
Propuesta: [descripción]
|
|
81
|
-
Contexto del codebase: [paquete del Paso 1]
|
|
82
|
-
Tu tarea: encuentra hasta [presupuesto/5] problemas que esta propuesta
|
|
83
|
-
causaría, desde tu perspectiva. Por cada uno: título, severidad
|
|
84
|
-
(crítico/alto/medio/bajo), confianza 0-100%, archivo:línea si aplica,
|
|
85
|
-
recomendación concreta. Preguntas guía: [de la persona]. Red flags: [de la
|
|
86
|
-
persona]. NO incluyas elogios ni evaluación general — solo hallazgos.
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
Las 5 invocaciones pueden correr en paralelo. NUNCA pasar el output de una
|
|
90
|
-
persona a otra — el aislamiento es el mecanismo del comando.
|
|
91
|
-
|
|
92
|
-
## Paso 3 — Síntesis con anti-herd check
|
|
93
|
-
|
|
94
|
-
Aplicar el protocolo de síntesis del skill:
|
|
95
|
-
|
|
96
|
-
1. Deduplicar (mismo archivo:línea + mismo problema → fusionar, severidad más alta gana).
|
|
97
|
-
2. Registrar disensos (dos personas en desacuerdo → ambas posturas visibles).
|
|
98
|
-
3. **Anti-herd check**: si todas las personas coinciden en el hallazgo top,
|
|
99
|
-
generar explícitamente ≥1 contraargumento antes de aceptarlo.
|
|
100
|
-
4. Rankear: `severidad × confianza promedio × número de personas que coinciden`.
|
|
101
|
-
|
|
102
|
-
## Paso 4 — Reporte y persistencia
|
|
103
|
-
|
|
104
|
-
Persistir en `.planning/loops/predecir-[timestamp]/` con
|
|
105
|
-
`hooks/lib/loop-telemetry.js` (tipo `predecir`, columnas `iteracion,
|
|
106
|
-
timestamp, hallazgo, severidad, confianza, personas, archivo_linea`; una fila
|
|
107
|
-
por hallazgo consensuado) + `escribirHandoff` con `source: 'swl:predecir'`,
|
|
108
|
-
`findings` rankeados y `config: {propuesta, scope}`.
|
|
109
|
-
|
|
110
|
-
Reportar al usuario:
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
=== Predicción — [propuesta resumida] ===
|
|
114
|
-
Personas: [set] | Hallazgos brutos: N | Tras dedup: M
|
|
115
|
-
|
|
116
|
-
## Top hallazgos (rankeados)
|
|
117
|
-
| # | Hallazgo | Severidad | Confianza | Acuerdo | archivo:línea | Recomendación |
|
|
118
|
-
|
|
119
|
-
## Disensos registrados
|
|
120
|
-
- [persona X sostiene A; persona Y sostiene B — evidencia de cada una]
|
|
121
|
-
|
|
122
|
-
## Veredicto del panel
|
|
123
|
-
[PROCEDER | PROCEDER CON AJUSTES (lista) | REPLANTEAR (razón)]
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
## Modo `--abogado-diablo` — crítica de la decisión, no del cambio
|
|
127
|
-
|
|
128
|
-
El panel de personas **asume que el cambio se hará** y enumera problemas de
|
|
129
|
-
implementación. Cuando la duda es anterior — *¿deberíamos hacer esto?* — el
|
|
130
|
-
modo abogado del diablo reemplaza los Pasos 2-3 por UNA invocación profunda:
|
|
131
|
-
|
|
132
|
-
```
|
|
133
|
-
Agent(abogado-diablo-swl) con:
|
|
134
|
-
- La propuesta + el paquete de conocimiento del Paso 1
|
|
135
|
-
- Instrucción: ejecutar su protocolo completo (pre-mortem ×2-3 +
|
|
136
|
-
doubt-driven review + steelman) y emitir dictamen
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
Diferencias con el panel:
|
|
140
|
-
|
|
141
|
-
| | Panel (default/adversarial) | `--abogado-diablo` |
|
|
142
|
-
|---|---|---|
|
|
143
|
-
| Pregunta que responde | "¿Qué problemas causará este cambio?" | "¿Deberíamos hacer este cambio?" |
|
|
144
|
-
| Veredicto posible | PROCEDER / AJUSTES / REPLANTEAR | PROCEDER / CON CONDICIONES / **NO PROCEDER** |
|
|
145
|
-
| Técnica | 5 perspectivas en frío + anti-herd | Pre-mortem + alternativas descartadas + contraevidencia + trigger de reversión |
|
|
146
|
-
| Profundidad | Amplitud (5 ángulos, ~8 hallazgos c/u) | Profundidad (1 crítica exhaustiva de la decisión) |
|
|
147
|
-
|
|
148
|
-
El Paso 4 (persistencia y reporte) aplica igual — el dictamen se persiste en el
|
|
149
|
-
mismo directorio de handoff con `tipo: 'predecir-abogado-diablo'`. Combinable
|
|
150
|
-
en secuencia: primero `--abogado-diablo` (¿hacerlo?); si el dictamen es
|
|
151
|
-
PROCEDER, corrida normal del panel (¿qué cuidar al hacerlo?).
|
|
152
|
-
|
|
153
|
-
## Paso 5 — Encadenamiento (si `--chain planear-fase`)
|
|
154
|
-
|
|
155
|
-
Ofrecer arrancar `/swl:planear-fase` indicando el directorio del handoff. El
|
|
156
|
-
planificador incorpora los hallazgos `crítico`/`alto` como restricciones del
|
|
157
|
-
PLAN.md — cada uno se atiende con una tarea o se descarta con justificación
|
|
158
|
-
explícita (nunca silenciosamente).
|
|
159
|
-
|
|
160
|
-
## Reglas de comportamiento
|
|
161
|
-
|
|
162
|
-
- NUNCA compartir contexto entre personas — una invocación Agent por persona.
|
|
163
|
-
- NUNCA omitir el anti-herd check cuando hay unanimidad.
|
|
164
|
-
- Los hallazgos con archivo:línea citan código REAL verificado en el Paso 1 —
|
|
165
|
-
regla `verificar-citas-normativas.md § Familia 2` aplica al propio output.
|
|
166
|
-
- El comando NO modifica código — produce análisis. Implementar es del flujo
|
|
167
|
-
planear → ejecutar.
|
|
168
|
-
- Con 0 hallazgos crítico/alto: decirlo claramente y no inflar hallazgos
|
|
169
|
-
menores para justificar el costo del panel.
|
|
1
|
+
---
|
|
2
|
+
name: swl:predecir
|
|
3
|
+
description: >
|
|
4
|
+
Análisis predictivo pre-implementación: 5 personas expertas (Arquitecto,
|
|
5
|
+
Seguridad, Rendimiento, Confiabilidad, Abogado del Diablo) analizan EN FRÍO
|
|
6
|
+
un cambio propuesto antes de implementarlo, un sintetizador deduplica con
|
|
7
|
+
anti-herd check y entrega hallazgos rankeados por severidad × confianza ×
|
|
8
|
+
acuerdo. Usar antes de /swl:planear-fase en fases de riesgo, antes de un
|
|
9
|
+
refactor grande, o cuando el costo de descubrir un problema DESPUÉS de
|
|
10
|
+
implementar es alto. Con --adversarial usa el set atacante (Rompedor,
|
|
11
|
+
Tramposo, Escalador, Novato, Insider). Con --abogado-diablo delega al agente
|
|
12
|
+
abogado-diablo-swl una crítica profunda de la decisión (pre-mortem +
|
|
13
|
+
doubt-driven review) cuyo dictamen puede ser NO PROCEDER.
|
|
14
|
+
argument-hint: "[descripción del cambio] [--scope <glob>] [--adversarial] [--abogado-diablo] [--presupuesto N] [--chain planear-fase]"
|
|
15
|
+
allowed-tools: [Read, Grep, Glob, Bash, Write, Agent, Skill]
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# /swl:predecir — Análisis predictivo pre-implementación
|
|
19
|
+
|
|
20
|
+
Eres el coordinador de un panel de personas expertas que evalúan un cambio
|
|
21
|
+
propuesto ANTES de que se implemente. El valor del comando está en el
|
|
22
|
+
aislamiento: cada persona analiza en frío, sin ver a las demás — los sesgos
|
|
23
|
+
de manada y de confirmación se eliminan por construcción.
|
|
24
|
+
|
|
25
|
+
Complementa (no reemplaza) a `/swl:verificar` y `/swl:nemesis`: esos auditan
|
|
26
|
+
código que YA existe; `predecir` ataca el plan cuando corregirlo cuesta una
|
|
27
|
+
conversación, no un refactor.
|
|
28
|
+
|
|
29
|
+
## Cuándo usar
|
|
30
|
+
|
|
31
|
+
- Antes de `/swl:planear-fase` en fases que tocan auth, dinero, datos
|
|
32
|
+
productivos o contratos públicos de API.
|
|
33
|
+
- Antes de un refactor cross-módulo o una migración de schema.
|
|
34
|
+
- Cuando el usuario duda entre implementar o no un cambio con blast radius alto.
|
|
35
|
+
|
|
36
|
+
**Cuándo NO usar**: cambios triviales (1-2 archivos), código ya implementado
|
|
37
|
+
(usar `/swl:verificar`), o decisiones entre 2+ alternativas (usar el debate
|
|
38
|
+
adversarial de `Skill("proceso-debate-adversarial")` — predecir analiza UNA
|
|
39
|
+
propuesta, el debate compara varias).
|
|
40
|
+
|
|
41
|
+
## Flags
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
[descripción] La propuesta de cambio a analizar (obligatoria; si falta, preguntar)
|
|
45
|
+
--scope <glob> Archivos relevantes para grounding (default: derivar del texto)
|
|
46
|
+
--adversarial Set de personas atacantes en vez del set default
|
|
47
|
+
--abogado-diablo Crítica profunda de la decisión (agente abogado-diablo-swl) en vez del panel
|
|
48
|
+
--presupuesto N Máximo de hallazgos totales (default: 40 → 8 por persona)
|
|
49
|
+
--chain planear-fase Al terminar, ofrecer arrancar /swl:planear-fase con los hallazgos como contexto
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Paso 0 — Carga y configuración
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
Skill("proceso-debate-adversarial")
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
El skill define el protocolo COLD START, el anti-herd check y el formato de
|
|
59
|
+
síntesis. Las definiciones de personas viven en
|
|
60
|
+
`habilidades/proceso-debate-adversarial/recursos/personas.md`.
|
|
61
|
+
|
|
62
|
+
Confirmar con el usuario: propuesta, scope, set de personas, presupuesto.
|
|
63
|
+
|
|
64
|
+
## Paso 1 — Reconocimiento del codebase
|
|
65
|
+
|
|
66
|
+
Construir el paquete de conocimiento que recibirá CADA persona (idéntico para
|
|
67
|
+
todas): descripción de la propuesta + inventario de archivos del scope +
|
|
68
|
+
dependencias relevantes + superficie de API afectada + cobertura de tests del
|
|
69
|
+
área. Usar `code-review-graph` si está disponible (blast radius, callers);
|
|
70
|
+
si no, Grep/Glob dirigidos. Máximo ~1,500 tokens — las personas analizan, no
|
|
71
|
+
exploran.
|
|
72
|
+
|
|
73
|
+
## Paso 2 — Análisis en frío (5 invocaciones Agent independientes)
|
|
74
|
+
|
|
75
|
+
Por cada persona, UNA invocación del Agent tool (general-purpose o el agente
|
|
76
|
+
afín al dominio) con prompt autocontenido:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
Eres [persona] — [enfoque de recursos/personas.md].
|
|
80
|
+
Propuesta: [descripción]
|
|
81
|
+
Contexto del codebase: [paquete del Paso 1]
|
|
82
|
+
Tu tarea: encuentra hasta [presupuesto/5] problemas que esta propuesta
|
|
83
|
+
causaría, desde tu perspectiva. Por cada uno: título, severidad
|
|
84
|
+
(crítico/alto/medio/bajo), confianza 0-100%, archivo:línea si aplica,
|
|
85
|
+
recomendación concreta. Preguntas guía: [de la persona]. Red flags: [de la
|
|
86
|
+
persona]. NO incluyas elogios ni evaluación general — solo hallazgos.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Las 5 invocaciones pueden correr en paralelo. NUNCA pasar el output de una
|
|
90
|
+
persona a otra — el aislamiento es el mecanismo del comando.
|
|
91
|
+
|
|
92
|
+
## Paso 3 — Síntesis con anti-herd check
|
|
93
|
+
|
|
94
|
+
Aplicar el protocolo de síntesis del skill:
|
|
95
|
+
|
|
96
|
+
1. Deduplicar (mismo archivo:línea + mismo problema → fusionar, severidad más alta gana).
|
|
97
|
+
2. Registrar disensos (dos personas en desacuerdo → ambas posturas visibles).
|
|
98
|
+
3. **Anti-herd check**: si todas las personas coinciden en el hallazgo top,
|
|
99
|
+
generar explícitamente ≥1 contraargumento antes de aceptarlo.
|
|
100
|
+
4. Rankear: `severidad × confianza promedio × número de personas que coinciden`.
|
|
101
|
+
|
|
102
|
+
## Paso 4 — Reporte y persistencia
|
|
103
|
+
|
|
104
|
+
Persistir en `.planning/loops/predecir-[timestamp]/` con
|
|
105
|
+
`hooks/lib/loop-telemetry.js` (tipo `predecir`, columnas `iteracion,
|
|
106
|
+
timestamp, hallazgo, severidad, confianza, personas, archivo_linea`; una fila
|
|
107
|
+
por hallazgo consensuado) + `escribirHandoff` con `source: 'swl:predecir'`,
|
|
108
|
+
`findings` rankeados y `config: {propuesta, scope}`.
|
|
109
|
+
|
|
110
|
+
Reportar al usuario:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
=== Predicción — [propuesta resumida] ===
|
|
114
|
+
Personas: [set] | Hallazgos brutos: N | Tras dedup: M
|
|
115
|
+
|
|
116
|
+
## Top hallazgos (rankeados)
|
|
117
|
+
| # | Hallazgo | Severidad | Confianza | Acuerdo | archivo:línea | Recomendación |
|
|
118
|
+
|
|
119
|
+
## Disensos registrados
|
|
120
|
+
- [persona X sostiene A; persona Y sostiene B — evidencia de cada una]
|
|
121
|
+
|
|
122
|
+
## Veredicto del panel
|
|
123
|
+
[PROCEDER | PROCEDER CON AJUSTES (lista) | REPLANTEAR (razón)]
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Modo `--abogado-diablo` — crítica de la decisión, no del cambio
|
|
127
|
+
|
|
128
|
+
El panel de personas **asume que el cambio se hará** y enumera problemas de
|
|
129
|
+
implementación. Cuando la duda es anterior — *¿deberíamos hacer esto?* — el
|
|
130
|
+
modo abogado del diablo reemplaza los Pasos 2-3 por UNA invocación profunda:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
Agent(abogado-diablo-swl) con:
|
|
134
|
+
- La propuesta + el paquete de conocimiento del Paso 1
|
|
135
|
+
- Instrucción: ejecutar su protocolo completo (pre-mortem ×2-3 +
|
|
136
|
+
doubt-driven review + steelman) y emitir dictamen
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Diferencias con el panel:
|
|
140
|
+
|
|
141
|
+
| | Panel (default/adversarial) | `--abogado-diablo` |
|
|
142
|
+
|---|---|---|
|
|
143
|
+
| Pregunta que responde | "¿Qué problemas causará este cambio?" | "¿Deberíamos hacer este cambio?" |
|
|
144
|
+
| Veredicto posible | PROCEDER / AJUSTES / REPLANTEAR | PROCEDER / CON CONDICIONES / **NO PROCEDER** |
|
|
145
|
+
| Técnica | 5 perspectivas en frío + anti-herd | Pre-mortem + alternativas descartadas + contraevidencia + trigger de reversión |
|
|
146
|
+
| Profundidad | Amplitud (5 ángulos, ~8 hallazgos c/u) | Profundidad (1 crítica exhaustiva de la decisión) |
|
|
147
|
+
|
|
148
|
+
El Paso 4 (persistencia y reporte) aplica igual — el dictamen se persiste en el
|
|
149
|
+
mismo directorio de handoff con `tipo: 'predecir-abogado-diablo'`. Combinable
|
|
150
|
+
en secuencia: primero `--abogado-diablo` (¿hacerlo?); si el dictamen es
|
|
151
|
+
PROCEDER, corrida normal del panel (¿qué cuidar al hacerlo?).
|
|
152
|
+
|
|
153
|
+
## Paso 5 — Encadenamiento (si `--chain planear-fase`)
|
|
154
|
+
|
|
155
|
+
Ofrecer arrancar `/swl:planear-fase` indicando el directorio del handoff. El
|
|
156
|
+
planificador incorpora los hallazgos `crítico`/`alto` como restricciones del
|
|
157
|
+
PLAN.md — cada uno se atiende con una tarea o se descarta con justificación
|
|
158
|
+
explícita (nunca silenciosamente).
|
|
159
|
+
|
|
160
|
+
## Reglas de comportamiento
|
|
161
|
+
|
|
162
|
+
- NUNCA compartir contexto entre personas — una invocación Agent por persona.
|
|
163
|
+
- NUNCA omitir el anti-herd check cuando hay unanimidad.
|
|
164
|
+
- Los hallazgos con archivo:línea citan código REAL verificado en el Paso 1 —
|
|
165
|
+
regla `verificar-citas-normativas.md § Familia 2` aplica al propio output.
|
|
166
|
+
- El comando NO modifica código — produce análisis. Implementar es del flujo
|
|
167
|
+
planear → ejecutar.
|
|
168
|
+
- Con 0 hallazgos crítico/alto: decirlo claramente y no inflar hallazgos
|
|
169
|
+
menores para justificar el costo del panel.
|
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: swl:reflect-skills
|
|
3
|
-
description: Analiza el historial de sesiones de Claude Code para detectar patrones de uso repetidos que sean candidatos a convertirse en nuevos skills, comandos o agentes del sistema SWL. Inspirado en el patrón Reflect de claude-reflect (Karpathy). Sin dependencias externas.
|
|
4
|
-
allowed_tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# /swl:reflect-skills — Descubrimiento de skills emergentes
|
|
8
|
-
|
|
9
|
-
Analiza los archivos JSONL del historial de Claude Code (`~/.claude/projects/<proyecto>/*.jsonl`) y la cola de feedback del usuario (`.planning/evolution/feedback-queue.jsonl`) para detectar intenciones repetidas que podrían formalizarse como skills, comandos o agentes nuevos del sistema SWL.
|
|
10
|
-
|
|
11
|
-
Complementa a `/swl:aprender` (que trabaja sobre la sesión actual) y a `/swl:evolucionar` (que opera sobre metadatos de agentes/skills existentes). Este comando mira el **historial acumulado** y propone componentes emergentes basándose en la frecuencia real de uso.
|
|
12
|
-
|
|
13
|
-
## Cuándo usar este comando
|
|
14
|
-
|
|
15
|
-
- Cada 2-4 semanas, para identificar nuevos dominios donde el usuario está pidiendo cosas recurrentes sin un skill dedicado.
|
|
16
|
-
- Antes de publicar una versión MINOR del sistema SWL, para decidir si vale la pena formalizar algún patrón emergente.
|
|
17
|
-
- Después de un proyecto grande, para extraer el know-how ganado como componentes reutilizables.
|
|
18
|
-
- Cuando `auto-evolucion.js` reporte alta densidad de acciones sin skill asociado.
|
|
19
|
-
|
|
20
|
-
## Cuándo NO usar
|
|
21
|
-
|
|
22
|
-
- Para extraer aprendizajes de la sesión actual → usar `/swl:aprender`.
|
|
23
|
-
- Para mejorar un agente/skill existente basado en métricas de fallo → usar `/swl:evolucionar`.
|
|
24
|
-
- Para actualizar el perfil del usuario → usar el agente `perfilador-usuario-swl`.
|
|
25
|
-
- Para buscar conocimiento ya registrado → usar `/swl:wiki query` o `Skill("memoria-busqueda")`.
|
|
26
|
-
|
|
27
|
-
## Flujo
|
|
28
|
-
|
|
29
|
-
### Paso 1 — Ejecutar el análisis
|
|
30
|
-
|
|
31
|
-
Corre el script determinista que lee los JSONL del proyecto actual y clusteriza intenciones:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
npx -y @saulwade/swl-ses@latest reflect-skills --ventana=30 --umbral=3
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Parámetros:
|
|
38
|
-
- `--ventana N` — días de historial a analizar (default: 30)
|
|
39
|
-
- `--umbral N` — mínimo de ocurrencias para reportar cluster (default: 3)
|
|
40
|
-
- `--json` — salida estructurada en JSON
|
|
41
|
-
|
|
42
|
-
El script produce:
|
|
43
|
-
- Reporte textual en stdout
|
|
44
|
-
- Archivo estructurado en `.planning/evolution/reflect-skills-report.json`
|
|
45
|
-
|
|
46
|
-
### Paso 2 — Leer y clasificar los candidatos
|
|
47
|
-
|
|
48
|
-
Lee el reporte generado y clasifica cada candidato en una de estas categorías:
|
|
49
|
-
|
|
50
|
-
| Categoría | Acción recomendada |
|
|
51
|
-
|-----------|-------------------|
|
|
52
|
-
| Patrón técnico nuevo (ej. "integrar redis cache") | Proponer como skill en el dominio correspondiente (`backend-`, `frontend-`, etc.) |
|
|
53
|
-
| Operación repetida con pasos fijos (ej. "ejecuta pruebas de carga") | Proponer como comando `/swl:<nombre>` |
|
|
54
|
-
| Tarea que cruza varios agentes (ej. "audita dependencias + actualiza CHANGELOG") | Proponer como flujo del `orquestador-swl` |
|
|
55
|
-
| Corrección del usuario repetida | Enviar al `perfilador-usuario-swl` |
|
|
56
|
-
| Falso positivo (prompt genérico, ruido) | Ignorar y anotar en la bitácora del comando |
|
|
57
|
-
|
|
58
|
-
### Paso 3 — Validar con el usuario
|
|
59
|
-
|
|
60
|
-
Presenta al usuario los top 3-5 candidatos con:
|
|
61
|
-
- Nombre propuesto y tipo (skill / comando / flujo)
|
|
62
|
-
- Cantidad de ocurrencias en la ventana
|
|
63
|
-
- 2-3 ejemplos de prompts reales
|
|
64
|
-
- Justificación de por qué formalizarlo
|
|
65
|
-
|
|
66
|
-
**Esperar aprobación explícita** antes de generar componentes. No crear skills automáticamente sin confirmación.
|
|
67
|
-
|
|
68
|
-
### Paso 4 — Crear los componentes aprobados
|
|
69
|
-
|
|
70
|
-
Para cada candidato aprobado:
|
|
71
|
-
|
|
72
|
-
- **Skill**: invocar `/swl:crear-skill` con el dominio correspondiente.
|
|
73
|
-
- **Comando**: delegar al agente `orquestador-swl` para crear `comandos/swl/<nombre>.md` siguiendo la plantilla.
|
|
74
|
-
- **Flujo**: delegar al `auto-evolucion-swl` para proponer evolución al orquestador.
|
|
75
|
-
|
|
76
|
-
Registrar la decisión en `.planning/APRENDIZAJES.md` bajo la sección **Patrones emergentes**.
|
|
77
|
-
|
|
78
|
-
### Paso 5 — Cerrar ciclo
|
|
79
|
-
|
|
80
|
-
- Actualizar `CLAUDE.md` si se agregó un componente al sistema (tabla de comandos, skills por dominio).
|
|
81
|
-
- Bumpar versión del sistema si procede (MINOR para skill/comando nuevo, ver `git-workflow.md`).
|
|
82
|
-
- Commit atómico con mensaje: `feat(sistema): agrega <componente> desde /swl:reflect-skills`.
|
|
83
|
-
|
|
84
|
-
## Salida esperada
|
|
85
|
-
|
|
86
|
-
Reporte legible como:
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
━━━ Reflect Skills — análisis de historial ━━━
|
|
90
|
-
Ventana: últimos 30 días
|
|
91
|
-
Prompts analizados: 412
|
|
92
|
-
Umbral de repetición: 3
|
|
93
|
-
|
|
94
|
-
2 candidato(s) detectado(s):
|
|
95
|
-
|
|
96
|
-
1. [SKILL] redis-cache-integrar
|
|
97
|
-
Intención: "integrar redis" (5×)
|
|
98
|
-
Motivo: Intención "integrar redis" repetida 5× → candidato a skill que encapsule el patrón.
|
|
99
|
-
Ejemplos:
|
|
100
|
-
• integra redis como cache layer en el endpoint de productos
|
|
101
|
-
• integrar redis con invalidation por tags
|
|
102
|
-
• quiero integrar redis stream para workers
|
|
103
|
-
|
|
104
|
-
2. [COMANDO] release-verificar
|
|
105
|
-
Intención: "verificar release" (4×)
|
|
106
|
-
Motivo: Verbo operativo "verificar" repetido 4× → candidato a automatización por comando slash.
|
|
107
|
-
Ejemplos:
|
|
108
|
-
• verifica que el release esté listo
|
|
109
|
-
• verificar release antes de publicar
|
|
110
|
-
• verificar release 5.10.5
|
|
111
|
-
|
|
112
|
-
Feedback del usuario capturado: 7 entradas
|
|
113
|
-
- correccion: 3
|
|
114
|
-
- preferencia: 2
|
|
115
|
-
- memoria: 2
|
|
116
|
-
→ Revisar con perfilador-usuario-swl y /swl:aprender.
|
|
117
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
## Notas
|
|
121
|
-
|
|
122
|
-
- El clustering es heurístico (tokens + verbos de acción), **no semántico con embeddings**. Busca simplicidad y zero-deps sobre precisión absoluta.
|
|
123
|
-
- Si un candidato tiene nombre similar a un skill/comando existente, revisar primero si se puede **extender** en lugar de crear uno nuevo.
|
|
124
|
-
- El comando NO escribe a APRENDIZAJES.md automáticamente — el usuario decide qué formalizar.
|
|
125
|
-
- Para el modo con embeddings (SentenceTransformers + ChromaDB), ver `Skill("wiki-conocimiento")` y `/swl:wiki` que ya implementan el patrón Karpathy completo.
|
|
1
|
+
---
|
|
2
|
+
name: swl:reflect-skills
|
|
3
|
+
description: Analiza el historial de sesiones de Claude Code para detectar patrones de uso repetidos que sean candidatos a convertirse en nuevos skills, comandos o agentes del sistema SWL. Inspirado en el patrón Reflect de claude-reflect (Karpathy). Sin dependencias externas.
|
|
4
|
+
allowed_tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /swl:reflect-skills — Descubrimiento de skills emergentes
|
|
8
|
+
|
|
9
|
+
Analiza los archivos JSONL del historial de Claude Code (`~/.claude/projects/<proyecto>/*.jsonl`) y la cola de feedback del usuario (`.planning/evolution/feedback-queue.jsonl`) para detectar intenciones repetidas que podrían formalizarse como skills, comandos o agentes nuevos del sistema SWL.
|
|
10
|
+
|
|
11
|
+
Complementa a `/swl:aprender` (que trabaja sobre la sesión actual) y a `/swl:evolucionar` (que opera sobre metadatos de agentes/skills existentes). Este comando mira el **historial acumulado** y propone componentes emergentes basándose en la frecuencia real de uso.
|
|
12
|
+
|
|
13
|
+
## Cuándo usar este comando
|
|
14
|
+
|
|
15
|
+
- Cada 2-4 semanas, para identificar nuevos dominios donde el usuario está pidiendo cosas recurrentes sin un skill dedicado.
|
|
16
|
+
- Antes de publicar una versión MINOR del sistema SWL, para decidir si vale la pena formalizar algún patrón emergente.
|
|
17
|
+
- Después de un proyecto grande, para extraer el know-how ganado como componentes reutilizables.
|
|
18
|
+
- Cuando `auto-evolucion.js` reporte alta densidad de acciones sin skill asociado.
|
|
19
|
+
|
|
20
|
+
## Cuándo NO usar
|
|
21
|
+
|
|
22
|
+
- Para extraer aprendizajes de la sesión actual → usar `/swl:aprender`.
|
|
23
|
+
- Para mejorar un agente/skill existente basado en métricas de fallo → usar `/swl:evolucionar`.
|
|
24
|
+
- Para actualizar el perfil del usuario → usar el agente `perfilador-usuario-swl`.
|
|
25
|
+
- Para buscar conocimiento ya registrado → usar `/swl:wiki query` o `Skill("memoria-busqueda")`.
|
|
26
|
+
|
|
27
|
+
## Flujo
|
|
28
|
+
|
|
29
|
+
### Paso 1 — Ejecutar el análisis
|
|
30
|
+
|
|
31
|
+
Corre el script determinista que lee los JSONL del proyecto actual y clusteriza intenciones:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx -y @saulwade/swl-ses@latest reflect-skills --ventana=30 --umbral=3
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Parámetros:
|
|
38
|
+
- `--ventana N` — días de historial a analizar (default: 30)
|
|
39
|
+
- `--umbral N` — mínimo de ocurrencias para reportar cluster (default: 3)
|
|
40
|
+
- `--json` — salida estructurada en JSON
|
|
41
|
+
|
|
42
|
+
El script produce:
|
|
43
|
+
- Reporte textual en stdout
|
|
44
|
+
- Archivo estructurado en `.planning/evolution/reflect-skills-report.json`
|
|
45
|
+
|
|
46
|
+
### Paso 2 — Leer y clasificar los candidatos
|
|
47
|
+
|
|
48
|
+
Lee el reporte generado y clasifica cada candidato en una de estas categorías:
|
|
49
|
+
|
|
50
|
+
| Categoría | Acción recomendada |
|
|
51
|
+
|-----------|-------------------|
|
|
52
|
+
| Patrón técnico nuevo (ej. "integrar redis cache") | Proponer como skill en el dominio correspondiente (`backend-`, `frontend-`, etc.) |
|
|
53
|
+
| Operación repetida con pasos fijos (ej. "ejecuta pruebas de carga") | Proponer como comando `/swl:<nombre>` |
|
|
54
|
+
| Tarea que cruza varios agentes (ej. "audita dependencias + actualiza CHANGELOG") | Proponer como flujo del `orquestador-swl` |
|
|
55
|
+
| Corrección del usuario repetida | Enviar al `perfilador-usuario-swl` |
|
|
56
|
+
| Falso positivo (prompt genérico, ruido) | Ignorar y anotar en la bitácora del comando |
|
|
57
|
+
|
|
58
|
+
### Paso 3 — Validar con el usuario
|
|
59
|
+
|
|
60
|
+
Presenta al usuario los top 3-5 candidatos con:
|
|
61
|
+
- Nombre propuesto y tipo (skill / comando / flujo)
|
|
62
|
+
- Cantidad de ocurrencias en la ventana
|
|
63
|
+
- 2-3 ejemplos de prompts reales
|
|
64
|
+
- Justificación de por qué formalizarlo
|
|
65
|
+
|
|
66
|
+
**Esperar aprobación explícita** antes de generar componentes. No crear skills automáticamente sin confirmación.
|
|
67
|
+
|
|
68
|
+
### Paso 4 — Crear los componentes aprobados
|
|
69
|
+
|
|
70
|
+
Para cada candidato aprobado:
|
|
71
|
+
|
|
72
|
+
- **Skill**: invocar `/swl:crear-skill` con el dominio correspondiente.
|
|
73
|
+
- **Comando**: delegar al agente `orquestador-swl` para crear `comandos/swl/<nombre>.md` siguiendo la plantilla.
|
|
74
|
+
- **Flujo**: delegar al `auto-evolucion-swl` para proponer evolución al orquestador.
|
|
75
|
+
|
|
76
|
+
Registrar la decisión en `.planning/APRENDIZAJES.md` bajo la sección **Patrones emergentes**.
|
|
77
|
+
|
|
78
|
+
### Paso 5 — Cerrar ciclo
|
|
79
|
+
|
|
80
|
+
- Actualizar `CLAUDE.md` si se agregó un componente al sistema (tabla de comandos, skills por dominio).
|
|
81
|
+
- Bumpar versión del sistema si procede (MINOR para skill/comando nuevo, ver `git-workflow.md`).
|
|
82
|
+
- Commit atómico con mensaje: `feat(sistema): agrega <componente> desde /swl:reflect-skills`.
|
|
83
|
+
|
|
84
|
+
## Salida esperada
|
|
85
|
+
|
|
86
|
+
Reporte legible como:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
━━━ Reflect Skills — análisis de historial ━━━
|
|
90
|
+
Ventana: últimos 30 días
|
|
91
|
+
Prompts analizados: 412
|
|
92
|
+
Umbral de repetición: 3
|
|
93
|
+
|
|
94
|
+
2 candidato(s) detectado(s):
|
|
95
|
+
|
|
96
|
+
1. [SKILL] redis-cache-integrar
|
|
97
|
+
Intención: "integrar redis" (5×)
|
|
98
|
+
Motivo: Intención "integrar redis" repetida 5× → candidato a skill que encapsule el patrón.
|
|
99
|
+
Ejemplos:
|
|
100
|
+
• integra redis como cache layer en el endpoint de productos
|
|
101
|
+
• integrar redis con invalidation por tags
|
|
102
|
+
• quiero integrar redis stream para workers
|
|
103
|
+
|
|
104
|
+
2. [COMANDO] release-verificar
|
|
105
|
+
Intención: "verificar release" (4×)
|
|
106
|
+
Motivo: Verbo operativo "verificar" repetido 4× → candidato a automatización por comando slash.
|
|
107
|
+
Ejemplos:
|
|
108
|
+
• verifica que el release esté listo
|
|
109
|
+
• verificar release antes de publicar
|
|
110
|
+
• verificar release 5.10.5
|
|
111
|
+
|
|
112
|
+
Feedback del usuario capturado: 7 entradas
|
|
113
|
+
- correccion: 3
|
|
114
|
+
- preferencia: 2
|
|
115
|
+
- memoria: 2
|
|
116
|
+
→ Revisar con perfilador-usuario-swl y /swl:aprender.
|
|
117
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Notas
|
|
121
|
+
|
|
122
|
+
- El clustering es heurístico (tokens + verbos de acción), **no semántico con embeddings**. Busca simplicidad y zero-deps sobre precisión absoluta.
|
|
123
|
+
- Si un candidato tiene nombre similar a un skill/comando existente, revisar primero si se puede **extender** en lugar de crear uno nuevo.
|
|
124
|
+
- El comando NO escribe a APRENDIZAJES.md automáticamente — el usuario decide qué formalizar.
|
|
125
|
+
- Para el modo con embeddings (SentenceTransformers + ChromaDB), ver `Skill("wiki-conocimiento")` y `/swl:wiki` que ya implementan el patrón Karpathy completo.
|