claude-autopm 2.7.0 → 2.8.2

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 (281) hide show
  1. package/README.md +307 -56
  2. package/autopm/.claude/.env +158 -0
  3. package/autopm/.claude/settings.local.json +9 -0
  4. package/bin/autopm.js +11 -2
  5. package/bin/commands/epic.js +23 -3
  6. package/bin/commands/plugin.js +395 -0
  7. package/bin/commands/team.js +184 -10
  8. package/install/install.js +223 -4
  9. package/lib/cli/commands/issue.js +360 -20
  10. package/lib/plugins/PluginManager.js +1328 -0
  11. package/lib/plugins/PluginManager.old.js +400 -0
  12. package/lib/providers/AzureDevOpsProvider.js +575 -0
  13. package/lib/providers/GitHubProvider.js +475 -0
  14. package/lib/services/EpicService.js +1092 -3
  15. package/lib/services/IssueService.js +991 -0
  16. package/package.json +9 -1
  17. package/scripts/publish-plugins.sh +166 -0
  18. package/autopm/.claude/agents/cloud/README.md +0 -55
  19. package/autopm/.claude/agents/cloud/aws-cloud-architect.md +0 -521
  20. package/autopm/.claude/agents/cloud/azure-cloud-architect.md +0 -436
  21. package/autopm/.claude/agents/cloud/gcp-cloud-architect.md +0 -385
  22. package/autopm/.claude/agents/cloud/gcp-cloud-functions-engineer.md +0 -306
  23. package/autopm/.claude/agents/cloud/gemini-api-expert.md +0 -880
  24. package/autopm/.claude/agents/cloud/kubernetes-orchestrator.md +0 -566
  25. package/autopm/.claude/agents/cloud/openai-python-expert.md +0 -1087
  26. package/autopm/.claude/agents/cloud/terraform-infrastructure-expert.md +0 -454
  27. package/autopm/.claude/agents/core/agent-manager.md +0 -296
  28. package/autopm/.claude/agents/core/code-analyzer.md +0 -131
  29. package/autopm/.claude/agents/core/file-analyzer.md +0 -162
  30. package/autopm/.claude/agents/core/test-runner.md +0 -200
  31. package/autopm/.claude/agents/data/airflow-orchestration-expert.md +0 -52
  32. package/autopm/.claude/agents/data/kedro-pipeline-expert.md +0 -50
  33. package/autopm/.claude/agents/data/langgraph-workflow-expert.md +0 -520
  34. package/autopm/.claude/agents/databases/README.md +0 -50
  35. package/autopm/.claude/agents/databases/bigquery-expert.md +0 -392
  36. package/autopm/.claude/agents/databases/cosmosdb-expert.md +0 -368
  37. package/autopm/.claude/agents/databases/mongodb-expert.md +0 -398
  38. package/autopm/.claude/agents/databases/postgresql-expert.md +0 -321
  39. package/autopm/.claude/agents/databases/redis-expert.md +0 -52
  40. package/autopm/.claude/agents/devops/README.md +0 -52
  41. package/autopm/.claude/agents/devops/azure-devops-specialist.md +0 -308
  42. package/autopm/.claude/agents/devops/docker-containerization-expert.md +0 -298
  43. package/autopm/.claude/agents/devops/github-operations-specialist.md +0 -335
  44. package/autopm/.claude/agents/devops/mcp-context-manager.md +0 -319
  45. package/autopm/.claude/agents/devops/observability-engineer.md +0 -574
  46. package/autopm/.claude/agents/devops/ssh-operations-expert.md +0 -1093
  47. package/autopm/.claude/agents/devops/traefik-proxy-expert.md +0 -444
  48. package/autopm/.claude/agents/frameworks/README.md +0 -64
  49. package/autopm/.claude/agents/frameworks/e2e-test-engineer.md +0 -360
  50. package/autopm/.claude/agents/frameworks/nats-messaging-expert.md +0 -254
  51. package/autopm/.claude/agents/frameworks/react-frontend-engineer.md +0 -217
  52. package/autopm/.claude/agents/frameworks/react-ui-expert.md +0 -226
  53. package/autopm/.claude/agents/frameworks/tailwindcss-expert.md +0 -770
  54. package/autopm/.claude/agents/frameworks/ux-design-expert.md +0 -244
  55. package/autopm/.claude/agents/integration/message-queue-engineer.md +0 -794
  56. package/autopm/.claude/agents/languages/README.md +0 -50
  57. package/autopm/.claude/agents/languages/bash-scripting-expert.md +0 -541
  58. package/autopm/.claude/agents/languages/javascript-frontend-engineer.md +0 -197
  59. package/autopm/.claude/agents/languages/nodejs-backend-engineer.md +0 -226
  60. package/autopm/.claude/agents/languages/python-backend-engineer.md +0 -214
  61. package/autopm/.claude/agents/languages/python-backend-expert.md +0 -289
  62. package/autopm/.claude/agents/testing/frontend-testing-engineer.md +0 -395
  63. package/autopm/.claude/commands/ai/langgraph-workflow.md +0 -65
  64. package/autopm/.claude/commands/ai/openai-chat.md +0 -65
  65. package/autopm/.claude/commands/azure/COMMANDS.md +0 -107
  66. package/autopm/.claude/commands/azure/COMMAND_MAPPING.md +0 -252
  67. package/autopm/.claude/commands/azure/INTEGRATION_FIX.md +0 -103
  68. package/autopm/.claude/commands/azure/README.md +0 -246
  69. package/autopm/.claude/commands/azure/active-work.md +0 -198
  70. package/autopm/.claude/commands/azure/aliases.md +0 -143
  71. package/autopm/.claude/commands/azure/blocked-items.md +0 -287
  72. package/autopm/.claude/commands/azure/clean.md +0 -93
  73. package/autopm/.claude/commands/azure/docs-query.md +0 -48
  74. package/autopm/.claude/commands/azure/feature-decompose.md +0 -380
  75. package/autopm/.claude/commands/azure/feature-list.md +0 -61
  76. package/autopm/.claude/commands/azure/feature-new.md +0 -115
  77. package/autopm/.claude/commands/azure/feature-show.md +0 -205
  78. package/autopm/.claude/commands/azure/feature-start.md +0 -130
  79. package/autopm/.claude/commands/azure/fix-integration-example.md +0 -93
  80. package/autopm/.claude/commands/azure/help.md +0 -150
  81. package/autopm/.claude/commands/azure/import-us.md +0 -269
  82. package/autopm/.claude/commands/azure/init.md +0 -211
  83. package/autopm/.claude/commands/azure/next-task.md +0 -262
  84. package/autopm/.claude/commands/azure/search.md +0 -160
  85. package/autopm/.claude/commands/azure/sprint-status.md +0 -235
  86. package/autopm/.claude/commands/azure/standup.md +0 -260
  87. package/autopm/.claude/commands/azure/sync-all.md +0 -99
  88. package/autopm/.claude/commands/azure/task-analyze.md +0 -186
  89. package/autopm/.claude/commands/azure/task-close.md +0 -329
  90. package/autopm/.claude/commands/azure/task-edit.md +0 -145
  91. package/autopm/.claude/commands/azure/task-list.md +0 -263
  92. package/autopm/.claude/commands/azure/task-new.md +0 -84
  93. package/autopm/.claude/commands/azure/task-reopen.md +0 -79
  94. package/autopm/.claude/commands/azure/task-show.md +0 -126
  95. package/autopm/.claude/commands/azure/task-start.md +0 -301
  96. package/autopm/.claude/commands/azure/task-status.md +0 -65
  97. package/autopm/.claude/commands/azure/task-sync.md +0 -67
  98. package/autopm/.claude/commands/azure/us-edit.md +0 -164
  99. package/autopm/.claude/commands/azure/us-list.md +0 -202
  100. package/autopm/.claude/commands/azure/us-new.md +0 -265
  101. package/autopm/.claude/commands/azure/us-parse.md +0 -253
  102. package/autopm/.claude/commands/azure/us-show.md +0 -188
  103. package/autopm/.claude/commands/azure/us-status.md +0 -320
  104. package/autopm/.claude/commands/azure/validate.md +0 -86
  105. package/autopm/.claude/commands/azure/work-item-sync.md +0 -47
  106. package/autopm/.claude/commands/cloud/infra-deploy.md +0 -38
  107. package/autopm/.claude/commands/github/workflow-create.md +0 -42
  108. package/autopm/.claude/commands/infrastructure/ssh-security.md +0 -65
  109. package/autopm/.claude/commands/infrastructure/traefik-setup.md +0 -65
  110. package/autopm/.claude/commands/kubernetes/deploy.md +0 -37
  111. package/autopm/.claude/commands/playwright/test-scaffold.md +0 -38
  112. package/autopm/.claude/commands/pm/blocked.md +0 -28
  113. package/autopm/.claude/commands/pm/clean.md +0 -119
  114. package/autopm/.claude/commands/pm/context-create.md +0 -136
  115. package/autopm/.claude/commands/pm/context-prime.md +0 -170
  116. package/autopm/.claude/commands/pm/context-update.md +0 -292
  117. package/autopm/.claude/commands/pm/context.md +0 -28
  118. package/autopm/.claude/commands/pm/epic-close.md +0 -86
  119. package/autopm/.claude/commands/pm/epic-decompose.md +0 -370
  120. package/autopm/.claude/commands/pm/epic-edit.md +0 -83
  121. package/autopm/.claude/commands/pm/epic-list.md +0 -30
  122. package/autopm/.claude/commands/pm/epic-merge.md +0 -222
  123. package/autopm/.claude/commands/pm/epic-oneshot.md +0 -119
  124. package/autopm/.claude/commands/pm/epic-refresh.md +0 -119
  125. package/autopm/.claude/commands/pm/epic-show.md +0 -28
  126. package/autopm/.claude/commands/pm/epic-split.md +0 -120
  127. package/autopm/.claude/commands/pm/epic-start.md +0 -195
  128. package/autopm/.claude/commands/pm/epic-status.md +0 -28
  129. package/autopm/.claude/commands/pm/epic-sync-modular.md +0 -338
  130. package/autopm/.claude/commands/pm/epic-sync-original.md +0 -473
  131. package/autopm/.claude/commands/pm/epic-sync.md +0 -486
  132. package/autopm/.claude/commands/pm/help.md +0 -28
  133. package/autopm/.claude/commands/pm/import.md +0 -115
  134. package/autopm/.claude/commands/pm/in-progress.md +0 -28
  135. package/autopm/.claude/commands/pm/init.md +0 -28
  136. package/autopm/.claude/commands/pm/issue-analyze.md +0 -202
  137. package/autopm/.claude/commands/pm/issue-close.md +0 -119
  138. package/autopm/.claude/commands/pm/issue-edit.md +0 -93
  139. package/autopm/.claude/commands/pm/issue-reopen.md +0 -87
  140. package/autopm/.claude/commands/pm/issue-show.md +0 -41
  141. package/autopm/.claude/commands/pm/issue-start.md +0 -234
  142. package/autopm/.claude/commands/pm/issue-status.md +0 -95
  143. package/autopm/.claude/commands/pm/issue-sync.md +0 -411
  144. package/autopm/.claude/commands/pm/next.md +0 -28
  145. package/autopm/.claude/commands/pm/prd-edit.md +0 -82
  146. package/autopm/.claude/commands/pm/prd-list.md +0 -28
  147. package/autopm/.claude/commands/pm/prd-new.md +0 -55
  148. package/autopm/.claude/commands/pm/prd-parse.md +0 -42
  149. package/autopm/.claude/commands/pm/prd-status.md +0 -28
  150. package/autopm/.claude/commands/pm/search.md +0 -28
  151. package/autopm/.claude/commands/pm/standup.md +0 -28
  152. package/autopm/.claude/commands/pm/status.md +0 -28
  153. package/autopm/.claude/commands/pm/sync.md +0 -99
  154. package/autopm/.claude/commands/pm/test-reference-update.md +0 -151
  155. package/autopm/.claude/commands/pm/validate.md +0 -28
  156. package/autopm/.claude/commands/pm/what-next.md +0 -28
  157. package/autopm/.claude/commands/python/api-scaffold.md +0 -50
  158. package/autopm/.claude/commands/python/docs-query.md +0 -48
  159. package/autopm/.claude/commands/react/app-scaffold.md +0 -50
  160. package/autopm/.claude/commands/testing/prime.md +0 -314
  161. package/autopm/.claude/commands/testing/run.md +0 -125
  162. package/autopm/.claude/commands/ui/bootstrap-scaffold.md +0 -65
  163. package/autopm/.claude/commands/ui/tailwind-system.md +0 -64
  164. package/autopm/.claude/rules/ai-integration-patterns.md +0 -219
  165. package/autopm/.claude/rules/ci-cd-kubernetes-strategy.md +0 -25
  166. package/autopm/.claude/rules/database-management-strategy.md +0 -17
  167. package/autopm/.claude/rules/database-pipeline.md +0 -94
  168. package/autopm/.claude/rules/devops-troubleshooting-playbook.md +0 -450
  169. package/autopm/.claude/rules/docker-first-development.md +0 -404
  170. package/autopm/.claude/rules/infrastructure-pipeline.md +0 -128
  171. package/autopm/.claude/rules/performance-guidelines.md +0 -403
  172. package/autopm/.claude/rules/ui-development-standards.md +0 -281
  173. package/autopm/.claude/rules/ui-framework-rules.md +0 -151
  174. package/autopm/.claude/rules/ux-design-rules.md +0 -209
  175. package/autopm/.claude/rules/visual-testing.md +0 -223
  176. package/autopm/.claude/scripts/azure/README.md +0 -192
  177. package/autopm/.claude/scripts/azure/active-work.js +0 -524
  178. package/autopm/.claude/scripts/azure/active-work.sh +0 -20
  179. package/autopm/.claude/scripts/azure/blocked.js +0 -520
  180. package/autopm/.claude/scripts/azure/blocked.sh +0 -20
  181. package/autopm/.claude/scripts/azure/daily.js +0 -533
  182. package/autopm/.claude/scripts/azure/daily.sh +0 -20
  183. package/autopm/.claude/scripts/azure/dashboard.js +0 -970
  184. package/autopm/.claude/scripts/azure/dashboard.sh +0 -20
  185. package/autopm/.claude/scripts/azure/feature-list.js +0 -254
  186. package/autopm/.claude/scripts/azure/feature-list.sh +0 -20
  187. package/autopm/.claude/scripts/azure/feature-show.js +0 -7
  188. package/autopm/.claude/scripts/azure/feature-show.sh +0 -20
  189. package/autopm/.claude/scripts/azure/feature-status.js +0 -604
  190. package/autopm/.claude/scripts/azure/feature-status.sh +0 -20
  191. package/autopm/.claude/scripts/azure/help.js +0 -342
  192. package/autopm/.claude/scripts/azure/help.sh +0 -20
  193. package/autopm/.claude/scripts/azure/next-task.js +0 -508
  194. package/autopm/.claude/scripts/azure/next-task.sh +0 -20
  195. package/autopm/.claude/scripts/azure/search.js +0 -469
  196. package/autopm/.claude/scripts/azure/search.sh +0 -20
  197. package/autopm/.claude/scripts/azure/setup.js +0 -745
  198. package/autopm/.claude/scripts/azure/setup.sh +0 -20
  199. package/autopm/.claude/scripts/azure/sprint-report.js +0 -1012
  200. package/autopm/.claude/scripts/azure/sprint-report.sh +0 -20
  201. package/autopm/.claude/scripts/azure/sync.js +0 -563
  202. package/autopm/.claude/scripts/azure/sync.sh +0 -20
  203. package/autopm/.claude/scripts/azure/us-list.js +0 -210
  204. package/autopm/.claude/scripts/azure/us-list.sh +0 -20
  205. package/autopm/.claude/scripts/azure/us-status.js +0 -238
  206. package/autopm/.claude/scripts/azure/us-status.sh +0 -20
  207. package/autopm/.claude/scripts/azure/validate.js +0 -626
  208. package/autopm/.claude/scripts/azure/validate.sh +0 -20
  209. package/autopm/.claude/scripts/azure/wrapper-template.sh +0 -20
  210. package/autopm/.claude/scripts/github/dependency-tracker.js +0 -554
  211. package/autopm/.claude/scripts/github/dependency-validator.js +0 -545
  212. package/autopm/.claude/scripts/github/dependency-visualizer.js +0 -477
  213. package/autopm/.claude/scripts/pm/analytics.js +0 -425
  214. package/autopm/.claude/scripts/pm/blocked.js +0 -164
  215. package/autopm/.claude/scripts/pm/blocked.sh +0 -78
  216. package/autopm/.claude/scripts/pm/clean.js +0 -464
  217. package/autopm/.claude/scripts/pm/context-create.js +0 -216
  218. package/autopm/.claude/scripts/pm/context-prime.js +0 -335
  219. package/autopm/.claude/scripts/pm/context-update.js +0 -344
  220. package/autopm/.claude/scripts/pm/context.js +0 -338
  221. package/autopm/.claude/scripts/pm/epic-close.js +0 -347
  222. package/autopm/.claude/scripts/pm/epic-edit.js +0 -382
  223. package/autopm/.claude/scripts/pm/epic-list.js +0 -273
  224. package/autopm/.claude/scripts/pm/epic-list.sh +0 -109
  225. package/autopm/.claude/scripts/pm/epic-show.js +0 -291
  226. package/autopm/.claude/scripts/pm/epic-show.sh +0 -105
  227. package/autopm/.claude/scripts/pm/epic-split.js +0 -522
  228. package/autopm/.claude/scripts/pm/epic-start/epic-start.js +0 -183
  229. package/autopm/.claude/scripts/pm/epic-start/epic-start.sh +0 -94
  230. package/autopm/.claude/scripts/pm/epic-status.js +0 -291
  231. package/autopm/.claude/scripts/pm/epic-status.sh +0 -104
  232. package/autopm/.claude/scripts/pm/epic-sync/README.md +0 -208
  233. package/autopm/.claude/scripts/pm/epic-sync/create-epic-issue.sh +0 -77
  234. package/autopm/.claude/scripts/pm/epic-sync/create-task-issues.sh +0 -86
  235. package/autopm/.claude/scripts/pm/epic-sync/update-epic-file.sh +0 -79
  236. package/autopm/.claude/scripts/pm/epic-sync/update-references.sh +0 -89
  237. package/autopm/.claude/scripts/pm/epic-sync.sh +0 -137
  238. package/autopm/.claude/scripts/pm/help.js +0 -92
  239. package/autopm/.claude/scripts/pm/help.sh +0 -90
  240. package/autopm/.claude/scripts/pm/in-progress.js +0 -178
  241. package/autopm/.claude/scripts/pm/in-progress.sh +0 -93
  242. package/autopm/.claude/scripts/pm/init.js +0 -321
  243. package/autopm/.claude/scripts/pm/init.sh +0 -178
  244. package/autopm/.claude/scripts/pm/issue-close.js +0 -232
  245. package/autopm/.claude/scripts/pm/issue-edit.js +0 -310
  246. package/autopm/.claude/scripts/pm/issue-show.js +0 -272
  247. package/autopm/.claude/scripts/pm/issue-start.js +0 -181
  248. package/autopm/.claude/scripts/pm/issue-sync/format-comment.sh +0 -468
  249. package/autopm/.claude/scripts/pm/issue-sync/gather-updates.sh +0 -460
  250. package/autopm/.claude/scripts/pm/issue-sync/post-comment.sh +0 -330
  251. package/autopm/.claude/scripts/pm/issue-sync/preflight-validation.sh +0 -348
  252. package/autopm/.claude/scripts/pm/issue-sync/update-frontmatter.sh +0 -387
  253. package/autopm/.claude/scripts/pm/lib/README.md +0 -85
  254. package/autopm/.claude/scripts/pm/lib/epic-discovery.js +0 -119
  255. package/autopm/.claude/scripts/pm/lib/logger.js +0 -78
  256. package/autopm/.claude/scripts/pm/next.js +0 -189
  257. package/autopm/.claude/scripts/pm/next.sh +0 -72
  258. package/autopm/.claude/scripts/pm/optimize.js +0 -407
  259. package/autopm/.claude/scripts/pm/pr-create.js +0 -337
  260. package/autopm/.claude/scripts/pm/pr-list.js +0 -257
  261. package/autopm/.claude/scripts/pm/prd-list.js +0 -242
  262. package/autopm/.claude/scripts/pm/prd-list.sh +0 -103
  263. package/autopm/.claude/scripts/pm/prd-new.js +0 -684
  264. package/autopm/.claude/scripts/pm/prd-parse.js +0 -547
  265. package/autopm/.claude/scripts/pm/prd-status.js +0 -152
  266. package/autopm/.claude/scripts/pm/prd-status.sh +0 -63
  267. package/autopm/.claude/scripts/pm/release.js +0 -460
  268. package/autopm/.claude/scripts/pm/search.js +0 -192
  269. package/autopm/.claude/scripts/pm/search.sh +0 -89
  270. package/autopm/.claude/scripts/pm/standup.js +0 -362
  271. package/autopm/.claude/scripts/pm/standup.sh +0 -95
  272. package/autopm/.claude/scripts/pm/status.js +0 -148
  273. package/autopm/.claude/scripts/pm/status.sh +0 -59
  274. package/autopm/.claude/scripts/pm/sync-batch.js +0 -337
  275. package/autopm/.claude/scripts/pm/sync.js +0 -343
  276. package/autopm/.claude/scripts/pm/template-list.js +0 -141
  277. package/autopm/.claude/scripts/pm/template-new.js +0 -366
  278. package/autopm/.claude/scripts/pm/validate.js +0 -274
  279. package/autopm/.claude/scripts/pm/validate.sh +0 -106
  280. package/autopm/.claude/scripts/pm/what-next.js +0 -660
  281. package/bin/node/azure-feature-show.js +0 -7
