@saulwade/swl-ses 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (702) hide show
  1. package/CLAUDE.md +238 -0
  2. package/README.md +560 -0
  3. package/_userland/agentes/.gitkeep +0 -0
  4. package/_userland/habilidades/.gitkeep +0 -0
  5. package/agentes/.evolved.json +9 -0
  6. package/agentes/accesibilidad-wcag-swl.md +692 -0
  7. package/agentes/arquitecto-swl.md +238 -0
  8. package/agentes/auto-evolucion-swl.md +854 -0
  9. package/agentes/backend-api-swl.md +470 -0
  10. package/agentes/backend-csharp-swl.md +418 -0
  11. package/agentes/backend-go-swl.md +388 -0
  12. package/agentes/backend-java-swl.md +279 -0
  13. package/agentes/backend-node-swl.md +477 -0
  14. package/agentes/backend-python-swl.md +608 -0
  15. package/agentes/backend-rust-swl.md +362 -0
  16. package/agentes/backend-workers-swl.md +480 -0
  17. package/agentes/cloud-infra-swl.md +485 -0
  18. package/agentes/consolidador-swl.md +539 -0
  19. package/agentes/datos-swl.md +584 -0
  20. package/agentes/depurador-swl.md +349 -0
  21. package/agentes/devops-ci-swl.md +374 -0
  22. package/agentes/disenador-ui-swl.md +558 -0
  23. package/agentes/documentador-swl.md +343 -0
  24. package/agentes/evals/arquitecto-swl.evals.json +56 -0
  25. package/agentes/evals/auto-evolucion-swl.evals.json +68 -0
  26. package/agentes/evals/implementador-swl.evals.json +56 -0
  27. package/agentes/evals/orquestador-swl.evals.json +60 -0
  28. package/agentes/evals/perfilador-usuario-swl.evals.json +60 -0
  29. package/agentes/evals/red-team-swl.evals.json +59 -0
  30. package/agentes/evals/revisor-codigo-swl.evals.json +59 -0
  31. package/agentes/frontend-angular-swl.md +627 -0
  32. package/agentes/frontend-css-swl.md +720 -0
  33. package/agentes/frontend-react-swl.md +696 -0
  34. package/agentes/frontend-swl.md +500 -0
  35. package/agentes/frontend-tailwind-swl.md +830 -0
  36. package/agentes/implementador-swl.md +328 -0
  37. package/agentes/investigador-swl.md +430 -0
  38. package/agentes/investigador-ux-swl.md +500 -0
  39. package/agentes/llm-apps-swl.md +276 -0
  40. package/agentes/migrador-swl.md +417 -0
  41. package/agentes/mobile-android-swl.md +509 -0
  42. package/agentes/mobile-cross-swl.md +539 -0
  43. package/agentes/mobile-ios-swl.md +500 -0
  44. package/agentes/mobile-testing-swl.md +300 -0
  45. package/agentes/notificador-swl.md +916 -0
  46. package/agentes/observabilidad-swl.md +436 -0
  47. package/agentes/orquestador-swl.md +884 -0
  48. package/agentes/pagos-swl.md +283 -0
  49. package/agentes/perfilador-usuario-swl.md +306 -0
  50. package/agentes/planificador-swl.md +402 -0
  51. package/agentes/producto-prd-swl.md +587 -0
  52. package/agentes/red-team-swl.md +216 -0
  53. package/agentes/release-manager-swl.md +568 -0
  54. package/agentes/rendimiento-swl.md +714 -0
  55. package/agentes/resolutor-build-swl.md +243 -0
  56. package/agentes/revisor-angular-swl.md +276 -0
  57. package/agentes/revisor-codigo-swl.md +348 -0
  58. package/agentes/revisor-csharp-swl.md +262 -0
  59. package/agentes/revisor-go-swl.md +257 -0
  60. package/agentes/revisor-java-swl.md +255 -0
  61. package/agentes/revisor-kotlin-swl.md +271 -0
  62. package/agentes/revisor-nextjs-swl.md +279 -0
  63. package/agentes/revisor-php-swl.md +269 -0
  64. package/agentes/revisor-react-swl.md +276 -0
  65. package/agentes/revisor-rust-swl.md +344 -0
  66. package/agentes/revisor-seguridad-swl.md +390 -0
  67. package/agentes/revisor-swift-swl.md +266 -0
  68. package/agentes/revisor-typescript-swl.md +344 -0
  69. package/agentes/sre-swl.md +265 -0
  70. package/agentes/tdd-qa-swl.md +354 -0
  71. package/agentes/ux-disenador-swl.md +501 -0
  72. package/bin/lib/bot-comandos.js +1030 -0
  73. package/bin/lib/bot-discovery.js +182 -0
  74. package/bin/lib/bot-git.js +142 -0
  75. package/bin/swl-ses.js +325 -0
  76. package/bin/swl-telegram-bot.js +442 -0
  77. package/bin/swl-telegram-bot.plist +21 -0
  78. package/bin/swl-telegram-bot.service +14 -0
  79. package/comandos/swl/.evolved.json +23 -0
  80. package/comandos/swl/actualizar.md +174 -0
  81. package/comandos/swl/adoptar-proyecto.md +207 -0
  82. package/comandos/swl/aprender.md +701 -0
  83. package/comandos/swl/auditar-deps.md +134 -0
  84. package/comandos/swl/autoresearch.md +170 -0
  85. package/comandos/swl/ayuda.md +224 -0
  86. package/comandos/swl/brainstorm.md +50 -0
  87. package/comandos/swl/checkpoint.md +330 -0
  88. package/comandos/swl/compactar.md +283 -0
  89. package/comandos/swl/configurar-ci.md +227 -0
  90. package/comandos/swl/contexto.md +112 -0
  91. package/comandos/swl/contribuir.md +233 -0
  92. package/comandos/swl/crear-skill.md +292 -0
  93. package/comandos/swl/cron.md +196 -0
  94. package/comandos/swl/dashboard.md +146 -0
  95. package/comandos/swl/discutir-fase.md +230 -0
  96. package/comandos/swl/ejecutar-fase.md +135 -0
  97. package/comandos/swl/evaluar-skill.md +487 -0
  98. package/comandos/swl/evolucion-estado.md +142 -0
  99. package/comandos/swl/evolucionar.md +259 -0
  100. package/comandos/swl/exportar-vault.md +189 -0
  101. package/comandos/swl/gateway.md +158 -0
  102. package/comandos/swl/inbox.md +116 -0
  103. package/comandos/swl/instalar.md +220 -0
  104. package/comandos/swl/instintos.md +86 -0
  105. package/comandos/swl/mapear-codebase.md +312 -0
  106. package/comandos/swl/mcp-status.md +175 -0
  107. package/comandos/swl/metricas.md +270 -0
  108. package/comandos/swl/modelo.md +102 -0
  109. package/comandos/swl/notificaciones.md +396 -0
  110. package/comandos/swl/nuevo-proyecto.md +154 -0
  111. package/comandos/swl/planear-fase.md +221 -0
  112. package/comandos/swl/plugins.md +256 -0
  113. package/comandos/swl/reflect-skills.md +125 -0
  114. package/comandos/swl/release.md +217 -0
  115. package/comandos/swl/revisar-impacto.md +206 -0
  116. package/comandos/swl/revisar.md +330 -0
  117. package/comandos/swl/salud.md +363 -0
  118. package/comandos/swl/sesiones.md +200 -0
  119. package/comandos/swl/skill-search.md +113 -0
  120. package/comandos/swl/verificar.md +585 -0
  121. package/comandos/swl/wiki.md +620 -0
  122. package/contextos/dev.md +32 -0
  123. package/contextos/research.md +30 -0
  124. package/contextos/review.md +31 -0
  125. package/habilidades/accesibilidad-a11y/SKILL.md +201 -0
  126. package/habilidades/accesibilidad-a11y/evals/evals.json +56 -0
  127. package/habilidades/accesibilidad-a11y/recursos/ejemplos-y-checklist-completo.md +441 -0
  128. package/habilidades/agent-browser/SKILL.md +218 -0
  129. package/habilidades/agentes-como-servicio/SKILL.md +218 -0
  130. package/habilidades/ai-runtime-security/SKILL.md +273 -0
  131. package/habilidades/angular-avanzado/SKILL.md +164 -0
  132. package/habilidades/angular-avanzado/recursos/ejemplos-avanzados.md +219 -0
  133. package/habilidades/angular-moderno/SKILL.md +186 -0
  134. package/habilidades/angular-moderno/evals/evals.json +45 -0
  135. package/habilidades/angular-moderno/recursos/ejemplos-avanzados.md +106 -0
  136. package/habilidades/api-rest-diseno/SKILL.md +191 -0
  137. package/habilidades/api-rest-diseno/recursos/openapi-template.yaml +506 -0
  138. package/habilidades/api-rest-diseno/recursos/referencia-api.md +140 -0
  139. package/habilidades/aprendizaje-continuo/SKILL.md +151 -0
  140. package/habilidades/aprendizaje-continuo/evals/evals.json +53 -0
  141. package/habilidades/aprendizaje-continuo/recursos/referencia-instintos.md +290 -0
  142. package/habilidades/async-python/SKILL.md +149 -0
  143. package/habilidades/async-python/evals/evals.json +47 -0
  144. package/habilidades/async-python/recursos/patrones-y-ejemplos-completos.md +292 -0
  145. package/habilidades/auth-patrones/.evolved.json +9 -0
  146. package/habilidades/auth-patrones/SKILL.md +413 -0
  147. package/habilidades/auth-patrones/recursos/implementaciones-completas.md +229 -0
  148. package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -0
  149. package/habilidades/auto-evolucion-protocolo/evals/evals.json +55 -0
  150. package/habilidades/auto-evolucion-protocolo/recursos/referencia-completa.md +145 -0
  151. package/habilidades/autoresearch/SKILL.md +268 -0
  152. package/habilidades/autoresearch/evals/evals.json +41 -0
  153. package/habilidades/autoresearch/recursos/checklist-template.md +191 -0
  154. package/habilidades/autoresearch/scripts/calcular-score.js +88 -0
  155. package/habilidades/azure-cloud/SKILL.md +308 -0
  156. package/habilidades/azure-cloud/recursos/aks.md +327 -0
  157. package/habilidades/backend-mcp-servidor/SKILL.md +270 -0
  158. package/habilidades/backend-production-resilience/SKILL.md +288 -0
  159. package/habilidades/brainstorming/SKILL.md +295 -0
  160. package/habilidades/brainstorming/recursos/componentes-html.md +247 -0
  161. package/habilidades/build-errors-cpp/SKILL.md +270 -0
  162. package/habilidades/build-errors-csharp/SKILL.md +265 -0
  163. package/habilidades/build-errors-go/SKILL.md +306 -0
  164. package/habilidades/build-errors-java/SKILL.md +278 -0
  165. package/habilidades/build-errors-kotlin/SKILL.md +303 -0
  166. package/habilidades/build-errors-nextjs/SKILL.md +312 -0
  167. package/habilidades/build-errors-php/SKILL.md +270 -0
  168. package/habilidades/build-errors-python/SKILL.md +292 -0
  169. package/habilidades/build-errors-rust/SKILL.md +284 -0
  170. package/habilidades/build-errors-swift/SKILL.md +272 -0
  171. package/habilidades/build-errors-typescript/SKILL.md +369 -0
  172. package/habilidades/checklist-calidad/SKILL.md +271 -0
  173. package/habilidades/checklist-calidad/recursos/quality-report-template.md +148 -0
  174. package/habilidades/checklist-seguridad/SKILL.md +285 -0
  175. package/habilidades/checkpoints-verificacion/SKILL.md +298 -0
  176. package/habilidades/checkpoints-verificacion/recursos/checkpoint-templates.md +360 -0
  177. package/habilidades/ci-cd-pipelines/SKILL.md +157 -0
  178. package/habilidades/ci-cd-pipelines/recursos/github-actions-template.yaml +403 -0
  179. package/habilidades/ci-cd-pipelines/recursos/pipelines-completos.md +487 -0
  180. package/habilidades/cloud-aws/SKILL.md +142 -0
  181. package/habilidades/cloud-aws/recursos/servicios-aws-referencia.md +321 -0
  182. package/habilidades/compactacion-contexto/SKILL.md +247 -0
  183. package/habilidades/contenedores-docker/SKILL.md +137 -0
  184. package/habilidades/contenedores-docker/recursos/dockerfile-template.dockerfile +160 -0
  185. package/habilidades/contenedores-docker/recursos/ejemplos-y-configuraciones.md +327 -0
  186. package/habilidades/context-builder/SKILL.md +170 -0
  187. package/habilidades/control-profundidad/SKILL.md +128 -0
  188. package/habilidades/csharp-experto/SKILL.md +322 -0
  189. package/habilidades/csharp-patrones/SKILL.md +316 -0
  190. package/habilidades/csharp-testing/SKILL.md +286 -0
  191. package/habilidades/css-moderno/SKILL.md +166 -0
  192. package/habilidades/css-moderno/evals/evals.json +43 -0
  193. package/habilidades/css-moderno/recursos/ejemplos-y-patrones-completos.md +337 -0
  194. package/habilidades/datos-etl/SKILL.md +129 -0
  195. package/habilidades/datos-etl/recursos/implementaciones-completas.md +322 -0
  196. package/habilidades/dbml-experto/SKILL.md +339 -0
  197. package/habilidades/dbml-experto/evals/evals.json +56 -0
  198. package/habilidades/dependencias-auditoria/SKILL.md +320 -0
  199. package/habilidades/deprecacion-migracion/SKILL.md +169 -0
  200. package/habilidades/deprecacion-migracion/recursos/implementaciones-completas.md +220 -0
  201. package/habilidades/design-tokens/SKILL.md +158 -0
  202. package/habilidades/design-tokens/recursos/tokens-y-configuracion.md +363 -0
  203. package/habilidades/devsecops-pipeline-security/SKILL.md +309 -0
  204. package/habilidades/diagrama-arquitectura/SKILL.md +165 -0
  205. package/habilidades/diagrama-arquitectura/assets/template.html +276 -0
  206. package/habilidades/discutir-fase/SKILL.md +188 -0
  207. package/habilidades/diseno-herramientas-agente/SKILL.md +199 -0
  208. package/habilidades/diseno-responsivo/SKILL.md +186 -0
  209. package/habilidades/diseno-responsivo/recursos/ejemplos-layouts.md +156 -0
  210. package/habilidades/django-experto/SKILL.md +205 -0
  211. package/habilidades/django-experto/recursos/async-django.md +390 -0
  212. package/habilidades/django-experto/recursos/drf-patrones.md +438 -0
  213. package/habilidades/django-experto/recursos/orm-avanzado.md +382 -0
  214. package/habilidades/django-experto/recursos/referencia-completa.md +188 -0
  215. package/habilidades/django-experto/recursos/testing-django.md +415 -0
  216. package/habilidades/doc-sync/SKILL.md +280 -0
  217. package/habilidades/drift-detection/SKILL.md +179 -0
  218. package/habilidades/ejecutar-fase/SKILL.md +468 -0
  219. package/habilidades/estilo-sin-ai-isms/SKILL.md +775 -0
  220. package/habilidades/estilo-sin-ai-isms/evals/evals.json +63 -0
  221. package/habilidades/estilo-sin-ai-isms/scripts/detectar_aiisms.py +500 -0
  222. package/habilidades/estructura-proyecto-claude/SKILL.md +215 -0
  223. package/habilidades/estructura-proyecto-claude/recursos/claude-md-template.md +261 -0
  224. package/habilidades/estructura-proyecto-claude/recursos/configuracion-y-extensiones.md +176 -0
  225. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +289 -0
  226. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +77 -0
  227. package/habilidades/estructura-proyecto-claude/recursos/variantes-por-stack.md +177 -0
  228. package/habilidades/evaluacion-agentes/SKILL.md +314 -0
  229. package/habilidades/event-driven/SKILL.md +153 -0
  230. package/habilidades/event-driven/recursos/implementaciones-completas.md +423 -0
  231. package/habilidades/extraccion-documentos/SKILL.md +221 -0
  232. package/habilidades/extractor-de-aprendizajes/.evolved.json +9 -0
  233. package/habilidades/extractor-de-aprendizajes/SKILL.md +311 -0
  234. package/habilidades/extractor-de-aprendizajes/evals/evals.json +55 -0
  235. package/habilidades/fastapi-experto/SKILL.md +221 -0
  236. package/habilidades/fastapi-experto/recursos/async-patterns.md +438 -0
  237. package/habilidades/fastapi-experto/recursos/dependency-injection.md +330 -0
  238. package/habilidades/fastapi-experto/recursos/referencia-completa.md +79 -0
  239. package/habilidades/fastapi-experto/recursos/testing-httpx.md +420 -0
  240. package/habilidades/filament-admin/SKILL.md +290 -0
  241. package/habilidades/frontend-avanzado/SKILL.md +257 -0
  242. package/habilidades/frontend-avanzado/recursos/apis-nativas-ejemplos.md +341 -0
  243. package/habilidades/gcp-cloud/SKILL.md +260 -0
  244. package/habilidades/gcp-cloud/recursos/gke.md +234 -0
  245. package/habilidades/gcp-cloud/recursos/terraform-gcp.md +307 -0
  246. package/habilidades/generacion-mermaid/SKILL.md +229 -0
  247. package/habilidades/git-worktrees-paralelo/SKILL.md +270 -0
  248. package/habilidades/go-experto/SKILL.md +305 -0
  249. package/habilidades/go-patrones/SKILL.md +299 -0
  250. package/habilidades/go-testing/SKILL.md +291 -0
  251. package/habilidades/graphql-experto/SKILL.md +323 -0
  252. package/habilidades/guardrail-semantico/SKILL.md +282 -0
  253. package/habilidades/harness-claude-code/SKILL.md +299 -0
  254. package/habilidades/iam-secretos/SKILL.md +265 -0
  255. package/habilidades/iam-secretos/recursos/implementaciones-completas.md +356 -0
  256. package/habilidades/infra-github-actions/SKILL.md +166 -0
  257. package/habilidades/instalar-sistema/.evolved.json +9 -0
  258. package/habilidades/instalar-sistema/SKILL.md +221 -0
  259. package/habilidades/java-experto/SKILL.md +290 -0
  260. package/habilidades/java-patrones/SKILL.md +275 -0
  261. package/habilidades/java-testing/SKILL.md +288 -0
  262. package/habilidades/kotlin-compose/SKILL.md +278 -0
  263. package/habilidades/kotlin-compose/recursos/animaciones-performance.md +93 -0
  264. package/habilidades/kotlin-experto/SKILL.md +318 -0
  265. package/habilidades/kotlin-testing/SKILL.md +267 -0
  266. package/habilidades/kotlin-testing/recursos/testing-avanzado.md +74 -0
  267. package/habilidades/kubernetes-orquestacion/SKILL.md +152 -0
  268. package/habilidades/kubernetes-orquestacion/recursos/manifiestos-completos.md +452 -0
  269. package/habilidades/langchain-langraph/SKILL.md +386 -0
  270. package/habilidades/langchain-langraph/recursos/evaluacion-rag.md +321 -0
  271. package/habilidades/langchain-langraph/recursos/rag-maturity-model.md +225 -0
  272. package/habilidades/langchain-langraph/recursos/vectorstores.md +306 -0
  273. package/habilidades/legacy-code-rescue/SKILL.md +267 -0
  274. package/habilidades/likec4-experto/SKILL.md +412 -0
  275. package/habilidades/likec4-experto/evals/evals.json +69 -0
  276. package/habilidades/manejo-errores/.evolved.json +9 -0
  277. package/habilidades/manejo-errores/SKILL.md +407 -0
  278. package/habilidades/manejo-errores/recursos/implementaciones-completas.md +248 -0
  279. package/habilidades/mapear-codebase/SKILL.md +275 -0
  280. package/habilidades/memoria-busqueda/SKILL.md +194 -0
  281. package/habilidades/memoria-busqueda/evals/evals.json +44 -0
  282. package/habilidades/meta-skills-estandar/SKILL.md +298 -0
  283. package/habilidades/meta-skills-estandar/recursos/anti-patrones-y-leyes.md +205 -0
  284. package/habilidades/meta-skills-estandar/recursos/frameworks-seguridad.md +107 -0
  285. package/habilidades/meta-skills-estandar/recursos/idiomas-framework.md +60 -0
  286. package/habilidades/meta-skills-estandar/recursos/skills-as-agents.md +163 -0
  287. package/habilidades/microservicios/SKILL.md +155 -0
  288. package/habilidades/microservicios/recursos/patrones-y-ejemplos-completos.md +325 -0
  289. package/habilidades/mobile-flutter/SKILL.md +199 -0
  290. package/habilidades/mobile-flutter/recursos/ejemplos-completos.md +319 -0
  291. package/habilidades/mobile-react-native/SKILL.md +176 -0
  292. package/habilidades/mobile-react-native/recursos/ejemplos-completos.md +216 -0
  293. package/habilidades/mongodb-experto/SKILL.md +302 -0
  294. package/habilidades/monitoring-alertas/SKILL.md +201 -0
  295. package/habilidades/monitoring-alertas/recursos/instrumentacion-y-alertas.md +301 -0
  296. package/habilidades/nestjs-experto/SKILL.md +307 -0
  297. package/habilidades/nestjs-experto/recursos/guards-interceptors.md +339 -0
  298. package/habilidades/nestjs-experto/recursos/modulos-di.md +287 -0
  299. package/habilidades/nestjs-experto/recursos/testing-nestjs.md +354 -0
  300. package/habilidades/nextjs-experto/SKILL.md +335 -0
  301. package/habilidades/nextjs-patrones/SKILL.md +303 -0
  302. package/habilidades/nextjs-testing/SKILL.md +331 -0
  303. package/habilidades/node-experto/.evolved.json +9 -0
  304. package/habilidades/node-experto/SKILL.md +266 -0
  305. package/habilidades/node-experto/recursos/patrones-completos.md +283 -0
  306. package/habilidades/notificaciones-multicanal/SKILL.md +159 -0
  307. package/habilidades/notificaciones-multicanal/recursos/config-template.json +115 -0
  308. package/habilidades/notificaciones-multicanal/recursos/configuracion-y-templates.md +303 -0
  309. package/habilidades/nuevo-proyecto/SKILL.md +204 -0
  310. package/habilidades/orquestacion-async/SKILL.md +303 -0
  311. package/habilidades/paid-media-tracking/SKILL.md +269 -0
  312. package/habilidades/paid-media-tracking/recursos/auditoria-tracking.md +220 -0
  313. package/habilidades/paid-media-tracking/recursos/google-ads-api.md +215 -0
  314. package/habilidades/patrones-python/SKILL.md +228 -0
  315. package/habilidades/patrones-python/evals/evals.json +56 -0
  316. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -0
  317. package/habilidades/patrones-python/recursos/referencia-completa.md +202 -0
  318. package/habilidades/perfil-usuario/SKILL.md +200 -0
  319. package/habilidades/perfil-usuario/evals/evals.json +55 -0
  320. package/habilidades/performance-baseline/SKILL.md +297 -0
  321. package/habilidades/php-experto/SKILL.md +291 -0
  322. package/habilidades/php-patrones/SKILL.md +306 -0
  323. package/habilidades/php-testing/SKILL.md +280 -0
  324. package/habilidades/planear-fase/SKILL.md +269 -0
  325. package/habilidades/postgresql-experto/SKILL.md +151 -0
  326. package/habilidades/postgresql-experto/evals/evals.json +53 -0
  327. package/habilidades/postgresql-experto/recursos/referencia-completa.md +215 -0
  328. package/habilidades/prevencion-racionalizacion/SKILL.md +175 -0
  329. package/habilidades/prevencion-sobreingenieria/SKILL.md +323 -0
  330. package/habilidades/privacy-memoria/SKILL.md +141 -0
  331. package/habilidades/privacy-memoria/evals/evals.json +43 -0
  332. package/habilidades/prompt-engineering/SKILL.md +518 -0
  333. package/habilidades/prompt-engineering/recursos/patrones-avanzados.md +467 -0
  334. package/habilidades/rag-arquitectura/SKILL.md +338 -0
  335. package/habilidades/rails-experto/SKILL.md +237 -0
  336. package/habilidades/rails-experto/recursos/active-record.md +260 -0
  337. package/habilidades/rails-experto/recursos/hotwire-turbo.md +293 -0
  338. package/habilidades/rails-experto/recursos/testing-rspec.md +362 -0
  339. package/habilidades/react-experto/SKILL.md +209 -0
  340. package/habilidades/react-experto/evals/evals.json +55 -0
  341. package/habilidades/react-experto/recursos/patrones-y-ejemplos-completos.md +240 -0
  342. package/habilidades/react-optimizacion/SKILL.md +174 -0
  343. package/habilidades/react-optimizacion/recursos/patrones-avanzados.md +138 -0
  344. package/habilidades/redis-experto/SKILL.md +305 -0
  345. package/habilidades/release-semver/.evolved.json +9 -0
  346. package/habilidades/release-semver/SKILL.md +248 -0
  347. package/habilidades/release-semver/scripts/generar-changelog.sh +238 -0
  348. package/habilidades/rust-experto/SKILL.md +400 -0
  349. package/habilidades/rust-patrones/SKILL.md +296 -0
  350. package/habilidades/rust-testing/SKILL.md +311 -0
  351. package/habilidades/seguridad-skills-ia/SKILL.md +262 -0
  352. package/habilidades/sql-optimizacion/SKILL.md +200 -0
  353. package/habilidades/sql-optimizacion/evals/evals.json +54 -0
  354. package/habilidades/sql-optimizacion/recursos/patrones-sql-avanzados.md +131 -0
  355. package/habilidades/sre-patrones/SKILL.md +333 -0
  356. package/habilidades/sre-patrones/recursos/chaos-engineering.md +241 -0
  357. package/habilidades/sre-patrones/recursos/oncall-design.md +236 -0
  358. package/habilidades/stripe-pagos/SKILL.md +550 -0
  359. package/habilidades/stripe-pagos/recursos/errores-reintentos.md +390 -0
  360. package/habilidades/stripe-pagos/recursos/stripe-connect.md +290 -0
  361. package/habilidades/structured-outputs/SKILL.md +343 -0
  362. package/habilidades/swift-experto/SKILL.md +320 -0
  363. package/habilidades/swift-experto/recursos/keychain-y-wrappers.md +110 -0
  364. package/habilidades/swift-patrones/SKILL.md +313 -0
  365. package/habilidades/swift-patrones/recursos/tca-ejemplo-completo.md +113 -0
  366. package/habilidades/swift-testing/SKILL.md +254 -0
  367. package/habilidades/swift-testing/recursos/xcuitest-planes.md +143 -0
  368. package/habilidades/swl-dashboard/SKILL.md +370 -0
  369. package/habilidades/swl-markitdown/SKILL.md +285 -0
  370. package/habilidades/swl-markitdown/evals/evals.json +52 -0
  371. package/habilidades/swl-revisar-impacto/SKILL.md +233 -0
  372. package/habilidades/tailwind-experto/SKILL.md +240 -0
  373. package/habilidades/tailwind-experto/recursos/referencia-completa.md +184 -0
  374. package/habilidades/tdd-workflow/SKILL.md +293 -0
  375. package/habilidades/terraform-experto/SKILL.md +321 -0
  376. package/habilidades/testing-python/SKILL.md +340 -0
  377. package/habilidades/testing-python/recursos/ejemplos-completos.md +167 -0
  378. package/habilidades/threat-model-lite/SKILL.md +246 -0
  379. package/habilidades/tracing-processor/SKILL.md +212 -0
  380. package/habilidades/tracking-measurement/SKILL.md +239 -0
  381. package/habilidades/tracking-measurement/recursos/consent-mode.md +231 -0
  382. package/habilidades/tracking-measurement/recursos/gtm-datalayer.md +216 -0
  383. package/habilidades/tracking-measurement/recursos/meta-capi.md +262 -0
  384. package/habilidades/typescript-avanzado/SKILL.md +144 -0
  385. package/habilidades/typescript-avanzado/evals/evals.json +55 -0
  386. package/habilidades/typescript-avanzado/recursos/patrones-y-ejemplos-completos.md +298 -0
  387. package/habilidades/typescript-diagnosticos/SKILL.md +513 -0
  388. package/habilidades/ux-diseno/SKILL.md +116 -0
  389. package/habilidades/ux-diseno/evals/evals.json +43 -0
  390. package/habilidades/ux-diseno/recursos/patrones-ux-referencia.md +214 -0
  391. package/habilidades/validacion-ci-sistema/SKILL.md +136 -0
  392. package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +369 -0
  393. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +286 -0
  394. package/habilidades/verificacion-evidencia/SKILL.md +160 -0
  395. package/habilidades/verificar-trabajo/SKILL.md +303 -0
  396. package/habilidades/verificar-trabajo/recursos/plantilla-verificacion.md +60 -0
  397. package/habilidades/wiki-conocimiento/SKILL.md +276 -0
  398. package/habilidades/wireframes-flujos/SKILL.md +212 -0
  399. package/habilidades/wireframes-flujos/recursos/referencia-completa.md +192 -0
  400. package/habilidades/workflow-claude-code/SKILL.md +260 -0
  401. package/habilidades/workflow-claude-code/recursos/referencia-completa.md +109 -0
  402. package/hooks/_run-hook.sh +57 -0
  403. package/hooks/actualizar-perfil-usuario.js +364 -0
  404. package/hooks/agente-lifecycle.js +71 -0
  405. package/hooks/aiisms-detector.js +173 -0
  406. package/hooks/audit-trail.js +204 -0
  407. package/hooks/auto-background.js +97 -0
  408. package/hooks/auto-consolidacion.js +178 -0
  409. package/hooks/auto-evolucion.js +666 -0
  410. package/hooks/auto-restaurar-settings.js +360 -0
  411. package/hooks/calidad-pre-commit.js +929 -0
  412. package/hooks/calidad-typescript.js +511 -0
  413. package/hooks/captura-feedback-usuario.js +148 -0
  414. package/hooks/check-update.js +211 -0
  415. package/hooks/clasificador-mensajes.js +271 -0
  416. package/hooks/degradacion-instintos.js +272 -0
  417. package/hooks/escaneo-secretos.js +389 -0
  418. package/hooks/extraccion-aprendizajes.js +763 -0
  419. package/hooks/grafo-contexto.js +129 -0
  420. package/hooks/graph-update.js +67 -0
  421. package/hooks/guardrail-modelo.js +247 -0
  422. package/hooks/inbox-aviso.js +75 -0
  423. package/hooks/inyeccion-contexto.js +246 -0
  424. package/hooks/lib/abort-registry.js +214 -0
  425. package/hooks/lib/agent-backend.js +210 -0
  426. package/hooks/lib/agent-comms.js +263 -0
  427. package/hooks/lib/agent-issue-codes.js +284 -0
  428. package/hooks/lib/agent-matcher.js +189 -0
  429. package/hooks/lib/async-hook-registry.js +252 -0
  430. package/hooks/lib/atomic-write.js +130 -0
  431. package/hooks/lib/auto-consolidator.js +335 -0
  432. package/hooks/lib/canary-skills.js +187 -0
  433. package/hooks/lib/consolidation-lock.js +291 -0
  434. package/hooks/lib/context-builder.js +430 -0
  435. package/hooks/lib/context-compressor.js +657 -0
  436. package/hooks/lib/convergence-detector.js +105 -0
  437. package/hooks/lib/delegation-tracker.js +198 -0
  438. package/hooks/lib/detectar-package-manager.js +423 -0
  439. package/hooks/lib/edit-accumulator.js +171 -0
  440. package/hooks/lib/error-classifier.js +308 -0
  441. package/hooks/lib/event-bus.js +112 -0
  442. package/hooks/lib/evolution-tracker.js +442 -0
  443. package/hooks/lib/execution-state.js +316 -0
  444. package/hooks/lib/fingerprint-id.js +135 -0
  445. package/hooks/lib/gateway-notify.js +116 -0
  446. package/hooks/lib/graph-security.js +75 -0
  447. package/hooks/lib/guardrail-metrics.js +202 -0
  448. package/hooks/lib/hook-circuit-breaker.js +206 -0
  449. package/hooks/lib/loop-detector.js +267 -0
  450. package/hooks/lib/mcp-health.js +184 -0
  451. package/hooks/lib/mcp-pool.js +436 -0
  452. package/hooks/lib/memory-search.js +506 -0
  453. package/hooks/lib/merkle-audit.js +96 -0
  454. package/hooks/lib/model-router.js +222 -0
  455. package/hooks/lib/normalize-error.js +324 -0
  456. package/hooks/lib/normalize-input.js +65 -0
  457. package/hooks/lib/nudge-tracker.js +306 -0
  458. package/hooks/lib/otlp-exporter.js +365 -0
  459. package/hooks/lib/performance-marks.js +239 -0
  460. package/hooks/lib/privacy-filter.js +128 -0
  461. package/hooks/lib/prompt-injection-scanner.js +209 -0
  462. package/hooks/lib/provenance-tracker.js +183 -0
  463. package/hooks/lib/rate-limit-tracker.js +253 -0
  464. package/hooks/lib/reflect-classifier.js +164 -0
  465. package/hooks/lib/resource-quota.js +122 -0
  466. package/hooks/lib/retry-jitter.js +165 -0
  467. package/hooks/lib/risk-engine.js +368 -0
  468. package/hooks/lib/run-log.js +408 -0
  469. package/hooks/lib/session-fts.js +379 -0
  470. package/hooks/lib/session-store.js +293 -0
  471. package/hooks/lib/singleton-guard.js +159 -0
  472. package/hooks/lib/skill-auditor.js +588 -0
  473. package/hooks/lib/sync-status.js +228 -0
  474. package/hooks/lib/taint-tracker.js +107 -0
  475. package/hooks/lib/task-service.js +295 -0
  476. package/hooks/lib/tech-skills-map.js +146 -0
  477. package/hooks/lib/telegram-cliente.js +159 -0
  478. package/hooks/lib/telegram-config.js +170 -0
  479. package/hooks/lib/token-budget.js +156 -0
  480. package/hooks/lib/token-estimator.js +420 -0
  481. package/hooks/lib/toon-compressor.js +245 -0
  482. package/hooks/lib/usage-model.js +183 -0
  483. package/hooks/lib/variable-resolver.js +230 -0
  484. package/hooks/linea-estado.js +324 -0
  485. package/hooks/metricas-evolucion.js +209 -0
  486. package/hooks/monitor-contexto.js +325 -0
  487. package/hooks/notificacion-sesion-stop.js +198 -0
  488. package/hooks/notificacion-telegram-notification.js +4 -0
  489. package/hooks/notificacion-telegram-subagent.js +4 -0
  490. package/hooks/notificacion-telegram.js +267 -0
  491. package/hooks/preservar-estado-pre-compact.js +150 -0
  492. package/hooks/proteccion-rutas.js +366 -0
  493. package/hooks/registro-turnos.js +209 -0
  494. package/hooks/resumen-sesion.js +249 -0
  495. package/hooks/risk-scoring.js +323 -0
  496. package/hooks/rotar-audit-auto.js +122 -0
  497. package/hooks/sugerir-regenerar-inventario.js +170 -0
  498. package/hooks/telemetria-agentes.js +167 -0
  499. package/hooks/tracking-costos.js +688 -0
  500. package/instintos/global.yaml +8 -0
  501. package/instintos/perfil-usuario.yaml +53 -0
  502. package/instintos/prompt-appendices.yaml +57 -0
  503. package/instintos/proyecto.yaml +372 -0
  504. package/manifiestos/gateway-config.json +77 -0
  505. package/manifiestos/handoff-context.json +223 -0
  506. package/manifiestos/hook-profiles.json +44 -0
  507. package/manifiestos/hooks-config.json +360 -0
  508. package/manifiestos/modulos.json +1173 -0
  509. package/manifiestos/perfiles.json +404 -0
  510. package/package.json +86 -0
  511. package/plantillas/ESTADO.md +109 -0
  512. package/plantillas/HOJA-RUTA.md +143 -0
  513. package/plantillas/PROYECTO.md +122 -0
  514. package/plantillas/REQUISITOS.md +132 -0
  515. package/plantillas/auditor-veto-template.md +105 -0
  516. package/plantillas/github-workflows/README.md +47 -0
  517. package/plantillas/github-workflows/release-please.yml +44 -0
  518. package/plantillas/github-workflows/swl-ci.yml +107 -0
  519. package/plantillas/github-workflows/swl-security.yml +51 -0
  520. package/plantillas/mcp-mineru.json +13 -0
  521. package/plantillas/research/ARQUITECTURA.md +220 -0
  522. package/plantillas/research/FUNCIONALIDADES.md +175 -0
  523. package/plantillas/research/RESUMEN.md +165 -0
  524. package/plantillas/research/STACK.md +233 -0
  525. package/plantillas/research/TRAMPAS.md +299 -0
  526. package/plantillas/skill-evals-template.json +44 -0
  527. package/plugin.json +343 -0
  528. package/reglas/accesibilidad.md +269 -0
  529. package/reglas/api-diseno.md +400 -0
  530. package/reglas/arquitectura.md +352 -0
  531. package/reglas/brevedad-output.md +124 -0
  532. package/reglas/cloud-infra.md +247 -0
  533. package/reglas/docs.md +245 -0
  534. package/reglas/estilo-codigo.md +201 -0
  535. package/reglas/git-workflow.md +245 -0
  536. package/reglas/gobernanza.md +271 -0
  537. package/reglas/harness-claude-code.md +213 -0
  538. package/reglas/hooks.md +186 -0
  539. package/reglas/lenguajes/csharp/estilo-codigo.md +231 -0
  540. package/reglas/lenguajes/csharp/hooks.md +281 -0
  541. package/reglas/lenguajes/csharp/patrones.md +226 -0
  542. package/reglas/lenguajes/csharp/seguridad.md +258 -0
  543. package/reglas/lenguajes/csharp/testing.md +176 -0
  544. package/reglas/lenguajes/go/estilo-codigo.md +195 -0
  545. package/reglas/lenguajes/go/hooks.md +249 -0
  546. package/reglas/lenguajes/go/patrones.md +249 -0
  547. package/reglas/lenguajes/go/seguridad.md +225 -0
  548. package/reglas/lenguajes/go/testing.md +272 -0
  549. package/reglas/lenguajes/java/estilo-codigo.md +217 -0
  550. package/reglas/lenguajes/java/hooks.md +251 -0
  551. package/reglas/lenguajes/java/patrones.md +226 -0
  552. package/reglas/lenguajes/java/seguridad.md +233 -0
  553. package/reglas/lenguajes/java/testing.md +238 -0
  554. package/reglas/lenguajes/kotlin/estilo-codigo.md +208 -0
  555. package/reglas/lenguajes/kotlin/hooks.md +245 -0
  556. package/reglas/lenguajes/kotlin/patrones.md +201 -0
  557. package/reglas/lenguajes/kotlin/seguridad.md +202 -0
  558. package/reglas/lenguajes/kotlin/testing.md +236 -0
  559. package/reglas/lenguajes/nextjs/estilo-codigo.md +175 -0
  560. package/reglas/lenguajes/nextjs/hooks.md +186 -0
  561. package/reglas/lenguajes/nextjs/patrones.md +225 -0
  562. package/reglas/lenguajes/nextjs/seguridad.md +216 -0
  563. package/reglas/lenguajes/nextjs/testing.md +193 -0
  564. package/reglas/lenguajes/php/estilo-codigo.md +228 -0
  565. package/reglas/lenguajes/php/hooks.md +165 -0
  566. package/reglas/lenguajes/php/patrones.md +233 -0
  567. package/reglas/lenguajes/php/seguridad.md +186 -0
  568. package/reglas/lenguajes/php/testing.md +205 -0
  569. package/reglas/lenguajes/rust/estilo-codigo.md +207 -0
  570. package/reglas/lenguajes/rust/hooks.md +240 -0
  571. package/reglas/lenguajes/rust/patrones.md +250 -0
  572. package/reglas/lenguajes/rust/seguridad.md +221 -0
  573. package/reglas/lenguajes/rust/testing.md +194 -0
  574. package/reglas/lenguajes/swift/estilo-codigo.md +238 -0
  575. package/reglas/lenguajes/swift/hooks.md +257 -0
  576. package/reglas/lenguajes/swift/patrones.md +235 -0
  577. package/reglas/lenguajes/swift/seguridad.md +248 -0
  578. package/reglas/lenguajes/swift/testing.md +242 -0
  579. package/reglas/markitdown.md +60 -0
  580. package/reglas/memoria-consolidada.md +209 -0
  581. package/reglas/patrones.md +225 -0
  582. package/reglas/performance.md +195 -0
  583. package/reglas/pruebas.md +159 -0
  584. package/reglas/seguridad-agentes.md +351 -0
  585. package/reglas/seguridad.md +151 -0
  586. package/reglas/skills-estandar.md +373 -0
  587. package/reglas/testing.md +193 -0
  588. package/schemas/agent-contract.json +176 -0
  589. package/schemas/agent-frontmatter.schema.json +149 -0
  590. package/schemas/agent-message.schema.json +53 -0
  591. package/schemas/agent-output-implementacion.schema.json +85 -0
  592. package/schemas/agent-output-planificacion.schema.json +113 -0
  593. package/schemas/agent-output-review.schema.json +78 -0
  594. package/schemas/diary-entry.schema.json +80 -0
  595. package/schemas/hook-profiles.schema.json +39 -0
  596. package/schemas/hooks-config.schema.json +74 -0
  597. package/schemas/instinct.schema.json +115 -0
  598. package/schemas/modulos.schema.json +29 -0
  599. package/schemas/perfiles.schema.json +28 -0
  600. package/schemas/plugin.schema.json +64 -0
  601. package/schemas/skill-evals.schema.json +95 -0
  602. package/schemas/skill-frontmatter.schema.json +170 -0
  603. package/scripts/actualizar.js +145 -0
  604. package/scripts/audit-skills.sh +78 -0
  605. package/scripts/auditar-agentes-gaps.js +149 -0
  606. package/scripts/auditar-cobertura-frameworks.js +241 -0
  607. package/scripts/auditar-skills-gaps.js +206 -0
  608. package/scripts/bootstrap-instintos.js +259 -0
  609. package/scripts/check-update.js +109 -0
  610. package/scripts/comandos/agents.js +105 -0
  611. package/scripts/comandos/info.js +108 -0
  612. package/scripts/comandos/install-asistido.js +186 -0
  613. package/scripts/comandos/skills.js +211 -0
  614. package/scripts/configurar-branch-protection.js +418 -0
  615. package/scripts/daemon-swl.py +388 -0
  616. package/scripts/desinstalar.js +130 -0
  617. package/scripts/doctor.js +559 -0
  618. package/scripts/field-report.js +199 -0
  619. package/scripts/generar-inventario.js +317 -0
  620. package/scripts/inbox-tmux-inject.js +161 -0
  621. package/scripts/inferir-herramientas-permitidas.js +586 -0
  622. package/scripts/inicializar.js +133 -0
  623. package/scripts/instalador.js +1031 -0
  624. package/scripts/instalar-git-hook.js +122 -0
  625. package/scripts/lib/agp-frontmatter.js +222 -0
  626. package/scripts/lib/append-con-marcadores.js +199 -0
  627. package/scripts/lib/artefactos-python.js +43 -0
  628. package/scripts/lib/audit-query.js +221 -0
  629. package/scripts/lib/autostart-linux.js +347 -0
  630. package/scripts/lib/autostart-macos.js +360 -0
  631. package/scripts/lib/autostart-windows.js +307 -0
  632. package/scripts/lib/budget-enforcer.js +252 -0
  633. package/scripts/lib/claude-sessions.js +285 -0
  634. package/scripts/lib/configurar-ci.js +380 -0
  635. package/scripts/lib/console-span-exporter.js +92 -0
  636. package/scripts/lib/contadores-inventario.js +217 -0
  637. package/scripts/lib/dashboard-widgets.js +290 -0
  638. package/scripts/lib/detectar-runtime.js +279 -0
  639. package/scripts/lib/detectar-stack.js +187 -0
  640. package/scripts/lib/diary-entry.js +234 -0
  641. package/scripts/lib/drift-detector.js +545 -0
  642. package/scripts/lib/estado.js +124 -0
  643. package/scripts/lib/gestor-componentes.js +243 -0
  644. package/scripts/lib/gitignore-manifest.js +305 -0
  645. package/scripts/lib/graph-analyze.py +556 -0
  646. package/scripts/lib/graph-builder.py +485 -0
  647. package/scripts/lib/graph-cluster.py +259 -0
  648. package/scripts/lib/health-row.js +168 -0
  649. package/scripts/lib/hooks-settings.js +789 -0
  650. package/scripts/lib/manifiestos.js +138 -0
  651. package/scripts/lib/mc-client.js +137 -0
  652. package/scripts/lib/notificaciones-telegram.js +1107 -0
  653. package/scripts/lib/npm-version.js +261 -0
  654. package/scripts/lib/paquetes-conocidos.js +50 -0
  655. package/scripts/lib/preservar-usuario.js +586 -0
  656. package/scripts/lib/prompt-builder.js +264 -0
  657. package/scripts/lib/resolver-externo.js +332 -0
  658. package/scripts/lib/schedule-parser.js +305 -0
  659. package/scripts/lib/scoring-instintos.js +240 -0
  660. package/scripts/lib/seguridad.js +160 -0
  661. package/scripts/lib/selector-interactivo.js +152 -0
  662. package/scripts/lib/semantic-search.js +242 -0
  663. package/scripts/lib/skill-discovery.js +234 -0
  664. package/scripts/lib/skill-metrics.js +246 -0
  665. package/scripts/lib/skill-normalizer.js +112 -0
  666. package/scripts/lib/skills-hub.js +340 -0
  667. package/scripts/lib/span-schema.js +134 -0
  668. package/scripts/lib/tool-cost-analyzer.js +255 -0
  669. package/scripts/lib/tracing-processor-interface.js +286 -0
  670. package/scripts/lib/transformadores/base.js +80 -0
  671. package/scripts/lib/transformadores/claude.js +124 -0
  672. package/scripts/lib/transformadores/codex.js +115 -0
  673. package/scripts/lib/transformadores/copilot.js +106 -0
  674. package/scripts/lib/transformadores/gemini.js +74 -0
  675. package/scripts/lib/transformadores/index.js +35 -0
  676. package/scripts/lib/transformadores/opencode.js +75 -0
  677. package/scripts/lib/ui.js +259 -0
  678. package/scripts/limpiar-artefactos-python.js +131 -0
  679. package/scripts/mcp-orchestrator.py +386 -0
  680. package/scripts/mcp-pool-manager.py +352 -0
  681. package/scripts/mcp-telemetry.py +378 -0
  682. package/scripts/poblar-evolvable.js +226 -0
  683. package/scripts/publicar.js +287 -0
  684. package/scripts/reflect-skills.js +403 -0
  685. package/scripts/rotar-audit-logs.js +185 -0
  686. package/scripts/run-skill-evals.js +242 -0
  687. package/scripts/smoke-test.js +374 -0
  688. package/scripts/token-analysis.py +471 -0
  689. package/scripts/validar-manifest.js +195 -0
  690. package/scripts/validar-memoria.js +321 -0
  691. package/scripts/validar-tests-aislamiento.js +184 -0
  692. package/scripts/validar-tokens-test.js +208 -0
  693. package/scripts/validar.js +147 -0
  694. package/scripts/validate-markdown.py +339 -0
  695. package/scripts/validate-skills.py +385 -0
  696. package/scripts/vendor/claude-usage/README.md +116 -0
  697. package/scripts/vendor/claude-usage/cli.py +334 -0
  698. package/scripts/vendor/claude-usage/dashboard.py +795 -0
  699. package/scripts/vendor/claude-usage/scanner.py +467 -0
  700. package/scripts/vendor/markitdown/cli.py +194 -0
  701. package/scripts/verificar-evolucion.js +289 -0
  702. package/scripts/verificar-release.js +494 -0
