@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,270 @@
1
+ ---
2
+ name: build-errors-cpp
3
+ description: >
4
+ Resolución de errores de compilación C++: g++/clang++, CMake, linker y
5
+ templates. Incluye errores de ODR, ABI compatibility, headers no encontrados
6
+ y mensajes de instanciación de templates.
7
+ Cargar cuando un build C++ falle o haya errores de compilación o linkeo.
8
+ version: "1.0.0"
9
+ herramientasPermitidas: [Read, Bash, Grep]
10
+ exclusiones:
11
+ - "No cargar para errores de runtime C++ (segfaults, memory leaks detectados en ejecución) — esos requieren herramientas como Valgrind, AddressSanitizer o GDB; no son errores de compilación."
12
+ - "No cargar para diseñar la arquitectura del sistema de build CMake desde cero — si la pregunta es cómo estructurar un proyecto C++ multi-módulo con CMake, eso es diseño de proyecto, no diagnóstico de error."
13
+ - "No cargar para errores de tests unitarios C++ (GoogleTest, Catch2 fallando) cuando el código ya compila — si `cmake --build` pasa pero los tests fallan en lógica, es un error de lógica, no de build."
14
+ - "No cargar para configurar cross-compilation desde cero — elegir el toolchain file de CMake para ARM/WASM es configuración de entorno, no diagnóstico de error de compilación."
15
+ evolvable: true # default para skill estandar
16
+ ---
17
+ # Build Errors C++ — Diagnóstico y Solución
18
+
19
+ ## Cuándo NO cargar
20
+
21
+ - El programa compila pero falla en ejecución (segfault, UB, leak) — esos son errores de runtime; usar Valgrind, ASAN o GDB.
22
+ - La pregunta es cómo estructurar un proyecto CMake con múltiples módulos — eso es diseño de proyecto, no diagnóstico.
23
+ - Los tests fallan en lógica (assertion failure) aunque el build pasa — no es un error de compilación.
24
+
25
+ ## Cuándo cargar
26
+
27
+ - `g++`, `clang++` o `cmake --build` falla con errores del compilador
28
+ - Errores de linker (`undefined reference`, `multiple definition`)
29
+ - Mensajes de error de instanciación de templates (ilegibles por defecto)
30
+ - CMake no encuentra paquetes (`find_package` falla) o targets
31
+ - Errores de ODR (One Definition Rule) o incompatibilidad de ABI
32
+ - Headers no encontrados (`No such file or directory`)
33
+
34
+ ---
35
+
36
+ ## Compilador — Errores Más Frecuentes
37
+
38
+ ### `undefined reference to X` (linker, no compilador)
39
+
40
+ **Causa**: el símbolo existe en la declaración (header) pero no se linka la librería
41
+ que contiene la implementación.
42
+
43
+ ```cmake
44
+ # MAL — compilar sin linkear la libreria
45
+ add_executable(mi_app main.cpp)
46
+ # Si main.cpp usa pthread, math.h, etc.: falta linkear
47
+
48
+ # BIEN — linkear las librerias necesarias
49
+ add_executable(mi_app main.cpp)
50
+ target_link_libraries(mi_app PRIVATE pthread m)
51
+
52
+ # Para librerias del sistema encontradas con find_package:
53
+ find_package(OpenSSL REQUIRED)
54
+ target_link_libraries(mi_app PRIVATE OpenSSL::SSL OpenSSL::Crypto)
55
+ ```
56
+
57
+ ### `no matching function for call to X`
58
+
59
+ **Causa**: no existe ninguna sobrecarga de la función que coincida con los argumentos.
60
+
61
+ ```cpp
62
+ // MAL
63
+ void procesar(int valor) { }
64
+ void procesar(std::string texto) { }
65
+
66
+ procesar(3.14); // error: double no convierte a int ni string sin conversión explícita
67
+
68
+ // BIEN — conversión explícita o nueva sobrecarga
69
+ procesar(static_cast<int>(3.14));
70
+ procesar(std::to_string(3.14));
71
+
72
+ // MAL — pasar const ref donde se espera referencia mutable
73
+ void modificar(std::vector<int>& v) { v.push_back(1); }
74
+ const std::vector<int> datos = {1, 2, 3};
75
+ modificar(datos); // error: no puede pasar const como non-const ref
76
+
77
+ // BIEN — revisar si la función debe ser const o los datos no deben serlo
78
+ void modificar(const std::vector<int>& v); // si no modifica
79
+ ```
80
+
81
+ ### `use of undeclared identifier X`
82
+
83
+ **Causa**: header no incluido, nombre en namespace no calificado, o error tipográfico.
84
+
85
+ ```cpp
86
+ // MAL
87
+ int main() {
88
+ cout << "hola" << endl; // error: cout no declarado sin using o std::
89
+ vector<int> v; // error: vector no declarado
90
+ }
91
+
92
+ // BIEN
93
+ #include <iostream>
94
+ #include <vector>
95
+
96
+ int main() {
97
+ std::cout << "hola" << std::endl;
98
+ std::vector<int> v;
99
+ }
100
+ ```
101
+
102
+ ---
103
+
104
+ ## Templates — Descifrar Mensajes de Error
105
+
106
+ Los errores de templates son notorios por su verbosidad. Estrategia de lectura:
107
+
108
+ ```
109
+ Regla: leer el ULTIMO bloque del error, no el primero.
110
+ El primer bloque es la cadena de instanciacion.
111
+ El ultimo bloque es el error real.
112
+ ```
113
+
114
+ ```cpp
115
+ // MAL — pasar tipo incorrecto a template con requisito implicito
116
+ template<typename T>
117
+ void ordenar(T& contenedor) {
118
+ std::sort(contenedor.begin(), contenedor.end());
119
+ }
120
+
121
+ std::list<int> lista = {3, 1, 2};
122
+ ordenar(lista); // error gigante: list no tiene random access iterators
123
+
124
+ // BIEN — agregar concepto/constraint en C++20
125
+ #include <concepts>
126
+ template<std::ranges::random_access_range T>
127
+ void ordenar(T& contenedor) {
128
+ std::sort(contenedor.begin(), contenedor.end());
129
+ }
130
+ // Ahora el error es claro: "std::list does not satisfy random_access_range"
131
+ ```
132
+
133
+ ### Errores de implementación de templates en headers
134
+
135
+ ```cpp
136
+ // MAL — implementación de template en .cpp (no se instancia en otros .cpp)
137
+ // mi_template.h
138
+ template<typename T>
139
+ class Contenedor {
140
+ T valor;
141
+ public:
142
+ T obtener();
143
+ };
144
+
145
+ // mi_template.cpp — PROBLEMA: nadie mas puede instanciar esto
146
+ template<typename T>
147
+ T Contenedor<T>::obtener() { return valor; }
148
+
149
+ // BIEN — implementación de templates SIEMPRE en el header o en .hpp incluido al final
150
+ // mi_template.h
151
+ template<typename T>
152
+ class Contenedor {
153
+ T valor;
154
+ public:
155
+ T obtener() { return valor; } // definicion en el header
156
+ };
157
+ ```
158
+
159
+ ---
160
+
161
+ ## CMake — Errores de Configuración
162
+
163
+ ### `find_package(X REQUIRED) could not find X`
164
+
165
+ **Causa**: la librería no está instalada o CMake no sabe dónde buscarla.
166
+
167
+ ```cmake
168
+ # Diagnostico: agregar HINTS o CMAKE_PREFIX_PATH
169
+ find_package(Boost REQUIRED COMPONENTS filesystem)
170
+ # Si falla, buscar con:
171
+ # cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=CXX -DMODE=EXIST
172
+
173
+ # SOLUCION: indicar el prefijo de instalacion
174
+ cmake -DCMAKE_PREFIX_PATH=/usr/local/boost ..
175
+
176
+ # O en CMakeLists.txt para librerias no estandar:
177
+ list(APPEND CMAKE_PREFIX_PATH "/opt/custom_lib")
178
+ find_package(CustomLib REQUIRED)
179
+ ```
180
+
181
+ ### `target X not found`
182
+
183
+ **Causa**: `target_link_libraries` referencia un target que no existe con ese nombre exacto.
184
+
185
+ ```cmake
186
+ # MAL — nombre de target incorrecto
187
+ find_package(OpenCV REQUIRED)
188
+ target_link_libraries(mi_app PRIVATE opencv) # no existe
189
+ target_link_libraries(mi_app PRIVATE OpenCV) # no existe
190
+ target_link_libraries(mi_app PRIVATE OpenCV_LIBS) # no existe
191
+
192
+ # BIEN — usar el target namespace correcto del paquete
193
+ target_link_libraries(mi_app PRIVATE ${OpenCV_LIBS})
194
+ # O con targets modernos de CMake:
195
+ target_link_libraries(mi_app PRIVATE opencv_core opencv_imgproc)
196
+
197
+ # Para ver los targets disponibles de un paquete:
198
+ # cmake --find-package -DNAME=OpenCV -DMODE=COMPILE -DLANGUAGE=CXX -DCOMPILER_ID=GNU
199
+ ```
200
+
201
+ ---
202
+
203
+ ## Linker — Errores Avanzados
204
+
205
+ ### `multiple definition of X`
206
+
207
+ **Causa**: ODR violation — un símbolo definido en un header incluido en múltiples .cpp.
208
+
209
+ ```cpp
210
+ // MAL — definición (no solo declaración) en header incluido en múltiples TUs
211
+ // utils.h
212
+ int calcular(int x) { return x * 2; } // DEFINICION en header
213
+
214
+ // BIEN — opción 1: declarar en header, definir en .cpp
215
+ // utils.h
216
+ int calcular(int x); // solo declaración
217
+
218
+ // utils.cpp
219
+ int calcular(int x) { return x * 2; }
220
+
221
+ // BIEN — opción 2: inline para definiciones en headers
222
+ // utils.h
223
+ inline int calcular(int x) { return x * 2; }
224
+
225
+ // BIEN — opción 3: static para limitar a la TU (si es intencional)
226
+ // utils.h
227
+ static int calcular(int x) { return x * 2; }
228
+ ```
229
+
230
+ ### ABI incompatibility — símbolos raros en errores de linker
231
+
232
+ ```bash
233
+ # Sintoma: undefined reference con nombres mangleados como:
234
+ # _ZN3Foo3barEv (C++ mangled name)
235
+ # vs
236
+ # _foo_bar (C mangled name)
237
+
238
+ # Causa: mezclar C y C++ sin extern "C"
239
+ # En el header de la libreria C:
240
+ #ifdef __cplusplus
241
+ extern "C" {
242
+ #endif
243
+
244
+ void funcion_c(int param);
245
+
246
+ #ifdef __cplusplus
247
+ }
248
+ #endif
249
+ ```
250
+
251
+ ---
252
+
253
+ ## Gotchas / Errores comunes no obvios
254
+
255
+ - **El último bloque del error de template es lo relevante, pero los desarrolladores leen el primero**: con errores de instanciación de templates, g++ imprime una cadena de "required from" de decenas de líneas antes del error real. Causa: el error real está al final de la cadena de instanciación. Solución: ir directamente al último bloque del output del compilador — es el lugar exacto donde el constraint se viola, no las invocaciones intermedias.
256
+ - **`-fsanitize=address` no detecta la corrupción de memoria que rompe el build en CI**: el sanitizer detecta la corrupción en runtime pero el bug es un ODR que solo aparece al linkear múltiples TUs. Causa: `nm -C archivo.o | grep símbolo` en dos objetos muestra la misma función definida en ambos, causando `multiple definition`. Solución: compilar con `g++ -fsanitize=address` + `-fsanitize=undefined` en modo debug y buscar el símbolo duplicado con `nm`; la solución es `inline` o mover la implementación al .cpp.
257
+ - **`target_link_libraries(mi_app OpenCV)` falla pero el nombre del paquete es correcto**: CMake exporta targets con namespace (ej: `opencv_core`, no `OpenCV`). Causa: los paquetes modernos de CMake exportan targets como `PkgName::Component`, no el nombre del paquete en mayúsculas. Solución: después de `find_package(OpenCV REQUIRED)` ejecutar `cmake --find-package -DNAME=OpenCV -DMODE=COMPILE -DLANGUAGE=CXX -DCOMPILER_ID=GNU` para ver los targets reales exportados.
258
+ - **Headers en subdirectorio incluidos con path relativo compilan localmente pero fallan en CI**: el CI construye desde un directorio diferente y el path relativo en `#include "../../utils/helper.h"` apunta a otro lugar. Causa: paths relativos en `#include` dependen del directorio de trabajo y de la estructura de `include_directories`. Solución: usar `target_include_directories(mi_app PRIVATE ${CMAKE_SOURCE_DIR}/utils)` y en el .cpp incluir con `#include "helper.h"` sin paths relativos.
259
+
260
+ ## Checklist de Diagnóstico
261
+
262
+ - [ ] Separar errores del compilador de errores del linker: compilador = fase de traducción, linker = fase de enlace.
263
+ - [ ] Para templates: leer el último bloque del error, ignorar la cadena de instanciación inicial.
264
+ - [ ] `g++ -v` o `clang++ -v` para ver flags exactos que se pasan al compilador.
265
+ - [ ] `nm -C archivo.o | grep simbolo` para verificar si un símbolo está en el objeto.
266
+ - [ ] `cmake --build . --verbose` para ver los comandos exactos de compilación.
267
+ - [ ] Usar `-fdiagnostics-color=always` para mensajes de error más legibles.
268
+ - [ ] Para ODR: compilar con `-fsanitize=address` y `-fno-inline` puede revelar violaciones.
269
+ - [ ] `c++filt _ZN3Foo3barEv` para demanglear símbolos de C++ en errores de linker.
270
+ - [ ] Verificar que todos los .cpp del proyecto están incluidos en `CMakeLists.txt`.
@@ -0,0 +1,265 @@
1
+ ---
2
+ name: build-errors-csharp
3
+ description: >
4
+ Resolución de errores de compilación C#: dotnet build, MSBuild, NuGet y
5
+ Roslyn. Cubre errores CS comunes, conflictos de versiones NuGet, nullable
6
+ reference types y errores de publicación.
7
+ Cargar cuando un build .NET falle o haya errores de compilación C#.
8
+ version: "1.0.0"
9
+ herramientasPermitidas: [Read, Bash, Grep]
10
+ exclusiones:
11
+ - "No cargar para errores de ASP.NET Core en runtime (middleware, DI, startup) cuando el build compila — si `dotnet build` pasa pero `dotnet run` falla con excepciones de DI, es un error de configuración de la aplicación."
12
+ - "No cargar para fallos de tests MSTest/NUnit/xUnit en assertions aunque el build compile — si el build pasa pero los tests fallan por valores incorrectos, es un error de lógica de tests."
13
+ - "No cargar para diseñar la estructura de solución .NET multi-proyecto desde cero — si la pregunta es cómo organizar proyectos, capas y referencias en una solución, cargar `csharp-patrones` o `csharp-experto`."
14
+ - "No cargar para warnings de analyzer que son informativos y no bloquean el build — solo cargar cuando CS#### o NETSDK#### bloquea la compilación."
15
+ evolvable: true # default para skill estandar
16
+ ---
17
+ # Build Errors C# — Diagnóstico y Solución
18
+
19
+ ## Cuándo NO cargar
20
+
21
+ - `dotnet build` pasa pero `dotnet run` lanza excepciones de DI o startup — es un error de configuración de la aplicación, no de compilación.
22
+ - Los tests xUnit/NUnit fallan en assertions aunque compilan — es un error de lógica de tests.
23
+ - La pregunta es cómo organizar solución y proyectos — para diseño de solución cargar `csharp-patrones`.
24
+
25
+ ## Cuándo cargar
26
+
27
+ - `dotnet build` o `dotnet publish` falla con errores CS o MSBuild
28
+ - Conflictos de versión de paquetes NuGet (NU1605, NU1701)
29
+ - Errores de nullable reference types (CS8600, CS8602, CS8603)
30
+ - Errores de restauración de paquetes en CI
31
+ - Problemas de multi-targeting o framework compatibility
32
+ - Warnings de Roslyn analyzers que bloquean el build
33
+
34
+ ---
35
+
36
+ ## Errores CS Frecuentes del Compilador Roslyn
37
+
38
+ ### CS0103 — El nombre no existe en el contexto actual
39
+
40
+ **Causa**: variable, tipo o namespace no importado o mal escrito.
41
+
42
+ ```csharp
43
+ // MAL
44
+ var lista = new List<string>();
45
+ lista.Add("uno");
46
+ Console.WriteLine(lista.Count()); // error: Count() no existe sin using System.Linq
47
+
48
+ // BIEN — agregar el using necesario
49
+ using System.Linq;
50
+ // ...
51
+ Console.WriteLine(lista.Count); // propiedad, no método, para ICollection
52
+ ```
53
+
54
+ ### CS0029 — No se puede convertir implícitamente
55
+
56
+ **Causa**: asignación entre tipos incompatibles sin cast explícito.
57
+
58
+ ```csharp
59
+ // MAL
60
+ int numero = "42"; // string no convierte a int implicitamente
61
+ double precio = 9.99m; // decimal no convierte a double implicitamente
62
+
63
+ // BIEN
64
+ int numero = int.Parse("42"); // conversión explícita
65
+ int numero2 = Convert.ToInt32("42"); // alternativa con manejo de null
66
+ double precio = (double)9.99m; // cast explícito decimal -> double
67
+ ```
68
+
69
+ ### CS1061 — El tipo no contiene una definición para el miembro
70
+
71
+ **Causa**: el tipo no tiene esa propiedad o método, o falta un using de extensión.
72
+
73
+ ```csharp
74
+ // MAL — falta using para metodos de extension LINQ
75
+ List<int> nums = new() { 1, 2, 3 };
76
+ var max = nums.Max(); // error CS1061 si falta using System.Linq
77
+
78
+ // MAL — typo en nombre de propiedad
79
+ var persona = new Persona();
80
+ Console.WriteLine(persona.Nombr); // error: debe ser Nombre
81
+
82
+ // BIEN
83
+ using System.Linq;
84
+ var max = nums.Max();
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Nullable Reference Types (C# 8+)
90
+
91
+ ### CS8600 — Asignando null a variable non-nullable
92
+
93
+ ```csharp
94
+ // Habilitado en .csproj: <Nullable>enable</Nullable>
95
+
96
+ // MAL
97
+ string nombre = GetNombre(); // error si GetNombre() puede retornar null
98
+
99
+ // BIEN — opcion 1: declarar como nullable
100
+ string? nombre = GetNombre();
101
+
102
+ // BIEN — opción 2: garantizar no-null con operador de supresión (solo si se está seguro)
103
+ string nombre = GetNombre()!;
104
+
105
+ // BIEN — opción 3: valor por defecto
106
+ string nombre = GetNombre() ?? string.Empty;
107
+ ```
108
+
109
+ ### CS8602 — Dereference posible null
110
+
111
+ ```csharp
112
+ // MAL
113
+ string? texto = ObtenerTexto();
114
+ int longitud = texto.Length; // error: texto puede ser null
115
+
116
+ // BIEN — null check antes de acceder
117
+ if (texto is not null)
118
+ {
119
+ int longitud = texto.Length;
120
+ }
121
+
122
+ // BIEN — operador null-conditional
123
+ int? longitud = texto?.Length;
124
+ ```
125
+
126
+ ### CS8603 — Retorno posible null desde función non-nullable
127
+
128
+ ```csharp
129
+ // MAL
130
+ public string ObtenerNombre(int id)
131
+ {
132
+ return _db.Usuarios.Find(id)?.Nombre; // error: puede ser null
133
+ }
134
+
135
+ // BIEN
136
+ public string? ObtenerNombre(int id)
137
+ {
138
+ return _db.Usuarios.Find(id)?.Nombre;
139
+ }
140
+ ```
141
+
142
+ ---
143
+
144
+ ## MSBuild — Errores NETSDK y de Proyecto
145
+
146
+ ### NETSDK1045 — Target framework no soportado
147
+
148
+ **Causa**: el SDK instalado no soporta el TFM especificado en el proyecto.
149
+
150
+ ```xml
151
+ <!-- Diagnóstico: dotnet --list-sdks -->
152
+
153
+ <!-- MAL — usar net9.0 con SDK 6 instalado -->
154
+ <TargetFramework>net9.0</TargetFramework>
155
+
156
+ <!-- BIEN — usar el TFM soportado por el SDK instalado, o actualizar el SDK -->
157
+ <TargetFramework>net8.0</TargetFramework>
158
+
159
+ <!-- Para multi-targeting -->
160
+ <TargetFrameworks>net8.0;net6.0</TargetFrameworks>
161
+ ```
162
+
163
+ ### NETSDK1138 — Paquete no compatible con target framework
164
+
165
+ ```xml
166
+ <!-- Agregar supresión documentada si la compatibilidad es conocida -->
167
+ <PackageReference Include="SomeLegacyPackage" Version="1.0.0">
168
+ <NoWarn>NU1701</NoWarn>
169
+ </PackageReference>
170
+ ```
171
+
172
+ ---
173
+
174
+ ## NuGet — Conflictos y Restauración
175
+
176
+ ### NU1605 — Paquete degradado por transitive dependency
177
+
178
+ **Causa**: dos dependencias requieren versiones incompatibles del mismo paquete.
179
+
180
+ ```xml
181
+ <!-- Diagnóstico: dotnet list package --include-transitive -->
182
+
183
+ <!-- SOLUCIÓN: pinear la versión ganadora explícitamente en el proyecto -->
184
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
185
+
186
+ <!-- Si el conflicto es entre proyectos de la solución, agregar en Directory.Build.props -->
187
+ <Project>
188
+ <ItemGroup>
189
+ <PackageReference Update="Newtonsoft.Json" Version="13.0.3" />
190
+ </ItemGroup>
191
+ </Project>
192
+ ```
193
+
194
+ ### Fallo de restauración en CI — paquetes no encontrados
195
+
196
+ ```bash
197
+ # Causas comunes y diagnostico
198
+ dotnet restore --verbosity detailed 2>&1 | grep -i "error\|not found"
199
+
200
+ # Si el feed privado falla: verificar NuGet.Config con credenciales
201
+ # Nunca commitear credenciales en NuGet.Config — usar variables de entorno
202
+ dotnet restore --configfile ./NuGet.Config
203
+
204
+ # Forzar restauracion limpia
205
+ rm -rf ~/.nuget/packages # Linux/Mac
206
+ dotnet nuget locals all --clear
207
+ dotnet restore
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Roslyn Analyzers — Warnings como Errores
213
+
214
+ ### Configuración correcta de TreatWarningsAsErrors
215
+
216
+ ```xml
217
+ <!-- MAL: silenciar todos los warnings en lugar de resolver -->
218
+ <NoWarn>CS8600;CS8602;CS8603</NoWarn>
219
+
220
+ <!-- BIEN: resolver los warnings o suprimirlos con justificación -->
221
+ <!-- En el código, con razón documentada -->
222
+ #pragma warning disable CS8602 // El null check ocurre en el middleware anterior
223
+ var resultado = _servicio.Procesar();
224
+ #pragma warning restore CS8602
225
+
226
+ <!-- BIEN en .editorconfig para reglas de estilo (no de correctitud) -->
227
+ dotnet_diagnostic.IDE0028.severity = suggestion # coleccion init simplificable
228
+ ```
229
+
230
+ ---
231
+
232
+ ## Errores de Publicación
233
+
234
+ ### Error al publicar self-contained (RID no encontrado)
235
+
236
+ ```bash
237
+ # MAL — publicar sin especificar RID para self-contained
238
+ dotnet publish -c Release --self-contained
239
+
240
+ # BIEN — especificar el RID objetivo
241
+ dotnet publish -c Release -r linux-x64 --self-contained true
242
+ dotnet publish -c Release -r win-x64 --self-contained false # framework-dependent
243
+
244
+ # RIDs comunes: win-x64, win-x86, linux-x64, linux-arm64, osx-x64, osx-arm64
245
+ ```
246
+
247
+ ---
248
+
249
+ ## Gotchas / Errores comunes no obvios
250
+
251
+ - **`<Nullable>enable</Nullable>` activado en el proyecto produce 300+ warnings que bloquean CI con TreatWarningsAsErrors**: la migración a nullable contexts no es atómica — activar `enable` en un codebase sin anotaciones existentes genera warnings masivos que se convierten en errores. Causa: C# 8+ nullable analysis requiere que todas las referencias que pueden ser null sean explícitamente anotadas como `T?`. Solución: activar `enable` progresivamente usando `#nullable enable` solo en archivos nuevos o migrados, y `#nullable disable` en archivos legados — no activar en todo el proyecto de golpe.
252
+ - **Conflicto NuGet NU1605 resuelto con `BindingRedirect` que no tiene efecto en .NET Core/5+**: las redirecciones de binding son una característica de .NET Framework; en .NET Core y superiores no aplican. Causa: el desarrollador copió la solución de StackOverflow para .NET Framework y la aplicó a un proyecto .NET 6. Solución: en .NET Core+, usar `<PackageReference Include="X" Version="Y" />` directo con la versión unificada en `Directory.Build.props`, o agregar `<VersionOverride>` en el proyecto hijo.
253
+ - **`dotnet restore` falla en CI con "Unable to load the service index for source"** pero funciona localmente: la URL del NuGet feed privado o el token de autenticación no están configurados en el entorno CI. Causa: localmente hay una credencial almacenada en `~/.nuget/NuGet/NuGet.Config` que no existe en el agente CI. Solución: configurar el feed en `nuget.config` del proyecto con la URL y usar `NUGET_PACKAGES` + credenciales como variables de entorno del CI — no almacenar credenciales en el archivo de config.
254
+ - **Roslyn analyzer genera error CA1416 (platform compatibility) para código que solo corre en Windows pero el target framework es `net8.0`**: sin `[SupportedOSPlatform("windows")]` en el método o clase que llama a la API, el analyzer reporta el error aunque el código esté en un `#if WINDOWS` block. Causa: el analyzer analiza el código sin evaluar las directivas de pre-procesador. Solución: anotar el método con `[SupportedOSPlatform("windows")]` o usar target framework específico de plataforma `net8.0-windows` para el proyecto que contiene ese código.
255
+
256
+ ## Checklist de Diagnóstico
257
+
258
+ - [ ] Leer el código de error completo (CS#### o NETSDK####) antes de buscar solución.
259
+ - [ ] `dotnet build --verbosity diagnostic` para log completo de MSBuild.
260
+ - [ ] `dotnet list package --outdated` para identificar paquetes desactualizados.
261
+ - [ ] `dotnet list package --include-transitive` para ver árbol de dependencias.
262
+ - [ ] Verificar que `<Nullable>enable</Nullable>` es intencional y el código lo maneja.
263
+ - [ ] En CI: asegurar que la versión del SDK coincide con `global.json` del proyecto.
264
+ - [ ] Para conflictos NuGet: usar `Directory.Build.props` en la raíz de la solución.
265
+ - [ ] `dotnet nuget locals all --clear` si la caché local está corrompida.