claude-autopm 2.8.2 → 2.8.4

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 (391) hide show
  1. package/README.md +399 -637
  2. package/install/install.js +15 -5
  3. package/package.json +2 -1
  4. package/packages/plugin-ai/LICENSE +21 -0
  5. package/packages/plugin-ai/README.md +316 -0
  6. package/packages/plugin-ai/agents/anthropic-claude-expert.md +579 -0
  7. package/packages/plugin-ai/agents/azure-openai-expert.md +1411 -0
  8. package/packages/plugin-ai/agents/gemini-api-expert.md +880 -0
  9. package/packages/plugin-ai/agents/google-a2a-expert.md +1445 -0
  10. package/packages/plugin-ai/agents/huggingface-expert.md +2131 -0
  11. package/packages/plugin-ai/agents/langchain-expert.md +1427 -0
  12. package/packages/plugin-ai/agents/langgraph-workflow-expert.md +520 -0
  13. package/packages/plugin-ai/agents/openai-python-expert.md +1087 -0
  14. package/packages/plugin-ai/commands/a2a-setup.md +886 -0
  15. package/packages/plugin-ai/commands/ai-model-deployment.md +481 -0
  16. package/packages/plugin-ai/commands/anthropic-optimize.md +793 -0
  17. package/packages/plugin-ai/commands/huggingface-deploy.md +789 -0
  18. package/packages/plugin-ai/commands/langchain-optimize.md +807 -0
  19. package/packages/plugin-ai/commands/llm-optimize.md +348 -0
  20. package/packages/plugin-ai/commands/openai-optimize.md +863 -0
  21. package/packages/plugin-ai/commands/rag-optimize.md +841 -0
  22. package/packages/plugin-ai/commands/rag-setup-scaffold.md +382 -0
  23. package/packages/plugin-ai/package.json +66 -0
  24. package/packages/plugin-ai/plugin.json +519 -0
  25. package/packages/plugin-ai/rules/ai-model-standards.md +449 -0
  26. package/packages/plugin-ai/rules/prompt-engineering-standards.md +509 -0
  27. package/packages/plugin-ai/scripts/examples/huggingface-inference-example.py +145 -0
  28. package/packages/plugin-ai/scripts/examples/langchain-rag-example.py +366 -0
  29. package/packages/plugin-ai/scripts/examples/mlflow-tracking-example.py +224 -0
  30. package/packages/plugin-ai/scripts/examples/openai-chat-example.py +425 -0
  31. package/packages/plugin-cloud/README.md +268 -0
  32. package/packages/plugin-cloud/agents/README.md +55 -0
  33. package/packages/plugin-cloud/agents/aws-cloud-architect.md +521 -0
  34. package/packages/plugin-cloud/agents/azure-cloud-architect.md +436 -0
  35. package/packages/plugin-cloud/agents/gcp-cloud-architect.md +385 -0
  36. package/packages/plugin-cloud/agents/gcp-cloud-functions-engineer.md +306 -0
  37. package/packages/plugin-cloud/agents/gemini-api-expert.md +880 -0
  38. package/packages/plugin-cloud/agents/kubernetes-orchestrator.md +566 -0
  39. package/packages/plugin-cloud/agents/openai-python-expert.md +1087 -0
  40. package/packages/plugin-cloud/agents/terraform-infrastructure-expert.md +454 -0
  41. package/packages/plugin-cloud/commands/cloud-cost-optimize.md +243 -0
  42. package/packages/plugin-cloud/commands/cloud-validate.md +196 -0
  43. package/packages/plugin-cloud/commands/infra-deploy.md +38 -0
  44. package/packages/plugin-cloud/commands/k8s-deploy.md +37 -0
  45. package/packages/plugin-cloud/commands/ssh-security.md +65 -0
  46. package/packages/plugin-cloud/commands/traefik-setup.md +65 -0
  47. package/packages/plugin-cloud/hooks/pre-cloud-deploy.js +456 -0
  48. package/packages/plugin-cloud/package.json +64 -0
  49. package/packages/plugin-cloud/plugin.json +338 -0
  50. package/packages/plugin-cloud/rules/cloud-security-compliance.md +313 -0
  51. package/packages/plugin-cloud/rules/infrastructure-pipeline.md +128 -0
  52. package/packages/plugin-cloud/scripts/examples/aws-validate.sh +30 -0
  53. package/packages/plugin-cloud/scripts/examples/azure-setup.sh +33 -0
  54. package/packages/plugin-cloud/scripts/examples/gcp-setup.sh +39 -0
  55. package/packages/plugin-cloud/scripts/examples/k8s-validate.sh +40 -0
  56. package/packages/plugin-cloud/scripts/examples/terraform-init.sh +26 -0
  57. package/packages/plugin-core/README.md +274 -0
  58. package/packages/plugin-core/agents/core/agent-manager.md +296 -0
  59. package/packages/plugin-core/agents/core/code-analyzer.md +131 -0
  60. package/packages/plugin-core/agents/core/file-analyzer.md +162 -0
  61. package/packages/plugin-core/agents/core/test-runner.md +200 -0
  62. package/packages/plugin-core/commands/code-rabbit.md +128 -0
  63. package/packages/plugin-core/commands/prompt.md +9 -0
  64. package/packages/plugin-core/commands/re-init.md +9 -0
  65. package/packages/plugin-core/hooks/context7-reminder.md +29 -0
  66. package/packages/plugin-core/hooks/enforce-agents.js +125 -0
  67. package/packages/plugin-core/hooks/enforce-agents.sh +35 -0
  68. package/packages/plugin-core/hooks/pre-agent-context7.js +224 -0
  69. package/packages/plugin-core/hooks/pre-command-context7.js +229 -0
  70. package/packages/plugin-core/hooks/strict-enforce-agents.sh +39 -0
  71. package/packages/plugin-core/hooks/test-hook.sh +21 -0
  72. package/packages/plugin-core/hooks/unified-context7-enforcement.sh +38 -0
  73. package/packages/plugin-core/package.json +45 -0
  74. package/packages/plugin-core/plugin.json +387 -0
  75. package/packages/plugin-core/rules/agent-coordination.md +549 -0
  76. package/packages/plugin-core/rules/agent-mandatory.md +170 -0
  77. package/packages/plugin-core/rules/ai-integration-patterns.md +219 -0
  78. package/packages/plugin-core/rules/command-pipelines.md +208 -0
  79. package/packages/plugin-core/rules/context-optimization.md +176 -0
  80. package/packages/plugin-core/rules/context7-enforcement.md +327 -0
  81. package/packages/plugin-core/rules/datetime.md +122 -0
  82. package/packages/plugin-core/rules/definition-of-done.md +272 -0
  83. package/packages/plugin-core/rules/development-environments.md +19 -0
  84. package/packages/plugin-core/rules/development-workflow.md +198 -0
  85. package/packages/plugin-core/rules/framework-path-rules.md +180 -0
  86. package/packages/plugin-core/rules/frontmatter-operations.md +64 -0
  87. package/packages/plugin-core/rules/git-strategy.md +237 -0
  88. package/packages/plugin-core/rules/golden-rules.md +181 -0
  89. package/packages/plugin-core/rules/naming-conventions.md +111 -0
  90. package/packages/plugin-core/rules/no-pr-workflow.md +183 -0
  91. package/packages/plugin-core/rules/performance-guidelines.md +403 -0
  92. package/packages/plugin-core/rules/pipeline-mandatory.md +109 -0
  93. package/packages/plugin-core/rules/security-checklist.md +318 -0
  94. package/packages/plugin-core/rules/standard-patterns.md +197 -0
  95. package/packages/plugin-core/rules/strip-frontmatter.md +85 -0
  96. package/packages/plugin-core/rules/tdd.enforcement.md +103 -0
  97. package/packages/plugin-core/rules/use-ast-grep.md +113 -0
  98. package/packages/plugin-core/scripts/lib/datetime-utils.sh +254 -0
  99. package/packages/plugin-core/scripts/lib/frontmatter-utils.sh +294 -0
  100. package/packages/plugin-core/scripts/lib/github-utils.sh +221 -0
  101. package/packages/plugin-core/scripts/lib/logging-utils.sh +199 -0
  102. package/packages/plugin-core/scripts/lib/validation-utils.sh +339 -0
  103. package/packages/plugin-core/scripts/mcp/add.sh +7 -0
  104. package/packages/plugin-core/scripts/mcp/disable.sh +12 -0
  105. package/packages/plugin-core/scripts/mcp/enable.sh +12 -0
  106. package/packages/plugin-core/scripts/mcp/list.sh +7 -0
  107. package/packages/plugin-core/scripts/mcp/sync.sh +8 -0
  108. package/packages/plugin-data/README.md +315 -0
  109. package/packages/plugin-data/agents/airflow-orchestration-expert.md +158 -0
  110. package/packages/plugin-data/agents/kedro-pipeline-expert.md +304 -0
  111. package/packages/plugin-data/agents/langgraph-workflow-expert.md +530 -0
  112. package/packages/plugin-data/commands/airflow-dag-scaffold.md +413 -0
  113. package/packages/plugin-data/commands/kafka-pipeline-scaffold.md +503 -0
  114. package/packages/plugin-data/package.json +66 -0
  115. package/packages/plugin-data/plugin.json +294 -0
  116. package/packages/plugin-data/rules/data-quality-standards.md +373 -0
  117. package/packages/plugin-data/rules/etl-pipeline-standards.md +255 -0
  118. package/packages/plugin-data/scripts/examples/airflow-dag-example.py +245 -0
  119. package/packages/plugin-data/scripts/examples/dbt-transform-example.sql +238 -0
  120. package/packages/plugin-data/scripts/examples/kafka-streaming-example.py +257 -0
  121. package/packages/plugin-data/scripts/examples/pandas-etl-example.py +332 -0
  122. package/packages/plugin-databases/README.md +330 -0
  123. package/packages/plugin-databases/agents/README.md +50 -0
  124. package/packages/plugin-databases/agents/bigquery-expert.md +401 -0
  125. package/packages/plugin-databases/agents/cosmosdb-expert.md +375 -0
  126. package/packages/plugin-databases/agents/mongodb-expert.md +407 -0
  127. package/packages/plugin-databases/agents/postgresql-expert.md +329 -0
  128. package/packages/plugin-databases/agents/redis-expert.md +74 -0
  129. package/packages/plugin-databases/commands/db-optimize.md +612 -0
  130. package/packages/plugin-databases/package.json +60 -0
  131. package/packages/plugin-databases/plugin.json +237 -0
  132. package/packages/plugin-databases/rules/database-management-strategy.md +146 -0
  133. package/packages/plugin-databases/rules/database-pipeline.md +316 -0
  134. package/packages/plugin-databases/scripts/examples/bigquery-cost-analyze.sh +160 -0
  135. package/packages/plugin-databases/scripts/examples/cosmosdb-ru-optimize.sh +163 -0
  136. package/packages/plugin-databases/scripts/examples/mongodb-shard-check.sh +120 -0
  137. package/packages/plugin-databases/scripts/examples/postgres-index-analyze.sh +95 -0
  138. package/packages/plugin-databases/scripts/examples/redis-cache-stats.sh +121 -0
  139. package/packages/plugin-devops/README.md +367 -0
  140. package/packages/plugin-devops/agents/README.md +52 -0
  141. package/packages/plugin-devops/agents/azure-devops-specialist.md +308 -0
  142. package/packages/plugin-devops/agents/docker-containerization-expert.md +298 -0
  143. package/packages/plugin-devops/agents/github-operations-specialist.md +335 -0
  144. package/packages/plugin-devops/agents/mcp-context-manager.md +319 -0
  145. package/packages/plugin-devops/agents/observability-engineer.md +574 -0
  146. package/packages/plugin-devops/agents/ssh-operations-expert.md +1093 -0
  147. package/packages/plugin-devops/agents/traefik-proxy-expert.md +444 -0
  148. package/packages/plugin-devops/commands/ci-pipeline-create.md +581 -0
  149. package/packages/plugin-devops/commands/docker-optimize.md +493 -0
  150. package/packages/plugin-devops/commands/workflow-create.md +42 -0
  151. package/packages/plugin-devops/hooks/pre-docker-build.js +472 -0
  152. package/packages/plugin-devops/package.json +61 -0
  153. package/packages/plugin-devops/plugin.json +302 -0
  154. package/packages/plugin-devops/rules/ci-cd-kubernetes-strategy.md +25 -0
  155. package/packages/plugin-devops/rules/devops-troubleshooting-playbook.md +450 -0
  156. package/packages/plugin-devops/rules/docker-first-development.md +404 -0
  157. package/packages/plugin-devops/rules/github-operations.md +92 -0
  158. package/packages/plugin-devops/scripts/examples/docker-build-multistage.sh +43 -0
  159. package/packages/plugin-devops/scripts/examples/docker-compose-validate.sh +74 -0
  160. package/packages/plugin-devops/scripts/examples/github-workflow-validate.sh +48 -0
  161. package/packages/plugin-devops/scripts/examples/prometheus-health-check.sh +58 -0
  162. package/packages/plugin-devops/scripts/examples/ssh-key-setup.sh +74 -0
  163. package/packages/plugin-frameworks/README.md +309 -0
  164. package/packages/plugin-frameworks/agents/README.md +64 -0
  165. package/packages/plugin-frameworks/agents/e2e-test-engineer.md +579 -0
  166. package/packages/plugin-frameworks/agents/nats-messaging-expert.md +254 -0
  167. package/packages/plugin-frameworks/agents/react-frontend-engineer.md +393 -0
  168. package/packages/plugin-frameworks/agents/react-ui-expert.md +226 -0
  169. package/packages/plugin-frameworks/agents/tailwindcss-expert.md +1021 -0
  170. package/packages/plugin-frameworks/agents/ux-design-expert.md +244 -0
  171. package/packages/plugin-frameworks/commands/app-scaffold.md +50 -0
  172. package/packages/plugin-frameworks/commands/nextjs-optimize.md +692 -0
  173. package/packages/plugin-frameworks/commands/react-optimize.md +583 -0
  174. package/packages/plugin-frameworks/commands/tailwind-system.md +64 -0
  175. package/packages/plugin-frameworks/package.json +59 -0
  176. package/packages/plugin-frameworks/plugin.json +224 -0
  177. package/packages/plugin-frameworks/rules/performance-guidelines.md +403 -0
  178. package/packages/plugin-frameworks/rules/ui-development-standards.md +281 -0
  179. package/packages/plugin-frameworks/rules/ui-framework-rules.md +151 -0
  180. package/packages/plugin-frameworks/scripts/examples/react-component-perf.sh +34 -0
  181. package/packages/plugin-frameworks/scripts/examples/tailwind-optimize.sh +44 -0
  182. package/packages/plugin-frameworks/scripts/examples/vue-composition-check.sh +41 -0
  183. package/packages/plugin-languages/README.md +333 -0
  184. package/packages/plugin-languages/agents/README.md +50 -0
  185. package/packages/plugin-languages/agents/bash-scripting-expert.md +541 -0
  186. package/packages/plugin-languages/agents/javascript-frontend-engineer.md +197 -0
  187. package/packages/plugin-languages/agents/nodejs-backend-engineer.md +226 -0
  188. package/packages/plugin-languages/agents/python-backend-engineer.md +214 -0
  189. package/packages/plugin-languages/agents/python-backend-expert.md +289 -0
  190. package/packages/plugin-languages/commands/javascript-optimize.md +636 -0
  191. package/packages/plugin-languages/commands/nodejs-api-scaffold.md +341 -0
  192. package/packages/plugin-languages/commands/nodejs-optimize.md +689 -0
  193. package/packages/plugin-languages/commands/python-api-scaffold.md +261 -0
  194. package/packages/plugin-languages/commands/python-optimize.md +593 -0
  195. package/packages/plugin-languages/package.json +65 -0
  196. package/packages/plugin-languages/plugin.json +265 -0
  197. package/packages/plugin-languages/rules/code-quality-standards.md +496 -0
  198. package/packages/plugin-languages/rules/testing-standards.md +768 -0
  199. package/packages/plugin-languages/scripts/examples/bash-production-script.sh +520 -0
  200. package/packages/plugin-languages/scripts/examples/javascript-es6-patterns.js +291 -0
  201. package/packages/plugin-languages/scripts/examples/nodejs-async-iteration.js +360 -0
  202. package/packages/plugin-languages/scripts/examples/python-async-patterns.py +289 -0
  203. package/packages/plugin-languages/scripts/examples/typescript-patterns.ts +432 -0
  204. package/packages/plugin-ml/README.md +430 -0
  205. package/packages/plugin-ml/agents/automl-expert.md +326 -0
  206. package/packages/plugin-ml/agents/computer-vision-expert.md +550 -0
  207. package/packages/plugin-ml/agents/gradient-boosting-expert.md +455 -0
  208. package/packages/plugin-ml/agents/neural-network-architect.md +1228 -0
  209. package/packages/plugin-ml/agents/nlp-transformer-expert.md +584 -0
  210. package/packages/plugin-ml/agents/pytorch-expert.md +412 -0
  211. package/packages/plugin-ml/agents/reinforcement-learning-expert.md +2088 -0
  212. package/packages/plugin-ml/agents/scikit-learn-expert.md +228 -0
  213. package/packages/plugin-ml/agents/tensorflow-keras-expert.md +509 -0
  214. package/packages/plugin-ml/agents/time-series-expert.md +303 -0
  215. package/packages/plugin-ml/commands/ml-automl.md +572 -0
  216. package/packages/plugin-ml/commands/ml-train-optimize.md +657 -0
  217. package/packages/plugin-ml/package.json +52 -0
  218. package/packages/plugin-ml/plugin.json +338 -0
  219. package/packages/plugin-pm/README.md +368 -0
  220. package/packages/plugin-pm/claudeautopm-plugin-pm-2.0.0.tgz +0 -0
  221. package/packages/plugin-pm/commands/azure/COMMANDS.md +107 -0
  222. package/packages/plugin-pm/commands/azure/COMMAND_MAPPING.md +252 -0
  223. package/packages/plugin-pm/commands/azure/INTEGRATION_FIX.md +103 -0
  224. package/packages/plugin-pm/commands/azure/README.md +246 -0
  225. package/packages/plugin-pm/commands/azure/active-work.md +198 -0
  226. package/packages/plugin-pm/commands/azure/aliases.md +143 -0
  227. package/packages/plugin-pm/commands/azure/blocked-items.md +287 -0
  228. package/packages/plugin-pm/commands/azure/clean.md +93 -0
  229. package/packages/plugin-pm/commands/azure/docs-query.md +48 -0
  230. package/packages/plugin-pm/commands/azure/feature-decompose.md +380 -0
  231. package/packages/plugin-pm/commands/azure/feature-list.md +61 -0
  232. package/packages/plugin-pm/commands/azure/feature-new.md +115 -0
  233. package/packages/plugin-pm/commands/azure/feature-show.md +205 -0
  234. package/packages/plugin-pm/commands/azure/feature-start.md +130 -0
  235. package/packages/plugin-pm/commands/azure/fix-integration-example.md +93 -0
  236. package/packages/plugin-pm/commands/azure/help.md +150 -0
  237. package/packages/plugin-pm/commands/azure/import-us.md +269 -0
  238. package/packages/plugin-pm/commands/azure/init.md +211 -0
  239. package/packages/plugin-pm/commands/azure/next-task.md +262 -0
  240. package/packages/plugin-pm/commands/azure/search.md +160 -0
  241. package/packages/plugin-pm/commands/azure/sprint-status.md +235 -0
  242. package/packages/plugin-pm/commands/azure/standup.md +260 -0
  243. package/packages/plugin-pm/commands/azure/sync-all.md +99 -0
  244. package/packages/plugin-pm/commands/azure/task-analyze.md +186 -0
  245. package/packages/plugin-pm/commands/azure/task-close.md +329 -0
  246. package/packages/plugin-pm/commands/azure/task-edit.md +145 -0
  247. package/packages/plugin-pm/commands/azure/task-list.md +263 -0
  248. package/packages/plugin-pm/commands/azure/task-new.md +84 -0
  249. package/packages/plugin-pm/commands/azure/task-reopen.md +79 -0
  250. package/packages/plugin-pm/commands/azure/task-show.md +126 -0
  251. package/packages/plugin-pm/commands/azure/task-start.md +301 -0
  252. package/packages/plugin-pm/commands/azure/task-status.md +65 -0
  253. package/packages/plugin-pm/commands/azure/task-sync.md +67 -0
  254. package/packages/plugin-pm/commands/azure/us-edit.md +164 -0
  255. package/packages/plugin-pm/commands/azure/us-list.md +202 -0
  256. package/packages/plugin-pm/commands/azure/us-new.md +265 -0
  257. package/packages/plugin-pm/commands/azure/us-parse.md +253 -0
  258. package/packages/plugin-pm/commands/azure/us-show.md +188 -0
  259. package/packages/plugin-pm/commands/azure/us-status.md +320 -0
  260. package/packages/plugin-pm/commands/azure/validate.md +86 -0
  261. package/packages/plugin-pm/commands/azure/work-item-sync.md +47 -0
  262. package/packages/plugin-pm/commands/blocked.md +28 -0
  263. package/packages/plugin-pm/commands/clean.md +119 -0
  264. package/packages/plugin-pm/commands/context-create.md +136 -0
  265. package/packages/plugin-pm/commands/context-prime.md +170 -0
  266. package/packages/plugin-pm/commands/context-update.md +292 -0
  267. package/packages/plugin-pm/commands/context.md +28 -0
  268. package/packages/plugin-pm/commands/epic-close.md +86 -0
  269. package/packages/plugin-pm/commands/epic-decompose.md +370 -0
  270. package/packages/plugin-pm/commands/epic-edit.md +83 -0
  271. package/packages/plugin-pm/commands/epic-list.md +30 -0
  272. package/packages/plugin-pm/commands/epic-merge.md +222 -0
  273. package/packages/plugin-pm/commands/epic-oneshot.md +119 -0
  274. package/packages/plugin-pm/commands/epic-refresh.md +119 -0
  275. package/packages/plugin-pm/commands/epic-show.md +28 -0
  276. package/packages/plugin-pm/commands/epic-split.md +120 -0
  277. package/packages/plugin-pm/commands/epic-start.md +195 -0
  278. package/packages/plugin-pm/commands/epic-status.md +28 -0
  279. package/packages/plugin-pm/commands/epic-sync-modular.md +338 -0
  280. package/packages/plugin-pm/commands/epic-sync-original.md +473 -0
  281. package/packages/plugin-pm/commands/epic-sync.md +486 -0
  282. package/packages/plugin-pm/commands/github/workflow-create.md +42 -0
  283. package/packages/plugin-pm/commands/help.md +28 -0
  284. package/packages/plugin-pm/commands/import.md +115 -0
  285. package/packages/plugin-pm/commands/in-progress.md +28 -0
  286. package/packages/plugin-pm/commands/init.md +28 -0
  287. package/packages/plugin-pm/commands/issue-analyze.md +202 -0
  288. package/packages/plugin-pm/commands/issue-close.md +119 -0
  289. package/packages/plugin-pm/commands/issue-edit.md +93 -0
  290. package/packages/plugin-pm/commands/issue-reopen.md +87 -0
  291. package/packages/plugin-pm/commands/issue-show.md +41 -0
  292. package/packages/plugin-pm/commands/issue-start.md +234 -0
  293. package/packages/plugin-pm/commands/issue-status.md +95 -0
  294. package/packages/plugin-pm/commands/issue-sync.md +411 -0
  295. package/packages/plugin-pm/commands/next.md +28 -0
  296. package/packages/plugin-pm/commands/prd-edit.md +82 -0
  297. package/packages/plugin-pm/commands/prd-list.md +28 -0
  298. package/packages/plugin-pm/commands/prd-new.md +55 -0
  299. package/packages/plugin-pm/commands/prd-parse.md +42 -0
  300. package/packages/plugin-pm/commands/prd-status.md +28 -0
  301. package/packages/plugin-pm/commands/search.md +28 -0
  302. package/packages/plugin-pm/commands/standup.md +28 -0
  303. package/packages/plugin-pm/commands/status.md +28 -0
  304. package/packages/plugin-pm/commands/sync.md +99 -0
  305. package/packages/plugin-pm/commands/test-reference-update.md +151 -0
  306. package/packages/plugin-pm/commands/validate.md +28 -0
  307. package/packages/plugin-pm/commands/what-next.md +28 -0
  308. package/packages/plugin-pm/package.json +57 -0
  309. package/packages/plugin-pm/plugin.json +503 -0
  310. package/packages/plugin-pm/scripts/pm/analytics.js +425 -0
  311. package/packages/plugin-pm/scripts/pm/blocked.js +164 -0
  312. package/packages/plugin-pm/scripts/pm/blocked.sh +78 -0
  313. package/packages/plugin-pm/scripts/pm/clean.js +464 -0
  314. package/packages/plugin-pm/scripts/pm/context-create.js +216 -0
  315. package/packages/plugin-pm/scripts/pm/context-prime.js +335 -0
  316. package/packages/plugin-pm/scripts/pm/context-update.js +344 -0
  317. package/packages/plugin-pm/scripts/pm/context.js +338 -0
  318. package/packages/plugin-pm/scripts/pm/epic-close.js +347 -0
  319. package/packages/plugin-pm/scripts/pm/epic-edit.js +382 -0
  320. package/packages/plugin-pm/scripts/pm/epic-list.js +273 -0
  321. package/packages/plugin-pm/scripts/pm/epic-list.sh +109 -0
  322. package/packages/plugin-pm/scripts/pm/epic-show.js +291 -0
  323. package/packages/plugin-pm/scripts/pm/epic-show.sh +105 -0
  324. package/packages/plugin-pm/scripts/pm/epic-split.js +522 -0
  325. package/packages/plugin-pm/scripts/pm/epic-start/epic-start.js +183 -0
  326. package/packages/plugin-pm/scripts/pm/epic-start/epic-start.sh +94 -0
  327. package/packages/plugin-pm/scripts/pm/epic-status.js +291 -0
  328. package/packages/plugin-pm/scripts/pm/epic-status.sh +104 -0
  329. package/packages/plugin-pm/scripts/pm/epic-sync/README.md +208 -0
  330. package/packages/plugin-pm/scripts/pm/epic-sync/create-epic-issue.sh +77 -0
  331. package/packages/plugin-pm/scripts/pm/epic-sync/create-task-issues.sh +86 -0
  332. package/packages/plugin-pm/scripts/pm/epic-sync/update-epic-file.sh +79 -0
  333. package/packages/plugin-pm/scripts/pm/epic-sync/update-references.sh +89 -0
  334. package/packages/plugin-pm/scripts/pm/epic-sync.sh +137 -0
  335. package/packages/plugin-pm/scripts/pm/help.js +92 -0
  336. package/packages/plugin-pm/scripts/pm/help.sh +90 -0
  337. package/packages/plugin-pm/scripts/pm/in-progress.js +178 -0
  338. package/packages/plugin-pm/scripts/pm/in-progress.sh +93 -0
  339. package/packages/plugin-pm/scripts/pm/init.js +321 -0
  340. package/packages/plugin-pm/scripts/pm/init.sh +178 -0
  341. package/packages/plugin-pm/scripts/pm/issue-close.js +232 -0
  342. package/packages/plugin-pm/scripts/pm/issue-edit.js +310 -0
  343. package/packages/plugin-pm/scripts/pm/issue-show.js +272 -0
  344. package/packages/plugin-pm/scripts/pm/issue-start.js +181 -0
  345. package/packages/plugin-pm/scripts/pm/issue-sync/format-comment.sh +468 -0
  346. package/packages/plugin-pm/scripts/pm/issue-sync/gather-updates.sh +460 -0
  347. package/packages/plugin-pm/scripts/pm/issue-sync/post-comment.sh +330 -0
  348. package/packages/plugin-pm/scripts/pm/issue-sync/preflight-validation.sh +348 -0
  349. package/packages/plugin-pm/scripts/pm/issue-sync/update-frontmatter.sh +387 -0
  350. package/packages/plugin-pm/scripts/pm/lib/README.md +85 -0
  351. package/packages/plugin-pm/scripts/pm/lib/epic-discovery.js +119 -0
  352. package/packages/plugin-pm/scripts/pm/lib/logger.js +78 -0
  353. package/packages/plugin-pm/scripts/pm/next.js +189 -0
  354. package/packages/plugin-pm/scripts/pm/next.sh +72 -0
  355. package/packages/plugin-pm/scripts/pm/optimize.js +407 -0
  356. package/packages/plugin-pm/scripts/pm/pr-create.js +337 -0
  357. package/packages/plugin-pm/scripts/pm/pr-list.js +257 -0
  358. package/packages/plugin-pm/scripts/pm/prd-list.js +242 -0
  359. package/packages/plugin-pm/scripts/pm/prd-list.sh +103 -0
  360. package/packages/plugin-pm/scripts/pm/prd-new.js +684 -0
  361. package/packages/plugin-pm/scripts/pm/prd-parse.js +547 -0
  362. package/packages/plugin-pm/scripts/pm/prd-status.js +152 -0
  363. package/packages/plugin-pm/scripts/pm/prd-status.sh +63 -0
  364. package/packages/plugin-pm/scripts/pm/release.js +460 -0
  365. package/packages/plugin-pm/scripts/pm/search.js +192 -0
  366. package/packages/plugin-pm/scripts/pm/search.sh +89 -0
  367. package/packages/plugin-pm/scripts/pm/standup.js +362 -0
  368. package/packages/plugin-pm/scripts/pm/standup.sh +95 -0
  369. package/packages/plugin-pm/scripts/pm/status.js +148 -0
  370. package/packages/plugin-pm/scripts/pm/status.sh +59 -0
  371. package/packages/plugin-pm/scripts/pm/sync-batch.js +337 -0
  372. package/packages/plugin-pm/scripts/pm/sync.js +343 -0
  373. package/packages/plugin-pm/scripts/pm/template-list.js +141 -0
  374. package/packages/plugin-pm/scripts/pm/template-new.js +366 -0
  375. package/packages/plugin-pm/scripts/pm/validate.js +274 -0
  376. package/packages/plugin-pm/scripts/pm/validate.sh +106 -0
  377. package/packages/plugin-pm/scripts/pm/what-next.js +660 -0
  378. package/packages/plugin-testing/README.md +401 -0
  379. package/packages/plugin-testing/agents/frontend-testing-engineer.md +768 -0
  380. package/packages/plugin-testing/commands/jest-optimize.md +800 -0
  381. package/packages/plugin-testing/commands/playwright-optimize.md +887 -0
  382. package/packages/plugin-testing/commands/test-coverage.md +512 -0
  383. package/packages/plugin-testing/commands/test-performance.md +1041 -0
  384. package/packages/plugin-testing/commands/test-setup.md +414 -0
  385. package/packages/plugin-testing/package.json +40 -0
  386. package/packages/plugin-testing/plugin.json +197 -0
  387. package/packages/plugin-testing/rules/test-coverage-requirements.md +581 -0
  388. package/packages/plugin-testing/rules/testing-standards.md +529 -0
  389. package/packages/plugin-testing/scripts/examples/react-testing-example.test.jsx +460 -0
  390. package/packages/plugin-testing/scripts/examples/vitest-config-example.js +352 -0
  391. package/packages/plugin-testing/scripts/examples/vue-testing-example.test.js +586 -0
