@saulwade/swl-ses 2.3.0 → 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.
Files changed (303) hide show
  1. package/CLAUDE.md +47 -6
  2. package/README.md +1 -1
  3. package/agentes/accesibilidad-wcag-swl.md +690 -690
  4. package/agentes/arquitecto-swl.md +267 -267
  5. package/agentes/auto-evolucion-swl.md +908 -908
  6. package/agentes/backend-api-swl.md +472 -472
  7. package/agentes/backend-csharp-swl.md +420 -420
  8. package/agentes/backend-go-swl.md +390 -390
  9. package/agentes/backend-java-swl.md +281 -281
  10. package/agentes/backend-node-swl.md +479 -479
  11. package/agentes/backend-python-swl.md +605 -605
  12. package/agentes/backend-rust-swl.md +364 -364
  13. package/agentes/backend-workers-swl.md +482 -482
  14. package/agentes/cloud-infra-swl.md +509 -509
  15. package/agentes/consolidador-swl.md +541 -541
  16. package/agentes/datos-swl.md +605 -605
  17. package/agentes/depurador-swl.md +352 -352
  18. package/agentes/devops-ci-swl.md +400 -400
  19. package/agentes/disenador-ui-swl.md +569 -569
  20. package/agentes/documentador-swl.md +345 -345
  21. package/agentes/frontend-angular-swl.md +621 -621
  22. package/agentes/frontend-css-swl.md +716 -716
  23. package/agentes/frontend-react-swl.md +692 -692
  24. package/agentes/frontend-swl.md +496 -496
  25. package/agentes/frontend-tailwind-swl.md +826 -826
  26. package/agentes/gh-fix-ci-swl.md +2 -2
  27. package/agentes/implementador-swl.md +328 -328
  28. package/agentes/investigador-swl.md +432 -432
  29. package/agentes/investigador-ux-swl.md +505 -505
  30. package/agentes/llm-apps-swl.md +278 -278
  31. package/agentes/migrador-swl.md +442 -442
  32. package/agentes/mobile-android-swl.md +511 -511
  33. package/agentes/mobile-cross-swl.md +541 -541
  34. package/agentes/mobile-ios-swl.md +502 -502
  35. package/agentes/mobile-testing-swl.md +302 -302
  36. package/agentes/nemesis-auditor-swl.md +285 -285
  37. package/agentes/notificador-swl.md +918 -918
  38. package/agentes/observabilidad-swl.md +438 -438
  39. package/agentes/orquestador-swl.md +1026 -1026
  40. package/agentes/pagos-swl.md +310 -310
  41. package/agentes/perfilador-usuario-swl.md +321 -321
  42. package/agentes/planificador-swl.md +399 -399
  43. package/agentes/producto-prd-swl.md +589 -589
  44. package/agentes/red-team-swl.md +1 -1
  45. package/agentes/release-manager-swl.md +590 -590
  46. package/agentes/rendimiento-swl.md +713 -713
  47. package/agentes/resolutor-build-swl.md +245 -245
  48. package/agentes/revisor-angular-swl.md +278 -278
  49. package/agentes/revisor-codigo-swl.md +505 -505
  50. package/agentes/revisor-csharp-swl.md +264 -264
  51. package/agentes/revisor-go-swl.md +259 -259
  52. package/agentes/revisor-java-swl.md +257 -257
  53. package/agentes/revisor-kotlin-swl.md +273 -273
  54. package/agentes/revisor-nextjs-swl.md +281 -281
  55. package/agentes/revisor-php-swl.md +271 -271
  56. package/agentes/revisor-react-swl.md +278 -278
  57. package/agentes/revisor-rust-swl.md +346 -346
  58. package/agentes/revisor-seguridad-swl.md +399 -399
  59. package/agentes/revisor-swift-swl.md +268 -268
  60. package/agentes/revisor-typescript-swl.md +346 -346
  61. package/agentes/sre-swl.md +291 -291
  62. package/agentes/tdd-qa-swl.md +393 -393
  63. package/comandos/swl/briefing.md +119 -119
  64. package/comandos/swl/contribuir.md +233 -233
  65. package/comandos/swl/predecir.md +139 -139
  66. package/comandos/swl/sesiones.md +1 -1
  67. package/gateway/agent-executor.js +1 -1
  68. package/gateway/lib/event-channel.js +191 -191
  69. package/habilidades/agent-deep-links/SKILL.md +148 -148
  70. package/habilidades/agentes-como-servicio/SKILL.md +2 -2
  71. package/habilidades/angular-moderno/SKILL.md +20 -1
  72. package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -276
  73. package/habilidades/backend-async-postgres-testing/SKILL.md +215 -215
  74. package/habilidades/backend-error-design/SKILL.md +221 -221
  75. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  76. package/habilidades/benchmark-memoria/SKILL.md +186 -186
  77. package/habilidades/calidad-anti-patrones-universales/SKILL.md +368 -368
  78. package/habilidades/calidad-contract-testing/SKILL.md +165 -165
  79. package/habilidades/calidad-mutation-testing/SKILL.md +170 -170
  80. package/habilidades/changelog-generator/scripts/parse-commits.js +367 -367
  81. package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
  82. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  83. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  84. package/habilidades/drift-detection/SKILL.md +179 -179
  85. package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
  86. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +1 -1
  87. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
  88. package/habilidades/eval-framework/SKILL.md +212 -212
  89. package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
  90. package/habilidades/harness-claude-code/recursos/disciplina-harness-regla.md +252 -252
  91. package/habilidades/legacy-code-rescue/SKILL.md +267 -267
  92. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  93. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  94. package/habilidades/perfil-usuario/SKILL.md +200 -200
  95. package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
  96. package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -255
  97. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
  98. package/habilidades/proceso-debate-adversarial/recursos/personas.md +105 -105
  99. package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
  100. package/habilidades/proceso-dynamic-workflows/SKILL.md +138 -138
  101. package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
  102. package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
  103. package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
  104. package/habilidades/proceso-modular-split/SKILL.md +256 -256
  105. package/habilidades/prompt-engineering/recursos/patrones-avanzados.md +2 -2
  106. package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
  107. package/habilidades/structured-outputs/SKILL.md +2 -2
  108. package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
  109. package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
  110. package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
  111. package/habilidades/swl-dashboard/SKILL.md +2 -2
  112. package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
  113. package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +1 -1
  114. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +1 -1
  115. package/hooks/ciclo-evolucion-subagente.js +26 -26
  116. package/hooks/ciclo-evolucion.js +26 -26
  117. package/hooks/claudemd-bloat-detector.js +161 -161
  118. package/hooks/claudemd-duplicacion-detector.js +170 -170
  119. package/hooks/contexto-iteracion.js +144 -144
  120. package/hooks/guardrail-modelo.js +1 -1
  121. package/hooks/lib/agent-routing.js +107 -107
  122. package/hooks/lib/auto-consolidator.js +335 -335
  123. package/hooks/lib/autonomia.js +208 -208
  124. package/hooks/lib/ciclo-evolucion.js +47 -47
  125. package/hooks/lib/deep-links.js +185 -185
  126. package/hooks/lib/error-classifier.js +308 -308
  127. package/hooks/lib/etapa-auto-evolucion.js +701 -701
  128. package/hooks/lib/etapa-metricas.js +388 -388
  129. package/hooks/lib/etapa-perfil-usuario.js +376 -376
  130. package/hooks/lib/loop-telemetry.js +321 -321
  131. package/hooks/lib/merkle-audit.js +96 -96
  132. package/hooks/lib/model-router.js +2 -2
  133. package/hooks/lib/propose-step.js +358 -358
  134. package/hooks/lib/provenance-tracker.js +191 -191
  135. package/hooks/lib/rate-limit-tracker.js +253 -253
  136. package/hooks/lib/resource-quota.js +122 -122
  137. package/hooks/lib/retry-jitter.js +165 -165
  138. package/hooks/lib/security-net.js +201 -201
  139. package/hooks/lib/skill-auditor.js +588 -588
  140. package/hooks/lib/sync-status.js +228 -228
  141. package/hooks/lib/taint-tracker.js +107 -107
  142. package/hooks/lib/text-similarity.js +241 -241
  143. package/hooks/lib/token-estimator.js +1 -0
  144. package/hooks/lib/toon-compressor.js +245 -245
  145. package/hooks/lib/usage-model.js +1 -1
  146. package/hooks/linea-estado.js +2 -0
  147. package/hooks/registro-turnos.js +209 -209
  148. package/hooks/session-briefing.js +98 -98
  149. package/hooks/spec-gate.js +211 -211
  150. package/hooks/sugerir-regenerar-inventario.js +170 -170
  151. package/hooks/tdd-gate.js +241 -241
  152. package/hooks/telemetria-skill-routing.js +100 -100
  153. package/hooks/validar-formato-post-subagente.js +140 -140
  154. package/hooks/validar-intent-spec.js +242 -242
  155. package/hooks/validar-memoria-hook.js +218 -218
  156. package/hooks/validar-planning-paths.js +134 -134
  157. package/instintos/autonomia.yaml +27 -27
  158. package/instintos/prompt-appendices.yaml +57 -57
  159. package/llms.txt +29 -29
  160. package/manifiestos/agent-output-schemas.json +57 -57
  161. package/manifiestos/canonical-hashes.json +2291 -1964
  162. package/manifiestos/planning-paths.json +44 -44
  163. package/manifiestos/skills-lock.json +1282 -1282
  164. package/package.json +1 -1
  165. package/plantillas/auditor-veto-template.md +105 -105
  166. package/plantillas/github-workflows/README.md +47 -47
  167. package/plantillas/github-workflows/release-please.yml +44 -44
  168. package/plantillas/github-workflows/swl-ci.yml +107 -107
  169. package/plantillas/github-workflows/swl-security.yml +51 -51
  170. package/plugin.json +1 -1
  171. package/reglas/accesibilidad.md +10 -10
  172. package/reglas/analisis-previo-tareas-grandes.md +172 -172
  173. package/reglas/api-diseno.md +9 -9
  174. package/reglas/arreglar-al-detectar.md +240 -240
  175. package/reglas/auditorias-documentales-estructurales.md +7 -7
  176. package/reglas/cloud-infra.md +8 -8
  177. package/reglas/consultar-vault-primero.md +195 -195
  178. package/reglas/debatir-antes-de-aceptar.md +158 -158
  179. package/reglas/fragmentos-compartidos.md +183 -183
  180. package/reglas/hooks.md +6 -6
  181. package/reglas/intent-engineering.md +218 -218
  182. package/reglas/markitdown.md +8 -8
  183. package/reglas/monitor-ci.md +309 -309
  184. package/reglas/patrones.md +6 -6
  185. package/reglas/sesiones-paralelas.md +180 -180
  186. package/reglas/sin-duplicacion-reglas-globales.md +182 -182
  187. package/reglas/skills-estandar.md +6 -6
  188. package/reglas/testing.md +7 -7
  189. package/reglas/tests-cleanup.md +224 -224
  190. package/reglas/usar-code-review-graph.md +155 -155
  191. package/reglas/usar-context7.md +226 -226
  192. package/reglas/verificar-citas-normativas.md +548 -548
  193. package/schemas/agent-frontmatter.schema.json +3 -3
  194. package/schemas/agent-message.schema.json +73 -73
  195. package/schemas/agent-output-implementacion.schema.json +114 -114
  196. package/schemas/agent-output-planificacion.schema.json +150 -150
  197. package/schemas/agent-output-review.schema.json +98 -98
  198. package/schemas/diary-entry.schema.json +112 -112
  199. package/schemas/hook-profiles.schema.json +54 -54
  200. package/schemas/hooks-config.schema.json +89 -89
  201. package/schemas/modulos.schema.json +38 -38
  202. package/schemas/perfiles.schema.json +36 -36
  203. package/schemas/plugin.schema.json +77 -77
  204. package/schemas/skill-evals.schema.json +119 -119
  205. package/schemas/skill-frontmatter.schema.json +245 -245
  206. package/scripts/audit-tools/audit-history.js +330 -330
  207. package/scripts/audit-tools/bundle-tracker.js +290 -290
  208. package/scripts/audit-tools/canary-monitor.js +352 -352
  209. package/scripts/audit-tools/code-profiler.js +605 -605
  210. package/scripts/audit-tools/dep-doctor.js +320 -320
  211. package/scripts/audit-tools/env-validator.js +206 -206
  212. package/scripts/audit-tools/lib/fs-walk.js +48 -48
  213. package/scripts/audit-tools/lib/output.js +23 -23
  214. package/scripts/audit-tools/migration-checker.js +392 -392
  215. package/scripts/audit-tools/pentest-scanner.js +1436 -1436
  216. package/scripts/benchmark-memoria.js +167 -167
  217. package/scripts/cli/aprobar-plan.js +73 -73
  218. package/scripts/cli/briefing.js +23 -23
  219. package/scripts/cli/ciclo-evolucion.js +26 -26
  220. package/scripts/cli/configurar-ci.js +40 -40
  221. package/scripts/cli/derivar-feature-list.js +25 -25
  222. package/scripts/cli/detectar-host.js +27 -27
  223. package/scripts/cli/diary-entry.js +69 -69
  224. package/scripts/cli/execution-state.js +18 -18
  225. package/scripts/cli/gateway-notify.js +41 -41
  226. package/scripts/cli/liberar-fase.js +42 -42
  227. package/scripts/cli/loop-telemetry.js +125 -125
  228. package/scripts/cli/mark-evolved.js +56 -56
  229. package/scripts/cli/metricas-dora.js +26 -26
  230. package/scripts/cli/near-duplicate.js +55 -55
  231. package/scripts/cli/notificaciones.js +123 -123
  232. package/scripts/cli/propose-step.js +29 -29
  233. package/scripts/cli/schedule-parse.js +19 -19
  234. package/scripts/cli/sugerir-modelo.js +20 -20
  235. package/scripts/cli/verificar-plan.js +36 -36
  236. package/scripts/cli/verificar-trazabilidad.js +35 -35
  237. package/scripts/configurar-branch-protection.js +418 -418
  238. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  239. package/scripts/field-report.js +199 -199
  240. package/scripts/generar-checklists-consolidados.js +273 -273
  241. package/scripts/generar-matriz-lenguajes.js +271 -271
  242. package/scripts/lib/artefactos-python.js +43 -43
  243. package/scripts/lib/auditar-invocaciones-comandos.js +104 -104
  244. package/scripts/lib/benchmark-metrics.js +160 -160
  245. package/scripts/lib/budget-enforcer.js +252 -252
  246. package/scripts/lib/ci-reader.js +193 -193
  247. package/scripts/lib/claude-sessions.js +1 -0
  248. package/scripts/lib/configurar-ci.js +380 -380
  249. package/scripts/lib/contadores-inventario.js +217 -217
  250. package/scripts/lib/detectar-host-swl.js +175 -175
  251. package/scripts/lib/detectar-stack-detallado.js +307 -307
  252. package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
  253. package/scripts/lib/detector-reglas-duplicadas.js +220 -220
  254. package/scripts/lib/diary-entry.js +234 -234
  255. package/scripts/lib/eval-metrics-store.js +218 -218
  256. package/scripts/lib/eval-quality.js +171 -171
  257. package/scripts/lib/eval-schemas.js +144 -144
  258. package/scripts/lib/eval-self-correct.js +106 -106
  259. package/scripts/lib/eval-validator.js +185 -185
  260. package/scripts/lib/evidencia-release.js +322 -322
  261. package/scripts/lib/expandir-targets.js +71 -71
  262. package/scripts/lib/gate-hooks-requires.js +249 -249
  263. package/scripts/lib/gate-licencias.js +212 -212
  264. package/scripts/lib/git-metricas.js +257 -257
  265. package/scripts/lib/jaccard-similarity.js +98 -98
  266. package/scripts/lib/longmemeval-runner.js +125 -125
  267. package/scripts/lib/metricas-dora.js +204 -204
  268. package/scripts/lib/npm-version.js +261 -261
  269. package/scripts/lib/paquetes-conocidos.js +50 -50
  270. package/scripts/lib/plan-lock.js +275 -275
  271. package/scripts/lib/pr-analyzer.js +399 -399
  272. package/scripts/lib/prompt-builder.js +264 -264
  273. package/scripts/lib/reglas-globales-conocidas.json +180 -180
  274. package/scripts/lib/resolver-plan-fase.js +37 -37
  275. package/scripts/lib/rrf-fusion.js +175 -175
  276. package/scripts/lib/schema-version.js +164 -164
  277. package/scripts/lib/scoring-instintos.js +277 -277
  278. package/scripts/lib/semantic-search.js +252 -252
  279. package/scripts/lib/toml-merge.js +204 -204
  280. package/scripts/lib/tool-cost-analyzer.js +1 -0
  281. package/scripts/limpiar-artefactos-python.js +131 -131
  282. package/scripts/mcp-server/auth.js +105 -105
  283. package/scripts/mcp-server/cache.js +106 -106
  284. package/scripts/migrar-csv-a-array.js +168 -168
  285. package/scripts/migrar-fase-dominio.js +200 -200
  286. package/scripts/publicar.js +497 -497
  287. package/scripts/run-eval.js +141 -141
  288. package/scripts/tui/componentes/selector-multi.js +189 -189
  289. package/scripts/tui/componentes/selector-unico.js +158 -158
  290. package/scripts/tui/ejecutores.js +375 -375
  291. package/scripts/tui/index.js +162 -162
  292. package/scripts/tui/lib/colores.js +129 -129
  293. package/scripts/tui/lib/render.js +264 -264
  294. package/scripts/tui/lib/teclas.js +113 -113
  295. package/scripts/tui/pantallas/inspect.js +173 -173
  296. package/scripts/tui/pantallas/install-wizard.js +334 -334
  297. package/scripts/tui/pantallas/menu-principal.js +52 -52
  298. package/scripts/tui/pantallas/progreso.js +274 -274
  299. package/scripts/tui/pantallas/resumen.js +132 -132
  300. package/scripts/tui/pantallas/uninstall-wizard.js +208 -208
  301. package/scripts/tui/pantallas/update-wizard.js +232 -232
  302. package/scripts/tui/pantallas/welcome.js +187 -187
  303. package/scripts/validar-userland-vacio.js +110 -110
