tribunal-kit 4.5.1 → 4.6.1

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 (214) hide show
  1. package/.agent/.shared/ui-ux-pro-max/README.md +4 -4
  2. package/.agent/ARCHITECTURE.md +282 -277
  3. package/.agent/agents/accessibility-reviewer.md +187 -187
  4. package/.agent/agents/ai-code-reviewer.md +199 -199
  5. package/.agent/agents/api-architect.md +71 -66
  6. package/.agent/agents/backend-specialist.md +219 -215
  7. package/.agent/agents/cloud-engineer.md +98 -0
  8. package/.agent/agents/code-archaeologist.md +168 -161
  9. package/.agent/agents/database-architect.md +184 -184
  10. package/.agent/agents/db-latency-auditor.md +213 -216
  11. package/.agent/agents/debugger.md +198 -191
  12. package/.agent/agents/dependency-reviewer.md +106 -103
  13. package/.agent/agents/devops-engineer.md +218 -218
  14. package/.agent/agents/documentation-writer.md +209 -201
  15. package/.agent/agents/explorer-agent.md +167 -160
  16. package/.agent/agents/frontend-reviewer.md +162 -160
  17. package/.agent/agents/frontend-specialist.md +257 -248
  18. package/.agent/agents/game-developer.md +48 -48
  19. package/.agent/agents/logic-reviewer.md +118 -116
  20. package/.agent/agents/mobile-developer.md +197 -200
  21. package/.agent/agents/mobile-reviewer.md +159 -162
  22. package/.agent/agents/orchestrator.md +187 -181
  23. package/.agent/agents/penetration-tester.md +160 -157
  24. package/.agent/agents/performance-optimizer.md +183 -183
  25. package/.agent/agents/performance-reviewer.md +178 -178
  26. package/.agent/agents/precedence-reviewer.md +251 -250
  27. package/.agent/agents/product-manager.md +149 -142
  28. package/.agent/agents/product-owner.md +81 -80
  29. package/.agent/agents/project-planner.md +152 -142
  30. package/.agent/agents/qa-automation-engineer.md +216 -225
  31. package/.agent/agents/resilience-reviewer.md +88 -88
  32. package/.agent/agents/schema-reviewer.md +67 -67
  33. package/.agent/agents/security-auditor.md +180 -174
  34. package/.agent/agents/seo-specialist.md +188 -193
  35. package/.agent/agents/sql-reviewer.md +159 -161
  36. package/.agent/agents/supervisor-agent.md +173 -184
  37. package/.agent/agents/swarm-worker-contracts.md +170 -166
  38. package/.agent/agents/swarm-worker-registry.md +92 -92
  39. package/.agent/agents/system-architect.md +85 -0
  40. package/.agent/agents/test-coverage-reviewer.md +158 -160
  41. package/.agent/agents/test-engineer.md +118 -118
  42. package/.agent/agents/throughput-optimizer.md +291 -299
  43. package/.agent/agents/type-safety-reviewer.md +182 -175
  44. package/.agent/agents/ui-ux-auditor.md +300 -292
  45. package/.agent/agents/vitals-reviewer.md +223 -223
  46. package/.agent/mcp_config.json +37 -40
  47. package/.agent/patterns/generator.md +11 -9
  48. package/.agent/patterns/inversion.md +14 -12
  49. package/.agent/patterns/pipeline.md +11 -9
  50. package/.agent/patterns/reviewer.md +15 -13
  51. package/.agent/patterns/tool-wrapper.md +11 -9
  52. package/.agent/routing_index.json +714 -0
  53. package/.agent/rules/GEMINI.md +359 -352
  54. package/.agent/scripts/compile_router.py +112 -0
  55. package/.agent/scripts/migrate_skills_frontmatter.py +64 -0
  56. package/.agent/scripts/strengthen_skills.js +1 -1
  57. package/.agent/skills/advanced-rag-pipelines/SKILL.md +56 -0
  58. package/.agent/skills/agent-organizer/SKILL.md +156 -150
  59. package/.agent/skills/agentic-patterns/SKILL.md +313 -315
  60. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +190 -184
  61. package/.agent/skills/api-patterns/SKILL.md +253 -247
  62. package/.agent/skills/api-security-auditor/SKILL.md +195 -193
  63. package/.agent/skills/app-builder/SKILL.md +573 -572
  64. package/.agent/skills/app-builder/templates/SKILL.md +108 -115
  65. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  66. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  67. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  68. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  69. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  70. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  71. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  72. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -122
  73. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -122
  74. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -169
  75. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -134
  76. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  77. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -119
  78. package/.agent/skills/appflow-wireframe/SKILL.md +146 -145
  79. package/.agent/skills/architecture/SKILL.md +226 -219
  80. package/.agent/skills/authentication-best-practices/SKILL.md +197 -189
  81. package/.agent/skills/backend-security-expert/SKILL.md +16 -2
  82. package/.agent/skills/bash-linux/SKILL.md +179 -179
  83. package/.agent/skills/behavioral-modes/SKILL.md +239 -223
  84. package/.agent/skills/brainstorming/SKILL.md +498 -486
  85. package/.agent/skills/browser-native-ai/SKILL.md +57 -4
  86. package/.agent/skills/building-native-ui/SKILL.md +202 -202
  87. package/.agent/skills/cicd-pro/SKILL.md +442 -0
  88. package/.agent/skills/clean-code/SKILL.md +400 -381
  89. package/.agent/skills/cloud-architect/SKILL.md +439 -0
  90. package/.agent/skills/code-review-checklist/SKILL.md +203 -194
  91. package/.agent/skills/config-validator/SKILL.md +165 -165
  92. package/.agent/skills/containerization-pro/SKILL.md +452 -0
  93. package/.agent/skills/csharp-developer/SKILL.md +518 -518
  94. package/.agent/skills/data-validation-schemas/SKILL.md +333 -328
  95. package/.agent/skills/database-design/SKILL.md +247 -240
  96. package/.agent/skills/deployment-procedures/SKILL.md +172 -169
  97. package/.agent/skills/devops-engineer/SKILL.md +345 -345
  98. package/.agent/skills/devops-incident-responder/SKILL.md +143 -137
  99. package/.agent/skills/documentation-templates/SKILL.md +291 -279
  100. package/.agent/skills/edge-computing/SKILL.md +183 -181
  101. package/.agent/skills/emil-design-eng/SKILL.md +147 -0
  102. package/.agent/skills/error-resilience/SKILL.md +411 -428
  103. package/.agent/skills/extract-design-system/SKILL.md +160 -158
  104. package/.agent/skills/framer-motion-expert/SKILL.md +253 -244
  105. package/.agent/skills/frontend-design/SKILL.md +208 -201
  106. package/.agent/skills/frontend-security-expert/SKILL.md +16 -3
  107. package/.agent/skills/game-design-expert/SKILL.md +132 -129
  108. package/.agent/skills/game-engineering-expert/SKILL.md +148 -146
  109. package/.agent/skills/generative-ui-expert/SKILL.md +57 -1
  110. package/.agent/skills/geo-fundamentals/SKILL.md +148 -147
  111. package/.agent/skills/git-pro/SKILL.md +435 -0
  112. package/.agent/skills/github-operations/SKILL.md +335 -329
  113. package/.agent/skills/gsap-core/SKILL.md +319 -308
  114. package/.agent/skills/gsap-frameworks/SKILL.md +213 -207
  115. package/.agent/skills/gsap-performance/SKILL.md +139 -133
  116. package/.agent/skills/gsap-plugins/SKILL.md +486 -480
  117. package/.agent/skills/gsap-react/SKILL.md +202 -189
  118. package/.agent/skills/gsap-scrolltrigger/SKILL.md +357 -350
  119. package/.agent/skills/gsap-timeline/SKILL.md +165 -161
  120. package/.agent/skills/gsap-utils/SKILL.md +344 -338
  121. package/.agent/skills/harness-protocol/SKILL.md +48 -0
  122. package/.agent/skills/i18n-localization/SKILL.md +174 -163
  123. package/.agent/skills/intelligent-routing/SKILL.md +202 -246
  124. package/.agent/skills/knowledge-graph/SKILL.md +60 -52
  125. package/.agent/skills/lint-and-validate/SKILL.md +261 -261
  126. package/.agent/skills/llm-engineering/SKILL.md +400 -394
  127. package/.agent/skills/local-first/SKILL.md +178 -178
  128. package/.agent/skills/mcp-builder/SKILL.md +143 -142
  129. package/.agent/skills/mobile-design/SKILL.md +272 -263
  130. package/.agent/skills/monorepo-management/SKILL.md +335 -334
  131. package/.agent/skills/motion-engineering/SKILL.md +266 -234
  132. package/.agent/skills/nextjs-react-expert/SKILL.md +236 -234
  133. package/.agent/skills/nodejs-best-practices/SKILL.md +547 -548
  134. package/.agent/skills/observability/SKILL.md +343 -343
  135. package/.agent/skills/parallel-agents/SKILL.md +143 -146
  136. package/.agent/skills/performance-profiling/SKILL.md +259 -267
  137. package/.agent/skills/plan-writing/SKILL.md +150 -142
  138. package/.agent/skills/platform-engineer/SKILL.md +148 -147
  139. package/.agent/skills/playwright-best-practices/SKILL.md +188 -187
  140. package/.agent/skills/powershell-windows/SKILL.md +162 -162
  141. package/.agent/skills/project-idioms/SKILL.md +137 -137
  142. package/.agent/skills/python-patterns/SKILL.md +260 -259
  143. package/.agent/skills/python-pro/SKILL.md +324 -323
  144. package/.agent/skills/react-specialist/SKILL.md +305 -277
  145. package/.agent/skills/readme-builder/SKILL.md +310 -300
  146. package/.agent/skills/realtime-patterns/SKILL.md +323 -319
  147. package/.agent/skills/red-team-tactics/SKILL.md +231 -218
  148. package/.agent/skills/review-animations/SKILL.md +72 -0
  149. package/.agent/skills/review-animations/STANDARDS.md +73 -0
  150. package/.agent/skills/rust-pro/SKILL.md +671 -673
  151. package/.agent/skills/seo-fundamentals/SKILL.md +179 -179
  152. package/.agent/skills/server-management/SKILL.md +218 -214
  153. package/.agent/skills/shadcn-ui-expert/SKILL.md +231 -231
  154. package/.agent/skills/skill-creator/SKILL.md +87 -86
  155. package/.agent/skills/sql-pro/SKILL.md +629 -629
  156. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +97 -97
  157. package/.agent/skills/swiftui-expert/SKILL.md +204 -201
  158. package/.agent/skills/system-design-pro/SKILL.md +345 -0
  159. package/.agent/skills/systematic-debugging/SKILL.md +153 -142
  160. package/.agent/skills/tailwind-patterns/SKILL.md +610 -566
  161. package/.agent/skills/tdd-workflow/SKILL.md +169 -161
  162. package/.agent/skills/test-result-analyzer/SKILL.md +313 -309
  163. package/.agent/skills/testing-patterns/SKILL.md +566 -579
  164. package/.agent/skills/trend-researcher/SKILL.md +243 -237
  165. package/.agent/skills/typescript-advanced/SKILL.md +336 -335
  166. package/.agent/skills/ui-ux-pro-max/SKILL.md +590 -562
  167. package/.agent/skills/ui-ux-researcher/SKILL.md +244 -244
  168. package/.agent/skills/vue-expert/SKILL.md +294 -275
  169. package/.agent/skills/vulnerability-scanner/SKILL.md +416 -404
  170. package/.agent/skills/web-accessibility-auditor/SKILL.md +219 -218
  171. package/.agent/skills/web-design-guidelines/SKILL.md +192 -186
  172. package/.agent/skills/webapp-testing/SKILL.md +167 -169
  173. package/.agent/skills/webgpu-performance/SKILL.md +56 -2
  174. package/.agent/skills/whimsy-injector/SKILL.md +346 -325
  175. package/.agent/skills/workflow-optimizer/SKILL.md +231 -229
  176. package/.agent/workflows/acf.md +141 -0
  177. package/.agent/workflows/api-tester.md +176 -151
  178. package/.agent/workflows/audit.md +150 -127
  179. package/.agent/workflows/brainstorm.md +134 -110
  180. package/.agent/workflows/changelog.md +140 -112
  181. package/.agent/workflows/create.md +168 -124
  182. package/.agent/workflows/debug.md +190 -165
  183. package/.agent/workflows/deploy.md +201 -180
  184. package/.agent/workflows/enhance.md +154 -128
  185. package/.agent/workflows/fix.md +136 -114
  186. package/.agent/workflows/generate.md +198 -183
  187. package/.agent/workflows/marathon.md +37 -11
  188. package/.agent/workflows/migrate.md +184 -160
  189. package/.agent/workflows/orchestrate.md +192 -168
  190. package/.agent/workflows/performance-benchmarker.md +135 -114
  191. package/.agent/workflows/plan.md +196 -173
  192. package/.agent/workflows/preview.md +103 -80
  193. package/.agent/workflows/refactor.md +192 -161
  194. package/.agent/workflows/review-ai.md +125 -101
  195. package/.agent/workflows/review.md +141 -116
  196. package/.agent/workflows/session.md +122 -94
  197. package/.agent/workflows/status.md +101 -79
  198. package/.agent/workflows/strengthen-skills.md +164 -138
  199. package/.agent/workflows/super-prompt.md +24 -0
  200. package/.agent/workflows/swarm.md +193 -179
  201. package/.agent/workflows/test.md +211 -189
  202. package/.agent/workflows/tribunal-backend.md +136 -105
  203. package/.agent/workflows/tribunal-database.md +129 -95
  204. package/.agent/workflows/tribunal-frontend.md +140 -96
  205. package/.agent/workflows/tribunal-full.md +131 -100
  206. package/.agent/workflows/tribunal-mobile.md +129 -95
  207. package/.agent/workflows/tribunal-performance.md +136 -110
  208. package/.agent/workflows/tribunal-speed.md +209 -183
  209. package/.agent/workflows/ui-ux-pro-max.md +155 -122
  210. package/README.md +107 -55
  211. package/mcp_config.json +1 -3
  212. package/package.json +94 -94
  213. package/.agent/GEMINI.md +0 -121
  214. package/.agent/skills/doc.md +0 -177
