@saulwade/swl-ses 2.2.4 → 2.3.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 +48 -7
- package/README.md +3 -3
- package/agentes/accesibilidad-wcag-swl.md +690 -690
- package/agentes/arquitecto-swl.md +267 -267
- package/agentes/auto-evolucion-swl.md +908 -908
- package/agentes/backend-api-swl.md +472 -472
- 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-node-swl.md +479 -479
- package/agentes/backend-python-swl.md +605 -605
- 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/datos-swl.md +605 -605
- 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/gh-fix-ci-swl.md +2 -2
- package/agentes/implementador-swl.md +328 -328
- package/agentes/investigador-swl.md +432 -432
- package/agentes/investigador-ux-swl.md +505 -505
- package/agentes/llm-apps-swl.md +278 -278
- 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/notificador-swl.md +918 -918
- package/agentes/observabilidad-swl.md +438 -438
- package/agentes/orquestador-swl.md +1026 -1026
- 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 +1 -1
- package/agentes/release-manager-swl.md +590 -590
- package/agentes/rendimiento-swl.md +713 -713
- package/agentes/resolutor-build-swl.md +245 -245
- package/agentes/revisor-angular-swl.md +278 -278
- package/agentes/revisor-codigo-swl.md +505 -505
- 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/sre-swl.md +291 -291
- package/agentes/tdd-qa-swl.md +393 -393
- package/comandos/swl/aprobar-plan.md +146 -141
- package/comandos/swl/briefing.md +119 -119
- package/comandos/swl/contribuir.md +233 -233
- package/comandos/swl/predecir.md +139 -139
- package/comandos/swl/release.md +30 -8
- package/comandos/swl/sesiones.md +1 -1
- package/comandos/swl/status.md +343 -333
- package/gateway/agent-executor.js +1 -1
- package/gateway/lib/event-channel.js +191 -191
- package/habilidades/agent-deep-links/SKILL.md +148 -148
- package/habilidades/agentes-como-servicio/SKILL.md +2 -2
- package/habilidades/angular-moderno/SKILL.md +20 -1
- package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -276
- package/habilidades/backend-async-postgres-testing/SKILL.md +215 -215
- package/habilidades/backend-error-design/SKILL.md +221 -221
- package/habilidades/backend-production-resilience/SKILL.md +288 -288
- package/habilidades/benchmark-memoria/SKILL.md +186 -186
- package/habilidades/calidad-anti-patrones-universales/SKILL.md +368 -368
- package/habilidades/calidad-contract-testing/SKILL.md +165 -165
- package/habilidades/calidad-mutation-testing/SKILL.md +170 -170
- package/habilidades/changelog-generator/scripts/parse-commits.js +367 -367
- package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
- package/habilidades/contenedores-docker/SKILL.md +3 -1
- package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
- package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
- package/habilidades/drift-detection/SKILL.md +179 -179
- package/habilidades/ejecutar-fase/SKILL.md +564 -541
- package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
- package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +1 -1
- package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
- package/habilidades/eval-framework/SKILL.md +212 -212
- package/habilidades/extractor-de-aprendizajes/SKILL.md +3 -3
- package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
- package/habilidades/harness-claude-code/recursos/disciplina-harness-regla.md +252 -252
- package/habilidades/legacy-code-rescue/SKILL.md +267 -267
- package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
- package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
- package/habilidades/perfil-usuario/SKILL.md +200 -200
- package/habilidades/planear-fase/SKILL.md +15 -1
- package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
- package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -255
- package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
- package/habilidades/proceso-debate-adversarial/SKILL.md +191 -164
- package/habilidades/proceso-debate-adversarial/recursos/personas.md +105 -105
- package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
- package/habilidades/proceso-dynamic-workflows/SKILL.md +138 -138
- package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
- package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
- package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
- package/habilidades/proceso-modular-split/SKILL.md +256 -256
- package/habilidades/prompt-engineering/recursos/patrones-avanzados.md +2 -2
- package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
- package/habilidades/structured-outputs/SKILL.md +2 -2
- package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
- package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
- package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
- package/habilidades/swl-dashboard/SKILL.md +2 -2
- package/habilidades/tdd-workflow/SKILL.md +33 -1
- package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
- package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +1 -1
- package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +1 -1
- package/hooks/captura-acciones-post.js +151 -0
- package/hooks/captura-acciones-session.js +155 -0
- package/hooks/ciclo-evolucion-subagente.js +26 -26
- package/hooks/ciclo-evolucion.js +26 -26
- package/hooks/claudemd-bloat-detector.js +161 -161
- package/hooks/claudemd-duplicacion-detector.js +170 -170
- package/hooks/contexto-iteracion.js +144 -144
- package/hooks/guardrail-modelo.js +1 -1
- package/hooks/lib/agent-routing.js +107 -107
- package/hooks/lib/auto-consolidator.js +335 -335
- package/hooks/lib/autonomia.js +208 -208
- package/hooks/lib/briefing.js +512 -474
- package/hooks/lib/captura-acciones.js +392 -0
- package/hooks/lib/ciclo-evolucion.js +47 -47
- package/hooks/lib/deep-links.js +185 -185
- package/hooks/lib/error-classifier.js +308 -308
- package/hooks/lib/etapa-auto-evolucion.js +701 -701
- package/hooks/lib/etapa-metricas.js +388 -388
- package/hooks/lib/etapa-perfil-usuario.js +376 -376
- package/hooks/lib/loop-telemetry.js +321 -321
- package/hooks/lib/merkle-audit.js +96 -96
- package/hooks/lib/model-router.js +2 -2
- package/hooks/lib/propose-step.js +358 -358
- package/hooks/lib/provenance-tracker.js +191 -191
- package/hooks/lib/rate-limit-tracker.js +253 -253
- package/hooks/lib/resource-quota.js +122 -122
- package/hooks/lib/retry-jitter.js +165 -165
- package/hooks/lib/security-net.js +201 -201
- package/hooks/lib/skill-auditor.js +588 -588
- package/hooks/lib/sync-status.js +228 -228
- package/hooks/lib/taint-tracker.js +107 -107
- package/hooks/lib/text-similarity.js +241 -241
- package/hooks/lib/token-estimator.js +1 -0
- package/hooks/lib/toon-compressor.js +245 -245
- package/hooks/lib/usage-model.js +1 -1
- package/hooks/linea-estado.js +2 -0
- package/hooks/registro-turnos.js +209 -209
- package/hooks/session-briefing.js +98 -98
- package/hooks/spec-gate.js +211 -211
- package/hooks/sugerir-regenerar-inventario.js +170 -170
- package/hooks/tdd-gate.js +241 -241
- package/hooks/telemetria-skill-routing.js +100 -100
- package/hooks/validar-formato-post-subagente.js +140 -140
- package/hooks/validar-intent-spec.js +242 -242
- package/hooks/validar-memoria-hook.js +218 -218
- package/hooks/validar-planning-paths.js +134 -134
- package/instintos/autonomia.yaml +27 -27
- package/instintos/prompt-appendices.yaml +57 -57
- package/llms.txt +2 -2
- package/manifiestos/agent-output-schemas.json +57 -57
- package/manifiestos/canonical-hashes.json +2291 -1637
- package/manifiestos/hooks-config.json +18 -0
- package/manifiestos/modulos.json +4 -0
- package/manifiestos/planning-paths.json +44 -44
- package/manifiestos/skills-lock.json +1282 -1282
- package/package.json +2 -2
- package/plantillas/auditor-veto-template.md +105 -105
- package/plantillas/github-workflows/README.md +47 -47
- package/plantillas/github-workflows/release-please.yml +44 -44
- package/plantillas/github-workflows/swl-ci.yml +107 -107
- package/plantillas/github-workflows/swl-security.yml +51 -51
- package/plugin.json +2 -2
- package/reglas/accesibilidad.md +10 -10
- package/reglas/analisis-previo-tareas-grandes.md +172 -172
- package/reglas/api-diseno.md +9 -9
- package/reglas/arreglar-al-detectar.md +240 -240
- package/reglas/auditorias-documentales-estructurales.md +7 -7
- package/reglas/cloud-infra.md +8 -8
- package/reglas/consultar-vault-primero.md +195 -195
- package/reglas/debatir-antes-de-aceptar.md +158 -158
- package/reglas/fragmentos-compartidos.md +183 -183
- package/reglas/hooks.md +6 -6
- package/reglas/intent-engineering.md +218 -218
- package/reglas/markitdown.md +8 -8
- package/reglas/memoria-consolidada.md +41 -0
- package/reglas/monitor-ci.md +309 -309
- package/reglas/patrones.md +6 -6
- package/reglas/seguridad-agentes.md +66 -0
- package/reglas/sesiones-paralelas.md +180 -180
- package/reglas/sin-duplicacion-reglas-globales.md +182 -182
- package/reglas/skills-estandar.md +6 -6
- package/reglas/testing.md +7 -7
- package/reglas/tests-cleanup.md +224 -224
- package/reglas/usar-code-review-graph.md +155 -155
- package/reglas/usar-context7.md +226 -226
- package/reglas/verificar-citas-normativas.md +548 -548
- package/schemas/agent-frontmatter.schema.json +3 -3
- package/schemas/agent-message.schema.json +73 -73
- package/schemas/agent-output-implementacion.schema.json +114 -114
- package/schemas/agent-output-planificacion.schema.json +150 -150
- package/schemas/agent-output-review.schema.json +98 -98
- package/schemas/diary-entry.schema.json +112 -112
- package/schemas/hook-profiles.schema.json +54 -54
- package/schemas/hooks-config.schema.json +89 -89
- package/schemas/instinct.schema.json +161 -152
- package/schemas/modulos.schema.json +38 -38
- package/schemas/perfiles.schema.json +36 -36
- package/schemas/plugin.schema.json +77 -77
- package/schemas/skill-evals.schema.json +119 -119
- package/schemas/skill-frontmatter.schema.json +245 -245
- package/scripts/audit-tools/audit-history.js +330 -330
- package/scripts/audit-tools/bundle-tracker.js +290 -290
- package/scripts/audit-tools/canary-monitor.js +352 -352
- package/scripts/audit-tools/code-profiler.js +605 -605
- package/scripts/audit-tools/dep-doctor.js +320 -320
- package/scripts/audit-tools/env-validator.js +206 -206
- package/scripts/audit-tools/lib/fs-walk.js +48 -48
- package/scripts/audit-tools/lib/output.js +23 -23
- package/scripts/audit-tools/migration-checker.js +392 -392
- package/scripts/audit-tools/pentest-scanner.js +1436 -1436
- package/scripts/benchmark-memoria.js +167 -167
- package/scripts/bootstrap-instintos.js +25 -7
- package/scripts/cli/aprobar-plan.js +73 -73
- package/scripts/cli/briefing.js +23 -23
- package/scripts/cli/ciclo-evolucion.js +26 -26
- package/scripts/cli/configurar-ci.js +40 -40
- package/scripts/cli/derivar-feature-list.js +25 -25
- package/scripts/cli/detectar-host.js +27 -27
- package/scripts/cli/diary-entry.js +69 -69
- package/scripts/cli/execution-state.js +18 -18
- package/scripts/cli/gateway-notify.js +41 -41
- package/scripts/cli/liberar-fase.js +42 -42
- package/scripts/cli/loop-telemetry.js +125 -125
- package/scripts/cli/mark-evolved.js +56 -56
- package/scripts/cli/metricas-dora.js +26 -26
- package/scripts/cli/near-duplicate.js +55 -55
- package/scripts/cli/notificaciones.js +123 -123
- package/scripts/cli/propose-step.js +29 -29
- package/scripts/cli/schedule-parse.js +19 -19
- package/scripts/cli/sugerir-modelo.js +20 -20
- package/scripts/cli/verificar-plan.js +36 -36
- package/scripts/cli/verificar-trazabilidad.js +35 -35
- package/scripts/configurar-branch-protection.js +418 -418
- package/scripts/detectar-aprendizajes-duplicados.js +151 -151
- package/scripts/field-report.js +199 -199
- package/scripts/generar-checklists-consolidados.js +273 -273
- package/scripts/generar-matriz-lenguajes.js +271 -271
- package/scripts/lib/artefactos-python.js +43 -43
- package/scripts/lib/auditar-invocaciones-comandos.js +104 -104
- package/scripts/lib/benchmark-metrics.js +160 -160
- package/scripts/lib/budget-enforcer.js +252 -252
- package/scripts/lib/ci-reader.js +193 -193
- package/scripts/lib/claude-sessions.js +1 -0
- package/scripts/lib/configurar-ci.js +380 -380
- package/scripts/lib/contadores-inventario.js +217 -217
- package/scripts/lib/detectar-host-swl.js +175 -175
- package/scripts/lib/detectar-stack-detallado.js +307 -307
- package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
- package/scripts/lib/detector-reglas-duplicadas.js +220 -220
- package/scripts/lib/diary-entry.js +234 -234
- package/scripts/lib/eval-metrics-store.js +218 -218
- package/scripts/lib/eval-quality.js +171 -171
- package/scripts/lib/eval-schemas.js +144 -144
- package/scripts/lib/eval-self-correct.js +106 -106
- package/scripts/lib/eval-validator.js +185 -185
- package/scripts/lib/evidencia-release.js +322 -322
- package/scripts/lib/expandir-targets.js +71 -71
- package/scripts/lib/gate-hooks-requires.js +249 -249
- package/scripts/lib/gate-licencias.js +212 -212
- package/scripts/lib/git-metricas.js +257 -257
- package/scripts/lib/gitignore-manifest.js +44 -11
- package/scripts/lib/jaccard-similarity.js +98 -98
- package/scripts/lib/longmemeval-runner.js +125 -125
- package/scripts/lib/metricas-dora.js +204 -204
- package/scripts/lib/npm-version.js +261 -261
- package/scripts/lib/paquetes-conocidos.js +50 -50
- package/scripts/lib/plan-lock.js +275 -275
- package/scripts/lib/pr-analyzer.js +399 -399
- package/scripts/lib/prompt-builder.js +264 -264
- package/scripts/lib/reglas-globales-conocidas.json +180 -180
- package/scripts/lib/resolver-plan-fase.js +37 -37
- package/scripts/lib/rrf-fusion.js +175 -175
- package/scripts/lib/schema-version.js +164 -164
- package/scripts/lib/scoring-instintos.js +277 -277
- package/scripts/lib/semantic-search.js +252 -252
- package/scripts/lib/skill-metrics.js +41 -1
- package/scripts/lib/toml-merge.js +204 -204
- package/scripts/lib/tool-cost-analyzer.js +1 -0
- package/scripts/limpiar-artefactos-python.js +131 -131
- package/scripts/mcp-server/auth.js +105 -105
- package/scripts/mcp-server/cache.js +106 -106
- package/scripts/migrar-csv-a-array.js +168 -168
- package/scripts/migrar-fase-dominio.js +200 -200
- package/scripts/publicar.js +497 -497
- package/scripts/run-eval.js +141 -141
- package/scripts/tui/componentes/selector-multi.js +189 -189
- package/scripts/tui/componentes/selector-unico.js +158 -158
- package/scripts/tui/ejecutores.js +375 -375
- package/scripts/tui/index.js +162 -162
- package/scripts/tui/lib/colores.js +129 -129
- package/scripts/tui/lib/render.js +264 -264
- package/scripts/tui/lib/teclas.js +113 -113
- package/scripts/tui/pantallas/inspect.js +173 -173
- package/scripts/tui/pantallas/install-wizard.js +334 -334
- package/scripts/tui/pantallas/menu-principal.js +52 -52
- package/scripts/tui/pantallas/progreso.js +274 -274
- package/scripts/tui/pantallas/resumen.js +132 -132
- package/scripts/tui/pantallas/uninstall-wizard.js +208 -208
- package/scripts/tui/pantallas/update-wizard.js +232 -232
- package/scripts/tui/pantallas/welcome.js +187 -187
- package/scripts/validar-userland-vacio.js +110 -110
- package/scripts/verificar-trazabilidad.js +329 -298
package/comandos/swl/predecir.md
CHANGED
|
@@ -1,139 +1,139 @@
|
|
|
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).
|
|
12
|
-
argument-hint: "[descripción del cambio] [--scope <glob>] [--adversarial] [--presupuesto N] [--chain planear-fase]"
|
|
13
|
-
allowed-tools: [Read, Grep, Glob, Bash, Write, Agent, Skill]
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# /swl:predecir — Análisis predictivo pre-implementación
|
|
17
|
-
|
|
18
|
-
Eres el coordinador de un panel de personas expertas que evalúan un cambio
|
|
19
|
-
propuesto ANTES de que se implemente. El valor del comando está en el
|
|
20
|
-
aislamiento: cada persona analiza en frío, sin ver a las demás — los sesgos
|
|
21
|
-
de manada y de confirmación se eliminan por construcción.
|
|
22
|
-
|
|
23
|
-
Complementa (no reemplaza) a `/swl:verificar` y `/swl:nemesis`: esos auditan
|
|
24
|
-
código que YA existe; `predecir` ataca el plan cuando corregirlo cuesta una
|
|
25
|
-
conversación, no un refactor.
|
|
26
|
-
|
|
27
|
-
## Cuándo usar
|
|
28
|
-
|
|
29
|
-
- Antes de `/swl:planear-fase` en fases que tocan auth, dinero, datos
|
|
30
|
-
productivos o contratos públicos de API.
|
|
31
|
-
- Antes de un refactor cross-módulo o una migración de schema.
|
|
32
|
-
- Cuando el usuario duda entre implementar o no un cambio con blast radius alto.
|
|
33
|
-
|
|
34
|
-
**Cuándo NO usar**: cambios triviales (1-2 archivos), código ya implementado
|
|
35
|
-
(usar `/swl:verificar`), o decisiones entre 2+ alternativas (usar el debate
|
|
36
|
-
adversarial de `Skill("proceso-debate-adversarial")` — predecir analiza UNA
|
|
37
|
-
propuesta, el debate compara varias).
|
|
38
|
-
|
|
39
|
-
## Flags
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
[descripción] La propuesta de cambio a analizar (obligatoria; si falta, preguntar)
|
|
43
|
-
--scope <glob> Archivos relevantes para grounding (default: derivar del texto)
|
|
44
|
-
--adversarial Set de personas atacantes en vez del set default
|
|
45
|
-
--presupuesto N Máximo de hallazgos totales (default: 40 → 8 por persona)
|
|
46
|
-
--chain planear-fase Al terminar, ofrecer arrancar /swl:planear-fase con los hallazgos como contexto
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Paso 0 — Carga y configuración
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
Skill("proceso-debate-adversarial")
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
El skill define el protocolo COLD START, el anti-herd check y el formato de
|
|
56
|
-
síntesis. Las definiciones de personas viven en
|
|
57
|
-
`habilidades/proceso-debate-adversarial/recursos/personas.md`.
|
|
58
|
-
|
|
59
|
-
Confirmar con el usuario: propuesta, scope, set de personas, presupuesto.
|
|
60
|
-
|
|
61
|
-
## Paso 1 — Reconocimiento del codebase
|
|
62
|
-
|
|
63
|
-
Construir el paquete de conocimiento que recibirá CADA persona (idéntico para
|
|
64
|
-
todas): descripción de la propuesta + inventario de archivos del scope +
|
|
65
|
-
dependencias relevantes + superficie de API afectada + cobertura de tests del
|
|
66
|
-
área. Usar `code-review-graph` si está disponible (blast radius, callers);
|
|
67
|
-
si no, Grep/Glob dirigidos. Máximo ~1,500 tokens — las personas analizan, no
|
|
68
|
-
exploran.
|
|
69
|
-
|
|
70
|
-
## Paso 2 — Análisis en frío (5 invocaciones Agent independientes)
|
|
71
|
-
|
|
72
|
-
Por cada persona, UNA invocación del Agent tool (general-purpose o el agente
|
|
73
|
-
afín al dominio) con prompt autocontenido:
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
Eres [persona] — [enfoque de recursos/personas.md].
|
|
77
|
-
Propuesta: [descripción]
|
|
78
|
-
Contexto del codebase: [paquete del Paso 1]
|
|
79
|
-
Tu tarea: encuentra hasta [presupuesto/5] problemas que esta propuesta
|
|
80
|
-
causaría, desde tu perspectiva. Por cada uno: título, severidad
|
|
81
|
-
(crítico/alto/medio/bajo), confianza 0-100%, archivo:línea si aplica,
|
|
82
|
-
recomendación concreta. Preguntas guía: [de la persona]. Red flags: [de la
|
|
83
|
-
persona]. NO incluyas elogios ni evaluación general — solo hallazgos.
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Las 5 invocaciones pueden correr en paralelo. NUNCA pasar el output de una
|
|
87
|
-
persona a otra — el aislamiento es el mecanismo del comando.
|
|
88
|
-
|
|
89
|
-
## Paso 3 — Síntesis con anti-herd check
|
|
90
|
-
|
|
91
|
-
Aplicar el protocolo de síntesis del skill:
|
|
92
|
-
|
|
93
|
-
1. Deduplicar (mismo archivo:línea + mismo problema → fusionar, severidad más alta gana).
|
|
94
|
-
2. Registrar disensos (dos personas en desacuerdo → ambas posturas visibles).
|
|
95
|
-
3. **Anti-herd check**: si todas las personas coinciden en el hallazgo top,
|
|
96
|
-
generar explícitamente ≥1 contraargumento antes de aceptarlo.
|
|
97
|
-
4. Rankear: `severidad × confianza promedio × número de personas que coinciden`.
|
|
98
|
-
|
|
99
|
-
## Paso 4 — Reporte y persistencia
|
|
100
|
-
|
|
101
|
-
Persistir en `.planning/loops/predecir-[timestamp]/` con
|
|
102
|
-
`hooks/lib/loop-telemetry.js` (tipo `predecir`, columnas `iteracion,
|
|
103
|
-
timestamp, hallazgo, severidad, confianza, personas, archivo_linea`; una fila
|
|
104
|
-
por hallazgo consensuado) + `escribirHandoff` con `source: 'swl:predecir'`,
|
|
105
|
-
`findings` rankeados y `config: {propuesta, scope}`.
|
|
106
|
-
|
|
107
|
-
Reportar al usuario:
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
=== Predicción — [propuesta resumida] ===
|
|
111
|
-
Personas: [set] | Hallazgos brutos: N | Tras dedup: M
|
|
112
|
-
|
|
113
|
-
## Top hallazgos (rankeados)
|
|
114
|
-
| # | Hallazgo | Severidad | Confianza | Acuerdo | archivo:línea | Recomendación |
|
|
115
|
-
|
|
116
|
-
## Disensos registrados
|
|
117
|
-
- [persona X sostiene A; persona Y sostiene B — evidencia de cada una]
|
|
118
|
-
|
|
119
|
-
## Veredicto del panel
|
|
120
|
-
[PROCEDER | PROCEDER CON AJUSTES (lista) | REPLANTEAR (razón)]
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
## Paso 5 — Encadenamiento (si `--chain planear-fase`)
|
|
124
|
-
|
|
125
|
-
Ofrecer arrancar `/swl:planear-fase` indicando el directorio del handoff. El
|
|
126
|
-
planificador incorpora los hallazgos `crítico`/`alto` como restricciones del
|
|
127
|
-
PLAN.md — cada uno se atiende con una tarea o se descarta con justificación
|
|
128
|
-
explícita (nunca silenciosamente).
|
|
129
|
-
|
|
130
|
-
## Reglas de comportamiento
|
|
131
|
-
|
|
132
|
-
- NUNCA compartir contexto entre personas — una invocación Agent por persona.
|
|
133
|
-
- NUNCA omitir el anti-herd check cuando hay unanimidad.
|
|
134
|
-
- Los hallazgos con archivo:línea citan código REAL verificado en el Paso 1 —
|
|
135
|
-
regla `verificar-citas-normativas.md § Familia 2` aplica al propio output.
|
|
136
|
-
- El comando NO modifica código — produce análisis. Implementar es del flujo
|
|
137
|
-
planear → ejecutar.
|
|
138
|
-
- Con 0 hallazgos crítico/alto: decirlo claramente y no inflar hallazgos
|
|
139
|
-
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).
|
|
12
|
+
argument-hint: "[descripción del cambio] [--scope <glob>] [--adversarial] [--presupuesto N] [--chain planear-fase]"
|
|
13
|
+
allowed-tools: [Read, Grep, Glob, Bash, Write, Agent, Skill]
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# /swl:predecir — Análisis predictivo pre-implementación
|
|
17
|
+
|
|
18
|
+
Eres el coordinador de un panel de personas expertas que evalúan un cambio
|
|
19
|
+
propuesto ANTES de que se implemente. El valor del comando está en el
|
|
20
|
+
aislamiento: cada persona analiza en frío, sin ver a las demás — los sesgos
|
|
21
|
+
de manada y de confirmación se eliminan por construcción.
|
|
22
|
+
|
|
23
|
+
Complementa (no reemplaza) a `/swl:verificar` y `/swl:nemesis`: esos auditan
|
|
24
|
+
código que YA existe; `predecir` ataca el plan cuando corregirlo cuesta una
|
|
25
|
+
conversación, no un refactor.
|
|
26
|
+
|
|
27
|
+
## Cuándo usar
|
|
28
|
+
|
|
29
|
+
- Antes de `/swl:planear-fase` en fases que tocan auth, dinero, datos
|
|
30
|
+
productivos o contratos públicos de API.
|
|
31
|
+
- Antes de un refactor cross-módulo o una migración de schema.
|
|
32
|
+
- Cuando el usuario duda entre implementar o no un cambio con blast radius alto.
|
|
33
|
+
|
|
34
|
+
**Cuándo NO usar**: cambios triviales (1-2 archivos), código ya implementado
|
|
35
|
+
(usar `/swl:verificar`), o decisiones entre 2+ alternativas (usar el debate
|
|
36
|
+
adversarial de `Skill("proceso-debate-adversarial")` — predecir analiza UNA
|
|
37
|
+
propuesta, el debate compara varias).
|
|
38
|
+
|
|
39
|
+
## Flags
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
[descripción] La propuesta de cambio a analizar (obligatoria; si falta, preguntar)
|
|
43
|
+
--scope <glob> Archivos relevantes para grounding (default: derivar del texto)
|
|
44
|
+
--adversarial Set de personas atacantes en vez del set default
|
|
45
|
+
--presupuesto N Máximo de hallazgos totales (default: 40 → 8 por persona)
|
|
46
|
+
--chain planear-fase Al terminar, ofrecer arrancar /swl:planear-fase con los hallazgos como contexto
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Paso 0 — Carga y configuración
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Skill("proceso-debate-adversarial")
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
El skill define el protocolo COLD START, el anti-herd check y el formato de
|
|
56
|
+
síntesis. Las definiciones de personas viven en
|
|
57
|
+
`habilidades/proceso-debate-adversarial/recursos/personas.md`.
|
|
58
|
+
|
|
59
|
+
Confirmar con el usuario: propuesta, scope, set de personas, presupuesto.
|
|
60
|
+
|
|
61
|
+
## Paso 1 — Reconocimiento del codebase
|
|
62
|
+
|
|
63
|
+
Construir el paquete de conocimiento que recibirá CADA persona (idéntico para
|
|
64
|
+
todas): descripción de la propuesta + inventario de archivos del scope +
|
|
65
|
+
dependencias relevantes + superficie de API afectada + cobertura de tests del
|
|
66
|
+
área. Usar `code-review-graph` si está disponible (blast radius, callers);
|
|
67
|
+
si no, Grep/Glob dirigidos. Máximo ~1,500 tokens — las personas analizan, no
|
|
68
|
+
exploran.
|
|
69
|
+
|
|
70
|
+
## Paso 2 — Análisis en frío (5 invocaciones Agent independientes)
|
|
71
|
+
|
|
72
|
+
Por cada persona, UNA invocación del Agent tool (general-purpose o el agente
|
|
73
|
+
afín al dominio) con prompt autocontenido:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Eres [persona] — [enfoque de recursos/personas.md].
|
|
77
|
+
Propuesta: [descripción]
|
|
78
|
+
Contexto del codebase: [paquete del Paso 1]
|
|
79
|
+
Tu tarea: encuentra hasta [presupuesto/5] problemas que esta propuesta
|
|
80
|
+
causaría, desde tu perspectiva. Por cada uno: título, severidad
|
|
81
|
+
(crítico/alto/medio/bajo), confianza 0-100%, archivo:línea si aplica,
|
|
82
|
+
recomendación concreta. Preguntas guía: [de la persona]. Red flags: [de la
|
|
83
|
+
persona]. NO incluyas elogios ni evaluación general — solo hallazgos.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Las 5 invocaciones pueden correr en paralelo. NUNCA pasar el output de una
|
|
87
|
+
persona a otra — el aislamiento es el mecanismo del comando.
|
|
88
|
+
|
|
89
|
+
## Paso 3 — Síntesis con anti-herd check
|
|
90
|
+
|
|
91
|
+
Aplicar el protocolo de síntesis del skill:
|
|
92
|
+
|
|
93
|
+
1. Deduplicar (mismo archivo:línea + mismo problema → fusionar, severidad más alta gana).
|
|
94
|
+
2. Registrar disensos (dos personas en desacuerdo → ambas posturas visibles).
|
|
95
|
+
3. **Anti-herd check**: si todas las personas coinciden en el hallazgo top,
|
|
96
|
+
generar explícitamente ≥1 contraargumento antes de aceptarlo.
|
|
97
|
+
4. Rankear: `severidad × confianza promedio × número de personas que coinciden`.
|
|
98
|
+
|
|
99
|
+
## Paso 4 — Reporte y persistencia
|
|
100
|
+
|
|
101
|
+
Persistir en `.planning/loops/predecir-[timestamp]/` con
|
|
102
|
+
`hooks/lib/loop-telemetry.js` (tipo `predecir`, columnas `iteracion,
|
|
103
|
+
timestamp, hallazgo, severidad, confianza, personas, archivo_linea`; una fila
|
|
104
|
+
por hallazgo consensuado) + `escribirHandoff` con `source: 'swl:predecir'`,
|
|
105
|
+
`findings` rankeados y `config: {propuesta, scope}`.
|
|
106
|
+
|
|
107
|
+
Reportar al usuario:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
=== Predicción — [propuesta resumida] ===
|
|
111
|
+
Personas: [set] | Hallazgos brutos: N | Tras dedup: M
|
|
112
|
+
|
|
113
|
+
## Top hallazgos (rankeados)
|
|
114
|
+
| # | Hallazgo | Severidad | Confianza | Acuerdo | archivo:línea | Recomendación |
|
|
115
|
+
|
|
116
|
+
## Disensos registrados
|
|
117
|
+
- [persona X sostiene A; persona Y sostiene B — evidencia de cada una]
|
|
118
|
+
|
|
119
|
+
## Veredicto del panel
|
|
120
|
+
[PROCEDER | PROCEDER CON AJUSTES (lista) | REPLANTEAR (razón)]
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Paso 5 — Encadenamiento (si `--chain planear-fase`)
|
|
124
|
+
|
|
125
|
+
Ofrecer arrancar `/swl:planear-fase` indicando el directorio del handoff. El
|
|
126
|
+
planificador incorpora los hallazgos `crítico`/`alto` como restricciones del
|
|
127
|
+
PLAN.md — cada uno se atiende con una tarea o se descarta con justificación
|
|
128
|
+
explícita (nunca silenciosamente).
|
|
129
|
+
|
|
130
|
+
## Reglas de comportamiento
|
|
131
|
+
|
|
132
|
+
- NUNCA compartir contexto entre personas — una invocación Agent por persona.
|
|
133
|
+
- NUNCA omitir el anti-herd check cuando hay unanimidad.
|
|
134
|
+
- Los hallazgos con archivo:línea citan código REAL verificado en el Paso 1 —
|
|
135
|
+
regla `verificar-citas-normativas.md § Familia 2` aplica al propio output.
|
|
136
|
+
- El comando NO modifica código — produce análisis. Implementar es del flujo
|
|
137
|
+
planear → ejecutar.
|
|
138
|
+
- Con 0 hallazgos crítico/alto: decirlo claramente y no inflar hallazgos
|
|
139
|
+
menores para justificar el costo del panel.
|
package/comandos/swl/release.md
CHANGED
|
@@ -266,7 +266,19 @@ Usar tags anotados siempre (regla del skill).
|
|
|
266
266
|
|
|
267
267
|
## Paso 9 — Generar RELEASE-NOTES
|
|
268
268
|
|
|
269
|
-
Crea `RELEASE-NOTES-v[nueva-versión].md` con: resumen,
|
|
269
|
+
Crea `releases/v[nueva-versión]/RELEASE-NOTES-v[nueva-versión].md` con: resumen,
|
|
270
|
+
cambios, instrucciones de actualización y guía de migración si hay breaking changes.
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
mkdir -p releases/v[nueva-versión]
|
|
274
|
+
# escribir releases/v[nueva-versión]/RELEASE-NOTES-v[nueva-versión].md
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
**NUNCA crear las RELEASE-NOTES en la raíz del repo.** La convención (todos los
|
|
278
|
+
releases previos en `releases/`) es que las RELEASE-NOTES viven SOLO en
|
|
279
|
+
`releases/vX.Y.Z/` — no se versiona ninguna copia en raíz. El directorio
|
|
280
|
+
`releases/v[nueva-versión]/` también lo crea `evidencia-release.js` (Paso 9.5);
|
|
281
|
+
si ese paso corre primero, el `mkdir -p` es no-op.
|
|
270
282
|
|
|
271
283
|
## Paso 9.5 — Evidencia de procedencia (cadena de suministro, ADR-0038)
|
|
272
284
|
|
|
@@ -286,20 +298,21 @@ Esto escribe (vía `scripts/lib/evidencia-release.js`):
|
|
|
286
298
|
Luego:
|
|
287
299
|
|
|
288
300
|
1. **Insertar la sección "Integridad y verificación"** en
|
|
289
|
-
`RELEASE-NOTES-v[nueva-versión].md`, justo después de
|
|
290
|
-
correcciones. La genera `seccionVerificacionNotas` de la lib:
|
|
301
|
+
`releases/v[nueva-versión]/RELEASE-NOTES-v[nueva-versión].md`, justo después de
|
|
302
|
+
la sección de correcciones. La genera `seccionVerificacionNotas` de la lib:
|
|
291
303
|
|
|
292
304
|
```bash
|
|
293
305
|
node -e "const {seccionVerificacionNotas}=require('./scripts/lib/evidencia-release');const fs=require('fs');const v='[nueva-versión]';const sums=fs.readFileSync('releases/v'+v+'/SHA256SUMS','utf8').trim().split(/\s+/);const md=seccionVerificacionNotas({version:v,hash:sums[0],tarball:sums[1]});console.log(md)"
|
|
294
306
|
```
|
|
295
307
|
|
|
296
|
-
|
|
308
|
+
Anexar ese markdown a `releases/v[nueva-versión]/RELEASE-NOTES-v[nueva-versión].md`
|
|
309
|
+
(tras "Correcciones").
|
|
297
310
|
|
|
298
|
-
2. **
|
|
299
|
-
|
|
311
|
+
2. **Versionar la evidencia** del release. Las RELEASE-NOTES ya viven en
|
|
312
|
+
`releases/v[nueva-versión]/` (Paso 9) — NO hacer `cp` desde la raíz (no debe
|
|
313
|
+
existir copia en raíz):
|
|
300
314
|
|
|
301
315
|
```bash
|
|
302
|
-
cp RELEASE-NOTES-v[nueva-versión].md releases/v[nueva-versión]/
|
|
303
316
|
git add releases/v[nueva-versión]/
|
|
304
317
|
```
|
|
305
318
|
|
|
@@ -397,7 +410,7 @@ Commits incluidos: [N] (feat: [N], fix: [N], otros: [N])
|
|
|
397
410
|
Tests: [ejecutados OK | omitidos (--skip-tests)]
|
|
398
411
|
|
|
399
412
|
Próximos pasos:
|
|
400
|
-
1. Revisar RELEASE-NOTES-v[nueva-versión].md
|
|
413
|
+
1. Revisar releases/v[nueva-versión]/RELEASE-NOTES-v[nueva-versión].md
|
|
401
414
|
2. git push origin v[nueva-versión]
|
|
402
415
|
3. Publicar release en GitHub/GitLab si aplica
|
|
403
416
|
4. Notificar al equipo
|
|
@@ -416,6 +429,15 @@ Próximos pasos:
|
|
|
416
429
|
release ya creado pero aún-no-publicado obliga a mover el tag + regenerar la
|
|
417
430
|
evidencia (el SHA del tarball cambia si el commit toca archivos de
|
|
418
431
|
`package.json#files`) — churn evitable. Si hay que iterar, hacerlo antes de taggear.
|
|
432
|
+
- **Si el usuario alimenta archivos de forma incremental para la MISMA versión
|
|
433
|
+
("faltan N archivos que agregar a esta versión, espera"), NO finalizar el
|
|
434
|
+
release** (no congelar tag, no regenerar evidencia final, no proponer push)
|
|
435
|
+
hasta que el usuario confirme que ya están TODOS los archivos. Mantener el
|
|
436
|
+
commit de release como HEAD entre tandas para que cada incorporación sea un
|
|
437
|
+
`amend` limpio + mover tag; regenerar la evidencia (SBOM/SHA256SUMS) SOLO en la
|
|
438
|
+
última tanda, porque el SHA del tarball cambia con cada archivo nuevo que entre
|
|
439
|
+
en `package.json#files`. Cerrar el release antes de tiempo obliga a rehacer
|
|
440
|
+
evidencia y tag por cada archivo tardío.
|
|
419
441
|
- **El agente NUNCA corre `npm` (test/pack/build/publish) en paralelo a un
|
|
420
442
|
`npm run publish:*` que está ejecutando el usuario.** `test:release` incluye
|
|
421
443
|
`test:smoke` (install/uninstall a temp + lectura de estado global); dos suites
|