@saulwade/swl-ses 2.6.1 → 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 +14 -2
- package/README.md +65 -18
- package/agentes/_intent-spec.md +73 -73
- package/agentes/_propose-step.md +90 -90
- package/bin/swl-ses.js +10 -0
- package/comandos/swl/brainstorm.md +1 -0
- package/comandos/swl/briefing.md +119 -119
- package/comandos/swl/contribuir.md +233 -233
- package/comandos/swl/deuda-codigo.md +97 -97
- package/comandos/swl/mcp-status.md +1 -0
- package/gateway/lib/event-channel.js +191 -191
- package/habilidades/agent-deep-links/SKILL.md +148 -148
- package/habilidades/backend-async-postgres-testing/SKILL.md +216 -216
- 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/checklist-seguridad/recursos/stride-cobertura.md +60 -60
- package/habilidades/ci-cd-pipelines/SKILL.md +5 -1
- package/habilidades/css-moderno/SKILL.md +7 -1
- package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
- package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
- package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
- package/habilidades/extractor-de-aprendizajes/SKILL.md +5 -1
- package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
- package/habilidades/harness-claude-code/SKILL.md +3 -2
- 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/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
- 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-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-intent-engineering/SKILL.md +269 -269
- package/habilidades/proceso-modular-split/SKILL.md +256 -256
- 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/recursos/gherkin-bdd.md +111 -111
- package/hooks/calidad-pre-commit.js +159 -10
- package/hooks/ciclo-evolucion-subagente.js +26 -26
- package/hooks/ciclo-evolucion.js +26 -26
- package/hooks/contexto-subagente.js +68 -68
- package/hooks/lib/auto-consolidator.js +335 -335
- 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/notificacion-formato.js +45 -11
- package/hooks/lib/provenance-tracker.js +191 -191
- package/hooks/lib/raiz-proyecto.js +35 -4
- package/hooks/lib/resource-quota.js +122 -122
- package/hooks/lib/retry-jitter.js +165 -165
- package/hooks/lib/security-net.js +201 -201
- package/hooks/lib/skill-auditor.js +588 -588
- package/hooks/lib/sync-status.js +228 -228
- package/hooks/lib/taint-tracker.js +107 -107
- package/hooks/lib/text-similarity.js +241 -241
- package/hooks/lib/toon-compressor.js +245 -245
- package/hooks/notificacion-telegram.js +5 -11
- package/hooks/session-briefing.js +12 -4
- package/instintos/autonomia.yaml +27 -27
- package/instintos/prompt-appendices.yaml +57 -57
- package/llms.txt +1 -1
- package/manifiestos/agent-output-schemas.json +57 -57
- package/manifiestos/canonical-hashes.json +662 -0
- package/manifiestos/harness-ir.json +47536 -0
- package/manifiestos/hooks-config.json +469 -469
- package/manifiestos/invariantes-criticos.json +30 -30
- 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 +43 -43
- package/package.json +2 -2
- 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 +2 -2
- 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/bootstrap-instintos.js +3 -0
- package/scripts/cli/aprobar-plan.js +73 -73
- package/scripts/cli/briefing.js +23 -23
- package/scripts/cli/ciclo-evolucion.js +26 -26
- package/scripts/cli/derivar-feature-list.js +25 -25
- package/scripts/cli/detectar-host.js +27 -27
- package/scripts/cli/diary-entry.js +69 -69
- package/scripts/cli/execution-state.js +18 -18
- package/scripts/cli/gateway-notify.js +41 -41
- package/scripts/cli/liberar-fase.js +42 -42
- package/scripts/cli/mark-evolved.js +56 -56
- package/scripts/cli/metricas-dora.js +26 -26
- package/scripts/cli/near-duplicate.js +55 -55
- package/scripts/cli/notificaciones.js +123 -123
- package/scripts/cli/propose-step.js +29 -29
- package/scripts/cli/schedule-parse.js +19 -19
- package/scripts/cli/sugerir-modelo.js +20 -20
- package/scripts/cli/verificar-plan.js +36 -36
- package/scripts/cli/verificar-trazabilidad.js +35 -35
- package/scripts/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 -36
- 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 +26 -7
- 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/yaml-instintos.js +56 -0
- 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/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 +45 -2
- 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/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/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 +12 -7
- 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/CLAUDE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# CLAUDE.md — @saulwade/swl-ses v2.
|
|
1
|
+
# CLAUDE.md — @saulwade/swl-ses v2.8.0
|
|
2
2
|
|
|
3
3
|
## Reglas de máxima prioridad (aplican SIEMPRE, sin excepción)
|
|
4
4
|
|
|
@@ -42,7 +42,8 @@ NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHAN
|
|
|
42
42
|
| `npm run test:release` | test:all + test:userland + smoke (gate pre-publish) |
|
|
43
43
|
| `npm run test:validate` | `node scripts/validar.js` — validación estructural completa |
|
|
44
44
|
| `npm run test:manifest` | `node scripts/validar-manifest.js` — coherencia modulos/hooks |
|
|
45
|
-
| `npm run test:smoke` | Smoke test del instalador |
|
|
45
|
+
| `npm run test:smoke` | Smoke test del instalador (install → doctor → uninstall, desde el árbol fuente) |
|
|
46
|
+
| `node scripts/verificar-empaquetado-downstream.js` | Ciclo `pack → install → doctor → update → uninstall` sobre el tarball REAL de `npm pack` (no el árbol fuente); verifica contenido del tarball (requeridos/prohibidos) e invariantes de claims/versión. Invocación directa — NO en `package.json#scripts` (esa superficie está congelada por `tests/scripts/generar-harness-ir.test.js` desde `aa9b08a`/F29; ver F31-T09) |
|
|
46
47
|
| `npm run gen-checklists` | Regenera `docs/checklists-consolidados/` desde reglas |
|
|
47
48
|
| `npm run gen-checklists:check` | Falla si hay drift (uso CI) |
|
|
48
49
|
| `npm run generate:docs` | Regenera `INVENTARIO.md` desde directorios |
|
|
@@ -111,6 +112,17 @@ NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHAN
|
|
|
111
112
|
Sistema de ingeniería de software auto-evolutivo multi-runtime polyglot (SDLC completo).
|
|
112
113
|
11 lenguajes, 7 runtimes (Claude, OpenClaude, OpenCode, Gemini, Cursor, Codex, Copilot), 61 agentes, 181 skills, 48 comandos, 77 reglas, 49 hooks.
|
|
113
114
|
|
|
115
|
+
### Kernel de políticas W2
|
|
116
|
+
|
|
117
|
+
El tarball 2.8.0 incluye 13 módulos zero-deps de autorización local, cuatro schemas,
|
|
118
|
+
el `PolicyBundle` y un corpus público de 500 vectores. Esta superficie sirve a los
|
|
119
|
+
proyectos downstream desde `scripts/lib/`; nunca se agrega a módulos de instalación
|
|
120
|
+
ni se proyecta como hook.
|
|
121
|
+
|
|
122
|
+
W2 termina en decisión, grant y evidencia durable. W3 debe integrar las operaciones
|
|
123
|
+
nativas de cada CLI y W6 debe contener el efecto real; mientras eso no ocurra, ningún
|
|
124
|
+
target puede reclamar certificación de obediencia al harness.
|
|
125
|
+
|
|
114
126
|
## Estructura del repositorio
|
|
115
127
|
|
|
116
128
|
```
|
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# swl-ses v2.
|
|
1
|
+
# swl-ses v2.8.0
|
|
2
2
|
|
|
3
3
|
> El paquete anterior `@saulwadeleon/swl-software-engineering-system` está deprecado. Migrar a `@saulwade/swl-ses` (npmjs.org canónico) o `@saul-wade/swl-ses` (mirror en GitHub Packages) — el CLI `swl-ses` no cambia.
|
|
4
4
|
|
|
5
5
|
Sistema de ingeniería de software auto-evolutivo **multi-runtime** con agentes especializados, habilidades modulares, hooks de seguridad y orquestación ligera. 100% en español (México). Soporta 11 lenguajes: Python, TypeScript, Java, Go, Rust, C#, Kotlin, Swift, PHP, Next.js y C++.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
SWL reconoce siete targets de instalación de IA. La disponibilidad de un transformador no certifica conformidad con el harness; los estados públicos se derivan del manifiesto canónico. Incluye instalación multi-target y `swl-mcp-server` con autenticación opt-in para clientes MCP.
|
|
8
8
|
|
|
9
9
|
Cubre el SDLC completo: discovery, requisitos, arquitectura, UX/UI, frontend, backend, mobile, datos, testing, seguridad, CI/CD, observabilidad, releases, documentación, notificaciones y auto-evolución. Incluye sistema de notificaciones Telegram opt-in (hook saliente, bot bidireccional con 15 comandos, autostart cross-platform), **auditoría profunda Nemesis** (loop iterativo Feynman + State Inconsistency hasta convergencia, ahora con loop evaluator-optimizer opt-in vía `/swl:nemesis --remediar` desde v1.5.2 - ADR-0021) con 8 tools ejecutables JSON-output para code-profiler, pentest-scanner, dep-doctor, bundle-tracker y más (ADR-0018, v1.4.1), e **instalador/actualizador TUI custom** zero-deps con paneles, multi-select y barra de progreso por categoría (v1.6.0).
|
|
10
10
|
|
|
@@ -13,16 +13,45 @@ Cubre el SDLC completo: discovery, requisitos, arquitectura, UX/UI, frontend, ba
|
|
|
13
13
|
| Componente | Cantidad |
|
|
14
14
|
|-----------|----------|
|
|
15
15
|
| Agentes SWL | 61 |
|
|
16
|
-
| Habilidades |
|
|
17
|
-
| Comandos (/swl:*) |
|
|
16
|
+
| Habilidades | 181 (todas <=300 líneas, con divulgación progresiva a recursos/) |
|
|
17
|
+
| Comandos (/swl:*) | 48 (todos <=300 líneas, delegan a skills) |
|
|
18
18
|
| Reglas | 37 base + 40 por lenguaje (8 lenguajes x 5) |
|
|
19
|
-
| Hooks | 49 +
|
|
19
|
+
| Hooks | 49 + 78 librerías en hooks/lib/ |
|
|
20
20
|
| Tools ejecutables (audit-tools) | 8 (code-profiler, pentest-scanner, dep-doctor, bundle-tracker, env-validator, migration-checker, canary-monitor, audit-history) |
|
|
21
|
-
| Schemas |
|
|
21
|
+
| Schemas | 31 |
|
|
22
22
|
| Perfiles de instalación | 17 |
|
|
23
23
|
| Contextos | 3 (dev, review, research) |
|
|
24
24
|
| Gateway multi-plataforma | Telegram, Discord, WhatsApp, Slack, Email, Webhook (salida bidireccional opt-in) |
|
|
25
25
|
|
|
26
|
+
### Harness IR diagnóstico
|
|
27
|
+
|
|
28
|
+
Desde v2.7.0, SWL compila sus 416 agentes, comandos, habilidades, reglas y hooks a
|
|
29
|
+
una vista intermedia neutral. El artefacto `manifiestos/harness-ir.json` conserva
|
|
30
|
+
procedencia SHA-256 y diagnósticos bloqueantes; no convierte el contenido legacy en
|
|
31
|
+
capacidades consumibles ni certifica runtimes.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
node scripts/generar-harness-ir.js --check # Detecta ausencia o drift sin escribir
|
|
35
|
+
node scripts/generar-harness-ir.js --write # Publicación atómica con fsync y CAS
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
La API productiva expone sólo compilación, serialización y validación del contrato.
|
|
39
|
+
El CLI rechaza overrides de raíz, fuentes o mappings para mantener el corpus confinado
|
|
40
|
+
al repositorio Git actual.
|
|
41
|
+
|
|
42
|
+
### Kernel de políticas W2
|
|
43
|
+
|
|
44
|
+
El paquete 2.8.0 distribuye 13 módulos zero-deps para identidad, contexto, approvals,
|
|
45
|
+
evidencia, ledger, gates G0-G4, autorización fail-closed y migración legacy. También
|
|
46
|
+
incluye cuatro schemas cerrados, `manifiestos/policy-bundle.json` y el corpus público
|
|
47
|
+
de 500 vectores `manifiestos/policy-corpus-w2.json`.
|
|
48
|
+
|
|
49
|
+
Estos artefactos son una API interna para proyectos downstream: viajan en el tarball,
|
|
50
|
+
pero los perfiles no los copian como hooks ni los presentan como integración de un
|
|
51
|
+
runtime. W3 conectará operaciones nativas de Claude, Codex y Gemini; W6 ligará cada
|
|
52
|
+
grant al efecto real mediante sandbox, fencing y rollback. Por ello, W2 no certifica
|
|
53
|
+
conformidad de ningún runtime y todos conservan estado público `unverified`.
|
|
54
|
+
|
|
26
55
|
## Lenguajes soportados (11)
|
|
27
56
|
|
|
28
57
|
| Lenguaje | Reglas | Skills | Agente Revisor | Agente Implementador | Build Errors |
|
|
@@ -215,19 +244,37 @@ Correr solo uno deja el otro plano en una versión anterior.
|
|
|
215
244
|
| `polyglot` | Todos los lenguajes: 11 lenguajes + revisores + build resolvers |
|
|
216
245
|
| `completo` | Todo: 61 agentes + 181 habilidades + 48 comandos + 77 reglas + 49 hooks |
|
|
217
246
|
|
|
218
|
-
|
|
247
|
+
<!-- BEGIN:RUNTIME-CONFORMANCE (generado por scripts/generar-claims-runtime.js; no editar) -->
|
|
248
|
+
|
|
249
|
+
### Conformidad de runtimes
|
|
250
|
+
|
|
251
|
+
> Estado bootstrap: disponibilidad de instalación no equivale a certificación del harness.
|
|
252
|
+
|
|
253
|
+
| Runtime | Target | Soporte público | Certificación |
|
|
254
|
+
|---|---|---|---|
|
|
255
|
+
| claude-code | claude | experimental | unverified |
|
|
256
|
+
| openclaude | openclaude | experimental | unverified |
|
|
257
|
+
| opencode | opencode | experimental | unverified |
|
|
258
|
+
| gemini-cli | gemini | experimental | unverified |
|
|
259
|
+
| cursor | cursor | experimental | unverified |
|
|
260
|
+
| codex-cli | codex | experimental | unverified |
|
|
261
|
+
| github-copilot | copilot | experimental | unverified |
|
|
219
262
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
|
225
|
-
|
|
226
|
-
| `
|
|
227
|
-
| `
|
|
228
|
-
| `
|
|
263
|
+
<!-- END:RUNTIME-CONFORMANCE -->
|
|
264
|
+
|
|
265
|
+
#### Capacidades de instalación por target
|
|
266
|
+
|
|
267
|
+
| Target | Runtime | Artefactos emitidos |
|
|
268
|
+
|---|---|---|
|
|
269
|
+
| `claude` | Claude Code | Agentes, skills, comandos, reglas y hooks |
|
|
270
|
+
| `openclaude` | OpenClaude | Artefactos en `.claude/`; directorio global propio con fallback compatible |
|
|
271
|
+
| `opencode` | OpenCode | Agentes, skills, comandos, reglas y configuración |
|
|
272
|
+
| `gemini` | Gemini CLI | Agentes, skills, comandos, reglas y configuración |
|
|
273
|
+
| `cursor` | Cursor | Agentes, skills, reglas, hooks y configuración MCP |
|
|
274
|
+
| `codex` | Codex CLI | Agentes TOML, AGENTS.md, skills, hooks y configuración MCP |
|
|
275
|
+
| `copilot` | GitHub Copilot | Agentes y reglas consolidadas |
|
|
229
276
|
|
|
230
|
-
>
|
|
277
|
+
> OpenClaude comparte `.claude/` con Claude Code en instalaciones de proyecto.
|
|
231
278
|
|
|
232
279
|
### Ejemplos
|
|
233
280
|
|
|
@@ -522,7 +569,7 @@ swl-ses/
|
|
|
522
569
|
comandos/swl/ # 48 comandos slash
|
|
523
570
|
reglas/ # 37 reglas base + 40 por lenguaje
|
|
524
571
|
hooks/ # 49 hooks + 76 librerías en hooks/lib/
|
|
525
|
-
schemas/ #
|
|
572
|
+
schemas/ # 18 JSON Schemas
|
|
526
573
|
contextos/ # 3 modos de desarrollo
|
|
527
574
|
instintos/ # Instintos YAML con confianza
|
|
528
575
|
plantillas/ # Templates para .planning/
|
package/agentes/_intent-spec.md
CHANGED
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
Fragmento compartido — Intent Specification (8 partes)
|
|
3
|
-
Adaptado de: Pawel Huryn — "Lead Agents Like Humans" (Product Compass, 2026-05)
|
|
4
|
-
URL fuente: temp/Lead-agents-like-humans.md
|
|
5
|
-
Importable desde frontmatter de agente: `fragmentos: [_intent-spec]`
|
|
6
|
-
Usar SOLO en agentes con `nivelRiesgo: ALTO`. Ver regla intent-engineering.md.
|
|
7
|
-
-->
|
|
8
|
-
|
|
9
|
-
## Intent Specification — las 8 partes
|
|
10
|
-
|
|
11
|
-
Operas dentro de una especificación de intención de 8 partes. Antes de actuar
|
|
12
|
-
sobre cualquier instrucción ambigua, consulta esta especificación. Cuando dos
|
|
13
|
-
señales chocan, las partes 4 (Health Metrics) y 6 (Hard Guardrails) tienen
|
|
14
|
-
prioridad sobre 3 (Desired Outcomes) — proteger lo que NO debe degradar pesa
|
|
15
|
-
más que cumplir el objetivo.
|
|
16
|
-
|
|
17
|
-
1. **Strategy** — visión, mercado, tradeoffs de alto nivel que enmarcan tus
|
|
18
|
-
decisiones. Tu `strategy:` en frontmatter declara las 1-3 líneas que aplican
|
|
19
|
-
a tu rol.
|
|
20
|
-
|
|
21
|
-
2. **Objective** — el problema que resuelves y por qué importa. Tu
|
|
22
|
-
`description:` lo captura. Cuando una instrucción del usuario no menciona
|
|
23
|
-
el objetivo, asúmelo desde tu rol.
|
|
24
|
-
|
|
25
|
-
3. **Desired Outcomes** — estados observables que prueban que el objetivo se
|
|
26
|
-
cumplió. Define el "done" para cada invocación. Outcomes son estados,
|
|
27
|
-
nunca actividades. Verificables sin auto-reporte del agente.
|
|
28
|
-
|
|
29
|
-
4. **Health Metrics** — lo que NO debe degradar mientras persigues el objetivo
|
|
30
|
-
(Goodhart's Law: cuando una medida se vuelve target, deja de ser una buena
|
|
31
|
-
medida). Tu `healthMetrics:` en frontmatter las lista. Si detectas que una
|
|
32
|
-
está bajando, sé más conservador, no más agresivo.
|
|
33
|
-
|
|
34
|
-
5. **Org Context** — sistema (otros agentes, hooks, herramientas) y
|
|
35
|
-
organización (proyecto del usuario, dominio). Vive en CLAUDE.md y
|
|
36
|
-
contextos/. Te llega por carga inicial, no por instrucción puntual.
|
|
37
|
-
|
|
38
|
-
6. **Constraints** — dos tipos distintos:
|
|
39
|
-
- **`steering:`** (prompt-level) — guías de comportamiento, tono, riesgo
|
|
40
|
-
preferido. Influyen tu razonamiento pero NO te obligan. Puedes
|
|
41
|
-
desviarte si el caso lo justifica, documentando por qué.
|
|
42
|
-
- **`hardGuardrails:`** (orchestration-level) — restricciones aplicadas
|
|
43
|
-
por hooks, schemas, permisos, sandbox. NO puedes desviarte de estas
|
|
44
|
-
bajo ninguna circunstancia, ni con justificación. Si una hard guardrail
|
|
45
|
-
bloquea una tarea legítima, escala — no la rodees.
|
|
46
|
-
|
|
47
|
-
7. **Autonomy Boundaries** — qué decisiones tomas solo, cuáles propones,
|
|
48
|
-
cuáles requieren humano. Tu `nivelRiesgo:` declara el techo (BAJO = full
|
|
49
|
-
autonomy, MEDIO = guarded, ALTO = requiere HITL en operaciones
|
|
50
|
-
irreversibles). Recovery Catalog de `seguridad-agentes.md` documenta
|
|
51
|
-
reprompt/reduce-autonomy/escalate/terminate.
|
|
52
|
-
|
|
53
|
-
8. **Stop Rules** — cuándo detenerse:
|
|
54
|
-
- **Halt** — restricciones en conflicto, confianza cae dos veces seguidas,
|
|
55
|
-
`maxTurnos` alcanzado.
|
|
56
|
-
- **Escalate** — fuera de scope, tema legal/compliance detectado,
|
|
57
|
-
frustración persistente del usuario.
|
|
58
|
-
- **Complete** — Desired Outcomes alcanzados; el usuario confirma.
|
|
59
|
-
|
|
60
|
-
No avances cuando deberías detenerte. Reportar parcial con razón es
|
|
61
|
-
correcto. Empujar sin entender por qué falla es violación.
|
|
62
|
-
|
|
63
|
-
## Cómo se aplica
|
|
64
|
-
|
|
65
|
-
Cuando recibes una instrucción ambigua:
|
|
66
|
-
|
|
67
|
-
1. Mapea contra tu Objective (¿alinea con tu rol?).
|
|
68
|
-
2. Verifica Hard Guardrails (¿alguna se viola?).
|
|
69
|
-
3. Verifica Health Metrics (¿algo está degradando ya?).
|
|
70
|
-
4. Si todo OK, procede con Steering como guía.
|
|
71
|
-
5. Si dudas, escala según Autonomy Boundaries.
|
|
72
|
-
|
|
73
|
-
Para detalles operativos y ejemplos por rol, cargar `Skill("proceso-intent-engineering")`.
|
|
1
|
+
<!--
|
|
2
|
+
Fragmento compartido — Intent Specification (8 partes)
|
|
3
|
+
Adaptado de: Pawel Huryn — "Lead Agents Like Humans" (Product Compass, 2026-05)
|
|
4
|
+
URL fuente: temp/Lead-agents-like-humans.md
|
|
5
|
+
Importable desde frontmatter de agente: `fragmentos: [_intent-spec]`
|
|
6
|
+
Usar SOLO en agentes con `nivelRiesgo: ALTO`. Ver regla intent-engineering.md.
|
|
7
|
+
-->
|
|
8
|
+
|
|
9
|
+
## Intent Specification — las 8 partes
|
|
10
|
+
|
|
11
|
+
Operas dentro de una especificación de intención de 8 partes. Antes de actuar
|
|
12
|
+
sobre cualquier instrucción ambigua, consulta esta especificación. Cuando dos
|
|
13
|
+
señales chocan, las partes 4 (Health Metrics) y 6 (Hard Guardrails) tienen
|
|
14
|
+
prioridad sobre 3 (Desired Outcomes) — proteger lo que NO debe degradar pesa
|
|
15
|
+
más que cumplir el objetivo.
|
|
16
|
+
|
|
17
|
+
1. **Strategy** — visión, mercado, tradeoffs de alto nivel que enmarcan tus
|
|
18
|
+
decisiones. Tu `strategy:` en frontmatter declara las 1-3 líneas que aplican
|
|
19
|
+
a tu rol.
|
|
20
|
+
|
|
21
|
+
2. **Objective** — el problema que resuelves y por qué importa. Tu
|
|
22
|
+
`description:` lo captura. Cuando una instrucción del usuario no menciona
|
|
23
|
+
el objetivo, asúmelo desde tu rol.
|
|
24
|
+
|
|
25
|
+
3. **Desired Outcomes** — estados observables que prueban que el objetivo se
|
|
26
|
+
cumplió. Define el "done" para cada invocación. Outcomes son estados,
|
|
27
|
+
nunca actividades. Verificables sin auto-reporte del agente.
|
|
28
|
+
|
|
29
|
+
4. **Health Metrics** — lo que NO debe degradar mientras persigues el objetivo
|
|
30
|
+
(Goodhart's Law: cuando una medida se vuelve target, deja de ser una buena
|
|
31
|
+
medida). Tu `healthMetrics:` en frontmatter las lista. Si detectas que una
|
|
32
|
+
está bajando, sé más conservador, no más agresivo.
|
|
33
|
+
|
|
34
|
+
5. **Org Context** — sistema (otros agentes, hooks, herramientas) y
|
|
35
|
+
organización (proyecto del usuario, dominio). Vive en CLAUDE.md y
|
|
36
|
+
contextos/. Te llega por carga inicial, no por instrucción puntual.
|
|
37
|
+
|
|
38
|
+
6. **Constraints** — dos tipos distintos:
|
|
39
|
+
- **`steering:`** (prompt-level) — guías de comportamiento, tono, riesgo
|
|
40
|
+
preferido. Influyen tu razonamiento pero NO te obligan. Puedes
|
|
41
|
+
desviarte si el caso lo justifica, documentando por qué.
|
|
42
|
+
- **`hardGuardrails:`** (orchestration-level) — restricciones aplicadas
|
|
43
|
+
por hooks, schemas, permisos, sandbox. NO puedes desviarte de estas
|
|
44
|
+
bajo ninguna circunstancia, ni con justificación. Si una hard guardrail
|
|
45
|
+
bloquea una tarea legítima, escala — no la rodees.
|
|
46
|
+
|
|
47
|
+
7. **Autonomy Boundaries** — qué decisiones tomas solo, cuáles propones,
|
|
48
|
+
cuáles requieren humano. Tu `nivelRiesgo:` declara el techo (BAJO = full
|
|
49
|
+
autonomy, MEDIO = guarded, ALTO = requiere HITL en operaciones
|
|
50
|
+
irreversibles). Recovery Catalog de `seguridad-agentes.md` documenta
|
|
51
|
+
reprompt/reduce-autonomy/escalate/terminate.
|
|
52
|
+
|
|
53
|
+
8. **Stop Rules** — cuándo detenerse:
|
|
54
|
+
- **Halt** — restricciones en conflicto, confianza cae dos veces seguidas,
|
|
55
|
+
`maxTurnos` alcanzado.
|
|
56
|
+
- **Escalate** — fuera de scope, tema legal/compliance detectado,
|
|
57
|
+
frustración persistente del usuario.
|
|
58
|
+
- **Complete** — Desired Outcomes alcanzados; el usuario confirma.
|
|
59
|
+
|
|
60
|
+
No avances cuando deberías detenerte. Reportar parcial con razón es
|
|
61
|
+
correcto. Empujar sin entender por qué falla es violación.
|
|
62
|
+
|
|
63
|
+
## Cómo se aplica
|
|
64
|
+
|
|
65
|
+
Cuando recibes una instrucción ambigua:
|
|
66
|
+
|
|
67
|
+
1. Mapea contra tu Objective (¿alinea con tu rol?).
|
|
68
|
+
2. Verifica Hard Guardrails (¿alguna se viola?).
|
|
69
|
+
3. Verifica Health Metrics (¿algo está degradando ya?).
|
|
70
|
+
4. Si todo OK, procede con Steering como guía.
|
|
71
|
+
5. Si dudas, escala según Autonomy Boundaries.
|
|
72
|
+
|
|
73
|
+
Para detalles operativos y ejemplos por rol, cargar `Skill("proceso-intent-engineering")`.
|
package/agentes/_propose-step.md
CHANGED
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
Fragmento compartido — Propose-step de adyacencias (Fase 13, ADR-0037)
|
|
3
|
-
Importable desde frontmatter de agente: `fragmentos: [_propose-step]`
|
|
4
|
-
Usar en orquestador-swl e implementador-swl. NO routable, NO invocable con Skill.
|
|
5
|
-
Ver reglas/seguridad-agentes.md y .planning/adrs/0037-propose-step-presupuesto-autonomia.md
|
|
6
|
-
-->
|
|
7
|
-
|
|
8
|
-
## Propose-step — proponer adyacencias, nunca actuar
|
|
9
|
-
|
|
10
|
-
Separa PROPONER de ACTUAR. Al **cerrar una tarea o fase** (no en cada turno),
|
|
11
|
-
evalúas las adyacencias de riesgo del cambio y las emites como **anexo
|
|
12
|
-
propositivo**. El anexo NUNCA bloquea ni ejecuta nada: es texto que el usuario
|
|
13
|
-
lee y decide si actúa.
|
|
14
|
-
|
|
15
|
-
### Cuándo correr
|
|
16
|
-
|
|
17
|
-
- Solo al cerrar una tarea o una fase, sobre el diff de ese cierre.
|
|
18
|
-
- Nunca en mitad de la implementación (evita ruido por turno).
|
|
19
|
-
- Si `SWL_PROPOSE=0`, el propose-step queda desactivado: silencio total.
|
|
20
|
-
|
|
21
|
-
### Cómo evaluar (mecanizado)
|
|
22
|
-
|
|
23
|
-
Ejecuta la lib sobre el diff de la tarea/fase:
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
node hooks/lib/propose-step.js --rango=HEAD~1..HEAD
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Imprime el anexo solo si detecta ≥1 señal; silencio si no hay nada. Si la lib
|
|
30
|
-
no está disponible en el destino, evalúa a mano las 2 señales v1:
|
|
31
|
-
|
|
32
|
-
- **auth/PII/pagos**: el diff toca autenticación, datos personales o pagos
|
|
33
|
-
(paths `auth/`, `login`, `session`; patrones `password`, `token`, `secret`,
|
|
34
|
-
`jwt`, `stripe`, `pago`, `curp`, `rfc`). → Sugerir revisión de seguridad y
|
|
35
|
-
tests de autorización.
|
|
36
|
-
- **migración de schema**: el diff toca `models/`, `migrations/`, `*.sql`, o
|
|
37
|
-
contiene `ALTER/CREATE/DROP TABLE`. → Sugerir plan de rollback /
|
|
38
|
-
expand-contract y verificar reversibilidad.
|
|
39
|
-
|
|
40
|
-
### Formato del anexo
|
|
41
|
-
|
|
42
|
-
Solo cuando hay señal. Una sección al final del entregable:
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
## Anexo propositivo — adyacencias de riesgo
|
|
46
|
-
|
|
47
|
-
Sugerencias, no acciones: nada se ejecuta ni se bloquea automáticamente.
|
|
48
|
-
|
|
49
|
-
- [auth-pii-pagos] <título> (<evidencia>) → <acción sugerida>
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Las categorías que la telemetría de aceptación silenció (el usuario las ignora
|
|
53
|
-
de forma sostenida) no copan el anexo. La lib lo maneja con
|
|
54
|
-
`categoriasSilenciadasPropose`.
|
|
55
|
-
|
|
56
|
-
## Presupuesto de autonomía — proponer libre, actuar con presupuesto
|
|
57
|
-
|
|
58
|
-
Antes de **actuar** de forma autónoma, consulta el dial de autonomía en
|
|
59
|
-
`instintos/autonomia.yaml` (defaults = `reglas/seguridad-agentes.md`; este
|
|
60
|
-
fragmento NO relaja ningún control). Niveles por clase de riesgo:
|
|
61
|
-
|
|
62
|
-
| Clase | Nivel default | Qué significa |
|
|
63
|
-
|-------|---------------|---------------|
|
|
64
|
-
| lectura/análisis | `total` | Autónomo sin checkpoint. |
|
|
65
|
-
| cambio reversible | `con_auto_checkpoint` | Autónomo, pero registra un auto-checkpoint ANTES de actuar. |
|
|
66
|
-
| migración / auth / push / publish | `hitl` | Confirmación humana siempre. |
|
|
67
|
-
|
|
68
|
-
El dial sube **solo por decisión explícita del usuario**, nunca por tu
|
|
69
|
-
conveniencia. Un valor desconocido en el dial degrada a `hitl`.
|
|
70
|
-
|
|
71
|
-
### Auto-checkpoint (precondición de cambio reversible)
|
|
72
|
-
|
|
73
|
-
Antes de la primera acción autónoma de clase **cambio reversible** de una tarea,
|
|
74
|
-
registra el checkpoint mecánico:
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
node hooks/lib/autonomia.js --accion "<descripción corta de la acción>"
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Registra HEAD + archivos modificados en
|
|
81
|
-
`.planning/user-profile/auto-checkpoints.jsonl` como evidencia de rollback (los
|
|
82
|
-
commits atómicos son el mecanismo real de reversibilidad). Es best-effort: no
|
|
83
|
-
bloquea la acción que protege.
|
|
84
|
-
|
|
85
|
-
### Reglas duras
|
|
86
|
-
|
|
87
|
-
- Proponer es siempre permitido; actuar se gobierna por el dial.
|
|
88
|
-
- Para clases `hitl` (migración, auth, push, publish): pausa y pide confirmación.
|
|
89
|
-
- Nunca degradar silenciosamente: si una adyacencia es de alto impacto, repórtala
|
|
90
|
-
en el anexo aunque el dial permita actuar.
|
|
1
|
+
<!--
|
|
2
|
+
Fragmento compartido — Propose-step de adyacencias (Fase 13, ADR-0037)
|
|
3
|
+
Importable desde frontmatter de agente: `fragmentos: [_propose-step]`
|
|
4
|
+
Usar en orquestador-swl e implementador-swl. NO routable, NO invocable con Skill.
|
|
5
|
+
Ver reglas/seguridad-agentes.md y .planning/adrs/0037-propose-step-presupuesto-autonomia.md
|
|
6
|
+
-->
|
|
7
|
+
|
|
8
|
+
## Propose-step — proponer adyacencias, nunca actuar
|
|
9
|
+
|
|
10
|
+
Separa PROPONER de ACTUAR. Al **cerrar una tarea o fase** (no en cada turno),
|
|
11
|
+
evalúas las adyacencias de riesgo del cambio y las emites como **anexo
|
|
12
|
+
propositivo**. El anexo NUNCA bloquea ni ejecuta nada: es texto que el usuario
|
|
13
|
+
lee y decide si actúa.
|
|
14
|
+
|
|
15
|
+
### Cuándo correr
|
|
16
|
+
|
|
17
|
+
- Solo al cerrar una tarea o una fase, sobre el diff de ese cierre.
|
|
18
|
+
- Nunca en mitad de la implementación (evita ruido por turno).
|
|
19
|
+
- Si `SWL_PROPOSE=0`, el propose-step queda desactivado: silencio total.
|
|
20
|
+
|
|
21
|
+
### Cómo evaluar (mecanizado)
|
|
22
|
+
|
|
23
|
+
Ejecuta la lib sobre el diff de la tarea/fase:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
node hooks/lib/propose-step.js --rango=HEAD~1..HEAD
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Imprime el anexo solo si detecta ≥1 señal; silencio si no hay nada. Si la lib
|
|
30
|
+
no está disponible en el destino, evalúa a mano las 2 señales v1:
|
|
31
|
+
|
|
32
|
+
- **auth/PII/pagos**: el diff toca autenticación, datos personales o pagos
|
|
33
|
+
(paths `auth/`, `login`, `session`; patrones `password`, `token`, `secret`,
|
|
34
|
+
`jwt`, `stripe`, `pago`, `curp`, `rfc`). → Sugerir revisión de seguridad y
|
|
35
|
+
tests de autorización.
|
|
36
|
+
- **migración de schema**: el diff toca `models/`, `migrations/`, `*.sql`, o
|
|
37
|
+
contiene `ALTER/CREATE/DROP TABLE`. → Sugerir plan de rollback /
|
|
38
|
+
expand-contract y verificar reversibilidad.
|
|
39
|
+
|
|
40
|
+
### Formato del anexo
|
|
41
|
+
|
|
42
|
+
Solo cuando hay señal. Una sección al final del entregable:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
## Anexo propositivo — adyacencias de riesgo
|
|
46
|
+
|
|
47
|
+
Sugerencias, no acciones: nada se ejecuta ni se bloquea automáticamente.
|
|
48
|
+
|
|
49
|
+
- [auth-pii-pagos] <título> (<evidencia>) → <acción sugerida>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Las categorías que la telemetría de aceptación silenció (el usuario las ignora
|
|
53
|
+
de forma sostenida) no copan el anexo. La lib lo maneja con
|
|
54
|
+
`categoriasSilenciadasPropose`.
|
|
55
|
+
|
|
56
|
+
## Presupuesto de autonomía — proponer libre, actuar con presupuesto
|
|
57
|
+
|
|
58
|
+
Antes de **actuar** de forma autónoma, consulta el dial de autonomía en
|
|
59
|
+
`instintos/autonomia.yaml` (defaults = `reglas/seguridad-agentes.md`; este
|
|
60
|
+
fragmento NO relaja ningún control). Niveles por clase de riesgo:
|
|
61
|
+
|
|
62
|
+
| Clase | Nivel default | Qué significa |
|
|
63
|
+
|-------|---------------|---------------|
|
|
64
|
+
| lectura/análisis | `total` | Autónomo sin checkpoint. |
|
|
65
|
+
| cambio reversible | `con_auto_checkpoint` | Autónomo, pero registra un auto-checkpoint ANTES de actuar. |
|
|
66
|
+
| migración / auth / push / publish | `hitl` | Confirmación humana siempre. |
|
|
67
|
+
|
|
68
|
+
El dial sube **solo por decisión explícita del usuario**, nunca por tu
|
|
69
|
+
conveniencia. Un valor desconocido en el dial degrada a `hitl`.
|
|
70
|
+
|
|
71
|
+
### Auto-checkpoint (precondición de cambio reversible)
|
|
72
|
+
|
|
73
|
+
Antes de la primera acción autónoma de clase **cambio reversible** de una tarea,
|
|
74
|
+
registra el checkpoint mecánico:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
node hooks/lib/autonomia.js --accion "<descripción corta de la acción>"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Registra HEAD + archivos modificados en
|
|
81
|
+
`.planning/user-profile/auto-checkpoints.jsonl` como evidencia de rollback (los
|
|
82
|
+
commits atómicos son el mecanismo real de reversibilidad). Es best-effort: no
|
|
83
|
+
bloquea la acción que protege.
|
|
84
|
+
|
|
85
|
+
### Reglas duras
|
|
86
|
+
|
|
87
|
+
- Proponer es siempre permitido; actuar se gobierna por el dial.
|
|
88
|
+
- Para clases `hitl` (migración, auth, push, publish): pausa y pide confirmación.
|
|
89
|
+
- Nunca degradar silenciosamente: si una adyacencia es de alto impacto, repórtala
|
|
90
|
+
en el anexo aunque el dial permita actuar.
|
package/bin/swl-ses.js
CHANGED
|
@@ -104,6 +104,7 @@ const COMANDOS = {
|
|
|
104
104
|
init: '../scripts/inicializar.js',
|
|
105
105
|
install: '../scripts/instalador.js',
|
|
106
106
|
doctor: '../scripts/doctor.js',
|
|
107
|
+
'runtime-doctor': '../scripts/runtime-doctor.js',
|
|
107
108
|
update: '../scripts/actualizar.js',
|
|
108
109
|
uninstall: '../scripts/desinstalar.js',
|
|
109
110
|
prune: '../scripts/prune.js',
|
|
@@ -125,6 +126,7 @@ const COMANDOS = {
|
|
|
125
126
|
'aprobar-plan': '../scripts/cli/aprobar-plan.js',
|
|
126
127
|
'verificar-plan': '../scripts/cli/verificar-plan.js',
|
|
127
128
|
'verificar-trazabilidad': '../scripts/cli/verificar-trazabilidad.js',
|
|
129
|
+
'migrar-gates-legacy': '../scripts/migrar-gates-legacy.js',
|
|
128
130
|
'liberar-fase': '../scripts/cli/liberar-fase.js',
|
|
129
131
|
'propose-step': '../scripts/cli/propose-step.js',
|
|
130
132
|
'derivar-feature-list': '../scripts/cli/derivar-feature-list.js',
|
|
@@ -169,6 +171,12 @@ COMANDOS PRINCIPALES:
|
|
|
169
171
|
install Instala componentes. Sin flags: modo asistido interactivo.
|
|
170
172
|
Con flags: modo directo (ver OPCIONES DE INSTALL).
|
|
171
173
|
doctor Diagnóstica problemas de instalación
|
|
174
|
+
runtime-doctor [--target=<id>] [--json]
|
|
175
|
+
Diagnóstico read-only de disponibilidad Core-3
|
|
176
|
+
(claude-code|codex-cli|gemini-cli): binario,
|
|
177
|
+
versión, bundle y build-attestation. Nunca
|
|
178
|
+
instala, repara ni evalúa canarios
|
|
179
|
+
conductuales — disponibilidad != certificación.
|
|
172
180
|
update Actualiza componentes instalados
|
|
173
181
|
uninstall Desinstala componentes del runtime
|
|
174
182
|
prune Purga componentes retirados del paquete (dry-run; --confirmar ejecuta)
|
|
@@ -218,6 +226,8 @@ COMANDOS PRINCIPALES:
|
|
|
218
226
|
mutado/sin-firmar. Usado por /swl:ejecutar-fase.
|
|
219
227
|
verificar-trazabilidad --fase=N Valida matriz REQ×T→commit→test. Flags:
|
|
220
228
|
--solo-plan, --json. Usado por /swl:aprobar-plan.
|
|
229
|
+
migrar-gates-legacy --fase=N Migra un PLAN pre-Fase09 con approval Ed25519,
|
|
230
|
+
hashes exactos y evento de integridad anclado.
|
|
221
231
|
liberar-fase Cierra el gate G0 (borra fase-activa.json). Usado
|
|
222
232
|
por /swl:ejecutar-fase al terminar.
|
|
223
233
|
propose-step --rango=A..B Anexo propositivo del RESUMEN de fase (ADR-0037).
|