@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,614 @@
1
+ # Bats Testing Patterns Implementation Playbook
2
+
3
+ This file contains detailed patterns, checklists, and code samples referenced by the skill.
4
+
5
+ ## Bats Fundamentals
6
+
7
+ ### What is Bats?
8
+
9
+ Bats (Bash Automated Testing System) is a TAP (Test Anything Protocol) compliant testing framework for shell scripts that provides:
10
+ - Simple, natural test syntax
11
+ - TAP output format compatible with CI systems
12
+ - Fixtures and setup/teardown support
13
+ - Assertion helpers
14
+ - Parallel test execution
15
+
16
+ ### Installation
17
+
18
+ ```bash
19
+ # macOS with Homebrew
20
+ brew install bats-core
21
+
22
+ # Ubuntu/Debian
23
+ git clone https://github.com/bats-core/bats-core.git
24
+ cd bats-core
25
+ ./install.sh /usr/local
26
+
27
+ # From npm (Node.js)
28
+ npm install --global bats
29
+
30
+ # Verify installation
31
+ bats --version
32
+ ```
33
+
34
+ ### File Structure
35
+
36
+ ```
37
+ project/
38
+ ├── bin/
39
+ │ ├── script.sh
40
+ │ └── helper.sh
41
+ ├── tests/
42
+ │ ├── test_script.bats
43
+ │ ├── test_helper.sh
44
+ │ ├── fixtures/
45
+ │ │ ├── input.txt
46
+ │ │ └── expected_output.txt
47
+ │ └── helpers/
48
+ │ └── mocks.bash
49
+ └── README.md
50
+ ```
51
+
52
+ ## Basic Test Structure
53
+
54
+ ### Simple Test File
55
+
56
+ ```bash
57
+ #!/usr/bin/env bats
58
+
59
+ # Load test helper if present
60
+ load test_helper
61
+
62
+ # Setup runs before each test
63
+ setup() {
64
+ export TMPDIR=$(mktemp -d)
65
+ }
66
+
67
+ # Teardown runs after each test
68
+ teardown() {
69
+ rm -rf "$TMPDIR"
70
+ }
71
+
72
+ # Test: simple assertion
73
+ @test "Function returns 0 on success" {
74
+ run my_function "input"
75
+ [ "$status" -eq 0 ]
76
+ }
77
+
78
+ # Test: output verification
79
+ @test "Function outputs correct result" {
80
+ run my_function "test"
81
+ [ "$output" = "expected output" ]
82
+ }
83
+
84
+ # Test: error handling
85
+ @test "Function returns 1 on missing argument" {
86
+ run my_function
87
+ [ "$status" -eq 1 ]
88
+ }
89
+ ```
90
+
91
+ ## Assertion Patterns
92
+
93
+ ### Exit Code Assertions
94
+
95
+ ```bash
96
+ #!/usr/bin/env bats
97
+
98
+ @test "Command succeeds" {
99
+ run true
100
+ [ "$status" -eq 0 ]
101
+ }
102
+
103
+ @test "Command fails as expected" {
104
+ run false
105
+ [ "$status" -ne 0 ]
106
+ }
107
+
108
+ @test "Command returns specific exit code" {
109
+ run my_function --invalid
110
+ [ "$status" -eq 127 ]
111
+ }
112
+
113
+ @test "Can capture command result" {
114
+ run echo "hello"
115
+ [ $status -eq 0 ]
116
+ [ "$output" = "hello" ]
117
+ }
118
+ ```
119
+
120
+ ### Output Assertions
121
+
122
+ ```bash
123
+ #!/usr/bin/env bats
124
+
125
+ @test "Output matches string" {
126
+ result=$(echo "hello world")
127
+ [ "$result" = "hello world" ]
128
+ }
129
+
130
+ @test "Output contains substring" {
131
+ result=$(echo "hello world")
132
+ [[ "$result" == *"world"* ]]
133
+ }
134
+
135
+ @test "Output matches pattern" {
136
+ result=$(date +%Y)
137
+ [[ "$result" =~ ^[0-9]{4}$ ]]
138
+ }
139
+
140
+ @test "Multi-line output" {
141
+ run printf "line1\nline2\nline3"
142
+ [ "$output" = "line1
143
+ line2
144
+ line3" ]
145
+ }
146
+
147
+ @test "Lines variable contains output" {
148
+ run printf "line1\nline2\nline3"
149
+ [ "${lines[0]}" = "line1" ]
150
+ [ "${lines[1]}" = "line2" ]
151
+ [ "${lines[2]}" = "line3" ]
152
+ }
153
+ ```
154
+
155
+ ### File Assertions
156
+
157
+ ```bash
158
+ #!/usr/bin/env bats
159
+
160
+ @test "File is created" {
161
+ [ ! -f "$TMPDIR/output.txt" ]
162
+ my_function > "$TMPDIR/output.txt"
163
+ [ -f "$TMPDIR/output.txt" ]
164
+ }
165
+
166
+ @test "File contents match expected" {
167
+ my_function > "$TMPDIR/output.txt"
168
+ [ "$(cat "$TMPDIR/output.txt")" = "expected content" ]
169
+ }
170
+
171
+ @test "File is readable" {
172
+ touch "$TMPDIR/test.txt"
173
+ [ -r "$TMPDIR/test.txt" ]
174
+ }
175
+
176
+ @test "File has correct permissions" {
177
+ touch "$TMPDIR/test.txt"
178
+ chmod 644 "$TMPDIR/test.txt"
179
+ [ "$(stat -f %OLp "$TMPDIR/test.txt")" = "644" ]
180
+ }
181
+
182
+ @test "File size is correct" {
183
+ echo -n "12345" > "$TMPDIR/test.txt"
184
+ [ "$(wc -c < "$TMPDIR/test.txt")" -eq 5 ]
185
+ }
186
+ ```
187
+
188
+ ## Setup and Teardown Patterns
189
+
190
+ ### Basic Setup and Teardown
191
+
192
+ ```bash
193
+ #!/usr/bin/env bats
194
+
195
+ setup() {
196
+ # Create test directory
197
+ TEST_DIR=$(mktemp -d)
198
+ export TEST_DIR
199
+
200
+ # Source script under test
201
+ source "${BATS_TEST_DIRNAME}/../bin/script.sh"
202
+ }
203
+
204
+ teardown() {
205
+ # Clean up temporary directory
206
+ rm -rf "$TEST_DIR"
207
+ }
208
+
209
+ @test "Test using TEST_DIR" {
210
+ touch "$TEST_DIR/file.txt"
211
+ [ -f "$TEST_DIR/file.txt" ]
212
+ }
213
+ ```
214
+
215
+ ### Setup with Resources
216
+
217
+ ```bash
218
+ #!/usr/bin/env bats
219
+
220
+ setup() {
221
+ # Create directory structure
222
+ mkdir -p "$TMPDIR/data/input"
223
+ mkdir -p "$TMPDIR/data/output"
224
+
225
+ # Create test fixtures
226
+ echo "line1" > "$TMPDIR/data/input/file1.txt"
227
+ echo "line2" > "$TMPDIR/data/input/file2.txt"
228
+
229
+ # Initialize environment
230
+ export DATA_DIR="$TMPDIR/data"
231
+ export INPUT_DIR="$DATA_DIR/input"
232
+ export OUTPUT_DIR="$DATA_DIR/output"
233
+ }
234
+
235
+ teardown() {
236
+ rm -rf "$TMPDIR/data"
237
+ }
238
+
239
+ @test "Processes input files" {
240
+ run my_process_script "$INPUT_DIR" "$OUTPUT_DIR"
241
+ [ "$status" -eq 0 ]
242
+ [ -f "$OUTPUT_DIR/file1.txt" ]
243
+ }
244
+ ```
245
+
246
+ ### Global Setup/Teardown
247
+
248
+ ```bash
249
+ #!/usr/bin/env bats
250
+
251
+ # Load shared setup from test_helper.sh
252
+ load test_helper
253
+
254
+ # setup_file runs once before all tests
255
+ setup_file() {
256
+ export SHARED_RESOURCE=$(mktemp -d)
257
+ echo "Expensive setup" > "$SHARED_RESOURCE/data.txt"
258
+ }
259
+
260
+ # teardown_file runs once after all tests
261
+ teardown_file() {
262
+ rm -rf "$SHARED_RESOURCE"
263
+ }
264
+
265
+ @test "First test uses shared resource" {
266
+ [ -f "$SHARED_RESOURCE/data.txt" ]
267
+ }
268
+
269
+ @test "Second test uses shared resource" {
270
+ [ -d "$SHARED_RESOURCE" ]
271
+ }
272
+ ```
273
+
274
+ ## Mocking and Stubbing Patterns
275
+
276
+ ### Function Mocking
277
+
278
+ ```bash
279
+ #!/usr/bin/env bats
280
+
281
+ # Mock external command
282
+ my_external_tool() {
283
+ echo "mocked output"
284
+ return 0
285
+ }
286
+
287
+ @test "Function uses mocked tool" {
288
+ export -f my_external_tool
289
+ run my_function
290
+ [[ "$output" == *"mocked output"* ]]
291
+ }
292
+ ```
293
+
294
+ ### Command Stubbing
295
+
296
+ ```bash
297
+ #!/usr/bin/env bats
298
+
299
+ setup() {
300
+ # Create stub directory
301
+ STUBS_DIR="$TMPDIR/stubs"
302
+ mkdir -p "$STUBS_DIR"
303
+
304
+ # Add to PATH
305
+ export PATH="$STUBS_DIR:$PATH"
306
+ }
307
+
308
+ create_stub() {
309
+ local cmd="$1"
310
+ local output="$2"
311
+ local code="${3:-0}"
312
+
313
+ cat > "$STUBS_DIR/$cmd" <<EOF
314
+ #!/bin/bash
315
+ echo "$output"
316
+ exit $code
317
+ EOF
318
+ chmod +x "$STUBS_DIR/$cmd"
319
+ }
320
+
321
+ @test "Function works with stubbed curl" {
322
+ create_stub curl "{ \"status\": \"ok\" }" 0
323
+ run my_api_function
324
+ [ "$status" -eq 0 ]
325
+ }
326
+ ```
327
+
328
+ ### Variable Stubbing
329
+
330
+ ```bash
331
+ #!/usr/bin/env bats
332
+
333
+ @test "Function handles environment override" {
334
+ export MY_SETTING="override_value"
335
+ run my_function
336
+ [ "$status" -eq 0 ]
337
+ [[ "$output" == *"override_value"* ]]
338
+ }
339
+
340
+ @test "Function uses default when var unset" {
341
+ unset MY_SETTING
342
+ run my_function
343
+ [ "$status" -eq 0 ]
344
+ [[ "$output" == *"default"* ]]
345
+ }
346
+ ```
347
+
348
+ ## Fixture Management
349
+
350
+ ### Using Fixture Files
351
+
352
+ ```bash
353
+ #!/usr/bin/env bats
354
+
355
+ # Fixture directory: tests/fixtures/
356
+
357
+ setup() {
358
+ FIXTURES_DIR="${BATS_TEST_DIRNAME}/fixtures"
359
+ WORK_DIR=$(mktemp -d)
360
+ export WORK_DIR
361
+ }
362
+
363
+ teardown() {
364
+ rm -rf "$WORK_DIR"
365
+ }
366
+
367
+ @test "Process fixture file" {
368
+ # Copy fixture to work directory
369
+ cp "$FIXTURES_DIR/input.txt" "$WORK_DIR/input.txt"
370
+
371
+ # Run function
372
+ run my_process_function "$WORK_DIR/input.txt"
373
+
374
+ # Compare output
375
+ diff "$WORK_DIR/output.txt" "$FIXTURES_DIR/expected_output.txt"
376
+ }
377
+ ```
378
+
379
+ ### Dynamic Fixture Generation
380
+
381
+ ```bash
382
+ #!/usr/bin/env bats
383
+
384
+ generate_fixture() {
385
+ local lines="$1"
386
+ local file="$2"
387
+
388
+ for i in $(seq 1 "$lines"); do
389
+ echo "Line $i content" >> "$file"
390
+ done
391
+ }
392
+
393
+ @test "Handle large input file" {
394
+ generate_fixture 1000 "$TMPDIR/large.txt"
395
+ run my_function "$TMPDIR/large.txt"
396
+ [ "$status" -eq 0 ]
397
+ [ "$(wc -l < "$TMPDIR/large.txt")" -eq 1000 ]
398
+ }
399
+ ```
400
+
401
+ ## Advanced Patterns
402
+
403
+ ### Testing Error Conditions
404
+
405
+ ```bash
406
+ #!/usr/bin/env bats
407
+
408
+ @test "Function fails with missing file" {
409
+ run my_function "/nonexistent/file.txt"
410
+ [ "$status" -ne 0 ]
411
+ [[ "$output" == *"not found"* ]]
412
+ }
413
+
414
+ @test "Function fails with invalid input" {
415
+ run my_function ""
416
+ [ "$status" -ne 0 ]
417
+ }
418
+
419
+ @test "Function fails with permission denied" {
420
+ touch "$TMPDIR/readonly.txt"
421
+ chmod 000 "$TMPDIR/readonly.txt"
422
+ run my_function "$TMPDIR/readonly.txt"
423
+ [ "$status" -ne 0 ]
424
+ chmod 644 "$TMPDIR/readonly.txt" # Cleanup
425
+ }
426
+
427
+ @test "Function provides helpful error message" {
428
+ run my_function --invalid-option
429
+ [ "$status" -ne 0 ]
430
+ [[ "$output" == *"Usage:"* ]]
431
+ }
432
+ ```
433
+
434
+ ### Testing with Dependencies
435
+
436
+ ```bash
437
+ #!/usr/bin/env bats
438
+
439
+ setup() {
440
+ # Check for required tools
441
+ if ! command -v jq &>/dev/null; then
442
+ skip "jq is not installed"
443
+ fi
444
+
445
+ export SCRIPT="${BATS_TEST_DIRNAME}/../bin/script.sh"
446
+ }
447
+
448
+ @test "JSON parsing works" {
449
+ skip_if ! command -v jq &>/dev/null
450
+ run my_json_parser '{"key": "value"}'
451
+ [ "$status" -eq 0 ]
452
+ }
453
+ ```
454
+
455
+ ### Testing Shell Compatibility
456
+
457
+ ```bash
458
+ #!/usr/bin/env bats
459
+
460
+ @test "Script works in bash" {
461
+ bash "${BATS_TEST_DIRNAME}/../bin/script.sh" arg1
462
+ }
463
+
464
+ @test "Script works in sh (POSIX)" {
465
+ sh "${BATS_TEST_DIRNAME}/../bin/script.sh" arg1
466
+ }
467
+
468
+ @test "Script works in dash" {
469
+ if command -v dash &>/dev/null; then
470
+ dash "${BATS_TEST_DIRNAME}/../bin/script.sh" arg1
471
+ else
472
+ skip "dash not installed"
473
+ fi
474
+ }
475
+ ```
476
+
477
+ ### Parallel Execution
478
+
479
+ ```bash
480
+ #!/usr/bin/env bats
481
+
482
+ @test "Multiple independent operations" {
483
+ run bash -c 'for i in {1..10}; do
484
+ my_operation "$i" &
485
+ done
486
+ wait'
487
+ [ "$status" -eq 0 ]
488
+ }
489
+
490
+ @test "Concurrent file operations" {
491
+ for i in {1..5}; do
492
+ my_function "$TMPDIR/file$i" &
493
+ done
494
+ wait
495
+ [ -f "$TMPDIR/file1" ]
496
+ [ -f "$TMPDIR/file5" ]
497
+ }
498
+ ```
499
+
500
+ ## Test Helper Pattern
501
+
502
+ ### test_helper.sh
503
+
504
+ ```bash
505
+ #!/usr/bin/env bash
506
+
507
+ # Source script under test
508
+ export SCRIPT_DIR="${BATS_TEST_DIRNAME%/*}/bin"
509
+
510
+ # Common test utilities
511
+ assert_file_exists() {
512
+ if [ ! -f "$1" ]; then
513
+ echo "Expected file to exist: $1"
514
+ return 1
515
+ fi
516
+ }
517
+
518
+ assert_file_equals() {
519
+ local file="$1"
520
+ local expected="$2"
521
+
522
+ if [ ! -f "$file" ]; then
523
+ echo "File does not exist: $file"
524
+ return 1
525
+ fi
526
+
527
+ local actual=$(cat "$file")
528
+ if [ "$actual" != "$expected" ]; then
529
+ echo "File contents do not match"
530
+ echo "Expected: $expected"
531
+ echo "Actual: $actual"
532
+ return 1
533
+ fi
534
+ }
535
+
536
+ # Create temporary test directory
537
+ setup_test_dir() {
538
+ export TEST_DIR=$(mktemp -d)
539
+ }
540
+
541
+ cleanup_test_dir() {
542
+ rm -rf "$TEST_DIR"
543
+ }
544
+ ```
545
+
546
+ ## Integration with CI/CD
547
+
548
+ ### GitHub Actions Workflow
549
+
550
+ ```yaml
551
+ name: Tests
552
+
553
+ on: [push, pull_request]
554
+
555
+ jobs:
556
+ test:
557
+ runs-on: ubuntu-latest
558
+
559
+ steps:
560
+ - uses: actions/checkout@v3
561
+
562
+ - name: Install Bats
563
+ run: |
564
+ npm install --global bats
565
+
566
+ - name: Run Tests
567
+ run: |
568
+ bats tests/*.bats
569
+
570
+ - name: Run Tests with Tap Reporter
571
+ run: |
572
+ bats tests/*.bats --tap | tee test_output.tap
573
+ ```
574
+
575
+ ### Makefile Integration
576
+
577
+ ```makefile
578
+ .PHONY: test test-verbose test-tap
579
+
580
+ test:
581
+ bats tests/*.bats
582
+
583
+ test-verbose:
584
+ bats tests/*.bats --verbose
585
+
586
+ test-tap:
587
+ bats tests/*.bats --tap
588
+
589
+ test-parallel:
590
+ bats tests/*.bats --parallel 4
591
+
592
+ coverage: test
593
+ # Optional: Generate coverage reports
594
+ ```
595
+
596
+ ## Best Practices
597
+
598
+ 1. **Test one thing per test** - Single responsibility principle
599
+ 2. **Use descriptive test names** - Clearly states what is being tested
600
+ 3. **Clean up after tests** - Always remove temporary files in teardown
601
+ 4. **Test both success and failure paths** - Don't just test happy path
602
+ 5. **Mock external dependencies** - Isolate unit under test
603
+ 6. **Use fixtures for complex data** - Makes tests more readable
604
+ 7. **Run tests in CI/CD** - Catch regressions early
605
+ 8. **Test across shell dialects** - Ensure portability
606
+ 9. **Keep tests fast** - Run in parallel when possible
607
+ 10. **Document complex test setup** - Explain unusual patterns
608
+
609
+ ## Resources
610
+
611
+ - **Bats GitHub**: https://github.com/bats-core/bats-core
612
+ - **Bats Documentation**: https://bats-core.readthedocs.io/
613
+ - **TAP Protocol**: https://testanything.org/
614
+ - **Test-Driven Development**: https://en.wikipedia.org/wiki/Test-driven_development