@saulwade/swl-ses 2.5.3 → 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 +9 -9
- package/README.md +37 -37
- 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 -908
- 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/bin/swl-ses.js +32 -7
- package/comandos/swl/actualizar.md +3 -3
- package/comandos/swl/aprender.md +13 -0
- package/comandos/swl/deuda-codigo.md +97 -97
- package/comandos/swl/evaluar-skill.md +18 -3
- package/comandos/swl/evolucion-continua.md +73 -0
- package/comandos/swl/evolucionar.md +13 -0
- package/comandos/swl/instalar.md +4 -4
- package/comandos/swl/notificaciones.md +1 -1
- package/comandos/swl/status.md +2 -2
- package/gateway/cron/jobs.example.json +12 -0
- package/habilidades/auto-evolucion-protocolo/SKILL.md +19 -1
- package/habilidades/autoresearch/SKILL.md +3 -2
- package/habilidades/backend-async-postgres-testing/SKILL.md +2 -1
- package/habilidades/benchmark-memoria/SKILL.md +7 -7
- package/habilidades/changelog-generator/SKILL.md +1 -1
- package/habilidades/changelog-generator/scripts/parse-commits.js +2 -1
- package/habilidades/checkpoints-verificacion/SKILL.md +6 -0
- package/habilidades/compactacion-contexto/SKILL.md +2 -1
- package/habilidades/contenedores-docker/SKILL.md +4 -2
- package/habilidades/context-builder/SKILL.md +4 -0
- package/habilidades/doubt-driven-review/SKILL.md +17 -1
- package/habilidades/drift-detection/SKILL.md +6 -1
- package/habilidades/ejecutar-fase/SKILL.md +6 -6
- package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
- package/habilidades/eval-framework/SKILL.md +8 -3
- 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 +7 -3
- package/habilidades/infra-github-actions/SKILL.md +4 -3
- package/habilidades/instalar-sistema/SKILL.md +5 -1
- package/habilidades/memoria-busqueda/SKILL.md +31 -39
- package/habilidades/planear-fase/SKILL.md +9 -1
- 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-ddia-fundamentos/SKILL.md +3 -2
- package/habilidades/proceso-ingenieria-requerimientos/SKILL.md +147 -147
- package/habilidades/release-semver/SKILL.md +2 -2
- package/habilidades/swl-claudemd/SKILL.md +6 -7
- package/habilidades/swl-dashboard/SKILL.md +11 -43
- package/habilidades/tdd-workflow/SKILL.md +12 -7
- package/habilidades/validacion-ci-sistema/SKILL.md +1 -1
- package/hooks/agente-lifecycle.js +2 -1
- package/hooks/aiisms-detector.js +13 -4
- package/hooks/audit-trail.js +2 -1
- package/hooks/auto-consolidacion.js +2 -1
- package/hooks/captura-acciones-post.js +2 -1
- package/hooks/captura-acciones-session.js +2 -1
- package/hooks/captura-feedback-usuario.js +3 -2
- package/hooks/claudemd-bloat-detector.js +12 -3
- package/hooks/claudemd-duplicacion-detector.js +13 -3
- package/hooks/contexto-iteracion.js +2 -1
- package/hooks/contexto-subagente.js +68 -68
- package/hooks/degradacion-instintos.js +2 -1
- package/hooks/extraccion-aprendizajes.js +109 -15
- package/hooks/grafo-contexto.js +2 -1
- package/hooks/guardrail-modelo.js +2 -1
- package/hooks/inbox-aviso.js +2 -1
- package/hooks/inyeccion-contexto.js +2 -1
- package/hooks/lib/agent-matcher.js +2 -1
- package/hooks/lib/agent-routing.js +2 -1
- package/hooks/lib/autonomia.js +5 -3
- package/hooks/lib/captura-acciones.js +2 -1
- package/hooks/lib/consolidation-lock.js +21 -10
- package/hooks/lib/etapa-auto-evolucion.js +10 -4
- package/hooks/lib/etapa-metricas.js +2 -1
- package/hooks/lib/etapa-perfil-usuario.js +20 -4
- package/hooks/lib/evolution-tracker.js +2 -1
- package/hooks/lib/gateway-notify.js +17 -3
- package/hooks/lib/loop-telemetry.js +5 -4
- package/hooks/lib/mcp-health.js +2 -1
- package/hooks/lib/memory-search.js +4 -0
- package/hooks/lib/merkle-audit.js +58 -6
- package/hooks/lib/notificacion-formato.js +58 -0
- package/hooks/lib/nudge-tracker.js +2 -1
- package/hooks/lib/otlp-exporter.js +2 -1
- package/hooks/lib/propose-step.js +3 -2
- package/hooks/lib/raiz-proyecto.js +127 -0
- package/hooks/lib/run-log.js +2 -1
- package/hooks/lib/singleton-guard.js +225 -27
- package/hooks/lib/telegram-cliente.js +28 -11
- package/hooks/notificacion-telegram.js +13 -3
- package/hooks/preservar-estado-pre-compact.js +2 -1
- package/hooks/proteccion-rutas.js +59 -3
- package/hooks/registro-turnos.js +2 -1
- package/hooks/resumen-sesion.js +2 -1
- package/hooks/risk-scoring.js +2 -1
- package/hooks/rotar-audit-auto.js +46 -20
- package/hooks/session-briefing.js +127 -1
- package/hooks/spec-gate.js +2 -1
- package/hooks/sugerir-contribuir.js +6 -3
- package/hooks/sugerir-regenerar-inventario.js +3 -2
- package/hooks/tdd-gate.js +2 -1
- package/hooks/telemetria-agentes.js +2 -1
- package/hooks/telemetria-skill-routing.js +2 -1
- package/hooks/tracking-costos.js +4 -3
- package/hooks/validar-formato-post-subagente.js +2 -1
- package/hooks/validar-intent-spec.js +2 -1
- package/hooks/validar-memoria-hook.js +13 -3
- package/hooks/validar-planning-paths.js +2 -1
- package/instintos/perfil-usuario.yaml +506 -3
- package/instintos/proyecto.yaml +78 -0
- package/llms.txt +29 -29
- package/manifiestos/canonical-hashes.json +5588 -4925
- package/manifiestos/hooks-config.json +469 -469
- package/manifiestos/invariantes-criticos.json +30 -30
- package/manifiestos/modulos.json +1429 -1423
- package/manifiestos/planning-paths.json +1 -0
- package/manifiestos/skills-lock.json +1275 -1275
- package/package.json +94 -95
- package/plugin.json +369 -369
- package/scripts/actualizar.js +3 -0
- package/scripts/auditar-clases-conocidas.js +134 -106
- package/scripts/benchmark-memoria.js +1 -0
- package/scripts/bootstrap-instintos.js +85 -14
- package/scripts/canario-hooks.js +166 -166
- package/scripts/cli/autonomia.js +23 -0
- package/scripts/cli/benchmark-memoria.js +37 -0
- package/scripts/cli/ciclo-autonomo.js +73 -0
- package/scripts/cli/ciclo-fase-b.js +102 -0
- package/scripts/cli/guardrail-metrics.js +39 -0
- package/scripts/cli/loop-telemetry.js +4 -2
- package/scripts/cli/memoria-search.js +69 -0
- package/scripts/cli/nudge-accionar.js +39 -0
- package/scripts/cli/run-eval.js +38 -0
- package/scripts/cli/run-skill-evals.js +13 -2
- package/scripts/derivar-feature-list.js +15 -14
- package/scripts/desinstalar.js +11 -0
- package/scripts/doctor.js +50 -13
- package/scripts/evidencia-valor.js +101 -101
- package/scripts/field-report.js +16 -16
- package/scripts/instalador.js +98 -7
- package/scripts/lib/activar-hooks-proyecto.js +116 -104
- package/scripts/lib/auditar-invocaciones-comandos.js +96 -6
- package/scripts/lib/ciclo-autonomo/candidatos.js +174 -0
- package/scripts/lib/ciclo-autonomo/config.js +165 -0
- package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -0
- package/scripts/lib/ciclo-autonomo/fallback.js +77 -0
- package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -0
- package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -0
- package/scripts/lib/ciclo-autonomo/index.js +301 -0
- package/scripts/lib/ciclo-autonomo/lock.js +124 -0
- package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -0
- package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -0
- package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -0
- package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -0
- package/scripts/lib/ciclo-autonomo/yaml-instintos.js +535 -0
- package/scripts/lib/estado.js +9 -0
- package/scripts/lib/evidencia-valor.js +228 -228
- package/scripts/lib/expandir-targets.js +71 -71
- package/scripts/lib/gitignore-manifest.js +8 -1
- package/scripts/lib/hooks-settings.js +45 -0
- 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/rotar-audit-logs.js +48 -2
- package/scripts/run-eval.js +1 -0
- package/scripts/run-skill-evals.js +287 -8
- package/scripts/smoke-test.js +16 -8
- package/scripts/tui/pantallas/install-wizard.js +69 -13
- package/scripts/validar.js +40 -1
|
@@ -8,7 +8,7 @@ description: >
|
|
|
8
8
|
de conformidad para decidir fallback manual. Cargar en /swl:release Paso 7
|
|
9
9
|
cuando hay commits Conventional, o manualmente para previsualizar el
|
|
10
10
|
changelog antes de un release.
|
|
11
|
-
version: 1.1.
|
|
11
|
+
version: 1.1.1
|
|
12
12
|
nivelRiesgo: BAJO
|
|
13
13
|
herramientasPermitidas: [Read, Bash]
|
|
14
14
|
skillsInvocables: [release-semver]
|
|
@@ -288,7 +288,8 @@ function generarChangelog(categorias, opts) {
|
|
|
288
288
|
const { version, fecha, incluirHash = true } = opts || {};
|
|
289
289
|
if (!version) throw new Error('generarChangelog: version es obligatoria');
|
|
290
290
|
|
|
291
|
-
|
|
291
|
+
// Fecha LOCAL, no UTC — desde México la tarde ya es "mañana" en toISOString() (clase C1)
|
|
292
|
+
const fechaUsada = fecha || new Date().toLocaleDateString('sv');
|
|
292
293
|
const lineas = [`## [${version}] - ${fechaUsada}`, ''];
|
|
293
294
|
|
|
294
295
|
for (const categoria of ORDEN_CATEGORIAS) {
|
|
@@ -149,6 +149,12 @@ a partir de texto libre. Inspirado en el patrón ExecutionSnapshot de Sim Studio
|
|
|
149
149
|
|
|
150
150
|
### Al completar un agente
|
|
151
151
|
|
|
152
|
+
Los bloques `javascript` de esta sección documentan la API de los módulos con
|
|
153
|
+
el layout del repo madre (`hooks/lib/`); en instalaciones destino viven
|
|
154
|
+
aplanados junto a los hooks instalados. Son referencia de la API, no comandos
|
|
155
|
+
a ejecutar tal cual en proyectos consumidores (para lectura del estado existe
|
|
156
|
+
`swl-ses execution-state`).
|
|
157
|
+
|
|
152
158
|
```javascript
|
|
153
159
|
const es = require('./hooks/lib/execution-state');
|
|
154
160
|
es.completarAgente(process.cwd(), 'implementador-swl', 'api-endpoints', {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: compactacion-contexto
|
|
3
3
|
description: Anti-context-rot. Detectar cuándo compactar el contexto, guardar estado antes de compactar, técnicas de resumen progresivo y handoff limpio entre contextos. Recalibrado para el tokenizer de Opus 4.8 (+15-30% tokens vs 4.6).
|
|
4
|
-
version: "1.1.
|
|
4
|
+
version: "1.1.1"
|
|
5
5
|
herramientasPermitidas: [Read]
|
|
6
6
|
exclusiones:
|
|
7
7
|
- "No cargar si el contexto está por debajo del 50% y no hay señales cualitativas de degradación — compactar sin necesidad solo interrumpe el flujo."
|
|
@@ -235,6 +235,7 @@ instrucción más conservadora o compactar por secciones individuales.
|
|
|
235
235
|
- **Invariante de headings violada silenciosamente**: el contexto compactado pierde dos secciones `##` del original porque el modelo resumió párrafos en lugar de preservar la estructura. Causa: no se ejecutó la validación post-compactación. Solución: antes de descartar el contexto original, contar `#` en ambos con regex y comparar — tolerancia 0% para headings perdidos.
|
|
236
236
|
- **Compactar todo el codebase al inicio de sesión**: el agente lee 20 archivos en el nuevo contexto "para orientarse" y los compacta de inmediato. Causa: se interpretó "cargar contexto fresco" como cargar y compactar todo. Solución: en el contexto entrante, cargar ESTADO.md + DECISIONS.md + 3 últimos commits, y solo los archivos de la tarea inmediata — no más.
|
|
237
237
|
- **Umbral de 70% sin recalibrar para Opus 4.8**: en proyectos que migraron de Opus 4.6 a 4.7, el umbral de compactación sigue configurado al 70% del contexto cuando debe ser 50%. Causa: el tokenizer de 4.7 produce 1.0-1.35× más tokens y el umbral efectivo llega antes. Solución: al actualizar modelo, ajustar el umbral de compactación a 50% como documenta este skill en su sección de señales cuantitativas.
|
|
238
|
+
- **Análisis forense de un transcript JSONL gigante = digest determinista + lectores paralelos, nunca `Read` directo** [VALIDADO 2026-07-11, sesión de 61.6 MB / 24,862 líneas cubierta al 100%]: para analizar la sesión de otro agente (post-mortem, auditoría, extracción de decisiones), (1) script Node línea-por-línea que emite SOLO el contenido conversacional — mensajes de usuario íntegros, texto del asistente, tool calls como `>> Tool: args` de una línea, tool_results truncados a 200-400 chars (1,200 si `is_error`), resúmenes de compactación completos — en chunks de ~350 KB; (2) un agente por chunk con mandato de leer el 100% (Read con offset/limit hasta cubrir) y reporte estructurado fijo (cronología, intervenciones del usuario con cita+línea, bugs con estado, deudas, hallazgos QA/adversarial, pendientes, problemas de proceso); (3) el driver verifica las citas críticas de cada reporte antes de usarlas. Gotcha descubierto: **los mensajes del usuario que solo sobreviven dentro de un resumen de compactación NO son diálogo crudo** — el digest debe marcarlos como "cobertura parcial" y el análisis debe declararlo en vez de citarlos como verbatim; en la sesión analizada, 3 de 6 instrucciones del usuario del tramo final solo existían en resúmenes de compactación.
|
|
238
239
|
|
|
239
240
|
## Anti-patrones a evitar
|
|
240
241
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: contenedores-docker
|
|
3
3
|
description: Docker y containerización. Dockerfiles optimizados con multi-stage builds, docker-compose, volúmenes, networking, health checks, security scanning, build caching, distroless images. Anti-patrones comunes.
|
|
4
|
-
version: "1.0.
|
|
4
|
+
version: "1.0.4"
|
|
5
5
|
herramientasPermitidas: [Read]
|
|
6
6
|
exclusiones:
|
|
7
7
|
- "No cargar para orquestación Kubernetes (Deployments, Services, Helm, HPA) — para Kubernetes cargar `kubernetes-orquestacion`."
|
|
@@ -140,4 +140,6 @@ Para ejemplos completos de multi-stage Node.js/Angular, .dockerignore, docker-co
|
|
|
140
140
|
|
|
141
141
|
**Proxy de desarrollo del frontend (Angular CLI, Vite, webpack-dev-server) con target hardcodeado a `localhost` es deuda invisible hasta el primer `docker compose up`**: en local todo funciona porque frontend y backend comparten host; en cuanto corren en contenedores separados, `localhost` dentro del contenedor del frontend apunta a sí mismo — el proxy devuelve 500/ECONNREFUSED en cada llamada a la API (síntoma típico: el login falla solo en Docker). Causa: el target del proxy es configuración de entorno, no constante del repo. Fix: usar `proxy.conf.js` (no `.json`) que lea `process.env.BACKEND_URL || 'http://localhost:8000'` y pasar `BACKEND_URL=http://backend:8000` (nombre del servicio de compose) vía `environment:` del servicio frontend. Origen: SIGAF 2026-07-02.
|
|
142
142
|
|
|
143
|
-
**`docker exec ... psql` lanzado en background contra una BD donde el rol no autentica cuelga y congestiona el subsistema `docker exec` de Docker Desktop (Windows)**: lanzar en background (`run_in_background`/`&`) un `docker exec <contenedor> psql -U rol -d db -c "..."` donde el rol no puede autenticar deja la sesión `exec` colgada esperando; varias de esas sesiones huérfanas **saturan el subsistema de `docker exec`** y luego TODO `docker exec` (incluso `echo`) y hasta `docker restart` hacen timeout, aunque `docker ps`/`version` sigan respondiendo. Causa: cada `exec` abre una sesión que no termina; el daemon las acumula. Síntoma distintivo: `docker ps` responde pero cualquier `docker exec` cuelga. Fix: `docker restart <contenedor>` mata las sesiones `exec` huérfanas y destraba el daemon — detener el bash local con TaskStop NO mata el `psql` que corre dentro del contenedor. Prevención: NUNCA lanzar `docker exec ... psql` en background contra una BD/rol cuya autenticación no esté confirmada; correrlo en foreground con timeout corto y verificar el `psql` interactivo primero. En Git Bash (Windows), pasar `MSYS_NO_PATHCONV=1` cuando el comando lleva rutas POSIX (`/tmp/...`) a `docker exec`/`docker cp` para que MSYS no las convierta.
|
|
143
|
+
**`docker exec ... psql` lanzado en background contra una BD donde el rol no autentica cuelga y congestiona el subsistema `docker exec` de Docker Desktop (Windows)**: lanzar en background (`run_in_background`/`&`) un `docker exec <contenedor> psql -U rol -d db -c "..."` donde el rol no puede autenticar deja la sesión `exec` colgada esperando; varias de esas sesiones huérfanas **saturan el subsistema de `docker exec`** y luego TODO `docker exec` (incluso `echo`) y hasta `docker restart` hacen timeout, aunque `docker ps`/`version` sigan respondiendo. Causa: cada `exec` abre una sesión que no termina; el daemon las acumula. Síntoma distintivo: `docker ps` responde pero cualquier `docker exec` cuelga. Fix: `docker restart <contenedor>` mata las sesiones `exec` huérfanas y destraba el daemon — detener el bash local con TaskStop NO mata el `psql` que corre dentro del contenedor. Prevención: NUNCA lanzar `docker exec ... psql` en background contra una BD/rol cuya autenticación no esté confirmada; correrlo en foreground con timeout corto y verificar el `psql` interactivo primero. En Git Bash (Windows), pasar `MSYS_NO_PATHCONV=1` cuando el comando lleva rutas POSIX (`/tmp/...`) a `docker exec`/`docker cp` para que MSYS no las convierta [CONFIRMADO x2 — aplica igual de necesario a `docker cp` que a `docker exec`, no solo al segundo].
|
|
144
|
+
|
|
145
|
+
**`docker cp <dir-local> contenedor:<dir-remoto>` cuando `<dir-remoto>` YA EXISTE dentro del contenedor NO reemplaza su contenido — lo anida un nivel más profundo** [CONFIRMADO]: un segundo `docker cp database/tests contenedor:/tmp/verify/database/tests` sobre un `/tmp/verify/database/tests/` ya poblado por una corrida anterior crea `/tmp/verify/database/tests/tests/` con los archivos actualizados, mientras el path original sigue con los archivos VIEJOS — silenciosamente, sin error. Causa real de confusión de debugging: un fix a un `.sql` de test parece "no surtir efecto" porque el script verificador (`find /tmp/verify/database/tests -name "*.sql"`) sigue recogiendo la copia vieja en el path esperado; la copia nueva, correcta, queda un nivel más abajo sin que nada la use. Fix: SIEMPRE `docker exec <contenedor> rm -rf <dir-remoto>` inmediatamente antes de cada `docker cp` hacia ese mismo destino — nunca asumir semántica de overwrite en `docker cp` de directorios.
|
|
@@ -107,6 +107,10 @@ El default de 2500 restaura el margen útil.
|
|
|
107
107
|
|
|
108
108
|
## Configuración
|
|
109
109
|
|
|
110
|
+
API del módulo con el layout del repo madre (`hooks/lib/`); en instalaciones
|
|
111
|
+
destino vive aplanado junto a los hooks instalados. Es referencia para ajustar
|
|
112
|
+
el hook, no un comando a ejecutar en proyectos consumidores.
|
|
113
|
+
|
|
110
114
|
```js
|
|
111
115
|
const { buildContext } = require('./hooks/lib/context-builder');
|
|
112
116
|
|
|
@@ -9,7 +9,7 @@ description: >
|
|
|
9
9
|
memoria (eso lo hace red-team-swl) ni de seguridad de código (eso lo hace
|
|
10
10
|
revisor-seguridad-swl) — este skill se especializa en decisiones técnicas
|
|
11
11
|
con costo de cambio alto.
|
|
12
|
-
version: "1.
|
|
12
|
+
version: "1.2.0"
|
|
13
13
|
exclusiones:
|
|
14
14
|
- "No cargar para revisión de memoria SWL (APRENDIZAJES.md, instintos/) — esa es responsabilidad de red-team-swl."
|
|
15
15
|
- "No cargar para auditoría de seguridad de código (OWASP, CVEs, inyección) — usar revisor-seguridad-swl."
|
|
@@ -142,6 +142,22 @@ no en hipótesis falsable. Documentarla como tal en el reporte.
|
|
|
142
142
|
- BAJO-EVIDENCIA — falla en pasos 2, 4 o 5; reabrir antes de comprometer
|
|
143
143
|
```
|
|
144
144
|
|
|
145
|
+
## Patrón validado: dictamen adversarial convertido en gates de activación
|
|
146
|
+
|
|
147
|
+
[Caso real 2026-07-10, ADR-0042] La forma de mayor valor del veredicto
|
|
148
|
+
adversarial no es el veto sino la **conversión de cada condición del dictamen
|
|
149
|
+
en un gate verificable del propio diseño**: el abogado del diablo (verificando
|
|
150
|
+
contra el repo con archivo:línea, no opinando) produjo 3 pre-mortems plausibles
|
|
151
|
+
(canary sin señal estadística, el-sistema-escribe-su-propio-examen, headless
|
|
152
|
+
que compite con la sesión del usuario) y 7 condiciones; en lugar de rechazar
|
|
153
|
+
el plan, las condiciones se integraron como gates de activación escalonados
|
|
154
|
+
(G-B…G-E) con criterios observables y triggers de reversión. Resultado: la
|
|
155
|
+
decisión del usuario se respeta, el riesgo queda contenido POR CONSTRUCCIÓN y
|
|
156
|
+
el dictamen deja de ser un documento — se vuelve arquitectura. Requisitos del
|
|
157
|
+
patrón: el crítico verifica afirmaciones contra el código real (no memoria),
|
|
158
|
+
cada condición tiene verificación binaria, y los gates viven en el ADR con
|
|
159
|
+
fecha de reevaluación.
|
|
160
|
+
|
|
145
161
|
## Anti-patrones del skill
|
|
146
162
|
|
|
147
163
|
- **Auto-revisión**: el agente que tomó la decisión ejecuta el skill sobre sí mismo.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: drift-detection
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.1
|
|
4
4
|
herramientasPermitidas: [Read]
|
|
5
5
|
description: "Detección de drift de métricas de agentes/skills via ventana deslizante (7d) vs baseline (4 semanas). Integrado al operador Reflect del ciclo AGP."
|
|
6
6
|
exclusiones:
|
|
@@ -38,6 +38,11 @@ Adaptado de `runDriftCheck`/`getDriftTimeline` en mission-control-main (MIT).
|
|
|
38
38
|
|
|
39
39
|
## Exports del módulo
|
|
40
40
|
|
|
41
|
+
Los bloques `js` de este skill documentan la API con el layout del repo madre
|
|
42
|
+
(`scripts/lib/`, `hooks/lib/`); en instalaciones destino los módulos viven
|
|
43
|
+
aplanados junto a los hooks instalados. Referencia de API, no comandos a
|
|
44
|
+
ejecutar tal cual en proyectos consumidores.
|
|
45
|
+
|
|
41
46
|
```js
|
|
42
47
|
const { detectarDrift, generarLineaTemporal } = require('./scripts/lib/drift-detector');
|
|
43
48
|
```
|
|
@@ -47,7 +47,7 @@ Antes de la primera tarea Y al inicio de cada slice, verificar que el PLAN no
|
|
|
47
47
|
fue mutado tras su aprobación:
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
|
|
50
|
+
swl-ses verificar-plan --fase=0N
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
- `modo: "firmado"` → continuar.
|
|
@@ -84,13 +84,13 @@ Tras commitear una tarea (y al cerrar la fase), evaluar las adyacencias de riesg
|
|
|
84
84
|
del diff y anexar propuestas SOLO si hay señal. Propone, nunca bloquea ni ejecuta:
|
|
85
85
|
|
|
86
86
|
```bash
|
|
87
|
-
|
|
87
|
+
swl-ses propose-step --rango=HEAD~1..HEAD
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
Si imprime un anexo, agregarlo al reporte de la tarea (y al RESUMEN.md al cerrar
|
|
91
91
|
la fase). Si no imprime nada, silencio — no agregar sección vacía. Opt-out con
|
|
92
92
|
`SWL_PROPOSE=0`. Antes de una acción autónoma de clase `cambio_reversible`,
|
|
93
|
-
registrar el auto-checkpoint: `
|
|
93
|
+
registrar el auto-checkpoint: `swl-ses autonomia --accion="<acción>"`.
|
|
94
94
|
Detalle en el fragmento `agentes/_propose-step.md`.
|
|
95
95
|
|
|
96
96
|
### Protocolo de retry con backoff exponencial
|
|
@@ -325,7 +325,7 @@ sigue el ciclo con evidencia.
|
|
|
325
325
|
Al iniciar la primera tarea de código de la fase, abrir la corrida de evidencia:
|
|
326
326
|
|
|
327
327
|
```bash
|
|
328
|
-
|
|
328
|
+
swl-ses loop-telemetry iniciar --tipo=tdd --direccion=lower_is_better --config='{"fase":"0N","tarea":"T-NN"}'
|
|
329
329
|
```
|
|
330
330
|
|
|
331
331
|
**RED**: Escribir el test que describe el comportamiento esperado.
|
|
@@ -334,14 +334,14 @@ de sintaxis o configuración. **Registrar la evidencia** (métrica = tests falla
|
|
|
334
334
|
descripción = fallo exacto):
|
|
335
335
|
|
|
336
336
|
```bash
|
|
337
|
-
|
|
337
|
+
swl-ses loop-telemetry registrar --dir=<dir> --iteracion=0 --metrica=<N_fallan> --delta=0 --estado=baseline --descripcion="RED T-NN: <fallo exacto del runner>"
|
|
338
338
|
```
|
|
339
339
|
|
|
340
340
|
**GREEN**: Escribir la implementación mínima que hace pasar el test.
|
|
341
341
|
"Mínima" significa: no implementar más de lo que el test exige. Registrar:
|
|
342
342
|
|
|
343
343
|
```bash
|
|
344
|
-
|
|
344
|
+
swl-ses loop-telemetry registrar --dir=<dir> --iteracion=1 --metrica=0 --delta=-<N> --estado=keep --descripcion="GREEN T-NN: suite verde"
|
|
345
345
|
```
|
|
346
346
|
|
|
347
347
|
**REFACTOR**: Limpiar el código sin cambiar el comportamiento.
|