@saulwade/swl-ses 2.6.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +209 -197
- package/README.md +647 -600
- package/agentes/accesibilidad-wcag-swl.md +690 -690
- package/agentes/arquitecto-swl.md +267 -267
- package/agentes/auto-evolucion-swl.md +932 -932
- package/agentes/backend-csharp-swl.md +420 -420
- package/agentes/backend-go-swl.md +390 -390
- package/agentes/backend-java-swl.md +281 -281
- package/agentes/backend-rust-swl.md +364 -364
- package/agentes/backend-workers-swl.md +482 -482
- package/agentes/cloud-infra-swl.md +509 -509
- package/agentes/consolidador-swl.md +541 -541
- package/agentes/depurador-swl.md +352 -352
- package/agentes/devops-ci-swl.md +400 -400
- package/agentes/disenador-ui-swl.md +569 -569
- package/agentes/documentador-swl.md +345 -345
- package/agentes/frontend-angular-swl.md +621 -621
- package/agentes/frontend-css-swl.md +716 -716
- package/agentes/frontend-react-swl.md +692 -692
- package/agentes/frontend-swl.md +496 -496
- package/agentes/frontend-tailwind-swl.md +826 -826
- package/agentes/investigador-swl.md +432 -432
- package/agentes/investigador-ux-swl.md +505 -505
- package/agentes/migrador-swl.md +442 -442
- package/agentes/mobile-android-swl.md +511 -511
- package/agentes/mobile-cross-swl.md +541 -541
- package/agentes/mobile-ios-swl.md +502 -502
- package/agentes/mobile-testing-swl.md +302 -302
- package/agentes/nemesis-auditor-swl.md +285 -285
- package/agentes/observabilidad-swl.md +438 -438
- package/agentes/pagos-swl.md +310 -310
- package/agentes/perfilador-usuario-swl.md +321 -321
- package/agentes/planificador-swl.md +399 -399
- package/agentes/producto-prd-swl.md +589 -589
- package/agentes/red-team-swl.md +218 -218
- package/agentes/release-manager-swl.md +590 -590
- package/agentes/rendimiento-swl.md +713 -713
- package/agentes/revisor-angular-swl.md +278 -278
- package/agentes/revisor-csharp-swl.md +264 -264
- package/agentes/revisor-go-swl.md +259 -259
- package/agentes/revisor-java-swl.md +257 -257
- package/agentes/revisor-kotlin-swl.md +273 -273
- package/agentes/revisor-nextjs-swl.md +281 -281
- package/agentes/revisor-php-swl.md +271 -271
- package/agentes/revisor-react-swl.md +278 -278
- package/agentes/revisor-rust-swl.md +346 -346
- package/agentes/revisor-seguridad-swl.md +399 -399
- package/agentes/revisor-swift-swl.md +268 -268
- package/agentes/revisor-typescript-swl.md +346 -346
- package/agentes/tdd-qa-swl.md +393 -393
- package/bin/swl-ses.js +10 -0
- package/comandos/swl/actualizar.md +174 -174
- package/comandos/swl/adoptar-proyecto.md +265 -265
- package/comandos/swl/aprender.md +836 -836
- package/comandos/swl/aprobar-plan.md +146 -146
- package/comandos/swl/auditar-deps.md +134 -134
- package/comandos/swl/autoresearch.md +264 -264
- package/comandos/swl/ayuda.md +224 -224
- package/comandos/swl/brainstorm.md +52 -51
- package/comandos/swl/checkpoint.md +325 -325
- package/comandos/swl/claudemd.md +234 -234
- package/comandos/swl/compactar.md +310 -310
- package/comandos/swl/configurar-ci.md +235 -235
- package/comandos/swl/contexto.md +110 -110
- package/comandos/swl/crear-skill.md +292 -292
- package/comandos/swl/cron.md +194 -194
- package/comandos/swl/deuda-codigo.md +97 -97
- package/comandos/swl/discutir-fase.md +169 -169
- package/comandos/swl/ejecutar-fase.md +233 -233
- package/comandos/swl/evaluar-skill.md +520 -520
- package/comandos/swl/evolucion-continua.md +73 -73
- package/comandos/swl/evolucionar.md +267 -267
- package/comandos/swl/exportar-vault.md +583 -583
- package/comandos/swl/fix.md +118 -118
- package/comandos/swl/gateway.md +158 -158
- package/comandos/swl/inbox.md +116 -116
- package/comandos/swl/instalar.md +220 -220
- package/comandos/swl/instintos.md +86 -86
- package/comandos/swl/mapear-codebase.md +312 -312
- package/comandos/swl/mcp-status.md +176 -175
- package/comandos/swl/modelo.md +100 -100
- package/comandos/swl/nemesis.md +433 -433
- package/comandos/swl/notificaciones.md +299 -299
- package/comandos/swl/nuevo-proyecto.md +251 -251
- package/comandos/swl/planear-fase.md +263 -263
- package/comandos/swl/plugins.md +256 -256
- package/comandos/swl/predecir.md +169 -169
- package/comandos/swl/reflect-skills.md +125 -125
- package/comandos/swl/release.md +450 -450
- package/comandos/swl/revisar-impacto.md +201 -201
- package/comandos/swl/revisar.md +330 -330
- package/comandos/swl/seguridad.md +189 -189
- package/comandos/swl/sesiones.md +200 -200
- package/comandos/swl/skill-search.md +113 -113
- package/comandos/swl/status.md +345 -345
- package/comandos/swl/verificar.md +817 -817
- package/comandos/swl/wiki.md +620 -620
- package/gateway/cron/jobs.example.json +12 -12
- package/gateway/lib/event-channel.js +191 -191
- package/habilidades/agent-deep-links/SKILL.md +148 -148
- package/habilidades/auto-evolucion-protocolo/SKILL.md +294 -294
- package/habilidades/backend-async-postgres-testing/SKILL.md +216 -215
- package/habilidades/backend-error-design/SKILL.md +221 -221
- package/habilidades/backend-production-resilience/SKILL.md +288 -288
- package/habilidades/calidad-anti-patrones-universales/SKILL.md +105 -1
- package/habilidades/calidad-contract-testing/SKILL.md +165 -165
- package/habilidades/calidad-mutation-testing/SKILL.md +25 -1
- package/habilidades/changelog-generator/SKILL.md +174 -174
- package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
- package/habilidades/ci-cd-pipelines/SKILL.md +5 -1
- package/habilidades/compactacion-contexto/SKILL.md +2 -1
- package/habilidades/contenedores-docker/SKILL.md +4 -2
- package/habilidades/css-moderno/SKILL.md +7 -1
- package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
- package/habilidades/doubt-driven-review/SKILL.md +207 -207
- package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
- package/habilidades/drift-detection/SKILL.md +1 -1
- package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
- package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
- package/habilidades/extractor-de-aprendizajes/SKILL.md +12 -2
- package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
- package/habilidades/git-worktrees-paralelo/SKILL.md +19 -1
- package/habilidades/harness-claude-code/SKILL.md +315 -314
- package/habilidades/instalar-sistema/SKILL.md +227 -227
- 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 +358 -358
- package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
- package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
- package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
- package/habilidades/proceso-dynamic-workflows/SKILL.md +60 -0
- 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-ingenieria-requerimientos/SKILL.md +147 -147
- package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
- package/habilidades/proceso-modular-split/SKILL.md +256 -256
- package/habilidades/release-semver/SKILL.md +2 -2
- package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
- 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/tdd-workflow/SKILL.md +749 -749
- package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
- package/hooks/agente-lifecycle.js +1 -1
- package/hooks/audit-trail.js +1 -1
- package/hooks/auto-consolidacion.js +1 -1
- package/hooks/calidad-pre-commit.js +159 -10
- package/hooks/captura-acciones-post.js +1 -1
- package/hooks/captura-acciones-session.js +1 -1
- package/hooks/captura-feedback-usuario.js +1 -1
- package/hooks/ciclo-evolucion-subagente.js +26 -26
- package/hooks/ciclo-evolucion.js +26 -26
- package/hooks/contexto-iteracion.js +1 -1
- package/hooks/degradacion-instintos.js +1 -1
- package/hooks/grafo-contexto.js +1 -1
- package/hooks/guardrail-modelo.js +1 -1
- package/hooks/inbox-aviso.js +1 -1
- package/hooks/inyeccion-contexto.js +1 -1
- package/hooks/lib/agent-matcher.js +1 -1
- package/hooks/lib/agent-routing.js +1 -1
- package/hooks/lib/auto-consolidator.js +335 -335
- package/hooks/lib/captura-acciones.js +1 -1
- 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-metricas.js +1 -1
- package/hooks/lib/evolution-tracker.js +1 -1
- package/hooks/lib/gateway-notify.js +193 -193
- package/hooks/lib/mcp-health.js +1 -1
- package/hooks/lib/notificacion-formato.js +92 -0
- package/hooks/lib/nudge-tracker.js +1 -1
- package/hooks/lib/otlp-exporter.js +1 -1
- package/hooks/lib/propose-step.js +1 -1
- package/hooks/lib/provenance-tracker.js +191 -191
- package/hooks/lib/raiz-proyecto.js +158 -102
- package/hooks/lib/resource-quota.js +122 -122
- package/hooks/lib/retry-jitter.js +165 -165
- package/hooks/lib/run-log.js +1 -1
- package/hooks/lib/security-net.js +201 -201
- package/hooks/lib/singleton-guard.js +20 -13
- 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/telegram-cliente.js +11 -3
- package/hooks/lib/text-similarity.js +241 -241
- package/hooks/lib/toon-compressor.js +245 -245
- package/hooks/notificacion-telegram.js +17 -13
- package/hooks/preservar-estado-pre-compact.js +1 -1
- package/hooks/registro-turnos.js +1 -1
- package/hooks/resumen-sesion.js +1 -1
- package/hooks/risk-scoring.js +1 -1
- package/hooks/session-briefing.js +13 -5
- package/hooks/spec-gate.js +1 -1
- package/hooks/sugerir-regenerar-inventario.js +1 -1
- package/hooks/tdd-gate.js +1 -1
- package/hooks/telemetria-agentes.js +1 -1
- package/hooks/telemetria-skill-routing.js +1 -1
- package/hooks/tracking-costos.js +1 -1
- package/hooks/validar-formato-post-subagente.js +1 -1
- package/hooks/validar-intent-spec.js +1 -1
- package/hooks/validar-planning-paths.js +1 -1
- package/instintos/autonomia.yaml +27 -27
- package/instintos/prompt-appendices.yaml +57 -57
- package/llms.txt +29 -29
- package/manifiestos/agent-output-schemas.json +57 -57
- package/manifiestos/canonical-hashes.json +6250 -5257
- package/manifiestos/harness-ir.json +47536 -0
- package/manifiestos/modulos.json +1429 -1428
- package/manifiestos/policy-bundle.json +2065 -0
- package/manifiestos/policy-corpus-w2.json +3926 -0
- package/manifiestos/runtime-adapters-core3.json +208 -0
- package/manifiestos/runtime-conformance.json +139 -0
- package/manifiestos/skills-lock.json +1275 -1275
- package/package.json +94 -94
- package/plantillas/auditor-veto-template.md +105 -105
- 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 +369 -369
- package/reglas/accesibilidad.md +10 -10
- 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/git-workflow.md +1 -0
- package/reglas/hooks.md +6 -6
- package/reglas/intent-engineering.md +218 -218
- package/reglas/markitdown.md +8 -8
- package/reglas/monitor-ci.md +12 -0
- package/reglas/patrones.md +6 -6
- package/reglas/testing.md +7 -7
- package/reglas/tests-cleanup.md +224 -224
- 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/gate-state.schema.json +76 -0
- package/schemas/harness-ir.schema.json +369 -0
- package/schemas/hook-profiles.schema.json +54 -54
- package/schemas/hooks-config.schema.json +89 -89
- package/schemas/legacy-gates.schema.json +45 -0
- package/schemas/modulos.schema.json +38 -38
- package/schemas/perfiles.schema.json +36 -36
- package/schemas/plugin.schema.json +77 -77
- package/schemas/policy-bundle.schema.json +140 -0
- package/schemas/policy-enforcement.schema.json +117 -0
- package/schemas/policy-operation.schema.json +261 -0
- package/schemas/runtime-adapter.schema.json +176 -0
- package/schemas/runtime-build-attestation.schema.json +100 -0
- package/schemas/runtime-conformance.schema.json +239 -0
- package/schemas/runtime-diagnostic.schema.json +395 -0
- package/schemas/skill-evals.schema.json +119 -119
- package/schemas/skill-frontmatter.schema.json +245 -245
- package/schemas/w4-certification-request.schema.json +72 -0
- package/schemas/w4-certification-verdict.schema.json +224 -0
- package/schemas/w4-corpus.schema.json +172 -0
- package/schemas/w4-mutation-report.schema.json +116 -0
- package/schemas/w4-replay-result.schema.json +164 -0
- package/schemas/w4-scoring-report.schema.json +89 -0
- 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/auditar-clases-conocidas.js +134 -134
- package/scripts/bootstrap-instintos.js +88 -14
- package/scripts/canario-hooks.js +166 -166
- package/scripts/cli/aprobar-plan.js +73 -73
- package/scripts/cli/autonomia.js +23 -23
- package/scripts/cli/benchmark-memoria.js +37 -37
- package/scripts/cli/briefing.js +23 -23
- package/scripts/cli/ciclo-autonomo.js +73 -73
- package/scripts/cli/ciclo-evolucion.js +26 -26
- package/scripts/cli/ciclo-fase-b.js +102 -102
- 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/guardrail-metrics.js +39 -39
- package/scripts/cli/liberar-fase.js +42 -42
- package/scripts/cli/mark-evolved.js +56 -56
- package/scripts/cli/memoria-search.js +69 -69
- 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/nudge-accionar.js +39 -39
- package/scripts/cli/propose-step.js +29 -29
- package/scripts/cli/run-eval.js +38 -38
- 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/comandos/install-asistido.js +8 -7
- package/scripts/configurar-branch-protection.js +418 -418
- package/scripts/detectar-aprendizajes-duplicados.js +151 -151
- package/scripts/doctor.js +61 -13
- package/scripts/evidencia-valor.js +101 -101
- package/scripts/field-report.js +16 -16
- package/scripts/generar-checklists-consolidados.js +273 -273
- package/scripts/generar-claims-runtime.js +1342 -0
- package/scripts/generar-harness-ir.js +257 -0
- package/scripts/generar-inventario.js +52 -54
- package/scripts/generar-policy-bundle.js +202 -0
- package/scripts/instalador.js +39 -7
- package/scripts/lib/activar-hooks-proyecto.js +116 -116
- package/scripts/lib/approval-receipts.js +190 -0
- 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/certificacion-loop-state.js +421 -0
- package/scripts/lib/ci-reader.js +193 -193
- package/scripts/lib/ciclo-autonomo/candidatos.js +174 -174
- package/scripts/lib/ciclo-autonomo/config.js +165 -165
- package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -174
- package/scripts/lib/ciclo-autonomo/fallback.js +77 -77
- package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -139
- package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -112
- package/scripts/lib/ciclo-autonomo/index.js +301 -301
- package/scripts/lib/ciclo-autonomo/lock.js +124 -124
- package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -122
- package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -240
- package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -248
- package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -190
- package/scripts/lib/ciclo-autonomo/yaml-instintos.js +591 -535
- package/scripts/lib/clasificar-directorio.js +92 -0
- package/scripts/lib/contadores-inventario.js +217 -217
- package/scripts/lib/detectar-host-swl.js +175 -175
- package/scripts/lib/detectar-runtime.js +29 -20
- 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/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/evidence-verifier.js +192 -0
- package/scripts/lib/evidencia-release.js +322 -322
- package/scripts/lib/evidencia-valor.js +228 -228
- package/scripts/lib/expandir-targets.js +71 -71
- package/scripts/lib/frontmatter-canonico.js +509 -0
- package/scripts/lib/gate-engine.js +871 -0
- package/scripts/lib/gate-hooks-requires.js +249 -249
- package/scripts/lib/gate-licencias.js +212 -212
- package/scripts/lib/git-config-preflight.js +48 -0
- package/scripts/lib/git-metricas.js +257 -257
- package/scripts/lib/harness-ir.js +778 -0
- package/scripts/lib/harness-source-snapshot.js +309 -0
- package/scripts/lib/integrity-ledger.js +1147 -0
- package/scripts/lib/jaccard-similarity.js +98 -98
- package/scripts/lib/legacy-gate-migration.js +324 -0
- package/scripts/lib/limpiar-basura-global.js +204 -0
- package/scripts/lib/longmemeval-runner.js +125 -125
- package/scripts/lib/metricas-dora.js +204 -204
- package/scripts/lib/notificaciones-telegram.js +1 -0
- package/scripts/lib/npm-version.js +1 -0
- package/scripts/lib/paquetes-conocidos.js +50 -50
- package/scripts/lib/plan-lock.js +61 -13
- package/scripts/lib/policy-broker.js +338 -0
- package/scripts/lib/policy-bundle.js +342 -0
- package/scripts/lib/policy-context-provider.js +310 -0
- package/scripts/lib/policy-contract.js +479 -0
- package/scripts/lib/policy-verifier-utils.js +65 -0
- package/scripts/lib/pr-analyzer.js +399 -399
- package/scripts/lib/principal-verifier.js +178 -0
- package/scripts/lib/prompt-builder.js +264 -264
- package/scripts/lib/resolver-plan-fase.js +37 -37
- package/scripts/lib/rrf-fusion.js +175 -175
- package/scripts/lib/runtime-adapter-contract.js +267 -0
- package/scripts/lib/runtime-artifact-verifier.js +426 -0
- package/scripts/lib/runtime-build-attestation.js +127 -0
- package/scripts/lib/runtime-bundle-installer.js +586 -0
- package/scripts/lib/runtime-compiler.js +327 -0
- package/scripts/lib/runtime-conformance.js +202 -0
- package/scripts/lib/runtime-doctor-core3.js +567 -0
- package/scripts/lib/runtime-doctor-input.js +59 -0
- package/scripts/lib/runtime-operation-adapter.js +267 -0
- package/scripts/lib/schema-version.js +164 -164
- package/scripts/lib/semantic-search.js +252 -252
- package/scripts/lib/signed-envelope.js +545 -0
- package/scripts/lib/single-use-store.js +359 -0
- package/scripts/lib/skills-externas.js +31 -0
- package/scripts/lib/toml-merge.js +204 -204
- package/scripts/lib/transformadores/codex.js +15 -8
- package/scripts/lib/transformadores/gemini.js +79 -5
- package/scripts/lib/w4-attestation-adapter.js +158 -0
- package/scripts/lib/w4-canario.js +337 -0
- package/scripts/lib/w4-claims.js +182 -0
- package/scripts/lib/w4-corpus-generador.js +542 -0
- package/scripts/lib/w4-gate-c5.js +115 -0
- package/scripts/lib/w4-harness-bajo-prueba.js +155 -0
- package/scripts/lib/w4-matriz-combos.js +55 -0
- package/scripts/lib/w4-motor-mutacion.js +1348 -0
- package/scripts/lib/w4-motor-replay.js +735 -0
- package/scripts/lib/w4-pin-origen.js +54 -0
- package/scripts/lib/w4-publicar-request.js +132 -0
- package/scripts/lib/w4-revocacion.js +62 -0
- package/scripts/lib/w4-runtimes-core3.js +38 -0
- package/scripts/lib/w4-scorer-certificacion.js +692 -0
- package/scripts/lib/w4-superficie-candidato.js +49 -0
- package/scripts/lib/w4-veredicto.js +452 -0
- package/scripts/lib/w4-verificar-veredicto.js +302 -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/migrar-gates-legacy.js +108 -0
- package/scripts/publicar-certification-request.js +115 -0
- package/scripts/runtime-doctor.js +107 -0
- 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/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/install-wizard.js +408 -403
- 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/validar-userland-vacio.js +110 -110
- package/scripts/verificar-aislamiento-swl-eval.js +87 -0
- package/scripts/verificar-empaquetado-downstream.js +375 -0
- package/scripts/verificar-loop-constructor.js +215 -0
- package/scripts/verificar-trazabilidad.js +13 -6
- package/scripts/verificar-veredicto-real.js +84 -0
- package/instintos/.backups/perfil-usuario.yaml.2026-07-10-165128.bak +0 -53
- package/instintos/.backups/proyecto.yaml.2026-07-10-165128.bak +0 -372
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* CLI (wrapper de EFECTO) que acepta/rechaza el `CertificationVerdict` que
|
|
5
|
+
* vuelve de swl-eval: lee verdict.json, el bundle Sigstore y el request
|
|
6
|
+
* publicado; cablea el núcleo puro T-06 (`verificarVeredicto`) con el adaptador
|
|
7
|
+
* real (`gh attestation verify`) y el `pinOrigen` constante. Emite badge SÓLO
|
|
8
|
+
* si `ok === true && certifica === true`. T-09, ADR-0053 pieza 5, ADR-0056.
|
|
9
|
+
*
|
|
10
|
+
* Sin efectos al require: `main(opciones)` sólo actúa al invocarse; `deps`,
|
|
11
|
+
* `attestationVerifier`, `verdict`/`bundle`/`request` son inyectables para test.
|
|
12
|
+
* Nunca lanza por un veredicto inválido — el núcleo es fail-closed y retorna
|
|
13
|
+
* `{ok:false, codigo}`.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const fs = require('node:fs');
|
|
17
|
+
|
|
18
|
+
const { verificarVeredicto, MAX_BUNDLE_BYTES } = require('./lib/w4-verificar-veredicto');
|
|
19
|
+
const { crearAttestationVerifierReal } = require('./lib/w4-attestation-adapter');
|
|
20
|
+
const { construirRequestEsperado } = require('./lib/w4-publicar-request');
|
|
21
|
+
const { PIN_ORIGEN, OWNER, SIGNER_WORKFLOW } = require('./lib/w4-pin-origen');
|
|
22
|
+
|
|
23
|
+
/** Lee el bundle acotando su tamaño ANTES de cargarlo (fail-closed en el borde). */
|
|
24
|
+
function leerBundle(deps, ruta) {
|
|
25
|
+
const tam = deps.fs.statSync(ruta).size;
|
|
26
|
+
if (tam > MAX_BUNDLE_BYTES) {
|
|
27
|
+
const error = new Error(`bundle excede ${MAX_BUNDLE_BYTES} bytes (${tam})`);
|
|
28
|
+
error.codigo = 'BUNDLE_DEMASIADO_GRANDE';
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
return deps.fs.readFileSync(ruta);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async function main(opciones = {}) {
|
|
35
|
+
const deps = opciones.deps || { fs };
|
|
36
|
+
const verdict = opciones.verdict
|
|
37
|
+
?? JSON.parse(deps.fs.readFileSync(opciones.verdictPath, 'utf8'));
|
|
38
|
+
const bundle = opciones.bundle ?? leerBundle(deps, opciones.bundlePath);
|
|
39
|
+
const request = opciones.request
|
|
40
|
+
?? JSON.parse(deps.fs.readFileSync(opciones.requestPath, 'utf8'));
|
|
41
|
+
|
|
42
|
+
const requestEsperado = construirRequestEsperado(request);
|
|
43
|
+
const attestationVerifier = opciones.attestationVerifier
|
|
44
|
+
|| crearAttestationVerifierReal({
|
|
45
|
+
owner: OWNER,
|
|
46
|
+
signerWorkflow: SIGNER_WORKFLOW,
|
|
47
|
+
...(opciones.adapterOpciones || {}),
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const resultado = await verificarVeredicto(verdict, {
|
|
51
|
+
pinOrigen: PIN_ORIGEN,
|
|
52
|
+
requestEsperado,
|
|
53
|
+
attestationVerifier,
|
|
54
|
+
bundle,
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const emiteBadge = resultado.ok === true && resultado.certifica === true;
|
|
58
|
+
return { resultado, emiteBadge };
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
module.exports = { main };
|
|
62
|
+
|
|
63
|
+
if (require.main === module) {
|
|
64
|
+
const [verdictPath, bundlePath, requestPath] = process.argv.slice(2);
|
|
65
|
+
if (!verdictPath || !bundlePath || !requestPath) {
|
|
66
|
+
process.stderr.write('Uso: node scripts/verificar-veredicto-real.js <verdict.json> <bundle.sigstore.json> <certification-request.json>\n');
|
|
67
|
+
process.exit(2);
|
|
68
|
+
}
|
|
69
|
+
main({ verdictPath, bundlePath, requestPath }).then(({ resultado, emiteBadge }) => {
|
|
70
|
+
if (emiteBadge) {
|
|
71
|
+
process.stdout.write('VEREDICTO: certificable — origen verificado y certifica:true (procedencia de buena fe, no aislamiento adversarial)\n');
|
|
72
|
+
process.exit(0);
|
|
73
|
+
}
|
|
74
|
+
const motivo = resultado.ok ? 'auténtico pero certifica:false (no emite badge)' : `rechazado: ${resultado.codigo}`;
|
|
75
|
+
process.stdout.write(`VEREDICTO: NO certificable — ${motivo}\n`);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}).catch((err) => {
|
|
78
|
+
const etiqueta = err.codigo === 'CERTIFICATION_REQUEST_INVALID'
|
|
79
|
+
? 'Request de certificación inválido'
|
|
80
|
+
: (err.codigo === 'BUNDLE_DEMASIADO_GRANDE' ? 'Bundle rechazado' : 'Error de E/S al verificar');
|
|
81
|
+
process.stderr.write(`${etiqueta}: ${err.message}\n`);
|
|
82
|
+
process.exit(2);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# Perfil de Usuario — Modelo persistente entre sesiones
|
|
2
|
-
# Generado y mantenido por agentes/perfilador-usuario-swl.md
|
|
3
|
-
# Alimentado por hooks/actualizar-perfil-usuario.js (acumula señales en .planning/perfil-usuario/dirty.json)
|
|
4
|
-
# NUNCA editar a mano datos con confidence >= 0.9 sin contraevidencia documentada
|
|
5
|
-
# Formato estandarizado v1.0
|
|
6
|
-
|
|
7
|
-
version: "1.0"
|
|
8
|
-
generado: "2026-04-18"
|
|
9
|
-
actualizado: "2026-04-18"
|
|
10
|
-
total_senales_consolidadas: 0
|
|
11
|
-
|
|
12
|
-
identidad:
|
|
13
|
-
rol: null
|
|
14
|
-
rol_confidence: 0.0
|
|
15
|
-
rol_fuentes: []
|
|
16
|
-
anos_experiencia: null
|
|
17
|
-
zonas_horarias_activas: []
|
|
18
|
-
|
|
19
|
-
stack_preferido: []
|
|
20
|
-
# Estructura de entrada:
|
|
21
|
-
# - tecnologia: "Python"
|
|
22
|
-
# confidence: 0.9
|
|
23
|
-
# evidencia: "87% de archivos modificados en último mes"
|
|
24
|
-
|
|
25
|
-
patrones_trabajo: []
|
|
26
|
-
# - patron: "pide 'investigar antes de editar'"
|
|
27
|
-
# confidence: 0.95
|
|
28
|
-
# evidencia_count: 5
|
|
29
|
-
# fuente: "CLAUDE.md + feedback recurrente"
|
|
30
|
-
|
|
31
|
-
correcciones_repetidas: []
|
|
32
|
-
# - correccion: "no usar emojis"
|
|
33
|
-
# confidence: 0.9
|
|
34
|
-
# ocurrencias: 4
|
|
35
|
-
# primera: "YYYY-MM-DD"
|
|
36
|
-
# ultima: "YYYY-MM-DD"
|
|
37
|
-
|
|
38
|
-
decisiones_validadas: []
|
|
39
|
-
# - decision: "Node.js zero-deps en hooks/lib/"
|
|
40
|
-
# confidence: 1.0
|
|
41
|
-
# fuente: "CLAUDE.md regla explícita"
|
|
42
|
-
# confirmado_en: ["YYYY-MM-DD"]
|
|
43
|
-
|
|
44
|
-
preferencias_comunicacion:
|
|
45
|
-
idioma: "es-MX"
|
|
46
|
-
formalidad: null # tuteo-tecnico | ustedeo-formal | null (no observado)
|
|
47
|
-
longitud_respuestas: null # breve | media | extensa | null
|
|
48
|
-
detalle_explicaciones: null
|
|
49
|
-
confirmacion_acciones: null # siempre | riesgo-alto | nunca
|
|
50
|
-
|
|
51
|
-
limites_explicitos:
|
|
52
|
-
no_guardar: [] # Categorías que el usuario pidió no memorizar
|
|
53
|
-
no_sugerir: [] # Stacks/frameworks/enfoques a evitar en sugerencias
|
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
# Instintos del Proyecto — SWL-SES
|
|
2
|
-
# Generado automáticamente por scripts/bootstrap-instintos.js desde .planning/APRENDIZAJES.md
|
|
3
|
-
# Formato estandarizado v1.0
|
|
4
|
-
|
|
5
|
-
version: "1.0"
|
|
6
|
-
generado: "2026-04-19"
|
|
7
|
-
total_instintos: 26
|
|
8
|
-
|
|
9
|
-
instintos:
|
|
10
|
-
- id: inst-001
|
|
11
|
-
pattern: "Heurística de paralelización del orquestador"
|
|
12
|
-
description: "Paralelizar (múltiples Agent() en un solo mensaje) cuando las tareas son independientes y no comparten archivos. Ir secuencial cuando hay dependencias de datos entre agentes."
|
|
13
|
-
confidence: 0.8
|
|
14
|
-
scope: project
|
|
15
|
-
source: "APRENDIZAJES.md"
|
|
16
|
-
evidence_count: 1
|
|
17
|
-
last_validated: "2026-03-29"
|
|
18
|
-
contradictions: 0
|
|
19
|
-
status: active
|
|
20
|
-
tags: ["decision", "arquitectura"]
|
|
21
|
-
created_at: "2026-04-19"
|
|
22
|
-
seccion_origen: "Decisiones de arquitectura"
|
|
23
|
-
|
|
24
|
-
- id: inst-002
|
|
25
|
-
pattern: "Pipeline mobile"
|
|
26
|
-
description: "producto-prd-swl → mobile-cross-swl (decisión) → mobile-android/ios-swl → tdd-qa-swl. La decisión de framework (React Native vs Flutter vs nativo) se toma en mobile-cross-swl, no en el orquestador."
|
|
27
|
-
confidence: 0.8
|
|
28
|
-
scope: project
|
|
29
|
-
source: "APRENDIZAJES.md"
|
|
30
|
-
evidence_count: 1
|
|
31
|
-
last_validated: "2026-03-29"
|
|
32
|
-
contradictions: 0
|
|
33
|
-
status: active
|
|
34
|
-
tags: ["decision", "arquitectura"]
|
|
35
|
-
created_at: "2026-04-19"
|
|
36
|
-
seccion_origen: "Decisiones de arquitectura"
|
|
37
|
-
|
|
38
|
-
- id: inst-003
|
|
39
|
-
pattern: "Fragmentación de criterio en CLAUDE.md"
|
|
40
|
-
description: "Con 53 agentes compartiendo el mismo CLAUDE.md, las reglas deben ser genéricas o explícitamente marcadas con su alcance. Una regla de Angular escrita genéricamente confunde al agente de backend."
|
|
41
|
-
confidence: 0.8
|
|
42
|
-
scope: project
|
|
43
|
-
source: "APRENDIZAJES.md"
|
|
44
|
-
evidence_count: 1
|
|
45
|
-
last_validated: "2026-03-29"
|
|
46
|
-
contradictions: 0
|
|
47
|
-
status: active
|
|
48
|
-
tags: ["decision", "arquitectura"]
|
|
49
|
-
created_at: "2026-04-19"
|
|
50
|
-
seccion_origen: "Decisiones de arquitectura"
|
|
51
|
-
|
|
52
|
-
- id: inst-004
|
|
53
|
-
pattern: "Preservación de evoluciones en actualización"
|
|
54
|
-
description: "`decideUpdateStrategy()` debe usar `evolvedFrom <= versionNueva` (no igualdad exacta) para preservar evoluciones de versiones anteriores. Tres bugs en cadena descubiertos y corregidos."
|
|
55
|
-
confidence: 0.8
|
|
56
|
-
scope: project
|
|
57
|
-
source: "APRENDIZAJES.md"
|
|
58
|
-
evidence_count: 1
|
|
59
|
-
last_validated: "2026-04-02"
|
|
60
|
-
contradictions: 0
|
|
61
|
-
status: active
|
|
62
|
-
tags: ["decision", "arquitectura"]
|
|
63
|
-
created_at: "2026-04-19"
|
|
64
|
-
seccion_origen: "Decisiones de arquitectura"
|
|
65
|
-
|
|
66
|
-
- id: inst-005
|
|
67
|
-
pattern: "CLAUDE.md lean reduce 77% de tokens por turno"
|
|
68
|
-
description: "Mover tablas de inventario detalladas a INVENTARIO.md y mantener CLAUDE.md como índice compacto ahorra ~4,585 tokens/turno sin perder funcionalidad."
|
|
69
|
-
confidence: 0.8
|
|
70
|
-
scope: project
|
|
71
|
-
source: "APRENDIZAJES.md"
|
|
72
|
-
evidence_count: 1
|
|
73
|
-
last_validated: "2026-04-03"
|
|
74
|
-
contradictions: 0
|
|
75
|
-
status: active
|
|
76
|
-
tags: ["decision", "arquitectura"]
|
|
77
|
-
created_at: "2026-04-19"
|
|
78
|
-
seccion_origen: "Decisiones de arquitectura"
|
|
79
|
-
|
|
80
|
-
- id: inst-006
|
|
81
|
-
pattern: "Detección automática de stack tecnológico"
|
|
82
|
-
description: "`detectarTecnologias()` con 40+ patrones (packages, configFiles, configContent) alimenta agent-matcher y model-router para asignación automática de agentes y skills."
|
|
83
|
-
confidence: 0.8
|
|
84
|
-
scope: project
|
|
85
|
-
source: "APRENDIZAJES.md"
|
|
86
|
-
evidence_count: 1
|
|
87
|
-
last_validated: "2026-04-06"
|
|
88
|
-
contradictions: 0
|
|
89
|
-
status: active
|
|
90
|
-
tags: ["decision", "arquitectura"]
|
|
91
|
-
created_at: "2026-04-19"
|
|
92
|
-
seccion_origen: "Decisiones de arquitectura"
|
|
93
|
-
|
|
94
|
-
- id: inst-007
|
|
95
|
-
pattern: "stderr en hooks causa error en Claude Code"
|
|
96
|
-
description: "Nunca escribir a stderr en hooks — Claude Code lo interpreta como error del hook. Usar stdout para mensajes y exit code 0 para advertencias, exit code 2 para bloqueos."
|
|
97
|
-
confidence: 0.7
|
|
98
|
-
scope: project
|
|
99
|
-
source: "APRENDIZAJES.md"
|
|
100
|
-
evidence_count: 1
|
|
101
|
-
last_validated: "2026-04-01"
|
|
102
|
-
contradictions: 0
|
|
103
|
-
status: active
|
|
104
|
-
tags: ["anti-patron"]
|
|
105
|
-
created_at: "2026-04-19"
|
|
106
|
-
seccion_origen: "Anti-patrones detectados"
|
|
107
|
-
|
|
108
|
-
- id: inst-008
|
|
109
|
-
pattern: "Hook que bloquea por error interno"
|
|
110
|
-
description: "Todo hook debe envolver su lógica en try/catch y nunca bloquear por errores propios. Solo bloquear por violaciones reales de seguridad o calidad."
|
|
111
|
-
confidence: 0.7
|
|
112
|
-
scope: project
|
|
113
|
-
source: "APRENDIZAJES.md"
|
|
114
|
-
evidence_count: 1
|
|
115
|
-
last_validated: "2026-04-01"
|
|
116
|
-
contradictions: 0
|
|
117
|
-
status: active
|
|
118
|
-
tags: ["anti-patron"]
|
|
119
|
-
created_at: "2026-04-19"
|
|
120
|
-
seccion_origen: "Anti-patrones detectados"
|
|
121
|
-
|
|
122
|
-
- id: inst-009
|
|
123
|
-
pattern: "Archivos evolucionados sin marcar"
|
|
124
|
-
description: "Si un agente, skill o comando es modificado por `/swl:aprender` o `/swl:evolucionar` sin `markAsEvolved()`, la próxima actualización lo sobreescribe. El marcado en frontmatter es obligatorio."
|
|
125
|
-
confidence: 0.7
|
|
126
|
-
scope: project
|
|
127
|
-
source: "APRENDIZAJES.md"
|
|
128
|
-
evidence_count: 1
|
|
129
|
-
last_validated: "2026-04-02"
|
|
130
|
-
contradictions: 0
|
|
131
|
-
status: active
|
|
132
|
-
tags: ["anti-patron"]
|
|
133
|
-
created_at: "2026-04-19"
|
|
134
|
-
seccion_origen: "Anti-patrones detectados"
|
|
135
|
-
|
|
136
|
-
- id: inst-010
|
|
137
|
-
pattern: "Agente debilita config de linter en vez de corregir código"
|
|
138
|
-
description: "Proteger archivos de configuración (.eslintrc, tsconfig.json, .prettierrc, etc.) con advertencia que redirige a corregir el código fuente."
|
|
139
|
-
confidence: 0.7
|
|
140
|
-
scope: project
|
|
141
|
-
source: "APRENDIZAJES.md"
|
|
142
|
-
evidence_count: 1
|
|
143
|
-
last_validated: "2026-04-06"
|
|
144
|
-
contradictions: 0
|
|
145
|
-
status: active
|
|
146
|
-
tags: ["anti-patron"]
|
|
147
|
-
created_at: "2026-04-19"
|
|
148
|
-
seccion_origen: "Anti-patrones detectados"
|
|
149
|
-
|
|
150
|
-
- id: inst-011
|
|
151
|
-
pattern: "`.claude/settings.json` no se commitea — hooks deben auto-documentarse"
|
|
152
|
-
description: "`.claude/` está en `.gitignore`. Al agregar hooks nuevos (PreCompact, SubagentStop, PostToolUseFailure), documentar los eventos y matchers esperados en los comentarios de cabecera del archivo `.js` del hook, para que otro desarrollador pueda reconstruir `settings.json` desde los fuentes."
|
|
153
|
-
confidence: 0.7
|
|
154
|
-
scope: project
|
|
155
|
-
source: "APRENDIZAJES.md"
|
|
156
|
-
evidence_count: 1
|
|
157
|
-
last_validated: "2026-04-10"
|
|
158
|
-
contradictions: 0
|
|
159
|
-
status: active
|
|
160
|
-
tags: ["anti-patron"]
|
|
161
|
-
created_at: "2026-04-19"
|
|
162
|
-
seccion_origen: "Anti-patrones detectados"
|
|
163
|
-
|
|
164
|
-
- id: inst-012
|
|
165
|
-
pattern: "Verificar existencia de skills antes de crear nuevos"
|
|
166
|
-
description: "Antes de implementar un skill \"nuevo\", buscar con `glob` en `habilidades/` si ya existe. En la sesión v5.4.0, 4 de 5 componentes propuestos como nuevos ya existían con contenido completo (redis-experto, mongodb-experto, kubernetes-orquestacion, graphql-experto)."
|
|
167
|
-
confidence: 0.7
|
|
168
|
-
scope: project
|
|
169
|
-
source: "APRENDIZAJES.md"
|
|
170
|
-
evidence_count: 1
|
|
171
|
-
last_validated: "2026-04-10"
|
|
172
|
-
contradictions: 0
|
|
173
|
-
status: active
|
|
174
|
-
tags: ["anti-patron"]
|
|
175
|
-
created_at: "2026-04-19"
|
|
176
|
-
seccion_origen: "Anti-patrones detectados"
|
|
177
|
-
|
|
178
|
-
- id: inst-013
|
|
179
|
-
pattern: "Patrones SQLAlchemy async"
|
|
180
|
-
description: "`selectinload()` obligatorio en toda relación accedida en serialización Pydantic. `lazy=\"selectin\"` para relaciones frecuentes. Services no hacen `db.commit()`."
|
|
181
|
-
confidence: 0.6
|
|
182
|
-
scope: project
|
|
183
|
-
source: "APRENDIZAJES.md"
|
|
184
|
-
evidence_count: 1
|
|
185
|
-
last_validated: "2026-03-29"
|
|
186
|
-
contradictions: 0
|
|
187
|
-
status: active
|
|
188
|
-
tags: ["patron"]
|
|
189
|
-
created_at: "2026-04-19"
|
|
190
|
-
seccion_origen: "Patrones exitosos"
|
|
191
|
-
|
|
192
|
-
- id: inst-014
|
|
193
|
-
pattern: "Circuit breaker en hooks"
|
|
194
|
-
description: "Degradar hook automáticamente tras 3 fallos consecutivos, half-open recovery a los 5 minutos. Previene cascadas de fallos en sesiones largas."
|
|
195
|
-
confidence: 0.6
|
|
196
|
-
scope: project
|
|
197
|
-
source: "APRENDIZAJES.md"
|
|
198
|
-
evidence_count: 1
|
|
199
|
-
last_validated: "2026-04-01"
|
|
200
|
-
contradictions: 0
|
|
201
|
-
status: active
|
|
202
|
-
tags: ["patron"]
|
|
203
|
-
created_at: "2026-04-19"
|
|
204
|
-
seccion_origen: "Patrones exitosos"
|
|
205
|
-
|
|
206
|
-
- id: inst-015
|
|
207
|
-
pattern: "Auto-consolidación patrón autoDream"
|
|
208
|
-
description: "Sugerir `/swl:aprender` cuando pasan >= 24h y >= 5 sesiones nuevas. Lock basado en mtime con staleness de 1h."
|
|
209
|
-
confidence: 0.6
|
|
210
|
-
scope: project
|
|
211
|
-
source: "APRENDIZAJES.md"
|
|
212
|
-
evidence_count: 1
|
|
213
|
-
last_validated: "2026-04-02"
|
|
214
|
-
contradictions: 0
|
|
215
|
-
status: active
|
|
216
|
-
tags: ["patron"]
|
|
217
|
-
created_at: "2026-04-19"
|
|
218
|
-
seccion_origen: "Patrones exitosos"
|
|
219
|
-
|
|
220
|
-
- id: inst-016
|
|
221
|
-
pattern: "toolBudget por agente"
|
|
222
|
-
description: "Presupuesto de tool calls (simple/standard/complex) en el frontmatter. Los revisores con budget 10/20/35, los implementadores con 15/30/60. Evita desperdicio de tool calls en tareas simples."
|
|
223
|
-
confidence: 0.6
|
|
224
|
-
scope: project
|
|
225
|
-
source: "APRENDIZAJES.md"
|
|
226
|
-
evidence_count: 1
|
|
227
|
-
last_validated: "2026-04-06"
|
|
228
|
-
contradictions: 0
|
|
229
|
-
status: active
|
|
230
|
-
tags: ["patron"]
|
|
231
|
-
created_at: "2026-04-19"
|
|
232
|
-
seccion_origen: "Patrones exitosos"
|
|
233
|
-
|
|
234
|
-
- id: inst-017
|
|
235
|
-
pattern: "Write-complete-test-once para slices simples"
|
|
236
|
-
description: "Para slices ≤3 archivos y ≤100 líneas: escribir solución completa y testear una sola vez al final. Solo iterar si el test falla. Reduce 40-60% de tool calls."
|
|
237
|
-
confidence: 0.6
|
|
238
|
-
scope: project
|
|
239
|
-
source: "APRENDIZAJES.md"
|
|
240
|
-
evidence_count: 1
|
|
241
|
-
last_validated: "2026-04-06"
|
|
242
|
-
contradictions: 0
|
|
243
|
-
status: active
|
|
244
|
-
tags: ["patron"]
|
|
245
|
-
created_at: "2026-04-19"
|
|
246
|
-
seccion_origen: "Patrones exitosos"
|
|
247
|
-
|
|
248
|
-
- id: inst-018
|
|
249
|
-
pattern: "Clasificación automática de mensajes del usuario"
|
|
250
|
-
description: "Hook UserPromptSubmit con 9 categorías por regex español+inglés. Inyecta hints de routing sin bloquear ni modificar el mensaje. Costo ~0 en tokens de input."
|
|
251
|
-
confidence: 0.6
|
|
252
|
-
scope: project
|
|
253
|
-
source: "APRENDIZAJES.md"
|
|
254
|
-
evidence_count: 1
|
|
255
|
-
last_validated: "2026-04-06"
|
|
256
|
-
contradictions: 0
|
|
257
|
-
status: active
|
|
258
|
-
tags: ["patron"]
|
|
259
|
-
created_at: "2026-04-19"
|
|
260
|
-
seccion_origen: "Patrones exitosos"
|
|
261
|
-
|
|
262
|
-
- id: inst-019
|
|
263
|
-
pattern: "Filtro de dominio ANTES de analizar repos externos"
|
|
264
|
-
description: "Aplicar el filtro de CLAUDE.md (\"¿le sirve a un ingeniero de software en cualquier proyecto?\") como primer paso al evaluar repos en `temp/`. Ahorra 100% del tiempo de análisis en repos incompatibles. Ejemplo: `awesome-design-systems-master` (lista curada de enlaces, sin código) se descartó en <30 segundos."
|
|
265
|
-
confidence: 0.6
|
|
266
|
-
scope: project
|
|
267
|
-
source: "APRENDIZAJES.md"
|
|
268
|
-
evidence_count: 1
|
|
269
|
-
last_validated: "2026-04-10"
|
|
270
|
-
contradictions: 0
|
|
271
|
-
status: active
|
|
272
|
-
tags: ["patron"]
|
|
273
|
-
created_at: "2026-04-19"
|
|
274
|
-
seccion_origen: "Patrones exitosos"
|
|
275
|
-
|
|
276
|
-
- id: inst-020
|
|
277
|
-
pattern: "`package-lock.json` retiene versión anterior tras bump [CONFIRMADO x2]"
|
|
278
|
-
description: "La versión aparece en 2 ubicaciones (líneas 3 y 9). Se actualiza con `npm install`, no con sed. Si se edita manualmente, verificar AMBAS ubicaciones. Confirmado el 2026-04-10 durante bump v5.3.4→v5.4.0."
|
|
279
|
-
confidence: 0.6
|
|
280
|
-
scope: project
|
|
281
|
-
source: "APRENDIZAJES.md"
|
|
282
|
-
evidence_count: 1
|
|
283
|
-
last_validated: "2026-04-02"
|
|
284
|
-
contradictions: 0
|
|
285
|
-
status: active
|
|
286
|
-
tags: ["gotcha"]
|
|
287
|
-
created_at: "2026-04-19"
|
|
288
|
-
seccion_origen: "Gotchas del sistema"
|
|
289
|
-
|
|
290
|
-
- id: inst-021
|
|
291
|
-
pattern: "APRENDIZAJES.md se infla con contenido no-accionable [CONFIRMADO x2]"
|
|
292
|
-
description: "El hook `extraccion-aprendizajes.js` captura fragmentos de código y documentación como \"aprendizajes\". Requiere consolidación periódica para mantener calidad. Confirmado 2026-04-10: las entradas automáticas de línea 88+ siguen siendo fragmentos sin valor accionable."
|
|
293
|
-
confidence: 0.6
|
|
294
|
-
scope: project
|
|
295
|
-
source: "APRENDIZAJES.md"
|
|
296
|
-
evidence_count: 1
|
|
297
|
-
last_validated: "2026-04-06"
|
|
298
|
-
contradictions: 0
|
|
299
|
-
status: active
|
|
300
|
-
tags: ["gotcha"]
|
|
301
|
-
created_at: "2026-04-19"
|
|
302
|
-
seccion_origen: "Gotchas del sistema"
|
|
303
|
-
|
|
304
|
-
- id: inst-022
|
|
305
|
-
pattern: "Versión debe actualizarse en 15+ archivos — integrar checklist en `/swl:release` [CONFIRMADO x3]"
|
|
306
|
-
description: "package.json, package-lock.json (2 ubicaciones), plugin.json, CLAUDE.md, INVENTARIO.md, HEALTH.md (3 ubicaciones), README.md, SETUP.md, AGENTS.md, COMMANDS.md, CHANGELOG.md, COMPACT.md, STATE.md. Confirmado el 2026-04-12 durante bump v5.4.10→v5.4.11: la lista completa son 15+ ubicaciones en 14 archivos distintos."
|
|
307
|
-
confidence: 0.6
|
|
308
|
-
scope: project
|
|
309
|
-
source: "APRENDIZAJES.md"
|
|
310
|
-
evidence_count: 1
|
|
311
|
-
last_validated: "2026-04-06"
|
|
312
|
-
contradictions: 0
|
|
313
|
-
status: active
|
|
314
|
-
tags: ["gotcha"]
|
|
315
|
-
created_at: "2026-04-19"
|
|
316
|
-
seccion_origen: "Gotchas del sistema"
|
|
317
|
-
|
|
318
|
-
- id: inst-023
|
|
319
|
-
pattern: "Skills fantasma en `skillsInvocables` rompen el grafo de dependencias"
|
|
320
|
-
description: "Nunca referenciar nombres de skills inexistentes ni nombres de agentes en `skillsInvocables`. Ejemplo: `pagos-swl` referenciaba `\"seguridad\"` (skill inexistente, el real es `\"checklist-seguridad\"`) y `\"backend-node-swl\"` (nombre de agente, no de skill). Verificar existencia con `ls habilidades/ | grep nombre` antes de agregar."
|
|
321
|
-
confidence: 0.6
|
|
322
|
-
scope: project
|
|
323
|
-
source: "APRENDIZAJES.md"
|
|
324
|
-
evidence_count: 1
|
|
325
|
-
last_validated: "2026-04-12"
|
|
326
|
-
contradictions: 0
|
|
327
|
-
status: active
|
|
328
|
-
tags: ["gotcha"]
|
|
329
|
-
created_at: "2026-04-19"
|
|
330
|
-
seccion_origen: "Gotchas del sistema"
|
|
331
|
-
|
|
332
|
-
- id: inst-024
|
|
333
|
-
pattern: "Truncación de reportes de diagnóstico oculta problemas reales"
|
|
334
|
-
description: "El `graph-builder.py` truncaba la lista de nodos huérfanos a 20, ocultando 81 de 101 problemas. Los reportes de diagnóstico NUNCA deben truncarse — mostrar el cuadro completo para tomar decisiones informadas."
|
|
335
|
-
confidence: 0.6
|
|
336
|
-
scope: project
|
|
337
|
-
source: "APRENDIZAJES.md"
|
|
338
|
-
evidence_count: 1
|
|
339
|
-
last_validated: "2026-04-12"
|
|
340
|
-
contradictions: 0
|
|
341
|
-
status: active
|
|
342
|
-
tags: ["gotcha"]
|
|
343
|
-
created_at: "2026-04-19"
|
|
344
|
-
seccion_origen: "Gotchas del sistema"
|
|
345
|
-
|
|
346
|
-
- id: inst-025
|
|
347
|
-
pattern: "`skillsInvocables: todos` debe expandirse a aristas reales en el grafo"
|
|
348
|
-
description: "Los agentes con `skillsInvocables: todos` (planificador-swl, investigador-swl) no generaban aristas en el grafo. Sin expansión, su grado era 2 cuando el real es 126. El graph-builder.py ahora expande `todos` al set completo de skill_ids."
|
|
349
|
-
confidence: 0.6
|
|
350
|
-
scope: project
|
|
351
|
-
source: "APRENDIZAJES.md"
|
|
352
|
-
evidence_count: 1
|
|
353
|
-
last_validated: "2026-04-12"
|
|
354
|
-
contradictions: 0
|
|
355
|
-
status: active
|
|
356
|
-
tags: ["gotcha"]
|
|
357
|
-
created_at: "2026-04-19"
|
|
358
|
-
seccion_origen: "Gotchas del sistema"
|
|
359
|
-
|
|
360
|
-
- id: inst-026
|
|
361
|
-
pattern: "Formato mixto YAML-lista + CSV en `skillsInvocables` causa parsing roto"
|
|
362
|
-
description: "`frontend-react-swl` y `disenador-ui-swl` tenían líneas `- item` debajo de una línea CSV en `skillsInvocables`. El parser YAML interpreta esto como estructura inválida. El formato DEBE ser CSV puro en una sola línea. `disenador-ui-swl` queda pendiente de corrección."
|
|
363
|
-
confidence: 0.6
|
|
364
|
-
scope: project
|
|
365
|
-
source: "APRENDIZAJES.md"
|
|
366
|
-
evidence_count: 1
|
|
367
|
-
last_validated: "2026-04-12"
|
|
368
|
-
contradictions: 0
|
|
369
|
-
status: active
|
|
370
|
-
tags: ["gotcha"]
|
|
371
|
-
created_at: "2026-04-19"
|
|
372
|
-
seccion_origen: "Gotchas del sistema"
|