@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,678 @@
1
+ # Async Python Patterns Implementation Playbook
2
+
3
+ This file contains detailed patterns, checklists, and code samples referenced by the skill.
4
+
5
+ ## Core Concepts
6
+
7
+ ### 1. Event Loop
8
+ The event loop is the heart of asyncio, managing and scheduling asynchronous tasks.
9
+
10
+ **Key characteristics:**
11
+ - Single-threaded cooperative multitasking
12
+ - Schedules coroutines for execution
13
+ - Handles I/O operations without blocking
14
+ - Manages callbacks and futures
15
+
16
+ ### 2. Coroutines
17
+ Functions defined with `async def` that can be paused and resumed.
18
+
19
+ **Syntax:**
20
+ ```python
21
+ async def my_coroutine():
22
+ result = await some_async_operation()
23
+ return result
24
+ ```
25
+
26
+ ### 3. Tasks
27
+ Scheduled coroutines that run concurrently on the event loop.
28
+
29
+ ### 4. Futures
30
+ Low-level objects representing eventual results of async operations.
31
+
32
+ ### 5. Async Context Managers
33
+ Resources that support `async with` for proper cleanup.
34
+
35
+ ### 6. Async Iterators
36
+ Objects that support `async for` for iterating over async data sources.
37
+
38
+ ## Quick Start
39
+
40
+ ```python
41
+ import asyncio
42
+
43
+ async def main():
44
+ print("Hello")
45
+ await asyncio.sleep(1)
46
+ print("World")
47
+
48
+ # Python 3.7+
49
+ asyncio.run(main())
50
+ ```
51
+
52
+ ## Fundamental Patterns
53
+
54
+ ### Pattern 1: Basic Async/Await
55
+
56
+ ```python
57
+ import asyncio
58
+
59
+ async def fetch_data(url: str) -> dict:
60
+ """Fetch data from URL asynchronously."""
61
+ await asyncio.sleep(1) # Simulate I/O
62
+ return {"url": url, "data": "result"}
63
+
64
+ async def main():
65
+ result = await fetch_data("https://api.example.com")
66
+ print(result)
67
+
68
+ asyncio.run(main())
69
+ ```
70
+
71
+ ### Pattern 2: Concurrent Execution with gather()
72
+
73
+ ```python
74
+ import asyncio
75
+ from typing import List
76
+
77
+ async def fetch_user(user_id: int) -> dict:
78
+ """Fetch user data."""
79
+ await asyncio.sleep(0.5)
80
+ return {"id": user_id, "name": f"User {user_id}"}
81
+
82
+ async def fetch_all_users(user_ids: List[int]) -> List[dict]:
83
+ """Fetch multiple users concurrently."""
84
+ tasks = [fetch_user(uid) for uid in user_ids]
85
+ results = await asyncio.gather(*tasks)
86
+ return results
87
+
88
+ async def main():
89
+ user_ids = [1, 2, 3, 4, 5]
90
+ users = await fetch_all_users(user_ids)
91
+ print(f"Fetched {len(users)} users")
92
+
93
+ asyncio.run(main())
94
+ ```
95
+
96
+ ### Pattern 3: Task Creation and Management
97
+
98
+ ```python
99
+ import asyncio
100
+
101
+ async def background_task(name: str, delay: int):
102
+ """Long-running background task."""
103
+ print(f"{name} started")
104
+ await asyncio.sleep(delay)
105
+ print(f"{name} completed")
106
+ return f"Result from {name}"
107
+
108
+ async def main():
109
+ # Create tasks
110
+ task1 = asyncio.create_task(background_task("Task 1", 2))
111
+ task2 = asyncio.create_task(background_task("Task 2", 1))
112
+
113
+ # Do other work
114
+ print("Main: doing other work")
115
+ await asyncio.sleep(0.5)
116
+
117
+ # Wait for tasks
118
+ result1 = await task1
119
+ result2 = await task2
120
+
121
+ print(f"Results: {result1}, {result2}")
122
+
123
+ asyncio.run(main())
124
+ ```
125
+
126
+ ### Pattern 4: Error Handling in Async Code
127
+
128
+ ```python
129
+ import asyncio
130
+ from typing import List, Optional
131
+
132
+ async def risky_operation(item_id: int) -> dict:
133
+ """Operation that might fail."""
134
+ await asyncio.sleep(0.1)
135
+ if item_id % 3 == 0:
136
+ raise ValueError(f"Item {item_id} failed")
137
+ return {"id": item_id, "status": "success"}
138
+
139
+ async def safe_operation(item_id: int) -> Optional[dict]:
140
+ """Wrapper with error handling."""
141
+ try:
142
+ return await risky_operation(item_id)
143
+ except ValueError as e:
144
+ print(f"Error: {e}")
145
+ return None
146
+
147
+ async def process_items(item_ids: List[int]):
148
+ """Process multiple items with error handling."""
149
+ tasks = [safe_operation(iid) for iid in item_ids]
150
+ results = await asyncio.gather(*tasks, return_exceptions=True)
151
+
152
+ # Filter out failures
153
+ successful = [r for r in results if r is not None and not isinstance(r, Exception)]
154
+ failed = [r for r in results if isinstance(r, Exception)]
155
+
156
+ print(f"Success: {len(successful)}, Failed: {len(failed)}")
157
+ return successful
158
+
159
+ asyncio.run(process_items([1, 2, 3, 4, 5, 6]))
160
+ ```
161
+
162
+ ### Pattern 5: Timeout Handling
163
+
164
+ ```python
165
+ import asyncio
166
+
167
+ async def slow_operation(delay: int) -> str:
168
+ """Operation that takes time."""
169
+ await asyncio.sleep(delay)
170
+ return f"Completed after {delay}s"
171
+
172
+ async def with_timeout():
173
+ """Execute operation with timeout."""
174
+ try:
175
+ result = await asyncio.wait_for(slow_operation(5), timeout=2.0)
176
+ print(result)
177
+ except asyncio.TimeoutError:
178
+ print("Operation timed out")
179
+
180
+ asyncio.run(with_timeout())
181
+ ```
182
+
183
+ ## Advanced Patterns
184
+
185
+ ### Pattern 6: Async Context Managers
186
+
187
+ ```python
188
+ import asyncio
189
+ from typing import Optional
190
+
191
+ class AsyncDatabaseConnection:
192
+ """Async database connection context manager."""
193
+
194
+ def __init__(self, dsn: str):
195
+ self.dsn = dsn
196
+ self.connection: Optional[object] = None
197
+
198
+ async def __aenter__(self):
199
+ print("Opening connection")
200
+ await asyncio.sleep(0.1) # Simulate connection
201
+ self.connection = {"dsn": self.dsn, "connected": True}
202
+ return self.connection
203
+
204
+ async def __aexit__(self, exc_type, exc_val, exc_tb):
205
+ print("Closing connection")
206
+ await asyncio.sleep(0.1) # Simulate cleanup
207
+ self.connection = None
208
+
209
+ async def query_database():
210
+ """Use async context manager."""
211
+ async with AsyncDatabaseConnection("postgresql://localhost") as conn:
212
+ print(f"Using connection: {conn}")
213
+ await asyncio.sleep(0.2) # Simulate query
214
+ return {"rows": 10}
215
+
216
+ asyncio.run(query_database())
217
+ ```
218
+
219
+ ### Pattern 7: Async Iterators and Generators
220
+
221
+ ```python
222
+ import asyncio
223
+ from typing import AsyncIterator
224
+
225
+ async def async_range(start: int, end: int, delay: float = 0.1) -> AsyncIterator[int]:
226
+ """Async generator that yields numbers with delay."""
227
+ for i in range(start, end):
228
+ await asyncio.sleep(delay)
229
+ yield i
230
+
231
+ async def fetch_pages(url: str, max_pages: int) -> AsyncIterator[dict]:
232
+ """Fetch paginated data asynchronously."""
233
+ for page in range(1, max_pages + 1):
234
+ await asyncio.sleep(0.2) # Simulate API call
235
+ yield {
236
+ "page": page,
237
+ "url": f"{url}?page={page}",
238
+ "data": [f"item_{page}_{i}" for i in range(5)]
239
+ }
240
+
241
+ async def consume_async_iterator():
242
+ """Consume async iterator."""
243
+ async for number in async_range(1, 5):
244
+ print(f"Number: {number}")
245
+
246
+ print("\nFetching pages:")
247
+ async for page_data in fetch_pages("https://api.example.com/items", 3):
248
+ print(f"Page {page_data['page']}: {len(page_data['data'])} items")
249
+
250
+ asyncio.run(consume_async_iterator())
251
+ ```
252
+
253
+ ### Pattern 8: Producer-Consumer Pattern
254
+
255
+ ```python
256
+ import asyncio
257
+ from asyncio import Queue
258
+ from typing import Optional
259
+
260
+ async def producer(queue: Queue, producer_id: int, num_items: int):
261
+ """Produce items and put them in queue."""
262
+ for i in range(num_items):
263
+ item = f"Item-{producer_id}-{i}"
264
+ await queue.put(item)
265
+ print(f"Producer {producer_id} produced: {item}")
266
+ await asyncio.sleep(0.1)
267
+ await queue.put(None) # Signal completion
268
+
269
+ async def consumer(queue: Queue, consumer_id: int):
270
+ """Consume items from queue."""
271
+ while True:
272
+ item = await queue.get()
273
+ if item is None:
274
+ queue.task_done()
275
+ break
276
+
277
+ print(f"Consumer {consumer_id} processing: {item}")
278
+ await asyncio.sleep(0.2) # Simulate work
279
+ queue.task_done()
280
+
281
+ async def producer_consumer_example():
282
+ """Run producer-consumer pattern."""
283
+ queue = Queue(maxsize=10)
284
+
285
+ # Create tasks
286
+ producers = [
287
+ asyncio.create_task(producer(queue, i, 5))
288
+ for i in range(2)
289
+ ]
290
+
291
+ consumers = [
292
+ asyncio.create_task(consumer(queue, i))
293
+ for i in range(3)
294
+ ]
295
+
296
+ # Wait for producers
297
+ await asyncio.gather(*producers)
298
+
299
+ # Wait for queue to be empty
300
+ await queue.join()
301
+
302
+ # Cancel consumers
303
+ for c in consumers:
304
+ c.cancel()
305
+
306
+ asyncio.run(producer_consumer_example())
307
+ ```
308
+
309
+ ### Pattern 9: Semaphore for Rate Limiting
310
+
311
+ ```python
312
+ import asyncio
313
+ from typing import List
314
+
315
+ async def api_call(url: str, semaphore: asyncio.Semaphore) -> dict:
316
+ """Make API call with rate limiting."""
317
+ async with semaphore:
318
+ print(f"Calling {url}")
319
+ await asyncio.sleep(0.5) # Simulate API call
320
+ return {"url": url, "status": 200}
321
+
322
+ async def rate_limited_requests(urls: List[str], max_concurrent: int = 5):
323
+ """Make multiple requests with rate limiting."""
324
+ semaphore = asyncio.Semaphore(max_concurrent)
325
+ tasks = [api_call(url, semaphore) for url in urls]
326
+ results = await asyncio.gather(*tasks)
327
+ return results
328
+
329
+ async def main():
330
+ urls = [f"https://api.example.com/item/{i}" for i in range(20)]
331
+ results = await rate_limited_requests(urls, max_concurrent=3)
332
+ print(f"Completed {len(results)} requests")
333
+
334
+ asyncio.run(main())
335
+ ```
336
+
337
+ ### Pattern 10: Async Locks and Synchronization
338
+
339
+ ```python
340
+ import asyncio
341
+
342
+ class AsyncCounter:
343
+ """Thread-safe async counter."""
344
+
345
+ def __init__(self):
346
+ self.value = 0
347
+ self.lock = asyncio.Lock()
348
+
349
+ async def increment(self):
350
+ """Safely increment counter."""
351
+ async with self.lock:
352
+ current = self.value
353
+ await asyncio.sleep(0.01) # Simulate work
354
+ self.value = current + 1
355
+
356
+ async def get_value(self) -> int:
357
+ """Get current value."""
358
+ async with self.lock:
359
+ return self.value
360
+
361
+ async def worker(counter: AsyncCounter, worker_id: int):
362
+ """Worker that increments counter."""
363
+ for _ in range(10):
364
+ await counter.increment()
365
+ print(f"Worker {worker_id} incremented")
366
+
367
+ async def test_counter():
368
+ """Test concurrent counter."""
369
+ counter = AsyncCounter()
370
+
371
+ workers = [asyncio.create_task(worker(counter, i)) for i in range(5)]
372
+ await asyncio.gather(*workers)
373
+
374
+ final_value = await counter.get_value()
375
+ print(f"Final counter value: {final_value}")
376
+
377
+ asyncio.run(test_counter())
378
+ ```
379
+
380
+ ## Real-World Applications
381
+
382
+ ### Web Scraping with aiohttp
383
+
384
+ ```python
385
+ import asyncio
386
+ import aiohttp
387
+ from typing import List, Dict
388
+
389
+ async def fetch_url(session: aiohttp.ClientSession, url: str) -> Dict:
390
+ """Fetch single URL."""
391
+ try:
392
+ async with session.get(url, timeout=aiohttp.ClientTimeout(total=10)) as response:
393
+ text = await response.text()
394
+ return {
395
+ "url": url,
396
+ "status": response.status,
397
+ "length": len(text)
398
+ }
399
+ except Exception as e:
400
+ return {"url": url, "error": str(e)}
401
+
402
+ async def scrape_urls(urls: List[str]) -> List[Dict]:
403
+ """Scrape multiple URLs concurrently."""
404
+ async with aiohttp.ClientSession() as session:
405
+ tasks = [fetch_url(session, url) for url in urls]
406
+ results = await asyncio.gather(*tasks)
407
+ return results
408
+
409
+ async def main():
410
+ urls = [
411
+ "https://httpbin.org/delay/1",
412
+ "https://httpbin.org/delay/2",
413
+ "https://httpbin.org/status/404",
414
+ ]
415
+
416
+ results = await scrape_urls(urls)
417
+ for result in results:
418
+ print(result)
419
+
420
+ asyncio.run(main())
421
+ ```
422
+
423
+ ### Async Database Operations
424
+
425
+ ```python
426
+ import asyncio
427
+ from typing import List, Optional
428
+
429
+ # Simulated async database client
430
+ class AsyncDB:
431
+ """Simulated async database."""
432
+
433
+ async def execute(self, query: str) -> List[dict]:
434
+ """Execute query."""
435
+ await asyncio.sleep(0.1)
436
+ return [{"id": 1, "name": "Example"}]
437
+
438
+ async def fetch_one(self, query: str) -> Optional[dict]:
439
+ """Fetch single row."""
440
+ await asyncio.sleep(0.1)
441
+ return {"id": 1, "name": "Example"}
442
+
443
+ async def get_user_data(db: AsyncDB, user_id: int) -> dict:
444
+ """Fetch user and related data concurrently."""
445
+ user_task = db.fetch_one(f"SELECT * FROM users WHERE id = {user_id}")
446
+ orders_task = db.execute(f"SELECT * FROM orders WHERE user_id = {user_id}")
447
+ profile_task = db.fetch_one(f"SELECT * FROM profiles WHERE user_id = {user_id}")
448
+
449
+ user, orders, profile = await asyncio.gather(user_task, orders_task, profile_task)
450
+
451
+ return {
452
+ "user": user,
453
+ "orders": orders,
454
+ "profile": profile
455
+ }
456
+
457
+ async def main():
458
+ db = AsyncDB()
459
+ user_data = await get_user_data(db, 1)
460
+ print(user_data)
461
+
462
+ asyncio.run(main())
463
+ ```
464
+
465
+ ### WebSocket Server
466
+
467
+ ```python
468
+ import asyncio
469
+ from typing import Set
470
+
471
+ # Simulated WebSocket connection
472
+ class WebSocket:
473
+ """Simulated WebSocket."""
474
+
475
+ def __init__(self, client_id: str):
476
+ self.client_id = client_id
477
+
478
+ async def send(self, message: str):
479
+ """Send message."""
480
+ print(f"Sending to {self.client_id}: {message}")
481
+ await asyncio.sleep(0.01)
482
+
483
+ async def recv(self) -> str:
484
+ """Receive message."""
485
+ await asyncio.sleep(1)
486
+ return f"Message from {self.client_id}"
487
+
488
+ class WebSocketServer:
489
+ """Simple WebSocket server."""
490
+
491
+ def __init__(self):
492
+ self.clients: Set[WebSocket] = set()
493
+
494
+ async def register(self, websocket: WebSocket):
495
+ """Register new client."""
496
+ self.clients.add(websocket)
497
+ print(f"Client {websocket.client_id} connected")
498
+
499
+ async def unregister(self, websocket: WebSocket):
500
+ """Unregister client."""
501
+ self.clients.remove(websocket)
502
+ print(f"Client {websocket.client_id} disconnected")
503
+
504
+ async def broadcast(self, message: str):
505
+ """Broadcast message to all clients."""
506
+ if self.clients:
507
+ tasks = [client.send(message) for client in self.clients]
508
+ await asyncio.gather(*tasks)
509
+
510
+ async def handle_client(self, websocket: WebSocket):
511
+ """Handle individual client connection."""
512
+ await self.register(websocket)
513
+ try:
514
+ async for message in self.message_iterator(websocket):
515
+ await self.broadcast(f"{websocket.client_id}: {message}")
516
+ finally:
517
+ await self.unregister(websocket)
518
+
519
+ async def message_iterator(self, websocket: WebSocket):
520
+ """Iterate over messages from client."""
521
+ for _ in range(3): # Simulate 3 messages
522
+ yield await websocket.recv()
523
+ ```
524
+
525
+ ## Performance Best Practices
526
+
527
+ ### 1. Use Connection Pools
528
+
529
+ ```python
530
+ import asyncio
531
+ import aiohttp
532
+
533
+ async def with_connection_pool():
534
+ """Use connection pool for efficiency."""
535
+ connector = aiohttp.TCPConnector(limit=100, limit_per_host=10)
536
+
537
+ async with aiohttp.ClientSession(connector=connector) as session:
538
+ tasks = [session.get(f"https://api.example.com/item/{i}") for i in range(50)]
539
+ responses = await asyncio.gather(*tasks)
540
+ return responses
541
+ ```
542
+
543
+ ### 2. Batch Operations
544
+
545
+ ```python
546
+ async def batch_process(items: List[str], batch_size: int = 10):
547
+ """Process items in batches."""
548
+ for i in range(0, len(items), batch_size):
549
+ batch = items[i:i + batch_size]
550
+ tasks = [process_item(item) for item in batch]
551
+ await asyncio.gather(*tasks)
552
+ print(f"Processed batch {i // batch_size + 1}")
553
+
554
+ async def process_item(item: str):
555
+ """Process single item."""
556
+ await asyncio.sleep(0.1)
557
+ return f"Processed: {item}"
558
+ ```
559
+
560
+ ### 3. Avoid Blocking Operations
561
+
562
+ ```python
563
+ import asyncio
564
+ import concurrent.futures
565
+ from typing import Any
566
+
567
+ def blocking_operation(data: Any) -> Any:
568
+ """CPU-intensive blocking operation."""
569
+ import time
570
+ time.sleep(1)
571
+ return data * 2
572
+
573
+ async def run_in_executor(data: Any) -> Any:
574
+ """Run blocking operation in thread pool."""
575
+ loop = asyncio.get_event_loop()
576
+ with concurrent.futures.ThreadPoolExecutor() as pool:
577
+ result = await loop.run_in_executor(pool, blocking_operation, data)
578
+ return result
579
+
580
+ async def main():
581
+ results = await asyncio.gather(*[run_in_executor(i) for i in range(5)])
582
+ print(results)
583
+
584
+ asyncio.run(main())
585
+ ```
586
+
587
+ ## Common Pitfalls
588
+
589
+ ### 1. Forgetting await
590
+
591
+ ```python
592
+ # Wrong - returns coroutine object, doesn't execute
593
+ result = async_function()
594
+
595
+ # Correct
596
+ result = await async_function()
597
+ ```
598
+
599
+ ### 2. Blocking the Event Loop
600
+
601
+ ```python
602
+ # Wrong - blocks event loop
603
+ import time
604
+ async def bad():
605
+ time.sleep(1) # Blocks!
606
+
607
+ # Correct
608
+ async def good():
609
+ await asyncio.sleep(1) # Non-blocking
610
+ ```
611
+
612
+ ### 3. Not Handling Cancellation
613
+
614
+ ```python
615
+ async def cancelable_task():
616
+ """Task that handles cancellation."""
617
+ try:
618
+ while True:
619
+ await asyncio.sleep(1)
620
+ print("Working...")
621
+ except asyncio.CancelledError:
622
+ print("Task cancelled, cleaning up...")
623
+ # Perform cleanup
624
+ raise # Re-raise to propagate cancellation
625
+ ```
626
+
627
+ ### 4. Mixing Sync and Async Code
628
+
629
+ ```python
630
+ # Wrong - can't call async from sync directly
631
+ def sync_function():
632
+ result = await async_function() # SyntaxError!
633
+
634
+ # Correct
635
+ def sync_function():
636
+ result = asyncio.run(async_function())
637
+ ```
638
+
639
+ ## Testing Async Code
640
+
641
+ ```python
642
+ import asyncio
643
+ import pytest
644
+
645
+ # Using pytest-asyncio
646
+ @pytest.mark.asyncio
647
+ async def test_async_function():
648
+ """Test async function."""
649
+ result = await fetch_data("https://api.example.com")
650
+ assert result is not None
651
+
652
+ @pytest.mark.asyncio
653
+ async def test_with_timeout():
654
+ """Test with timeout."""
655
+ with pytest.raises(asyncio.TimeoutError):
656
+ await asyncio.wait_for(slow_operation(5), timeout=1.0)
657
+ ```
658
+
659
+ ## Resources
660
+
661
+ - **Python asyncio documentation**: https://docs.python.org/3/library/asyncio.html
662
+ - **aiohttp**: Async HTTP client/server
663
+ - **FastAPI**: Modern async web framework
664
+ - **asyncpg**: Async PostgreSQL driver
665
+ - **motor**: Async MongoDB driver
666
+
667
+ ## Best Practices Summary
668
+
669
+ 1. **Use asyncio.run()** for entry point (Python 3.7+)
670
+ 2. **Always await coroutines** to execute them
671
+ 3. **Use gather() for concurrent execution** of multiple tasks
672
+ 4. **Implement proper error handling** with try/except
673
+ 5. **Use timeouts** to prevent hanging operations
674
+ 6. **Pool connections** for better performance
675
+ 7. **Avoid blocking operations** in async code
676
+ 8. **Use semaphores** for rate limiting
677
+ 9. **Handle task cancellation** properly
678
+ 10. **Test async code** with pytest-asyncio
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: attack-tree-construction
3
+ description: Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.
4
+ ---
5
+
6
+ # Attack Tree Construction
7
+
8
+ Systematic attack path visualization and analysis.
9
+
10
+ ## Use this skill when
11
+
12
+ - Visualizing complex attack scenarios
13
+ - Identifying defense gaps and priorities
14
+ - Communicating risks to stakeholders
15
+ - Planning defensive investments or test scopes
16
+
17
+ ## Do not use this skill when
18
+
19
+ - You lack authorization or a defined scope to model the system
20
+ - The task is a general risk review without attack-path modeling
21
+ - The request is unrelated to security assessment or design
22
+
23
+ ## Instructions
24
+
25
+ - Confirm scope, assets, and the attacker goal for the root node.
26
+ - Decompose into sub-goals with AND/OR structure.
27
+ - Annotate leaves with cost, skill, time, and detectability.
28
+ - Map mitigations per branch and prioritize high-impact paths.
29
+ - If detailed templates are required, open `resources/implementation-playbook.md`.
30
+
31
+ ## Safety
32
+
33
+ - Share attack trees only with authorized stakeholders.
34
+ - Avoid including sensitive exploit details unless required.
35
+
36
+ ## Resources
37
+
38
+ - `resources/implementation-playbook.md` for detailed patterns, templates, and examples.