@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,35 @@
1
+ ---
2
+ name: cqrs-implementation
3
+ description: Implement Command Query Responsibility Segregation for scalable architectures. Use when separating read and write models, optimizing query performance, or building event-sourced systems.
4
+ ---
5
+
6
+ # CQRS Implementation
7
+
8
+ Comprehensive guide to implementing CQRS (Command Query Responsibility Segregation) patterns.
9
+
10
+ ## Use this skill when
11
+
12
+ - Separating read and write concerns
13
+ - Scaling reads independently from writes
14
+ - Building event-sourced systems
15
+ - Optimizing complex query scenarios
16
+ - Different read/write data models are needed
17
+ - High-performance reporting is required
18
+
19
+ ## Do not use this skill when
20
+
21
+ - The domain is simple and CRUD is sufficient
22
+ - You cannot operate separate read/write models
23
+ - Strong immediate consistency is required everywhere
24
+
25
+ ## Instructions
26
+
27
+ - Identify read/write workloads and consistency needs.
28
+ - Define command and query models with clear boundaries.
29
+ - Implement read model projections and synchronization.
30
+ - Validate performance, recovery, and failure modes.
31
+ - If detailed patterns are required, open `resources/implementation-playbook.md`.
32
+
33
+ ## Resources
34
+
35
+ - `resources/implementation-playbook.md` for detailed CQRS patterns and templates.
@@ -0,0 +1,540 @@
1
+ # CQRS Implementation Playbook
2
+
3
+ This file contains detailed patterns, checklists, and code samples referenced by the skill.
4
+
5
+ ## Core Concepts
6
+
7
+ ### 1. CQRS Architecture
8
+
9
+ ```
10
+ ┌─────────────┐
11
+ │ Client │
12
+ └──────┬──────┘
13
+
14
+ ┌────────────┴────────────┐
15
+ │ │
16
+ ▼ ▼
17
+ ┌─────────────┐ ┌─────────────┐
18
+ │ Commands │ │ Queries │
19
+ │ API │ │ API │
20
+ └──────┬──────┘ └──────┬──────┘
21
+ │ │
22
+ ▼ ▼
23
+ ┌─────────────┐ ┌─────────────┐
24
+ │ Command │ │ Query │
25
+ │ Handlers │ │ Handlers │
26
+ └──────┬──────┘ └──────┬──────┘
27
+ │ │
28
+ ▼ ▼
29
+ ┌─────────────┐ ┌─────────────┐
30
+ │ Write │─────────►│ Read │
31
+ │ Model │ Events │ Model │
32
+ └─────────────┘ └─────────────┘
33
+ ```
34
+
35
+ ### 2. Key Components
36
+
37
+ | Component | Responsibility |
38
+ | ------------------- | ------------------------------- |
39
+ | **Command** | Intent to change state |
40
+ | **Command Handler** | Validates and executes commands |
41
+ | **Event** | Record of state change |
42
+ | **Query** | Request for data |
43
+ | **Query Handler** | Retrieves data from read model |
44
+ | **Projector** | Updates read model from events |
45
+
46
+ ## Templates
47
+
48
+ ### Template 1: Command Infrastructure
49
+
50
+ ```python
51
+ from abc import ABC, abstractmethod
52
+ from dataclasses import dataclass
53
+ from typing import TypeVar, Generic, Dict, Any, Type
54
+ from datetime import datetime
55
+ import uuid
56
+
57
+ # Command base
58
+ @dataclass
59
+ class Command:
60
+ command_id: str = None
61
+ timestamp: datetime = None
62
+
63
+ def __post_init__(self):
64
+ self.command_id = self.command_id or str(uuid.uuid4())
65
+ self.timestamp = self.timestamp or datetime.utcnow()
66
+
67
+
68
+ # Concrete commands
69
+ @dataclass
70
+ class CreateOrder(Command):
71
+ customer_id: str
72
+ items: list
73
+ shipping_address: dict
74
+
75
+
76
+ @dataclass
77
+ class AddOrderItem(Command):
78
+ order_id: str
79
+ product_id: str
80
+ quantity: int
81
+ price: float
82
+
83
+
84
+ @dataclass
85
+ class CancelOrder(Command):
86
+ order_id: str
87
+ reason: str
88
+
89
+
90
+ # Command handler base
91
+ T = TypeVar('T', bound=Command)
92
+
93
+ class CommandHandler(ABC, Generic[T]):
94
+ @abstractmethod
95
+ async def handle(self, command: T) -> Any:
96
+ pass
97
+
98
+
99
+ # Command bus
100
+ class CommandBus:
101
+ def __init__(self):
102
+ self._handlers: Dict[Type[Command], CommandHandler] = {}
103
+
104
+ def register(self, command_type: Type[Command], handler: CommandHandler):
105
+ self._handlers[command_type] = handler
106
+
107
+ async def dispatch(self, command: Command) -> Any:
108
+ handler = self._handlers.get(type(command))
109
+ if not handler:
110
+ raise ValueError(f"No handler for {type(command).__name__}")
111
+ return await handler.handle(command)
112
+
113
+
114
+ # Command handler implementation
115
+ class CreateOrderHandler(CommandHandler[CreateOrder]):
116
+ def __init__(self, order_repository, event_store):
117
+ self.order_repository = order_repository
118
+ self.event_store = event_store
119
+
120
+ async def handle(self, command: CreateOrder) -> str:
121
+ # Validate
122
+ if not command.items:
123
+ raise ValueError("Order must have at least one item")
124
+
125
+ # Create aggregate
126
+ order = Order.create(
127
+ customer_id=command.customer_id,
128
+ items=command.items,
129
+ shipping_address=command.shipping_address
130
+ )
131
+
132
+ # Persist events
133
+ await self.event_store.append_events(
134
+ stream_id=f"Order-{order.id}",
135
+ stream_type="Order",
136
+ events=order.uncommitted_events
137
+ )
138
+
139
+ return order.id
140
+ ```
141
+
142
+ ### Template 2: Query Infrastructure
143
+
144
+ ```python
145
+ from abc import ABC, abstractmethod
146
+ from dataclasses import dataclass
147
+ from typing import TypeVar, Generic, List, Optional
148
+
149
+ # Query base
150
+ @dataclass
151
+ class Query:
152
+ pass
153
+
154
+
155
+ # Concrete queries
156
+ @dataclass
157
+ class GetOrderById(Query):
158
+ order_id: str
159
+
160
+
161
+ @dataclass
162
+ class GetCustomerOrders(Query):
163
+ customer_id: str
164
+ status: Optional[str] = None
165
+ page: int = 1
166
+ page_size: int = 20
167
+
168
+
169
+ @dataclass
170
+ class SearchOrders(Query):
171
+ query: str
172
+ filters: dict = None
173
+ sort_by: str = "created_at"
174
+ sort_order: str = "desc"
175
+
176
+
177
+ # Query result types
178
+ @dataclass
179
+ class OrderView:
180
+ order_id: str
181
+ customer_id: str
182
+ status: str
183
+ total_amount: float
184
+ item_count: int
185
+ created_at: datetime
186
+ shipped_at: Optional[datetime] = None
187
+
188
+
189
+ @dataclass
190
+ class PaginatedResult(Generic[T]):
191
+ items: List[T]
192
+ total: int
193
+ page: int
194
+ page_size: int
195
+
196
+ @property
197
+ def total_pages(self) -> int:
198
+ return (self.total + self.page_size - 1) // self.page_size
199
+
200
+
201
+ # Query handler base
202
+ T = TypeVar('T', bound=Query)
203
+ R = TypeVar('R')
204
+
205
+ class QueryHandler(ABC, Generic[T, R]):
206
+ @abstractmethod
207
+ async def handle(self, query: T) -> R:
208
+ pass
209
+
210
+
211
+ # Query bus
212
+ class QueryBus:
213
+ def __init__(self):
214
+ self._handlers: Dict[Type[Query], QueryHandler] = {}
215
+
216
+ def register(self, query_type: Type[Query], handler: QueryHandler):
217
+ self._handlers[query_type] = handler
218
+
219
+ async def dispatch(self, query: Query) -> Any:
220
+ handler = self._handlers.get(type(query))
221
+ if not handler:
222
+ raise ValueError(f"No handler for {type(query).__name__}")
223
+ return await handler.handle(query)
224
+
225
+
226
+ # Query handler implementation
227
+ class GetOrderByIdHandler(QueryHandler[GetOrderById, Optional[OrderView]]):
228
+ def __init__(self, read_db):
229
+ self.read_db = read_db
230
+
231
+ async def handle(self, query: GetOrderById) -> Optional[OrderView]:
232
+ async with self.read_db.acquire() as conn:
233
+ row = await conn.fetchrow(
234
+ """
235
+ SELECT order_id, customer_id, status, total_amount,
236
+ item_count, created_at, shipped_at
237
+ FROM order_views
238
+ WHERE order_id = $1
239
+ """,
240
+ query.order_id
241
+ )
242
+ if row:
243
+ return OrderView(**dict(row))
244
+ return None
245
+
246
+
247
+ class GetCustomerOrdersHandler(QueryHandler[GetCustomerOrders, PaginatedResult[OrderView]]):
248
+ def __init__(self, read_db):
249
+ self.read_db = read_db
250
+
251
+ async def handle(self, query: GetCustomerOrders) -> PaginatedResult[OrderView]:
252
+ async with self.read_db.acquire() as conn:
253
+ # Build query with optional status filter
254
+ where_clause = "customer_id = $1"
255
+ params = [query.customer_id]
256
+
257
+ if query.status:
258
+ where_clause += " AND status = $2"
259
+ params.append(query.status)
260
+
261
+ # Get total count
262
+ total = await conn.fetchval(
263
+ f"SELECT COUNT(*) FROM order_views WHERE {where_clause}",
264
+ *params
265
+ )
266
+
267
+ # Get paginated results
268
+ offset = (query.page - 1) * query.page_size
269
+ rows = await conn.fetch(
270
+ f"""
271
+ SELECT order_id, customer_id, status, total_amount,
272
+ item_count, created_at, shipped_at
273
+ FROM order_views
274
+ WHERE {where_clause}
275
+ ORDER BY created_at DESC
276
+ LIMIT ${len(params) + 1} OFFSET ${len(params) + 2}
277
+ """,
278
+ *params, query.page_size, offset
279
+ )
280
+
281
+ return PaginatedResult(
282
+ items=[OrderView(**dict(row)) for row in rows],
283
+ total=total,
284
+ page=query.page,
285
+ page_size=query.page_size
286
+ )
287
+ ```
288
+
289
+ ### Template 3: FastAPI CQRS Application
290
+
291
+ ```python
292
+ from fastapi import FastAPI, HTTPException, Depends
293
+ from pydantic import BaseModel
294
+ from typing import List, Optional
295
+
296
+ app = FastAPI()
297
+
298
+ # Request/Response models
299
+ class CreateOrderRequest(BaseModel):
300
+ customer_id: str
301
+ items: List[dict]
302
+ shipping_address: dict
303
+
304
+
305
+ class OrderResponse(BaseModel):
306
+ order_id: str
307
+ customer_id: str
308
+ status: str
309
+ total_amount: float
310
+ item_count: int
311
+ created_at: datetime
312
+
313
+
314
+ # Dependency injection
315
+ def get_command_bus() -> CommandBus:
316
+ return app.state.command_bus
317
+
318
+
319
+ def get_query_bus() -> QueryBus:
320
+ return app.state.query_bus
321
+
322
+
323
+ # Command endpoints (POST, PUT, DELETE)
324
+ @app.post("/orders", response_model=dict)
325
+ async def create_order(
326
+ request: CreateOrderRequest,
327
+ command_bus: CommandBus = Depends(get_command_bus)
328
+ ):
329
+ command = CreateOrder(
330
+ customer_id=request.customer_id,
331
+ items=request.items,
332
+ shipping_address=request.shipping_address
333
+ )
334
+ order_id = await command_bus.dispatch(command)
335
+ return {"order_id": order_id}
336
+
337
+
338
+ @app.post("/orders/{order_id}/items")
339
+ async def add_item(
340
+ order_id: str,
341
+ product_id: str,
342
+ quantity: int,
343
+ price: float,
344
+ command_bus: CommandBus = Depends(get_command_bus)
345
+ ):
346
+ command = AddOrderItem(
347
+ order_id=order_id,
348
+ product_id=product_id,
349
+ quantity=quantity,
350
+ price=price
351
+ )
352
+ await command_bus.dispatch(command)
353
+ return {"status": "item_added"}
354
+
355
+
356
+ @app.delete("/orders/{order_id}")
357
+ async def cancel_order(
358
+ order_id: str,
359
+ reason: str,
360
+ command_bus: CommandBus = Depends(get_command_bus)
361
+ ):
362
+ command = CancelOrder(order_id=order_id, reason=reason)
363
+ await command_bus.dispatch(command)
364
+ return {"status": "cancelled"}
365
+
366
+
367
+ # Query endpoints (GET)
368
+ @app.get("/orders/{order_id}", response_model=OrderResponse)
369
+ async def get_order(
370
+ order_id: str,
371
+ query_bus: QueryBus = Depends(get_query_bus)
372
+ ):
373
+ query = GetOrderById(order_id=order_id)
374
+ result = await query_bus.dispatch(query)
375
+ if not result:
376
+ raise HTTPException(status_code=404, detail="Order not found")
377
+ return result
378
+
379
+
380
+ @app.get("/customers/{customer_id}/orders")
381
+ async def get_customer_orders(
382
+ customer_id: str,
383
+ status: Optional[str] = None,
384
+ page: int = 1,
385
+ page_size: int = 20,
386
+ query_bus: QueryBus = Depends(get_query_bus)
387
+ ):
388
+ query = GetCustomerOrders(
389
+ customer_id=customer_id,
390
+ status=status,
391
+ page=page,
392
+ page_size=page_size
393
+ )
394
+ return await query_bus.dispatch(query)
395
+
396
+
397
+ @app.get("/orders/search")
398
+ async def search_orders(
399
+ q: str,
400
+ sort_by: str = "created_at",
401
+ query_bus: QueryBus = Depends(get_query_bus)
402
+ ):
403
+ query = SearchOrders(query=q, sort_by=sort_by)
404
+ return await query_bus.dispatch(query)
405
+ ```
406
+
407
+ ### Template 4: Read Model Synchronization
408
+
409
+ ```python
410
+ class ReadModelSynchronizer:
411
+ """Keeps read models in sync with events."""
412
+
413
+ def __init__(self, event_store, read_db, projections: List[Projection]):
414
+ self.event_store = event_store
415
+ self.read_db = read_db
416
+ self.projections = {p.name: p for p in projections}
417
+
418
+ async def run(self):
419
+ """Continuously sync read models."""
420
+ while True:
421
+ for name, projection in self.projections.items():
422
+ await self._sync_projection(projection)
423
+ await asyncio.sleep(0.1)
424
+
425
+ async def _sync_projection(self, projection: Projection):
426
+ checkpoint = await self._get_checkpoint(projection.name)
427
+
428
+ events = await self.event_store.read_all(
429
+ from_position=checkpoint,
430
+ limit=100
431
+ )
432
+
433
+ for event in events:
434
+ if event.event_type in projection.handles():
435
+ try:
436
+ await projection.apply(event)
437
+ except Exception as e:
438
+ # Log error, possibly retry or skip
439
+ logger.error(f"Projection error: {e}")
440
+ continue
441
+
442
+ await self._save_checkpoint(projection.name, event.global_position)
443
+
444
+ async def rebuild_projection(self, projection_name: str):
445
+ """Rebuild a projection from scratch."""
446
+ projection = self.projections[projection_name]
447
+
448
+ # Clear existing data
449
+ await projection.clear()
450
+
451
+ # Reset checkpoint
452
+ await self._save_checkpoint(projection_name, 0)
453
+
454
+ # Rebuild
455
+ while True:
456
+ checkpoint = await self._get_checkpoint(projection_name)
457
+ events = await self.event_store.read_all(checkpoint, 1000)
458
+
459
+ if not events:
460
+ break
461
+
462
+ for event in events:
463
+ if event.event_type in projection.handles():
464
+ await projection.apply(event)
465
+
466
+ await self._save_checkpoint(
467
+ projection_name,
468
+ events[-1].global_position
469
+ )
470
+ ```
471
+
472
+ ### Template 5: Eventual Consistency Handling
473
+
474
+ ```python
475
+ class ConsistentQueryHandler:
476
+ """Query handler that can wait for consistency."""
477
+
478
+ def __init__(self, read_db, event_store):
479
+ self.read_db = read_db
480
+ self.event_store = event_store
481
+
482
+ async def query_after_command(
483
+ self,
484
+ query: Query,
485
+ expected_version: int,
486
+ stream_id: str,
487
+ timeout: float = 5.0
488
+ ):
489
+ """
490
+ Execute query, ensuring read model is at expected version.
491
+ Used for read-your-writes consistency.
492
+ """
493
+ start_time = time.time()
494
+
495
+ while time.time() - start_time < timeout:
496
+ # Check if read model is caught up
497
+ projection_version = await self._get_projection_version(stream_id)
498
+
499
+ if projection_version >= expected_version:
500
+ return await self.execute_query(query)
501
+
502
+ # Wait a bit and retry
503
+ await asyncio.sleep(0.1)
504
+
505
+ # Timeout - return stale data with warning
506
+ return {
507
+ "data": await self.execute_query(query),
508
+ "_warning": "Data may be stale"
509
+ }
510
+
511
+ async def _get_projection_version(self, stream_id: str) -> int:
512
+ """Get the last processed event version for a stream."""
513
+ async with self.read_db.acquire() as conn:
514
+ return await conn.fetchval(
515
+ "SELECT last_event_version FROM projection_state WHERE stream_id = $1",
516
+ stream_id
517
+ ) or 0
518
+ ```
519
+
520
+ ## Best Practices
521
+
522
+ ### Do's
523
+
524
+ - **Separate command and query models** - Different needs
525
+ - **Use eventual consistency** - Accept propagation delay
526
+ - **Validate in command handlers** - Before state change
527
+ - **Denormalize read models** - Optimize for queries
528
+ - **Version your events** - For schema evolution
529
+
530
+ ### Don'ts
531
+
532
+ - **Don't query in commands** - Use only for writes
533
+ - **Don't couple read/write schemas** - Independent evolution
534
+ - **Don't over-engineer** - Start simple
535
+ - **Don't ignore consistency SLAs** - Define acceptable lag
536
+
537
+ ## Resources
538
+
539
+ - [CQRS Pattern](https://martinfowler.com/bliki/CQRS.html)
540
+ - [Microsoft CQRS Guidance](https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs)
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: csharp-pro
3
+ description: Write modern C# code with advanced features like records, pattern
4
+ matching, and async/await. Optimizes .NET applications, implements enterprise
5
+ patterns, and ensures comprehensive testing. Use PROACTIVELY for C#
6
+ refactoring, performance optimization, or complex .NET solutions.
7
+ metadata:
8
+ model: inherit
9
+ ---
10
+
11
+ ## Use this skill when
12
+
13
+ - Working on csharp pro tasks or workflows
14
+ - Needing guidance, best practices, or checklists for csharp pro
15
+
16
+ ## Do not use this skill when
17
+
18
+ - The task is unrelated to csharp pro
19
+ - You need a different domain or tool outside this scope
20
+
21
+ ## Instructions
22
+
23
+ - Clarify goals, constraints, and required inputs.
24
+ - Apply relevant best practices and validate outcomes.
25
+ - Provide actionable steps and verification.
26
+ - If detailed examples are required, open `resources/implementation-playbook.md`.
27
+
28
+ You are a C# expert specializing in modern .NET development and enterprise-grade applications.
29
+
30
+ ## Focus Areas
31
+
32
+ - Modern C# features (records, pattern matching, nullable reference types)
33
+ - .NET ecosystem and frameworks (ASP.NET Core, Entity Framework, Blazor)
34
+ - SOLID principles and design patterns in C#
35
+ - Performance optimization and memory management
36
+ - Async/await and concurrent programming with TPL
37
+ - Comprehensive testing (xUnit, NUnit, Moq, FluentAssertions)
38
+ - Enterprise patterns and microservices architecture
39
+
40
+ ## Approach
41
+
42
+ 1. Leverage modern C# features for clean, expressive code
43
+ 2. Follow SOLID principles and favor composition over inheritance
44
+ 3. Use nullable reference types and comprehensive error handling
45
+ 4. Optimize for performance with span, memory, and value types
46
+ 5. Implement proper async patterns without blocking
47
+ 6. Maintain high test coverage with meaningful unit tests
48
+
49
+ ## Output
50
+
51
+ - Clean C# code with modern language features
52
+ - Comprehensive unit tests with proper mocking
53
+ - Performance benchmarks using BenchmarkDotNet
54
+ - Async/await implementations with proper exception handling
55
+ - NuGet package configuration and dependency management
56
+ - Code analysis and style configuration (EditorConfig, analyzers)
57
+ - Enterprise architecture patterns when applicable
58
+
59
+ Follow .NET coding standards and include comprehensive XML documentation.