@@ -0,0 +1,298 @@
1
+ ---
2
+ name: checkpoints-verificacion
3
+ description: Sistema de checkpoints del GSD para control de flujo entre agentes. Cubre los 3 tipos (human-verify, decision, human-action), formato XML, auto-mode, notificaciones y session snapshots atómicos para persistencia y reanudación. Incluye estructura completa de snapshot con mensajes, actividades, archivos modificados y último veredicto.
4
+ version: "1.1.0"
5
+ herramientasPermitidas: [Read, Write, Edit, Bash, Glob, Grep]
6
+ exclusiones:
7
+ - "No cargar para pausar la ejecución por razones de incertidumbre del agente — los checkpoints son puntos de gobernanza definidos en el plan, no válvulas de escape ante duda."
8
+ - "No cargar para crear más de un checkpoint `decision` por oleada; si hay múltiples bifurcaciones, consolidarlas en una decisión con opciones o escalar con `ejecutar-fase` Desviación Mayor."
9
+ - "No cargar si la decisión ya está especificada en el PLAN.md o CONTEXTO.md — un checkpoint `decision` sobre algo ya resuelto es ruido de gobernanza."
10
+ - "No cargar para registrar el estado de sesión entre agentes; para eso usar `execution-state.js` directamente."
11
+ evolvable: true # default para skill estandar
12
+ ---
13
+ # Checkpoints de Verificación GSD
14
+
15
+ ## Cuándo NO cargar
16
+
17
+ - El agente quiere pausar porque no está seguro de cómo implementar algo — eso no es un checkpoint, es una Desviación Mayor en `ejecutar-fase`. Escalar a `arquitecto-swl` si el bloqueo es técnico.
18
+ - La decisión ya está en PLAN.md o CONTEXTO.md; ejecutar el plan sin pausa adicional.
19
+ - Se quiere registrar el estado entre agentes para serialización y reanudación; usar `execution-state.js` de `hooks/lib/` directamente — los checkpoints son para gobernanza, no para persistencia técnica.
20
+ - La bifurcación es claramente inferior en una opción; usar `human-verify` con recomendación, no `decision`.
21
+
22
+ ## Concepto
23
+
24
+ Un **checkpoint** es un punto de pausa controlada en el flujo de ejecución del sistema GSD.
25
+
26
+ > **Si Claude PUEDE automatizar una decisión, DEBE automatizarla.**
27
+ > Solo se pausa cuando la decisión requiere juicio humano genuino, acción fuera del
28
+ > alcance del agente, o verificación de calidad que el agente no puede hacer por sí solo.
29
+
30
+ | Tipo | Frecuencia | Cuándo |
31
+ |------|-----------|--------|
32
+ | human-verify | ~90% | El agente termina, el humano confirma calidad |
33
+ | decision | ~9% | El agente necesita elegir entre caminos ambiguos |
34
+ | human-action | ~1% | El agente necesita algo que solo el humano puede hacer |
35
+
36
+ ---
37
+
38
+ ## 1. Tipo: human-verify
39
+
40
+ El agente completó una tarea y presenta resultados para revisión.
41
+
42
+ **Cuándo usar**: Al finalizar una fase, generar un documento importante, completar un slice vertical, o detectar una anomalía menor.
43
+
44
+ **Comportamiento**: Presentar checkpoint con toda la información, NO continuar hasta recibir respuesta (salvo `auto_advance: true`), registrar resultado en ESTADO.md.
45
+
46
+ Para templates XML completos y ejemplos concretos, ver [recursos/checkpoint-templates.md](recursos/checkpoint-templates.md).
47
+
48
+ ---
49
+
50
+ ## 2. Tipo: decision
51
+
52
+ El agente encontró una bifurcación donde ambos caminos son válidos pero con implicaciones distintas de negocio, riesgo o prioridad.
53
+
54
+ **Cuándo usar**: Tecnología A vs B no especificada en spec, migración big-bang vs incremental, dos normalizaciones igualmente válidas.
55
+
56
+ **Cuándo NO usar**: La spec ya especifica la decisión, una opción es claramente inferior, la decisión es fácilmente reversible.
57
+
58
+ **Regla de recomendación**: El agente SIEMPRE indica su recomendación con justificación técnica. No es neutral: tiene opinión fundamentada.
59
+
60
+ Para templates XML con pros/contras y ejemplos de migración, ver [recursos/checkpoint-templates.md](recursos/checkpoint-templates.md).
61
+
62
+ ---
63
+
64
+ ## 3. Tipo: human-action
65
+
66
+ El agente necesita que el humano realice una acción fuera de su alcance: configurar credenciales, aprobar gastos, ejecutar en sistemas restringidos.
67
+
68
+ **Cuándo usar**: Configurar secretos, aprobar cargos/licencias, ejecutar en producción con acceso restringido, contactar proveedor externo, aprobar PR con protección de rama.
69
+
70
+ Para templates XML con acciones numeradas y ejemplos de AWS Secrets Manager, ver [recursos/checkpoint-templates.md](recursos/checkpoint-templates.md).
71
+
72
+ ---
73
+
74
+ ## 4. Auto-Mode (auto_advance: true)
75
+
76
+ `auto_advance: true` se usa cuando el checkpoint es informativo: el agente reporta progreso pero no necesita confirmación para continuar.
77
+
78
+ **Reglas estrictas**:
79
+ - `auto_advance: true` SOLO para checkpoints de tipo `human-verify`
80
+ - NUNCA `auto_advance: true` en `decision` o `human-action`
81
+ - Valor por defecto: `false`
82
+
83
+ ---
84
+
85
+ ## 5. Integración con Notificaciones
86
+
87
+ Cada checkpoint emite notificación al canal configurado:
88
+
89
+ ```javascript
90
+ const PRIORIDAD = {
91
+ 'human-action': 'urgente', // notificación inmediata, todos los canales
92
+ 'decision': 'alta', // notificación inmediata, canal principal
93
+ 'human-verify': 'normal', // notificación normal, canal principal
94
+ };
95
+ ```
96
+
97
+ ---
98
+
99
+ ## 6. Registro en ESTADO.md
100
+
101
+ Todo checkpoint resuelto se registra:
102
+
103
+ ```markdown
104
+ | ID | Tipo | Estado | Resolución | Fecha |
105
+ |----|------|--------|-----------|-------|
106
+ | verify-plan-fase2 | human-verify | resuelto | aprobado | 2024-03-20 |
107
+ | decision-db-engine | decision | resuelto | opción-B | 2024-03-21 |
108
+ ```
109
+
110
+ ---
111
+
112
+ ## Reglas de selección de tipo
113
+
114
+ | Situación | Tipo correcto |
115
+ |-----------|--------------|
116
+ | Agente terminó tarea, quiere confirmación | `human-verify` |
117
+ | Lint/tests pasan, reportar sin bloquear | `human-verify` con `auto_advance="true"` |
118
+ | Dos opciones igualmente válidas con distinto impacto | `decision` |
119
+ | Una opción claramente superior | `human-verify` con recomendación (NO `decision`) |
120
+ | Necesita credenciales, accesos o aprobaciones | `human-action` |
121
+
122
+ ---
123
+
124
+ ## Gotchas / Errores comunes no obvios
125
+
126
+ - **`auto_advance: true` en checkpoint `decision`**: el agente marca una decisión de bifurcación real como auto-advance porque "ya tiene preferencia". Causa: se confunde la recomendación del agente con la decisión del usuario. Solución: `auto_advance: true` es exclusivo de `human-verify`; cualquier `decision` o `human-action` siempre espera respuesta explícita del usuario — la regla no tiene excepciones.
127
+ - **Snapshot de sesión escrito con `fs.writeFileSync` en lugar de `atomicWriteJSON`**: si el proceso se interrumpe durante la escritura del snapshot, el archivo queda corrupto y la reanudación falla. Causa: se usa escritura directa por simplicidad. Solución: usar `atomicWriteJSON` de `hooks/lib/atomic-write.js` — escribe a `.tmp` primero y renombra, garantizando atomicidad.
128
+ - **Checkpoint sin `consecuencias_de_espera` en tipo `decision`**: el usuario no sabe cuánto tiempo puede esperar para decidir. Causa: campo omitido como opcional cuando en realidad es crítico para decisiones bloqueantes. Solución: siempre incluir `consecuencias_de_espera` especificando qué tareas quedan bloqueadas si el usuario no responde en N horas.
129
+ - **Session stale reanudada automáticamente después de 24 h**: el agente lee el snapshot con `updated_at` de 2 días antes y reanuda sin verificar. Causa: no se aplicó la detección de sesión stale. Solución: comparar `updated_at` con la hora actual; si hay más de 24 h y `status` es `active`, marcar como `stalled` y emitir `human-verify` antes de continuar.
130
+
131
+ ## Anti-patrones
132
+
133
+ - Checkpoint sin `id` único (dificulta trazabilidad en ESTADO.md)
134
+ - `auto_advance: true` en `decision` o `human-action`
135
+ - Más de 4 opciones en un `decision` (sobrecarga cognitiva)
136
+ - `human-action` para algo que el agente puede hacer con sus herramientas
137
+ - `decision` sin campo `recomendacion`
138
+ - Omitir `consecuencias_de_espera` en `decision`
139
+
140
+ ---
141
+
142
+ ## 7. Estado de ejecución serializable — execution-state.json
143
+
144
+ Cuando un plan multi-agente se pausa (checkpoint) o un agente completa su trabajo,
145
+ registrar el estado en `.planning/execution-state.json` usando `hooks/lib/execution-state.js`.
146
+
147
+ Este archivo permite reanudar planes con estado preciso, sin reconstrucción de contexto
148
+ a partir de texto libre. Inspirado en el patrón ExecutionSnapshot de Sim Studio.
149
+
150
+ ### Al completar un agente
151
+
152
+ ```javascript
153
+ const es = require('./hooks/lib/execution-state');
154
+ es.completarAgente(process.cwd(), 'implementador-swl', 'api-endpoints', {
155
+ archivosCreados: ['src/api.py', 'tests/test_api.py'],
156
+ archivosModificados: ['src/config.py'],
157
+ resumen: 'API REST implementada con FastAPI, 4 endpoints, tests unitarios',
158
+ });
159
+ es.actualizarContexto(process.cwd(), {
160
+ archivosModificados: ['src/api.py', 'tests/test_api.py'],
161
+ testsStatus: 'passing',
162
+ decisiones: ['FastAPI por rendimiento', 'Pydantic v2 para validación'],
163
+ });
164
+ ```
165
+
166
+ ### Al pausar (checkpoint humano)
167
+
168
+ ```javascript
169
+ // Registrar el próximo agente pendiente
170
+ es.establecerProximo(process.cwd(), 'revisor-codigo-swl', 'revision-api');
171
+ // El archivo execution-state.json persiste entre sesiones
172
+ ```
173
+
174
+ ### Al reanudar desde checkpoint
175
+
176
+ ```javascript
177
+ // Leer el estado para saber dónde continuar
178
+ const estado = es.leer(process.cwd());
179
+ console.log(es.formatearResumen(process.cwd()));
180
+ // → "Plan: plan-x — Fase: implementacion
181
+ // Agentes completados:
182
+ // ✓ implementador-swl / api-endpoints
183
+ // → revisor-codigo-swl / revision-api (próximo)"
184
+ ```
185
+
186
+ ### Referencias en prompts con variable-resolver
187
+
188
+ Los outputs registrados pueden referenciarse en prompts del orquestador:
189
+
190
+ ```
191
+ Implementa los endpoints listados en {{planificador-swl.output.archivosACrear}}.
192
+ Decisiones ya tomadas: {{contexto.decisiones}}.
193
+ Tests actuales: {{contexto.testsStatus}}.
194
+ ```
195
+
196
+ Resolver con `hooks/lib/variable-resolver.js`:
197
+
198
+ ```javascript
199
+ const vr = require('./hooks/lib/variable-resolver');
200
+ const promptResuelto = vr.resolver(promptTemplate, process.cwd());
201
+ ```
202
+
203
+ ---
204
+
205
+ ## 8. Session Snapshots — Persistencia atómica para reanudación
206
+
207
+ Cuando una sesión multi-agente se pausa o interrumpe, el snapshot captura el estado
208
+ completo para reanudar sin pérdida de contexto. Complementa `execution-state.json`
209
+ con información de actividad y veredictos.
210
+
211
+ ### Estructura del snapshot
212
+
213
+ ```json
214
+ {
215
+ "metadata": {
216
+ "session_id": "ses_abc123",
217
+ "plan_id": "plan-modulo-pagos",
218
+ "spec": "Implementar módulo de pagos con Stripe",
219
+ "status": "paused | active | completed | failed",
220
+ "iterations": 3,
221
+ "created_at": "2026-04-12T10:00:00Z",
222
+ "updated_at": "2026-04-12T14:30:00Z"
223
+ },
224
+ "state": {
225
+ "current_phase": "implementacion",
226
+ "activities": [
227
+ {
228
+ "agent": "implementador-swl",
229
+ "task": "api-endpoints",
230
+ "phase": "completed",
231
+ "duration_ms": 45000
232
+ },
233
+ {
234
+ "agent": "revisor-codigo-swl",
235
+ "task": "revision-api",
236
+ "phase": "in_progress",
237
+ "duration_ms": null
238
+ }
239
+ ],
240
+ "modified_files": [
241
+ "src/api/pagos.py",
242
+ "src/services/stripe_service.py",
243
+ "tests/test_pagos.py"
244
+ ],
245
+ "git_tracking": {
246
+ "branch": "feat/modulo-pagos",
247
+ "commits_ahead": 3,
248
+ "last_commit": "abc1234"
249
+ }
250
+ },
251
+ "context": {
252
+ "decisions": ["Stripe Checkout por simplicidad", "Webhooks async"],
253
+ "tests_status": "passing",
254
+ "pending_checkpoints": ["verify-integracion-stripe"]
255
+ },
256
+ "last_verdict": {
257
+ "verdict": "Fail",
258
+ "risk": "Medium",
259
+ "score": 0.75,
260
+ "failures": [{"artifact": "src/services/stripe_service.py", "level": "DATOS_FLUYEN", "reason": "Webhook no procesa evento checkout.session.completed"}],
261
+ "nextStep": {"action": "Fix", "instructions": ["Implementar handler para checkout.session.completed en webhook endpoint"]}
262
+ }
263
+ }
264
+ ```
265
+
266
+ ### Persistencia atómica
267
+
268
+ Escribir snapshots con el patrón write-tmp-rename para evitar corrupción:
269
+
270
+ ```javascript
271
+ const { atomicWriteJSON } = require('./hooks/lib/atomic-write');
272
+ // Escribe a .tmp primero, luego renombra — si el proceso muere a mitad
273
+ // de escritura, el archivo original permanece intacto
274
+ atomicWriteJSON(path.join(planningDir, 'session-snapshot.json'), snapshot);
275
+ ```
276
+
277
+ NUNCA escribir directamente al archivo de snapshot — una interrupción a mitad
278
+ de escritura corrompe el estado y pierde la capacidad de reanudación.
279
+
280
+ ### Reanudación desde snapshot
281
+
282
+ Al reanudar una sesión pausada:
283
+
284
+ 1. Leer `session-snapshot.json` con `execution-state.js`.
285
+ 2. Verificar `last_verdict` — si fue `Fail`, las `nextStep.instructions` son la
286
+ primera tarea del ejecutor.
287
+ 3. Verificar `modified_files` contra el estado actual de git para detectar cambios
288
+ externos durante la pausa.
289
+ 4. Restaurar `context.decisions` para que los agentes no re-debatan decisiones ya tomadas.
290
+ 5. Continuar desde `state.current_phase` con el siguiente agente pendiente.
291
+
292
+ ### Detección de sesión stale
293
+
294
+ Si `updated_at` tiene más de 24 horas y `status` es `active`:
295
+
296
+ - Marcar como `stalled` en el snapshot.
297
+ - Emitir checkpoint `human-verify` para confirmar si se debe continuar o descartar.
298
+ - No reanudar automáticamente sesiones stale — pueden tener contexto desactualizado.
@@ -0,0 +1,360 @@
1
+ # Templates de Checkpoints — Referencia Rápida
2
+
3
+ Copia el template del tipo correcto y rellena los campos marcados con `[...]`.
4
+ Elimina los comentarios `<!-- ... -->` antes de emitir el checkpoint.
5
+
6
+ ---
7
+
8
+ ## Tipo 1: human-verify
9
+
10
+ Usar cuando el agente terminó trabajo y el humano debe confirmar calidad antes de continuar.
11
+
12
+ ```xml
13
+ <checkpoint type="human-verify" id="verify-[identificador-unico]" auto_advance="false">
14
+ <titulo>[Qué se hizo — frase corta descriptiva]</titulo>
15
+
16
+ <resumen>
17
+ [2-4 oraciones describiendo qué se implementó, qué decisiones se tomaron
18
+ y cuál es el estado actual. Ser concreto: números, archivos, resultados.]
19
+ </resumen>
20
+
21
+ <artefactos>
22
+ <artefacto tipo="archivo" ruta="[ruta/al/archivo.md]" />
23
+ <artefacto tipo="archivo" ruta="[ruta/al/otro.py]" />
24
+ <!-- tipo puede ser: archivo | log | url | directorio -->
25
+ </artefactos>
26
+
27
+ <metricas>
28
+ <metrica nombre="tareas_completadas" valor="[N]" />
29
+ <metrica nombre="tareas_totales" valor="[N]" />
30
+ <metrica nombre="tests_pasando" valor="[N]" />
31
+ <metrica nombre="cobertura_pct" valor="[N]" />
32
+ <!-- Agregar métricas relevantes al contexto -->
33
+ </metricas>
34
+
35
+ <preguntas>
36
+ <!-- Opcional: preguntas específicas que el humano debe considerar -->
37
+ <pregunta id="q1">[Pregunta concreta sobre el trabajo entregado]</pregunta>
38
+ <pregunta id="q2">[Pregunta sobre riesgo o edge case identificado]</pregunta>
39
+ </preguntas>
40
+
41
+ <opciones>
42
+ <opcion valor="aprobar">Aprobar y continuar con [siguiente paso]</opcion>
43
+ <opcion valor="ajustar">Ajustar con feedback específico</opcion>
44
+ <opcion valor="rechazar">Rechazar y rehacer desde [punto de reintento]</opcion>
45
+ </opciones>
46
+ </checkpoint>
47
+ ```
48
+
49
+ ### Ejemplo concreto: verificación de slice de autenticación
50
+
51
+ ```xml
52
+ <checkpoint type="human-verify" id="verify-auth-slice1" auto_advance="false">
53
+ <titulo>Slice 1 completo: modelos y endpoints de autenticación JWT</titulo>
54
+
55
+ <resumen>
56
+ Se implementaron los modelos Usuario y Sesion con migraciones Alembic,
57
+ los endpoints /auth/login y /auth/refresh con RBAC, y los schemas Pydantic
58
+ correspondientes. La cobertura de tests es 94%. El linter y mypy pasan sin errores.
59
+ </resumen>
60
+
61
+ <artefactos>
62
+ <artefacto tipo="archivo" ruta="app/models/usuario.py" />
63
+ <artefacto tipo="archivo" ruta="app/routers/auth.py" />
64
+ <artefacto tipo="archivo" ruta="tests/test_auth.py" />
65
+ <artefacto tipo="archivo" ruta="alembic/versions/001_usuarios.py" />
66
+ </artefactos>
67
+
68
+ <metricas>
69
+ <metrica nombre="endpoints_implementados" valor="2" />
70
+ <metrica nombre="tests_pasando" valor="18" />
71
+ <metrica nombre="cobertura_pct" valor="94" />
72
+ <metrica nombre="errores_mypy" valor="0" />
73
+ </metricas>
74
+
75
+ <preguntas>
76
+ <pregunta id="q1">¿El tiempo de expiración del token (24h) coincide con el requerimiento de negocio?</pregunta>
77
+ <pregunta id="q2">¿Se requiere soporte para múltiples sesiones simultáneas o solo la sesión más reciente?</pregunta>
78
+ </preguntas>
79
+
80
+ <opciones>
81
+ <opcion valor="aprobar">Aprobar y continuar con Slice 2 (CRUD de usuarios)</opcion>
82
+ <opcion valor="ajustar">Ajustar con feedback específico antes de Slice 2</opcion>
83
+ <opcion valor="rechazar">Rechazar y rehacer el slice desde los modelos</opcion>
84
+ </opciones>
85
+ </checkpoint>
86
+ ```
87
+
88
+ ### Variante auto_advance (informativo, sin pausa)
89
+
90
+ Usar cuando el resultado es positivo y no requiere confirmación explícita:
91
+
92
+ ```xml
93
+ <checkpoint type="human-verify" id="verify-lint-[fase]" auto_advance="true">
94
+ <titulo>Lint, type-check y tests pasaron — continuando automáticamente</titulo>
95
+
96
+ <resumen>
97
+ Todos los archivos del Slice [N] pasaron ruff, mypy y pytest sin errores.
98
+ Se continúa automáticamente con el Slice [N+1].
99
+ </resumen>
100
+
101
+ <artefactos>
102
+ <artefacto tipo="log" ruta=".claude/logs/lint-[fecha].txt" />
103
+ </artefactos>
104
+
105
+ <metricas>
106
+ <metrica nombre="errores_ruff" valor="0" />
107
+ <metrica nombre="errores_mypy" valor="0" />
108
+ <metrica nombre="tests_pasando" valor="[N]" />
109
+ </metricas>
110
+ </checkpoint>
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Tipo 2: decision
116
+
117
+ Usar cuando hay una bifurcación real donde ambas opciones son válidas y el humano
118
+ debe elegir según criterios de negocio, riesgo o prioridad que el agente no puede resolver.
119
+
120
+ ```xml
121
+ <checkpoint type="decision" id="decision-[dominio]-[tema]" auto_advance="false">
122
+ <titulo>[Decisión que se necesita — formulada como pregunta o elección]</titulo>
123
+
124
+ <contexto>
125
+ [Explicar por qué se llegó a esta bifurcación. Qué dice (o no dice) la spec.
126
+ Qué consecuencias tiene cada camino. 3-5 oraciones máximo.]
127
+ </contexto>
128
+
129
+ <opciones>
130
+ <opcion id="A" recomendada="false">
131
+ <!-- recomendada="true" en la opción que el agente recomienda -->
132
+ <nombre>[Nombre corto de la opción A]</nombre>
133
+ <pros>
134
+ <pro>[Ventaja concreta y medible]</pro>
135
+ <pro>[Otra ventaja]</pro>
136
+ </pros>
137
+ <contras>
138
+ <contra>[Desventaja concreta]</contra>
139
+ <contra>[Otra desventaja]</contra>
140
+ </contras>
141
+ <impacto>[Impacto en tiempo, costo, riesgo o mantenimiento. Sé específico.]</impacto>
142
+ </opcion>
143
+
144
+ <opcion id="B" recomendada="true">
145
+ <nombre>[Nombre corto de la opción B]</nombre>
146
+ <pros>
147
+ <pro>[Ventaja]</pro>
148
+ </pros>
149
+ <contras>
150
+ <contra>[Desventaja]</contra>
151
+ </contras>
152
+ <impacto>[Impacto]</impacto>
153
+ </opcion>
154
+
155
+ <!-- Agregar opción C solo si genuinamente hay 3 caminos distintos.
156
+ Máximo 4 opciones por checkpoint. -->
157
+ </opciones>
158
+
159
+ <recomendacion>
160
+ [Párrafo explicando por qué el agente recomienda la opción marcada.
161
+ Fundamentar con criterios técnicos, no preferencias. Ser directo.]
162
+ </recomendacion>
163
+
164
+ <consecuencias_de_espera>
165
+ [Qué está bloqueado mientras no se toma esta decisión.
166
+ Qué tareas pueden avanzar de forma independiente mientras tanto.]
167
+ </consecuencias_de_espera>
168
+ </checkpoint>
169
+ ```
170
+
171
+ ### Ejemplo concreto: elección de estrategia de migración
172
+
173
+ ```xml
174
+ <checkpoint type="decision" id="decision-migracion-schema-v2" auto_advance="false">
175
+ <titulo>Estrategia de migración: big-bang vs incremental para schema v2</titulo>
176
+
177
+ <contexto>
178
+ El schema v2 requiere renombrar 12 columnas y agregar 3 tablas nuevas.
179
+ La base de datos de producción tiene 2.3M registros. La spec no especifica
180
+ la estrategia de migración. Hay dos caminos viables con trade-offs distintos.
181
+ </contexto>
182
+
183
+ <opciones>
184
+ <opcion id="A" recomendada="false">
185
+ <nombre>Big-bang: migración única con ventana de mantenimiento</nombre>
186
+ <pros>
187
+ <pro>Código más simple: sin lógica de compatibilidad dual</pro>
188
+ <pro>Migración completa en una sola operación atómica</pro>
189
+ </pros>
190
+ <contras>
191
+ <contra>Requiere ventana de mantenimiento de ~45 minutos</contra>
192
+ <contra>Riesgo de rollback complejo si falla a mitad</contra>
193
+ </contras>
194
+ <impacto>Downtime de 45 min. Implementación: 2 días. Sin deuda técnica residual.</impacto>
195
+ </opcion>
196
+
197
+ <opcion id="B" recomendada="true">
198
+ <nombre>Incremental: expand-contract pattern (sin downtime)</nombre>
199
+ <pros>
200
+ <pro>Zero downtime: producción nunca se interrumpe</pro>
201
+ <pro>Rollback simple en cualquier punto de la migración</pro>
202
+ </pros>
203
+ <contras>
204
+ <contra>Código temporal de compatibilidad por ~2 semanas</contra>
205
+ <contra>Requiere 3 deployments en lugar de 1</contra>
206
+ </contras>
207
+ <impacto>Sin downtime. Implementación: 5 días. Complejidad temporal gestionable.</impacto>
208
+ </opcion>
209
+ </opciones>
210
+
211
+ <recomendacion>
212
+ Se recomienda la opción B (expand-contract) porque la aplicación tiene SLA de
213
+ disponibilidad del 99.5% y 45 minutos de downtime viola ese acuerdo. El coste
214
+ adicional de 3 días de implementación es menor que el riesgo de incumplimiento del SLA.
215
+ </recomendacion>
216
+
217
+ <consecuencias_de_espera>
218
+ El Slice 3 (endpoints de reportes) está bloqueado hasta esta decisión.
219
+ Los Slices 1 y 2 (autenticación y CRUD básico) pueden continuar independientemente.
220
+ </consecuencias_de_espera>
221
+ </checkpoint>
222
+ ```
223
+
224
+ ---
225
+
226
+ ## Tipo 3: human-action
227
+
228
+ Usar cuando el agente necesita que el humano realice una acción fuera del alcance
229
+ del agente: configurar credenciales, aprobar gastos, ejecutar en sistemas restringidos, etc.
230
+
231
+ ```xml
232
+ <checkpoint type="human-action" id="action-[dominio]-[accion]" auto_advance="false">
233
+ <titulo>[Acción requerida — imperativo claro: "Configurar X", "Aprobar Y", "Ejecutar Z"]</titulo>
234
+
235
+ <razon>
236
+ [Por qué el agente no puede hacer esto por sí solo. Ser honesto y específico:
237
+ "No tiene acceso a X", "Requiere autorización de Y", "Está fuera del sandbox".]
238
+ </razon>
239
+
240
+ <acciones_requeridas>
241
+ <accion orden="1">
242
+ <descripcion>[Paso concreto y accionable]</descripcion>
243
+ <detalle>
244
+ [Información específica necesaria para completar el paso:
245
+ rutas, IDs, formatos, valores exactos.]
246
+ </detalle>
247
+ </accion>
248
+
249
+ <accion orden="2">
250
+ <descripcion>[Siguiente paso]</descripcion>
251
+ <detalle>[Detalles]</detalle>
252
+ </accion>
253
+
254
+ <accion orden="N">
255
+ <descripcion>Confirmar aquí cuando todas las acciones anteriores estén completadas</descripcion>
256
+ </accion>
257
+ </acciones_requeridas>
258
+
259
+ <bloqueado_hasta>
260
+ [Qué tareas están bloqueadas hasta que estas acciones se completen.
261
+ Ser específico: nombres de tareas, slices o fases.]
262
+ </bloqueado_hasta>
263
+
264
+ <tiempo_estimado>[Estimación realista: "5-10 minutos", "1-2 horas", "1 día hábil"]</tiempo_estimado>
265
+
266
+ <!-- Opcional: notificación de urgencia -->
267
+ <notificacion>
268
+ <prioridad>urgente</prioridad>
269
+ <canales>desktop,telegram</canales>
270
+ <resumen_corto>BLOQUEADO: [descripción de 60 chars máximo]</resumen_corto>
271
+ </notificacion>
272
+ </checkpoint>
273
+ ```
274
+
275
+ ### Ejemplo concreto: configuración de secretos en producción
276
+
277
+ ```xml
278
+ <checkpoint type="human-action" id="action-secrets-produccion" auto_advance="false">
279
+ <titulo>Configurar credenciales de base de datos en gestor de secretos de producción</titulo>
280
+
281
+ <razon>
282
+ El agente no tiene acceso al gestor de secretos de producción (AWS Secrets Manager).
283
+ Las credenciales son necesarias para que el pipeline de CI pueda ejecutar las migraciones
284
+ de Alembic contra la base de datos de producción en el siguiente deployment.
285
+ </razon>
286
+
287
+ <acciones_requeridas>
288
+ <accion orden="1">
289
+ <descripcion>Acceder a AWS Secrets Manager en la consola de producción</descripcion>
290
+ <detalle>
291
+ Región: us-east-1
292
+ Cuenta AWS: [número de cuenta]
293
+ URL: https://console.aws.amazon.com/secretsmanager/home?region=us-east-1
294
+ </detalle>
295
+ </accion>
296
+
297
+ <accion orden="2">
298
+ <descripcion>Crear o actualizar el secreto "sigaf/prod/database"</descripcion>
299
+ <detalle>
300
+ Estructura JSON requerida (copiar exactamente):
301
+ {
302
+ "host": "[hostname RDS de producción]",
303
+ "port": 5432,
304
+ "database": "sigaf_prod",
305
+ "username": "[usuario de producción]",
306
+ "password": "[contraseña segura — mínimo 32 chars, símbolos incluidos]"
307
+ }
308
+ </detalle>
309
+ </accion>
310
+
311
+ <accion orden="3">
312
+ <descripcion>Agregar el ARN del secreto como variable en GitHub Actions</descripcion>
313
+ <detalle>
314
+ Settings → Secrets and variables → Actions → New repository secret
315
+ Nombre: PROD_DB_SECRET_ARN
316
+ Valor: arn:aws:secretsmanager:us-east-1:[cuenta]:secret:sigaf/prod/database-[sufijo]
317
+ </detalle>
318
+ </accion>
319
+
320
+ <accion orden="4">
321
+ <descripcion>Confirmar aquí que los tres pasos anteriores están completos</descripcion>
322
+ </accion>
323
+ </acciones_requeridas>
324
+
325
+ <bloqueado_hasta>
326
+ La tarea "deploy-produccion" y el Slice 4 completo están bloqueados hasta
327
+ completar estas acciones. El desarrollo local puede continuar sin ellas.
328
+ </bloqueado_hasta>
329
+
330
+ <tiempo_estimado>10-15 minutos</tiempo_estimado>
331
+
332
+ <notificacion>
333
+ <prioridad>urgente</prioridad>
334
+ <canales>desktop,telegram</canales>
335
+ <resumen_corto>BLOQUEADO: Configurar credenciales AWS para deploy a producción</resumen_corto>
336
+ </notificacion>
337
+ </checkpoint>
338
+ ```
339
+
340
+ ---
341
+
342
+ ## Reglas de selección de tipo
343
+
344
+ | Situación | Tipo correcto |
345
+ |-----------|--------------|
346
+ | El agente terminó una tarea y quiere confirmación de calidad | `human-verify` |
347
+ | El lint/tests pasan, reportar sin bloquear | `human-verify` con `auto_advance="true"` |
348
+ | Hay dos opciones técnicas igualmente válidas con distinto impacto | `decision` |
349
+ | Hay una opción claramente superior | NO usar `decision` — usar `human-verify` con recomendación |
350
+ | El agente necesita credenciales, accesos o aprobaciones externas | `human-action` |
351
+ | Necesita que alguien ejecute algo en producción | `human-action` |
352
+
353
+ ## Anti-patrones
354
+
355
+ - Checkpoint sin `id` único: dificulta la trazabilidad en ESTADO.md
356
+ - `auto_advance="true"` en `decision` o `human-action`: nunca válido
357
+ - Más de 4 opciones en un `decision`: sobrecarga cognitiva
358
+ - `human-action` para algo que el agente puede hacer con sus herramientas disponibles
359
+ - `decision` sin campo `recomendacion`: el agente siempre debe tener una posición fundamentada
360
+ - Omitir `consecuencias_de_espera` en `decision`: el humano necesita saber qué se bloquea