@ruaruababa/vibe-kit 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 (462) hide show
  1. package/CATALOG.md +317 -0
  2. package/README.md +121 -0
  3. package/aliases.json +65 -0
  4. package/bin/vibe.js +2 -0
  5. package/bundles.json +265 -0
  6. package/catalog.json +1560 -0
  7. package/dist/antigravity-skills/bin/cli.js +438 -0
  8. package/dist/antigravity-skills/lib/skill-utils.js +158 -0
  9. package/dist/antigravity-skills/scripts/build-catalog.js +305 -0
  10. package/dist/antigravity-skills/scripts/normalize-frontmatter.js +144 -0
  11. package/dist/antigravity-skills/scripts/validate-skills.js +230 -0
  12. package/dist/bin/vibe.js +2 -0
  13. package/dist/dist/src/cli/index.js +26 -0
  14. package/dist/lib/skill-utils.js +158 -0
  15. package/dist/scripts/build-catalog.js +50 -0
  16. package/dist/scripts/normalize-frontmatter.js +144 -0
  17. package/dist/scripts/validate-skills.js +56 -0
  18. package/dist/src/cli/index.js +146 -0
  19. package/dist/src/types/index.js +13 -0
  20. package/dist/src/utils/fs.js +1 -0
  21. package/package.json +43 -0
  22. package/skills/accessibility-compliance-accessibility-audit/SKILL.md +42 -0
  23. package/skills/accessibility-compliance-accessibility-audit/resources/implementation-playbook.md +502 -0
  24. package/skills/agent-orchestration-improve-agent/SKILL.md +349 -0
  25. package/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
  26. package/skills/agent-orchestrator/SKILL.md +24 -0
  27. package/skills/ai-engineer/SKILL.md +171 -0
  28. package/skills/airflow-dag-patterns/SKILL.md +41 -0
  29. package/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
  30. package/skills/angular-migration/SKILL.md +428 -0
  31. package/skills/anti-reversing-techniques/SKILL.md +42 -0
  32. package/skills/anti-reversing-techniques/resources/implementation-playbook.md +539 -0
  33. package/skills/api-design-principles/SKILL.md +37 -0
  34. package/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  35. package/skills/api-design-principles/assets/rest-api-template.py +182 -0
  36. package/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  37. package/skills/api-design-principles/references/rest-best-practices.md +408 -0
  38. package/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  39. package/skills/api-documenter/SKILL.md +184 -0
  40. package/skills/api-testing-observability-api-mock/SKILL.md +46 -0
  41. package/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
  42. package/skills/application-performance-performance-optimization/SKILL.md +154 -0
  43. package/skills/architect-review/SKILL.md +174 -0
  44. package/skills/architecture-decision-records/SKILL.md +441 -0
  45. package/skills/architecture-patterns/SKILL.md +37 -0
  46. package/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
  47. package/skills/arm-cortex-expert/SKILL.md +306 -0
  48. package/skills/async-python-patterns/SKILL.md +39 -0
  49. package/skills/async-python-patterns/resources/implementation-playbook.md +678 -0
  50. package/skills/attack-tree-construction/SKILL.md +38 -0
  51. package/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
  52. package/skills/auth-implementation-patterns/SKILL.md +39 -0
  53. package/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
  54. package/skills/backend-architect/SKILL.md +333 -0
  55. package/skills/backend-development-feature-development/SKILL.md +180 -0
  56. package/skills/backend-security-coder/SKILL.md +156 -0
  57. package/skills/backtesting-frameworks/SKILL.md +39 -0
  58. package/skills/backtesting-frameworks/resources/implementation-playbook.md +647 -0
  59. package/skills/bash-defensive-patterns/SKILL.md +43 -0
  60. package/skills/bash-defensive-patterns/resources/implementation-playbook.md +517 -0
  61. package/skills/bash-pro/SKILL.md +310 -0
  62. package/skills/bats-testing-patterns/SKILL.md +34 -0
  63. package/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -0
  64. package/skills/bazel-build-optimization/SKILL.md +397 -0
  65. package/skills/billing-automation/SKILL.md +42 -0
  66. package/skills/billing-automation/resources/implementation-playbook.md +544 -0
  67. package/skills/binary-analysis-patterns/SKILL.md +450 -0
  68. package/skills/blockchain-developer/SKILL.md +208 -0
  69. package/skills/business-analyst/SKILL.md +182 -0
  70. package/skills/c-pro/SKILL.md +56 -0
  71. package/skills/c4-architecture-c4-architecture/SKILL.md +389 -0
  72. package/skills/c4-code/SKILL.md +244 -0
  73. package/skills/c4-component/SKILL.md +153 -0
  74. package/skills/c4-container/SKILL.md +171 -0
  75. package/skills/c4-context/SKILL.md +150 -0
  76. package/skills/changelog-automation/SKILL.md +38 -0
  77. package/skills/changelog-automation/resources/implementation-playbook.md +538 -0
  78. package/skills/cicd-automation-workflow-automate/SKILL.md +51 -0
  79. package/skills/cicd-automation-workflow-automate/resources/implementation-playbook.md +1333 -0
  80. package/skills/clean-markdown/SKILL.md +23 -0
  81. package/skills/cloud-architect/SKILL.md +135 -0
  82. package/skills/code-documentation-code-explain/SKILL.md +46 -0
  83. package/skills/code-documentation-code-explain/resources/implementation-playbook.md +802 -0
  84. package/skills/code-documentation-doc-generate/SKILL.md +48 -0
  85. package/skills/code-documentation-doc-generate/resources/implementation-playbook.md +640 -0
  86. package/skills/code-refactoring-context-restore/SKILL.md +179 -0
  87. package/skills/code-refactoring-refactor-clean/SKILL.md +51 -0
  88. package/skills/code-refactoring-refactor-clean/resources/implementation-playbook.md +879 -0
  89. package/skills/code-refactoring-tech-debt/SKILL.md +386 -0
  90. package/skills/code-review-ai-ai-review/SKILL.md +450 -0
  91. package/skills/code-review-excellence/SKILL.md +40 -0
  92. package/skills/code-review-excellence/resources/implementation-playbook.md +515 -0
  93. package/skills/code-reviewer/SKILL.md +178 -0
  94. package/skills/codebase-cleanup-deps-audit/SKILL.md +51 -0
  95. package/skills/codebase-cleanup-deps-audit/resources/implementation-playbook.md +766 -0
  96. package/skills/codebase-cleanup-refactor-clean/SKILL.md +51 -0
  97. package/skills/codebase-cleanup-refactor-clean/resources/implementation-playbook.md +879 -0
  98. package/skills/codebase-cleanup-tech-debt/SKILL.md +386 -0
  99. package/skills/competitive-landscape/SKILL.md +34 -0
  100. package/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
  101. package/skills/comprehensive-review-full-review/SKILL.md +146 -0
  102. package/skills/comprehensive-review-pr-enhance/SKILL.md +46 -0
  103. package/skills/comprehensive-review-pr-enhance/resources/implementation-playbook.md +691 -0
  104. package/skills/conductor-implement/SKILL.md +388 -0
  105. package/skills/conductor-manage/SKILL.md +39 -0
  106. package/skills/conductor-manage/resources/implementation-playbook.md +1120 -0
  107. package/skills/conductor-new-track/SKILL.md +433 -0
  108. package/skills/conductor-revert/SKILL.md +372 -0
  109. package/skills/conductor-setup/SKILL.md +426 -0
  110. package/skills/conductor-status/SKILL.md +338 -0
  111. package/skills/conductor-validator/SKILL.md +62 -0
  112. package/skills/content-marketer/SKILL.md +170 -0
  113. package/skills/context-driven-development/SKILL.md +400 -0
  114. package/skills/context-management-context-restore/SKILL.md +179 -0
  115. package/skills/context-management-context-save/SKILL.md +177 -0
  116. package/skills/context-manager/SKILL.md +185 -0
  117. package/skills/cost-optimization/SKILL.md +286 -0
  118. package/skills/cpp-pro/SKILL.md +59 -0
  119. package/skills/cqrs-implementation/SKILL.md +35 -0
  120. package/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
  121. package/skills/csharp-pro/SKILL.md +59 -0
  122. package/skills/customer-support/SKILL.md +170 -0
  123. package/skills/data-engineer/SKILL.md +224 -0
  124. package/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
  125. package/skills/data-engineering-data-pipeline/SKILL.md +201 -0
  126. package/skills/data-quality-frameworks/SKILL.md +40 -0
  127. package/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
  128. package/skills/data-scientist/SKILL.md +199 -0
  129. package/skills/data-storytelling/SKILL.md +465 -0
  130. package/skills/database-admin/SKILL.md +165 -0
  131. package/skills/database-architect/SKILL.md +268 -0
  132. package/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
  133. package/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
  134. package/skills/database-migration/SKILL.md +436 -0
  135. package/skills/database-migrations-migration-observability/SKILL.md +420 -0
  136. package/skills/database-migrations-sql-migrations/SKILL.md +53 -0
  137. package/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
  138. package/skills/database-optimizer/SKILL.md +167 -0
  139. package/skills/dbt-transformation-patterns/SKILL.md +34 -0
  140. package/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
  141. package/skills/debugger/SKILL.md +49 -0
  142. package/skills/debugging-strategies/SKILL.md +34 -0
  143. package/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
  144. package/skills/debugging-toolkit-smart-debug/SKILL.md +197 -0
  145. package/skills/defi-protocol-templates/SKILL.md +466 -0
  146. package/skills/dependency-management-deps-audit/SKILL.md +44 -0
  147. package/skills/dependency-management-deps-audit/resources/implementation-playbook.md +766 -0
  148. package/skills/dependency-upgrade/SKILL.md +421 -0
  149. package/skills/deployment-engineer/SKILL.md +170 -0
  150. package/skills/deployment-pipeline-design/SKILL.md +371 -0
  151. package/skills/deployment-validation-config-validate/SKILL.md +496 -0
  152. package/skills/devops-troubleshooter/SKILL.md +161 -0
  153. package/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
  154. package/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
  155. package/skills/distributed-tracing/SKILL.md +450 -0
  156. package/skills/django-pro/SKILL.md +180 -0
  157. package/skills/docs-architect/SKILL.md +98 -0
  158. package/skills/documentation-generation-doc-generate/SKILL.md +48 -0
  159. package/skills/documentation-generation-doc-generate/resources/implementation-playbook.md +640 -0
  160. package/skills/dotnet-architect/SKILL.md +197 -0
  161. package/skills/dotnet-backend-patterns/SKILL.md +37 -0
  162. package/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
  163. package/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
  164. package/skills/dotnet-backend-patterns/references/dapper-patterns.md +544 -0
  165. package/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
  166. package/skills/dotnet-backend-patterns/resources/implementation-playbook.md +799 -0
  167. package/skills/dummy-skill/SKILL.md +5 -0
  168. package/skills/dx-optimizer/SKILL.md +83 -0
  169. package/skills/e2e-testing-patterns/SKILL.md +41 -0
  170. package/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
  171. package/skills/elixir-pro/SKILL.md +59 -0
  172. package/skills/embedding-strategies/SKILL.md +491 -0
  173. package/skills/employment-contract-templates/SKILL.md +39 -0
  174. package/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
  175. package/skills/error-debugging-error-analysis/SKILL.md +47 -0
  176. package/skills/error-debugging-error-analysis/resources/implementation-playbook.md +1143 -0
  177. package/skills/error-debugging-error-trace/SKILL.md +43 -0
  178. package/skills/error-debugging-error-trace/resources/implementation-playbook.md +1361 -0
  179. package/skills/error-debugging-multi-agent-review/SKILL.md +216 -0
  180. package/skills/error-detective/SKILL.md +53 -0
  181. package/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
  182. package/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
  183. package/skills/error-diagnostics-error-trace/SKILL.md +48 -0
  184. package/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
  185. package/skills/error-diagnostics-smart-debug/SKILL.md +197 -0
  186. package/skills/error-handling-patterns/SKILL.md +35 -0
  187. package/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
  188. package/skills/event-sourcing-architect/SKILL.md +58 -0
  189. package/skills/event-store-design/SKILL.md +449 -0
  190. package/skills/fastapi-pro/SKILL.md +192 -0
  191. package/skills/fastapi-templates/SKILL.md +32 -0
  192. package/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
  193. package/skills/final-test/SKILL.md +5 -0
  194. package/skills/firmware-analyst/SKILL.md +320 -0
  195. package/skills/flutter-expert/SKILL.md +200 -0
  196. package/skills/framework-migration-code-migrate/SKILL.md +48 -0
  197. package/skills/framework-migration-code-migrate/resources/implementation-playbook.md +1052 -0
  198. package/skills/framework-migration-deps-upgrade/SKILL.md +48 -0
  199. package/skills/framework-migration-deps-upgrade/resources/implementation-playbook.md +755 -0
  200. package/skills/framework-migration-legacy-modernize/SKILL.md +132 -0
  201. package/skills/frontend-developer/SKILL.md +171 -0
  202. package/skills/frontend-mobile-development-component-scaffold/SKILL.md +403 -0
  203. package/skills/frontend-mobile-security-xss-scan/SKILL.md +322 -0
  204. package/skills/frontend-security-coder/SKILL.md +170 -0
  205. package/skills/full-stack-orchestration-full-stack-feature/SKILL.md +135 -0
  206. package/skills/gdpr-data-handling/SKILL.md +33 -0
  207. package/skills/gdpr-data-handling/resources/implementation-playbook.md +615 -0
  208. package/skills/git-advanced-workflows/SKILL.md +412 -0
  209. package/skills/git-pr-workflows-git-workflow/SKILL.md +140 -0
  210. package/skills/git-pr-workflows-onboard/SKILL.md +416 -0
  211. package/skills/git-pr-workflows-pr-enhance/SKILL.md +48 -0
  212. package/skills/git-pr-workflows-pr-enhance/resources/implementation-playbook.md +701 -0
  213. package/skills/github-actions-templates/SKILL.md +345 -0
  214. package/skills/gitlab-ci-patterns/SKILL.md +283 -0
  215. package/skills/gitops-workflow/SKILL.md +303 -0
  216. package/skills/gitops-workflow/references/argocd-setup.md +134 -0
  217. package/skills/gitops-workflow/references/sync-policies.md +131 -0
  218. package/skills/go-concurrency-patterns/SKILL.md +33 -0
  219. package/skills/go-concurrency-patterns/resources/implementation-playbook.md +654 -0
  220. package/skills/godot-gdscript-patterns/SKILL.md +33 -0
  221. package/skills/godot-gdscript-patterns/resources/implementation-playbook.md +804 -0
  222. package/skills/golang-pro/SKILL.md +179 -0
  223. package/skills/grafana-dashboards/SKILL.md +381 -0
  224. package/skills/graphql-architect/SKILL.md +182 -0
  225. package/skills/haskell-pro/SKILL.md +56 -0
  226. package/skills/helm-chart-scaffolding/SKILL.md +34 -0
  227. package/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
  228. package/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
  229. package/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
  230. package/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
  231. package/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
  232. package/skills/hr-pro/SKILL.md +126 -0
  233. package/skills/hybrid-cloud-architect/SKILL.md +168 -0
  234. package/skills/hybrid-cloud-networking/SKILL.md +238 -0
  235. package/skills/hybrid-search-implementation/SKILL.md +32 -0
  236. package/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
  237. package/skills/incident-responder/SKILL.md +213 -0
  238. package/skills/incident-response-incident-response/SKILL.md +168 -0
  239. package/skills/incident-response-smart-fix/SKILL.md +29 -0
  240. package/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
  241. package/skills/incident-runbook-templates/SKILL.md +395 -0
  242. package/skills/ios-developer/SKILL.md +219 -0
  243. package/skills/istio-traffic-management/SKILL.md +337 -0
  244. package/skills/java-pro/SKILL.md +177 -0
  245. package/skills/javascript-pro/SKILL.md +57 -0
  246. package/skills/javascript-testing-patterns/SKILL.md +35 -0
  247. package/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
  248. package/skills/javascript-typescript-typescript-scaffold/SKILL.md +361 -0
  249. package/skills/julia-pro/SKILL.md +209 -0
  250. package/skills/k8s-manifest-generator/SKILL.md +35 -0
  251. package/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
  252. package/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
  253. package/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
  254. package/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
  255. package/skills/k8s-manifest-generator/references/service-spec.md +724 -0
  256. package/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
  257. package/skills/k8s-security-policies/SKILL.md +346 -0
  258. package/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
  259. package/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
  260. package/skills/kpi-dashboard-design/SKILL.md +440 -0
  261. package/skills/kubernetes-architect/SKILL.md +170 -0
  262. package/skills/langchain-architecture/SKILL.md +350 -0
  263. package/skills/legacy-modernizer/SKILL.md +53 -0
  264. package/skills/legal-advisor/SKILL.md +70 -0
  265. package/skills/linkerd-patterns/SKILL.md +321 -0
  266. package/skills/llm-application-dev-ai-assistant/SKILL.md +35 -0
  267. package/skills/llm-application-dev-ai-assistant/resources/implementation-playbook.md +1236 -0
  268. package/skills/llm-application-dev-langchain-agent/SKILL.md +246 -0
  269. package/skills/llm-application-dev-prompt-optimize/SKILL.md +37 -0
  270. package/skills/llm-application-dev-prompt-optimize/resources/implementation-playbook.md +591 -0
  271. package/skills/llm-evaluation/SKILL.md +483 -0
  272. package/skills/machine-learning-ops-ml-pipeline/SKILL.md +314 -0
  273. package/skills/malware-analyst/SKILL.md +247 -0
  274. package/skills/market-sizing-analysis/SKILL.md +425 -0
  275. package/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
  276. package/skills/market-sizing-analysis/references/data-sources.md +360 -0
  277. package/skills/memory-forensics/SKILL.md +491 -0
  278. package/skills/memory-safety-patterns/SKILL.md +33 -0
  279. package/skills/memory-safety-patterns/resources/implementation-playbook.md +603 -0
  280. package/skills/mermaid-expert/SKILL.md +59 -0
  281. package/skills/microservices-patterns/SKILL.md +35 -0
  282. package/skills/microservices-patterns/resources/implementation-playbook.md +607 -0
  283. package/skills/minecraft-bukkit-pro/SKILL.md +126 -0
  284. package/skills/ml-engineer/SKILL.md +168 -0
  285. package/skills/ml-pipeline-workflow/SKILL.md +257 -0
  286. package/skills/mlops-engineer/SKILL.md +219 -0
  287. package/skills/mobile-developer/SKILL.md +205 -0
  288. package/skills/mobile-security-coder/SKILL.md +184 -0
  289. package/skills/modern-javascript-patterns/SKILL.md +35 -0
  290. package/skills/modern-javascript-patterns/resources/implementation-playbook.md +910 -0
  291. package/skills/monorepo-architect/SKILL.md +61 -0
  292. package/skills/monorepo-management/SKILL.md +35 -0
  293. package/skills/monorepo-management/resources/implementation-playbook.md +621 -0
  294. package/skills/mtls-configuration/SKILL.md +359 -0
  295. package/skills/multi-cloud-architecture/SKILL.md +189 -0
  296. package/skills/multi-platform-apps-multi-platform/SKILL.md +203 -0
  297. package/skills/network-engineer/SKILL.md +169 -0
  298. package/skills/nextjs-app-router-patterns/SKILL.md +33 -0
  299. package/skills/nextjs-app-router-patterns/resources/implementation-playbook.md +543 -0
  300. package/skills/nft-standards/SKILL.md +395 -0
  301. package/skills/node-expert/SKILL.md +23 -0
  302. package/skills/nodejs-backend-patterns/SKILL.md +35 -0
  303. package/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
  304. package/skills/nx-workspace-patterns/SKILL.md +464 -0
  305. package/skills/observability-engineer/SKILL.md +237 -0
  306. package/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
  307. package/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
  308. package/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
  309. package/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
  310. package/skills/on-call-handoff-patterns/SKILL.md +453 -0
  311. package/skills/openapi-spec-generation/SKILL.md +33 -0
  312. package/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
  313. package/skills/payment-integration/SKILL.md +77 -0
  314. package/skills/paypal-integration/SKILL.md +479 -0
  315. package/skills/pci-compliance/SKILL.md +478 -0
  316. package/skills/performance-engineer/SKILL.md +180 -0
  317. package/skills/performance-testing-review-ai-review/SKILL.md +450 -0
  318. package/skills/performance-testing-review-multi-agent-review/SKILL.md +216 -0
  319. package/skills/php-pro/SKILL.md +63 -0
  320. package/skills/posix-shell-pro/SKILL.md +304 -0
  321. package/skills/postgresql/SKILL.md +230 -0
  322. package/skills/postmortem-writing/SKILL.md +386 -0
  323. package/skills/projection-patterns/SKILL.md +33 -0
  324. package/skills/projection-patterns/resources/implementation-playbook.md +501 -0
  325. package/skills/prometheus-configuration/SKILL.md +404 -0
  326. package/skills/prompt-engineer/SKILL.md +272 -0
  327. package/skills/prompt-engineering-patterns/SKILL.md +213 -0
  328. package/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
  329. package/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
  330. package/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
  331. package/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
  332. package/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
  333. package/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
  334. package/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
  335. package/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
  336. package/skills/protocol-reverse-engineering/SKILL.md +29 -0
  337. package/skills/protocol-reverse-engineering/resources/implementation-playbook.md +509 -0
  338. package/skills/python-development-python-scaffold/SKILL.md +331 -0
  339. package/skills/python-packaging/SKILL.md +36 -0
  340. package/skills/python-packaging/resources/implementation-playbook.md +869 -0
  341. package/skills/python-performance-optimization/SKILL.md +36 -0
  342. package/skills/python-performance-optimization/resources/implementation-playbook.md +868 -0
  343. package/skills/python-pro/SKILL.md +158 -0
  344. package/skills/python-testing-patterns/SKILL.md +37 -0
  345. package/skills/python-testing-patterns/resources/implementation-playbook.md +906 -0
  346. package/skills/quant-analyst/SKILL.md +53 -0
  347. package/skills/rag-implementation/SKILL.md +421 -0
  348. package/skills/react-modernization/SKILL.md +34 -0
  349. package/skills/react-modernization/resources/implementation-playbook.md +512 -0
  350. package/skills/react-native-architecture/SKILL.md +33 -0
  351. package/skills/react-native-architecture/resources/implementation-playbook.md +670 -0
  352. package/skills/react-state-management/SKILL.md +441 -0
  353. package/skills/reference-builder/SKILL.md +188 -0
  354. package/skills/reverse-engineer/SKILL.md +173 -0
  355. package/skills/risk-manager/SKILL.md +61 -0
  356. package/skills/risk-metrics-calculation/SKILL.md +33 -0
  357. package/skills/risk-metrics-calculation/resources/implementation-playbook.md +554 -0
  358. package/skills/ruby-pro/SKILL.md +56 -0
  359. package/skills/rust-async-patterns/SKILL.md +33 -0
  360. package/skills/rust-async-patterns/resources/implementation-playbook.md +516 -0
  361. package/skills/rust-pro/SKILL.md +178 -0
  362. package/skills/saga-orchestration/SKILL.md +496 -0
  363. package/skills/sales-automator/SKILL.md +55 -0
  364. package/skills/sast-configuration/SKILL.md +212 -0
  365. package/skills/scala-pro/SKILL.md +82 -0
  366. package/skills/screen-reader-testing/SKILL.md +33 -0
  367. package/skills/screen-reader-testing/resources/implementation-playbook.md +544 -0
  368. package/skills/search-specialist/SKILL.md +80 -0
  369. package/skills/secrets-management/SKILL.md +364 -0
  370. package/skills/security-auditor/SKILL.md +169 -0
  371. package/skills/security-compliance-compliance-check/SKILL.md +55 -0
  372. package/skills/security-compliance-compliance-check/resources/implementation-playbook.md +963 -0
  373. package/skills/security-requirement-extraction/SKILL.md +33 -0
  374. package/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
  375. package/skills/security-scanning-security-dependencies/SKILL.md +43 -0
  376. package/skills/security-scanning-security-dependencies/resources/implementation-playbook.md +544 -0
  377. package/skills/security-scanning-security-hardening/SKILL.md +147 -0
  378. package/skills/security-scanning-security-sast/SKILL.md +495 -0
  379. package/skills/seo-authority-builder/SKILL.md +136 -0
  380. package/skills/seo-cannibalization-detector/SKILL.md +123 -0
  381. package/skills/seo-content-auditor/SKILL.md +83 -0
  382. package/skills/seo-content-planner/SKILL.md +108 -0
  383. package/skills/seo-content-refresher/SKILL.md +118 -0
  384. package/skills/seo-content-writer/SKILL.md +96 -0
  385. package/skills/seo-keyword-strategist/SKILL.md +95 -0
  386. package/skills/seo-meta-optimizer/SKILL.md +92 -0
  387. package/skills/seo-snippet-hunter/SKILL.md +114 -0
  388. package/skills/seo-structure-architect/SKILL.md +108 -0
  389. package/skills/service-mesh-expert/SKILL.md +58 -0
  390. package/skills/service-mesh-observability/SKILL.md +395 -0
  391. package/skills/shellcheck-configuration/SKILL.md +466 -0
  392. package/skills/similarity-search-patterns/SKILL.md +33 -0
  393. package/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
  394. package/skills/slo-implementation/SKILL.md +341 -0
  395. package/skills/solidity-security/SKILL.md +34 -0
  396. package/skills/solidity-security/resources/implementation-playbook.md +524 -0
  397. package/skills/spark-optimization/SKILL.md +427 -0
  398. package/skills/sql-optimization-patterns/SKILL.md +35 -0
  399. package/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
  400. package/skills/sql-pro/SKILL.md +173 -0
  401. package/skills/startup-analyst/SKILL.md +328 -0
  402. package/skills/startup-business-analyst-business-case/SKILL.md +487 -0
  403. package/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
  404. package/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
  405. package/skills/startup-financial-modeling/SKILL.md +467 -0
  406. package/skills/startup-metrics-framework/SKILL.md +34 -0
  407. package/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
  408. package/skills/stride-analysis-patterns/SKILL.md +33 -0
  409. package/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
  410. package/skills/stripe-integration/SKILL.md +454 -0
  411. package/skills/systems-programming-rust-project/SKILL.md +440 -0
  412. package/skills/tailwind-design-system/SKILL.md +33 -0
  413. package/skills/tailwind-design-system/resources/implementation-playbook.md +665 -0
  414. package/skills/tdd-orchestrator/SKILL.md +205 -0
  415. package/skills/tdd-workflows-tdd-cycle/SKILL.md +221 -0
  416. package/skills/tdd-workflows-tdd-green/SKILL.md +73 -0
  417. package/skills/tdd-workflows-tdd-green/resources/implementation-playbook.md +870 -0
  418. package/skills/tdd-workflows-tdd-red/SKILL.md +164 -0
  419. package/skills/tdd-workflows-tdd-refactor/SKILL.md +187 -0
  420. package/skills/team-collaboration-issue/SKILL.md +37 -0
  421. package/skills/team-collaboration-issue/resources/implementation-playbook.md +640 -0
  422. package/skills/team-collaboration-standup-notes/SKILL.md +44 -0
  423. package/skills/team-collaboration-standup-notes/resources/implementation-playbook.md +768 -0
  424. package/skills/team-composition-analysis/SKILL.md +413 -0
  425. package/skills/temporal-python-pro/SKILL.md +370 -0
  426. package/skills/temporal-python-testing/SKILL.md +170 -0
  427. package/skills/temporal-python-testing/resources/integration-testing.md +455 -0
  428. package/skills/temporal-python-testing/resources/local-setup.md +553 -0
  429. package/skills/temporal-python-testing/resources/replay-testing.md +462 -0
  430. package/skills/temporal-python-testing/resources/unit-testing.md +328 -0
  431. package/skills/terraform-module-library/SKILL.md +261 -0
  432. package/skills/terraform-module-library/references/aws-modules.md +63 -0
  433. package/skills/terraform-specialist/SKILL.md +166 -0
  434. package/skills/test-automator/SKILL.md +224 -0
  435. package/skills/threat-mitigation-mapping/SKILL.md +33 -0
  436. package/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
  437. package/skills/threat-modeling-expert/SKILL.md +60 -0
  438. package/skills/track-management/SKILL.md +38 -0
  439. package/skills/track-management/resources/implementation-playbook.md +591 -0
  440. package/skills/turborepo-caching/SKILL.md +419 -0
  441. package/skills/tutorial-engineer/SKILL.md +139 -0
  442. package/skills/typescript-advanced-types/SKILL.md +35 -0
  443. package/skills/typescript-advanced-types/resources/implementation-playbook.md +716 -0
  444. package/skills/typescript-pro/SKILL.md +55 -0
  445. package/skills/ui-minimal/SKILL.md +23 -0
  446. package/skills/ui-ux-designer/SKILL.md +209 -0
  447. package/skills/ui-visual-validator/SKILL.md +214 -0
  448. package/skills/unit-testing-test-generate/SKILL.md +319 -0
  449. package/skills/unity-developer/SKILL.md +230 -0
  450. package/skills/unity-ecs-patterns/SKILL.md +33 -0
  451. package/skills/unity-ecs-patterns/resources/implementation-playbook.md +625 -0
  452. package/skills/uv-package-manager/SKILL.md +37 -0
  453. package/skills/uv-package-manager/resources/implementation-playbook.md +830 -0
  454. package/skills/vector-database-engineer/SKILL.md +60 -0
  455. package/skills/vector-index-tuning/SKILL.md +42 -0
  456. package/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
  457. package/skills/wcag-audit-patterns/SKILL.md +41 -0
  458. package/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -0
  459. package/skills/web3-testing/SKILL.md +427 -0
  460. package/skills/workflow-orchestration-patterns/SKILL.md +333 -0
  461. package/skills/workflow-patterns/SKILL.md +38 -0
  462. package/skills/workflow-patterns/resources/implementation-playbook.md +621 -0
