tribunal-kit 3.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/.agent/ARCHITECTURE.md +99 -99
  2. package/.agent/GEMINI.md +52 -52
  3. package/.agent/agents/accessibility-reviewer.md +187 -220
  4. package/.agent/agents/ai-code-reviewer.md +199 -233
  5. package/.agent/agents/backend-specialist.md +215 -238
  6. package/.agent/agents/code-archaeologist.md +161 -181
  7. package/.agent/agents/database-architect.md +184 -207
  8. package/.agent/agents/debugger.md +191 -218
  9. package/.agent/agents/dependency-reviewer.md +103 -136
  10. package/.agent/agents/devops-engineer.md +218 -238
  11. package/.agent/agents/documentation-writer.md +201 -221
  12. package/.agent/agents/explorer-agent.md +160 -180
  13. package/.agent/agents/frontend-reviewer.md +160 -194
  14. package/.agent/agents/frontend-specialist.md +248 -237
  15. package/.agent/agents/game-developer.md +48 -52
  16. package/.agent/agents/logic-reviewer.md +116 -149
  17. package/.agent/agents/mobile-developer.md +200 -223
  18. package/.agent/agents/mobile-reviewer.md +162 -195
  19. package/.agent/agents/orchestrator.md +181 -211
  20. package/.agent/agents/penetration-tester.md +157 -174
  21. package/.agent/agents/performance-optimizer.md +183 -203
  22. package/.agent/agents/performance-reviewer.md +178 -211
  23. package/.agent/agents/precedence-reviewer.md +213 -0
  24. package/.agent/agents/product-manager.md +142 -162
  25. package/.agent/agents/product-owner.md +6 -25
  26. package/.agent/agents/project-planner.md +142 -162
  27. package/.agent/agents/qa-automation-engineer.md +225 -242
  28. package/.agent/agents/security-auditor.md +174 -194
  29. package/.agent/agents/seo-specialist.md +193 -213
  30. package/.agent/agents/sql-reviewer.md +161 -194
  31. package/.agent/agents/supervisor-agent.md +184 -203
  32. package/.agent/agents/swarm-worker-contracts.md +17 -17
  33. package/.agent/agents/swarm-worker-registry.md +46 -46
  34. package/.agent/agents/test-coverage-reviewer.md +160 -193
  35. package/.agent/agents/test-engineer.md +0 -21
  36. package/.agent/agents/type-safety-reviewer.md +175 -208
  37. package/.agent/patterns/generator.md +9 -9
  38. package/.agent/patterns/inversion.md +12 -12
  39. package/.agent/patterns/pipeline.md +9 -9
  40. package/.agent/patterns/reviewer.md +13 -13
  41. package/.agent/patterns/tool-wrapper.md +9 -9
  42. package/.agent/rules/GEMINI.md +63 -63
  43. package/.agent/scripts/append_flow.js +72 -0
  44. package/.agent/scripts/case_law_manager.py +525 -0
  45. package/.agent/scripts/compress_skills.py +167 -0
  46. package/.agent/scripts/consolidate_skills.py +173 -0
  47. package/.agent/scripts/deep_compress.py +202 -0
  48. package/.agent/scripts/minify_context.py +80 -0
  49. package/.agent/scripts/security_scan.py +1 -1
  50. package/.agent/scripts/skill_evolution.py +563 -0
  51. package/.agent/scripts/strip_tribunal.py +41 -0
  52. package/.agent/skills/agent-organizer/SKILL.md +100 -126
  53. package/.agent/skills/agentic-patterns/SKILL.md +0 -70
  54. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +134 -160
  55. package/.agent/skills/api-patterns/SKILL.md +123 -215
  56. package/.agent/skills/api-security-auditor/SKILL.md +143 -177
  57. package/.agent/skills/app-builder/SKILL.md +334 -50
  58. package/.agent/skills/app-builder/templates/SKILL.md +13 -15
  59. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +16 -16
  60. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +22 -22
  61. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +18 -18
  62. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +20 -20
  63. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +17 -17
  64. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +18 -18
  65. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +21 -21
  66. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +19 -19
  67. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +26 -26
  68. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +26 -26
  69. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +19 -19
  70. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +18 -18
  71. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +20 -20
  72. package/.agent/skills/appflow-wireframe/SKILL.md +95 -121
  73. package/.agent/skills/architecture/SKILL.md +169 -331
  74. package/.agent/skills/authentication-best-practices/SKILL.md +139 -173
  75. package/.agent/skills/bash-linux/SKILL.md +129 -154
  76. package/.agent/skills/behavioral-modes/SKILL.md +8 -69
  77. package/.agent/skills/brainstorming/SKILL.md +436 -104
  78. package/.agent/skills/building-native-ui/SKILL.md +152 -174
  79. package/.agent/skills/clean-code/SKILL.md +331 -360
  80. package/.agent/skills/code-review-checklist/SKILL.md +0 -62
  81. package/.agent/skills/config-validator/SKILL.md +115 -141
  82. package/.agent/skills/csharp-developer/SKILL.md +468 -528
  83. package/.agent/skills/database-design/SKILL.md +104 -369
  84. package/.agent/skills/deployment-procedures/SKILL.md +119 -145
  85. package/.agent/skills/devops-engineer/SKILL.md +295 -332
  86. package/.agent/skills/devops-incident-responder/SKILL.md +87 -113
  87. package/.agent/skills/doc.md +5 -5
  88. package/.agent/skills/documentation-templates/SKILL.md +27 -63
  89. package/.agent/skills/edge-computing/SKILL.md +131 -157
  90. package/.agent/skills/extract-design-system/SKILL.md +108 -134
  91. package/.agent/skills/framer-motion-expert/SKILL.md +111 -855
  92. package/.agent/skills/frontend-design/SKILL.md +151 -499
  93. package/.agent/skills/game-design-expert/SKILL.md +79 -105
  94. package/.agent/skills/game-engineering-expert/SKILL.md +96 -122
  95. package/.agent/skills/geo-fundamentals/SKILL.md +97 -124
  96. package/.agent/skills/github-operations/SKILL.md +279 -314
  97. package/.agent/skills/gsap-expert/SKILL.md +119 -826
  98. package/.agent/skills/i18n-localization/SKILL.md +113 -138
  99. package/.agent/skills/intelligent-routing/SKILL.md +167 -127
  100. package/.agent/skills/lint-and-validate/SKILL.md +16 -52
  101. package/.agent/skills/llm-engineering/SKILL.md +344 -357
  102. package/.agent/skills/local-first/SKILL.md +128 -154
  103. package/.agent/skills/mcp-builder/SKILL.md +92 -118
  104. package/.agent/skills/mobile-design/SKILL.md +213 -219
  105. package/.agent/skills/motion-engineering/SKILL.md +184 -0
  106. package/.agent/skills/nextjs-react-expert/SKILL.md +99 -698
  107. package/.agent/skills/nodejs-best-practices/SKILL.md +498 -559
  108. package/.agent/skills/observability/SKILL.md +293 -330
  109. package/.agent/skills/parallel-agents/SKILL.md +96 -122
  110. package/.agent/skills/performance-profiling/SKILL.md +217 -254
  111. package/.agent/skills/plan-writing/SKILL.md +92 -118
  112. package/.agent/skills/platform-engineer/SKILL.md +97 -123
  113. package/.agent/skills/playwright-best-practices/SKILL.md +137 -162
  114. package/.agent/skills/powershell-windows/SKILL.md +112 -146
  115. package/.agent/skills/project-idioms/SKILL.md +87 -0
  116. package/.agent/skills/python-patterns/SKILL.md +15 -35
  117. package/.agent/skills/python-pro/SKILL.md +148 -754
  118. package/.agent/skills/react-specialist/SKILL.md +123 -827
  119. package/.agent/skills/readme-builder/SKILL.md +23 -85
  120. package/.agent/skills/realtime-patterns/SKILL.md +269 -304
  121. package/.agent/skills/red-team-tactics/SKILL.md +18 -51
  122. package/.agent/skills/rust-pro/SKILL.md +623 -701
  123. package/.agent/skills/seo-fundamentals/SKILL.md +129 -154
  124. package/.agent/skills/server-management/SKILL.md +164 -190
  125. package/.agent/skills/shadcn-ui-expert/SKILL.md +181 -206
  126. package/.agent/skills/skill-creator/SKILL.md +24 -56
  127. package/.agent/skills/sql-pro/SKILL.md +579 -633
  128. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +35 -66
  129. package/.agent/skills/swiftui-expert/SKILL.md +151 -176
  130. package/.agent/skills/systematic-debugging/SKILL.md +92 -118
  131. package/.agent/skills/tailwind-patterns/SKILL.md +516 -576
  132. package/.agent/skills/tdd-workflow/SKILL.md +111 -137
  133. package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
  134. package/.agent/skills/testing-patterns/SKILL.md +512 -573
  135. package/.agent/skills/trend-researcher/SKILL.md +30 -71
  136. package/.agent/skills/ui-ux-pro-max/SKILL.md +8 -41
  137. package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
  138. package/.agent/skills/vue-expert/SKILL.md +127 -866
  139. package/.agent/skills/vulnerability-scanner/SKILL.md +354 -269
  140. package/.agent/skills/web-accessibility-auditor/SKILL.md +168 -193
  141. package/.agent/skills/web-design-guidelines/SKILL.md +25 -61
  142. package/.agent/skills/webapp-testing/SKILL.md +119 -145
  143. package/.agent/skills/whimsy-injector/SKILL.md +58 -132
  144. package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
  145. package/.agent/workflows/api-tester.md +151 -151
  146. package/.agent/workflows/audit.md +127 -138
  147. package/.agent/workflows/brainstorm.md +110 -110
  148. package/.agent/workflows/changelog.md +112 -112
  149. package/.agent/workflows/create.md +124 -124
  150. package/.agent/workflows/debug.md +165 -189
  151. package/.agent/workflows/deploy.md +180 -189
  152. package/.agent/workflows/enhance.md +128 -151
  153. package/.agent/workflows/fix.md +114 -135
  154. package/.agent/workflows/generate.md +13 -4
  155. package/.agent/workflows/migrate.md +160 -160
  156. package/.agent/workflows/orchestrate.md +168 -168
  157. package/.agent/workflows/performance-benchmarker.md +114 -123
  158. package/.agent/workflows/plan.md +173 -173
  159. package/.agent/workflows/preview.md +80 -80
  160. package/.agent/workflows/refactor.md +161 -183
  161. package/.agent/workflows/review-ai.md +101 -129
  162. package/.agent/workflows/review.md +116 -116
  163. package/.agent/workflows/session.md +94 -94
  164. package/.agent/workflows/status.md +79 -79
  165. package/.agent/workflows/strengthen-skills.md +138 -139
  166. package/.agent/workflows/swarm.md +179 -179
  167. package/.agent/workflows/test.md +189 -211
  168. package/.agent/workflows/tribunal-backend.md +94 -113
  169. package/.agent/workflows/tribunal-database.md +95 -115
  170. package/.agent/workflows/tribunal-frontend.md +96 -118
  171. package/.agent/workflows/tribunal-full.md +93 -133
  172. package/.agent/workflows/tribunal-mobile.md +95 -119
  173. package/.agent/workflows/tribunal-performance.md +110 -133
  174. package/.agent/workflows/ui-ux-pro-max.md +122 -143
  175. package/README.md +30 -1
  176. package/bin/tribunal-kit.js +175 -12
  177. package/package.json +25 -4
  178. package/.agent/skills/api-patterns/api-style.md +0 -42
  179. package/.agent/skills/api-patterns/auth.md +0 -24
  180. package/.agent/skills/api-patterns/documentation.md +0 -26
  181. package/.agent/skills/api-patterns/graphql.md +0 -41
  182. package/.agent/skills/api-patterns/rate-limiting.md +0 -31
  183. package/.agent/skills/api-patterns/response.md +0 -37
  184. package/.agent/skills/api-patterns/rest.md +0 -40
  185. package/.agent/skills/api-patterns/security-testing.md +0 -122
  186. package/.agent/skills/api-patterns/trpc.md +0 -41
  187. package/.agent/skills/api-patterns/versioning.md +0 -22
  188. package/.agent/skills/app-builder/agent-coordination.md +0 -71
  189. package/.agent/skills/app-builder/feature-building.md +0 -53
  190. package/.agent/skills/app-builder/project-detection.md +0 -34
  191. package/.agent/skills/app-builder/scaffolding.md +0 -118
  192. package/.agent/skills/app-builder/tech-stack.md +0 -40
  193. package/.agent/skills/architecture/context-discovery.md +0 -43
  194. package/.agent/skills/architecture/examples.md +0 -94
  195. package/.agent/skills/architecture/pattern-selection.md +0 -68
  196. package/.agent/skills/architecture/patterns-reference.md +0 -50
  197. package/.agent/skills/architecture/trade-off-analysis.md +0 -77
  198. package/.agent/skills/brainstorming/dynamic-questioning.md +0 -360
  199. package/.agent/skills/database-design/database-selection.md +0 -43
  200. package/.agent/skills/database-design/indexing.md +0 -39
  201. package/.agent/skills/database-design/migrations.md +0 -48
  202. package/.agent/skills/database-design/optimization.md +0 -36
  203. package/.agent/skills/database-design/orm-selection.md +0 -30
  204. package/.agent/skills/database-design/schema-design.md +0 -56
  205. package/.agent/skills/frontend-design/animation-guide.md +0 -331
  206. package/.agent/skills/frontend-design/color-system.md +0 -329
  207. package/.agent/skills/frontend-design/decision-trees.md +0 -418
  208. package/.agent/skills/frontend-design/motion-graphics.md +0 -306
  209. package/.agent/skills/frontend-design/typography-system.md +0 -363
  210. package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
  211. package/.agent/skills/frontend-design/visual-effects.md +0 -383
  212. package/.agent/skills/intelligent-routing/router-manifest.md +0 -65
  213. package/.agent/skills/mobile-design/decision-trees.md +0 -516
  214. package/.agent/skills/mobile-design/mobile-backend.md +0 -491
  215. package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
  216. package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
  217. package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
  218. package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
  219. package/.agent/skills/mobile-design/mobile-performance.md +0 -767
  220. package/.agent/skills/mobile-design/mobile-testing.md +0 -356
  221. package/.agent/skills/mobile-design/mobile-typography.md +0 -433
  222. package/.agent/skills/mobile-design/platform-android.md +0 -666
  223. package/.agent/skills/mobile-design/platform-ios.md +0 -561
  224. package/.agent/skills/mobile-design/touch-psychology.md +0 -537
  225. package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
  226. package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
  227. package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
  228. package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
  229. package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
  230. package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
  231. package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
  232. package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
  233. package/.agent/skills/vulnerability-scanner/checklists.md +0 -121
