@saulwade/swl-ses 2.2.4 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +48 -7
- package/README.md +3 -3
- package/agentes/accesibilidad-wcag-swl.md +690 -690
- package/agentes/arquitecto-swl.md +267 -267
- package/agentes/auto-evolucion-swl.md +908 -908
- package/agentes/backend-api-swl.md +472 -472
- 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-node-swl.md +479 -479
- package/agentes/backend-python-swl.md +605 -605
- 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/datos-swl.md +605 -605
- 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/gh-fix-ci-swl.md +2 -2
- package/agentes/implementador-swl.md +328 -328
- package/agentes/investigador-swl.md +432 -432
- package/agentes/investigador-ux-swl.md +505 -505
- package/agentes/llm-apps-swl.md +278 -278
- 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/notificador-swl.md +918 -918
- package/agentes/observabilidad-swl.md +438 -438
- package/agentes/orquestador-swl.md +1026 -1026
- 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 +1 -1
- package/agentes/release-manager-swl.md +590 -590
- package/agentes/rendimiento-swl.md +713 -713
- package/agentes/resolutor-build-swl.md +245 -245
- package/agentes/revisor-angular-swl.md +278 -278
- package/agentes/revisor-codigo-swl.md +505 -505
- 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/sre-swl.md +291 -291
- package/agentes/tdd-qa-swl.md +393 -393
- package/comandos/swl/aprobar-plan.md +146 -141
- package/comandos/swl/briefing.md +119 -119
- package/comandos/swl/contribuir.md +233 -233
- package/comandos/swl/predecir.md +139 -139
- package/comandos/swl/release.md +30 -8
- package/comandos/swl/sesiones.md +1 -1
- package/comandos/swl/status.md +343 -333
- package/gateway/agent-executor.js +1 -1
- package/gateway/lib/event-channel.js +191 -191
- package/habilidades/agent-deep-links/SKILL.md +148 -148
- package/habilidades/agentes-como-servicio/SKILL.md +2 -2
- package/habilidades/angular-moderno/SKILL.md +20 -1
- package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -276
- package/habilidades/backend-async-postgres-testing/SKILL.md +215 -215
- package/habilidades/backend-error-design/SKILL.md +221 -221
- package/habilidades/backend-production-resilience/SKILL.md +288 -288
- package/habilidades/benchmark-memoria/SKILL.md +186 -186
- package/habilidades/calidad-anti-patrones-universales/SKILL.md +368 -368
- package/habilidades/calidad-contract-testing/SKILL.md +165 -165
- package/habilidades/calidad-mutation-testing/SKILL.md +170 -170
- package/habilidades/changelog-generator/scripts/parse-commits.js +367 -367
- package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
- package/habilidades/contenedores-docker/SKILL.md +3 -1
- package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
- package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
- package/habilidades/drift-detection/SKILL.md +179 -179
- package/habilidades/ejecutar-fase/SKILL.md +564 -541
- package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
- package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +1 -1
- package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
- package/habilidades/eval-framework/SKILL.md +212 -212
- package/habilidades/extractor-de-aprendizajes/SKILL.md +3 -3
- package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
- package/habilidades/harness-claude-code/recursos/disciplina-harness-regla.md +252 -252
- package/habilidades/legacy-code-rescue/SKILL.md +267 -267
- 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 +15 -1
- package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
- package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -255
- package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
- package/habilidades/proceso-debate-adversarial/SKILL.md +191 -164
- package/habilidades/proceso-debate-adversarial/recursos/personas.md +105 -105
- package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
- package/habilidades/proceso-dynamic-workflows/SKILL.md +138 -138
- 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/prompt-engineering/recursos/patrones-avanzados.md +2 -2
- package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
- package/habilidades/structured-outputs/SKILL.md +2 -2
- 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/swl-dashboard/SKILL.md +2 -2
- package/habilidades/tdd-workflow/SKILL.md +33 -1
- package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
- package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +1 -1
- package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +1 -1
- package/hooks/captura-acciones-post.js +151 -0
- package/hooks/captura-acciones-session.js +155 -0
- package/hooks/ciclo-evolucion-subagente.js +26 -26
- package/hooks/ciclo-evolucion.js +26 -26
- package/hooks/claudemd-bloat-detector.js +161 -161
- package/hooks/claudemd-duplicacion-detector.js +170 -170
- package/hooks/contexto-iteracion.js +144 -144
- package/hooks/guardrail-modelo.js +1 -1
- package/hooks/lib/agent-routing.js +107 -107
- package/hooks/lib/auto-consolidator.js +335 -335
- package/hooks/lib/autonomia.js +208 -208
- package/hooks/lib/briefing.js +512 -474
- package/hooks/lib/captura-acciones.js +392 -0
- 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-auto-evolucion.js +701 -701
- package/hooks/lib/etapa-metricas.js +388 -388
- package/hooks/lib/etapa-perfil-usuario.js +376 -376
- package/hooks/lib/loop-telemetry.js +321 -321
- package/hooks/lib/merkle-audit.js +96 -96
- package/hooks/lib/model-router.js +2 -2
- package/hooks/lib/propose-step.js +358 -358
- package/hooks/lib/provenance-tracker.js +191 -191
- package/hooks/lib/rate-limit-tracker.js +253 -253
- package/hooks/lib/resource-quota.js +122 -122
- package/hooks/lib/retry-jitter.js +165 -165
- package/hooks/lib/security-net.js +201 -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/token-estimator.js +1 -0
- package/hooks/lib/toon-compressor.js +245 -245
- package/hooks/lib/usage-model.js +1 -1
- package/hooks/linea-estado.js +2 -0
- package/hooks/registro-turnos.js +209 -209
- package/hooks/session-briefing.js +98 -98
- package/hooks/spec-gate.js +211 -211
- package/hooks/sugerir-regenerar-inventario.js +170 -170
- package/hooks/tdd-gate.js +241 -241
- package/hooks/telemetria-skill-routing.js +100 -100
- package/hooks/validar-formato-post-subagente.js +140 -140
- package/hooks/validar-intent-spec.js +242 -242
- package/hooks/validar-memoria-hook.js +218 -218
- package/hooks/validar-planning-paths.js +134 -134
- package/instintos/autonomia.yaml +27 -27
- package/instintos/prompt-appendices.yaml +57 -57
- package/llms.txt +2 -2
- package/manifiestos/agent-output-schemas.json +57 -57
- package/manifiestos/canonical-hashes.json +2291 -1637
- package/manifiestos/hooks-config.json +18 -0
- package/manifiestos/modulos.json +4 -0
- package/manifiestos/planning-paths.json +44 -44
- package/manifiestos/skills-lock.json +1282 -1282
- package/package.json +2 -2
- package/plantillas/auditor-veto-template.md +105 -105
- package/plantillas/github-workflows/README.md +47 -47
- package/plantillas/github-workflows/release-please.yml +44 -44
- package/plantillas/github-workflows/swl-ci.yml +107 -107
- package/plantillas/github-workflows/swl-security.yml +51 -51
- package/plugin.json +2 -2
- package/reglas/accesibilidad.md +10 -10
- package/reglas/analisis-previo-tareas-grandes.md +172 -172
- package/reglas/api-diseno.md +9 -9
- package/reglas/arreglar-al-detectar.md +240 -240
- 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/debatir-antes-de-aceptar.md +158 -158
- package/reglas/fragmentos-compartidos.md +183 -183
- package/reglas/hooks.md +6 -6
- package/reglas/intent-engineering.md +218 -218
- package/reglas/markitdown.md +8 -8
- package/reglas/memoria-consolidada.md +41 -0
- package/reglas/monitor-ci.md +309 -309
- package/reglas/patrones.md +6 -6
- package/reglas/seguridad-agentes.md +66 -0
- package/reglas/sesiones-paralelas.md +180 -180
- package/reglas/sin-duplicacion-reglas-globales.md +182 -182
- package/reglas/skills-estandar.md +6 -6
- package/reglas/testing.md +7 -7
- package/reglas/tests-cleanup.md +224 -224
- package/reglas/usar-code-review-graph.md +155 -155
- package/reglas/usar-context7.md +226 -226
- package/reglas/verificar-citas-normativas.md +548 -548
- package/schemas/agent-frontmatter.schema.json +3 -3
- 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/hook-profiles.schema.json +54 -54
- package/schemas/hooks-config.schema.json +89 -89
- package/schemas/instinct.schema.json +161 -152
- package/schemas/modulos.schema.json +38 -38
- package/schemas/perfiles.schema.json +36 -36
- package/schemas/plugin.schema.json +77 -77
- package/schemas/skill-evals.schema.json +119 -119
- package/schemas/skill-frontmatter.schema.json +245 -245
- 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/benchmark-memoria.js +167 -167
- package/scripts/bootstrap-instintos.js +25 -7
- 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/configurar-ci.js +40 -40
- 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/loop-telemetry.js +125 -125
- 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/configurar-branch-protection.js +418 -418
- package/scripts/detectar-aprendizajes-duplicados.js +151 -151
- package/scripts/field-report.js +199 -199
- package/scripts/generar-checklists-consolidados.js +273 -273
- package/scripts/generar-matriz-lenguajes.js +271 -271
- package/scripts/lib/artefactos-python.js +43 -43
- package/scripts/lib/auditar-invocaciones-comandos.js +104 -104
- package/scripts/lib/benchmark-metrics.js +160 -160
- package/scripts/lib/budget-enforcer.js +252 -252
- package/scripts/lib/ci-reader.js +193 -193
- package/scripts/lib/claude-sessions.js +1 -0
- package/scripts/lib/configurar-ci.js +380 -380
- package/scripts/lib/contadores-inventario.js +217 -217
- package/scripts/lib/detectar-host-swl.js +175 -175
- 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/diary-entry.js +234 -234
- package/scripts/lib/eval-metrics-store.js +218 -218
- package/scripts/lib/eval-quality.js +171 -171
- package/scripts/lib/eval-schemas.js +144 -144
- package/scripts/lib/eval-self-correct.js +106 -106
- package/scripts/lib/eval-validator.js +185 -185
- package/scripts/lib/evidencia-release.js +322 -322
- package/scripts/lib/expandir-targets.js +71 -71
- package/scripts/lib/gate-hooks-requires.js +249 -249
- package/scripts/lib/gate-licencias.js +212 -212
- package/scripts/lib/git-metricas.js +257 -257
- package/scripts/lib/gitignore-manifest.js +44 -11
- package/scripts/lib/jaccard-similarity.js +98 -98
- package/scripts/lib/longmemeval-runner.js +125 -125
- package/scripts/lib/metricas-dora.js +204 -204
- package/scripts/lib/npm-version.js +261 -261
- package/scripts/lib/paquetes-conocidos.js +50 -50
- package/scripts/lib/plan-lock.js +275 -275
- package/scripts/lib/pr-analyzer.js +399 -399
- package/scripts/lib/prompt-builder.js +264 -264
- package/scripts/lib/reglas-globales-conocidas.json +180 -180
- package/scripts/lib/resolver-plan-fase.js +37 -37
- package/scripts/lib/rrf-fusion.js +175 -175
- package/scripts/lib/schema-version.js +164 -164
- package/scripts/lib/scoring-instintos.js +277 -277
- package/scripts/lib/semantic-search.js +252 -252
- package/scripts/lib/skill-metrics.js +41 -1
- package/scripts/lib/toml-merge.js +204 -204
- package/scripts/lib/tool-cost-analyzer.js +1 -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/publicar.js +497 -497
- package/scripts/run-eval.js +141 -141
- 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/index.js +162 -162
- 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/inspect.js +173 -173
- package/scripts/tui/pantallas/install-wizard.js +334 -334
- 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/tui/pantallas/uninstall-wizard.js +208 -208
- package/scripts/tui/pantallas/update-wizard.js +232 -232
- package/scripts/tui/pantallas/welcome.js +187 -187
- package/scripts/validar-userland-vacio.js +110 -110
- package/scripts/verificar-trazabilidad.js +329 -298
|
@@ -1,158 +1,158 @@
|
|
|
1
|
-
# Regla: Debatir antes de aceptar decisiones que chocan con reglas
|
|
2
|
-
|
|
3
|
-
Esta regla es OBLIGATORIA y aplica a todo trabajo donde Claude reciba una
|
|
4
|
-
decisión técnica o de diseño del usuario que entre en conflicto con una regla
|
|
5
|
-
documentada del sistema, una invariante del dominio, o una buena práctica
|
|
6
|
-
establecida.
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Principio
|
|
11
|
-
|
|
12
|
-
> Cuando el usuario propone una decisión, **NUNCA la aceptes por reflejo**.
|
|
13
|
-
> Si la decisión choca con una regla documentada (de `~/.claude/rules/`,
|
|
14
|
-
> `CLAUDE.md` del proyecto, ADRs vigentes) o con una invariante obvia del
|
|
15
|
-
> dominio, debes **debatirla con cita concreta + riesgo observable +
|
|
16
|
-
> alternativa** ANTES de implementar.
|
|
17
|
-
|
|
18
|
-
El usuario espera un colaborador técnico, no un sí-señor. Su rol es decidir
|
|
19
|
-
qué riesgos asume; el rol del agente es señalar el costo técnico antes de
|
|
20
|
-
que la decisión se materialice.
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Cuándo aplicar
|
|
25
|
-
|
|
26
|
-
Cuando la decisión del usuario:
|
|
27
|
-
|
|
28
|
-
- Contradice una regla global de `~/.claude/rules/*.md` (especialmente
|
|
29
|
-
`seguridad-agentes.md`, `arquitectura.md`, `gobernanza.md`, `seguridad.md`).
|
|
30
|
-
- Contradice una regla de `CLAUDE.md` del proyecto o un ADR vigente.
|
|
31
|
-
- Rompe una invariante del dominio (integridad referencial, auditoría
|
|
32
|
-
inmutable, trazabilidad regulatoria, separación de responsabilidades).
|
|
33
|
-
- Introduce una "puerta trasera" para un rol privilegiado que erosiona una
|
|
34
|
-
garantía formal del sistema (ej: ADMIN bypassa una invariante de
|
|
35
|
-
integridad — distinto de bypassar una restricción jerárquica).
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Cómo aplicar
|
|
40
|
-
|
|
41
|
-
### Paso 1 — Contrastar la decisión con las reglas
|
|
42
|
-
|
|
43
|
-
Antes de implementar, ejecuta mentalmente este check:
|
|
44
|
-
|
|
45
|
-
- ¿Existe una regla en `~/.claude/rules/` que aplique?
|
|
46
|
-
- ¿El proyecto tiene `CLAUDE.md` o ADRs que cubran este territorio?
|
|
47
|
-
- ¿La decisión rompe una invariante visible del dominio (audit trail,
|
|
48
|
-
consistencia de estados, integridad referencial)?
|
|
49
|
-
- ¿Hay un ejemplo histórico en el proyecto donde una decisión similar
|
|
50
|
-
causó un incidente?
|
|
51
|
-
|
|
52
|
-
### Paso 2 — Si hay choque: responder con tres bloques
|
|
53
|
-
|
|
54
|
-
NO implementes en silencio. Responde explícitamente con:
|
|
55
|
-
|
|
56
|
-
1. **Por qué la decisión es problemática**: cita la regla concreta o la
|
|
57
|
-
invariante violada. Evita generalidades — referencia el archivo y la
|
|
58
|
-
sección.
|
|
59
|
-
|
|
60
|
-
2. **Cuál es el riesgo real**: descríbelo de forma observable, no abstracta.
|
|
61
|
-
Mal: "puede causar problemas de integridad". Bien: "el chip 'Aprobado por
|
|
62
|
-
X' seguirá visible cuando el contenido haya cambiado, y un auditor
|
|
63
|
-
externo no tendrá forma de saber que se editó después — eso vulnera la
|
|
64
|
-
trazabilidad regulatoria del OIC".
|
|
65
|
-
|
|
66
|
-
3. **Alternativa concreta** que satisfaga la intención del usuario sin
|
|
67
|
-
romper la regla. Idealmente con costo acotado en pasos.
|
|
68
|
-
|
|
69
|
-
### Paso 3 — Esperar confirmación informada
|
|
70
|
-
|
|
71
|
-
Tras presentar el análisis, espera. Si el usuario insiste tras conocer el
|
|
72
|
-
costo, implementa — pero ahí queda registrado que es decisión informada,
|
|
73
|
-
no inercia.
|
|
74
|
-
|
|
75
|
-
Si el usuario contradice tu análisis con argumentos válidos (la regla no
|
|
76
|
-
aplica al caso, el riesgo no existe en este contexto), corrige y procede.
|
|
77
|
-
La regla es debatir, no obstinarse.
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Excepciones legítimas
|
|
82
|
-
|
|
83
|
-
NO aplicar cuando:
|
|
84
|
-
|
|
85
|
-
1. **Decisiones de preferencia personal sin impacto técnico**: color,
|
|
86
|
-
naming, estilo de prosa, formato de mensajes. Esas se obedecen sin
|
|
87
|
-
debate.
|
|
88
|
-
2. **Decisiones donde el usuario ya consideró la regla y la sobrescribió
|
|
89
|
-
intencionalmente** en una sesión previa, en `discutir-fase`, o en un
|
|
90
|
-
ADR documentado.
|
|
91
|
-
3. **El usuario pide explícitamente "no debates, ejecuta"** para una
|
|
92
|
-
tarea acotada y reversible. Respeta la instrucción explícita; NO
|
|
93
|
-
añadas debate por reflejo.
|
|
94
|
-
4. **Fix urgente de producción** con incidente activo y blast radius
|
|
95
|
-
acotado. Aplica el fix; el debate puede esperar al post-mortem.
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## Anti-patrones explícitos
|
|
100
|
-
|
|
101
|
-
- **Aceptar por reflejo**: responder "listo, implemento" a una decisión
|
|
102
|
-
que viola una regla, y solo detectar el problema cuando el usuario pide
|
|
103
|
-
análisis crítico explícito.
|
|
104
|
-
- **Endulzar el análisis**: presentar la objeción como tradeoff opcional
|
|
105
|
-
cuando la regla es absoluta. "Aunque hay tradeoffs, tu enfoque es
|
|
106
|
-
válido si…" cuando en realidad la decisión rompe una invariante del
|
|
107
|
-
sistema.
|
|
108
|
-
- **Soluciones intermedias que vacían la regla**: ofrecer "agregar un
|
|
109
|
-
log warning" cuando el problema real es romper una invariante. Eso es
|
|
110
|
-
fallback silencioso disfrazado — la solución correcta es no romper la
|
|
111
|
-
invariante, no agregar un log invisible al usuario.
|
|
112
|
-
- **Confundir conveniencia con jerarquía**: que el usuario sea el dueño
|
|
113
|
-
del proyecto no significa que toda preferencia suya esté libre de costo
|
|
114
|
-
técnico. El rol del agente es señalar el costo; el del usuario es
|
|
115
|
-
decidir si lo asume.
|
|
116
|
-
- **Implementar primero, debatir después**: si la decisión genera daño
|
|
117
|
-
acumulable (commits que rompen invariantes), revertir es más caro que
|
|
118
|
-
haber debatido al inicio.
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## Ejemplo positivo
|
|
123
|
-
|
|
124
|
-
> Usuario: "Implementa que ADMIN pueda editar el contenido de un papel
|
|
125
|
-
> de trabajo bajo VBO aprobado, sin tener que revocar primero."
|
|
126
|
-
>
|
|
127
|
-
> Respuesta correcta:
|
|
128
|
-
>
|
|
129
|
-
> Análisis: la regla `seguridad-agentes.md § Anti-fallback silencioso`
|
|
130
|
-
> establece que ningún cambio de garantía puede suceder sin alerta
|
|
131
|
-
> visible al usuario. Permitir esa edición rompe la integridad
|
|
132
|
-
> semántica del VBO: el chip "Aprobado por Juan Pérez — fecha" seguirá
|
|
133
|
-
> visible aunque el contenido cambie, y el auditor externo no podrá
|
|
134
|
-
> distinguir el contenido aprobado del editado después. En un OIC
|
|
135
|
-
> regulado por LGIPE eso compromete la trazabilidad legal.
|
|
136
|
-
>
|
|
137
|
-
> Riesgo observable: cualquier auditoría posterior verá el VBO aprobado
|
|
138
|
-
> y asumirá que ese contenido fue revisado. Si el contenido cambió por
|
|
139
|
-
> override administrativo, la auditoría está mintiendo.
|
|
140
|
-
>
|
|
141
|
-
> Alternativa: el flujo correcto ya existe y no es burocrático. ADMIN
|
|
142
|
-
> puede revocar el VBO desde el panel (1 click, deja registro inmutable
|
|
143
|
-
> en `vbo_historial` con motivo obligatorio), editar, y re-aprobar. Tres
|
|
144
|
-
> acciones, todas trazables. ¿Procedo con este flujo?
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Origen de esta regla
|
|
149
|
-
|
|
150
|
-
Sesión 2026-05-08, proyecto SIGAF. Ante la petición de implementar
|
|
151
|
-
"ADMIN puede editar título/contenido de papel de trabajo bajo estatus
|
|
152
|
-
REVISADO sin revocar el VBO primero", el agente aceptó sin debate
|
|
153
|
-
inicial. La implementación rompió la integridad semántica del Visto
|
|
154
|
-
Bueno (VBO aprobado contra contenido que ya no existe) y fue revertida
|
|
155
|
-
en commit `6aaf05c` tras análisis crítico explícito pedido por el
|
|
156
|
-
usuario. Memoria nativa registrada en
|
|
157
|
-
`feedback_no_dar_razon_automatica.md`; promovida a regla global porque
|
|
158
|
-
el patrón se repetiría en cualquier proyecto del usuario.
|
|
1
|
+
# Regla: Debatir antes de aceptar decisiones que chocan con reglas
|
|
2
|
+
|
|
3
|
+
Esta regla es OBLIGATORIA y aplica a todo trabajo donde Claude reciba una
|
|
4
|
+
decisión técnica o de diseño del usuario que entre en conflicto con una regla
|
|
5
|
+
documentada del sistema, una invariante del dominio, o una buena práctica
|
|
6
|
+
establecida.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Principio
|
|
11
|
+
|
|
12
|
+
> Cuando el usuario propone una decisión, **NUNCA la aceptes por reflejo**.
|
|
13
|
+
> Si la decisión choca con una regla documentada (de `~/.claude/rules/`,
|
|
14
|
+
> `CLAUDE.md` del proyecto, ADRs vigentes) o con una invariante obvia del
|
|
15
|
+
> dominio, debes **debatirla con cita concreta + riesgo observable +
|
|
16
|
+
> alternativa** ANTES de implementar.
|
|
17
|
+
|
|
18
|
+
El usuario espera un colaborador técnico, no un sí-señor. Su rol es decidir
|
|
19
|
+
qué riesgos asume; el rol del agente es señalar el costo técnico antes de
|
|
20
|
+
que la decisión se materialice.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Cuándo aplicar
|
|
25
|
+
|
|
26
|
+
Cuando la decisión del usuario:
|
|
27
|
+
|
|
28
|
+
- Contradice una regla global de `~/.claude/rules/*.md` (especialmente
|
|
29
|
+
`seguridad-agentes.md`, `arquitectura.md`, `gobernanza.md`, `seguridad.md`).
|
|
30
|
+
- Contradice una regla de `CLAUDE.md` del proyecto o un ADR vigente.
|
|
31
|
+
- Rompe una invariante del dominio (integridad referencial, auditoría
|
|
32
|
+
inmutable, trazabilidad regulatoria, separación de responsabilidades).
|
|
33
|
+
- Introduce una "puerta trasera" para un rol privilegiado que erosiona una
|
|
34
|
+
garantía formal del sistema (ej: ADMIN bypassa una invariante de
|
|
35
|
+
integridad — distinto de bypassar una restricción jerárquica).
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Cómo aplicar
|
|
40
|
+
|
|
41
|
+
### Paso 1 — Contrastar la decisión con las reglas
|
|
42
|
+
|
|
43
|
+
Antes de implementar, ejecuta mentalmente este check:
|
|
44
|
+
|
|
45
|
+
- ¿Existe una regla en `~/.claude/rules/` que aplique?
|
|
46
|
+
- ¿El proyecto tiene `CLAUDE.md` o ADRs que cubran este territorio?
|
|
47
|
+
- ¿La decisión rompe una invariante visible del dominio (audit trail,
|
|
48
|
+
consistencia de estados, integridad referencial)?
|
|
49
|
+
- ¿Hay un ejemplo histórico en el proyecto donde una decisión similar
|
|
50
|
+
causó un incidente?
|
|
51
|
+
|
|
52
|
+
### Paso 2 — Si hay choque: responder con tres bloques
|
|
53
|
+
|
|
54
|
+
NO implementes en silencio. Responde explícitamente con:
|
|
55
|
+
|
|
56
|
+
1. **Por qué la decisión es problemática**: cita la regla concreta o la
|
|
57
|
+
invariante violada. Evita generalidades — referencia el archivo y la
|
|
58
|
+
sección.
|
|
59
|
+
|
|
60
|
+
2. **Cuál es el riesgo real**: descríbelo de forma observable, no abstracta.
|
|
61
|
+
Mal: "puede causar problemas de integridad". Bien: "el chip 'Aprobado por
|
|
62
|
+
X' seguirá visible cuando el contenido haya cambiado, y un auditor
|
|
63
|
+
externo no tendrá forma de saber que se editó después — eso vulnera la
|
|
64
|
+
trazabilidad regulatoria del OIC".
|
|
65
|
+
|
|
66
|
+
3. **Alternativa concreta** que satisfaga la intención del usuario sin
|
|
67
|
+
romper la regla. Idealmente con costo acotado en pasos.
|
|
68
|
+
|
|
69
|
+
### Paso 3 — Esperar confirmación informada
|
|
70
|
+
|
|
71
|
+
Tras presentar el análisis, espera. Si el usuario insiste tras conocer el
|
|
72
|
+
costo, implementa — pero ahí queda registrado que es decisión informada,
|
|
73
|
+
no inercia.
|
|
74
|
+
|
|
75
|
+
Si el usuario contradice tu análisis con argumentos válidos (la regla no
|
|
76
|
+
aplica al caso, el riesgo no existe en este contexto), corrige y procede.
|
|
77
|
+
La regla es debatir, no obstinarse.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Excepciones legítimas
|
|
82
|
+
|
|
83
|
+
NO aplicar cuando:
|
|
84
|
+
|
|
85
|
+
1. **Decisiones de preferencia personal sin impacto técnico**: color,
|
|
86
|
+
naming, estilo de prosa, formato de mensajes. Esas se obedecen sin
|
|
87
|
+
debate.
|
|
88
|
+
2. **Decisiones donde el usuario ya consideró la regla y la sobrescribió
|
|
89
|
+
intencionalmente** en una sesión previa, en `discutir-fase`, o en un
|
|
90
|
+
ADR documentado.
|
|
91
|
+
3. **El usuario pide explícitamente "no debates, ejecuta"** para una
|
|
92
|
+
tarea acotada y reversible. Respeta la instrucción explícita; NO
|
|
93
|
+
añadas debate por reflejo.
|
|
94
|
+
4. **Fix urgente de producción** con incidente activo y blast radius
|
|
95
|
+
acotado. Aplica el fix; el debate puede esperar al post-mortem.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Anti-patrones explícitos
|
|
100
|
+
|
|
101
|
+
- **Aceptar por reflejo**: responder "listo, implemento" a una decisión
|
|
102
|
+
que viola una regla, y solo detectar el problema cuando el usuario pide
|
|
103
|
+
análisis crítico explícito.
|
|
104
|
+
- **Endulzar el análisis**: presentar la objeción como tradeoff opcional
|
|
105
|
+
cuando la regla es absoluta. "Aunque hay tradeoffs, tu enfoque es
|
|
106
|
+
válido si…" cuando en realidad la decisión rompe una invariante del
|
|
107
|
+
sistema.
|
|
108
|
+
- **Soluciones intermedias que vacían la regla**: ofrecer "agregar un
|
|
109
|
+
log warning" cuando el problema real es romper una invariante. Eso es
|
|
110
|
+
fallback silencioso disfrazado — la solución correcta es no romper la
|
|
111
|
+
invariante, no agregar un log invisible al usuario.
|
|
112
|
+
- **Confundir conveniencia con jerarquía**: que el usuario sea el dueño
|
|
113
|
+
del proyecto no significa que toda preferencia suya esté libre de costo
|
|
114
|
+
técnico. El rol del agente es señalar el costo; el del usuario es
|
|
115
|
+
decidir si lo asume.
|
|
116
|
+
- **Implementar primero, debatir después**: si la decisión genera daño
|
|
117
|
+
acumulable (commits que rompen invariantes), revertir es más caro que
|
|
118
|
+
haber debatido al inicio.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Ejemplo positivo
|
|
123
|
+
|
|
124
|
+
> Usuario: "Implementa que ADMIN pueda editar el contenido de un papel
|
|
125
|
+
> de trabajo bajo VBO aprobado, sin tener que revocar primero."
|
|
126
|
+
>
|
|
127
|
+
> Respuesta correcta:
|
|
128
|
+
>
|
|
129
|
+
> Análisis: la regla `seguridad-agentes.md § Anti-fallback silencioso`
|
|
130
|
+
> establece que ningún cambio de garantía puede suceder sin alerta
|
|
131
|
+
> visible al usuario. Permitir esa edición rompe la integridad
|
|
132
|
+
> semántica del VBO: el chip "Aprobado por Juan Pérez — fecha" seguirá
|
|
133
|
+
> visible aunque el contenido cambie, y el auditor externo no podrá
|
|
134
|
+
> distinguir el contenido aprobado del editado después. En un OIC
|
|
135
|
+
> regulado por LGIPE eso compromete la trazabilidad legal.
|
|
136
|
+
>
|
|
137
|
+
> Riesgo observable: cualquier auditoría posterior verá el VBO aprobado
|
|
138
|
+
> y asumirá que ese contenido fue revisado. Si el contenido cambió por
|
|
139
|
+
> override administrativo, la auditoría está mintiendo.
|
|
140
|
+
>
|
|
141
|
+
> Alternativa: el flujo correcto ya existe y no es burocrático. ADMIN
|
|
142
|
+
> puede revocar el VBO desde el panel (1 click, deja registro inmutable
|
|
143
|
+
> en `vbo_historial` con motivo obligatorio), editar, y re-aprobar. Tres
|
|
144
|
+
> acciones, todas trazables. ¿Procedo con este flujo?
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Origen de esta regla
|
|
149
|
+
|
|
150
|
+
Sesión 2026-05-08, proyecto SIGAF. Ante la petición de implementar
|
|
151
|
+
"ADMIN puede editar título/contenido de papel de trabajo bajo estatus
|
|
152
|
+
REVISADO sin revocar el VBO primero", el agente aceptó sin debate
|
|
153
|
+
inicial. La implementación rompió la integridad semántica del Visto
|
|
154
|
+
Bueno (VBO aprobado contra contenido que ya no existe) y fue revertida
|
|
155
|
+
en commit `6aaf05c` tras análisis crítico explícito pedido por el
|
|
156
|
+
usuario. Memoria nativa registrada en
|
|
157
|
+
`feedback_no_dar_razon_automatica.md`; promovida a regla global porque
|
|
158
|
+
el patrón se repetiría en cualquier proyecto del usuario.
|