@saulwade/swl-ses 1.4.0 → 1.4.2
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 +4 -3
- package/README.md +15 -14
- package/agentes/nemesis-auditor-swl.md +161 -0
- package/bin/swl-mcp-server.js +187 -187
- package/comandos/swl/.evolved.json +22 -22
- package/comandos/swl/contribuir.md +233 -233
- package/comandos/swl/nemesis.md +122 -0
- package/comandos/swl/salud.md +34 -0
- package/comandos/swl/verificar.md +45 -0
- package/gateway/lib/event-channel.js +191 -191
- package/habilidades/backend-production-resilience/SKILL.md +288 -288
- package/habilidades/benchmark-memoria/SKILL.md +186 -186
- package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
- package/habilidades/doubt-driven-review/SKILL.md +171 -171
- package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
- package/habilidades/eval-framework/SKILL.md +212 -212
- package/habilidades/feynman-auditor-swl/SKILL.md +123 -0
- package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -0
- package/habilidades/harness-claude-code/SKILL.md +299 -299
- package/habilidades/infra-github-actions/SKILL.md +166 -166
- package/habilidades/legacy-code-rescue/SKILL.md +267 -267
- package/habilidades/manejo-errores/.evolved.json +8 -8
- package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
- package/habilidades/meta-skills-estandar/recursos/skills-as-agents.md +163 -163
- package/habilidades/patrones-python/SKILL.md +229 -229
- package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
- package/habilidades/planear-fase/SKILL.md +319 -319
- package/habilidades/release-semver/.evolved.json +8 -8
- package/habilidades/state-inconsistency-auditor-swl/SKILL.md +166 -0
- package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -0
- package/habilidades/testing-python/SKILL.md +340 -340
- package/habilidades/web-fetcher-routing/SKILL.md +75 -0
- package/hooks/claudemd-bloat-detector.js +161 -161
- package/hooks/lib/agent-routing.js +107 -107
- package/hooks/lib/auto-consolidator.js +335 -335
- package/hooks/lib/error-classifier.js +308 -308
- package/hooks/lib/merkle-audit.js +96 -96
- 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 -0
- 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/toon-compressor.js +245 -245
- package/hooks/registro-turnos.js +209 -209
- package/hooks/sugerir-regenerar-inventario.js +170 -170
- package/hooks/validar-formato-post-subagente.js +140 -140
- package/hooks/validar-memoria-hook.js +218 -218
- package/instintos/prompt-appendices.yaml +57 -57
- package/manifiestos/agent-output-schemas.json +57 -57
- package/manifiestos/modulos.json +41 -6
- package/manifiestos/perfiles.json +2 -1
- package/manifiestos/skills-lock.json +30 -9
- 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 +10 -2
- package/reglas/analisis-previo-tareas-grandes.md +172 -172
- package/reglas/arreglar-al-detectar.md +147 -147
- package/reglas/fragmentos-compartidos.md +152 -152
- package/reglas/harness-claude-code.md +213 -213
- package/reglas/usar-context7.md +226 -226
- package/schemas/diary-entry.schema.json +80 -80
- package/scripts/audit-tools/audit-history.js +330 -0
- package/scripts/audit-tools/bundle-tracker.js +290 -0
- package/scripts/audit-tools/canary-monitor.js +352 -0
- package/scripts/audit-tools/code-profiler.js +605 -0
- package/scripts/audit-tools/dep-doctor.js +320 -0
- package/scripts/audit-tools/env-validator.js +206 -0
- package/scripts/audit-tools/lib/fs-walk.js +48 -0
- package/scripts/audit-tools/lib/output.js +23 -0
- package/scripts/audit-tools/migration-checker.js +392 -0
- package/scripts/audit-tools/pentest-scanner.js +1436 -0
- package/scripts/benchmark-memoria.js +167 -167
- 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-inventario.js +420 -420
- package/scripts/generar-matriz-lenguajes.js +271 -271
- package/scripts/lib/artefactos-python.js +43 -43
- package/scripts/lib/benchmark-metrics.js +160 -160
- package/scripts/lib/budget-enforcer.js +252 -252
- package/scripts/lib/configurar-ci.js +380 -380
- package/scripts/lib/contadores-inventario.js +217 -217
- package/scripts/lib/detectar-stack-detallado.js +307 -307
- 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/jaccard-similarity.js +98 -98
- package/scripts/lib/longmemeval-runner.js +125 -125
- package/scripts/lib/manifiestos.js +42 -1
- package/scripts/lib/npm-version.js +261 -261
- package/scripts/lib/paquetes-conocidos.js +50 -50
- package/scripts/lib/prompt-builder.js +264 -264
- package/scripts/lib/rrf-fusion.js +175 -175
- package/scripts/lib/scoring-instintos.js +277 -277
- package/scripts/lib/semantic-search.js +252 -252
- package/scripts/limpiar-artefactos-python.js +131 -131
- package/scripts/mcp-server/README.md +128 -128
- package/scripts/mcp-server/handlers.js +206 -206
- package/scripts/migrar-csv-a-array.js +168 -168
- package/scripts/migrar-fase-dominio.js +201 -201
- package/scripts/publicar.js +511 -511
- package/scripts/run-eval.js +141 -141
- package/scripts/validar-manifest.js +231 -195
- package/scripts/validar-userland-vacio.js +110 -110
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"descripcion": "Schemas de output esperado por agente — formato compacto declarado en reglas/brevedad-output.md. El hook validar-formato-post-subagente.js usa estos patrones para detectar cuándo un agente devuelve output fuera de contrato.",
|
|
4
|
-
"version": "1.0.0",
|
|
5
|
-
"schemas": {
|
|
6
|
-
"revisor-codigo-swl": {
|
|
7
|
-
"descripcion": "Revisión de calidad — formato compacto",
|
|
8
|
-
"patronesRequeridos": [
|
|
9
|
-
"(?im)VEREDICTO\\s*:\\s*(APROBADO|APROBADO_CON_OBSERVACIONES|RECHAZADO|REQUIERE_CORRECCIONES|CUMPLE|PARCIAL|NO\\s+CUMPLE)",
|
|
10
|
-
"(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
|
|
11
|
-
"(?im)MAYORES\\s*:\\s*\\d+",
|
|
12
|
-
"(?im)MENORES\\s*:\\s*\\d+",
|
|
13
|
-
"(?im)HALLAZGOS\\s*:"
|
|
14
|
-
]
|
|
15
|
-
},
|
|
16
|
-
"revisor-seguridad-swl": {
|
|
17
|
-
"descripcion": "Revisión de seguridad OWASP — formato compacto",
|
|
18
|
-
"patronesRequeridos": [
|
|
19
|
-
"(?im)VEREDICTO\\s*:\\s*(APROBADO|APROBADO_CON_OBSERVACIONES|RECHAZADO|REQUIERE_CORRECCIONES)",
|
|
20
|
-
"(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
|
|
21
|
-
"(?im)MAYORES\\s*:\\s*\\d+",
|
|
22
|
-
"(?im)HALLAZGOS\\s*:"
|
|
23
|
-
]
|
|
24
|
-
},
|
|
25
|
-
"revisor-typescript-swl": {
|
|
26
|
-
"descripcion": "Revisión TypeScript — formato compacto",
|
|
27
|
-
"patronesRequeridos": [
|
|
28
|
-
"(?im)VEREDICTO\\s*:\\s*\\w+",
|
|
29
|
-
"(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
|
|
30
|
-
"(?im)HALLAZGOS\\s*:"
|
|
31
|
-
]
|
|
32
|
-
},
|
|
33
|
-
"revisor-react-swl": {
|
|
34
|
-
"descripcion": "Revisión React — formato compacto",
|
|
35
|
-
"patronesRequeridos": [
|
|
36
|
-
"(?im)VEREDICTO\\s*:\\s*\\w+",
|
|
37
|
-
"(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
|
|
38
|
-
"(?im)HALLAZGOS\\s*:"
|
|
39
|
-
]
|
|
40
|
-
},
|
|
41
|
-
"revisor-angular-swl": {
|
|
42
|
-
"descripcion": "Revisión Angular — formato compacto",
|
|
43
|
-
"patronesRequeridos": [
|
|
44
|
-
"(?im)VEREDICTO\\s*:\\s*\\w+",
|
|
45
|
-
"(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
|
|
46
|
-
"(?im)HALLAZGOS\\s*:"
|
|
47
|
-
]
|
|
48
|
-
},
|
|
49
|
-
"tdd-qa-swl": {
|
|
50
|
-
"descripcion": "QA con TDD — reporte de implementación",
|
|
51
|
-
"patronesRequeridos": [
|
|
52
|
-
"(?im)ESTADO\\s*:\\s*(COMPLETADO|PARCIAL|BLOQUEADO)",
|
|
53
|
-
"(?im)(SLICES|TESTS)\\s*:"
|
|
54
|
-
]
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"descripcion": "Schemas de output esperado por agente — formato compacto declarado en reglas/brevedad-output.md. El hook validar-formato-post-subagente.js usa estos patrones para detectar cuándo un agente devuelve output fuera de contrato.",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"schemas": {
|
|
6
|
+
"revisor-codigo-swl": {
|
|
7
|
+
"descripcion": "Revisión de calidad — formato compacto",
|
|
8
|
+
"patronesRequeridos": [
|
|
9
|
+
"(?im)VEREDICTO\\s*:\\s*(APROBADO|APROBADO_CON_OBSERVACIONES|RECHAZADO|REQUIERE_CORRECCIONES|CUMPLE|PARCIAL|NO\\s+CUMPLE)",
|
|
10
|
+
"(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
|
|
11
|
+
"(?im)MAYORES\\s*:\\s*\\d+",
|
|
12
|
+
"(?im)MENORES\\s*:\\s*\\d+",
|
|
13
|
+
"(?im)HALLAZGOS\\s*:"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"revisor-seguridad-swl": {
|
|
17
|
+
"descripcion": "Revisión de seguridad OWASP — formato compacto",
|
|
18
|
+
"patronesRequeridos": [
|
|
19
|
+
"(?im)VEREDICTO\\s*:\\s*(APROBADO|APROBADO_CON_OBSERVACIONES|RECHAZADO|REQUIERE_CORRECCIONES)",
|
|
20
|
+
"(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
|
|
21
|
+
"(?im)MAYORES\\s*:\\s*\\d+",
|
|
22
|
+
"(?im)HALLAZGOS\\s*:"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"revisor-typescript-swl": {
|
|
26
|
+
"descripcion": "Revisión TypeScript — formato compacto",
|
|
27
|
+
"patronesRequeridos": [
|
|
28
|
+
"(?im)VEREDICTO\\s*:\\s*\\w+",
|
|
29
|
+
"(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
|
|
30
|
+
"(?im)HALLAZGOS\\s*:"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"revisor-react-swl": {
|
|
34
|
+
"descripcion": "Revisión React — formato compacto",
|
|
35
|
+
"patronesRequeridos": [
|
|
36
|
+
"(?im)VEREDICTO\\s*:\\s*\\w+",
|
|
37
|
+
"(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
|
|
38
|
+
"(?im)HALLAZGOS\\s*:"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
"revisor-angular-swl": {
|
|
42
|
+
"descripcion": "Revisión Angular — formato compacto",
|
|
43
|
+
"patronesRequeridos": [
|
|
44
|
+
"(?im)VEREDICTO\\s*:\\s*\\w+",
|
|
45
|
+
"(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
|
|
46
|
+
"(?im)HALLAZGOS\\s*:"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"tdd-qa-swl": {
|
|
50
|
+
"descripcion": "QA con TDD — reporte de implementación",
|
|
51
|
+
"patronesRequeridos": [
|
|
52
|
+
"(?im)ESTADO\\s*:\\s*(COMPLETADO|PARCIAL|BLOQUEADO)",
|
|
53
|
+
"(?im)(SLICES|TESTS)\\s*:"
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
package/manifiestos/modulos.json
CHANGED
|
@@ -1089,7 +1089,8 @@
|
|
|
1089
1089
|
"claude",
|
|
1090
1090
|
"openclaude",
|
|
1091
1091
|
"gemini"
|
|
1092
|
-
]
|
|
1092
|
+
],
|
|
1093
|
+
"opt_in": true
|
|
1093
1094
|
},
|
|
1094
1095
|
"graphify-swl": {
|
|
1095
1096
|
"descripcion": "Grafo de dependencias SWL: análisis topológico real portado de graphify-3. God nodes, blast radius, community detection, diff de grafos y hook de inyección de contexto.",
|
|
@@ -1138,7 +1139,8 @@
|
|
|
1138
1139
|
"opencode",
|
|
1139
1140
|
"codex",
|
|
1140
1141
|
"gemini"
|
|
1141
|
-
]
|
|
1142
|
+
],
|
|
1143
|
+
"opt_in": true
|
|
1142
1144
|
},
|
|
1143
1145
|
"claudemd-auditor": {
|
|
1144
1146
|
"descripcion": "Auditor de calidad de CLAUDE.md según best practices Anthropic (ADR-0016). Detecta inflación (líneas excesivas, bullets gigantes, secciones canónicas ausentes, sin @references, placeholders). Usado por el comando /swl:claudemd y por el hook claudemd-bloat-detector. Zero-deps. Soporta --json y --strict. Umbrales configurables: SWL_CLAUDEMD_MAX_LINES (default 200), SWL_CLAUDEMD_MAX_BULLET_CHARS (default 1000).",
|
|
@@ -1156,6 +1158,36 @@
|
|
|
1156
1158
|
"gemini"
|
|
1157
1159
|
]
|
|
1158
1160
|
},
|
|
1161
|
+
"auditoria-profunda": {
|
|
1162
|
+
"descripcion": "Auditoría profunda integrada (Opción C, ADR-0018). Agente Nemesis iterativo (Feynman + State Inconsistency) language-agnostic, 3 skills subordinados, comando /swl:nemesis, 8 tools ejecutables JSON-output en scripts/audit-tools/ (code-profiler con Python, pentest-scanner, dep-doctor, bundle-tracker, env-validator, migration-checker con Alembic, canary-monitor, audit-history) + hook lib security-net.js (SSRF protection, validateUrl, checkFileSize, redactSensitiveValue) + skill web-fetcher-routing. Adaptado de Houseofmvps/ultraship + 0xiehnnkta/nemesis-auditor + tw93/Waza bajo MIT License. Ejemplos generalizados de blockchain a Python/TS/Go/Rust/Java/C#.",
|
|
1163
|
+
"tipo": "mixto",
|
|
1164
|
+
"archivos": [
|
|
1165
|
+
"agentes/nemesis-auditor-swl.md",
|
|
1166
|
+
"habilidades/feynman-auditor-swl",
|
|
1167
|
+
"habilidades/state-inconsistency-auditor-swl",
|
|
1168
|
+
"habilidades/web-fetcher-routing",
|
|
1169
|
+
"comandos/swl/nemesis.md",
|
|
1170
|
+
"hooks/lib/security-net.js",
|
|
1171
|
+
"scripts/audit-tools/lib/output.js",
|
|
1172
|
+
"scripts/audit-tools/lib/fs-walk.js",
|
|
1173
|
+
"scripts/audit-tools/code-profiler.js",
|
|
1174
|
+
"scripts/audit-tools/pentest-scanner.js",
|
|
1175
|
+
"scripts/audit-tools/dep-doctor.js",
|
|
1176
|
+
"scripts/audit-tools/bundle-tracker.js",
|
|
1177
|
+
"scripts/audit-tools/env-validator.js",
|
|
1178
|
+
"scripts/audit-tools/migration-checker.js",
|
|
1179
|
+
"scripts/audit-tools/canary-monitor.js",
|
|
1180
|
+
"scripts/audit-tools/audit-history.js"
|
|
1181
|
+
],
|
|
1182
|
+
"targets": [
|
|
1183
|
+
"claude",
|
|
1184
|
+
"openclaude",
|
|
1185
|
+
"copilot",
|
|
1186
|
+
"opencode",
|
|
1187
|
+
"codex",
|
|
1188
|
+
"gemini"
|
|
1189
|
+
]
|
|
1190
|
+
},
|
|
1159
1191
|
"mcp-server-swl": {
|
|
1160
1192
|
"descripcion": "MCP server stub experimental que expone memoria SWL (aprendizajes, sesiones, instintos) a clientes MCP externos (Cursor, Gemini CLI, OpenCode, Cline, Claude Desktop). Modo stdio. 3 endpoints: swl_memory_search, swl_aprendizajes_recientes, swl_instintos_activos. SIN auth, SIN rate limiting, SIN HTTP transport, SIN tests integración. NO USAR EN PRODUCCIÓN. Trigger para hardening: uso real ≥2 runtimes diferentes consistentemente por ≥1 mes. El binario `swl-mcp-server` se instala automáticamente vía npm install -g (declarado en package.json bin). NO se propaga al runtime SWL — vive en el paquete npm como herramienta opt-in. Ver scripts/mcp-server/README.md para 11 limitaciones explícitas y diseño futuro.",
|
|
1161
1193
|
"tipo": "scripts",
|
|
@@ -1187,7 +1219,8 @@
|
|
|
1187
1219
|
"opencode",
|
|
1188
1220
|
"codex",
|
|
1189
1221
|
"gemini"
|
|
1190
|
-
]
|
|
1222
|
+
],
|
|
1223
|
+
"opt_in": true
|
|
1191
1224
|
},
|
|
1192
1225
|
"notificaciones-telegram": {
|
|
1193
1226
|
"descripcion": "Hook saliente de notificaciones Telegram (opt-in). Envía notificaciones al finalizar un turno (Stop), cuando Claude espera respuesta (Notification) y al terminar un subagente (SubagentStop). Hook SessionStart de auto-restauración de settings global. Daemon bot bidireccional con long-polling. Zero-deps: solo node: nativos. Requiere ~/.claude/notifications/.env con TELEGRAM_BOT_TOKEN y TELEGRAM_CHAT_ID. Opt-out: SWL_NOTIFICACIONES_TELEGRAM=0.",
|
|
@@ -1208,7 +1241,8 @@
|
|
|
1208
1241
|
],
|
|
1209
1242
|
"targets": [
|
|
1210
1243
|
"claude"
|
|
1211
|
-
]
|
|
1244
|
+
],
|
|
1245
|
+
"opt_in": true
|
|
1212
1246
|
},
|
|
1213
1247
|
"ci-cd-templates": {
|
|
1214
1248
|
"descripcion": "Plantillas de workflows GitHub Actions distribuibles a proyectos usuario (opt-in). Incluye swl-security.yml (revisión de seguridad con Claude en cada PR), swl-ci.yml (CI genérico Node 22+24), release-please.yml (releases automáticos desde conventional commits) y README de instalación. Skill infra-github-actions para troubleshooting y guía avanzada. Comando /swl:configurar-ci para instalación interactiva. No se instala automáticamente — requiere invocación explícita.",
|
|
@@ -1226,7 +1260,8 @@
|
|
|
1226
1260
|
],
|
|
1227
1261
|
"targets": [
|
|
1228
1262
|
"claude"
|
|
1229
|
-
]
|
|
1263
|
+
],
|
|
1264
|
+
"opt_in": true
|
|
1230
1265
|
}
|
|
1231
1266
|
}
|
|
1232
|
-
}
|
|
1267
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"lockfileVersion": 1,
|
|
3
|
-
"generatedAt": "2026-05-
|
|
4
|
-
"skillsCount":
|
|
5
|
-
"lockHash": "sha256:
|
|
3
|
+
"generatedAt": "2026-05-15T04:05:25.970Z",
|
|
4
|
+
"skillsCount": 158,
|
|
5
|
+
"lockHash": "sha256:e8aa8826b7a7285c7a0f182973b7565db338c7bb6a13707b6c518b2ac980b096",
|
|
6
6
|
"skills": [
|
|
7
7
|
{
|
|
8
8
|
"nombre": "accesibilidad-a11y",
|
|
@@ -452,6 +452,13 @@
|
|
|
452
452
|
"bytes": 17608,
|
|
453
453
|
"version": "\"1.2.0\""
|
|
454
454
|
},
|
|
455
|
+
{
|
|
456
|
+
"nombre": "feynman-auditor-swl",
|
|
457
|
+
"path": "habilidades/feynman-auditor-swl/SKILL.md",
|
|
458
|
+
"hash": "sha256:0bfc54a0e33a7c974ba4d644f46bf3d332eb8966de68a4dcbfa2de733b78ce68",
|
|
459
|
+
"bytes": 5080,
|
|
460
|
+
"version": null
|
|
461
|
+
},
|
|
455
462
|
{
|
|
456
463
|
"nombre": "filament-admin",
|
|
457
464
|
"path": "habilidades/filament-admin/SKILL.md",
|
|
@@ -714,9 +721,9 @@
|
|
|
714
721
|
{
|
|
715
722
|
"nombre": "node-experto",
|
|
716
723
|
"path": "habilidades/node-experto/SKILL.md",
|
|
717
|
-
"hash": "sha256:
|
|
718
|
-
"bytes":
|
|
719
|
-
"version": "\"1.0.
|
|
724
|
+
"hash": "sha256:8002768234ffb90d057d2d626488015c68bc969556e026b8c66542c681f3b8e6",
|
|
725
|
+
"bytes": 13538,
|
|
726
|
+
"version": "\"1.0.1\""
|
|
720
727
|
},
|
|
721
728
|
{
|
|
722
729
|
"nombre": "notificaciones-multicanal",
|
|
@@ -914,6 +921,13 @@
|
|
|
914
921
|
"bytes": 15651,
|
|
915
922
|
"version": "\"1.0.0\""
|
|
916
923
|
},
|
|
924
|
+
{
|
|
925
|
+
"nombre": "state-inconsistency-auditor-swl",
|
|
926
|
+
"path": "habilidades/state-inconsistency-auditor-swl/SKILL.md",
|
|
927
|
+
"hash": "sha256:fa1f2cbeba793f1d38c778b7ddca49f4c556dbf522de8edb10838dd54bd91c5f",
|
|
928
|
+
"bytes": 8013,
|
|
929
|
+
"version": null
|
|
930
|
+
},
|
|
917
931
|
{
|
|
918
932
|
"nombre": "stripe-pagos",
|
|
919
933
|
"path": "habilidades/stripe-pagos/SKILL.md",
|
|
@@ -987,9 +1001,9 @@
|
|
|
987
1001
|
{
|
|
988
1002
|
"nombre": "tdd-workflow",
|
|
989
1003
|
"path": "habilidades/tdd-workflow/SKILL.md",
|
|
990
|
-
"hash": "sha256:
|
|
991
|
-
"bytes":
|
|
992
|
-
"version": "\"1.0.
|
|
1004
|
+
"hash": "sha256:5f63f554a6a54e1a3b9d47f2497ae12176eb955418d2b0b138a168475dc1d820",
|
|
1005
|
+
"bytes": 17424,
|
|
1006
|
+
"version": "\"1.0.2\""
|
|
993
1007
|
},
|
|
994
1008
|
{
|
|
995
1009
|
"nombre": "terraform-experto",
|
|
@@ -1068,6 +1082,13 @@
|
|
|
1068
1082
|
"bytes": 14619,
|
|
1069
1083
|
"version": "\"1.1.1\""
|
|
1070
1084
|
},
|
|
1085
|
+
{
|
|
1086
|
+
"nombre": "web-fetcher-routing",
|
|
1087
|
+
"path": "habilidades/web-fetcher-routing/SKILL.md",
|
|
1088
|
+
"hash": "sha256:14dc3cebbdc105c7c429f0456cc2e961ace63f9ea548f94b99da1b9e0b7c2074",
|
|
1089
|
+
"bytes": 3611,
|
|
1090
|
+
"version": null
|
|
1091
|
+
},
|
|
1071
1092
|
{
|
|
1072
1093
|
"nombre": "wiki-conocimiento",
|
|
1073
1094
|
"path": "habilidades/wiki-conocimiento/SKILL.md",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saulwade/swl-ses",
|
|
3
|
-
"version": "1.4.
|
|
4
|
-
"description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot con
|
|
3
|
+
"version": "1.4.2",
|
|
4
|
+
"description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot con 60 agentes, 158 habilidades, 44 comandos, 65 reglas y 41 hooks. Soporta 11 lenguajes y 5 runtimes: Claude Code, Copilot, OpenCode, Codex y Gemini CLI. 100% en espanol (Mexico). Incluye gateway bidireccional con relay Telegram a Claude Code y auditoria profunda Nemesis con 8 tools ejecutables.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"swl-ses": "bin/swl-ses.js",
|
|
7
7
|
"swl-telegram-bot": "bin/swl-telegram-bot.js",
|
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
# Plantilla: Auditor con Veto Items + Cap Enforcement
|
|
2
|
-
|
|
3
|
-
Plantilla reusable para revisores SWL que aplican el patrón "veto items + cap
|
|
4
|
-
enforcement". Ver `reglas/gobernanza.md` sección "Veto items y cap enforcement".
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Cuándo usar esta plantilla
|
|
9
|
-
|
|
10
|
-
Cuando crees o actualices un revisor (`revisor-*-swl.md`) que:
|
|
11
|
-
|
|
12
|
-
- Audita cumplimiento de reglas globales del sistema (`reglas/*.md`).
|
|
13
|
-
- Necesita comunicar al lector cuáles violaciones son **no negociables**.
|
|
14
|
-
- Debe evitar que un score promedio "redondeado" oculte un problema crítico.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Estructura a copiar (insertar antes de "Formato de reporte obligatorio")
|
|
19
|
-
|
|
20
|
-
```markdown
|
|
21
|
-
## Veto items — cap enforcement a [LÍMITE]
|
|
22
|
-
|
|
23
|
-
Ciertos hallazgos son **no negociables**. Si encuentras CUALQUIERA de los
|
|
24
|
-
siguientes, el `score` del reporte queda **CAP a [LÍMITE] como máximo absoluto**,
|
|
25
|
-
independientemente de qué tan limpio esté el resto del código. Patrón adaptado
|
|
26
|
-
del modelo de auditor con veto items (ver `reglas/gobernanza.md`).
|
|
27
|
-
|
|
28
|
-
**Lista de veto items**:
|
|
29
|
-
|
|
30
|
-
1. **[Nombre del veto]**: [descripción específica + regla que viola].
|
|
31
|
-
2. ...
|
|
32
|
-
N. ...
|
|
33
|
-
|
|
34
|
-
**Reglas del cap**:
|
|
35
|
-
|
|
36
|
-
- Encontrar 1 veto item → `score ≤ [LÍMITE]`. Veredicto automático:
|
|
37
|
-
`RECHAZADO` o `APROBADO CON CORRECCIONES` (nunca `APROBADO` limpio).
|
|
38
|
-
- Encontrar 2+ veto items → `score ≤ [LÍMITE_ESTRICTO]`. Bloqueo absoluto.
|
|
39
|
-
- El veto NO se puede negociar bajando severidad.
|
|
40
|
-
- El cap se levanta SOLO cuando se demuestra remediación (commit + test) y el
|
|
41
|
-
revisor re-ejecuta la auditoría.
|
|
42
|
-
|
|
43
|
-
Reportar al inicio del reporte con bloque dedicado:
|
|
44
|
-
|
|
45
|
-
\`\`\`
|
|
46
|
-
### VETO ITEMS DETECTADOS
|
|
47
|
-
- [VI-1] <descripción>: \`archivo:linea\` — <evidencia>
|
|
48
|
-
- [VI-N] <descripción>: \`archivo:linea\` — <evidencia>
|
|
49
|
-
→ score CAP a [VALOR] ([N] veto items). Veredicto: [VEREDICTO].
|
|
50
|
-
\`\`\`
|
|
51
|
-
|
|
52
|
-
Si no se detecta ninguno: \`### VETO ITEMS DETECTADOS\n- Ninguno\`.
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Reglas para definir veto items
|
|
58
|
-
|
|
59
|
-
Antes de declarar un veto item, verifica:
|
|
60
|
-
|
|
61
|
-
1. **¿Existe una regla global que lo respalde?** Si no, no es veto. Crear o
|
|
62
|
-
actualizar la regla primero (`reglas/<dominio>.md`).
|
|
63
|
-
2. **¿Es objetivamente detectable?** Un veto debe ser binario (presente o
|
|
64
|
-
ausente). Criterios subjetivos como "código feo" no califican.
|
|
65
|
-
3. **¿Su presencia justifica bloquear el merge?** Si el equipo puede aprobar
|
|
66
|
-
el código sin corregirlo, no es veto — es hallazgo regular.
|
|
67
|
-
4. **¿Es proporcional al dominio del revisor?** Un revisor de seguridad no
|
|
68
|
-
declara vetos de estilo. Cada revisor solo veta lo de su dominio.
|
|
69
|
-
5. **¿Está la lista cerrada?** Una lista de 50 veto items es señal de mala
|
|
70
|
-
curación. Lo razonable: 8-15 items por revisor.
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Escalas recomendadas
|
|
75
|
-
|
|
76
|
-
| Tipo de reporte | Cap con 1 veto | Cap con 2+ vetos |
|
|
77
|
-
|-----------------|---------------|-----------------|
|
|
78
|
-
| Score 0-100 (CVSSv3-like) | 60/100 | 30/100 |
|
|
79
|
-
| Score 0-10 promedio por dimensión | 6.0/10 | 3.0/10 |
|
|
80
|
-
| Score 0-1 (probabilístico) | 0.6 | 0.3 |
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
## Ejemplos en agentes existentes
|
|
85
|
-
|
|
86
|
-
- `agentes/revisor-seguridad-swl.md` — 10 veto items de OWASP Top 10 + secrets + CVEs
|
|
87
|
-
- `agentes/revisor-codigo-swl.md` — 10 veto items mapeando a `reglas/estilo-codigo.md`
|
|
88
|
-
y `reglas/arquitectura.md`
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## Cómo el ejecutor responde a un cap
|
|
93
|
-
|
|
94
|
-
Si recibes un reporte con veto items detectados:
|
|
95
|
-
|
|
96
|
-
1. **NO negocies la severidad**. El cap está justificado por regla global.
|
|
97
|
-
2. **Aplica las correcciones específicas** que el revisor indica con
|
|
98
|
-
archivo:línea.
|
|
99
|
-
3. **Agrega un test que pruebe la corrección** (regression test). Sin test,
|
|
100
|
-
el veto puede regresar.
|
|
101
|
-
4. **Solicita re-revisión** al mismo revisor. Si el veto desapareció, el cap
|
|
102
|
-
se levanta y el score se recalcula sin penalización.
|
|
103
|
-
5. **Si NO puedes corregir** (limitación externa, blocker técnico): documenta
|
|
104
|
-
en `.planning/AUDITORIA.md` y escala al humano. NUNCA marques el trabajo
|
|
105
|
-
como completado con vetos abiertos.
|
|
1
|
+
# Plantilla: Auditor con Veto Items + Cap Enforcement
|
|
2
|
+
|
|
3
|
+
Plantilla reusable para revisores SWL que aplican el patrón "veto items + cap
|
|
4
|
+
enforcement". Ver `reglas/gobernanza.md` sección "Veto items y cap enforcement".
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Cuándo usar esta plantilla
|
|
9
|
+
|
|
10
|
+
Cuando crees o actualices un revisor (`revisor-*-swl.md`) que:
|
|
11
|
+
|
|
12
|
+
- Audita cumplimiento de reglas globales del sistema (`reglas/*.md`).
|
|
13
|
+
- Necesita comunicar al lector cuáles violaciones son **no negociables**.
|
|
14
|
+
- Debe evitar que un score promedio "redondeado" oculte un problema crítico.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Estructura a copiar (insertar antes de "Formato de reporte obligatorio")
|
|
19
|
+
|
|
20
|
+
```markdown
|
|
21
|
+
## Veto items — cap enforcement a [LÍMITE]
|
|
22
|
+
|
|
23
|
+
Ciertos hallazgos son **no negociables**. Si encuentras CUALQUIERA de los
|
|
24
|
+
siguientes, el `score` del reporte queda **CAP a [LÍMITE] como máximo absoluto**,
|
|
25
|
+
independientemente de qué tan limpio esté el resto del código. Patrón adaptado
|
|
26
|
+
del modelo de auditor con veto items (ver `reglas/gobernanza.md`).
|
|
27
|
+
|
|
28
|
+
**Lista de veto items**:
|
|
29
|
+
|
|
30
|
+
1. **[Nombre del veto]**: [descripción específica + regla que viola].
|
|
31
|
+
2. ...
|
|
32
|
+
N. ...
|
|
33
|
+
|
|
34
|
+
**Reglas del cap**:
|
|
35
|
+
|
|
36
|
+
- Encontrar 1 veto item → `score ≤ [LÍMITE]`. Veredicto automático:
|
|
37
|
+
`RECHAZADO` o `APROBADO CON CORRECCIONES` (nunca `APROBADO` limpio).
|
|
38
|
+
- Encontrar 2+ veto items → `score ≤ [LÍMITE_ESTRICTO]`. Bloqueo absoluto.
|
|
39
|
+
- El veto NO se puede negociar bajando severidad.
|
|
40
|
+
- El cap se levanta SOLO cuando se demuestra remediación (commit + test) y el
|
|
41
|
+
revisor re-ejecuta la auditoría.
|
|
42
|
+
|
|
43
|
+
Reportar al inicio del reporte con bloque dedicado:
|
|
44
|
+
|
|
45
|
+
\`\`\`
|
|
46
|
+
### VETO ITEMS DETECTADOS
|
|
47
|
+
- [VI-1] <descripción>: \`archivo:linea\` — <evidencia>
|
|
48
|
+
- [VI-N] <descripción>: \`archivo:linea\` — <evidencia>
|
|
49
|
+
→ score CAP a [VALOR] ([N] veto items). Veredicto: [VEREDICTO].
|
|
50
|
+
\`\`\`
|
|
51
|
+
|
|
52
|
+
Si no se detecta ninguno: \`### VETO ITEMS DETECTADOS\n- Ninguno\`.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Reglas para definir veto items
|
|
58
|
+
|
|
59
|
+
Antes de declarar un veto item, verifica:
|
|
60
|
+
|
|
61
|
+
1. **¿Existe una regla global que lo respalde?** Si no, no es veto. Crear o
|
|
62
|
+
actualizar la regla primero (`reglas/<dominio>.md`).
|
|
63
|
+
2. **¿Es objetivamente detectable?** Un veto debe ser binario (presente o
|
|
64
|
+
ausente). Criterios subjetivos como "código feo" no califican.
|
|
65
|
+
3. **¿Su presencia justifica bloquear el merge?** Si el equipo puede aprobar
|
|
66
|
+
el código sin corregirlo, no es veto — es hallazgo regular.
|
|
67
|
+
4. **¿Es proporcional al dominio del revisor?** Un revisor de seguridad no
|
|
68
|
+
declara vetos de estilo. Cada revisor solo veta lo de su dominio.
|
|
69
|
+
5. **¿Está la lista cerrada?** Una lista de 50 veto items es señal de mala
|
|
70
|
+
curación. Lo razonable: 8-15 items por revisor.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Escalas recomendadas
|
|
75
|
+
|
|
76
|
+
| Tipo de reporte | Cap con 1 veto | Cap con 2+ vetos |
|
|
77
|
+
|-----------------|---------------|-----------------|
|
|
78
|
+
| Score 0-100 (CVSSv3-like) | 60/100 | 30/100 |
|
|
79
|
+
| Score 0-10 promedio por dimensión | 6.0/10 | 3.0/10 |
|
|
80
|
+
| Score 0-1 (probabilístico) | 0.6 | 0.3 |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Ejemplos en agentes existentes
|
|
85
|
+
|
|
86
|
+
- `agentes/revisor-seguridad-swl.md` — 10 veto items de OWASP Top 10 + secrets + CVEs
|
|
87
|
+
- `agentes/revisor-codigo-swl.md` — 10 veto items mapeando a `reglas/estilo-codigo.md`
|
|
88
|
+
y `reglas/arquitectura.md`
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Cómo el ejecutor responde a un cap
|
|
93
|
+
|
|
94
|
+
Si recibes un reporte con veto items detectados:
|
|
95
|
+
|
|
96
|
+
1. **NO negocies la severidad**. El cap está justificado por regla global.
|
|
97
|
+
2. **Aplica las correcciones específicas** que el revisor indica con
|
|
98
|
+
archivo:línea.
|
|
99
|
+
3. **Agrega un test que pruebe la corrección** (regression test). Sin test,
|
|
100
|
+
el veto puede regresar.
|
|
101
|
+
4. **Solicita re-revisión** al mismo revisor. Si el veto desapareció, el cap
|
|
102
|
+
se levanta y el score se recalcula sin penalización.
|
|
103
|
+
5. **Si NO puedes corregir** (limitación externa, blocker técnico): documenta
|
|
104
|
+
en `.planning/AUDITORIA.md` y escala al humano. NUNCA marques el trabajo
|
|
105
|
+
como completado con vetos abiertos.
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
# Plantillas de GitHub Actions — swl-ses
|
|
2
|
-
|
|
3
|
-
Tres workflows listos para copiar a `.github/workflows/` de cualquier proyecto.
|
|
4
|
-
|
|
5
|
-
## Cómo instalar
|
|
6
|
-
|
|
7
|
-
La forma recomendada es via el comando interactivo:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
/swl:configurar-ci init
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
O manualmente: copiar los archivos de esta carpeta a `.github/workflows/` de tu proyecto.
|
|
14
|
-
|
|
15
|
-
## Workflows disponibles
|
|
16
|
-
|
|
17
|
-
### `swl-security.yml` — Revisión de seguridad con Claude
|
|
18
|
-
|
|
19
|
-
Corre en cada PR a `main`. Analiza el diff con `anthropics/claude-code-security-review`
|
|
20
|
-
y comenta hallazgos directamente en el PR.
|
|
21
|
-
|
|
22
|
-
**Requiere**: secret `CLAUDE_API_KEY` en GitHub Settings → Secrets and variables → Actions.
|
|
23
|
-
|
|
24
|
-
### `swl-ci.yml` — CI estándar
|
|
25
|
-
|
|
26
|
-
Corre en push y PRs a `main`. Detecta Node.js automáticamente. Incluye secciones
|
|
27
|
-
comentadas para Python, Rust y Go — activar las que correspondan al proyecto.
|
|
28
|
-
|
|
29
|
-
- Matrix Node 22 + 24
|
|
30
|
-
- `npm ci` → lint → type-check (si hay tsconfig.json) → tests
|
|
31
|
-
- `concurrency: cancel-in-progress: true`
|
|
32
|
-
|
|
33
|
-
**No requiere** secrets adicionales.
|
|
34
|
-
|
|
35
|
-
### `release-please.yml` — Releases automáticos
|
|
36
|
-
|
|
37
|
-
Tras merge a `main`, crea un Release PR con el bump de versión y CHANGELOG
|
|
38
|
-
generados desde conventional commits. Al mergear el Release PR, crea el tag
|
|
39
|
-
y el GitHub Release.
|
|
40
|
-
|
|
41
|
-
**No requiere** secrets adicionales (usa `GITHUB_TOKEN`). Requiere conventional commits.
|
|
42
|
-
|
|
43
|
-
Ver `docs/RELEASE-PLEASE-MIGRATION.md` para comparativa con el flujo manual actual.
|
|
44
|
-
|
|
45
|
-
## Skill de referencia
|
|
46
|
-
|
|
47
|
-
Para guía completa de setup, troubleshooting y gotchas: `Skill("infra-github-actions")`.
|
|
1
|
+
# Plantillas de GitHub Actions — swl-ses
|
|
2
|
+
|
|
3
|
+
Tres workflows listos para copiar a `.github/workflows/` de cualquier proyecto.
|
|
4
|
+
|
|
5
|
+
## Cómo instalar
|
|
6
|
+
|
|
7
|
+
La forma recomendada es via el comando interactivo:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
/swl:configurar-ci init
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
O manualmente: copiar los archivos de esta carpeta a `.github/workflows/` de tu proyecto.
|
|
14
|
+
|
|
15
|
+
## Workflows disponibles
|
|
16
|
+
|
|
17
|
+
### `swl-security.yml` — Revisión de seguridad con Claude
|
|
18
|
+
|
|
19
|
+
Corre en cada PR a `main`. Analiza el diff con `anthropics/claude-code-security-review`
|
|
20
|
+
y comenta hallazgos directamente en el PR.
|
|
21
|
+
|
|
22
|
+
**Requiere**: secret `CLAUDE_API_KEY` en GitHub Settings → Secrets and variables → Actions.
|
|
23
|
+
|
|
24
|
+
### `swl-ci.yml` — CI estándar
|
|
25
|
+
|
|
26
|
+
Corre en push y PRs a `main`. Detecta Node.js automáticamente. Incluye secciones
|
|
27
|
+
comentadas para Python, Rust y Go — activar las que correspondan al proyecto.
|
|
28
|
+
|
|
29
|
+
- Matrix Node 22 + 24
|
|
30
|
+
- `npm ci` → lint → type-check (si hay tsconfig.json) → tests
|
|
31
|
+
- `concurrency: cancel-in-progress: true`
|
|
32
|
+
|
|
33
|
+
**No requiere** secrets adicionales.
|
|
34
|
+
|
|
35
|
+
### `release-please.yml` — Releases automáticos
|
|
36
|
+
|
|
37
|
+
Tras merge a `main`, crea un Release PR con el bump de versión y CHANGELOG
|
|
38
|
+
generados desde conventional commits. Al mergear el Release PR, crea el tag
|
|
39
|
+
y el GitHub Release.
|
|
40
|
+
|
|
41
|
+
**No requiere** secrets adicionales (usa `GITHUB_TOKEN`). Requiere conventional commits.
|
|
42
|
+
|
|
43
|
+
Ver `docs/RELEASE-PLEASE-MIGRATION.md` para comparativa con el flujo manual actual.
|
|
44
|
+
|
|
45
|
+
## Skill de referencia
|
|
46
|
+
|
|
47
|
+
Para guía completa de setup, troubleshooting y gotchas: `Skill("infra-github-actions")`.
|