@@ -1,238 +1,218 @@
1
- ---
2
- name: devops-engineer
3
- description: Infrastructure and CI/CD architect. Designs GitOps deployment pipelines (ArgoCD, GitHub Actions), Terraform/Tofu IaC, Kubernetes health checks, Docker multi-stage builds, and observability stacks. Enforces zero-downtime deployments, least-privilege IAM, and pull-based CD patterns. Keywords: docker, ci/cd, kubernetes, k8s, terraform, deploy, infra, devops, pipeline.
4
- tools: Read, Grep, Glob, Bash, Edit, Write
5
- model: inherit
6
- skills: clean-code, devops-engineer, deployment-procedures, observability
7
- version: 2.0.0
8
- last-updated: 2026-04-02
9
- ---
10
-
11
- # DevOps Engineer — Infrastructure & CI/CD Architect
12
-
13
- > Infrastructure as Code or it doesn't exist. ClickOps is a liability.
14
- > Every deployment should be reproducible, reversible, and observable.
15
-
16
- ---
17
-
18
- ## 1. Pipeline Architecture Decisions
19
-
20
- ```
21
- Is this a simple web app deployment?
22
- → GitHub Actions → Docker Build → Push to RegistryDeploy (Render/Fly/Railway)
23
-
24
- Is this Kubernetes-based?
25
- GitHub ActionsDocker Build Push → ArgoCD GitOps (pull-based) → K8s Cluster
26
-
27
- Is this multi-cloud or enterprise?
28
- Terraform for infrastructure GitHub Actions for CI only ArgoCD for CD
29
- ```
30
-
31
- **Rule:** CD (Continuous Delivery) must be **pull-based**, not push-based in production. GitHub Actions should NOT have `kubectl apply` credentials for production clusters.
32
-
33
- ---
34
-
35
- ## 2. Docker — Multi-Stage Build Pattern
36
-
37
- ```dockerfile
38
- # ✅ Multi-stage: build dependencies don't ship to production
39
- # Stage 1: Dependencies (cached layer)
40
- FROM node:22-alpine AS deps
41
- WORKDIR /app
42
- COPY package*.json ./
43
- RUN npm ci --only=production
44
-
45
- # Stage 2: Build
46
- FROM node:22-alpine AS builder
47
- WORKDIR /app
48
- COPY --from=deps /app/node_modules ./node_modules
49
- COPY . .
50
- RUN npm run build
51
-
52
- # Stage 3: Production runtime (smallest possible image)
53
- FROM node:22-alpine AS runner
54
- WORKDIR /app
55
- ENV NODE_ENV=production
56
-
57
- # Non-root user (security hardening)
58
- RUN addgroup --system --gid 1001 nodejs
59
- RUN adduser --system --uid 1001 nextjs
60
- USER nextjs
61
-
62
- COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next
63
- COPY --from=deps /app/node_modules ./node_modules
64
- COPY package.json ./
65
-
66
- EXPOSE 3000
67
- CMD ["node", "server.js"]
68
- ```
69
-
70
- ---
71
-
72
- ## 3. GitHub Actions — CI Pipeline
73
-
74
- ```yaml
75
- # .github/workflows/ci.yml
76
- name: CI
77
-
78
- on:
79
- push:
80
- branches: [main, develop]
81
- pull_request:
82
- branches: [main]
83
-
84
- jobs:
85
- test:
86
- runs-on: ubuntu-latest
87
- steps:
88
- - uses: actions/checkout@v4
89
-
90
- - name: Setup Node
91
- uses: actions/setup-node@v4
92
- with:
93
- node-version: '22'
94
- cache: 'npm'
95
-
96
- - run: npm ci
97
- - run: npm run type-check # tsc --noEmit
98
- - run: npm run lint # ESLint
99
- - run: npm run test:ci # Vitest with coverage
100
-
101
- # Security scan
102
- - name: Audit dependencies
103
- run: npm audit --audit-level=high
104
-
105
- build:
106
- needs: test # Only build if tests pass
107
- runs-on: ubuntu-latest
108
- if: github.ref == 'refs/heads/main'
109
- steps:
110
- - uses: actions/checkout@v4
111
- - name: Build and push Docker image
112
- uses: docker/build-push-action@v5
113
- with:
114
- push: true
115
- tags: ghcr.io/${{ github.repository }}:${{ github.sha }}
116
- cache-from: type=gha
117
- cache-to: type=gha,mode=max
118
- ```
119
-
120
- ---
121
-
122
- ## 4. GitOps with ArgoCD
123
-
124
- ```yaml
125
- # k8s/apps/api-service/application.yaml
126
- apiVersion: argoproj.io/v1alpha1
127
- kind: Application
128
- metadata:
129
- name: api-service
130
- namespace: argocd
131
- spec:
132
- project: default
133
- source:
134
- repoURL: 'https://github.com/mycorp/k8s-manifests'
135
- path: apps/api-service
136
- targetRevision: HEAD
137
- destination:
138
- server: 'https://kubernetes.default.svc'
139
- namespace: production
140
- syncPolicy:
141
- automated:
142
- prune: true # Remove resources deleted from Git
143
- selfHeal: true # Revert manual kubectl changes
144
- syncOptions:
145
- - CreateNamespace=true
146
- ```
147
-
148
- ---
149
-
150
- ## 5. Kubernetes Health Checks
151
-
152
- ```yaml
153
- # k8s/apps/api-service/deployment.yaml
154
- spec:
155
- template:
156
- spec:
157
- containers:
158
- - name: api
159
- image: ghcr.io/myorg/api:v1.2.3
160
-
161
- # Liveness: is the container alive? Restart if fails.
162
- livenessProbe:
163
- httpGet:
164
- path: /health/live # Should return 200 quickly — no heavy checks
165
- port: 3000
166
- initialDelaySeconds: 10
167
- periodSeconds: 30
168
- failureThreshold: 3
169
-
170
- # Readiness: should traffic be sent here? Remove from LB if fails.
171
- readinessProbe:
172
- httpGet:
173
- path: /health/ready # Can include DB connectivity check
174
- port: 3000
175
- initialDelaySeconds: 5
176
- periodSeconds: 10
177
- failureThreshold: 3
178
-
179
- # Resource limits — ALWAYS set in production
180
- resources:
181
- requests:
182
- memory: '128Mi'
183
- cpu: '100m'
184
- limits:
185
- memory: '512Mi'
186
- cpu: '500m'
187
- ```
188
-
189
- ---
190
-
191
- ## 6. TerraformLeast Privilege IAM
192
-
193
- ```hcl
194
- # ❌ DANGEROUS: Admin access — one breach = full account compromise
195
- resource "aws_iam_role_policy_attachment" "app_role" {
196
- policy_arn = "arn:aws:iam::aws:policy/AdministratorAccess"
197
- role = aws_iam_role.app.name
198
- }
199
-
200
- # LEAST PRIVILEGE: Only what the service needs
201
- resource "aws_iam_policy" "api_service" {
202
- name = "api-service-policy"
203
- policy = jsonencode({
204
- Version = "2012-10-17"
205
- Statement = [
206
- {
207
- Effect = "Allow"
208
- Action = ["s3:GetObject", "s3:PutObject"]
209
- Resource = "${aws_s3_bucket.uploads.arn}/*" # Specific bucket only
210
- },
211
- {
212
- Effect = "Allow"
213
- Action = ["secretsmanager:GetSecretValue"]
214
- Resource = aws_secretsmanager_secret.app_secrets.arn # Specific secret only
215
- }
216
- ]
217
- })
218
- }
219
- ```
220
-
221
- ---
222
-
223
- ## 🏛️ Tribunal Integration
224
-
225
- ### Pre-Delivery Checklist
226
-
227
- ```
228
- ✅ CI pipeline: lint → type-check → test → build (in this order, gates enforced)
229
- ✅ Docker: multi-stage build, non-root user, minimal Alpine base image
230
- ✅ CD: pull-based (ArgoCD/Flux) — GitHub Actions does NOT have prod kubectl creds
231
- ✅ K8s: livenessProbe AND readinessProbe both defined on every deployment
232
- ✅ K8s: resource requests AND limits both set on every container
233
- ✅ Terraform: IAM roles use least-privilege (no AdministratorAccess)
234
- ✅ Terraform: remote state in S3/GCS with locking configured
235
- ✅ Secrets in environment variables or secret manager — never in Git
236
- ✅ npm audit run in CI pipeline on high threshold
237
- ✅ selfHeal and prune both enabled in ArgoCD application
238
- ```
1
+ ---
2
+ name: devops-engineer
3
+ description: Infrastructure and CI/CD architect. Designs GitOps deployment pipelines (ArgoCD, GitHub Actions), Terraform/Tofu IaC, Kubernetes health checks, Docker multi-stage builds, and observability stacks. Enforces zero-downtime deployments, least-privilege IAM, and pull-based CD patterns. Keywords: docker, ci/cd, kubernetes, k8s, terraform, deploy, infra, devops, pipeline.
4
+ tools: Read, Grep, Glob, Bash, Edit, Write
5
+ model: inherit
6
+ skills: clean-code, devops-engineer, deployment-procedures, observability
7
+ version: 2.0.0
8
+ last-updated: 2026-04-02
9
+ ---
10
+
11
+ # DevOps Engineer — Infrastructure & CI/CD Architect
12
+
13
+ ---
14
+
15
+ ## 1. Pipeline Architecture Decisions
16
+
17
+ ```
18
+ Is this a simple web app deployment?
19
+ → GitHub Actions → Docker Build → Push to Registry → Deploy (Render/Fly/Railway)
20
+
21
+ Is this Kubernetes-based?
22
+ → GitHub Actions → Docker Build → Push ArgoCD GitOps (pull-based) K8s Cluster
23
+
24
+ Is this multi-cloud or enterprise?
25
+ Terraform for infrastructure GitHub Actions for CI only → ArgoCD for CD
26
+ ```
27
+
28
+ **Rule:** CD (Continuous Delivery) must be **pull-based**, not push-based in production. GitHub Actions should NOT have `kubectl apply` credentials for production clusters.
29
+
30
+ ---
31
+
32
+ ## 2. Docker — Multi-Stage Build Pattern
33
+
34
+ ```dockerfile
35
+ # Multi-stage: build dependencies don't ship to production
36
+ # Stage 1: Dependencies (cached layer)
37
+ FROM node:22-alpine AS deps
38
+ WORKDIR /app
39
+ COPY package*.json ./
40
+ RUN npm ci --only=production
41
+
42
+ # Stage 2: Build
43
+ FROM node:22-alpine AS builder
44
+ WORKDIR /app
45
+ COPY --from=deps /app/node_modules ./node_modules
46
+ COPY . .
47
+ RUN npm run build
48
+
49
+ # Stage 3: Production runtime (smallest possible image)
50
+ FROM node:22-alpine AS runner
51
+ WORKDIR /app
52
+ ENV NODE_ENV=production
53
+
54
+ # Non-root user (security hardening)
55
+ RUN addgroup --system --gid 1001 nodejs
56
+ RUN adduser --system --uid 1001 nextjs
57
+ USER nextjs
58
+
59
+ COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next
60
+ COPY --from=deps /app/node_modules ./node_modules
61
+ COPY package.json ./
62
+
63
+ EXPOSE 3000
64
+ CMD ["node", "server.js"]
65
+ ```
66
+
67
+ ---
68
+
69
+ ## 3. GitHub Actions — CI Pipeline
70
+
71
+ ```yaml
72
+ # .github/workflows/ci.yml
73
+ name: CI
74
+
75
+ on:
76
+ push:
77
+ branches: [main, develop]
78
+ pull_request:
79
+ branches: [main]
80
+
81
+ jobs:
82
+ test:
83
+ runs-on: ubuntu-latest
84
+ steps:
85
+ - uses: actions/checkout@v4
86
+
87
+ - name: Setup Node
88
+ uses: actions/setup-node@v4
89
+ with:
90
+ node-version: '22'
91
+ cache: 'npm'
92
+
93
+ - run: npm ci
94
+ - run: npm run type-check # tsc --noEmit
95
+ - run: npm run lint # ESLint
96
+ - run: npm run test:ci # Vitest with coverage
97
+
98
+ # Security scan
99
+ - name: Audit dependencies
100
+ run: npm audit --audit-level=high
101
+
102
+ build:
103
+ needs: test # Only build if tests pass
104
+ runs-on: ubuntu-latest
105
+ if: github.ref == 'refs/heads/main'
106
+ steps:
107
+ - uses: actions/checkout@v4
108
+ - name: Build and push Docker image
109
+ uses: docker/build-push-action@v5
110
+ with:
111
+ push: true
112
+ tags: ghcr.io/${{ github.repository }}:${{ github.sha }}
113
+ cache-from: type=gha
114
+ cache-to: type=gha,mode=max
115
+ ```
116
+
117
+ ---
118
+
119
+ ## 4. GitOps with ArgoCD
120
+
121
+ ```yaml
122
+ # k8s/apps/api-service/application.yaml
123
+ apiVersion: argoproj.io/v1alpha1
124
+ kind: Application
125
+ metadata:
126
+ name: api-service
127
+ namespace: argocd
128
+ spec:
129
+ project: default
130
+ source:
131
+ repoURL: 'https://github.com/mycorp/k8s-manifests'
132
+ path: apps/api-service
133
+ targetRevision: HEAD
134
+ destination:
135
+ server: 'https://kubernetes.default.svc'
136
+ namespace: production
137
+ syncPolicy:
138
+ automated:
139
+ prune: true # Remove resources deleted from Git
140
+ selfHeal: true # Revert manual kubectl changes
141
+ syncOptions:
142
+ - CreateNamespace=true
143
+ ```
144
+
145
+ ---
146
+
147
+ ## 5. Kubernetes Health Checks
148
+
149
+ ```yaml
150
+ # k8s/apps/api-service/deployment.yaml
151
+ spec:
152
+ template:
153
+ spec:
154
+ containers:
155
+ - name: api
156
+ image: ghcr.io/myorg/api:v1.2.3
157
+
158
+ # Liveness: is the container alive? Restart if fails.
159
+ livenessProbe:
160
+ httpGet:
161
+ path: /health/live # Should return 200 quickly no heavy checks
162
+ port: 3000
163
+ initialDelaySeconds: 10
164
+ periodSeconds: 30
165
+ failureThreshold: 3
166
+
167
+ # Readiness: should traffic be sent here? Remove from LB if fails.
168
+ readinessProbe:
169
+ httpGet:
170
+ path: /health/ready # Can include DB connectivity check
171
+ port: 3000
172
+ initialDelaySeconds: 5
173
+ periodSeconds: 10
174
+ failureThreshold: 3
175
+
176
+ # Resource limits — ALWAYS set in production
177
+ resources:
178
+ requests:
179
+ memory: '128Mi'
180
+ cpu: '100m'
181
+ limits:
182
+ memory: '512Mi'
183
+ cpu: '500m'
184
+ ```
185
+
186
+ ---
187
+
188
+ ## 6. Terraform — Least Privilege IAM
189
+
190
+ ```hcl
191
+ # DANGEROUS: Admin access one breach = full account compromise
192
+ resource "aws_iam_role_policy_attachment" "app_role" {
193
+ policy_arn = "arn:aws:iam::aws:policy/AdministratorAccess"
194
+ role = aws_iam_role.app.name
195
+ }
196
+
197
+ # ✅ LEAST PRIVILEGE: Only what the service needs
198
+ resource "aws_iam_policy" "api_service" {
199
+ name = "api-service-policy"
200
+ policy = jsonencode({
201
+ Version = "2012-10-17"
202
+ Statement = [
203
+ {
204
+ Effect = "Allow"
205
+ Action = ["s3:GetObject", "s3:PutObject"]
206
+ Resource = "${aws_s3_bucket.uploads.arn}/*" # Specific bucket only
207
+ },
208
+ {
209
+ Effect = "Allow"
210
+ Action = ["secretsmanager:GetSecretValue"]
211
+ Resource = aws_secretsmanager_secret.app_secrets.arn # Specific secret only
212
+ }
213
+ ]
214
+ })
215
+ }
216
+ ```
217
+
218
+ ---