@@ -0,0 +1,404 @@
1
+ # Docker-First Development Rule
2
+
3
+ > **STATUS**: Can be enabled/disabled via `.claude/config.json` → `features.docker_first_development`
4
+
5
+ ## WHEN ENABLED
6
+
7
+ ### 1. MANDATORY DOCKER USAGE
8
+
9
+ **ALL development MUST happen inside Docker containers:**
10
+
11
+ ```bash
12
+ # ❌ FORBIDDEN - Local execution
13
+ npm install
14
+ npm test
15
+ python app.py
16
+ pytest
17
+
18
+ # ✅ REQUIRED - Docker execution
19
+ docker compose run app npm install
20
+ docker compose run app npm test
21
+ docker compose run app python app.py
22
+ docker compose run test pytest
23
+ ```
24
+
25
+ ### 2. PROJECT STRUCTURE REQUIREMENTS
26
+
27
+ Every project MUST have:
28
+
29
+ ```
30
+ project/
31
+ ├── Dockerfile # Production image
32
+ ├── Dockerfile.dev # Development image with dev tools
33
+ ├── docker compose.yml # Production-like setup
34
+ ├── docker compose.dev.yml # Development overrides
35
+ ├── docker compose.test.yml # Test environment
36
+ └── .dockerignore # Exclude unnecessary files
37
+ ```
38
+
39
+ ### 3. DEVELOPMENT WORKFLOW
40
+
41
+ #### Initial Setup
42
+
43
+ ```bash
44
+ # 1. Check if Docker files exist
45
+ if [ ! -f "Dockerfile" ]; then
46
+ Use docker-containerization-expert agent to create Dockerfile
47
+ fi
48
+
49
+ # 2. Build development image
50
+ docker compose -f docker compose.yml -f docker compose.dev.yml build
51
+
52
+ # 3. Start development environment
53
+ docker compose -f docker compose.yml -f docker compose.dev.yml up
54
+ ```
55
+
56
+ #### Code Changes
57
+
58
+ ```yaml
59
+ # docker compose.dev.yml
60
+ services:
61
+ app:
62
+ volumes:
63
+ - .:/app # Mount source code
64
+ - /app/node_modules # Preserve container node_modules
65
+ - /app/.venv # Preserve Python venv
66
+ command: npm run dev # Hot reload
67
+ ```
68
+
69
+ #### Running Tests
70
+
71
+ ```bash
72
+ # Always in container
73
+ docker compose run --rm test pytest
74
+ docker compose run --rm test npm test
75
+
76
+ # CI/CD uses same image
77
+ docker build -t app:test .
78
+ docker run app:test pytest
79
+ ```
80
+
81
+ ### 4. ENFORCEMENT PIPELINE
82
+
83
+ When docker_first_development is **enabled**:
84
+
85
+ ```
86
+ 1. Hook intercepts local commands (npm, pip, python, etc.)
87
+ 2. Checks if Docker alternative exists
88
+ 3. Blocks execution with Docker alternative suggestion
89
+ 4. Auto-creates Docker files if missing
90
+ ```
91
+
92
+ ### 5. DOCKERFILE STANDARDS
93
+
94
+ #### Python Projects
95
+
96
+ ```dockerfile
97
+ # Dockerfile.dev
98
+ FROM python:3.11-slim AS development
99
+ WORKDIR /app
100
+ COPY requirements.txt .
101
+ RUN pip install -r requirements.txt
102
+ COPY . .
103
+ CMD ["python", "-m", "flask", "run", "--host=0.0.0.0", "--reload"]
104
+
105
+ # Dockerfile (production)
106
+ FROM python:3.11-slim AS production
107
+ WORKDIR /app
108
+ COPY requirements.txt .
109
+ RUN pip install --no-cache-dir -r requirements.txt
110
+ COPY . .
111
+ CMD ["gunicorn", "app:app"]
112
+ ```
113
+
114
+ #### Node.js Projects
115
+
116
+ ```dockerfile
117
+ # Dockerfile.dev
118
+ FROM node:20-alpine AS development
119
+ WORKDIR /app
120
+ COPY package*.json ./
121
+ RUN npm ci
122
+ COPY . .
123
+ CMD ["npm", "run", "dev"]
124
+
125
+ # Dockerfile (production)
126
+ FROM node:20-alpine AS production
127
+ WORKDIR /app
128
+ COPY package*.json ./
129
+ RUN npm ci --only=production
130
+ COPY . .
131
+ CMD ["node", "server.js"]
132
+ ```
133
+
134
+ ### 6. docker compose TEMPLATES
135
+
136
+ #### Base docker compose.yml
137
+
138
+ ```yaml
139
+ version: '3.9'
140
+ services:
141
+ app:
142
+ build: .
143
+ ports:
144
+ - "3000:3000"
145
+ environment:
146
+ - NODE_ENV=production
147
+ networks:
148
+ - app-network
149
+
150
+ networks:
151
+ app-network:
152
+ driver: bridge
153
+ ```
154
+
155
+ #### Development Override (docker compose.dev.yml)
156
+
157
+ ```yaml
158
+ version: '3.9'
159
+ services:
160
+ app:
161
+ build:
162
+ context: .
163
+ dockerfile: Dockerfile.dev
164
+ volumes:
165
+ - .:/app
166
+ - /app/node_modules # Preserve dependencies
167
+ environment:
168
+ - NODE_ENV=development
169
+ - DEBUG=true
170
+ ports:
171
+ - "3000:3000"
172
+ - "9229:9229" # Debug port
173
+ ```
174
+
175
+ #### Test Override (docker compose.test.yml)
176
+
177
+ ```yaml
178
+ version: '3.9'
179
+ services:
180
+ test:
181
+ build:
182
+ context: .
183
+ dockerfile: Dockerfile.dev
184
+ command: npm test
185
+ environment:
186
+ - NODE_ENV=test
187
+ - CI=true
188
+ ```
189
+
190
+ ### 7. GITHUB ACTIONS INTEGRATION
191
+
192
+ ```yaml
193
+ # .github/workflows/test.yml
194
+ name: Test
195
+ on: [push, pull_request]
196
+
197
+ jobs:
198
+ test:
199
+ runs-on: ubuntu-latest
200
+ steps:
201
+ - uses: actions/checkout@v3
202
+
203
+ - name: Build Test Image
204
+ run: docker build -f Dockerfile.dev -t app:test .
205
+
206
+ - name: Run Tests in Container
207
+ run: docker run --rm app:test npm test
208
+
209
+ - name: Run Linting in Container
210
+ run: docker run --rm app:test npm run lint
211
+ ```
212
+
213
+ ### 8. VOLUME MOUNTING STRATEGY
214
+
215
+ ```yaml
216
+ # Development volumes for hot reload
217
+ volumes:
218
+ # Source code - always mounted
219
+ - ./src:/app/src
220
+ - ./tests:/app/tests
221
+
222
+ # Config files - mounted read-only
223
+ - ./package.json:/app/package.json:ro
224
+ - ./tsconfig.json:/app/tsconfig.json:ro
225
+
226
+ # Dependencies - NOT mounted (use container's)
227
+ # - ./node_modules:/app/node_modules ❌
228
+ # - ./.venv:/app/.venv ❌
229
+ ```
230
+
231
+ ### 9. DATABASE IN DOCKER
232
+
233
+ ```yaml
234
+ # docker compose.dev.yml
235
+ services:
236
+ app:
237
+ depends_on:
238
+ - db
239
+ - redis
240
+
241
+ db:
242
+ image: postgres:15-alpine
243
+ environment:
244
+ POSTGRES_DB: appdb
245
+ POSTGRES_USER: appuser
246
+ POSTGRES_PASSWORD: devpassword
247
+ volumes:
248
+ - postgres_data:/var/lib/postgresql/data
249
+ ports:
250
+ - "5432:5432"
251
+
252
+ redis:
253
+ image: redis:7-alpine
254
+ ports:
255
+ - "6379:6379"
256
+
257
+ volumes:
258
+ postgres_data:
259
+ ```
260
+
261
+ ### 10. HELPER COMMANDS
262
+
263
+ Create a Makefile for common operations:
264
+
265
+ ```makefile
266
+ # Makefile
267
+ .PHONY: dev test build clean
268
+
269
+ # Development
270
+ dev:
271
+ docker compose -f docker compose.yml -f docker compose.dev.yml up
272
+
273
+ dev-build:
274
+ docker compose -f docker compose.yml -f docker compose.dev.yml build
275
+
276
+ # Testing
277
+ test:
278
+ docker compose -f docker compose.yml -f docker compose.test.yml run --rm test
279
+
280
+ test-watch:
281
+ docker compose -f docker compose.yml -f docker compose.test.yml run --rm test npm run test:watch
282
+
283
+ # Production
284
+ build:
285
+ docker build -t app:latest .
286
+
287
+ run:
288
+ docker run -p 3000:3000 app:latest
289
+
290
+ # Utilities
291
+ shell:
292
+ docker compose -f docker compose.yml -f docker compose.dev.yml exec app sh
293
+
294
+ logs:
295
+ docker compose logs -f app
296
+
297
+ clean:
298
+ docker compose down -v
299
+ docker system prune -f
300
+ ```
301
+
302
+ ## WHEN DISABLED
303
+
304
+ When `docker_first_development: false` in config:
305
+
306
+ - Local development is allowed
307
+ - Docker files are optional
308
+ - No enforcement of container usage
309
+ - Traditional development workflow permitted
310
+
311
+ ## PR VALIDATION REQUIREMENTS
312
+
313
+ When `docker_first_development` is enabled, ALL PRs MUST:
314
+
315
+ ### 1. PASS DOCKER TESTS BEFORE PUSH
316
+
317
+ ```bash
318
+ # Manual validation before creating PR
319
+ ./.claude/scripts/pr-validation.sh
320
+
321
+ # Install Git hooks for automatic validation
322
+ ./.claude/scripts/install-hooks.sh
323
+ ```
324
+
325
+ ### 2. GITHUB ACTIONS VALIDATION
326
+
327
+ PR will automatically run:
328
+
329
+ - Multi-platform Docker builds (linux/amd64, linux/arm64)
330
+ - Tests in Docker containers using same images as local dev
331
+ - Security scanning with Trivy
332
+ - Docker-first compliance validation
333
+ - Startup testing
334
+
335
+ ### 3. REQUIRED FILES FOR PR
336
+
337
+ - `Dockerfile` - Production image
338
+ - `Dockerfile.dev` - Development image
339
+ - `docker compose.yml` - Base configuration
340
+ - `docker compose.test.yml` - Test configuration
341
+ - `.dockerignore` - Build optimization
342
+
343
+ ### 4. AUTOMATED BLOCKING
344
+
345
+ **Pre-push hook blocks push if:**
346
+
347
+ - Docker tests fail
348
+ - Docker images don't build
349
+ - Required Docker files missing
350
+ - Docker daemon not running
351
+
352
+ **GitHub Actions blocks PR if:**
353
+
354
+ - Any Docker tests fail
355
+ - Security vulnerabilities found (HIGH/CRITICAL)
356
+ - Multi-platform builds fail
357
+ - Container startup fails
358
+
359
+ ### 5. PR VALIDATION WORKFLOW
360
+
361
+ ```bash
362
+ # Full validation (recommended)
363
+ ./.claude/scripts/pr-validation.sh
364
+
365
+ # Quick validation (skip some tests)
366
+ ./.claude/scripts/pr-validation.sh --force
367
+
368
+ # Skip tests entirely (not recommended)
369
+ ./.claude/scripts/pr-validation.sh --skip-tests
370
+ ```
371
+
372
+ ### 6. CI/CD REQUIREMENTS
373
+
374
+ GitHub Actions workflow (`.github/workflows/docker-tests.yml`) runs:
375
+
376
+ 1. **Change Detection** - Only runs Docker tests when needed
377
+ 2. **Multi-Environment Testing** - Tests dev and production configs
378
+ 3. **Security Scanning** - Trivy vulnerability scan
379
+ 4. **Multi-Platform Builds** - AMD64 and ARM64 architectures
380
+ 5. **Compliance Validation** - Checks Docker-first requirements
381
+
382
+ ## BYPASS PROCEDURES (EMERGENCY ONLY)
383
+
384
+ ```bash
385
+ # Bypass git hooks temporarily
386
+ git push --no-verify
387
+
388
+ # Disable Docker-first for urgent fixes
389
+ ./.claude/scripts/docker-toggle.sh disable
390
+ # Don't forget to re-enable after fix!
391
+ ```
392
+
393
+ ## CHECKING STATUS
394
+
395
+ ```bash
396
+ # Check Docker-first status with detailed info
397
+ ./.claude/scripts/docker-toggle.sh status
398
+
399
+ # Quick check
400
+ cat .claude/config.json | jq '.features.docker_first_development'
401
+
402
+ # Manual toggle
403
+ ./.claude/scripts/docker-toggle.sh enable # or disable
404
+ ```
@@ -0,0 +1,92 @@
1
+ # GitHub Operations Rule
2
+
3
+ Standard patterns for GitHub CLI operations across all commands.
4
+
5
+ ## CRITICAL: Repository Protection
6
+
7
+ **Before ANY GitHub operation that creates/modifies issues or PRs:**
8
+
9
+ ```bash
10
+ # Check if remote origin is the AutoPM template repository
11
+ remote_url=$(git remote get-url origin 2>/dev/null || echo "")
12
+ if [[ "$remote_url" == *"rlagowski/autopm"* ]] || [[ "$remote_url" == *"rlagowski/autopm.git"* ]]; then
13
+ echo "❌ ERROR: You're trying to sync with the AutoPM template repository!"
14
+ echo ""
15
+ echo "This repository (rlagowski/autopm) is a template for others to use."
16
+ echo "You should NOT create issues or PRs here."
17
+ echo ""
18
+ echo "To fix this:"
19
+ echo "1. Fork this repository to your own GitHub account"
20
+ echo "2. Update your remote origin:"
21
+ echo " git remote set-url origin https://github.com/YOUR_USERNAME/YOUR_REPO.git"
22
+ echo ""
23
+ echo "Or if this is a new project:"
24
+ echo "1. Create a new repository on GitHub"
25
+ echo "2. Update your remote origin:"
26
+ echo " git remote set-url origin https://github.com/YOUR_USERNAME/YOUR_REPO.git"
27
+ echo ""
28
+ echo "Current remote: $remote_url"
29
+ exit 1
30
+ fi
31
+ ```
32
+
33
+ This check MUST be performed in ALL commands that:
34
+
35
+ - Create issues (`gh issue create`)
36
+ - Edit issues (`gh issue edit`)
37
+ - Comment on issues (`gh issue comment`)
38
+ - Create PRs (`gh pr create`)
39
+ - Any other operation that modifies the GitHub repository
40
+
41
+ ## Authentication
42
+
43
+ **Don't pre-check authentication.** Just run the command and handle failure:
44
+
45
+ ```bash
46
+ gh {command} || echo "❌ GitHub CLI failed. Run: gh auth login"
47
+ ```
48
+
49
+ ## Common Operations
50
+
51
+ ### Get Issue Details
52
+
53
+ ```bash
54
+ gh issue view {number} --json state,title,labels,body
55
+ ```
56
+
57
+ ### Create Issue
58
+
59
+ ```bash
60
+ # ALWAYS check remote origin first!
61
+ gh issue create --title "{title}" --body-file {file} --label "{labels}"
62
+ ```
63
+
64
+ ### Update Issue
65
+
66
+ ```bash
67
+ # ALWAYS check remote origin first!
68
+ gh issue edit {number} --add-label "{label}" --add-assignee @me
69
+ ```
70
+
71
+ ### Add Comment
72
+
73
+ ```bash
74
+ # ALWAYS check remote origin first!
75
+ gh issue comment {number} --body-file {file}
76
+ ```
77
+
78
+ ## Error Handling
79
+
80
+ If any gh command fails:
81
+
82
+ 1. Show clear error: "❌ GitHub operation failed: {command}"
83
+ 2. Suggest fix: "Run: gh auth login" or check issue number
84
+ 3. Don't retry automatically
85
+
86
+ ## Important Notes
87
+
88
+ - **ALWAYS** check remote origin before ANY write operation to GitHub
89
+ - Trust that gh CLI is installed and authenticated
90
+ - Use --json for structured output when parsing
91
+ - Keep operations atomic - one gh command per action
92
+ - Don't check rate limits preemptively
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env bash
2
+ # Docker multi-stage build example with optimization
3
+ # Usage: ./docker-build-multistage.sh [image-name] [tag]
4
+
5
+ set -euo pipefail
6
+
7
+ IMAGE_NAME="${1:-myapp}"
8
+ TAG="${2:-latest}"
9
+ DOCKERFILE="${DOCKERFILE:-Dockerfile}"
10
+
11
+ echo "🐳 Building multi-stage Docker image: ${IMAGE_NAME}:${TAG}..."
12
+
13
+ # Check Docker is installed
14
+ if ! command -v docker &> /dev/null; then
15
+ echo "❌ Docker not found. Please install it first."
16
+ exit 1
17
+ fi
18
+
19
+ # Build with BuildKit for better caching and performance
20
+ export DOCKER_BUILDKIT=1
21
+
22
+ echo "📦 Building image with BuildKit optimization..."
23
+ docker build \
24
+ --build-arg BUILDKIT_INLINE_CACHE=1 \
25
+ --tag "${IMAGE_NAME}:${TAG}" \
26
+ --file "${DOCKERFILE}" \
27
+ .
28
+
29
+ # Get image size
30
+ IMAGE_SIZE=$(docker images "${IMAGE_NAME}:${TAG}" --format "{{.Size}}")
31
+ echo "✅ Image built successfully: ${IMAGE_NAME}:${TAG} (Size: ${IMAGE_SIZE})"
32
+
33
+ # Optional: Security scan with Trivy if available
34
+ if command -v trivy &> /dev/null; then
35
+ echo "🔒 Running security scan with Trivy..."
36
+ trivy image --severity HIGH,CRITICAL "${IMAGE_NAME}:${TAG}"
37
+ fi
38
+
39
+ # Optional: Show image layers
40
+ echo "📊 Image layers:"
41
+ docker history "${IMAGE_NAME}:${TAG}" --no-trunc --human
42
+
43
+ echo "✅ Build complete: ${IMAGE_NAME}:${TAG}"
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env bash
2
+ # Docker Compose validation and health check
3
+ # Usage: ./docker-compose-validate.sh [compose-file]
4
+
5
+ set -euo pipefail
6
+
7
+ COMPOSE_FILE="${1:-docker-compose.yml}"
8
+
9
+ echo "🐳 Validating Docker Compose configuration: ${COMPOSE_FILE}..."
10
+
11
+ # Check docker-compose is installed
12
+ if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
13
+ echo "❌ docker-compose not found. Please install it first."
14
+ exit 1
15
+ fi
16
+
17
+ # Use 'docker compose' or 'docker-compose' based on availability
18
+ if docker compose version &> /dev/null 2>&1; then
19
+ COMPOSE_CMD="docker compose"
20
+ else
21
+ COMPOSE_CMD="docker-compose"
22
+ fi
23
+
24
+ # Validate compose file syntax
25
+ echo "📋 Validating Compose file syntax..."
26
+ if $COMPOSE_CMD -f "${COMPOSE_FILE}" config > /dev/null; then
27
+ echo " ✓ Compose file syntax is valid"
28
+ else
29
+ echo " ❌ Compose file has syntax errors"
30
+ exit 1
31
+ fi
32
+
33
+ # Show parsed configuration
34
+ echo ""
35
+ echo "📊 Parsed configuration:"
36
+ $COMPOSE_CMD -f "${COMPOSE_FILE}" config --services
37
+
38
+ # Check for common issues
39
+ echo ""
40
+ echo "🔍 Checking for common issues..."
41
+
42
+ # Check for missing environment variables
43
+ if grep -q '\${[A-Z_]*}' "${COMPOSE_FILE}"; then
44
+ echo " ⚠️ Warning: Compose file contains environment variable references"
45
+ echo " Make sure all required variables are set in .env file"
46
+ fi
47
+
48
+ # Check for volume definitions
49
+ VOLUMES=$($COMPOSE_CMD -f "${COMPOSE_FILE}" config --volumes 2>/dev/null | wc -l)
50
+ if [ "$VOLUMES" -gt 0 ]; then
51
+ echo " ✓ Volumes defined: ${VOLUMES}"
52
+ $COMPOSE_CMD -f "${COMPOSE_FILE}" config --volumes
53
+ fi
54
+
55
+ # Check for network definitions
56
+ NETWORKS=$($COMPOSE_CMD -f "${COMPOSE_FILE}" config --networks 2>/dev/null | wc -l)
57
+ if [ "$NETWORKS" -gt 0 ]; then
58
+ echo " ✓ Networks defined: ${NETWORKS}"
59
+ fi
60
+
61
+ # If compose stack is running, check health
62
+ if $COMPOSE_CMD -f "${COMPOSE_FILE}" ps | grep -q "Up"; then
63
+ echo ""
64
+ echo "📊 Running services status:"
65
+ $COMPOSE_CMD -f "${COMPOSE_FILE}" ps
66
+
67
+ # Check logs for errors (last 50 lines)
68
+ echo ""
69
+ echo "📋 Recent logs (last 50 lines):"
70
+ $COMPOSE_CMD -f "${COMPOSE_FILE}" logs --tail=50
71
+ fi
72
+
73
+ echo ""
74
+ echo "✅ Docker Compose validation complete"
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env bash
2
+ # GitHub Actions workflow validation
3
+ # Usage: ./github-workflow-validate.sh [workflow-file]
4
+
5
+ set -euo pipefail
6
+
7
+ WORKFLOW_FILE="${1:-.github/workflows/*.yml}"
8
+
9
+ echo "🔍 Validating GitHub Actions workflows..."
10
+
11
+ # Check GitHub CLI is installed
12
+ if ! command -v gh &> /dev/null; then
13
+ echo "❌ GitHub CLI not found. Please install it first."
14
+ echo " Visit: https://cli.github.com/"
15
+ exit 1
16
+ fi
17
+
18
+ # Check if logged in
19
+ if ! gh auth status &> /dev/null; then
20
+ echo "❌ Not logged into GitHub CLI. Please run: gh auth login"
21
+ exit 1
22
+ fi
23
+
24
+ # Validate workflow syntax
25
+ echo "📋 Checking workflow syntax..."
26
+ for workflow in .github/workflows/*.yml .github/workflows/*.yaml 2>/dev/null; do
27
+ if [ -f "$workflow" ]; then
28
+ echo " ✓ Validating: $workflow"
29
+ # Check YAML syntax
30
+ if command -v yamllint &> /dev/null; then
31
+ yamllint "$workflow" || echo " ⚠️ YAML lint warnings found"
32
+ fi
33
+
34
+ # Validate with GitHub Actions
35
+ if gh workflow view "$(basename "$workflow")" &> /dev/null; then
36
+ echo " ✓ Workflow exists on GitHub"
37
+ else
38
+ echo " ⚠️ Workflow not found on GitHub (may not be pushed yet)"
39
+ fi
40
+ fi
41
+ done
42
+
43
+ # List all workflows
44
+ echo ""
45
+ echo "📊 Available workflows:"
46
+ gh workflow list
47
+
48
+ echo "✅ Workflow validation complete"