@@ -0,0 +1,452 @@
1
+ ---
2
+ name: containerization-pro
3
+ description: Production-grade containerization mastery. Multi-stage Dockerfiles for Node.js/Python/Rust/Go, image hardening (non-root, distroless, read-only FS), BuildKit layer caching, multi-platform builds (docker buildx), Docker Compose for local dev, container security scanning (Trivy/Grype), and AWS ECR workflows. Use when containerizing applications, optimizing Docker builds, or setting up container registries.
4
+ allowed-tools: Read, Write, Edit, Glob, Grep
5
+ version: 1.0.0
6
+ last-updated: 2026-06-21
7
+ applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
8
+ routing:
9
+ domain: devops
10
+ tier: pro
11
+ co-requires: [cicd-pro]
12
+ trigger-signals:
13
+ strong: [multi-stage build, BuildKit, ECR, Trivy, image hardening, Docker Compose]
14
+ ---
15
+
16
+ ## Hallucination Traps (Read First)
17
+
18
+ - ❌ `FROM node:22` → ✅ `FROM node:22-alpine` (1GB+ vs ~150MB). Always use slim/alpine variants.
19
+ - ❌ `RUN npm install` → ✅ `RUN npm ci --omit=dev` (deterministic, no devDeps, respects lockfile)
20
+ - ❌ `COPY . .` without `.dockerignore` → ✅ Always create `.dockerignore` first. Copies `node_modules`, `.env`, `.git` otherwise.
21
+ - ❌ Running container as root → ✅ Always create and switch to a non-root user. Root in container = root on host if container escapes.
22
+ - ❌ Single-stage Dockerfile → ✅ Multi-stage builds for any compiled/built application. Final image should contain ONLY runtime artifacts.
23
+ - ❌ `docker build` without `--platform` for CI → ✅ CI often runs on `amd64`; target hosts may be `arm64`. Always specify platform or use multi-platform builds.
24
+
25
+ ---
26
+
27
+ # Containerization Pro — Production-Grade Docker Mastery
28
+
29
+ ## 1. The .dockerignore (Write This First)
30
+
31
+ ```
32
+ # .dockerignore — always create before writing Dockerfile
33
+ node_modules
34
+ npm-debug.log*
35
+ .npm
36
+ .git
37
+ .gitignore
38
+ .env
39
+ .env.*
40
+ *.md
41
+ README*
42
+ .github
43
+ .vscode
44
+ coverage
45
+ .nyc_output
46
+ dist # will be rebuilt in container
47
+ build # will be rebuilt in container
48
+ __pycache__
49
+ *.pyc
50
+ *.pyo
51
+ .pytest_cache
52
+ target # Rust build artifacts
53
+ ```
54
+
55
+ ---
56
+
57
+ ## 2. Multi-Stage Dockerfiles
58
+
59
+ ### Node.js (Production-Ready)
60
+
61
+ ```dockerfile
62
+ # ✅ Multi-stage — builder produces artifacts, runner is minimal
63
+ FROM node:22-alpine AS base
64
+ WORKDIR /app
65
+
66
+ # Install deps in isolation for better caching
67
+ FROM base AS deps
68
+ COPY package.json package-lock.json ./
69
+ RUN npm ci
70
+
71
+ # Build stage
72
+ FROM base AS builder
73
+ COPY --from=deps /app/node_modules ./node_modules
74
+ COPY . .
75
+ RUN npm run build
76
+
77
+ # ──── Runtime (final) stage ────
78
+ FROM node:22-alpine AS runner
79
+ WORKDIR /app
80
+
81
+ # Security: create non-root user
82
+ RUN addgroup --system --gid 1001 appgroup && \
83
+ adduser --system --uid 1001 --ingroup appgroup appuser
84
+
85
+ # Copy only production artifacts
86
+ COPY --from=builder --chown=appuser:appgroup /app/dist ./dist
87
+ COPY --from=builder --chown=appuser:appgroup /app/node_modules ./node_modules
88
+ COPY --from=builder --chown=appuser:appgroup /app/package.json ./
89
+
90
+ USER appuser
91
+
92
+ ENV NODE_ENV=production
93
+ ENV PORT=3000
94
+ EXPOSE 3000
95
+
96
+ # Health check — required for orchestration (ECS, Kubernetes)
97
+ HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
98
+ CMD wget --quiet --tries=1 --spider http://localhost:3000/health || exit 1
99
+
100
+ CMD ["node", "dist/index.js"]
101
+ ```
102
+
103
+ ### Python (FastAPI)
104
+
105
+ ```dockerfile
106
+ FROM python:3.12-slim AS builder
107
+ WORKDIR /app
108
+
109
+ # Install build tools (needed for some packages, discarded in final image)
110
+ RUN apt-get update && apt-get install -y --no-install-recommends gcc && \
111
+ rm -rf /var/lib/apt/lists/*
112
+
113
+ COPY requirements.txt .
114
+ RUN pip install --user --no-cache-dir -r requirements.txt
115
+
116
+ # ──── Runtime stage ────
117
+ FROM python:3.12-slim AS runner
118
+ WORKDIR /app
119
+
120
+ # Security: non-root user
121
+ RUN addgroup --system --gid 1001 appgroup && \
122
+ adduser --system --uid 1001 --gid 1001 appuser
123
+
124
+ # Copy installed packages from builder
125
+ COPY --from=builder --chown=appuser:appgroup /root/.local /home/appuser/.local
126
+ COPY --chown=appuser:appgroup . .
127
+
128
+ USER appuser
129
+
130
+ ENV PATH=/home/appuser/.local/bin:$PATH
131
+ ENV PYTHONUNBUFFERED=1
132
+
133
+ EXPOSE 8000
134
+
135
+ HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
136
+ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"
137
+
138
+ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
139
+ ```
140
+
141
+ ### Rust (Distroless Final Image)
142
+
143
+ ```dockerfile
144
+ FROM rust:1.78-slim AS builder
145
+ WORKDIR /app
146
+
147
+ # Cache dependencies separately for fast rebuilds
148
+ COPY Cargo.toml Cargo.lock ./
149
+ RUN mkdir src && echo "fn main() {}" > src/main.rs
150
+ RUN cargo build --release
151
+ RUN rm src/main.rs
152
+
153
+ # Build actual application
154
+ COPY src ./src
155
+ RUN touch src/main.rs && cargo build --release
156
+
157
+ # ──── Distroless runtime (no shell, no package manager, minimal attack surface) ────
158
+ FROM gcr.io/distroless/cc-debian12 AS runner
159
+ WORKDIR /app
160
+
161
+ COPY --from=builder /app/target/release/myapp ./myapp
162
+
163
+ USER nonroot:nonroot
164
+ EXPOSE 8080
165
+
166
+ CMD ["/app/myapp"]
167
+ ```
168
+
169
+ ### Go
170
+
171
+ ```dockerfile
172
+ FROM golang:1.22-alpine AS builder
173
+ WORKDIR /app
174
+
175
+ COPY go.mod go.sum ./
176
+ RUN go mod download
177
+
178
+ COPY . .
179
+ RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -o server ./cmd/server
180
+
181
+ # ──── Scratch (smallest possible image) ────
182
+ FROM scratch AS runner
183
+ COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
184
+ COPY --from=builder /app/server /server
185
+
186
+ EXPOSE 8080
187
+ ENTRYPOINT ["/server"]
188
+ ```
189
+
190
+ ---
191
+
192
+ ## 3. BuildKit Layer Caching (CI Speed)
193
+
194
+ ```dockerfile
195
+ # syntax=docker/dockerfile:1.6
196
+ FROM node:22-alpine AS builder
197
+ WORKDIR /app
198
+
199
+ # Mount npm cache — persists between builds (dramatic speed improvement in CI)
200
+ COPY package.json package-lock.json ./
201
+ RUN --mount=type=cache,target=/root/.npm \
202
+ npm ci
203
+
204
+ # Mount build cache (Next.js / webpack)
205
+ COPY . .
206
+ RUN --mount=type=cache,target=/app/.next/cache \
207
+ npm run build
208
+ ```
209
+
210
+ ```yaml
211
+ # GitHub Actions — enable BuildKit with caching
212
+ - name: Build and push Docker image
213
+ uses: docker/build-push-action@v5
214
+ with:
215
+ context: .
216
+ push: true
217
+ tags: ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ github.sha }}
218
+ cache-from: type=gha # GitHub Actions cache
219
+ cache-to: type=gha,mode=max # Cache all layers
220
+ build-args: |
221
+ BUILDKIT_INLINE_CACHE=1
222
+ ```
223
+
224
+ ---
225
+
226
+ ## 4. Multi-Platform Builds
227
+
228
+ ```bash
229
+ # Build for both amd64 (x86) and arm64 (Apple Silicon, AWS Graviton)
230
+ docker buildx create --name mybuilder --use
231
+ docker buildx build \
232
+ --platform linux/amd64,linux/arm64 \
233
+ --tag myapp:latest \
234
+ --push \
235
+ .
236
+ ```
237
+
238
+ ```yaml
239
+ # GitHub Actions — multi-platform
240
+ - name: Set up QEMU
241
+ uses: docker/setup-qemu-action@v3
242
+
243
+ - name: Set up Docker Buildx
244
+ uses: docker/setup-buildx-action@v3
245
+
246
+ - name: Build multi-platform image
247
+ uses: docker/build-push-action@v5
248
+ with:
249
+ platforms: linux/amd64,linux/arm64
250
+ push: true
251
+ tags: ${{ steps.meta.outputs.tags }}
252
+ ```
253
+
254
+ ---
255
+
256
+ ## 5. Docker Compose (Local Development)
257
+
258
+ ```yaml
259
+ # docker-compose.yml
260
+ services:
261
+ api:
262
+ build:
263
+ context: .
264
+ target: builder # use builder stage locally (includes devtools)
265
+ dockerfile: Dockerfile
266
+ ports:
267
+ - "3000:3000"
268
+ environment:
269
+ NODE_ENV: development
270
+ DATABASE_URL: postgres://postgres:postgres@db:5432/myapp_dev
271
+ REDIS_URL: redis://redis:6379
272
+ volumes:
273
+ - .:/app # mount source for hot-reload
274
+ - /app/node_modules # anonymous volume prevents host node_modules overwrite
275
+ depends_on:
276
+ db:
277
+ condition: service_healthy
278
+ redis:
279
+ condition: service_started
280
+ restart: unless-stopped
281
+
282
+ db:
283
+ image: postgres:16-alpine
284
+ environment:
285
+ POSTGRES_DB: myapp_dev
286
+ POSTGRES_USER: postgres
287
+ POSTGRES_PASSWORD: postgres
288
+ volumes:
289
+ - pgdata:/var/lib/postgresql/data
290
+ healthcheck:
291
+ test: ["CMD-SHELL", "pg_isready -U postgres"]
292
+ interval: 5s
293
+ timeout: 3s
294
+ retries: 5
295
+ ports:
296
+ - "5432:5432" # expose for local DB clients
297
+
298
+ redis:
299
+ image: redis:7-alpine
300
+ volumes:
301
+ - redisdata:/data
302
+ ports:
303
+ - "6379:6379"
304
+
305
+ volumes:
306
+ pgdata:
307
+ redisdata:
308
+ ```
309
+
310
+ ---
311
+
312
+ ## 6. Container Security Scanning
313
+
314
+ ```yaml
315
+ # GitHub Actions — Trivy vulnerability scan
316
+ - name: Run Trivy vulnerability scanner
317
+ uses: aquasecurity/trivy-action@master
318
+ with:
319
+ image-ref: ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ github.sha }}
320
+ format: sarif
321
+ output: trivy-results.sarif
322
+ severity: CRITICAL,HIGH
323
+ exit-code: "1" # fail pipeline on CRITICAL/HIGH vulnerabilities
324
+
325
+ - name: Upload Trivy scan results to GitHub Security tab
326
+ uses: github/codeql-action/upload-sarif@v3
327
+ if: always()
328
+ with:
329
+ sarif_file: trivy-results.sarif
330
+ ```
331
+
332
+ ```bash
333
+ # Local scanning
334
+ trivy image myapp:latest
335
+
336
+ # Scan Dockerfile for misconfigurations before building
337
+ trivy config Dockerfile
338
+ ```
339
+
340
+ ---
341
+
342
+ ## 7. AWS ECR Workflow
343
+
344
+ ```yaml
345
+ # Complete ECR push workflow
346
+ jobs:
347
+ build-and-push:
348
+ runs-on: ubuntu-latest
349
+ permissions:
350
+ id-token: write
351
+ contents: read
352
+ outputs:
353
+ image: ${{ steps.build.outputs.image }}
354
+
355
+ steps:
356
+ - uses: actions/checkout@v4
357
+
358
+ - name: Configure AWS credentials (OIDC — no static keys)
359
+ uses: aws-actions/configure-aws-credentials@v4
360
+ with:
361
+ role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
362
+ aws-region: us-east-1
363
+
364
+ - name: Login to Amazon ECR
365
+ id: login-ecr
366
+ uses: aws-actions/amazon-ecr-login@v2
367
+
368
+ - name: Set up Docker Buildx
369
+ uses: docker/setup-buildx-action@v3
370
+
371
+ - name: Build, tag, and push image
372
+ id: build
373
+ uses: docker/build-push-action@v5
374
+ with:
375
+ context: .
376
+ push: true
377
+ tags: |
378
+ ${{ steps.login-ecr.outputs.registry }}/myapp:${{ github.sha }}
379
+ ${{ steps.login-ecr.outputs.registry }}/myapp:latest
380
+ cache-from: type=gha
381
+ cache-to: type=gha,mode=max
382
+
383
+ - name: Output image URI
384
+ run: echo "image=${{ steps.login-ecr.outputs.registry }}/myapp:${{ github.sha }}" >> $GITHUB_OUTPUT
385
+ ```
386
+
387
+ ### ECR Lifecycle Policy (Cost Control)
388
+
389
+ ```json
390
+ {
391
+ "rules": [
392
+ {
393
+ "rulePriority": 1,
394
+ "description": "Keep last 10 production images",
395
+ "selection": {
396
+ "tagStatus": "tagged",
397
+ "tagPrefixList": ["v"],
398
+ "countType": "imageCountMoreThan",
399
+ "countNumber": 10
400
+ },
401
+ "action": { "type": "expire" }
402
+ },
403
+ {
404
+ "rulePriority": 2,
405
+ "description": "Expire untagged images after 1 day",
406
+ "selection": {
407
+ "tagStatus": "untagged",
408
+ "countType": "sinceImagePushed",
409
+ "countUnit": "days",
410
+ "countNumber": 1
411
+ },
412
+ "action": { "type": "expire" }
413
+ }
414
+ ]
415
+ }
416
+ ```
417
+
418
+ ---
419
+
420
+ ## 🤖 LLM-Specific Traps
421
+
422
+ 1. **`FROM node:latest`**: Never use `latest` tag in production Dockerfiles. Tags are mutable. Pin to a specific version (`node:22.3.0-alpine`).
423
+ 2. **Missing HEALTHCHECK**: Orchestrators (ECS, Kubernetes) use HEALTHCHECK to know when a container is ready. Without it, traffic is sent before the app is ready.
424
+ 3. **Secrets as build args**: `ARG SECRET_KEY` bakes secrets into the image history. Use `--secret` flag with BuildKit or runtime environment variables.
425
+ 4. **`docker-compose up` in production**: Docker Compose is for development. Use ECS, Kubernetes, or similar for production.
426
+ 5. **Wrong COPY source path**: `COPY --from=builder` paths are relative to the builder WORKDIR. Always verify the exact output path.
427
+
428
+ ---
429
+
430
+ ## 🏛️ Tribunal Integration (Anti-Hallucination)
431
+
432
+ **Slash command: `/review` or `/tribunal-full`**
433
+ **Active reviewers: `logic-reviewer` · `security-auditor` · `devops-engineer`**
434
+
435
+ ### ✅ Pre-Flight Self-Audit
436
+
437
+ ```
438
+ ✅ Does the Dockerfile use a non-root user?
439
+ ✅ Is there a .dockerignore file?
440
+ ✅ Is the final stage minimal (alpine/distroless, no build tools)?
441
+ ✅ Are secrets passed as runtime env vars, not build args?
442
+ ✅ Is there a HEALTHCHECK instruction?
443
+ ✅ Are image tags pinned (not :latest)?
444
+ ✅ Is multi-stage build used for compiled/built artifacts?
445
+ ```
446
+
447
+ ### 🛑 Verification-Before-Completion (VBC) Protocol
448
+
449
+ **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
450
+
451
+ - ❌ **Forbidden**: Declaring a Dockerfile correct because it "looks valid."
452
+ - ✅ **Required**: Run `docker build .` successfully AND `docker run` the image to verify the health endpoint responds before declaring complete.