claude-autopm 2.8.1 → 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.
- package/README.md +116 -8
- package/bin/autopm.js +2 -0
- package/bin/commands/plugin.js +395 -0
- package/bin/commands/team.js +184 -10
- package/install/install.js +223 -4
- package/lib/plugins/PluginManager.js +1328 -0
- package/lib/plugins/PluginManager.old.js +400 -0
- package/package.json +4 -1
- package/scripts/publish-plugins.sh +166 -0
- package/autopm/.claude/agents/cloud/README.md +0 -55
- package/autopm/.claude/agents/cloud/aws-cloud-architect.md +0 -521
- package/autopm/.claude/agents/cloud/azure-cloud-architect.md +0 -436
- package/autopm/.claude/agents/cloud/gcp-cloud-architect.md +0 -385
- package/autopm/.claude/agents/cloud/gcp-cloud-functions-engineer.md +0 -306
- package/autopm/.claude/agents/cloud/gemini-api-expert.md +0 -880
- package/autopm/.claude/agents/cloud/kubernetes-orchestrator.md +0 -566
- package/autopm/.claude/agents/cloud/openai-python-expert.md +0 -1087
- package/autopm/.claude/agents/cloud/terraform-infrastructure-expert.md +0 -454
- package/autopm/.claude/agents/core/agent-manager.md +0 -296
- package/autopm/.claude/agents/core/code-analyzer.md +0 -131
- package/autopm/.claude/agents/core/file-analyzer.md +0 -162
- package/autopm/.claude/agents/core/test-runner.md +0 -200
- package/autopm/.claude/agents/data/airflow-orchestration-expert.md +0 -52
- package/autopm/.claude/agents/data/kedro-pipeline-expert.md +0 -50
- package/autopm/.claude/agents/data/langgraph-workflow-expert.md +0 -520
- package/autopm/.claude/agents/databases/README.md +0 -50
- package/autopm/.claude/agents/databases/bigquery-expert.md +0 -392
- package/autopm/.claude/agents/databases/cosmosdb-expert.md +0 -368
- package/autopm/.claude/agents/databases/mongodb-expert.md +0 -398
- package/autopm/.claude/agents/databases/postgresql-expert.md +0 -321
- package/autopm/.claude/agents/databases/redis-expert.md +0 -52
- package/autopm/.claude/agents/devops/README.md +0 -52
- package/autopm/.claude/agents/devops/azure-devops-specialist.md +0 -308
- package/autopm/.claude/agents/devops/docker-containerization-expert.md +0 -298
- package/autopm/.claude/agents/devops/github-operations-specialist.md +0 -335
- package/autopm/.claude/agents/devops/mcp-context-manager.md +0 -319
- package/autopm/.claude/agents/devops/observability-engineer.md +0 -574
- package/autopm/.claude/agents/devops/ssh-operations-expert.md +0 -1093
- package/autopm/.claude/agents/devops/traefik-proxy-expert.md +0 -444
- package/autopm/.claude/agents/frameworks/README.md +0 -64
- package/autopm/.claude/agents/frameworks/e2e-test-engineer.md +0 -360
- package/autopm/.claude/agents/frameworks/nats-messaging-expert.md +0 -254
- package/autopm/.claude/agents/frameworks/react-frontend-engineer.md +0 -217
- package/autopm/.claude/agents/frameworks/react-ui-expert.md +0 -226
- package/autopm/.claude/agents/frameworks/tailwindcss-expert.md +0 -770
- package/autopm/.claude/agents/frameworks/ux-design-expert.md +0 -244
- package/autopm/.claude/agents/integration/message-queue-engineer.md +0 -794
- package/autopm/.claude/agents/languages/README.md +0 -50
- package/autopm/.claude/agents/languages/bash-scripting-expert.md +0 -541
- package/autopm/.claude/agents/languages/javascript-frontend-engineer.md +0 -197
- package/autopm/.claude/agents/languages/nodejs-backend-engineer.md +0 -226
- package/autopm/.claude/agents/languages/python-backend-engineer.md +0 -214
- package/autopm/.claude/agents/languages/python-backend-expert.md +0 -289
- package/autopm/.claude/agents/testing/frontend-testing-engineer.md +0 -395
- package/autopm/.claude/commands/ai/langgraph-workflow.md +0 -65
- package/autopm/.claude/commands/ai/openai-chat.md +0 -65
- package/autopm/.claude/commands/azure/COMMANDS.md +0 -107
- package/autopm/.claude/commands/azure/COMMAND_MAPPING.md +0 -252
- package/autopm/.claude/commands/azure/INTEGRATION_FIX.md +0 -103
- package/autopm/.claude/commands/azure/README.md +0 -246
- package/autopm/.claude/commands/azure/active-work.md +0 -198
- package/autopm/.claude/commands/azure/aliases.md +0 -143
- package/autopm/.claude/commands/azure/blocked-items.md +0 -287
- package/autopm/.claude/commands/azure/clean.md +0 -93
- package/autopm/.claude/commands/azure/docs-query.md +0 -48
- package/autopm/.claude/commands/azure/feature-decompose.md +0 -380
- package/autopm/.claude/commands/azure/feature-list.md +0 -61
- package/autopm/.claude/commands/azure/feature-new.md +0 -115
- package/autopm/.claude/commands/azure/feature-show.md +0 -205
- package/autopm/.claude/commands/azure/feature-start.md +0 -130
- package/autopm/.claude/commands/azure/fix-integration-example.md +0 -93
- package/autopm/.claude/commands/azure/help.md +0 -150
- package/autopm/.claude/commands/azure/import-us.md +0 -269
- package/autopm/.claude/commands/azure/init.md +0 -211
- package/autopm/.claude/commands/azure/next-task.md +0 -262
- package/autopm/.claude/commands/azure/search.md +0 -160
- package/autopm/.claude/commands/azure/sprint-status.md +0 -235
- package/autopm/.claude/commands/azure/standup.md +0 -260
- package/autopm/.claude/commands/azure/sync-all.md +0 -99
- package/autopm/.claude/commands/azure/task-analyze.md +0 -186
- package/autopm/.claude/commands/azure/task-close.md +0 -329
- package/autopm/.claude/commands/azure/task-edit.md +0 -145
- package/autopm/.claude/commands/azure/task-list.md +0 -263
- package/autopm/.claude/commands/azure/task-new.md +0 -84
- package/autopm/.claude/commands/azure/task-reopen.md +0 -79
- package/autopm/.claude/commands/azure/task-show.md +0 -126
- package/autopm/.claude/commands/azure/task-start.md +0 -301
- package/autopm/.claude/commands/azure/task-status.md +0 -65
- package/autopm/.claude/commands/azure/task-sync.md +0 -67
- package/autopm/.claude/commands/azure/us-edit.md +0 -164
- package/autopm/.claude/commands/azure/us-list.md +0 -202
- package/autopm/.claude/commands/azure/us-new.md +0 -265
- package/autopm/.claude/commands/azure/us-parse.md +0 -253
- package/autopm/.claude/commands/azure/us-show.md +0 -188
- package/autopm/.claude/commands/azure/us-status.md +0 -320
- package/autopm/.claude/commands/azure/validate.md +0 -86
- package/autopm/.claude/commands/azure/work-item-sync.md +0 -47
- package/autopm/.claude/commands/cloud/infra-deploy.md +0 -38
- package/autopm/.claude/commands/github/workflow-create.md +0 -42
- package/autopm/.claude/commands/infrastructure/ssh-security.md +0 -65
- package/autopm/.claude/commands/infrastructure/traefik-setup.md +0 -65
- package/autopm/.claude/commands/kubernetes/deploy.md +0 -37
- package/autopm/.claude/commands/playwright/test-scaffold.md +0 -38
- package/autopm/.claude/commands/pm/blocked.md +0 -28
- package/autopm/.claude/commands/pm/clean.md +0 -119
- package/autopm/.claude/commands/pm/context-create.md +0 -136
- package/autopm/.claude/commands/pm/context-prime.md +0 -170
- package/autopm/.claude/commands/pm/context-update.md +0 -292
- package/autopm/.claude/commands/pm/context.md +0 -28
- package/autopm/.claude/commands/pm/epic-close.md +0 -86
- package/autopm/.claude/commands/pm/epic-decompose.md +0 -370
- package/autopm/.claude/commands/pm/epic-edit.md +0 -83
- package/autopm/.claude/commands/pm/epic-list.md +0 -30
- package/autopm/.claude/commands/pm/epic-merge.md +0 -222
- package/autopm/.claude/commands/pm/epic-oneshot.md +0 -119
- package/autopm/.claude/commands/pm/epic-refresh.md +0 -119
- package/autopm/.claude/commands/pm/epic-show.md +0 -28
- package/autopm/.claude/commands/pm/epic-split.md +0 -120
- package/autopm/.claude/commands/pm/epic-start.md +0 -195
- package/autopm/.claude/commands/pm/epic-status.md +0 -28
- package/autopm/.claude/commands/pm/epic-sync-modular.md +0 -338
- package/autopm/.claude/commands/pm/epic-sync-original.md +0 -473
- package/autopm/.claude/commands/pm/epic-sync.md +0 -486
- package/autopm/.claude/commands/pm/help.md +0 -28
- package/autopm/.claude/commands/pm/import.md +0 -115
- package/autopm/.claude/commands/pm/in-progress.md +0 -28
- package/autopm/.claude/commands/pm/init.md +0 -28
- package/autopm/.claude/commands/pm/issue-analyze.md +0 -202
- package/autopm/.claude/commands/pm/issue-close.md +0 -119
- package/autopm/.claude/commands/pm/issue-edit.md +0 -93
- package/autopm/.claude/commands/pm/issue-reopen.md +0 -87
- package/autopm/.claude/commands/pm/issue-show.md +0 -41
- package/autopm/.claude/commands/pm/issue-start.md +0 -234
- package/autopm/.claude/commands/pm/issue-status.md +0 -95
- package/autopm/.claude/commands/pm/issue-sync.md +0 -411
- package/autopm/.claude/commands/pm/next.md +0 -28
- package/autopm/.claude/commands/pm/prd-edit.md +0 -82
- package/autopm/.claude/commands/pm/prd-list.md +0 -28
- package/autopm/.claude/commands/pm/prd-new.md +0 -55
- package/autopm/.claude/commands/pm/prd-parse.md +0 -42
- package/autopm/.claude/commands/pm/prd-status.md +0 -28
- package/autopm/.claude/commands/pm/search.md +0 -28
- package/autopm/.claude/commands/pm/standup.md +0 -28
- package/autopm/.claude/commands/pm/status.md +0 -28
- package/autopm/.claude/commands/pm/sync.md +0 -99
- package/autopm/.claude/commands/pm/test-reference-update.md +0 -151
- package/autopm/.claude/commands/pm/validate.md +0 -28
- package/autopm/.claude/commands/pm/what-next.md +0 -28
- package/autopm/.claude/commands/python/api-scaffold.md +0 -50
- package/autopm/.claude/commands/python/docs-query.md +0 -48
- package/autopm/.claude/commands/react/app-scaffold.md +0 -50
- package/autopm/.claude/commands/testing/prime.md +0 -314
- package/autopm/.claude/commands/testing/run.md +0 -125
- package/autopm/.claude/commands/ui/bootstrap-scaffold.md +0 -65
- package/autopm/.claude/commands/ui/tailwind-system.md +0 -64
- package/autopm/.claude/rules/ai-integration-patterns.md +0 -219
- package/autopm/.claude/rules/ci-cd-kubernetes-strategy.md +0 -25
- package/autopm/.claude/rules/database-management-strategy.md +0 -17
- package/autopm/.claude/rules/database-pipeline.md +0 -94
- package/autopm/.claude/rules/devops-troubleshooting-playbook.md +0 -450
- package/autopm/.claude/rules/docker-first-development.md +0 -404
- package/autopm/.claude/rules/infrastructure-pipeline.md +0 -128
- package/autopm/.claude/rules/performance-guidelines.md +0 -403
- package/autopm/.claude/rules/ui-development-standards.md +0 -281
- package/autopm/.claude/rules/ui-framework-rules.md +0 -151
- package/autopm/.claude/rules/ux-design-rules.md +0 -209
- package/autopm/.claude/rules/visual-testing.md +0 -223
- package/autopm/.claude/scripts/azure/README.md +0 -192
- package/autopm/.claude/scripts/azure/active-work.js +0 -524
- package/autopm/.claude/scripts/azure/active-work.sh +0 -20
- package/autopm/.claude/scripts/azure/blocked.js +0 -520
- package/autopm/.claude/scripts/azure/blocked.sh +0 -20
- package/autopm/.claude/scripts/azure/daily.js +0 -533
- package/autopm/.claude/scripts/azure/daily.sh +0 -20
- package/autopm/.claude/scripts/azure/dashboard.js +0 -970
- package/autopm/.claude/scripts/azure/dashboard.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-list.js +0 -254
- package/autopm/.claude/scripts/azure/feature-list.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-show.js +0 -7
- package/autopm/.claude/scripts/azure/feature-show.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-status.js +0 -604
- package/autopm/.claude/scripts/azure/feature-status.sh +0 -20
- package/autopm/.claude/scripts/azure/help.js +0 -342
- package/autopm/.claude/scripts/azure/help.sh +0 -20
- package/autopm/.claude/scripts/azure/next-task.js +0 -508
- package/autopm/.claude/scripts/azure/next-task.sh +0 -20
- package/autopm/.claude/scripts/azure/search.js +0 -469
- package/autopm/.claude/scripts/azure/search.sh +0 -20
- package/autopm/.claude/scripts/azure/setup.js +0 -745
- package/autopm/.claude/scripts/azure/setup.sh +0 -20
- package/autopm/.claude/scripts/azure/sprint-report.js +0 -1012
- package/autopm/.claude/scripts/azure/sprint-report.sh +0 -20
- package/autopm/.claude/scripts/azure/sync.js +0 -563
- package/autopm/.claude/scripts/azure/sync.sh +0 -20
- package/autopm/.claude/scripts/azure/us-list.js +0 -210
- package/autopm/.claude/scripts/azure/us-list.sh +0 -20
- package/autopm/.claude/scripts/azure/us-status.js +0 -238
- package/autopm/.claude/scripts/azure/us-status.sh +0 -20
- package/autopm/.claude/scripts/azure/validate.js +0 -626
- package/autopm/.claude/scripts/azure/validate.sh +0 -20
- package/autopm/.claude/scripts/azure/wrapper-template.sh +0 -20
- package/autopm/.claude/scripts/github/dependency-tracker.js +0 -554
- package/autopm/.claude/scripts/github/dependency-validator.js +0 -545
- package/autopm/.claude/scripts/github/dependency-visualizer.js +0 -477
- package/autopm/.claude/scripts/pm/analytics.js +0 -425
- package/autopm/.claude/scripts/pm/blocked.js +0 -164
- package/autopm/.claude/scripts/pm/blocked.sh +0 -78
- package/autopm/.claude/scripts/pm/clean.js +0 -464
- package/autopm/.claude/scripts/pm/context-create.js +0 -216
- package/autopm/.claude/scripts/pm/context-prime.js +0 -335
- package/autopm/.claude/scripts/pm/context-update.js +0 -344
- package/autopm/.claude/scripts/pm/context.js +0 -338
- package/autopm/.claude/scripts/pm/epic-close.js +0 -347
- package/autopm/.claude/scripts/pm/epic-edit.js +0 -382
- package/autopm/.claude/scripts/pm/epic-list.js +0 -273
- package/autopm/.claude/scripts/pm/epic-list.sh +0 -109
- package/autopm/.claude/scripts/pm/epic-show.js +0 -291
- package/autopm/.claude/scripts/pm/epic-show.sh +0 -105
- package/autopm/.claude/scripts/pm/epic-split.js +0 -522
- package/autopm/.claude/scripts/pm/epic-start/epic-start.js +0 -183
- package/autopm/.claude/scripts/pm/epic-start/epic-start.sh +0 -94
- package/autopm/.claude/scripts/pm/epic-status.js +0 -291
- package/autopm/.claude/scripts/pm/epic-status.sh +0 -104
- package/autopm/.claude/scripts/pm/epic-sync/README.md +0 -208
- package/autopm/.claude/scripts/pm/epic-sync/create-epic-issue.sh +0 -77
- package/autopm/.claude/scripts/pm/epic-sync/create-task-issues.sh +0 -86
- package/autopm/.claude/scripts/pm/epic-sync/update-epic-file.sh +0 -79
- package/autopm/.claude/scripts/pm/epic-sync/update-references.sh +0 -89
- package/autopm/.claude/scripts/pm/epic-sync.sh +0 -137
- package/autopm/.claude/scripts/pm/help.js +0 -92
- package/autopm/.claude/scripts/pm/help.sh +0 -90
- package/autopm/.claude/scripts/pm/in-progress.js +0 -178
- package/autopm/.claude/scripts/pm/in-progress.sh +0 -93
- package/autopm/.claude/scripts/pm/init.js +0 -321
- package/autopm/.claude/scripts/pm/init.sh +0 -178
- package/autopm/.claude/scripts/pm/issue-close.js +0 -232
- package/autopm/.claude/scripts/pm/issue-edit.js +0 -310
- package/autopm/.claude/scripts/pm/issue-show.js +0 -272
- package/autopm/.claude/scripts/pm/issue-start.js +0 -181
- package/autopm/.claude/scripts/pm/issue-sync/format-comment.sh +0 -468
- package/autopm/.claude/scripts/pm/issue-sync/gather-updates.sh +0 -460
- package/autopm/.claude/scripts/pm/issue-sync/post-comment.sh +0 -330
- package/autopm/.claude/scripts/pm/issue-sync/preflight-validation.sh +0 -348
- package/autopm/.claude/scripts/pm/issue-sync/update-frontmatter.sh +0 -387
- package/autopm/.claude/scripts/pm/lib/README.md +0 -85
- package/autopm/.claude/scripts/pm/lib/epic-discovery.js +0 -119
- package/autopm/.claude/scripts/pm/lib/logger.js +0 -78
- package/autopm/.claude/scripts/pm/next.js +0 -189
- package/autopm/.claude/scripts/pm/next.sh +0 -72
- package/autopm/.claude/scripts/pm/optimize.js +0 -407
- package/autopm/.claude/scripts/pm/pr-create.js +0 -337
- package/autopm/.claude/scripts/pm/pr-list.js +0 -257
- package/autopm/.claude/scripts/pm/prd-list.js +0 -242
- package/autopm/.claude/scripts/pm/prd-list.sh +0 -103
- package/autopm/.claude/scripts/pm/prd-new.js +0 -684
- package/autopm/.claude/scripts/pm/prd-parse.js +0 -547
- package/autopm/.claude/scripts/pm/prd-status.js +0 -152
- package/autopm/.claude/scripts/pm/prd-status.sh +0 -63
- package/autopm/.claude/scripts/pm/release.js +0 -460
- package/autopm/.claude/scripts/pm/search.js +0 -192
- package/autopm/.claude/scripts/pm/search.sh +0 -89
- package/autopm/.claude/scripts/pm/standup.js +0 -362
- package/autopm/.claude/scripts/pm/standup.sh +0 -95
- package/autopm/.claude/scripts/pm/status.js +0 -148
- package/autopm/.claude/scripts/pm/status.sh +0 -59
- package/autopm/.claude/scripts/pm/sync-batch.js +0 -337
- package/autopm/.claude/scripts/pm/sync.js +0 -343
- package/autopm/.claude/scripts/pm/template-list.js +0 -141
- package/autopm/.claude/scripts/pm/template-new.js +0 -366
- package/autopm/.claude/scripts/pm/validate.js +0 -274
- package/autopm/.claude/scripts/pm/validate.sh +0 -106
- package/autopm/.claude/scripts/pm/what-next.js +0 -660
- 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
|