tribunal-kit 3.0.0 → 3.1.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 (226) 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/product-manager.md +142 -162
  24. package/.agent/agents/product-owner.md +6 -25
  25. package/.agent/agents/project-planner.md +142 -162
  26. package/.agent/agents/qa-automation-engineer.md +225 -242
  27. package/.agent/agents/security-auditor.md +174 -194
  28. package/.agent/agents/seo-specialist.md +193 -213
  29. package/.agent/agents/sql-reviewer.md +161 -194
  30. package/.agent/agents/supervisor-agent.md +184 -203
  31. package/.agent/agents/swarm-worker-contracts.md +17 -17
  32. package/.agent/agents/swarm-worker-registry.md +46 -46
  33. package/.agent/agents/test-coverage-reviewer.md +160 -193
  34. package/.agent/agents/test-engineer.md +0 -21
  35. package/.agent/agents/type-safety-reviewer.md +175 -208
  36. package/.agent/patterns/generator.md +9 -9
  37. package/.agent/patterns/inversion.md +12 -12
  38. package/.agent/patterns/pipeline.md +9 -9
  39. package/.agent/patterns/reviewer.md +13 -13
  40. package/.agent/patterns/tool-wrapper.md +9 -9
  41. package/.agent/rules/GEMINI.md +63 -63
  42. package/.agent/scripts/compress_skills.py +167 -0
  43. package/.agent/scripts/consolidate_skills.py +173 -0
  44. package/.agent/scripts/deep_compress.py +202 -0
  45. package/.agent/scripts/minify_context.py +80 -0
  46. package/.agent/scripts/security_scan.py +1 -1
  47. package/.agent/scripts/strip_tribunal.py +41 -0
  48. package/.agent/skills/agent-organizer/SKILL.md +92 -126
  49. package/.agent/skills/agentic-patterns/SKILL.md +0 -70
  50. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +126 -160
  51. package/.agent/skills/api-patterns/SKILL.md +123 -215
  52. package/.agent/skills/api-security-auditor/SKILL.md +143 -177
  53. package/.agent/skills/app-builder/SKILL.md +326 -50
  54. package/.agent/skills/app-builder/templates/SKILL.md +13 -15
  55. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +16 -16
  56. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +22 -22
  57. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +18 -18
  58. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +20 -20
  59. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +17 -17
  60. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +18 -18
  61. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +21 -21
  62. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +19 -19
  63. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +26 -26
  64. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +26 -26
  65. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +19 -19
  66. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +18 -18
  67. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +20 -20
  68. package/.agent/skills/appflow-wireframe/SKILL.md +87 -121
  69. package/.agent/skills/architecture/SKILL.md +82 -252
  70. package/.agent/skills/authentication-best-practices/SKILL.md +139 -173
  71. package/.agent/skills/bash-linux/SKILL.md +120 -154
  72. package/.agent/skills/behavioral-modes/SKILL.md +8 -69
  73. package/.agent/skills/brainstorming/SKILL.md +428 -104
  74. package/.agent/skills/building-native-ui/SKILL.md +143 -174
  75. package/.agent/skills/clean-code/SKILL.md +323 -360
  76. package/.agent/skills/code-review-checklist/SKILL.md +0 -62
  77. package/.agent/skills/config-validator/SKILL.md +107 -141
  78. package/.agent/skills/csharp-developer/SKILL.md +468 -528
  79. package/.agent/skills/database-design/SKILL.md +104 -369
  80. package/.agent/skills/deployment-procedures/SKILL.md +111 -145
  81. package/.agent/skills/devops-engineer/SKILL.md +295 -332
  82. package/.agent/skills/devops-incident-responder/SKILL.md +79 -113
  83. package/.agent/skills/doc.md +5 -5
  84. package/.agent/skills/documentation-templates/SKILL.md +19 -63
  85. package/.agent/skills/edge-computing/SKILL.md +123 -157
  86. package/.agent/skills/extract-design-system/SKILL.md +100 -134
  87. package/.agent/skills/framer-motion-expert/SKILL.md +111 -855
  88. package/.agent/skills/frontend-design/SKILL.md +151 -499
  89. package/.agent/skills/game-design-expert/SKILL.md +71 -105
  90. package/.agent/skills/game-engineering-expert/SKILL.md +88 -122
  91. package/.agent/skills/geo-fundamentals/SKILL.md +89 -124
  92. package/.agent/skills/github-operations/SKILL.md +279 -314
  93. package/.agent/skills/gsap-expert/SKILL.md +119 -826
  94. package/.agent/skills/i18n-localization/SKILL.md +104 -138
  95. package/.agent/skills/intelligent-routing/SKILL.md +159 -127
  96. package/.agent/skills/lint-and-validate/SKILL.md +8 -52
  97. package/.agent/skills/llm-engineering/SKILL.md +344 -357
  98. package/.agent/skills/local-first/SKILL.md +120 -154
  99. package/.agent/skills/mcp-builder/SKILL.md +84 -118
  100. package/.agent/skills/mobile-design/SKILL.md +213 -219
  101. package/.agent/skills/motion-engineering/SKILL.md +184 -0
  102. package/.agent/skills/nextjs-react-expert/SKILL.md +99 -698
  103. package/.agent/skills/nodejs-best-practices/SKILL.md +498 -559
  104. package/.agent/skills/observability/SKILL.md +293 -330
  105. package/.agent/skills/parallel-agents/SKILL.md +88 -122
  106. package/.agent/skills/performance-profiling/SKILL.md +217 -254
  107. package/.agent/skills/plan-writing/SKILL.md +84 -118
  108. package/.agent/skills/platform-engineer/SKILL.md +89 -123
  109. package/.agent/skills/playwright-best-practices/SKILL.md +128 -162
  110. package/.agent/skills/powershell-windows/SKILL.md +112 -146
  111. package/.agent/skills/python-patterns/SKILL.md +7 -35
  112. package/.agent/skills/python-pro/SKILL.md +148 -754
  113. package/.agent/skills/react-specialist/SKILL.md +123 -827
  114. package/.agent/skills/readme-builder/SKILL.md +15 -85
  115. package/.agent/skills/realtime-patterns/SKILL.md +269 -304
  116. package/.agent/skills/red-team-tactics/SKILL.md +10 -51
  117. package/.agent/skills/rust-pro/SKILL.md +623 -701
  118. package/.agent/skills/seo-fundamentals/SKILL.md +120 -154
  119. package/.agent/skills/server-management/SKILL.md +156 -190
  120. package/.agent/skills/shadcn-ui-expert/SKILL.md +172 -206
  121. package/.agent/skills/skill-creator/SKILL.md +18 -58
  122. package/.agent/skills/sql-pro/SKILL.md +579 -633
  123. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +28 -68
  124. package/.agent/skills/swiftui-expert/SKILL.md +142 -176
  125. package/.agent/skills/systematic-debugging/SKILL.md +84 -118
  126. package/.agent/skills/tailwind-patterns/SKILL.md +516 -576
  127. package/.agent/skills/tdd-workflow/SKILL.md +103 -137
  128. package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
  129. package/.agent/skills/testing-patterns/SKILL.md +512 -573
  130. package/.agent/skills/trend-researcher/SKILL.md +30 -71
  131. package/.agent/skills/ui-ux-pro-max/SKILL.md +0 -41
  132. package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
  133. package/.agent/skills/vue-expert/SKILL.md +127 -866
  134. package/.agent/skills/vulnerability-scanner/SKILL.md +354 -269
  135. package/.agent/skills/web-accessibility-auditor/SKILL.md +159 -193
  136. package/.agent/skills/web-design-guidelines/SKILL.md +17 -61
  137. package/.agent/skills/webapp-testing/SKILL.md +111 -145
  138. package/.agent/skills/whimsy-injector/SKILL.md +58 -132
  139. package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
  140. package/.agent/workflows/api-tester.md +151 -151
  141. package/.agent/workflows/audit.md +127 -138
  142. package/.agent/workflows/brainstorm.md +110 -110
  143. package/.agent/workflows/changelog.md +112 -112
  144. package/.agent/workflows/create.md +124 -124
  145. package/.agent/workflows/debug.md +165 -189
  146. package/.agent/workflows/deploy.md +180 -189
  147. package/.agent/workflows/enhance.md +128 -151
  148. package/.agent/workflows/fix.md +114 -135
  149. package/.agent/workflows/generate.md +12 -4
  150. package/.agent/workflows/migrate.md +160 -160
  151. package/.agent/workflows/orchestrate.md +168 -168
  152. package/.agent/workflows/performance-benchmarker.md +114 -123
  153. package/.agent/workflows/plan.md +173 -173
  154. package/.agent/workflows/preview.md +80 -80
  155. package/.agent/workflows/refactor.md +161 -183
  156. package/.agent/workflows/review-ai.md +101 -129
  157. package/.agent/workflows/review.md +116 -116
  158. package/.agent/workflows/session.md +94 -94
  159. package/.agent/workflows/status.md +79 -79
  160. package/.agent/workflows/strengthen-skills.md +138 -139
  161. package/.agent/workflows/swarm.md +179 -179
  162. package/.agent/workflows/test.md +189 -211
  163. package/.agent/workflows/tribunal-backend.md +93 -113
  164. package/.agent/workflows/tribunal-database.md +94 -115
  165. package/.agent/workflows/tribunal-frontend.md +95 -118
  166. package/.agent/workflows/tribunal-full.md +92 -133
  167. package/.agent/workflows/tribunal-mobile.md +94 -119
  168. package/.agent/workflows/tribunal-performance.md +109 -133
  169. package/.agent/workflows/ui-ux-pro-max.md +122 -143
  170. package/package.json +1 -1
  171. package/.agent/skills/api-patterns/api-style.md +0 -42
  172. package/.agent/skills/api-patterns/auth.md +0 -24
  173. package/.agent/skills/api-patterns/documentation.md +0 -26
  174. package/.agent/skills/api-patterns/graphql.md +0 -41
  175. package/.agent/skills/api-patterns/rate-limiting.md +0 -31
  176. package/.agent/skills/api-patterns/response.md +0 -37
  177. package/.agent/skills/api-patterns/rest.md +0 -40
  178. package/.agent/skills/api-patterns/security-testing.md +0 -122
  179. package/.agent/skills/api-patterns/trpc.md +0 -41
  180. package/.agent/skills/api-patterns/versioning.md +0 -22
  181. package/.agent/skills/app-builder/agent-coordination.md +0 -71
  182. package/.agent/skills/app-builder/feature-building.md +0 -53
  183. package/.agent/skills/app-builder/project-detection.md +0 -34
  184. package/.agent/skills/app-builder/scaffolding.md +0 -118
  185. package/.agent/skills/app-builder/tech-stack.md +0 -40
  186. package/.agent/skills/architecture/context-discovery.md +0 -43
  187. package/.agent/skills/architecture/examples.md +0 -94
  188. package/.agent/skills/architecture/pattern-selection.md +0 -68
  189. package/.agent/skills/architecture/patterns-reference.md +0 -50
  190. package/.agent/skills/architecture/trade-off-analysis.md +0 -77
  191. package/.agent/skills/brainstorming/dynamic-questioning.md +0 -360
  192. package/.agent/skills/database-design/database-selection.md +0 -43
  193. package/.agent/skills/database-design/indexing.md +0 -39
  194. package/.agent/skills/database-design/migrations.md +0 -48
  195. package/.agent/skills/database-design/optimization.md +0 -36
  196. package/.agent/skills/database-design/orm-selection.md +0 -30
  197. package/.agent/skills/database-design/schema-design.md +0 -56
  198. package/.agent/skills/frontend-design/animation-guide.md +0 -331
  199. package/.agent/skills/frontend-design/color-system.md +0 -329
  200. package/.agent/skills/frontend-design/decision-trees.md +0 -418
  201. package/.agent/skills/frontend-design/motion-graphics.md +0 -306
  202. package/.agent/skills/frontend-design/typography-system.md +0 -363
  203. package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
  204. package/.agent/skills/frontend-design/visual-effects.md +0 -383
  205. package/.agent/skills/intelligent-routing/router-manifest.md +0 -65
  206. package/.agent/skills/mobile-design/decision-trees.md +0 -516
  207. package/.agent/skills/mobile-design/mobile-backend.md +0 -491
  208. package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
  209. package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
  210. package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
  211. package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
  212. package/.agent/skills/mobile-design/mobile-performance.md +0 -767
  213. package/.agent/skills/mobile-design/mobile-testing.md +0 -356
  214. package/.agent/skills/mobile-design/mobile-typography.md +0 -433
  215. package/.agent/skills/mobile-design/platform-android.md +0 -666
  216. package/.agent/skills/mobile-design/platform-ios.md +0 -561
  217. package/.agent/skills/mobile-design/touch-psychology.md +0 -537
  218. package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
  219. package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
  220. package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
  221. package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
  222. package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
  223. package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
  224. package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
  225. package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
  226. 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
+ ---