@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
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Wrapper CLI para `swl-ses propose-step` — anexo propositivo del RESUMEN de
|
|
5
|
-
* fase (ADR-0037). Envuelve hooks/lib/propose-step.js (que lee process.argv).
|
|
6
|
-
*
|
|
7
|
-
* Reemplaza el `node hooks/lib/propose-step.js --rango=...` relativo al proyecto
|
|
8
|
-
* que /swl:ejecutar-fase invocaba — roto downstream (ver
|
|
9
|
-
* docs/invocacion-cli-cross-scope.md).
|
|
10
|
-
*
|
|
11
|
-
* Uso: swl-ses propose-step --rango=<base>..HEAD (opt-out SWL_PROPOSE=0)
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
const { main } = require('../../hooks/lib/propose-step.js');
|
|
15
|
-
|
|
16
|
-
function proposeStep(opciones = {}) {
|
|
17
|
-
opciones = opciones || {};
|
|
18
|
-
const args = ['node', 'propose-step'];
|
|
19
|
-
if (opciones.rango) args.push(`--rango=${opciones.rango}`);
|
|
20
|
-
const argvOriginal = process.argv;
|
|
21
|
-
process.argv = args;
|
|
22
|
-
try {
|
|
23
|
-
return main(process.argv);
|
|
24
|
-
} finally {
|
|
25
|
-
process.argv = argvOriginal;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
module.exports = proposeStep;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Wrapper CLI para `swl-ses propose-step` — anexo propositivo del RESUMEN de
|
|
5
|
+
* fase (ADR-0037). Envuelve hooks/lib/propose-step.js (que lee process.argv).
|
|
6
|
+
*
|
|
7
|
+
* Reemplaza el `node hooks/lib/propose-step.js --rango=...` relativo al proyecto
|
|
8
|
+
* que /swl:ejecutar-fase invocaba — roto downstream (ver
|
|
9
|
+
* docs/invocacion-cli-cross-scope.md).
|
|
10
|
+
*
|
|
11
|
+
* Uso: swl-ses propose-step --rango=<base>..HEAD (opt-out SWL_PROPOSE=0)
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
const { main } = require('../../hooks/lib/propose-step.js');
|
|
15
|
+
|
|
16
|
+
function proposeStep(opciones = {}) {
|
|
17
|
+
opciones = opciones || {};
|
|
18
|
+
const args = ['node', 'propose-step'];
|
|
19
|
+
if (opciones.rango) args.push(`--rango=${opciones.rango}`);
|
|
20
|
+
const argvOriginal = process.argv;
|
|
21
|
+
process.argv = args;
|
|
22
|
+
try {
|
|
23
|
+
return main(process.argv);
|
|
24
|
+
} finally {
|
|
25
|
+
process.argv = argvOriginal;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
module.exports = proposeStep;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Wrapper CLI `swl-ses schedule-parse` — parsea una frase en inglés a expresión
|
|
5
|
-
* cron. Reemplaza el inline `require('./scripts/lib/schedule-parser')` relativo
|
|
6
|
-
* al proyecto (roto downstream; ver docs/invocacion-cli-cross-scope.md).
|
|
7
|
-
*
|
|
8
|
-
* Uso: swl-ses schedule-parse "every morning at 9am"
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const { parseNaturalSchedule } = require('../lib/schedule-parser');
|
|
12
|
-
|
|
13
|
-
function scheduleParse(opciones = {}) {
|
|
14
|
-
const frase =
|
|
15
|
-
(opciones._args && opciones._args.join(' ')) || opciones.texto || '';
|
|
16
|
-
console.log(JSON.stringify(parseNaturalSchedule(frase), null, 2));
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
module.exports = scheduleParse;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Wrapper CLI `swl-ses schedule-parse` — parsea una frase en inglés a expresión
|
|
5
|
+
* cron. Reemplaza el inline `require('./scripts/lib/schedule-parser')` relativo
|
|
6
|
+
* al proyecto (roto downstream; ver docs/invocacion-cli-cross-scope.md).
|
|
7
|
+
*
|
|
8
|
+
* Uso: swl-ses schedule-parse "every morning at 9am"
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
const { parseNaturalSchedule } = require('../lib/schedule-parser');
|
|
12
|
+
|
|
13
|
+
function scheduleParse(opciones = {}) {
|
|
14
|
+
const frase =
|
|
15
|
+
(opciones._args && opciones._args.join(' ')) || opciones.texto || '';
|
|
16
|
+
console.log(JSON.stringify(parseNaturalSchedule(frase), null, 2));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
module.exports = scheduleParse;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Wrapper CLI `swl-ses sugerir-modelo` — evalúa la complejidad de una tarea y
|
|
5
|
-
* sugiere el modelo (opus/sonnet/haiku). Reemplaza el inline
|
|
6
|
-
* `require('./hooks/lib/model-router.js')` relativo al proyecto (roto downstream;
|
|
7
|
-
* ver docs/invocacion-cli-cross-scope.md).
|
|
8
|
-
*
|
|
9
|
-
* Uso: swl-ses sugerir-modelo "<descripción de la tarea>"
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
const { sugerirModelo } = require('../../hooks/lib/model-router.js');
|
|
13
|
-
|
|
14
|
-
function sugerirModeloCli(opciones = {}) {
|
|
15
|
-
const desc =
|
|
16
|
-
(opciones._args && opciones._args.join(' ')) || opciones.desc || '';
|
|
17
|
-
console.log(JSON.stringify(sugerirModelo(desc), null, 2));
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
module.exports = sugerirModeloCli;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Wrapper CLI `swl-ses sugerir-modelo` — evalúa la complejidad de una tarea y
|
|
5
|
+
* sugiere el modelo (opus/sonnet/haiku). Reemplaza el inline
|
|
6
|
+
* `require('./hooks/lib/model-router.js')` relativo al proyecto (roto downstream;
|
|
7
|
+
* ver docs/invocacion-cli-cross-scope.md).
|
|
8
|
+
*
|
|
9
|
+
* Uso: swl-ses sugerir-modelo "<descripción de la tarea>"
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const { sugerirModelo } = require('../../hooks/lib/model-router.js');
|
|
13
|
+
|
|
14
|
+
function sugerirModeloCli(opciones = {}) {
|
|
15
|
+
const desc =
|
|
16
|
+
(opciones._args && opciones._args.join(' ')) || opciones.desc || '';
|
|
17
|
+
console.log(JSON.stringify(sugerirModelo(desc), null, 2));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = sugerirModeloCli;
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Subcomando `swl-ses verificar-plan --fase=N` — verificación read-only del lock
|
|
5
|
-
* de un PLAN (gate G1). Lo usa /swl:ejecutar-fase antes de implementar y
|
|
6
|
-
* /swl:aprobar-plan Paso 2 para detectar planes ya firmados/mutados/legacy.
|
|
7
|
-
*
|
|
8
|
-
* Reemplaza el `node -e "require('./scripts/lib/plan-lock')"` inline que se
|
|
9
|
-
* rompía downstream (ver docs/invocacion-cli-cross-scope.md).
|
|
10
|
-
*
|
|
11
|
-
* Exit 0 si ok (firmado o legacy); exit 1 si mutado/sin-firmar/corrupto.
|
|
12
|
-
*
|
|
13
|
-
* Uso: swl-ses verificar-plan --fase=N [--plan=<ruta>]
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
const { verificarPlan } = require('../lib/plan-lock');
|
|
17
|
-
const { resolverPlanPath } = require('../lib/resolver-plan-fase');
|
|
18
|
-
|
|
19
|
-
function verificarPlanCli(opciones = {}) {
|
|
20
|
-
opciones = opciones || {};
|
|
21
|
-
const planPath = resolverPlanPath(opciones);
|
|
22
|
-
if (!planPath) {
|
|
23
|
-
console.error('Uso: swl-ses verificar-plan --fase=N [--plan=<ruta>]');
|
|
24
|
-
process.exit(1);
|
|
25
|
-
}
|
|
26
|
-
const r = verificarPlan(planPath);
|
|
27
|
-
console.log(JSON.stringify(r, null, 2));
|
|
28
|
-
process.exit(r.ok ? 0 : 1);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
module.exports = verificarPlanCli;
|
|
32
|
-
|
|
33
|
-
if (require.main === module) {
|
|
34
|
-
const { parsearOpciones } = require('../lib/parsear-opciones');
|
|
35
|
-
verificarPlanCli(parsearOpciones(process.argv.slice(2)));
|
|
36
|
-
}
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Subcomando `swl-ses verificar-plan --fase=N` — verificación read-only del lock
|
|
5
|
+
* de un PLAN (gate G1). Lo usa /swl:ejecutar-fase antes de implementar y
|
|
6
|
+
* /swl:aprobar-plan Paso 2 para detectar planes ya firmados/mutados/legacy.
|
|
7
|
+
*
|
|
8
|
+
* Reemplaza el `node -e "require('./scripts/lib/plan-lock')"` inline que se
|
|
9
|
+
* rompía downstream (ver docs/invocacion-cli-cross-scope.md).
|
|
10
|
+
*
|
|
11
|
+
* Exit 0 si ok (firmado o legacy); exit 1 si mutado/sin-firmar/corrupto.
|
|
12
|
+
*
|
|
13
|
+
* Uso: swl-ses verificar-plan --fase=N [--plan=<ruta>]
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const { verificarPlan } = require('../lib/plan-lock');
|
|
17
|
+
const { resolverPlanPath } = require('../lib/resolver-plan-fase');
|
|
18
|
+
|
|
19
|
+
function verificarPlanCli(opciones = {}) {
|
|
20
|
+
opciones = opciones || {};
|
|
21
|
+
const planPath = resolverPlanPath(opciones);
|
|
22
|
+
if (!planPath) {
|
|
23
|
+
console.error('Uso: swl-ses verificar-plan --fase=N [--plan=<ruta>]');
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
const r = verificarPlan(planPath);
|
|
27
|
+
console.log(JSON.stringify(r, null, 2));
|
|
28
|
+
process.exit(r.ok ? 0 : 1);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = verificarPlanCli;
|
|
32
|
+
|
|
33
|
+
if (require.main === module) {
|
|
34
|
+
const { parsearOpciones } = require('../lib/parsear-opciones');
|
|
35
|
+
verificarPlanCli(parsearOpciones(process.argv.slice(2)));
|
|
36
|
+
}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Wrapper CLI para el subcomando `swl-ses verificar-trazabilidad`.
|
|
5
|
-
*
|
|
6
|
-
* Traduce las opciones parseadas del bin a las flags que espera el script
|
|
7
|
-
* standalone `scripts/verificar-trazabilidad.js` (que lee process.argv y hace
|
|
8
|
-
* su propio process.exit). Mismo patrón que scripts/cli/audit-claudemd.js.
|
|
9
|
-
*
|
|
10
|
-
* Reemplaza el `node scripts/verificar-trazabilidad.js` relativo al proyecto que
|
|
11
|
-
* /swl:aprobar-plan invocaba — roto downstream (ver
|
|
12
|
-
* docs/invocacion-cli-cross-scope.md).
|
|
13
|
-
*
|
|
14
|
-
* Uso: swl-ses verificar-trazabilidad --fase=N [--solo-plan] [--json]
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
const { main } = require('../verificar-trazabilidad.js');
|
|
18
|
-
|
|
19
|
-
function verificarTrazabilidad(opciones = {}) {
|
|
20
|
-
opciones = opciones || {};
|
|
21
|
-
const args = [];
|
|
22
|
-
if (opciones.fase != null && opciones.fase !== true) args.push(`--fase=${opciones.fase}`);
|
|
23
|
-
if (opciones['solo-plan'] || opciones.solo_plan) args.push('--solo-plan');
|
|
24
|
-
if (opciones.json) args.push('--json');
|
|
25
|
-
|
|
26
|
-
const argvOriginal = process.argv;
|
|
27
|
-
process.argv = ['node', 'verificar-trazabilidad.js', ...args];
|
|
28
|
-
try {
|
|
29
|
-
main();
|
|
30
|
-
} finally {
|
|
31
|
-
process.argv = argvOriginal;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
module.exports = verificarTrazabilidad;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Wrapper CLI para el subcomando `swl-ses verificar-trazabilidad`.
|
|
5
|
+
*
|
|
6
|
+
* Traduce las opciones parseadas del bin a las flags que espera el script
|
|
7
|
+
* standalone `scripts/verificar-trazabilidad.js` (que lee process.argv y hace
|
|
8
|
+
* su propio process.exit). Mismo patrón que scripts/cli/audit-claudemd.js.
|
|
9
|
+
*
|
|
10
|
+
* Reemplaza el `node scripts/verificar-trazabilidad.js` relativo al proyecto que
|
|
11
|
+
* /swl:aprobar-plan invocaba — roto downstream (ver
|
|
12
|
+
* docs/invocacion-cli-cross-scope.md).
|
|
13
|
+
*
|
|
14
|
+
* Uso: swl-ses verificar-trazabilidad --fase=N [--solo-plan] [--json]
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
const { main } = require('../verificar-trazabilidad.js');
|
|
18
|
+
|
|
19
|
+
function verificarTrazabilidad(opciones = {}) {
|
|
20
|
+
opciones = opciones || {};
|
|
21
|
+
const args = [];
|
|
22
|
+
if (opciones.fase != null && opciones.fase !== true) args.push(`--fase=${opciones.fase}`);
|
|
23
|
+
if (opciones['solo-plan'] || opciones.solo_plan) args.push('--solo-plan');
|
|
24
|
+
if (opciones.json) args.push('--json');
|
|
25
|
+
|
|
26
|
+
const argvOriginal = process.argv;
|
|
27
|
+
process.argv = ['node', 'verificar-trazabilidad.js', ...args];
|
|
28
|
+
try {
|
|
29
|
+
main();
|
|
30
|
+
} finally {
|
|
31
|
+
process.argv = argvOriginal;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
module.exports = verificarTrazabilidad;
|
|
@@ -23,6 +23,7 @@ const fs = require('fs');
|
|
|
23
23
|
const path = require('path');
|
|
24
24
|
|
|
25
25
|
const { preguntarSiNo, preguntarOpcion, ES_TTY } = require('../lib/ui');
|
|
26
|
+
const { obtenerEtiquetaConformidad } = require('../lib/detectar-runtime');
|
|
26
27
|
|
|
27
28
|
const RAIZ = path.resolve(__dirname, '..', '..');
|
|
28
29
|
const PERFILES_PATH = path.join(RAIZ, 'manifiestos', 'perfiles.json');
|
|
@@ -32,12 +33,12 @@ const PERFILES_PATH = path.join(RAIZ, 'manifiestos', 'perfiles.json');
|
|
|
32
33
|
// ---------------------------------------------------------------------------
|
|
33
34
|
|
|
34
35
|
const RUNTIMES = [
|
|
35
|
-
{ valor: 'claude',
|
|
36
|
-
{ valor: 'openclaude', descripcion:
|
|
37
|
-
{ valor: 'copilot',
|
|
38
|
-
{ valor: 'opencode',
|
|
39
|
-
{ valor: 'codex',
|
|
40
|
-
{ valor: 'gemini',
|
|
36
|
+
{ valor: 'claude', descripcion: `Claude Code (${obtenerEtiquetaConformidad('claude')}, recomendado)` },
|
|
37
|
+
{ valor: 'openclaude', descripcion: `OpenClaude (${obtenerEtiquetaConformidad('openclaude')})` },
|
|
38
|
+
{ valor: 'copilot', descripcion: `GitHub Copilot (${obtenerEtiquetaConformidad('copilot')})` },
|
|
39
|
+
{ valor: 'opencode', descripcion: `OpenCode (${obtenerEtiquetaConformidad('opencode')})` },
|
|
40
|
+
{ valor: 'codex', descripcion: `Codex CLI (${obtenerEtiquetaConformidad('codex')})` },
|
|
41
|
+
{ valor: 'gemini', descripcion: `Gemini CLI (${obtenerEtiquetaConformidad('gemini')})` },
|
|
41
42
|
];
|
|
42
43
|
|
|
43
44
|
const SCOPES = [
|
|
@@ -176,7 +177,7 @@ async function main() {
|
|
|
176
177
|
await fn(opciones);
|
|
177
178
|
}
|
|
178
179
|
|
|
179
|
-
module.exports = { flujoAsistido, main };
|
|
180
|
+
module.exports = { RUNTIMES, flujoAsistido, main };
|
|
180
181
|
|
|
181
182
|
if (require.main === module) {
|
|
182
183
|
main().catch(err => {
|