@@ -1,404 +0,0 @@
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
- ```
@@ -1,128 +0,0 @@
1
- # Infrastructure Operations Pipeline
2
-
3
- > **CRITICAL**: Infrastructure changes require strict validation and rollback capabilities.
4
-
5
- ## 1. TERRAFORM DEPLOYMENT PIPELINE
6
-
7
- **Trigger**: Infrastructure as Code changes
8
- **Sequence**:
9
-
10
- ```
11
- 1. terraform-infrastructure-expert → Validate configuration
12
- 2. Run terraform plan and review changes
13
- 3. Write infrastructure tests (Terratest)
14
- 4. Apply to staging environment first
15
- 5. test-runner → Verify infrastructure health
16
- 6. Document changes in CHANGELOG
17
- 7. Apply to production with approval
18
- ```
19
-
20
- ## 2. CONTAINER BUILD PIPELINE
21
-
22
- **Trigger**: Dockerfile or container changes
23
- **Sequence**:
24
-
25
- ```
26
- 1. docker-containerization-expert → Optimize Dockerfile
27
- 2. Security scan with Trivy/Snyk
28
- 3. Build multi-stage image
29
- 4. test-runner → Test container functionality
30
- 5. Push to registry with proper tags
31
- 6. Never push unscanned images
32
- ```
33
-
34
- ## 3. KUBERNETES DEPLOYMENT PIPELINE
35
-
36
- **Trigger**: K8s manifest or Helm chart changes
37
- **Sequence**:
38
-
39
- ```
40
- 1. kubernetes-orchestrator → Validate manifests
41
- 2. Dry-run deployment
42
- 3. Apply to dev/staging cluster
43
- 4. test-runner → Verify pod health
44
- 5. Monitor resource usage
45
- 6. Rollout to production with canary
46
- ```
47
-
48
- ## 4. CLOUD FUNCTION PIPELINE
49
-
50
- **Trigger**: Serverless function deployment
51
- **Sequence**:
52
-
53
- ```
54
- 1. gcp-cloud-functions-engineer → Optimize function
55
- 2. Set memory/timeout limits
56
- 3. Configure triggers and IAM
57
- 4. test-runner → Integration tests
58
- 5. Deploy with gradual rollout
59
- 6. Monitor cold starts and errors
60
- ```
61
-
62
- ## 5. CI/CD PIPELINE SETUP
63
-
64
- **Trigger**: GitHub Actions or Azure DevOps setup
65
- **Sequence**:
66
-
67
- ```
68
- 1. github-operations-specialist → Design pipeline
69
- 2. Implement security scanning
70
- 3. Add quality gates
71
- 4. test-runner → Test pipeline stages
72
- 5. Document pipeline flow
73
- 6. Set up notifications
74
- ```
75
-
76
- ## 6. MESSAGING SYSTEM PIPELINE
77
-
78
- **Trigger**: NATS implementation
79
- **Sequence**:
80
-
81
- ```
82
- 1. nats-messaging-expert → Design topology
83
- 2. Configure JetStream persistence
84
- 3. Implement pub/sub patterns
85
- 4. test-runner → Test message delivery
86
- 5. Monitor throughput and latency
87
- 6. Document message contracts
88
- ```
89
-
90
- ## 7. DATA PIPELINE ORCHESTRATION
91
-
92
- **Trigger**: Airflow/Kedro workflow setup
93
- **Sequence**:
94
-
95
- ```
96
- 1. airflow-orchestration-expert/kedro-pipeline-expert → Design DAG/pipeline
97
- 2. Implement idempotent tasks
98
- 3. Add monitoring and alerts
99
- 4. test-runner → Test pipeline execution
100
- 5. Verify data quality checks
101
- 6. Document dependencies
102
- ```
103
-
104
- ## Pipeline Requirements
105
-
106
- ### NEVER ALLOWED
107
-
108
- - ❌ Deploying without staging validation
109
- - ❌ Pushing unscanned container images
110
- - ❌ Applying Terraform without plan review
111
- - ❌ Skipping rollback procedures
112
- - ❌ Ignoring security vulnerabilities
113
-
114
- ### ALWAYS REQUIRED
115
-
116
- - ✅ Infrastructure as Code for everything
117
- - ✅ Security scanning at every stage
118
- - ✅ Staging environment validation
119
- - ✅ Automated rollback capability
120
- - ✅ Comprehensive monitoring
121
-
122
- ## Success Metrics
123
-
124
- - Zero unplanned downtime
125
- - All images pass security scan
126
- - Terraform drift detection active
127
- - Rollback time < 5 minutes
128
- - 100% infrastructure test coverage