tribunal-kit 4.5.0 โ†’ 4.6.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 (217) hide show
  1. package/.agent/.shared/ui-ux-pro-max/README.md +4 -4
  2. package/.agent/ARCHITECTURE.md +279 -277
  3. package/.agent/GEMINI.md +127 -121
  4. package/.agent/agents/accessibility-reviewer.md +187 -187
  5. package/.agent/agents/ai-code-reviewer.md +199 -199
  6. package/.agent/agents/api-architect.md +71 -66
  7. package/.agent/agents/backend-specialist.md +219 -215
  8. package/.agent/agents/cloud-engineer.md +98 -0
  9. package/.agent/agents/code-archaeologist.md +168 -161
  10. package/.agent/agents/database-architect.md +184 -184
  11. package/.agent/agents/db-latency-auditor.md +213 -216
  12. package/.agent/agents/debugger.md +198 -191
  13. package/.agent/agents/dependency-reviewer.md +106 -103
  14. package/.agent/agents/devops-engineer.md +218 -218
  15. package/.agent/agents/documentation-writer.md +209 -201
  16. package/.agent/agents/explorer-agent.md +167 -160
  17. package/.agent/agents/frontend-reviewer.md +162 -160
  18. package/.agent/agents/frontend-specialist.md +257 -248
  19. package/.agent/agents/game-developer.md +48 -48
  20. package/.agent/agents/logic-reviewer.md +118 -116
  21. package/.agent/agents/mobile-developer.md +197 -200
  22. package/.agent/agents/mobile-reviewer.md +159 -162
  23. package/.agent/agents/orchestrator.md +187 -181
  24. package/.agent/agents/penetration-tester.md +160 -157
  25. package/.agent/agents/performance-optimizer.md +183 -183
  26. package/.agent/agents/performance-reviewer.md +178 -178
  27. package/.agent/agents/precedence-reviewer.md +251 -250
  28. package/.agent/agents/product-manager.md +149 -142
  29. package/.agent/agents/product-owner.md +81 -80
  30. package/.agent/agents/project-planner.md +152 -142
  31. package/.agent/agents/qa-automation-engineer.md +216 -225
  32. package/.agent/agents/resilience-reviewer.md +88 -88
  33. package/.agent/agents/schema-reviewer.md +67 -67
  34. package/.agent/agents/security-auditor.md +180 -174
  35. package/.agent/agents/seo-specialist.md +188 -193
  36. package/.agent/agents/sql-reviewer.md +159 -161
  37. package/.agent/agents/supervisor-agent.md +173 -184
  38. package/.agent/agents/swarm-worker-contracts.md +170 -166
  39. package/.agent/agents/swarm-worker-registry.md +92 -92
  40. package/.agent/agents/system-architect.md +85 -0
  41. package/.agent/agents/test-coverage-reviewer.md +158 -160
  42. package/.agent/agents/test-engineer.md +118 -118
  43. package/.agent/agents/throughput-optimizer.md +291 -299
  44. package/.agent/agents/type-safety-reviewer.md +182 -175
  45. package/.agent/agents/ui-ux-auditor.md +300 -292
  46. package/.agent/agents/vitals-reviewer.md +223 -223
  47. package/.agent/mcp_config.json +37 -40
  48. package/.agent/patterns/generator.md +11 -9
  49. package/.agent/patterns/inversion.md +14 -12
  50. package/.agent/patterns/pipeline.md +11 -9
  51. package/.agent/patterns/reviewer.md +15 -13
  52. package/.agent/patterns/tool-wrapper.md +11 -9
  53. package/.agent/routing_index.json +654 -0
  54. package/.agent/rules/GEMINI.md +358 -352
  55. package/.agent/scripts/compile_router.py +112 -0
  56. package/.agent/scripts/migrate_skills_frontmatter.py +64 -0
  57. package/.agent/scripts/strengthen_skills.js +1 -1
  58. package/.agent/skills/advanced-rag-pipelines/SKILL.md +56 -0
  59. package/.agent/skills/agent-organizer/SKILL.md +156 -150
  60. package/.agent/skills/agentic-patterns/SKILL.md +313 -315
  61. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +190 -184
  62. package/.agent/skills/api-patterns/SKILL.md +253 -247
  63. package/.agent/skills/api-security-auditor/SKILL.md +195 -193
  64. package/.agent/skills/app-builder/SKILL.md +573 -572
  65. package/.agent/skills/app-builder/templates/SKILL.md +108 -115
  66. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  67. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  68. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  69. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  70. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  71. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  72. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  73. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -122
  74. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -122
  75. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -169
  76. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -134
  77. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  78. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -119
  79. package/.agent/skills/appflow-wireframe/SKILL.md +146 -145
  80. package/.agent/skills/architecture/SKILL.md +226 -219
  81. package/.agent/skills/authentication-best-practices/SKILL.md +197 -189
  82. package/.agent/skills/backend-security-expert/SKILL.md +16 -2
  83. package/.agent/skills/bash-linux/SKILL.md +179 -179
  84. package/.agent/skills/behavioral-modes/SKILL.md +239 -223
  85. package/.agent/skills/brainstorming/SKILL.md +498 -486
  86. package/.agent/skills/browser-native-ai/SKILL.md +57 -4
  87. package/.agent/skills/building-native-ui/SKILL.md +202 -202
  88. package/.agent/skills/cicd-pro/SKILL.md +442 -0
  89. package/.agent/skills/clean-code/SKILL.md +400 -381
  90. package/.agent/skills/cloud-architect/SKILL.md +439 -0
  91. package/.agent/skills/code-review-checklist/SKILL.md +203 -194
  92. package/.agent/skills/config-validator/SKILL.md +165 -165
  93. package/.agent/skills/containerization-pro/SKILL.md +452 -0
  94. package/.agent/skills/csharp-developer/SKILL.md +518 -518
  95. package/.agent/skills/data-validation-schemas/SKILL.md +333 -328
  96. package/.agent/skills/database-design/SKILL.md +247 -240
  97. package/.agent/skills/deployment-procedures/SKILL.md +172 -169
  98. package/.agent/skills/devops-engineer/SKILL.md +345 -345
  99. package/.agent/skills/devops-incident-responder/SKILL.md +143 -137
  100. package/.agent/skills/doc.md +209 -177
  101. package/.agent/skills/documentation-templates/SKILL.md +291 -279
  102. package/.agent/skills/edge-computing/SKILL.md +183 -181
  103. package/.agent/skills/error-resilience/SKILL.md +411 -428
  104. package/.agent/skills/extract-design-system/SKILL.md +160 -158
  105. package/.agent/skills/framer-motion-expert/SKILL.md +253 -244
  106. package/.agent/skills/frontend-design/SKILL.md +208 -201
  107. package/.agent/skills/frontend-security-expert/SKILL.md +16 -3
  108. package/.agent/skills/game-design-expert/SKILL.md +132 -129
  109. package/.agent/skills/game-engineering-expert/SKILL.md +148 -146
  110. package/.agent/skills/generative-ui-expert/SKILL.md +57 -1
  111. package/.agent/skills/geo-fundamentals/SKILL.md +148 -147
  112. package/.agent/skills/git-pro/SKILL.md +435 -0
  113. package/.agent/skills/github-operations/SKILL.md +335 -329
  114. package/.agent/skills/gsap-core/SKILL.md +319 -308
  115. package/.agent/skills/gsap-frameworks/SKILL.md +213 -207
  116. package/.agent/skills/gsap-performance/SKILL.md +139 -133
  117. package/.agent/skills/gsap-plugins/SKILL.md +486 -480
  118. package/.agent/skills/gsap-react/SKILL.md +202 -189
  119. package/.agent/skills/gsap-scrolltrigger/SKILL.md +357 -350
  120. package/.agent/skills/gsap-timeline/SKILL.md +165 -161
  121. package/.agent/skills/gsap-utils/SKILL.md +344 -338
  122. package/.agent/skills/harness-protocol/SKILL.md +48 -0
  123. package/.agent/skills/i18n-localization/SKILL.md +174 -163
  124. package/.agent/skills/intelligent-routing/SKILL.md +202 -246
  125. package/.agent/skills/knowledge-graph/SKILL.md +60 -52
  126. package/.agent/skills/lint-and-validate/SKILL.md +261 -261
  127. package/.agent/skills/llm-engineering/SKILL.md +400 -394
  128. package/.agent/skills/local-first/SKILL.md +178 -178
  129. package/.agent/skills/mcp-builder/SKILL.md +143 -142
  130. package/.agent/skills/mobile-design/SKILL.md +272 -263
  131. package/.agent/skills/monorepo-management/SKILL.md +335 -334
  132. package/.agent/skills/motion-engineering/SKILL.md +266 -234
  133. package/.agent/skills/nextjs-react-expert/SKILL.md +236 -234
  134. package/.agent/skills/nodejs-best-practices/SKILL.md +547 -548
  135. package/.agent/skills/observability/SKILL.md +343 -343
  136. package/.agent/skills/parallel-agents/SKILL.md +143 -146
  137. package/.agent/skills/performance-profiling/SKILL.md +259 -267
  138. package/.agent/skills/plan-writing/SKILL.md +150 -142
  139. package/.agent/skills/platform-engineer/SKILL.md +148 -147
  140. package/.agent/skills/playwright-best-practices/SKILL.md +188 -187
  141. package/.agent/skills/powershell-windows/SKILL.md +162 -162
  142. package/.agent/skills/project-idioms/SKILL.md +137 -137
  143. package/.agent/skills/python-patterns/SKILL.md +260 -259
  144. package/.agent/skills/python-pro/SKILL.md +324 -323
  145. package/.agent/skills/react-specialist/SKILL.md +305 -277
  146. package/.agent/skills/readme-builder/SKILL.md +310 -300
  147. package/.agent/skills/realtime-patterns/SKILL.md +323 -319
  148. package/.agent/skills/red-team-tactics/SKILL.md +231 -218
  149. package/.agent/skills/rust-pro/SKILL.md +671 -673
  150. package/.agent/skills/seo-fundamentals/SKILL.md +179 -179
  151. package/.agent/skills/server-management/SKILL.md +218 -214
  152. package/.agent/skills/shadcn-ui-expert/SKILL.md +231 -231
  153. package/.agent/skills/skill-creator/SKILL.md +87 -86
  154. package/.agent/skills/sql-pro/SKILL.md +629 -629
  155. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +97 -97
  156. package/.agent/skills/swiftui-expert/SKILL.md +204 -201
  157. package/.agent/skills/system-design-pro/SKILL.md +345 -0
  158. package/.agent/skills/systematic-debugging/SKILL.md +153 -142
  159. package/.agent/skills/tailwind-patterns/SKILL.md +610 -566
  160. package/.agent/skills/tdd-workflow/SKILL.md +169 -161
  161. package/.agent/skills/test-result-analyzer/SKILL.md +313 -309
  162. package/.agent/skills/testing-patterns/SKILL.md +566 -579
  163. package/.agent/skills/trend-researcher/SKILL.md +243 -237
  164. package/.agent/skills/typescript-advanced/SKILL.md +336 -335
  165. package/.agent/skills/ui-ux-pro-max/SKILL.md +590 -562
  166. package/.agent/skills/ui-ux-researcher/SKILL.md +244 -244
  167. package/.agent/skills/vue-expert/SKILL.md +294 -275
  168. package/.agent/skills/vulnerability-scanner/SKILL.md +416 -404
  169. package/.agent/skills/web-accessibility-auditor/SKILL.md +219 -218
  170. package/.agent/skills/web-design-guidelines/SKILL.md +192 -186
  171. package/.agent/skills/webapp-testing/SKILL.md +167 -169
  172. package/.agent/skills/webgpu-performance/SKILL.md +56 -2
  173. package/.agent/skills/whimsy-injector/SKILL.md +346 -325
  174. package/.agent/skills/workflow-optimizer/SKILL.md +231 -229
  175. package/.agent/workflows/acf.md +141 -0
  176. package/.agent/workflows/api-tester.md +176 -151
  177. package/.agent/workflows/audit.md +150 -127
  178. package/.agent/workflows/brainstorm.md +134 -110
  179. package/.agent/workflows/changelog.md +140 -112
  180. package/.agent/workflows/create.md +168 -124
  181. package/.agent/workflows/debug.md +190 -165
  182. package/.agent/workflows/deploy.md +201 -180
  183. package/.agent/workflows/enhance.md +154 -128
  184. package/.agent/workflows/fix.md +136 -114
  185. package/.agent/workflows/generate.md +198 -183
  186. package/.agent/workflows/marathon.md +37 -11
  187. package/.agent/workflows/migrate.md +184 -160
  188. package/.agent/workflows/orchestrate.md +192 -168
  189. package/.agent/workflows/performance-benchmarker.md +135 -114
  190. package/.agent/workflows/plan.md +196 -173
  191. package/.agent/workflows/preview.md +103 -80
  192. package/.agent/workflows/refactor.md +192 -161
  193. package/.agent/workflows/review-ai.md +125 -101
  194. package/.agent/workflows/review.md +141 -116
  195. package/.agent/workflows/session.md +122 -94
  196. package/.agent/workflows/status.md +101 -79
  197. package/.agent/workflows/strengthen-skills.md +164 -138
  198. package/.agent/workflows/super-prompt.md +24 -0
  199. package/.agent/workflows/swarm.md +193 -179
  200. package/.agent/workflows/test.md +211 -189
  201. package/.agent/workflows/tribunal-backend.md +136 -105
  202. package/.agent/workflows/tribunal-database.md +122 -95
  203. package/.agent/workflows/tribunal-frontend.md +221 -96
  204. package/.agent/workflows/tribunal-full.md +129 -100
  205. package/.agent/workflows/tribunal-mobile.md +122 -95
  206. package/.agent/workflows/tribunal-performance.md +136 -110
  207. package/.agent/workflows/tribunal-speed.md +209 -183
  208. package/.agent/workflows/ui-ux-pro-max.md +145 -122
  209. package/README.md +107 -55
  210. package/bin/mcp-server.js +159 -0
  211. package/bin/tribunal-kit.js +105 -29
  212. package/bin/wrapper.js +16 -7
  213. package/mcp_config.json +9 -0
  214. package/package.json +94 -86
  215. package/scripts/changelog.js +4 -3
  216. package/scripts/validate-payload.js +6 -1
  217. package/scripts/postinstall.js +0 -127