@@ -0,0 +1,635 @@
1
+ # Error Handling Patterns Implementation Playbook
2
+
3
+ This file contains detailed patterns, checklists, and code samples referenced by the skill.
4
+
5
+ # Error Handling Patterns
6
+
7
+ Build resilient applications with robust error handling strategies that gracefully handle failures and provide excellent debugging experiences.
8
+
9
+ ## When to Use This Skill
10
+
11
+ - Implementing error handling in new features
12
+ - Designing error-resilient APIs
13
+ - Debugging production issues
14
+ - Improving application reliability
15
+ - Creating better error messages for users and developers
16
+ - Implementing retry and circuit breaker patterns
17
+ - Handling async/concurrent errors
18
+ - Building fault-tolerant distributed systems
19
+
20
+ ## Core Concepts
21
+
22
+ ### 1. Error Handling Philosophies
23
+
24
+ **Exceptions vs Result Types:**
25
+ - **Exceptions**: Traditional try-catch, disrupts control flow
26
+ - **Result Types**: Explicit success/failure, functional approach
27
+ - **Error Codes**: C-style, requires discipline
28
+ - **Option/Maybe Types**: For nullable values
29
+
30
+ **When to Use Each:**
31
+ - Exceptions: Unexpected errors, exceptional conditions
32
+ - Result Types: Expected errors, validation failures
33
+ - Panics/Crashes: Unrecoverable errors, programming bugs
34
+
35
+ ### 2. Error Categories
36
+
37
+ **Recoverable Errors:**
38
+ - Network timeouts
39
+ - Missing files
40
+ - Invalid user input
41
+ - API rate limits
42
+
43
+ **Unrecoverable Errors:**
44
+ - Out of memory
45
+ - Stack overflow
46
+ - Programming bugs (null pointer, etc.)
47
+
48
+ ## Language-Specific Patterns
49
+
50
+ ### Python Error Handling
51
+
52
+ **Custom Exception Hierarchy:**
53
+ ```python
54
+ class ApplicationError(Exception):
55
+ """Base exception for all application errors."""
56
+ def __init__(self, message: str, code: str = None, details: dict = None):
57
+ super().__init__(message)
58
+ self.code = code
59
+ self.details = details or {}
60
+ self.timestamp = datetime.utcnow()
61
+
62
+ class ValidationError(ApplicationError):
63
+ """Raised when validation fails."""
64
+ pass
65
+
66
+ class NotFoundError(ApplicationError):
67
+ """Raised when resource not found."""
68
+ pass
69
+
70
+ class ExternalServiceError(ApplicationError):
71
+ """Raised when external service fails."""
72
+ def __init__(self, message: str, service: str, **kwargs):
73
+ super().__init__(message, **kwargs)
74
+ self.service = service
75
+
76
+ # Usage
77
+ def get_user(user_id: str) -> User:
78
+ user = db.query(User).filter_by(id=user_id).first()
79
+ if not user:
80
+ raise NotFoundError(
81
+ f"User not found",
82
+ code="USER_NOT_FOUND",
83
+ details={"user_id": user_id}
84
+ )
85
+ return user
86
+ ```
87
+
88
+ **Context Managers for Cleanup:**
89
+ ```python
90
+ from contextlib import contextmanager
91
+
92
+ @contextmanager
93
+ def database_transaction(session):
94
+ """Ensure transaction is committed or rolled back."""
95
+ try:
96
+ yield session
97
+ session.commit()
98
+ except Exception as e:
99
+ session.rollback()
100
+ raise
101
+ finally:
102
+ session.close()
103
+
104
+ # Usage
105
+ with database_transaction(db.session) as session:
106
+ user = User(name="Alice")
107
+ session.add(user)
108
+ # Automatic commit or rollback
109
+ ```
110
+
111
+ **Retry with Exponential Backoff:**
112
+ ```python
113
+ import time
114
+ from functools import wraps
115
+ from typing import TypeVar, Callable
116
+
117
+ T = TypeVar('T')
118
+
119
+ def retry(
120
+ max_attempts: int = 3,
121
+ backoff_factor: float = 2.0,
122
+ exceptions: tuple = (Exception,)
123
+ ):
124
+ """Retry decorator with exponential backoff."""
125
+ def decorator(func: Callable[..., T]) -> Callable[..., T]:
126
+ @wraps(func)
127
+ def wrapper(*args, **kwargs) -> T:
128
+ last_exception = None
129
+ for attempt in range(max_attempts):
130
+ try:
131
+ return func(*args, **kwargs)
132
+ except exceptions as e:
133
+ last_exception = e
134
+ if attempt < max_attempts - 1:
135
+ sleep_time = backoff_factor ** attempt
136
+ time.sleep(sleep_time)
137
+ continue
138
+ raise
139
+ raise last_exception
140
+ return wrapper
141
+ return decorator
142
+
143
+ # Usage
144
+ @retry(max_attempts=3, exceptions=(NetworkError,))
145
+ def fetch_data(url: str) -> dict:
146
+ response = requests.get(url, timeout=5)
147
+ response.raise_for_status()
148
+ return response.json()
149
+ ```
150
+
151
+ ### TypeScript/JavaScript Error Handling
152
+
153
+ **Custom Error Classes:**
154
+ ```typescript
155
+ // Custom error classes
156
+ class ApplicationError extends Error {
157
+ constructor(
158
+ message: string,
159
+ public code: string,
160
+ public statusCode: number = 500,
161
+ public details?: Record<string, any>
162
+ ) {
163
+ super(message);
164
+ this.name = this.constructor.name;
165
+ Error.captureStackTrace(this, this.constructor);
166
+ }
167
+ }
168
+
169
+ class ValidationError extends ApplicationError {
170
+ constructor(message: string, details?: Record<string, any>) {
171
+ super(message, 'VALIDATION_ERROR', 400, details);
172
+ }
173
+ }
174
+
175
+ class NotFoundError extends ApplicationError {
176
+ constructor(resource: string, id: string) {
177
+ super(
178
+ `${resource} not found`,
179
+ 'NOT_FOUND',
180
+ 404,
181
+ { resource, id }
182
+ );
183
+ }
184
+ }
185
+
186
+ // Usage
187
+ function getUser(id: string): User {
188
+ const user = users.find(u => u.id === id);
189
+ if (!user) {
190
+ throw new NotFoundError('User', id);
191
+ }
192
+ return user;
193
+ }
194
+ ```
195
+
196
+ **Result Type Pattern:**
197
+ ```typescript
198
+ // Result type for explicit error handling
199
+ type Result<T, E = Error> =
200
+ | { ok: true; value: T }
201
+ | { ok: false; error: E };
202
+
203
+ // Helper functions
204
+ function Ok<T>(value: T): Result<T, never> {
205
+ return { ok: true, value };
206
+ }
207
+
208
+ function Err<E>(error: E): Result<never, E> {
209
+ return { ok: false, error };
210
+ }
211
+
212
+ // Usage
213
+ function parseJSON<T>(json: string): Result<T, SyntaxError> {
214
+ try {
215
+ const value = JSON.parse(json) as T;
216
+ return Ok(value);
217
+ } catch (error) {
218
+ return Err(error as SyntaxError);
219
+ }
220
+ }
221
+
222
+ // Consuming Result
223
+ const result = parseJSON<User>(userJson);
224
+ if (result.ok) {
225
+ console.log(result.value.name);
226
+ } else {
227
+ console.error('Parse failed:', result.error.message);
228
+ }
229
+
230
+ // Chaining Results
231
+ function chain<T, U, E>(
232
+ result: Result<T, E>,
233
+ fn: (value: T) => Result<U, E>
234
+ ): Result<U, E> {
235
+ return result.ok ? fn(result.value) : result;
236
+ }
237
+ ```
238
+
239
+ **Async Error Handling:**
240
+ ```typescript
241
+ // Async/await with proper error handling
242
+ async function fetchUserOrders(userId: string): Promise<Order[]> {
243
+ try {
244
+ const user = await getUser(userId);
245
+ const orders = await getOrders(user.id);
246
+ return orders;
247
+ } catch (error) {
248
+ if (error instanceof NotFoundError) {
249
+ return []; // Return empty array for not found
250
+ }
251
+ if (error instanceof NetworkError) {
252
+ // Retry logic
253
+ return retryFetchOrders(userId);
254
+ }
255
+ // Re-throw unexpected errors
256
+ throw error;
257
+ }
258
+ }
259
+
260
+ // Promise error handling
261
+ function fetchData(url: string): Promise<Data> {
262
+ return fetch(url)
263
+ .then(response => {
264
+ if (!response.ok) {
265
+ throw new NetworkError(`HTTP ${response.status}`);
266
+ }
267
+ return response.json();
268
+ })
269
+ .catch(error => {
270
+ console.error('Fetch failed:', error);
271
+ throw error;
272
+ });
273
+ }
274
+ ```
275
+
276
+ ### Rust Error Handling
277
+
278
+ **Result and Option Types:**
279
+ ```rust
280
+ use std::fs::File;
281
+ use std::io::{self, Read};
282
+
283
+ // Result type for operations that can fail
284
+ fn read_file(path: &str) -> Result<String, io::Error> {
285
+ let mut file = File::open(path)?; // ? operator propagates errors
286
+ let mut contents = String::new();
287
+ file.read_to_string(&mut contents)?;
288
+ Ok(contents)
289
+ }
290
+
291
+ // Custom error types
292
+ #[derive(Debug)]
293
+ enum AppError {
294
+ Io(io::Error),
295
+ Parse(std::num::ParseIntError),
296
+ NotFound(String),
297
+ Validation(String),
298
+ }
299
+
300
+ impl From<io::Error> for AppError {
301
+ fn from(error: io::Error) -> Self {
302
+ AppError::Io(error)
303
+ }
304
+ }
305
+
306
+ // Using custom error type
307
+ fn read_number_from_file(path: &str) -> Result<i32, AppError> {
308
+ let contents = read_file(path)?; // Auto-converts io::Error
309
+ let number = contents.trim().parse()
310
+ .map_err(AppError::Parse)?; // Explicitly convert ParseIntError
311
+ Ok(number)
312
+ }
313
+
314
+ // Option for nullable values
315
+ fn find_user(id: &str) -> Option<User> {
316
+ users.iter().find(|u| u.id == id).cloned()
317
+ }
318
+
319
+ // Combining Option and Result
320
+ fn get_user_age(id: &str) -> Result<u32, AppError> {
321
+ find_user(id)
322
+ .ok_or_else(|| AppError::NotFound(id.to_string()))
323
+ .map(|user| user.age)
324
+ }
325
+ ```
326
+
327
+ ### Go Error Handling
328
+
329
+ **Explicit Error Returns:**
330
+ ```go
331
+ // Basic error handling
332
+ func getUser(id string) (*User, error) {
333
+ user, err := db.QueryUser(id)
334
+ if err != nil {
335
+ return nil, fmt.Errorf("failed to query user: %w", err)
336
+ }
337
+ if user == nil {
338
+ return nil, errors.New("user not found")
339
+ }
340
+ return user, nil
341
+ }
342
+
343
+ // Custom error types
344
+ type ValidationError struct {
345
+ Field string
346
+ Message string
347
+ }
348
+
349
+ func (e *ValidationError) Error() string {
350
+ return fmt.Sprintf("validation failed for %s: %s", e.Field, e.Message)
351
+ }
352
+
353
+ // Sentinel errors for comparison
354
+ var (
355
+ ErrNotFound = errors.New("not found")
356
+ ErrUnauthorized = errors.New("unauthorized")
357
+ ErrInvalidInput = errors.New("invalid input")
358
+ )
359
+
360
+ // Error checking
361
+ user, err := getUser("123")
362
+ if err != nil {
363
+ if errors.Is(err, ErrNotFound) {
364
+ // Handle not found
365
+ } else {
366
+ // Handle other errors
367
+ }
368
+ }
369
+
370
+ // Error wrapping and unwrapping
371
+ func processUser(id string) error {
372
+ user, err := getUser(id)
373
+ if err != nil {
374
+ return fmt.Errorf("process user failed: %w", err)
375
+ }
376
+ // Process user
377
+ return nil
378
+ }
379
+
380
+ // Unwrap errors
381
+ err := processUser("123")
382
+ if err != nil {
383
+ var valErr *ValidationError
384
+ if errors.As(err, &valErr) {
385
+ fmt.Printf("Validation error: %s\n", valErr.Field)
386
+ }
387
+ }
388
+ ```
389
+
390
+ ## Universal Patterns
391
+
392
+ ### Pattern 1: Circuit Breaker
393
+
394
+ Prevent cascading failures in distributed systems.
395
+
396
+ ```python
397
+ from enum import Enum
398
+ from datetime import datetime, timedelta
399
+ from typing import Callable, TypeVar
400
+
401
+ T = TypeVar('T')
402
+
403
+ class CircuitState(Enum):
404
+ CLOSED = "closed" # Normal operation
405
+ OPEN = "open" # Failing, reject requests
406
+ HALF_OPEN = "half_open" # Testing if recovered
407
+
408
+ class CircuitBreaker:
409
+ def __init__(
410
+ self,
411
+ failure_threshold: int = 5,
412
+ timeout: timedelta = timedelta(seconds=60),
413
+ success_threshold: int = 2
414
+ ):
415
+ self.failure_threshold = failure_threshold
416
+ self.timeout = timeout
417
+ self.success_threshold = success_threshold
418
+ self.failure_count = 0
419
+ self.success_count = 0
420
+ self.state = CircuitState.CLOSED
421
+ self.last_failure_time = None
422
+
423
+ def call(self, func: Callable[[], T]) -> T:
424
+ if self.state == CircuitState.OPEN:
425
+ if datetime.now() - self.last_failure_time > self.timeout:
426
+ self.state = CircuitState.HALF_OPEN
427
+ self.success_count = 0
428
+ else:
429
+ raise Exception("Circuit breaker is OPEN")
430
+
431
+ try:
432
+ result = func()
433
+ self.on_success()
434
+ return result
435
+ except Exception as e:
436
+ self.on_failure()
437
+ raise
438
+
439
+ def on_success(self):
440
+ self.failure_count = 0
441
+ if self.state == CircuitState.HALF_OPEN:
442
+ self.success_count += 1
443
+ if self.success_count >= self.success_threshold:
444
+ self.state = CircuitState.CLOSED
445
+ self.success_count = 0
446
+
447
+ def on_failure(self):
448
+ self.failure_count += 1
449
+ self.last_failure_time = datetime.now()
450
+ if self.failure_count >= self.failure_threshold:
451
+ self.state = CircuitState.OPEN
452
+
453
+ # Usage
454
+ circuit_breaker = CircuitBreaker()
455
+
456
+ def fetch_data():
457
+ return circuit_breaker.call(lambda: external_api.get_data())
458
+ ```
459
+
460
+ ### Pattern 2: Error Aggregation
461
+
462
+ Collect multiple errors instead of failing on first error.
463
+
464
+ ```typescript
465
+ class ErrorCollector {
466
+ private errors: Error[] = [];
467
+
468
+ add(error: Error): void {
469
+ this.errors.push(error);
470
+ }
471
+
472
+ hasErrors(): boolean {
473
+ return this.errors.length > 0;
474
+ }
475
+
476
+ getErrors(): Error[] {
477
+ return [...this.errors];
478
+ }
479
+
480
+ throw(): never {
481
+ if (this.errors.length === 1) {
482
+ throw this.errors[0];
483
+ }
484
+ throw new AggregateError(
485
+ this.errors,
486
+ `${this.errors.length} errors occurred`
487
+ );
488
+ }
489
+ }
490
+
491
+ // Usage: Validate multiple fields
492
+ function validateUser(data: any): User {
493
+ const errors = new ErrorCollector();
494
+
495
+ if (!data.email) {
496
+ errors.add(new ValidationError('Email is required'));
497
+ } else if (!isValidEmail(data.email)) {
498
+ errors.add(new ValidationError('Email is invalid'));
499
+ }
500
+
501
+ if (!data.name || data.name.length < 2) {
502
+ errors.add(new ValidationError('Name must be at least 2 characters'));
503
+ }
504
+
505
+ if (!data.age || data.age < 18) {
506
+ errors.add(new ValidationError('Age must be 18 or older'));
507
+ }
508
+
509
+ if (errors.hasErrors()) {
510
+ errors.throw();
511
+ }
512
+
513
+ return data as User;
514
+ }
515
+ ```
516
+
517
+ ### Pattern 3: Graceful Degradation
518
+
519
+ Provide fallback functionality when errors occur.
520
+
521
+ ```python
522
+ from typing import Optional, Callable, TypeVar
523
+
524
+ T = TypeVar('T')
525
+
526
+ def with_fallback(
527
+ primary: Callable[[], T],
528
+ fallback: Callable[[], T],
529
+ log_error: bool = True
530
+ ) -> T:
531
+ """Try primary function, fall back to fallback on error."""
532
+ try:
533
+ return primary()
534
+ except Exception as e:
535
+ if log_error:
536
+ logger.error(f"Primary function failed: {e}")
537
+ return fallback()
538
+
539
+ # Usage
540
+ def get_user_profile(user_id: str) -> UserProfile:
541
+ return with_fallback(
542
+ primary=lambda: fetch_from_cache(user_id),
543
+ fallback=lambda: fetch_from_database(user_id)
544
+ )
545
+
546
+ # Multiple fallbacks
547
+ def get_exchange_rate(currency: str) -> float:
548
+ return (
549
+ try_function(lambda: api_provider_1.get_rate(currency))
550
+ or try_function(lambda: api_provider_2.get_rate(currency))
551
+ or try_function(lambda: cache.get_rate(currency))
552
+ or DEFAULT_RATE
553
+ )
554
+
555
+ def try_function(func: Callable[[], Optional[T]]) -> Optional[T]:
556
+ try:
557
+ return func()
558
+ except Exception:
559
+ return None
560
+ ```
561
+
562
+ ## Best Practices
563
+
564
+ 1. **Fail Fast**: Validate input early, fail quickly
565
+ 2. **Preserve Context**: Include stack traces, metadata, timestamps
566
+ 3. **Meaningful Messages**: Explain what happened and how to fix it
567
+ 4. **Log Appropriately**: Error = log, expected failure = don't spam logs
568
+ 5. **Handle at Right Level**: Catch where you can meaningfully handle
569
+ 6. **Clean Up Resources**: Use try-finally, context managers, defer
570
+ 7. **Don't Swallow Errors**: Log or re-throw, don't silently ignore
571
+ 8. **Type-Safe Errors**: Use typed errors when possible
572
+
573
+ ```python
574
+ # Good error handling example
575
+ def process_order(order_id: str) -> Order:
576
+ """Process order with comprehensive error handling."""
577
+ try:
578
+ # Validate input
579
+ if not order_id:
580
+ raise ValidationError("Order ID is required")
581
+
582
+ # Fetch order
583
+ order = db.get_order(order_id)
584
+ if not order:
585
+ raise NotFoundError("Order", order_id)
586
+
587
+ # Process payment
588
+ try:
589
+ payment_result = payment_service.charge(order.total)
590
+ except PaymentServiceError as e:
591
+ # Log and wrap external service error
592
+ logger.error(f"Payment failed for order {order_id}: {e}")
593
+ raise ExternalServiceError(
594
+ f"Payment processing failed",
595
+ service="payment_service",
596
+ details={"order_id": order_id, "amount": order.total}
597
+ ) from e
598
+
599
+ # Update order
600
+ order.status = "completed"
601
+ order.payment_id = payment_result.id
602
+ db.save(order)
603
+
604
+ return order
605
+
606
+ except ApplicationError:
607
+ # Re-raise known application errors
608
+ raise
609
+ except Exception as e:
610
+ # Log unexpected errors
611
+ logger.exception(f"Unexpected error processing order {order_id}")
612
+ raise ApplicationError(
613
+ "Order processing failed",
614
+ code="INTERNAL_ERROR"
615
+ ) from e
616
+ ```
617
+
618
+ ## Common Pitfalls
619
+
620
+ - **Catching Too Broadly**: `except Exception` hides bugs
621
+ - **Empty Catch Blocks**: Silently swallowing errors
622
+ - **Logging and Re-throwing**: Creates duplicate log entries
623
+ - **Not Cleaning Up**: Forgetting to close files, connections
624
+ - **Poor Error Messages**: "Error occurred" is not helpful
625
+ - **Returning Error Codes**: Use exceptions or Result types
626
+ - **Ignoring Async Errors**: Unhandled promise rejections
627
+
628
+ ## Resources
629
+
630
+ - **references/exception-hierarchy-design.md**: Designing error class hierarchies
631
+ - **references/error-recovery-strategies.md**: Recovery patterns for different scenarios
632
+ - **references/async-error-handling.md**: Handling errors in concurrent code
633
+ - **assets/error-handling-checklist.md**: Review checklist for error handling
634
+ - **assets/error-message-guide.md**: Writing helpful error messages
635
+ - **scripts/error-analyzer.py**: Analyze error patterns in logs
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: event-sourcing-architect
3
+ description: "Expert in event sourcing, CQRS, and event-driven architecture patterns. Masters event store design, projection building, saga orchestration, and eventual consistency patterns. Use PROACTIVELY for event-sourced systems, audit trails, or temporal queries."
4
+ ---
5
+
6
+ # Event Sourcing Architect
7
+
8
+ Expert in event sourcing, CQRS, and event-driven architecture patterns. Masters event store design, projection building, saga orchestration, and eventual consistency patterns. Use PROACTIVELY for event-sourced systems, audit trail requirements, or complex domain modeling with temporal queries.
9
+
10
+ ## Capabilities
11
+
12
+ - Event store design and implementation
13
+ - CQRS (Command Query Responsibility Segregation) patterns
14
+ - Projection building and read model optimization
15
+ - Saga and process manager orchestration
16
+ - Event versioning and schema evolution
17
+ - Snapshotting strategies for performance
18
+ - Eventual consistency handling
19
+
20
+ ## Use this skill when
21
+
22
+ - Building systems requiring complete audit trails
23
+ - Implementing complex business workflows with compensating actions
24
+ - Designing systems needing temporal queries ("what was state at time X")
25
+ - Separating read and write models for performance
26
+ - Building event-driven microservices architectures
27
+ - Implementing undo/redo or time-travel debugging
28
+
29
+ ## Do not use this skill when
30
+
31
+ - The domain is simple and CRUD is sufficient
32
+ - You cannot support event store operations or projections
33
+ - Strong immediate consistency is required everywhere
34
+
35
+ ## Instructions
36
+
37
+ 1. Identify aggregate boundaries and event streams
38
+ 2. Design events as immutable facts
39
+ 3. Implement command handlers and event application
40
+ 4. Build projections for query requirements
41
+ 5. Design saga/process managers for cross-aggregate workflows
42
+ 6. Implement snapshotting for long-lived aggregates
43
+ 7. Set up event versioning strategy
44
+
45
+ ## Safety
46
+
47
+ - Never mutate or delete committed events in production.
48
+ - Rebuild projections in staging before running in production.
49
+
50
+ ## Best Practices
51
+
52
+ - Events are facts - never delete or modify them
53
+ - Keep events small and focused
54
+ - Version events from day one
55
+ - Design for eventual consistency
56
+ - Use correlation IDs for tracing
57
+ - Implement idempotent event handlers
58
+ - Plan for projection rebuilding