@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,396 @@
1
+ ---
2
+ name: swl:notificaciones
3
+ description: Gestiona el sistema de notificaciones Telegram de swl-ses (opt-in). Subcomandos: init (flujo interactivo de configuración), status (estado actual sin mostrar credenciales), disable (quitar hooks SWL de settings global), bot start|stop|status|restart|enable-autostart|disable-autostart (daemon bidireccional con autostart por OS — Windows Scheduled Task, Linux systemd --user, macOS LaunchAgent).
4
+ allowed_tools: ["Read", "Bash"]
5
+ ---
6
+
7
+ # /swl:notificaciones — Gestión de notificaciones Telegram
8
+
9
+ Gestiona el hook saliente y el daemon bidireccional de Telegram que swl-ses
10
+ instala como feature opt-in. Toda la lógica de credenciales, settings y
11
+ baseline la delega a `scripts/lib/notificaciones-telegram.js` — este
12
+ comando solo orquesta.
13
+
14
+ **Seguridad**: el comando NUNCA muestra el token. Solo muestra metadata
15
+ (longitud, primeros 3 caracteres, últimos 4 dígitos del chat_id). Las
16
+ credenciales viven en `~/.claude/notifications/.env`, fuera del repositorio.
17
+
18
+ ## Cuándo NO invocarme
19
+
20
+ - Para configurar el gateway bidireccional completo (`/swl:gateway`): ese
21
+ componente gestiona adaptadores Telegram, Discord, Slack y Webhook con
22
+ `node-telegram-bot-api`. Este comando es para el hook saliente zero-deps.
23
+ - Para enviar mensajes a Telegram desde código: usar `hooks/lib/telegram-cliente.js`
24
+ directamente.
25
+ - Para revisar el estado del gateway: `/swl:gateway status`.
26
+ - Para ejecutar el bot daemon: usar los subcomandos `bot start|stop|status|restart`
27
+ o `bot enable-autostart|disable-autostart`. El binario está en `bin/swl-telegram-bot.js`.
28
+
29
+ ## Subcomandos
30
+
31
+ ### `/swl:notificaciones init`
32
+
33
+ Lanza el flujo interactivo de configuración. Equivalente al paso 9 del
34
+ instalador — útil cuando el usuario saltó el opt-in durante la instalación
35
+ o quiere reconfigurar.
36
+
37
+ **Flujo**:
38
+ 1. Verifica la feature flag `SWL_NOTIFICACIONES_TELEGRAM`. Si vale `0`, sale sin tocar nada.
39
+ 2. Si ya existe `~/.claude/notifications/.env`, pregunta si reutilizar o sobreescribir.
40
+ 3. Muestra instrucciones para obtener token (BotFather) y chat_id (`/quien`).
41
+ 4. Solicita `TELEGRAM_BOT_TOKEN` y `TELEGRAM_CHAT_ID`.
42
+ 5. Escribe `.env` con permisos 600 en POSIX.
43
+ 6. Genera `baseline-hooks.json` para auto-restauración de settings.
44
+ 7. Hace merge de los hooks SWL en `~/.claude/settings.json` global (backup previo).
45
+
46
+ **Ejemplo**:
47
+ ```
48
+ /swl:notificaciones init
49
+ ```
50
+
51
+ **Modo headless** (sin TTY):
52
+ ```bash
53
+ # Usar el instalador directamente con flag
54
+ npx @saulwade/swl-ses@latest install --with-notificaciones=<TOKEN>,<CHAT_ID>
55
+ ```
56
+
57
+ **Criterio de éxito**: al terminar, el hook `notificacion-telegram.js` está
58
+ registrado en `~/.claude/settings.json` y se envía una notificación de prueba.
59
+
60
+ ### `/swl:notificaciones status`
61
+
62
+ Muestra el estado actual sin revelar credenciales.
63
+
64
+ **Salida esperada**:
65
+ ```
66
+ Notificaciones Telegram — estado actual
67
+ .env: existe
68
+ token: configurado (abc*** — longitud: 46)
69
+ chat_id: configurado (...4521)
70
+ proyectos mudos: ninguno
71
+ bot daemon: detenido (usa `/swl:notificaciones bot start`)
72
+ autostart: no configurado (usa `bot enable-autostart`)
73
+ ```
74
+
75
+ El token nunca aparece completo. El chat_id muestra solo los últimos 4 dígitos.
76
+
77
+ **Ejemplo**:
78
+ ```
79
+ /swl:notificaciones status
80
+ ```
81
+
82
+ ### `/swl:notificaciones disable`
83
+
84
+ Quita los hooks SWL de `~/.claude/settings.json`. Pide confirmación antes
85
+ de actuar. Por defecto conserva `.env` (no borra credenciales sin pedirlo).
86
+
87
+ **Opciones**:
88
+ - Sin flags: quita hooks de settings, conserva `.env` y `baseline-hooks.json`.
89
+ - Con `--purge`: quita hooks Y elimina `.env` y `baseline-hooks.json`. Pide
90
+ confirmación adicional antes de borrar credenciales.
91
+
92
+ **Flujo con confirmación**:
93
+ ```
94
+ ¿Confirmas deshabilitar las notificaciones Telegram? [s/N]
95
+ s
96
+ [notificaciones] 4 hook(s) SWL eliminados de settings.json (2 preservados).
97
+ [notificaciones] .env conservado. Para eliminarlo usa: /swl:notificaciones disable --purge
98
+ ```
99
+
100
+ **Criterio de éxito**: `~/.claude/settings.json` ya no contiene referencias
101
+ a `notificacion-telegram.js` ni `auto-restaurar-settings.js`.
102
+
103
+ **Ejemplo**:
104
+ ```
105
+ /swl:notificaciones disable
106
+ /swl:notificaciones disable --purge
107
+ ```
108
+
109
+ ### `/swl:notificaciones bot start|stop|status|restart`
110
+
111
+ Gestiona el ciclo de vida del daemon bidireccional `bin/swl-telegram-bot.js`.
112
+
113
+ El daemon se inicia en background (desacoplado del proceso padre) con stdout/stderr
114
+ redirigidos a `~/.claude/notifications/bot.stdout.log` y `bot.stderr.log`.
115
+ El PID se almacena en `~/.claude/notifications/bot.pid` para gestión posterior.
116
+
117
+ **Ejemplos**:
118
+ ```
119
+ /swl:notificaciones bot start
120
+ /swl:notificaciones bot stop
121
+ /swl:notificaciones bot status
122
+ /swl:notificaciones bot restart
123
+ ```
124
+
125
+ ### `/swl:notificaciones repair`
126
+
127
+ Repara una instalación rota de notificaciones copiando los hook files al directorio
128
+ `~/.claude/hooks/` y migrando entradas con ruta relativa en `~/.claude/settings.json`
129
+ a ruta absoluta.
130
+
131
+ Úsalo cuando el hook de Stop genera el error:
132
+ ```
133
+ Cannot find module 'D:\...\hooks\notificacion-telegram.js'
134
+ ```
135
+ o cuando `settings.json` contiene `node hooks/notificacion-telegram.js` en lugar
136
+ de la ruta absoluta correcta.
137
+
138
+ **Ejemplo**:
139
+ ```
140
+ /swl:notificaciones repair
141
+ ```
142
+
143
+ ### `/swl:notificaciones bot enable-autostart|disable-autostart`
144
+
145
+ Configura el inicio automático del daemon al arrancar la sesión del usuario.
146
+ Delega al generador correspondiente según el OS:
147
+
148
+ - **Windows**: Scheduled Task (Programador de tareas) con RunLevel Limited (sin elevación)
149
+ - **Linux**: unit systemd `--user` con `WantedBy=default.target` (sin root)
150
+ - **macOS**: LaunchAgent en `~/Library/LaunchAgents/` (sin root, sin LaunchDaemons)
151
+
152
+ El autostart se configura por usuario — nunca requiere sudo ni privilegios de sistema.
153
+
154
+ **Rollback manual si algo sale mal**:
155
+ - Windows: `schtasks /delete /tn "SWL-Telegram-Bot" /f`
156
+ - Linux: `systemctl --user disable --now swl-telegram-bot && rm ~/.config/systemd/user/swl-telegram-bot.service`
157
+ - macOS: `launchctl unload -w ~/Library/LaunchAgents/com.swl.telegram-bot.plist && rm ~/Library/LaunchAgents/com.swl.telegram-bot.plist`
158
+
159
+ **Ejemplos**:
160
+ ```
161
+ /swl:notificaciones bot enable-autostart
162
+ /swl:notificaciones bot disable-autostart
163
+ ```
164
+
165
+ ## Instrucciones de ejecución
166
+
167
+ Al recibir `/swl:notificaciones [subcomando]`:
168
+
169
+ ### Paso 1 — Identificar subcomando
170
+
171
+ Parsear el primer argumento: `init`, `status`, `disable`, `repair`, `bot`.
172
+
173
+ Si no hay argumento o el argumento no es reconocido, mostrar la ayuda:
174
+
175
+ ```
176
+ Uso: /swl:notificaciones <subcomando>
177
+
178
+ Subcomandos disponibles:
179
+ init Configurar notificaciones Telegram
180
+ status Ver estado actual (sin mostrar credenciales)
181
+ disable [--purge] Deshabilitar (conserva .env por defecto)
182
+ repair Reparar hooks rotos (ruta relativa → absoluta)
183
+ bot start Iniciar daemon bidireccional
184
+ bot stop Detener daemon
185
+ bot status Estado del daemon
186
+ bot restart Reiniciar daemon
187
+ bot enable-autostart Configurar inicio automático del bot
188
+ bot disable-autostart Quitar inicio automático del bot
189
+
190
+ ```
191
+
192
+ ### Paso 2 — Ejecutar según subcomando
193
+
194
+ **Para `init`**:
195
+
196
+ ```bash
197
+ node -e "
198
+ const { init } = require('./scripts/lib/notificaciones-telegram');
199
+ init({ esTty: true }).then(r => {
200
+ console.log('[resultado]', r.resultado, r.detalle || '');
201
+ process.exit(r.resultado === 'error' ? 1 : 0);
202
+ }).catch(e => { console.error(e.message); process.exit(1); });
203
+ "
204
+ ```
205
+
206
+ Si el proceso no tiene TTY (modo no interactivo en Claude Code), detectarlo
207
+ y mostrar instrucciones para ejecutar desde terminal:
208
+
209
+ ```
210
+ Este subcomando requiere entrada interactiva (TTY).
211
+ Ejecuta desde tu terminal:
212
+ node -e "require('./scripts/lib/notificaciones-telegram').init({ esTty: true })"
213
+ O usa el instalador:
214
+ npx @saulwade/swl-ses@latest install
215
+ ```
216
+
217
+ **Para `status`**:
218
+
219
+ ```bash
220
+ node -e "
221
+ const { status } = require('./scripts/lib/notificaciones-telegram');
222
+ const s = status();
223
+ console.log('');
224
+ console.log('Notificaciones Telegram — estado actual');
225
+ console.log(' .env: ', s.envExiste ? 'existe' : 'no existe');
226
+ console.log(' token: ', s.tokenConfigurado ? 'configurado' : 'no configurado');
227
+ console.log(' chat_id: ', s.chatIdConfigurado ? ('configurado (' + s.chatIdParcial + ')') : 'no configurado');
228
+ const mudos = s.proyectosSilenciados.length
229
+ ? s.proyectosSilenciados.join(', ')
230
+ : 'ninguno';
231
+ console.log(' proyectos mudos: ', mudos);
232
+ const botS = require('./scripts/lib/notificaciones-telegram').botStatus();
233
+ console.log(' bot daemon: ', botS.activo ? ('activo (PID ' + botS.pid + ')') : 'detenido');
234
+ const autostartLabel = process.platform === 'win32' ? 'Scheduled Task' : (process.platform === 'linux' ? 'systemd --user' : 'LaunchAgent');
235
+ console.log(' autostart: usar /swl:notificaciones bot enable-autostart (' + autostartLabel + ')');
236
+ console.log('');
237
+ "
238
+ ```
239
+
240
+ **Para `disable`**:
241
+
242
+ Antes de invocar la lib, pedir confirmación al usuario:
243
+
244
+ ```
245
+ ¿Confirmas deshabilitar las notificaciones Telegram? [s/N]
246
+ ```
247
+
248
+ Si responde `n` o vacío: cancelar sin tocar nada.
249
+
250
+ Si responde `s`:
251
+
252
+ ```bash
253
+ node -e "
254
+ const { disable } = require('./scripts/lib/notificaciones-telegram');
255
+ const r = disable({ confirmar: true, conservarEnv: true });
256
+ console.log('[resultado]', r.resultado, r.detalle || '');
257
+ process.exit(r.resultado === 'error' ? 1 : 0);
258
+ "
259
+ ```
260
+
261
+ Si se pasó `--purge`, pedir confirmación adicional:
262
+ ```
263
+ ¿Eliminar también las credenciales (~/.claude/notifications/.env)? [s/N]
264
+ ```
265
+ Si confirma, llamar con `conservarEnv: false`.
266
+
267
+ **Para `repair`**:
268
+
269
+ ```bash
270
+ node -e "
271
+ const { repair } = require('./scripts/lib/notificaciones-telegram');
272
+ repair().then(r => {
273
+ console.log('[repair]', r.resultado, r.detalle || '');
274
+ process.exit(r.resultado === 'error' ? 1 : 0);
275
+ }).catch(e => { console.error(e.message); process.exit(1); });
276
+ "
277
+ ```
278
+
279
+ **Para `bot start`**:
280
+
281
+ ```bash
282
+ node -e "
283
+ const { botStart } = require('./scripts/lib/notificaciones-telegram');
284
+ const r = botStart();
285
+ if (r.ok) {
286
+ console.log('[bot]', r.mensaje || 'Bot iniciado.');
287
+ } else {
288
+ console.error('[bot] Error:', r.error);
289
+ process.exit(1);
290
+ }
291
+ "
292
+ ```
293
+
294
+ **Para `bot stop`**:
295
+
296
+ ```bash
297
+ node -e "
298
+ const { botStop } = require('./scripts/lib/notificaciones-telegram');
299
+ const r = botStop();
300
+ if (r.ok) {
301
+ console.log('[bot]', r.mensaje || 'Bot detenido.');
302
+ } else {
303
+ console.error('[bot] Error:', r.error);
304
+ process.exit(1);
305
+ }
306
+ "
307
+ ```
308
+
309
+ **Para `bot status`**:
310
+
311
+ ```bash
312
+ node -e "
313
+ const { botStatus } = require('./scripts/lib/notificaciones-telegram');
314
+ const r = botStatus();
315
+ console.log('');
316
+ console.log('Bot daemon — estado actual');
317
+ console.log(' activo:', r.activo ? 'sí' : 'no');
318
+ console.log(' pid: ', r.pid !== null ? r.pid : 'n/a');
319
+ console.log('');
320
+ "
321
+ ```
322
+
323
+ **Para `bot restart`**:
324
+
325
+ ```bash
326
+ node -e "
327
+ const { botRestart } = require('./scripts/lib/notificaciones-telegram');
328
+ const r = botRestart();
329
+ if (r.ok) {
330
+ console.log('[bot]', r.mensaje || 'Bot reiniciado.');
331
+ } else {
332
+ console.error('[bot] Error:', r.error);
333
+ process.exit(1);
334
+ }
335
+ "
336
+ ```
337
+
338
+ **Para `bot enable-autostart`**:
339
+
340
+ ```bash
341
+ node -e "
342
+ const { botEnableAutostart } = require('./scripts/lib/notificaciones-telegram');
343
+ const r = botEnableAutostart();
344
+ if (r.ok) {
345
+ console.log('[autostart]', r.mensaje || 'Autostart habilitado.');
346
+ } else {
347
+ console.error('[autostart] Error:', r.error);
348
+ process.exit(1);
349
+ }
350
+ "
351
+ ```
352
+
353
+ **Para `bot disable-autostart`**:
354
+
355
+ ```bash
356
+ node -e "
357
+ const { botDisableAutostart } = require('./scripts/lib/notificaciones-telegram');
358
+ const r = botDisableAutostart();
359
+ if (r.ok) {
360
+ console.log('[autostart]', r.mensaje || 'Autostart deshabilitado.');
361
+ } else {
362
+ console.error('[autostart] Error:', r.error);
363
+ process.exit(1);
364
+ }
365
+ "
366
+ ```
367
+
368
+ ### Paso 3 — Reportar resultado
369
+
370
+ Mostrar el resultado al usuario con el estado final. Si el subcomando fue
371
+ `init` exitoso, recordar que el hook estará activo en la próxima sesión de
372
+ Claude Code.
373
+
374
+ ## Seguridad
375
+
376
+ - NUNCA mostrar el valor de `TELEGRAM_BOT_TOKEN` en ningún output.
377
+ - NUNCA sugerir comandos como `cat ~/.claude/notifications/.env`.
378
+ - Los ejemplos de este comando usan placeholders `<TOKEN>` y `<CHAT_ID>`,
379
+ nunca valores reales.
380
+ - Al mostrar el chat_id, siempre usar solo los últimos 4 dígitos.
381
+ - Si detectas que algún output podría exponer credenciales, truncar o
382
+ enmascarar antes de mostrar.
383
+
384
+ ## Variables de entorno relevantes
385
+
386
+ | Variable | Efecto |
387
+ |----------|--------|
388
+ | `SWL_NOTIFICACIONES_TELEGRAM=0` | Desactiva los hooks sin tocar settings. El comando `init` respeta esta variable. |
389
+
390
+ ## Referencias
391
+
392
+ - Credenciales: `~/.claude/notifications/.env` (fuera del repo, permisos 600)
393
+ - Lib de flujo: `scripts/lib/notificaciones-telegram.js`
394
+ - Hook saliente: `hooks/notificacion-telegram.js`
395
+ - Hook de restauración: `hooks/auto-restaurar-settings.js`
396
+ - ADR-0009: excepción a la regla "SWL solo registra hooks a nivel proyecto"
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: swl:nuevo-proyecto
3
+ description: Inicializa un proyecto nuevo desde cero. Hace preguntas al usuario, investiga el stack tecnológico y produce la estructura de planeación completa en .planning/.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ ---
6
+
7
+ # /swl:nuevo-proyecto — Inicializar proyecto nuevo
8
+
9
+ Eres el coordinador de inicio de proyectos SWL. Tu misión es convertir una idea o descripción vaga en una estructura de planeación completa y accionable. Debes hacer esto de forma rigurosa, sin asumir nada que el usuario no haya confirmado explícitamente.
10
+
11
+ ## Paso 0 — Carga de habilidades
12
+
13
+ Antes de hacer cualquier pregunta o escribir cualquier archivo, carga la habilidad correspondiente:
14
+
15
+ ```
16
+ Skill("nuevo-proyecto")
17
+ ```
18
+
19
+ Si la habilidad no existe en el proyecto destino, busca en `.claude/skills/nuevo-proyecto/` o en `skills/nuevo-proyecto/`. Si tampoco existe ahí, continúa sin ella pero documenta la ausencia.
20
+
21
+ ## Paso 1 — Verificación del directorio de trabajo
22
+
23
+ 1. Confirma que el directorio de trabajo actual es el directorio raíz del proyecto donde el usuario quiere inicializar.
24
+ 2. Verifica si ya existe un directorio `.planning/`. Si existe, DETENTE y pregunta al usuario:
25
+ - "Ya existe un directorio `.planning/` en este proyecto. ¿Deseas sobrescribir la planeación existente, o prefieres continuar con `/swl:discutir-fase` o `/swl:planear-fase`?"
26
+ - Espera respuesta explícita antes de continuar.
27
+ 3. Verifica si existe `CLAUDE.md` en el directorio raíz. Si existe, léelo para entender las convenciones del proyecto.
28
+
29
+ ## Paso 2 — Entrevista inicial con el usuario
30
+
31
+ Haz las siguientes preguntas de forma conversacional, una sección a la vez. Espera respuesta antes de avanzar. Nunca hagas todas las preguntas de golpe.
32
+
33
+ ### Bloque A — Contexto general
34
+
35
+ Presenta estas preguntas juntas (son rápidas):
36
+
37
+ 1. ¿Cuál es el nombre del proyecto?
38
+ 2. ¿En una oración, qué problema resuelve o qué hace este sistema?
39
+ 3. ¿Quiénes son los usuarios finales? (ejemplo: empleados internos, clientes externos, administradores)
40
+ 4. ¿Existe ya algún código base o empezamos desde cero?
41
+
42
+ ### Bloque B — Stack y restricciones técnicas
43
+
44
+ Después de recibir el Bloque A, presenta estas:
45
+
46
+ 5. ¿Hay tecnologías obligatorias (lenguaje, framework, base de datos, nube)? Si no hay restricción, escribe "libre".
47
+ 6. ¿Hay tecnologías prohibidas o que definitivamente NO quieres usar?
48
+ 7. ¿Cuál es el entorno de despliegue previsto? (ejemplos: servidor propio, AWS, Azure, Vercel, Docker)
49
+ 8. ¿Hay integraciones con sistemas externos ya existentes? (APIs, ERP, CRM, bases de datos legadas)
50
+
51
+ ### Bloque C — Alcance y tiempo
52
+
53
+ Después de recibir el Bloque B, presenta estas:
54
+
55
+ 9. ¿Cuántas fases o entregas grandes imaginas para este proyecto? (si no sabes, escribe "no sé")
56
+ 10. ¿Hay una fecha límite o hito crítico próximo?
57
+ 11. ¿Cuál es la funcionalidad más importante del sistema — la que si no existe, el sistema no tiene valor?
58
+ 12. ¿Qué funcionalidades son "nice to have" y pueden quedar para después?
59
+
60
+ ### Bloque D — Calidad y proceso
61
+
62
+ Después de recibir el Bloque C:
63
+
64
+ 13. ¿Requieres tests automatizados? ¿De qué tipo? (unitarios, integración, e2e)
65
+ 14. ¿Hay estándares de seguridad o cumplimiento regulatorio que respetar? (ejemplo: datos personales, HIPAA, PCI-DSS)
66
+ 15. ¿Cómo se manejará el control de versiones? (Git, rama principal, convención de commits)
67
+
68
+ ## Paso 3 — Confirmación antes de generar
69
+
70
+ Antes de crear cualquier archivo, presenta un resumen de lo que entendiste al usuario:
71
+
72
+ ```
73
+ Entendí lo siguiente sobre tu proyecto:
74
+ - Nombre: [nombre]
75
+ - Problema: [descripción]
76
+ - Usuarios: [usuarios]
77
+ - Stack previsto: [stack o "por definir"]
78
+ - Fases estimadas: [número o "por definir"]
79
+ - Prioridad máxima: [funcionalidad core]
80
+ [...resto del resumen...]
81
+
82
+ ¿Hay algo que corregir antes de que genere los archivos de planeación?
83
+ ```
84
+
85
+ Espera confirmación ("sí", "correcto", "adelante") o correcciones. Si hay correcciones, ajusta y muestra el resumen nuevamente.
86
+
87
+ ## Paso 4 — Delegación al agente investigador
88
+
89
+ Una vez confirmado el resumen, delega la investigación del stack al agente `investigador-swl`:
90
+
91
+ - Instrucción al agente: investigar el stack tecnológico elegido, sus versiones estables actuales, patrones recomendados, y generar el directorio `research/` dentro de `.planning/`.
92
+ - El agente debe producir al menos: `research/STACK.md`, `research/PATRONES.md`, `research/RIESGOS.md`.
93
+ - Mientras el agente investiga, tú avanzas con la creación de los archivos de planeación base (Paso 5).
94
+
95
+ ## Paso 5 — Creación de archivos de planeación
96
+
97
+ Crea el directorio `.planning/` con la siguiente estructura:
98
+
99
+ ```
100
+ .planning/
101
+ ├── PROYECTO.md
102
+ ├── REQUISITOS.md
103
+ ├── HOJA-RUTA.md
104
+ ├── fases/
105
+ └── research/
106
+ ```
107
+
108
+ ### .planning/PROYECTO.md
109
+
110
+ Incluye:
111
+ - Nombre del proyecto
112
+ - Descripción del problema
113
+ - Usuarios objetivo
114
+ - Stack tecnológico (confirmado o propuesto)
115
+ - Entorno de despliegue
116
+ - Restricciones técnicas
117
+ - Integraciones externas
118
+ - Fecha de creación y última actualización
119
+ - Estado: "Inicializado"
120
+
121
+ ### .planning/REQUISITOS.md
122
+
123
+ Estructura:
124
+ - **Requisitos funcionales**: lista numerada, agrupados por módulo o actor
125
+ - **Requisitos no funcionales**: rendimiento, seguridad, disponibilidad, escalabilidad
126
+ - **Casos de uso críticos**: los 3-5 flujos más importantes
127
+ - **Fuera de alcance** (explícito): qué NO hará el sistema en esta versión
128
+ - Cada requisito funcional lleva etiqueta de prioridad: `[CORE]`, `[IMPORTANTE]`, `[NICE-TO-HAVE]`
129
+
130
+ ### .planning/HOJA-RUTA.md
131
+
132
+ Estructura:
133
+ - Tabla de fases: número, nombre, descripción, dependencias, estado
134
+ - Para cada fase: objetivos medibles, entregables esperados, criterios de éxito
135
+ - Si el usuario no definió fases claras, propón una división lógica basada en las respuestas del Bloque C
136
+ - Estado inicial de todas las fases: "Pendiente"
137
+
138
+ ## Paso 6 — Reporte al usuario
139
+
140
+ Al terminar, reporta:
141
+
142
+ 1. Lista de archivos creados con sus rutas absolutas
143
+ 2. Resumen de la investigación del agente (cuando esté disponible)
144
+ 3. Próximo paso recomendado: "Para comenzar a trabajar en la Fase 1, usa `/swl:discutir-fase 1`"
145
+ 4. Si encontraste riesgos o ambigüedades durante la entrevista, listarlos aquí como "Puntos a resolver"
146
+
147
+ ## Reglas de comportamiento
148
+
149
+ - NUNCA inventes información que el usuario no proporcionó. Si algo es incierto, márcalo como "[POR DEFINIR]" en los archivos.
150
+ - NUNCA crees archivos de código fuente en este paso — solo planeación.
151
+ - Si el usuario responde de forma ambigua, pregunta para aclarar antes de continuar.
152
+ - Si el usuario dice "no sé" a algo crítico, documenta la incertidumbre y continúa.
153
+ - Escribe todos los archivos en español-MX.
154
+ - Las rutas de archivos deben ser absolutas en los reportes al usuario.