@@ -0,0 +1,442 @@
1
+ ---
2
+ name: cicd-pro
3
+ description: Enterprise-grade CI/CD mastery. Golden Path - GitHub Actions + Docker + AWS ECS. 3-stage pipeline architecture (Validateโ†’Buildโ†’Deploy), OIDC-based AWS auth (no static secrets), Blue/Green and Canary deployment with ECS, environment promotion gates (devโ†’stagingโ†’production), rollback playbooks, Slack notifications, and reusable workflow patterns. Use when designing or implementing production CI/CD pipelines.
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: [containerization-pro, cloud-architect]
12
+ trigger-signals:
13
+ strong: [CI/CD pipeline, GitHub Actions, Blue/Green deploy, OIDC AWS]
14
+ ---
15
+
16
+ ## Hallucination Traps (Read First)
17
+
18
+ - โŒ Missing `concurrency:` block โ†’ โœ… Without it, parallel deploys collide and corrupt production state
19
+ - โŒ `${{ secrets.GITHUB_TOKEN }}` for cross-repo operations โ†’ โœ… GITHUB_TOKEN scope is limited to current repo; use GitHub App token or PAT
20
+ - โŒ Static `AWS_ACCESS_KEY_ID` secrets โ†’ โœ… Use OIDC (`id-token: write` permission + `configure-aws-credentials` action)
21
+ - โŒ Deploying directly to production on every push โ†’ โœ… Always have a staging gate; production requires approval environment
22
+ - โŒ Skipping rollback strategy โ†’ โœ… Every deploy pipeline must define a concrete rollback path before execution
23
+ - โŒ `actions/checkout@v3` โ†’ โœ… Always use `@v4` (v3 is deprecated and uses Node 16)
24
+
25
+ ---
26
+
27
+ # CI/CD Pro โ€” Enterprise Pipeline Mastery
28
+
29
+ ## 1. The 3-Stage Pipeline Model
30
+
31
+ ```
32
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
33
+ โ”‚ VALIDATE (Parallel) BUILD DEPLOY โ”‚
34
+ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
35
+ โ”‚ โ”‚ lint โ”‚ โ”‚ Docker โ”‚ โ”‚ staging โ”‚ โ”‚
36
+ โ”‚ โ”‚ typecheck โ”œโ”€โ”€all passโ”€โ”€โ†’ โ”‚ build + โ”œโ”€โ”€โ†’ โ”‚ (auto) โ”‚ โ”‚
37
+ โ”‚ โ”‚ unit tests โ”‚ โ”‚ ECR pushโ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
38
+ โ”‚ โ”‚ sec audit โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚
39
+ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ manual approval โ”‚
40
+ โ”‚ โ†“ โ”‚
41
+ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
42
+ โ”‚ โ”‚ productionโ”‚ โ”‚
43
+ โ”‚ โ”‚ (gated) โ”‚ โ”‚
44
+ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
45
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
46
+ ```
47
+
48
+ ---
49
+
50
+ ## 2. Complete Pipeline (GitHub Actions + AWS ECS)
51
+
52
+ ```yaml
53
+ # .github/workflows/ci-cd.yml
54
+ name: CI/CD
55
+
56
+ on:
57
+ push:
58
+ branches: [main]
59
+ pull_request:
60
+ branches: [main]
61
+
62
+ # โœ… CRITICAL: Prevent parallel deploys to same environment
63
+ concurrency:
64
+ group: ${{ github.workflow }}-${{ github.ref }}
65
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
66
+
67
+ env:
68
+ AWS_REGION: us-east-1
69
+ ECR_REPOSITORY: myapp
70
+ ECS_CLUSTER: myapp-prod
71
+ ECS_SERVICE: myapp-api
72
+
73
+ jobs:
74
+ # โ”€โ”€โ”€โ”€ STAGE 1: VALIDATE (parallel) โ”€โ”€โ”€โ”€
75
+ lint:
76
+ name: Lint & Type Check
77
+ runs-on: ubuntu-latest
78
+ steps:
79
+ - uses: actions/checkout@v4
80
+ - uses: actions/setup-node@v4
81
+ with:
82
+ node-version: 22
83
+ cache: npm
84
+ - run: npm ci
85
+ - run: npm run lint
86
+ - run: npm run typecheck
87
+
88
+ test:
89
+ name: Unit & Integration Tests
90
+ runs-on: ubuntu-latest
91
+ steps:
92
+ - uses: actions/checkout@v4
93
+ - uses: actions/setup-node@v4
94
+ with:
95
+ node-version: 22
96
+ cache: npm
97
+ - run: npm ci
98
+ - run: npm test -- --coverage
99
+ - uses: actions/upload-artifact@v4
100
+ if: always()
101
+ with:
102
+ name: coverage-report
103
+ path: coverage/
104
+
105
+ security:
106
+ name: Security Audit
107
+ runs-on: ubuntu-latest
108
+ steps:
109
+ - uses: actions/checkout@v4
110
+ - run: npm audit --audit-level=high
111
+ - uses: github/codeql-action/init@v3
112
+ with:
113
+ languages: javascript-typescript
114
+ - uses: github/codeql-action/analyze@v3
115
+
116
+ # โ”€โ”€โ”€โ”€ STAGE 2: BUILD โ”€โ”€โ”€โ”€
117
+ build:
118
+ name: Build & Push Docker Image
119
+ runs-on: ubuntu-latest
120
+ needs: [lint, test, security]
121
+ if: github.ref == 'refs/heads/main' # only build on main merge
122
+ permissions:
123
+ id-token: write
124
+ contents: read
125
+ outputs:
126
+ image: ${{ steps.push.outputs.image }}
127
+
128
+ steps:
129
+ - uses: actions/checkout@v4
130
+
131
+ - name: Configure AWS (OIDC โ€” no static keys)
132
+ uses: aws-actions/configure-aws-credentials@v4
133
+ with:
134
+ role-to-assume: ${{ secrets.AWS_DEPLOY_ROLE_ARN }}
135
+ aws-region: ${{ env.AWS_REGION }}
136
+
137
+ - name: Login to ECR
138
+ id: login-ecr
139
+ uses: aws-actions/amazon-ecr-login@v2
140
+
141
+ - name: Set up Docker Buildx
142
+ uses: docker/setup-buildx-action@v3
143
+
144
+ - name: Build and push image
145
+ id: push
146
+ uses: docker/build-push-action@v5
147
+ with:
148
+ context: .
149
+ push: true
150
+ tags: |
151
+ ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ github.sha }}
152
+ ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:latest
153
+ cache-from: type=gha
154
+ cache-to: type=gha,mode=max
155
+
156
+ - name: Scan image for vulnerabilities
157
+ uses: aquasecurity/trivy-action@master
158
+ with:
159
+ image-ref: ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ github.sha }}
160
+ severity: CRITICAL
161
+ exit-code: "1" # fail on critical vulnerabilities
162
+
163
+ # โ”€โ”€โ”€โ”€ STAGE 3: DEPLOY STAGING โ”€โ”€โ”€โ”€
164
+ deploy-staging:
165
+ name: Deploy to Staging
166
+ runs-on: ubuntu-latest
167
+ needs: build
168
+ environment: staging # maps to GitHub Environment (can have protection rules)
169
+ permissions:
170
+ id-token: write
171
+ contents: read
172
+
173
+ steps:
174
+ - uses: actions/checkout@v4
175
+
176
+ - uses: aws-actions/configure-aws-credentials@v4
177
+ with:
178
+ role-to-assume: ${{ secrets.STAGING_AWS_ROLE_ARN }}
179
+ aws-region: ${{ env.AWS_REGION }}
180
+
181
+ - name: Download ECS task definition
182
+ run: |
183
+ aws ecs describe-task-definition \
184
+ --task-definition myapp-staging \
185
+ --query taskDefinition > task-def.json
186
+
187
+ - name: Update image in task definition
188
+ id: task-def
189
+ uses: aws-actions/amazon-ecs-render-task-definition@v1
190
+ with:
191
+ task-definition: task-def.json
192
+ container-name: api
193
+ image: ${{ needs.build.outputs.image }}
194
+
195
+ - name: Deploy to ECS (Rolling update)
196
+ uses: aws-actions/amazon-ecs-deploy-task-definition@v1
197
+ with:
198
+ task-definition: ${{ steps.task-def.outputs.task-definition }}
199
+ service: myapp-staging-api
200
+ cluster: myapp-staging
201
+ wait-for-service-stability: true # wait until healthy
202
+
203
+ - name: Notify Slack โ€” Staging deployed
204
+ uses: slackapi/slack-github-action@v1
205
+ with:
206
+ payload: |
207
+ { "text": "โœ… *Staging deployed* โ€” `${{ github.sha }}` by ${{ github.actor }}" }
208
+ env:
209
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEPLOY_WEBHOOK }}
210
+
211
+ # โ”€โ”€โ”€โ”€ STAGE 4: DEPLOY PRODUCTION (manual gate) โ”€โ”€โ”€โ”€
212
+ deploy-production:
213
+ name: Deploy to Production
214
+ runs-on: ubuntu-latest
215
+ needs: deploy-staging
216
+ environment: production # โ† requires manual approval in GitHub UI
217
+ permissions:
218
+ id-token: write
219
+ contents: read
220
+
221
+ steps:
222
+ - uses: actions/checkout@v4
223
+
224
+ - uses: aws-actions/configure-aws-credentials@v4
225
+ with:
226
+ role-to-assume: ${{ secrets.PROD_AWS_ROLE_ARN }}
227
+ aws-region: ${{ env.AWS_REGION }}
228
+
229
+ - name: Download ECS task definition
230
+ run: |
231
+ aws ecs describe-task-definition \
232
+ --task-definition myapp-prod \
233
+ --query taskDefinition > task-def.json
234
+
235
+ - name: Update image in task definition
236
+ id: task-def
237
+ uses: aws-actions/amazon-ecs-render-task-definition@v1
238
+ with:
239
+ task-definition: task-def.json
240
+ container-name: api
241
+ image: ${{ needs.build.outputs.image }}
242
+
243
+ - name: Deploy to ECS (Blue/Green)
244
+ uses: aws-actions/amazon-ecs-deploy-task-definition@v1
245
+ with:
246
+ task-definition: ${{ steps.task-def.outputs.task-definition }}
247
+ service: ${{ env.ECS_SERVICE }}
248
+ cluster: ${{ env.ECS_CLUSTER }}
249
+ wait-for-service-stability: true
250
+ codedeploy-appspec: appspec.yml # enables Blue/Green via CodeDeploy
251
+
252
+ - name: Notify Slack โ€” Production deployed
253
+ uses: slackapi/slack-github-action@v1
254
+ with:
255
+ payload: |
256
+ { "text": "๐Ÿš€ *Production deployed* โ€” `${{ github.sha }}` by ${{ github.actor }}" }
257
+ env:
258
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEPLOY_WEBHOOK }}
259
+
260
+ - name: Notify Slack โ€” Deployment failed
261
+ if: failure()
262
+ uses: slackapi/slack-github-action@v1
263
+ with:
264
+ payload: |
265
+ { "text": "๐Ÿ”ฅ *Production deploy FAILED* โ€” `${{ github.sha }}` โ€” <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>" }
266
+ env:
267
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEPLOY_WEBHOOK }}
268
+ ```
269
+
270
+ ---
271
+
272
+ ## 3. Blue/Green Deployment (AWS ECS + CodeDeploy)
273
+
274
+ ```yaml
275
+ # appspec.yml โ€” CodeDeploy Blue/Green config
276
+ version: 0.0
277
+ Resources:
278
+ - TargetService:
279
+ Type: AWS::ECS::Service
280
+ Properties:
281
+ TaskDefinition: <TASK_DEFINITION>
282
+ LoadBalancerInfo:
283
+ ContainerName: api
284
+ ContainerPort: 3000
285
+
286
+ Hooks:
287
+ - BeforeAllowTraffic: ValidateDeploymentHook # run smoke tests before switching traffic
288
+ - AfterAllowTraffic: PostDeployHook
289
+ ```
290
+
291
+ ```hcl
292
+ # Terraform: ECS service with Blue/Green enabled
293
+ resource "aws_ecs_service" "api" {
294
+ name = "myapp-api"
295
+ cluster = aws_ecs_cluster.main.id
296
+ task_definition = aws_ecs_task_definition.api.arn
297
+ desired_count = 2
298
+
299
+ deployment_controller {
300
+ type = "CODE_DEPLOY" # enables Blue/Green
301
+ }
302
+
303
+ load_balancer {
304
+ target_group_arn = aws_lb_target_group.blue.arn
305
+ container_name = "api"
306
+ container_port = 3000
307
+ }
308
+
309
+ network_configuration {
310
+ subnets = var.private_subnet_ids
311
+ security_groups = [aws_security_group.api.id]
312
+ assign_public_ip = false
313
+ }
314
+
315
+ lifecycle {
316
+ ignore_changes = [task_definition, load_balancer] # managed by CodeDeploy
317
+ }
318
+ }
319
+ ```
320
+
321
+ ---
322
+
323
+ ## 4. Rollback Playbook
324
+
325
+ ### Automatic Rollback (on Health Check Failure)
326
+
327
+ ```yaml
328
+ # ECS will automatically roll back if the new task fails health checks
329
+ # Ensure these are set in your ECS service:
330
+ resource "aws_ecs_service" "api" {
331
+ # ...
332
+ deployment_configuration {
333
+ maximum_percent = 200
334
+ minimum_healthy_percent = 50
335
+
336
+ deployment_circuit_breaker {
337
+ enable = true # โ† auto-rollback on failure
338
+ rollback = true
339
+ }
340
+ }
341
+ }
342
+ ```
343
+
344
+ ### Manual Rollback (Emergency)
345
+
346
+ ```bash
347
+ # Option 1: Redeploy previous image tag
348
+ PREVIOUS_SHA=$(git rev-parse HEAD~1)
349
+ aws ecs update-service \
350
+ --cluster myapp-prod \
351
+ --service myapp-api \
352
+ --task-definition myapp-prod:$(($(aws ecs describe-services \
353
+ --cluster myapp-prod --services myapp-api \
354
+ --query 'services[0].taskDefinition' --output text | grep -oE '[0-9]+$') - 1))
355
+
356
+ # Option 2: Revert GitHub commit + trigger CI
357
+ git revert HEAD --no-edit
358
+ git push origin main
359
+
360
+ # Option 3: Use CodeDeploy's stop-deployment
361
+ aws deploy stop-deployment \
362
+ --deployment-id d-XXXXXXXXX \
363
+ --auto-rollback-enabled
364
+ ```
365
+
366
+ ---
367
+
368
+ ## 5. Environment Promotion Gates
369
+
370
+ ```
371
+ GitHub Environment Configuration:
372
+ dev:
373
+ - Auto-deploy: on every commit to main
374
+ - No approvals required
375
+ - Secrets: DEV_* scoped
376
+
377
+ staging:
378
+ - Auto-deploy: after dev succeeds
379
+ - Required reviewers: none (auto)
380
+ - Wait timer: 0 min
381
+
382
+ production:
383
+ - Required reviewers: @org/devops-lead (1 approver)
384
+ - Wait timer: 5 minutes (cooling off period)
385
+ - Deployment branch: main only
386
+ - Secrets: PROD_* scoped
387
+ ```
388
+
389
+ ```yaml
390
+ # Set up GitHub Environment in Terraform (via GitHub provider)
391
+ resource "github_repository_environment" "production" {
392
+ repository = "my-repo"
393
+ environment = "production"
394
+
395
+ reviewers {
396
+ teams = [data.github_team.devops.id]
397
+ }
398
+
399
+ deployment_branch_policy {
400
+ protected_branches = true # only from protected branches
401
+ custom_branch_policies = false
402
+ }
403
+
404
+ wait_timer = 5 # 5 minute cooling-off
405
+ }
406
+ ```
407
+
408
+ ---
409
+
410
+ ## ๐Ÿค– LLM-Specific Traps
411
+
412
+ 1. **No `concurrency:` block**: Without it, two deploys can run simultaneously, causing task definition conflicts in ECS and corrupted deployments.
413
+ 2. **Deploying without a stability wait**: `wait-for-service-stability: true` is critical. Without it, the pipeline reports success while ECS is still starting containers.
414
+ 3. **Hardcoded task definition revisions**: Never hardcode `:1` or `:latest` in ECS deploy steps. Always fetch the current revision dynamically with `describe-task-definition`.
415
+ 4. **Missing Slack failure notification**: Success notifications alone create false security. Always add `if: failure()` Slack step.
416
+ 5. **Using `needs.job.result` incorrectly**: `needs.build.outputs.image` only works if `build` job has `outputs:` defined. Verify the output name matches exactly.
417
+
418
+ ---
419
+
420
+ ## ๐Ÿ›๏ธ Tribunal Integration (Anti-Hallucination)
421
+
422
+ **Slash command: `/review` or `/tribunal-full`**
423
+ **Active reviewers: `logic-reviewer` ยท `security-auditor` ยท `devops-engineer`**
424
+
425
+ ### โœ… Pre-Flight Self-Audit
426
+
427
+ ```
428
+ โœ… Does the workflow have a concurrency: block?
429
+ โœ… Is AWS auth using OIDC (id-token: write permission)?
430
+ โœ… Does staging gate exist before production?
431
+ โœ… Is production environment configured with required reviewers?
432
+ โœ… Is there a rollback strategy documented and tested?
433
+ โœ… Does the Slack notification cover BOTH success AND failure cases?
434
+ โœ… Is wait-for-service-stability: true set on the ECS deploy step?
435
+ ```
436
+
437
+ ### ๐Ÿ›‘ Verification-Before-Completion (VBC) Protocol
438
+
439
+ **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
440
+
441
+ - โŒ **Forbidden**: Declaring a pipeline correct because the YAML is syntactically valid.
442
+ - โœ… **Required**: A real GitHub Actions run must succeed (green checkmarks across all stages) before the pipeline is declared production-ready.