@@ -1,240 +1,240 @@
1
- # Regla: Detectar → Informar → Arreglar en el mismo turno
2
-
3
- Esta regla es OBLIGATORIA y aplica a todo trabajo que Claude ejecute en cualquier
4
- proyecto del usuario. Consolida cuatro feedbacks repetidos en sesiones distintas
5
- entre 2026-04-23 y 2026-05-03 con la misma señal: el usuario rechaza entregas
6
- parciales, deuda silenciosa y bypass de errores ajenos.
7
-
8
- ---
9
-
10
- ## Principio
11
-
12
- > Cuando detectes un error, bug, inconsistencia, anomalía o problema secundario
13
- > durante la ejecución de cualquier trabajo, **informa al usuario brevemente Y
14
- > procede a resolverlo en el mismo turno**. Nunca lo dejes como pendiente, deuda
15
- > implícita, "ya estaba antes" ni "fuera del scope".
16
-
17
- Esta regla resume cuatro feedbacks separados que el usuario reforzó como mismo
18
- principio:
19
-
20
- - "No me gustan las cosas a medias" — rechazo de entregas parciales (2026-04-23).
21
- - "Cuando detectes errores, bugs, inconsistencias y demás informes al usuario y
22
- procedas a solucionar y/o arreglar, además nunca debes dejar pendientes, ni
23
- diferir" (2026-04-30).
24
- - "Resuelve los test que fallan, no bypass" — al detectar intento de excluir
25
- tests del glob para evitar arreglarlos (2026-04-30).
26
- - "Si el job CI falla, hay que arreglarlo todo" — al ver tests rotos
27
- presentados como "preexistentes, no críticos" (2026-05-03).
28
-
29
- ---
30
-
31
- ## Cómo aplicar
32
-
33
- ### Al detectar un problema secundario durante el trabajo principal
34
-
35
- - Reportarlo brevemente al usuario: qué se detectó, dónde, severidad.
36
- - Resolverlo en el mismo turno o en commit separado de la misma sesión.
37
- - NUNCA ofrecer "lo documento como deuda" como primera opción.
38
- - NUNCA usar frases como "son tests con mocks pre-existentes que ya estaban rotos",
39
- "esto estaba antes", "no es del scope inmediato" para evitar el trabajo.
40
-
41
- ### Al ejecutar tests, builds, lints, validadores
42
-
43
- - Si hay failures, listarlos todos y atacarlos todos.
44
- - No distinguir "bugs reales" vs "tests con mocks mal configurados" como excusa
45
- para arreglar solo unos. Si están rotos, arreglarlos.
46
- - Excepción: bugs que requieran decisión arquitectural ambigua del usuario —
47
- pedir esa decisión explícitamente, no diferir como "tu decisión".
48
-
49
- ### Al modificar código adyacente
50
-
51
- - Si tocas líneas con problemas adyacentes (None checks faltantes, schemas
52
- obsoletos, mocks inconsistentes, contadores stale, paths inválidos),
53
- arreglarlos en el mismo commit o en commit separado de la misma sesión.
54
-
55
- ### Al refactorizar
56
-
57
- - Si encuentras código adyacente que se quedó obsoleto por un refactor previo,
58
- actualizarlo. No dejar deuda residual.
59
-
60
- ### Al detectar un error ajeno al trabajo actual
61
-
62
- - NO bypassear (excluir tests del glob, comentar checks, `|| true`,
63
- downgradear a warning, ignorar).
64
- - Resolver de raíz o, si requiere decisión, abrir explícitamente la decisión
65
- con el usuario antes de bypassear.
66
- - El default es resolver, no esquivar.
67
-
68
- ### Al presentar planes con sub-tareas
69
-
70
- - Dar primero la opción "todo completo" con esfuerzo estimado.
71
- - Si por capacity hay que partir el trabajo, hacerlo explícito con razón
72
- concreta: "esta sesión cubre 3.1 a 3.4; la 3.5 va en commit separado por
73
- X razón concreta", no por preferencia genérica.
74
-
75
- ### Al recomendar diferir un patrón o feature
76
-
77
- - Redactar **simultáneamente** el ítem de deuda formal con criterio de disparo
78
- verificable. La oferta "lo dejo apuntado" sin entrada formal no es aceptable.
79
- - Distinción de categorías:
80
- - **DT (deuda técnica)** con plan de cierre.
81
- - **DA (decisión arquitectural)** con trigger verificable.
82
- - **OP (pendiente operacional)** con responsable.
83
- - "Mediano plazo / Q3 / cuando aparezca demanda" sin trigger verificable es
84
- deuda silenciosa. Convertir a DA formal en mismo commit.
85
- - Trigger verificable significa condición observable: "≥2 clientes distintos
86
- reportan", "p95 > 60s en producción documentado", "uso > N veces/mes",
87
- no "cuando sea relevante" o "más adelante".
88
-
89
- ### Hallazgos colaterales con blast radius alto — patrón Hallazgo A/B/C
90
-
91
- Durante el trabajo principal puedes detectar un problema secundario cuyo fix
92
- **no cabe** en la regla general "detectar → informar → arreglar en mismo
93
- turno" porque su blast radius es alto: toca infra compartida, requiere
94
- downtime, modifica contratos públicos, exige decisión arquitectural, o su
95
- remediación dura más que el trabajo principal en curso.
96
-
97
- Aplicar el catálogo de tres opciones explícitas — NUNCA mezclar el fix con
98
- el trabajo principal sin etiquetarlo y NUNCA dejarlo como deuda silenciosa.
99
-
100
- #### Definición operacional
101
-
102
- Un hallazgo colateral cumple **al menos uno** de estos atributos:
103
-
104
- - Su fix toca archivos fuera del scope del trabajo principal (>3 archivos
105
- no relacionados con la tarea actual).
106
- - Requiere operación destructiva (`git filter-branch`, `git filter-repo`,
107
- drop de tabla, rotación de credencial productiva).
108
- - Modifica configuración de infra compartida (CI/CD, branch protection,
109
- permisos de repo, secrets de organización).
110
- - Exige decisión arquitectural ambigua que el agente no puede tomar solo.
111
- - Su remediación dura más que el commit actual del trabajo principal.
112
-
113
- Si NO cumple ninguno de estos atributos, NO es Hallazgo A/B/C — aplicar la
114
- regla general (arreglar en mismo turno).
115
-
116
- #### Las tres opciones explícitas
117
-
118
- | Opción | Cuándo | Acción |
119
- |---|---|---|
120
- | **Hallazgo A — Resolver ahora** | Fix < 30 min, reversible con `git revert`, sin blast radius en infra compartida, sin decisión arquitectural | Pausar trabajo principal, fix en commit separado etiquetado, retomar |
121
- | **Hallazgo B — DT formal con trigger verificable** | Fix con blast radius alto pero NO bloqueante para el trabajo principal. Tiene criterio observable que define cuándo cerrarlo | Redactar entry en `.planning/DEUDA-TECNICA.md` con ID, trigger verificable, plan de cierre paso a paso. Continuar trabajo principal |
122
- | **Hallazgo C — Escalar al usuario** | Fix excede autorización del agente: requiere decisión arquitectural, operación destructiva irreversible, o modifica contratos productivos | Pausar trabajo principal, reportar al usuario con 3 opciones concretas y recomendación, esperar decisión explícita |
123
-
124
- #### Reglas duras
125
-
126
- - **Reportar siempre, independientemente de la opción elegida**: el usuario
127
- ve el hallazgo en el mismo turno, no se entera en el commit posterior.
128
- - **DT formal NO es "lo apunto y veremos"**: requiere ID (`DT-NOMBRE-X`),
129
- trigger verificable observable, plan de cierre con pasos concretos, y
130
- entry visible en `.planning/DEUDA-TECNICA.md` commiteada en mismo turno.
131
- - **NUNCA degradar Hallazgo C a Hallazgo B sin pedirlo**: una decisión
132
- arquitectural disfrazada de DT es deuda silenciosa con cara de proceso.
133
- - **NUNCA "arreglar como parte del trabajo principal" un Hallazgo B/C
134
- sin etiquetarlo**: aunque el fix sea pequeño, si su blast radius es alto
135
- el commit debe ser separado con mensaje explícito ("colateral: cierra
136
- DT-X" o "colateral: aplica fix urgente fuera de scope original").
137
-
138
- #### Ejemplo validado (SIGAF, sesión 2026-05-20)
139
-
140
- Durante implementación de pipeline DevSecOps (gates gitleaks + SAST + deps
141
- + containers), el agente detectó tres hallazgos colaterales:
142
-
143
- - **Hallazgo A — Validator JWT con frozenset + regex**: bug detectado en
144
- `backend/app/core/config.py` donde `_CENTINELA` hardcodeado divergía del
145
- `.env.example` real. Fix < 30 min, reversible, alcance acotado a
146
- validators. Aplicado en commit separado mismo turno + 8 tests de regresión.
147
-
148
- - **Hallazgo B — DT-GHAS-HABILITAR**: detectado que repo PRIVATE en
149
- organización sin GitHub Advanced Security responde 403 al upload SARIF.
150
- Mitigación inmediata con `continue-on-error: true` en step de upload.
151
- DT formal con trigger verificable: "equipo crece >2 personas, auditoría
152
- externa, o licencia GHAS adquirida". Entry en `.planning/DEUDA-TECNICA.md`
153
- con plan de cierre (eliminar `continue-on-error` cuando GHAS activo).
154
-
155
- - **Hallazgo C — DT-HISTORIAL-ENV**: detectado que commit `203a603` en
156
- historial git contenía `ADMIN_PASSWORD=Admin2026!` (ya rotado, ya en
157
- `.gitignore`, pero presente en `git log -p`). Fix requiere `git
158
- filter-branch` o `git filter-repo` (destructivo, irreversible para
159
- colaboradores con clones locales). El agente escaló al usuario; usuario
160
- respondió "estamos en desarrollo y etapa de pruebas" → degradado a DT
161
- formal con trigger "antes del primer deploy productivo, repo público
162
- o colaborador externo".
163
-
164
- Los tres hallazgos quedaron visibles, etiquetados y con trigger observable.
165
- Ninguno se mezcló silenciosamente con el trabajo principal del pipeline.
166
-
167
- #### Anti-patrones específicos
168
-
169
- - **"Lo arreglo de paso porque ya estoy aquí"**: si el fix tiene blast
170
- radius alto, NO va de paso. Va etiquetado o no va.
171
- - **DT sin trigger verificable**: "cuando sea posible", "más adelante",
172
- "cuando tengamos tiempo" — viola la regla general arriba. Trigger debe
173
- ser condición observable.
174
- - **Reportar Hallazgo C como informativo sin pedir decisión**: si la
175
- decisión requiere autorización del usuario, la respuesta NO es
176
- "documentado para tu consideración" — es "elige A, B o C".
177
- - **Aplicar Hallazgo A descubriendo en medio que era Hallazgo C**: si al
178
- empezar el fix detectas que tiene blast radius mayor del estimado,
179
- detente, revierte el WIP, y re-clasifica. NO terminar "porque ya
180
- empezamos".
181
-
182
- ---
183
-
184
- ## Excepciones legítimas
185
-
186
- NO aplicar la regla al pie de la letra cuando:
187
-
188
- 1. **El fix es ambiguo** — varias opciones razonables sin criterio claro para
189
- elegir. Presentar opciones concretas con la recomendación y esperar
190
- decisión rápida.
191
- 2. **El fix es destructivo** — `rm -rf`, `git reset --hard`, `git push --force`,
192
- eliminar tablas de BD. Esos siguen requiriendo confirmación explícita por
193
- separado, sin importar que el problema esté detectado.
194
- 3. **El fix tiene blast radius alto** — modifica configuración de CI, infra
195
- compartida, contratos públicos de API. Presentar plan, pedir confirmación.
196
- 4. **El bug requiere decisión de producto** — comportamiento esperado ambiguo,
197
- breaking change. Explícito al usuario y esperar.
198
-
199
- En todos los casos: presentar la opción y la recomendación, NO dejar el
200
- problema sin reportar.
201
-
202
- ---
203
-
204
- ## Anti-patrones explícitos
205
-
206
- - "Lo dejo como deuda residual" — sin DT/DA formal con criterio de disparo.
207
- - "Esos tests ya estaban rotos antes" — usado para evitar arreglarlos.
208
- - "No es parte del scope inmediato" — para esquivar un fix obvio.
209
- - "Lo documento y tú decides" — para diferir trabajo claro al usuario.
210
- - "Mediano plazo" sin trigger verificable.
211
- - Excluir tests del glob, comentar checks, `|| true`, downgradear severidad de
212
- un linter — para que el CI deje de fallar sin arreglar la causa.
213
- - Mover archivos a `legacy/` o `deprecated/` sin plan de eliminación con
214
- criterio de disparo.
215
-
216
- ---
217
-
218
- ## Relación con otras reglas
219
-
220
- - `seguridad-agentes.md` — sección "Anti-fallback silencioso y anti-degradación"
221
- cubre el mismo principio aplicado a agentes autónomos. Esta regla lo extiende
222
- al trabajo del usuario.
223
- - `git-workflow.md` — los commits siguen siendo atómicos; arreglar un problema
224
- detectado puede requerir varios commits, no uno solo gigante.
225
- - `pruebas.md` — los tests rotos son violaciones a esta regla. No se mergea
226
- con tests rotos (excepción: tests rotos por decisión de producto en proceso).
227
-
228
- ---
229
-
230
- ## Origen de esta regla
231
-
232
- Consolidada el 2026-05-04 a partir de cuatro feedbacks repetidos del usuario en
233
- memorias nativas de Claude Code de los proyectos sigm, swl-ses y emaia
234
- (2026-04-23 a 2026-05-03). Antes vivía duplicada en 4 archivos de feedback
235
- distintos en 2 de los 3 proyectos. Promovida a regla global para eliminar
236
- duplicación y aplicar uniformemente a todo proyecto del usuario.
237
-
238
- Memoria nativa local correspondiente: redundante tras esta regla; mantener solo
239
- una mención mínima en MEMORY.md de cada proyecto si se desea preservar el rastro
240
- histórico, pero el contenido operativo vive aquí.
1
+ # Regla: Detectar → Informar → Arreglar en el mismo turno
2
+
3
+ Esta regla es OBLIGATORIA y aplica a todo trabajo que Claude ejecute en cualquier
4
+ proyecto del usuario. Consolida cuatro feedbacks repetidos en sesiones distintas
5
+ entre 2026-04-23 y 2026-05-03 con la misma señal: el usuario rechaza entregas
6
+ parciales, deuda silenciosa y bypass de errores ajenos.
7
+
8
+ ---
9
+
10
+ ## Principio
11
+
12
+ > Cuando detectes un error, bug, inconsistencia, anomalía o problema secundario
13
+ > durante la ejecución de cualquier trabajo, **informa al usuario brevemente Y
14
+ > procede a resolverlo en el mismo turno**. Nunca lo dejes como pendiente, deuda
15
+ > implícita, "ya estaba antes" ni "fuera del scope".
16
+
17
+ Esta regla resume cuatro feedbacks separados que el usuario reforzó como mismo
18
+ principio:
19
+
20
+ - "No me gustan las cosas a medias" — rechazo de entregas parciales (2026-04-23).
21
+ - "Cuando detectes errores, bugs, inconsistencias y demás informes al usuario y
22
+ procedas a solucionar y/o arreglar, además nunca debes dejar pendientes, ni
23
+ diferir" (2026-04-30).
24
+ - "Resuelve los test que fallan, no bypass" — al detectar intento de excluir
25
+ tests del glob para evitar arreglarlos (2026-04-30).
26
+ - "Si el job CI falla, hay que arreglarlo todo" — al ver tests rotos
27
+ presentados como "preexistentes, no críticos" (2026-05-03).
28
+
29
+ ---
30
+
31
+ ## Cómo aplicar
32
+
33
+ ### Al detectar un problema secundario durante el trabajo principal
34
+
35
+ - Reportarlo brevemente al usuario: qué se detectó, dónde, severidad.
36
+ - Resolverlo en el mismo turno o en commit separado de la misma sesión.
37
+ - NUNCA ofrecer "lo documento como deuda" como primera opción.
38
+ - NUNCA usar frases como "son tests con mocks pre-existentes que ya estaban rotos",
39
+ "esto estaba antes", "no es del scope inmediato" para evitar el trabajo.
40
+
41
+ ### Al ejecutar tests, builds, lints, validadores
42
+
43
+ - Si hay failures, listarlos todos y atacarlos todos.
44
+ - No distinguir "bugs reales" vs "tests con mocks mal configurados" como excusa
45
+ para arreglar solo unos. Si están rotos, arreglarlos.
46
+ - Excepción: bugs que requieran decisión arquitectural ambigua del usuario —
47
+ pedir esa decisión explícitamente, no diferir como "tu decisión".
48
+
49
+ ### Al modificar código adyacente
50
+
51
+ - Si tocas líneas con problemas adyacentes (None checks faltantes, schemas
52
+ obsoletos, mocks inconsistentes, contadores stale, paths inválidos),
53
+ arreglarlos en el mismo commit o en commit separado de la misma sesión.
54
+
55
+ ### Al refactorizar
56
+
57
+ - Si encuentras código adyacente que se quedó obsoleto por un refactor previo,
58
+ actualizarlo. No dejar deuda residual.
59
+
60
+ ### Al detectar un error ajeno al trabajo actual
61
+
62
+ - NO bypassear (excluir tests del glob, comentar checks, `|| true`,
63
+ downgradear a warning, ignorar).
64
+ - Resolver de raíz o, si requiere decisión, abrir explícitamente la decisión
65
+ con el usuario antes de bypassear.
66
+ - El default es resolver, no esquivar.
67
+
68
+ ### Al presentar planes con sub-tareas
69
+
70
+ - Dar primero la opción "todo completo" con esfuerzo estimado.
71
+ - Si por capacity hay que partir el trabajo, hacerlo explícito con razón
72
+ concreta: "esta sesión cubre 3.1 a 3.4; la 3.5 va en commit separado por
73
+ X razón concreta", no por preferencia genérica.
74
+
75
+ ### Al recomendar diferir un patrón o feature
76
+
77
+ - Redactar **simultáneamente** el ítem de deuda formal con criterio de disparo
78
+ verificable. La oferta "lo dejo apuntado" sin entrada formal no es aceptable.
79
+ - Distinción de categorías:
80
+ - **DT (deuda técnica)** con plan de cierre.
81
+ - **DA (decisión arquitectural)** con trigger verificable.
82
+ - **OP (pendiente operacional)** con responsable.
83
+ - "Mediano plazo / Q3 / cuando aparezca demanda" sin trigger verificable es
84
+ deuda silenciosa. Convertir a DA formal en mismo commit.
85
+ - Trigger verificable significa condición observable: "≥2 clientes distintos
86
+ reportan", "p95 > 60s en producción documentado", "uso > N veces/mes",
87
+ no "cuando sea relevante" o "más adelante".
88
+
89
+ ### Hallazgos colaterales con blast radius alto — patrón Hallazgo A/B/C
90
+
91
+ Durante el trabajo principal puedes detectar un problema secundario cuyo fix
92
+ **no cabe** en la regla general "detectar → informar → arreglar en mismo
93
+ turno" porque su blast radius es alto: toca infra compartida, requiere
94
+ downtime, modifica contratos públicos, exige decisión arquitectural, o su
95
+ remediación dura más que el trabajo principal en curso.
96
+
97
+ Aplicar el catálogo de tres opciones explícitas — NUNCA mezclar el fix con
98
+ el trabajo principal sin etiquetarlo y NUNCA dejarlo como deuda silenciosa.
99
+
100
+ #### Definición operacional
101
+
102
+ Un hallazgo colateral cumple **al menos uno** de estos atributos:
103
+
104
+ - Su fix toca archivos fuera del scope del trabajo principal (>3 archivos
105
+ no relacionados con la tarea actual).
106
+ - Requiere operación destructiva (`git filter-branch`, `git filter-repo`,
107
+ drop de tabla, rotación de credencial productiva).
108
+ - Modifica configuración de infra compartida (CI/CD, branch protection,
109
+ permisos de repo, secrets de organización).
110
+ - Exige decisión arquitectural ambigua que el agente no puede tomar solo.
111
+ - Su remediación dura más que el commit actual del trabajo principal.
112
+
113
+ Si NO cumple ninguno de estos atributos, NO es Hallazgo A/B/C — aplicar la
114
+ regla general (arreglar en mismo turno).
115
+
116
+ #### Las tres opciones explícitas
117
+
118
+ | Opción | Cuándo | Acción |
119
+ |---|---|---|
120
+ | **Hallazgo A — Resolver ahora** | Fix < 30 min, reversible con `git revert`, sin blast radius en infra compartida, sin decisión arquitectural | Pausar trabajo principal, fix en commit separado etiquetado, retomar |
121
+ | **Hallazgo B — DT formal con trigger verificable** | Fix con blast radius alto pero NO bloqueante para el trabajo principal. Tiene criterio observable que define cuándo cerrarlo | Redactar entry en `.planning/DEUDA-TECNICA.md` con ID, trigger verificable, plan de cierre paso a paso. Continuar trabajo principal |
122
+ | **Hallazgo C — Escalar al usuario** | Fix excede autorización del agente: requiere decisión arquitectural, operación destructiva irreversible, o modifica contratos productivos | Pausar trabajo principal, reportar al usuario con 3 opciones concretas y recomendación, esperar decisión explícita |
123
+
124
+ #### Reglas duras
125
+
126
+ - **Reportar siempre, independientemente de la opción elegida**: el usuario
127
+ ve el hallazgo en el mismo turno, no se entera en el commit posterior.
128
+ - **DT formal NO es "lo apunto y veremos"**: requiere ID (`DT-NOMBRE-X`),
129
+ trigger verificable observable, plan de cierre con pasos concretos, y
130
+ entry visible en `.planning/DEUDA-TECNICA.md` commiteada en mismo turno.
131
+ - **NUNCA degradar Hallazgo C a Hallazgo B sin pedirlo**: una decisión
132
+ arquitectural disfrazada de DT es deuda silenciosa con cara de proceso.
133
+ - **NUNCA "arreglar como parte del trabajo principal" un Hallazgo B/C
134
+ sin etiquetarlo**: aunque el fix sea pequeño, si su blast radius es alto
135
+ el commit debe ser separado con mensaje explícito ("colateral: cierra
136
+ DT-X" o "colateral: aplica fix urgente fuera de scope original").
137
+
138
+ #### Ejemplo validado (SIGAF, sesión 2026-05-20)
139
+
140
+ Durante implementación de pipeline DevSecOps (gates gitleaks + SAST + deps
141
+ + containers), el agente detectó tres hallazgos colaterales:
142
+
143
+ - **Hallazgo A — Validator JWT con frozenset + regex**: bug detectado en
144
+ `backend/app/core/config.py` donde `_CENTINELA` hardcodeado divergía del
145
+ `.env.example` real. Fix < 30 min, reversible, alcance acotado a
146
+ validators. Aplicado en commit separado mismo turno + 8 tests de regresión.
147
+
148
+ - **Hallazgo B — DT-GHAS-HABILITAR**: detectado que repo PRIVATE en
149
+ organización sin GitHub Advanced Security responde 403 al upload SARIF.
150
+ Mitigación inmediata con `continue-on-error: true` en step de upload.
151
+ DT formal con trigger verificable: "equipo crece >2 personas, auditoría
152
+ externa, o licencia GHAS adquirida". Entry en `.planning/DEUDA-TECNICA.md`
153
+ con plan de cierre (eliminar `continue-on-error` cuando GHAS activo).
154
+
155
+ - **Hallazgo C — DT-HISTORIAL-ENV**: detectado que commit `203a603` en
156
+ historial git contenía `ADMIN_PASSWORD=Admin2026!` (ya rotado, ya en
157
+ `.gitignore`, pero presente en `git log -p`). Fix requiere `git
158
+ filter-branch` o `git filter-repo` (destructivo, irreversible para
159
+ colaboradores con clones locales). El agente escaló al usuario; usuario
160
+ respondió "estamos en desarrollo y etapa de pruebas" → degradado a DT
161
+ formal con trigger "antes del primer deploy productivo, repo público
162
+ o colaborador externo".
163
+
164
+ Los tres hallazgos quedaron visibles, etiquetados y con trigger observable.
165
+ Ninguno se mezcló silenciosamente con el trabajo principal del pipeline.
166
+
167
+ #### Anti-patrones específicos
168
+
169
+ - **"Lo arreglo de paso porque ya estoy aquí"**: si el fix tiene blast
170
+ radius alto, NO va de paso. Va etiquetado o no va.
171
+ - **DT sin trigger verificable**: "cuando sea posible", "más adelante",
172
+ "cuando tengamos tiempo" — viola la regla general arriba. Trigger debe
173
+ ser condición observable.
174
+ - **Reportar Hallazgo C como informativo sin pedir decisión**: si la
175
+ decisión requiere autorización del usuario, la respuesta NO es
176
+ "documentado para tu consideración" — es "elige A, B o C".
177
+ - **Aplicar Hallazgo A descubriendo en medio que era Hallazgo C**: si al
178
+ empezar el fix detectas que tiene blast radius mayor del estimado,
179
+ detente, revierte el WIP, y re-clasifica. NO terminar "porque ya
180
+ empezamos".
181
+
182
+ ---
183
+
184
+ ## Excepciones legítimas
185
+
186
+ NO aplicar la regla al pie de la letra cuando:
187
+
188
+ 1. **El fix es ambiguo** — varias opciones razonables sin criterio claro para
189
+ elegir. Presentar opciones concretas con la recomendación y esperar
190
+ decisión rápida.
191
+ 2. **El fix es destructivo** — `rm -rf`, `git reset --hard`, `git push --force`,
192
+ eliminar tablas de BD. Esos siguen requiriendo confirmación explícita por
193
+ separado, sin importar que el problema esté detectado.
194
+ 3. **El fix tiene blast radius alto** — modifica configuración de CI, infra
195
+ compartida, contratos públicos de API. Presentar plan, pedir confirmación.
196
+ 4. **El bug requiere decisión de producto** — comportamiento esperado ambiguo,
197
+ breaking change. Explícito al usuario y esperar.
198
+
199
+ En todos los casos: presentar la opción y la recomendación, NO dejar el
200
+ problema sin reportar.
201
+
202
+ ---
203
+
204
+ ## Anti-patrones explícitos
205
+
206
+ - "Lo dejo como deuda residual" — sin DT/DA formal con criterio de disparo.
207
+ - "Esos tests ya estaban rotos antes" — usado para evitar arreglarlos.
208
+ - "No es parte del scope inmediato" — para esquivar un fix obvio.
209
+ - "Lo documento y tú decides" — para diferir trabajo claro al usuario.
210
+ - "Mediano plazo" sin trigger verificable.
211
+ - Excluir tests del glob, comentar checks, `|| true`, downgradear severidad de
212
+ un linter — para que el CI deje de fallar sin arreglar la causa.
213
+ - Mover archivos a `legacy/` o `deprecated/` sin plan de eliminación con
214
+ criterio de disparo.
215
+
216
+ ---
217
+
218
+ ## Relación con otras reglas
219
+
220
+ - `seguridad-agentes.md` — sección "Anti-fallback silencioso y anti-degradación"
221
+ cubre el mismo principio aplicado a agentes autónomos. Esta regla lo extiende
222
+ al trabajo del usuario.
223
+ - `git-workflow.md` — los commits siguen siendo atómicos; arreglar un problema
224
+ detectado puede requerir varios commits, no uno solo gigante.
225
+ - `pruebas.md` — los tests rotos son violaciones a esta regla. No se mergea
226
+ con tests rotos (excepción: tests rotos por decisión de producto en proceso).
227
+
228
+ ---
229
+
230
+ ## Origen de esta regla
231
+
232
+ Consolidada el 2026-05-04 a partir de cuatro feedbacks repetidos del usuario en
233
+ memorias nativas de Claude Code de los proyectos sigm, swl-ses y emaia
234
+ (2026-04-23 a 2026-05-03). Antes vivía duplicada en 4 archivos de feedback
235
+ distintos en 2 de los 3 proyectos. Promovida a regla global para eliminar
236
+ duplicación y aplicar uniformemente a todo proyecto del usuario.
237
+
238
+ Memoria nativa local correspondiente: redundante tras esta regla; mantener solo
239
+ una mención mínima en MEMORY.md de cada proyecto si se desea preservar el rastro
240
+ histórico, pero el contenido operativo vive aquí.
@@ -1,10 +1,10 @@
1
- ---
2
- paths:
3
- - "**/scripts/verificar-*.js"
4
- - "**/MANUAL_USO.md"
5
- - "**/manifiestos/**"
6
- - "**/INVENTARIO.md"
7
- ---
1
+ ---
2
+ paths:
3
+ - "**/scripts/verificar-*.js"
4
+ - "**/MANUAL_USO.md"
5
+ - "**/manifiestos/**"
6
+ - "**/INVENTARIO.md"
7
+ ---
8
8
  # Regla: Auditorías documentales estructurales en SWL
9
9
 
10
10
  Esta regla es **OBLIGATORIA** y aplica a todo agente o agente humano que
@@ -1,11 +1,11 @@
1
- ---
2
- paths:
3
- - "**/*.tf"
4
- - "**/*.tfvars"
5
- - "**/Dockerfile*"
6
- - "**/*.bicep"
7
- - "**/docker-compose*.{yml,yaml}"
8
- ---
1
+ ---
2
+ paths:
3
+ - "**/*.tf"
4
+ - "**/*.tfvars"
5
+ - "**/Dockerfile*"
6
+ - "**/*.bicep"
7
+ - "**/docker-compose*.{yml,yaml}"
8
+ ---
9
9
  # Regla: Infraestructura Cloud
10
10
 
11
11
  Esta regla es OBLIGATORIA para todo recurso desplegado en cloud sin excepción.