@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,255 +1,255 @@
1
- ---
2
- name: proceso-ddia-fundamentos
3
- description: >
4
- Conceptos fundamentales del libro "Designing Data-Intensive Applications" de
5
- Martin Kleppmann aplicables a sistemas no-distribuidos (como SWL): Cap 1
6
- Reliability/Scalability/Maintainability como framework de evaluación, Cap 4
7
- Schema Evolution con backward/forward compatibility, Cap 12 End-to-End
8
- Argument y Trust-but-Verify. Cargar al diseñar manifiestos versionados,
9
- evaluar arquitectura de un módulo, decidir dónde validar correctitud.
10
- when_to_use: >
11
- Usar cuando el usuario menciona schema versioning, backward/forward compat,
12
- end-to-end verification, trust but verify, reliability scalability
13
- maintainability, RSM framework, Operability Simplicity Evolvability,
14
- schema-evolution, evaluar arquitectura, decidir dónde validar.
15
- ---
16
-
17
- # DDIA Fundamentos — RSM, Schema Evolution, End-to-End
18
-
19
- Adaptado de Martin Kleppmann, *"Designing Data-Intensive Applications"*
20
- (O'Reilly, 2017). Skill cubre los tres ejes del libro que aplican a SWL:
21
-
22
- - **Capítulo 1** — Reliability, Scalability, Maintainability como framework.
23
- - **Capítulo 4** — Schema Evolution (back/forward compatibility).
24
- - **Capítulo 12** — End-to-End Argument + Trust-but-Verify.
25
-
26
- Los demás capítulos del libro (2-3 data models / storage, 5-10 distributed
27
- systems) tratan dominios que SWL no es (no es BD, no es sistema distribuido).
28
- Se descartan por filtro de dominio (regla `arquitectura.md`).
29
-
30
- ## Cuándo cargar
31
-
32
- - Diseñar un schema nuevo (manifest, frontmatter, JSON Schema) que
33
- evolucionará en el tiempo.
34
- - Auditar un módulo SWL para evaluar Reliability/Scalability/Maintainability.
35
- - Decidir dónde poner una validación: en cada capa o solo end-to-end.
36
- - Resolver una duda sobre "¿esto se rompe si actualizo el sistema?" — es
37
- pregunta de schema compatibility.
38
-
39
- ## Cuándo NO cargar
40
-
41
- - Discusiones sobre replication, partitioning, consenso (Paxos/Raft) — esos
42
- capítulos DDIA no aplican a SWL.
43
- - Streaming/event sourcing avanzado — cargar `Skill("proceso-ddia-streaming")`.
44
- - Optimización puntual de query SQL — cargar `Skill("performance-baseline")`.
45
-
46
- ---
47
-
48
- ## Parte 1 — Reliability, Scalability, Maintainability (RSM)
49
-
50
- Cita textual del libro (DDIA p.18, línea 1411-1453):
51
-
52
- > "It is well known that the majority of the cost of software is not in its
53
- > initial development, but in its ongoing maintenance — fixing bugs, keeping
54
- > its systems operational, investigating failures, adapting it to new
55
- > platforms, modifying it for new use cases, repaying technical debt, and
56
- > adding new features."
57
-
58
- ### Las 3 dimensiones del RSM
59
-
60
- **Reliability** — el sistema sigue funcionando correctamente bajo:
61
- - Hardware faults
62
- - Software errors
63
- - Human errors
64
-
65
- Tipos de respuesta:
66
- - **Fault-tolerant**: el sistema absorbe la falla sin propagarla.
67
- - **Resilient**: degrada con gracia, no en cascada.
68
-
69
- **Aplicación a SWL**: hooks bloqueantes (`calidad-pre-commit`,
70
- `escaneo-secretos`) son fault-tolerance. Las escrituras atómicas
71
- (`hooks/lib/atomic-write.js`) son resilience contra crashes durante write.
72
-
73
- **Scalability** — cómo cambia el rendimiento cuando crece la carga:
74
- - Describir **carga** (parámetros: throughput, concurrent users, etc.)
75
- - Describir **rendimiento** (latencia: p50, p95, p99)
76
-
77
- **Aplicación a SWL**: las métricas `Skill("performance-baseline")` siguen
78
- este modelo. Carga = sesiones concurrentes, archivos por proyecto, agentes
79
- en cadena. Rendimiento = latencia de hooks, tiempo de respuesta de
80
- validadores.
81
-
82
- **Maintainability** — tres principios de diseño del libro:
83
-
84
- > "Operability: Make it easy for operations teams to keep the system running
85
- > smoothly.
86
- > Simplicity: Make it easy for new engineers to understand the system, by
87
- > removing as much complexity as possible from the system. (Note this is
88
- > not the same as simplicity of the user interface.)
89
- > Evolvability: Make it easy for engineers to make changes to the system in
90
- > the future, adapting it for unanticipated use cases as requirements
91
- > change. Also known as extensibility, modifiability, or plasticity."
92
- > (DDIA p.18-19, líneas 1435-1449)
93
-
94
- **Aplicación a SWL**:
95
-
96
- | Principio DDIA | Implementación SWL |
97
- |---|---|
98
- | Operability | `/swl:status salud`, `/swl:status dashboard`, `/swl:doctor`, runbooks |
99
- | Simplicity | Skills ≤300 líneas, módulos profundos (Ousterhout), zero-deps en `hooks/lib/` |
100
- | Evolvability | ADRs versionados, schemas opcionales aditivos, fragments compartidos |
101
-
102
- ### Cómo usar RSM como rúbrica de evaluación
103
-
104
- Antes de declarar un módulo "listo", pregúntate:
105
-
106
- 1. **Reliability**: ¿qué pasa si una entrada inesperada llega? ¿Si un hook
107
- externo falla? ¿Si el filesystem se llena?
108
- 2. **Scalability**: ¿el módulo escala con el tamaño del proyecto del
109
- usuario? Si tiene 1000 archivos vs 10, ¿degrada linealmente o se
110
- cuadratiza?
111
- 3. **Maintainability** (los 3 sub-principios):
112
- - ¿Un operario nuevo puede operarlo sin leer todo el código?
113
- - ¿Un ingeniero nuevo puede entenderlo sin un curso?
114
- - ¿Un cambio de requisito se acomoda sin reescribir?
115
-
116
- Si la respuesta es "no" a más de uno, el módulo necesita refactor antes de
117
- release.
118
-
119
- ---
120
-
121
- ## Parte 2 — Schema Evolution (Cap 4)
122
-
123
- Cita textual del libro (DDIA p.112, línea 5706-5719):
124
-
125
- > "Backward compatibility — Newer code can read data that was written by
126
- > older code.
127
- >
128
- > Forward compatibility — Older code can read data that was written by
129
- > newer code.
130
- >
131
- > Backward compatibility is normally not hard to achieve: as author of the
132
- > newer code, you know the format of data written by older code, and so
133
- > you can explicitly handle it (if necessary by simply keeping the old code
134
- > to read the old data). Forward compatibility can be trickier, because it
135
- > requires older code to ignore additions made by a newer version of the
136
- > code."
137
-
138
- ### Las 2 direcciones de compatibilidad
139
-
140
- Cuando un schema evoluciona, hay dos preguntas distintas:
141
-
142
- | Pregunta | Tipo | Difficulty |
143
- |---|---|---|
144
- | ¿Código nuevo lee datos viejos? | Backward | Fácil |
145
- | ¿Código viejo lee datos nuevos? | Forward | Más difícil |
146
-
147
- **Backward compat es fácil**: el código nuevo conoce ambas versiones del
148
- schema, puede manejar los dos formatos.
149
-
150
- **Forward compat es difícil**: el código viejo NO sabe que existe el campo
151
- nuevo. Para que funcione, el código viejo debe **ignorar campos
152
- desconocidos** sin romperse.
153
-
154
- ### Aplicación a schemas SWL
155
-
156
- SWL tiene 14 archivos `schemas/*.schema.json`. Reglas operativas:
157
-
158
- 1. **Campos nuevos siempre opcionales**: agregar `myField: { type: "..." }`
159
- sin marcarlo `required`. Código viejo lo ignora (forward-compat OK).
160
- Código nuevo lo usa si está presente (backward-compat OK).
161
-
162
- 2. **NUNCA renombrar campos en MINOR/PATCH**: rename = breaking. Si hay
163
- que renombrar, mantener ambos durante 1 release (deprecación) y
164
- eliminar en el MAJOR siguiente.
165
-
166
- 3. **NUNCA cambiar tipo de un campo en MINOR/PATCH**: cambiar `string` →
167
- `array` rompe ambas direcciones. Es MAJOR.
168
-
169
- 4. **Agregar enum value es compatible**: si `nivelRiesgo` acepta
170
- `[BAJO, MEDIO, ALTO]`, agregar `CRÍTICO` es backward-compat (código
171
- nuevo lo entiende, código viejo lo rechaza pero no se rompe).
172
-
173
- 5. **Eliminar enum value es breaking**: código nuevo rechaza algo que
174
- código viejo escribía.
175
-
176
- ### Detección de breaking changes
177
-
178
- Helper `scripts/lib/schema-version.js` (creado en F4) implementa estas
179
- reglas. Uso esperado:
180
-
181
- ```js
182
- const { verificarCompatibilidad } = require('./scripts/lib/schema-version');
183
- const r = verificarCompatibilidad(documento, schema);
184
- // r = { compatible: bool, modo: "backward"|"forward"|"none", advertencias }
185
- ```
186
-
187
- Tres modos según versiones:
188
- - Doc 1.0.0 + Schema 1.0.0 → `modo: "none"` (idénticas).
189
- - Doc 1.0.0 + Schema 1.1.0 → `modo: "forward"` (dato viejo, código nuevo).
190
- - Doc 1.1.0 + Schema 1.0.0 → `modo: "backward"` (dato nuevo, código viejo).
191
- - Doc 2.0.0 + Schema 1.0.0 → `compatible: false` (MAJOR rompe).
192
-
193
- ---
194
-
195
- ## Parte 3 — End-to-End Argument (Cap 12)
196
-
197
- Concepto del libro: la verificación de correctitud debe vivir en la
198
- frontera del sistema (end-to-end), no en cada capa intermedia.
199
-
200
- > "The End-to-End Argument for Databases" (DDIA p.516, sección referenciada)
201
-
202
- ### El principio aplicado
203
-
204
- Si validas en cada capa intermedia:
205
- - Capa 1: valida → pasa
206
- - Capa 2: valida → pasa
207
- - Capa 3: valida → pasa
208
- - Resultado: dato corrupto entregado al usuario porque ninguna capa
209
- verificó la **invariante de negocio** completa.
210
-
211
- Si validas end-to-end:
212
- - Capa 1, 2, 3: hacen su trabajo sin validar
213
- - Frontera del sistema: verifica la invariante completa
214
- - Resultado: si falla, se detecta antes de entregar al usuario.
215
-
216
- ### Aplicación a SWL
217
-
218
- - `/swl:verificar` con goal-backward 4 niveles es end-to-end.
219
- - Hooks de validación intermedios (`calidad-pre-commit`,
220
- `escaneo-secretos`) son fault-tolerance, no end-to-end. Detectan
221
- problemas obvios temprano para reducir blast radius — no reemplazan la
222
- verificación end-to-end.
223
- - Las dos capas son complementarias: hooks rápidos en cada step, verifier
224
- end-to-end al cierre de fase.
225
-
226
- ### Trust-but-Verify (Cap 12, p.528)
227
-
228
- El sistema debe **confiar provisionalmente** en sus componentes
229
- (hooks pasan → asumimos correcto) pero **verificar** la invariante final
230
- con evidencia, no con auto-reporte de los componentes.
231
-
232
- Aplicación SWL: regla `verificar-citas-normativas.md` aplica este
233
- principio a citas archivo:línea — un sub-agente reportó "está
234
- implementado en X:42"; el padre verifica con `Read`+`grep` antes de
235
- aceptar.
236
-
237
- ---
238
-
239
- ## Resumen — qué se llevó SWL del libro
240
-
241
- | Concepto DDIA | Dónde vive en SWL |
242
- |---|---|
243
- | Reliability/Scalability/Maintainability como framework | Este skill como rúbrica de evaluación |
244
- | Operability / Simplicity / Evolvability | Skills ≤300 líneas + observabilidad-swl + ADRs |
245
- | Backward / Forward compat | `$schemaVersion` + `scripts/lib/schema-version.js` (F4) |
246
- | End-to-End Argument | `/swl:verificar` goal-backward |
247
- | Trust-but-Verify | regla `verificar-citas-normativas.md` |
248
-
249
- ## Origen
250
-
251
- Skill creado el 2026-05-18 como parte de Opción B de integración
252
- `temp/Designing Data Intensive Applications by Martin Kleppmann.md`. Ver
253
- ADR-0025 para la decisión de scope. Skill hermano:
254
- `proceso-ddia-streaming` (Cap 11 event sourcing aplicado a
255
- `evolucion/*.jsonl`).
1
+ ---
2
+ name: proceso-ddia-fundamentos
3
+ description: >
4
+ Conceptos fundamentales del libro "Designing Data-Intensive Applications" de
5
+ Martin Kleppmann aplicables a sistemas no-distribuidos (como SWL): Cap 1
6
+ Reliability/Scalability/Maintainability como framework de evaluación, Cap 4
7
+ Schema Evolution con backward/forward compatibility, Cap 12 End-to-End
8
+ Argument y Trust-but-Verify. Cargar al diseñar manifiestos versionados,
9
+ evaluar arquitectura de un módulo, decidir dónde validar correctitud.
10
+ when_to_use: >
11
+ Usar cuando el usuario menciona schema versioning, backward/forward compat,
12
+ end-to-end verification, trust but verify, reliability scalability
13
+ maintainability, RSM framework, Operability Simplicity Evolvability,
14
+ schema-evolution, evaluar arquitectura, decidir dónde validar.
15
+ ---
16
+
17
+ # DDIA Fundamentos — RSM, Schema Evolution, End-to-End
18
+
19
+ Adaptado de Martin Kleppmann, *"Designing Data-Intensive Applications"*
20
+ (O'Reilly, 2017). Skill cubre los tres ejes del libro que aplican a SWL:
21
+
22
+ - **Capítulo 1** — Reliability, Scalability, Maintainability como framework.
23
+ - **Capítulo 4** — Schema Evolution (back/forward compatibility).
24
+ - **Capítulo 12** — End-to-End Argument + Trust-but-Verify.
25
+
26
+ Los demás capítulos del libro (2-3 data models / storage, 5-10 distributed
27
+ systems) tratan dominios que SWL no es (no es BD, no es sistema distribuido).
28
+ Se descartan por filtro de dominio (regla `arquitectura.md`).
29
+
30
+ ## Cuándo cargar
31
+
32
+ - Diseñar un schema nuevo (manifest, frontmatter, JSON Schema) que
33
+ evolucionará en el tiempo.
34
+ - Auditar un módulo SWL para evaluar Reliability/Scalability/Maintainability.
35
+ - Decidir dónde poner una validación: en cada capa o solo end-to-end.
36
+ - Resolver una duda sobre "¿esto se rompe si actualizo el sistema?" — es
37
+ pregunta de schema compatibility.
38
+
39
+ ## Cuándo NO cargar
40
+
41
+ - Discusiones sobre replication, partitioning, consenso (Paxos/Raft) — esos
42
+ capítulos DDIA no aplican a SWL.
43
+ - Streaming/event sourcing avanzado — cargar `Skill("proceso-ddia-streaming")`.
44
+ - Optimización puntual de query SQL — cargar `Skill("performance-baseline")`.
45
+
46
+ ---
47
+
48
+ ## Parte 1 — Reliability, Scalability, Maintainability (RSM)
49
+
50
+ Cita textual del libro (DDIA p.18, línea 1411-1453):
51
+
52
+ > "It is well known that the majority of the cost of software is not in its
53
+ > initial development, but in its ongoing maintenance — fixing bugs, keeping
54
+ > its systems operational, investigating failures, adapting it to new
55
+ > platforms, modifying it for new use cases, repaying technical debt, and
56
+ > adding new features."
57
+
58
+ ### Las 3 dimensiones del RSM
59
+
60
+ **Reliability** — el sistema sigue funcionando correctamente bajo:
61
+ - Hardware faults
62
+ - Software errors
63
+ - Human errors
64
+
65
+ Tipos de respuesta:
66
+ - **Fault-tolerant**: el sistema absorbe la falla sin propagarla.
67
+ - **Resilient**: degrada con gracia, no en cascada.
68
+
69
+ **Aplicación a SWL**: hooks bloqueantes (`calidad-pre-commit`,
70
+ `escaneo-secretos`) son fault-tolerance. Las escrituras atómicas
71
+ (`hooks/lib/atomic-write.js`) son resilience contra crashes durante write.
72
+
73
+ **Scalability** — cómo cambia el rendimiento cuando crece la carga:
74
+ - Describir **carga** (parámetros: throughput, concurrent users, etc.)
75
+ - Describir **rendimiento** (latencia: p50, p95, p99)
76
+
77
+ **Aplicación a SWL**: las métricas `Skill("performance-baseline")` siguen
78
+ este modelo. Carga = sesiones concurrentes, archivos por proyecto, agentes
79
+ en cadena. Rendimiento = latencia de hooks, tiempo de respuesta de
80
+ validadores.
81
+
82
+ **Maintainability** — tres principios de diseño del libro:
83
+
84
+ > "Operability: Make it easy for operations teams to keep the system running
85
+ > smoothly.
86
+ > Simplicity: Make it easy for new engineers to understand the system, by
87
+ > removing as much complexity as possible from the system. (Note this is
88
+ > not the same as simplicity of the user interface.)
89
+ > Evolvability: Make it easy for engineers to make changes to the system in
90
+ > the future, adapting it for unanticipated use cases as requirements
91
+ > change. Also known as extensibility, modifiability, or plasticity."
92
+ > (DDIA p.18-19, líneas 1435-1449)
93
+
94
+ **Aplicación a SWL**:
95
+
96
+ | Principio DDIA | Implementación SWL |
97
+ |---|---|
98
+ | Operability | `/swl:status salud`, `/swl:status dashboard`, `/swl:doctor`, runbooks |
99
+ | Simplicity | Skills ≤300 líneas, módulos profundos (Ousterhout), zero-deps en `hooks/lib/` |
100
+ | Evolvability | ADRs versionados, schemas opcionales aditivos, fragments compartidos |
101
+
102
+ ### Cómo usar RSM como rúbrica de evaluación
103
+
104
+ Antes de declarar un módulo "listo", pregúntate:
105
+
106
+ 1. **Reliability**: ¿qué pasa si una entrada inesperada llega? ¿Si un hook
107
+ externo falla? ¿Si el filesystem se llena?
108
+ 2. **Scalability**: ¿el módulo escala con el tamaño del proyecto del
109
+ usuario? Si tiene 1000 archivos vs 10, ¿degrada linealmente o se
110
+ cuadratiza?
111
+ 3. **Maintainability** (los 3 sub-principios):
112
+ - ¿Un operario nuevo puede operarlo sin leer todo el código?
113
+ - ¿Un ingeniero nuevo puede entenderlo sin un curso?
114
+ - ¿Un cambio de requisito se acomoda sin reescribir?
115
+
116
+ Si la respuesta es "no" a más de uno, el módulo necesita refactor antes de
117
+ release.
118
+
119
+ ---
120
+
121
+ ## Parte 2 — Schema Evolution (Cap 4)
122
+
123
+ Cita textual del libro (DDIA p.112, línea 5706-5719):
124
+
125
+ > "Backward compatibility — Newer code can read data that was written by
126
+ > older code.
127
+ >
128
+ > Forward compatibility — Older code can read data that was written by
129
+ > newer code.
130
+ >
131
+ > Backward compatibility is normally not hard to achieve: as author of the
132
+ > newer code, you know the format of data written by older code, and so
133
+ > you can explicitly handle it (if necessary by simply keeping the old code
134
+ > to read the old data). Forward compatibility can be trickier, because it
135
+ > requires older code to ignore additions made by a newer version of the
136
+ > code."
137
+
138
+ ### Las 2 direcciones de compatibilidad
139
+
140
+ Cuando un schema evoluciona, hay dos preguntas distintas:
141
+
142
+ | Pregunta | Tipo | Difficulty |
143
+ |---|---|---|
144
+ | ¿Código nuevo lee datos viejos? | Backward | Fácil |
145
+ | ¿Código viejo lee datos nuevos? | Forward | Más difícil |
146
+
147
+ **Backward compat es fácil**: el código nuevo conoce ambas versiones del
148
+ schema, puede manejar los dos formatos.
149
+
150
+ **Forward compat es difícil**: el código viejo NO sabe que existe el campo
151
+ nuevo. Para que funcione, el código viejo debe **ignorar campos
152
+ desconocidos** sin romperse.
153
+
154
+ ### Aplicación a schemas SWL
155
+
156
+ SWL tiene 14 archivos `schemas/*.schema.json`. Reglas operativas:
157
+
158
+ 1. **Campos nuevos siempre opcionales**: agregar `myField: { type: "..." }`
159
+ sin marcarlo `required`. Código viejo lo ignora (forward-compat OK).
160
+ Código nuevo lo usa si está presente (backward-compat OK).
161
+
162
+ 2. **NUNCA renombrar campos en MINOR/PATCH**: rename = breaking. Si hay
163
+ que renombrar, mantener ambos durante 1 release (deprecación) y
164
+ eliminar en el MAJOR siguiente.
165
+
166
+ 3. **NUNCA cambiar tipo de un campo en MINOR/PATCH**: cambiar `string` →
167
+ `array` rompe ambas direcciones. Es MAJOR.
168
+
169
+ 4. **Agregar enum value es compatible**: si `nivelRiesgo` acepta
170
+ `[BAJO, MEDIO, ALTO]`, agregar `CRÍTICO` es backward-compat (código
171
+ nuevo lo entiende, código viejo lo rechaza pero no se rompe).
172
+
173
+ 5. **Eliminar enum value es breaking**: código nuevo rechaza algo que
174
+ código viejo escribía.
175
+
176
+ ### Detección de breaking changes
177
+
178
+ Helper `scripts/lib/schema-version.js` (creado en F4) implementa estas
179
+ reglas. Uso esperado:
180
+
181
+ ```js
182
+ const { verificarCompatibilidad } = require('./scripts/lib/schema-version');
183
+ const r = verificarCompatibilidad(documento, schema);
184
+ // r = { compatible: bool, modo: "backward"|"forward"|"none", advertencias }
185
+ ```
186
+
187
+ Tres modos según versiones:
188
+ - Doc 1.0.0 + Schema 1.0.0 → `modo: "none"` (idénticas).
189
+ - Doc 1.0.0 + Schema 1.1.0 → `modo: "forward"` (dato viejo, código nuevo).
190
+ - Doc 1.1.0 + Schema 1.0.0 → `modo: "backward"` (dato nuevo, código viejo).
191
+ - Doc 2.0.0 + Schema 1.0.0 → `compatible: false` (MAJOR rompe).
192
+
193
+ ---
194
+
195
+ ## Parte 3 — End-to-End Argument (Cap 12)
196
+
197
+ Concepto del libro: la verificación de correctitud debe vivir en la
198
+ frontera del sistema (end-to-end), no en cada capa intermedia.
199
+
200
+ > "The End-to-End Argument for Databases" (DDIA p.516, sección referenciada)
201
+
202
+ ### El principio aplicado
203
+
204
+ Si validas en cada capa intermedia:
205
+ - Capa 1: valida → pasa
206
+ - Capa 2: valida → pasa
207
+ - Capa 3: valida → pasa
208
+ - Resultado: dato corrupto entregado al usuario porque ninguna capa
209
+ verificó la **invariante de negocio** completa.
210
+
211
+ Si validas end-to-end:
212
+ - Capa 1, 2, 3: hacen su trabajo sin validar
213
+ - Frontera del sistema: verifica la invariante completa
214
+ - Resultado: si falla, se detecta antes de entregar al usuario.
215
+
216
+ ### Aplicación a SWL
217
+
218
+ - `/swl:verificar` con goal-backward 4 niveles es end-to-end.
219
+ - Hooks de validación intermedios (`calidad-pre-commit`,
220
+ `escaneo-secretos`) son fault-tolerance, no end-to-end. Detectan
221
+ problemas obvios temprano para reducir blast radius — no reemplazan la
222
+ verificación end-to-end.
223
+ - Las dos capas son complementarias: hooks rápidos en cada step, verifier
224
+ end-to-end al cierre de fase.
225
+
226
+ ### Trust-but-Verify (Cap 12, p.528)
227
+
228
+ El sistema debe **confiar provisionalmente** en sus componentes
229
+ (hooks pasan → asumimos correcto) pero **verificar** la invariante final
230
+ con evidencia, no con auto-reporte de los componentes.
231
+
232
+ Aplicación SWL: regla `verificar-citas-normativas.md` aplica este
233
+ principio a citas archivo:línea — un sub-agente reportó "está
234
+ implementado en X:42"; el padre verifica con `Read`+`grep` antes de
235
+ aceptar.
236
+
237
+ ---
238
+
239
+ ## Resumen — qué se llevó SWL del libro
240
+
241
+ | Concepto DDIA | Dónde vive en SWL |
242
+ |---|---|
243
+ | Reliability/Scalability/Maintainability como framework | Este skill como rúbrica de evaluación |
244
+ | Operability / Simplicity / Evolvability | Skills ≤300 líneas + observabilidad-swl + ADRs |
245
+ | Backward / Forward compat | `$schemaVersion` + `scripts/lib/schema-version.js` (F4) |
246
+ | End-to-End Argument | `/swl:verificar` goal-backward |
247
+ | Trust-but-Verify | regla `verificar-citas-normativas.md` |
248
+
249
+ ## Origen
250
+
251
+ Skill creado el 2026-05-18 como parte de Opción B de integración
252
+ `temp/Designing Data Intensive Applications by Martin Kleppmann.md`. Ver
253
+ ADR-0025 para la decisión de scope. Skill hermano:
254
+ `proceso-ddia-streaming` (Cap 11 event sourcing aplicado a
255
+ `evolucion/*.jsonl`).