@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,517 @@
1
+ # Bash Defensive Patterns Implementation Playbook
2
+
3
+ This file contains detailed patterns, checklists, and code samples referenced by the skill.
4
+
5
+ ## Core Defensive Principles
6
+
7
+ ### 1. Strict Mode
8
+ Enable bash strict mode at the start of every script to catch errors early.
9
+
10
+ ```bash
11
+ #!/bin/bash
12
+ set -Eeuo pipefail # Exit on error, unset variables, pipe failures
13
+ ```
14
+
15
+ **Key flags:**
16
+ - `set -E`: Inherit ERR trap in functions
17
+ - `set -e`: Exit on any error (command returns non-zero)
18
+ - `set -u`: Exit on undefined variable reference
19
+ - `set -o pipefail`: Pipe fails if any command fails (not just last)
20
+
21
+ ### 2. Error Trapping and Cleanup
22
+ Implement proper cleanup on script exit or error.
23
+
24
+ ```bash
25
+ #!/bin/bash
26
+ set -Eeuo pipefail
27
+
28
+ trap 'echo "Error on line $LINENO"' ERR
29
+ trap 'echo "Cleaning up..."; rm -rf "$TMPDIR"' EXIT
30
+
31
+ TMPDIR=$(mktemp -d)
32
+ # Script code here
33
+ ```
34
+
35
+ ### 3. Variable Safety
36
+ Always quote variables to prevent word splitting and globbing issues.
37
+
38
+ ```bash
39
+ # Wrong - unsafe
40
+ cp $source $dest
41
+
42
+ # Correct - safe
43
+ cp "$source" "$dest"
44
+
45
+ # Required variables - fail with message if unset
46
+ : "${REQUIRED_VAR:?REQUIRED_VAR is not set}"
47
+ ```
48
+
49
+ ### 4. Array Handling
50
+ Use arrays safely for complex data handling.
51
+
52
+ ```bash
53
+ # Safe array iteration
54
+ declare -a items=("item 1" "item 2" "item 3")
55
+
56
+ for item in "${items[@]}"; do
57
+ echo "Processing: $item"
58
+ done
59
+
60
+ # Reading output into array safely
61
+ mapfile -t lines < <(some_command)
62
+ readarray -t numbers < <(seq 1 10)
63
+ ```
64
+
65
+ ### 5. Conditional Safety
66
+ Use `[[ ]]` for Bash-specific features, `[ ]` for POSIX.
67
+
68
+ ```bash
69
+ # Bash - safer
70
+ if [[ -f "$file" && -r "$file" ]]; then
71
+ content=$(<"$file")
72
+ fi
73
+
74
+ # POSIX - portable
75
+ if [ -f "$file" ] && [ -r "$file" ]; then
76
+ content=$(cat "$file")
77
+ fi
78
+
79
+ # Test for existence before operations
80
+ if [[ -z "${VAR:-}" ]]; then
81
+ echo "VAR is not set or is empty"
82
+ fi
83
+ ```
84
+
85
+ ## Fundamental Patterns
86
+
87
+ ### Pattern 1: Safe Script Directory Detection
88
+
89
+ ```bash
90
+ #!/bin/bash
91
+ set -Eeuo pipefail
92
+
93
+ # Correctly determine script directory
94
+ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"
95
+ SCRIPT_NAME="$(basename -- "${BASH_SOURCE[0]}")"
96
+
97
+ echo "Script location: $SCRIPT_DIR/$SCRIPT_NAME"
98
+ ```
99
+
100
+ ### Pattern 2: Comprehensive Function Templat
101
+
102
+ ```bash
103
+ #!/bin/bash
104
+ set -Eeuo pipefail
105
+
106
+ # Prefix for functions: handle_*, process_*, check_*, validate_*
107
+ # Include documentation and error handling
108
+
109
+ validate_file() {
110
+ local -r file="$1"
111
+ local -r message="${2:-File not found: $file}"
112
+
113
+ if [[ ! -f "$file" ]]; then
114
+ echo "ERROR: $message" >&2
115
+ return 1
116
+ fi
117
+ return 0
118
+ }
119
+
120
+ process_files() {
121
+ local -r input_dir="$1"
122
+ local -r output_dir="$2"
123
+
124
+ # Validate inputs
125
+ [[ -d "$input_dir" ]] || { echo "ERROR: input_dir not a directory" >&2; return 1; }
126
+
127
+ # Create output directory if needed
128
+ mkdir -p "$output_dir" || { echo "ERROR: Cannot create output_dir" >&2; return 1; }
129
+
130
+ # Process files safely
131
+ while IFS= read -r -d '' file; do
132
+ echo "Processing: $file"
133
+ # Do work
134
+ done < <(find "$input_dir" -maxdepth 1 -type f -print0)
135
+
136
+ return 0
137
+ }
138
+ ```
139
+
140
+ ### Pattern 3: Safe Temporary File Handling
141
+
142
+ ```bash
143
+ #!/bin/bash
144
+ set -Eeuo pipefail
145
+
146
+ trap 'rm -rf -- "$TMPDIR"' EXIT
147
+
148
+ # Create temporary directory
149
+ TMPDIR=$(mktemp -d) || { echo "ERROR: Failed to create temp directory" >&2; exit 1; }
150
+
151
+ # Create temporary files in directory
152
+ TMPFILE1="$TMPDIR/temp1.txt"
153
+ TMPFILE2="$TMPDIR/temp2.txt"
154
+
155
+ # Use temporary files
156
+ touch "$TMPFILE1" "$TMPFILE2"
157
+
158
+ echo "Temp files created in: $TMPDIR"
159
+ ```
160
+
161
+ ### Pattern 4: Robust Argument Parsing
162
+
163
+ ```bash
164
+ #!/bin/bash
165
+ set -Eeuo pipefail
166
+
167
+ # Default values
168
+ VERBOSE=false
169
+ DRY_RUN=false
170
+ OUTPUT_FILE=""
171
+ THREADS=4
172
+
173
+ usage() {
174
+ cat <<EOF
175
+ Usage: $0 [OPTIONS]
176
+
177
+ Options:
178
+ -v, --verbose Enable verbose output
179
+ -d, --dry-run Run without making changes
180
+ -o, --output FILE Output file path
181
+ -j, --jobs NUM Number of parallel jobs
182
+ -h, --help Show this help message
183
+ EOF
184
+ exit "${1:-0}"
185
+ }
186
+
187
+ # Parse arguments
188
+ while [[ $# -gt 0 ]]; do
189
+ case "$1" in
190
+ -v|--verbose)
191
+ VERBOSE=true
192
+ shift
193
+ ;;
194
+ -d|--dry-run)
195
+ DRY_RUN=true
196
+ shift
197
+ ;;
198
+ -o|--output)
199
+ OUTPUT_FILE="$2"
200
+ shift 2
201
+ ;;
202
+ -j|--jobs)
203
+ THREADS="$2"
204
+ shift 2
205
+ ;;
206
+ -h|--help)
207
+ usage 0
208
+ ;;
209
+ --)
210
+ shift
211
+ break
212
+ ;;
213
+ *)
214
+ echo "ERROR: Unknown option: $1" >&2
215
+ usage 1
216
+ ;;
217
+ esac
218
+ done
219
+
220
+ # Validate required arguments
221
+ [[ -n "$OUTPUT_FILE" ]] || { echo "ERROR: -o/--output is required" >&2; usage 1; }
222
+ ```
223
+
224
+ ### Pattern 5: Structured Logging
225
+
226
+ ```bash
227
+ #!/bin/bash
228
+ set -Eeuo pipefail
229
+
230
+ # Logging functions
231
+ log_info() {
232
+ echo "[$(date +'%Y-%m-%d %H:%M:%S')] INFO: $*" >&2
233
+ }
234
+
235
+ log_warn() {
236
+ echo "[$(date +'%Y-%m-%d %H:%M:%S')] WARN: $*" >&2
237
+ }
238
+
239
+ log_error() {
240
+ echo "[$(date +'%Y-%m-%d %H:%M:%S')] ERROR: $*" >&2
241
+ }
242
+
243
+ log_debug() {
244
+ if [[ "${DEBUG:-0}" == "1" ]]; then
245
+ echo "[$(date +'%Y-%m-%d %H:%M:%S')] DEBUG: $*" >&2
246
+ fi
247
+ }
248
+
249
+ # Usage
250
+ log_info "Starting script"
251
+ log_debug "Debug information"
252
+ log_warn "Warning message"
253
+ log_error "Error occurred"
254
+ ```
255
+
256
+ ### Pattern 6: Process Orchestration with Signals
257
+
258
+ ```bash
259
+ #!/bin/bash
260
+ set -Eeuo pipefail
261
+
262
+ # Track background processes
263
+ PIDS=()
264
+
265
+ cleanup() {
266
+ log_info "Shutting down..."
267
+
268
+ # Terminate all background processes
269
+ for pid in "${PIDS[@]}"; do
270
+ if kill -0 "$pid" 2>/dev/null; then
271
+ kill -TERM "$pid" 2>/dev/null || true
272
+ fi
273
+ done
274
+
275
+ # Wait for graceful shutdown
276
+ for pid in "${PIDS[@]}"; do
277
+ wait "$pid" 2>/dev/null || true
278
+ done
279
+ }
280
+
281
+ trap cleanup SIGTERM SIGINT
282
+
283
+ # Start background tasks
284
+ background_task &
285
+ PIDS+=($!)
286
+
287
+ another_task &
288
+ PIDS+=($!)
289
+
290
+ # Wait for all background processes
291
+ wait
292
+ ```
293
+
294
+ ### Pattern 7: Safe File Operations
295
+
296
+ ```bash
297
+ #!/bin/bash
298
+ set -Eeuo pipefail
299
+
300
+ # Use -i flag to move safely without overwriting
301
+ safe_move() {
302
+ local -r source="$1"
303
+ local -r dest="$2"
304
+
305
+ if [[ ! -e "$source" ]]; then
306
+ echo "ERROR: Source does not exist: $source" >&2
307
+ return 1
308
+ fi
309
+
310
+ if [[ -e "$dest" ]]; then
311
+ echo "ERROR: Destination already exists: $dest" >&2
312
+ return 1
313
+ fi
314
+
315
+ mv "$source" "$dest"
316
+ }
317
+
318
+ # Safe directory cleanup
319
+ safe_rmdir() {
320
+ local -r dir="$1"
321
+
322
+ if [[ ! -d "$dir" ]]; then
323
+ echo "ERROR: Not a directory: $dir" >&2
324
+ return 1
325
+ fi
326
+
327
+ # Use -I flag to prompt before rm (BSD/GNU compatible)
328
+ rm -rI -- "$dir"
329
+ }
330
+
331
+ # Atomic file writes
332
+ atomic_write() {
333
+ local -r target="$1"
334
+ local -r tmpfile
335
+ tmpfile=$(mktemp) || return 1
336
+
337
+ # Write to temp file first
338
+ cat > "$tmpfile"
339
+
340
+ # Atomic rename
341
+ mv "$tmpfile" "$target"
342
+ }
343
+ ```
344
+
345
+ ### Pattern 8: Idempotent Script Design
346
+
347
+ ```bash
348
+ #!/bin/bash
349
+ set -Eeuo pipefail
350
+
351
+ # Check if resource already exists
352
+ ensure_directory() {
353
+ local -r dir="$1"
354
+
355
+ if [[ -d "$dir" ]]; then
356
+ log_info "Directory already exists: $dir"
357
+ return 0
358
+ fi
359
+
360
+ mkdir -p "$dir" || {
361
+ log_error "Failed to create directory: $dir"
362
+ return 1
363
+ }
364
+
365
+ log_info "Created directory: $dir"
366
+ }
367
+
368
+ # Ensure configuration state
369
+ ensure_config() {
370
+ local -r config_file="$1"
371
+ local -r default_value="$2"
372
+
373
+ if [[ ! -f "$config_file" ]]; then
374
+ echo "$default_value" > "$config_file"
375
+ log_info "Created config: $config_file"
376
+ fi
377
+ }
378
+
379
+ # Rerunning script multiple times should be safe
380
+ ensure_directory "/var/cache/myapp"
381
+ ensure_config "/etc/myapp/config" "DEBUG=false"
382
+ ```
383
+
384
+ ### Pattern 9: Safe Command Substitution
385
+
386
+ ```bash
387
+ #!/bin/bash
388
+ set -Eeuo pipefail
389
+
390
+ # Use $() instead of backticks
391
+ name=$(<"$file") # Modern, safe variable assignment from file
392
+ output=$(command -v python3) # Get command location safely
393
+
394
+ # Handle command substitution with error checking
395
+ result=$(command -v node) || {
396
+ log_error "node command not found"
397
+ return 1
398
+ }
399
+
400
+ # For multiple lines
401
+ mapfile -t lines < <(grep "pattern" "$file")
402
+
403
+ # NUL-safe iteration
404
+ while IFS= read -r -d '' file; do
405
+ echo "Processing: $file"
406
+ done < <(find /path -type f -print0)
407
+ ```
408
+
409
+ ### Pattern 10: Dry-Run Support
410
+
411
+ ```bash
412
+ #!/bin/bash
413
+ set -Eeuo pipefail
414
+
415
+ DRY_RUN="${DRY_RUN:-false}"
416
+
417
+ run_cmd() {
418
+ if [[ "$DRY_RUN" == "true" ]]; then
419
+ echo "[DRY RUN] Would execute: $*"
420
+ return 0
421
+ fi
422
+
423
+ "$@"
424
+ }
425
+
426
+ # Usage
427
+ run_cmd cp "$source" "$dest"
428
+ run_cmd rm "$file"
429
+ run_cmd chown "$owner" "$target"
430
+ ```
431
+
432
+ ## Advanced Defensive Techniques
433
+
434
+ ### Named Parameters Pattern
435
+
436
+ ```bash
437
+ #!/bin/bash
438
+ set -Eeuo pipefail
439
+
440
+ process_data() {
441
+ local input_file=""
442
+ local output_dir=""
443
+ local format="json"
444
+
445
+ # Parse named parameters
446
+ while [[ $# -gt 0 ]]; do
447
+ case "$1" in
448
+ --input=*)
449
+ input_file="${1#*=}"
450
+ ;;
451
+ --output=*)
452
+ output_dir="${1#*=}"
453
+ ;;
454
+ --format=*)
455
+ format="${1#*=}"
456
+ ;;
457
+ *)
458
+ echo "ERROR: Unknown parameter: $1" >&2
459
+ return 1
460
+ ;;
461
+ esac
462
+ shift
463
+ done
464
+
465
+ # Validate required parameters
466
+ [[ -n "$input_file" ]] || { echo "ERROR: --input is required" >&2; return 1; }
467
+ [[ -n "$output_dir" ]] || { echo "ERROR: --output is required" >&2; return 1; }
468
+ }
469
+ ```
470
+
471
+ ### Dependency Checking
472
+
473
+ ```bash
474
+ #!/bin/bash
475
+ set -Eeuo pipefail
476
+
477
+ check_dependencies() {
478
+ local -a missing_deps=()
479
+ local -a required=("jq" "curl" "git")
480
+
481
+ for cmd in "${required[@]}"; do
482
+ if ! command -v "$cmd" &>/dev/null; then
483
+ missing_deps+=("$cmd")
484
+ fi
485
+ done
486
+
487
+ if [[ ${#missing_deps[@]} -gt 0 ]]; then
488
+ echo "ERROR: Missing required commands: ${missing_deps[*]}" >&2
489
+ return 1
490
+ fi
491
+ }
492
+
493
+ check_dependencies
494
+ ```
495
+
496
+ ## Best Practices Summary
497
+
498
+ 1. **Always use strict mode** - `set -Eeuo pipefail`
499
+ 2. **Quote all variables** - `"$variable"` prevents word splitting
500
+ 3. **Use [[ ]] conditionals** - More robust than [ ]
501
+ 4. **Implement error trapping** - Catch and handle errors gracefully
502
+ 5. **Validate all inputs** - Check file existence, permissions, formats
503
+ 6. **Use functions for reusability** - Prefix with meaningful names
504
+ 7. **Implement structured logging** - Include timestamps and levels
505
+ 8. **Support dry-run mode** - Allow users to preview changes
506
+ 9. **Handle temporary files safely** - Use mktemp, cleanup with trap
507
+ 10. **Design for idempotency** - Scripts should be safe to rerun
508
+ 11. **Document requirements** - List dependencies and minimum versions
509
+ 12. **Test error paths** - Ensure error handling works correctly
510
+ 13. **Use `command -v`** - Safer than `which` for checking executables
511
+ 14. **Prefer printf over echo** - More predictable across systems
512
+
513
+ ## Resources
514
+
515
+ - **Bash Strict Mode**: http://redsymbol.net/articles/unofficial-bash-strict-mode/
516
+ - **Google Shell Style Guide**: https://google.github.io/styleguide/shellguide.html
517
+ - **Defensive BASH Programming**: https://www.lifepipe.net/