dojo.md 0.1.0 → 0.2.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 (243) hide show
  1. package/courses/GENERATION_LOG.md +27 -0
  2. package/courses/api-error-handling/course.yaml +16 -0
  3. package/courses/api-error-handling/scenarios/level-1/error-response-format.yaml +131 -0
  4. package/courses/api-error-handling/scenarios/level-1/http-status-codes-basics.yaml +90 -0
  5. package/courses/api-error-handling/scenarios/level-1/rate-limiting-basics.yaml +135 -0
  6. package/courses/api-error-handling/scenarios/level-1/request-validation-errors.yaml +208 -0
  7. package/courses/api-error-handling/scenarios/level-2/circuit-breaker-pattern.yaml +189 -0
  8. package/courses/api-error-handling/scenarios/level-2/idempotency-retry-logic.yaml +159 -0
  9. package/courses/api-error-handling/scenarios/level-2/rfc-7807-problem-details.yaml +178 -0
  10. package/courses/api-error-handling/scenarios/level-2/webhook-error-handling.yaml +211 -0
  11. package/courses/api-error-handling/scenarios/level-3/distributed-tracing-errors.yaml +275 -0
  12. package/courses/github-actions-cicd/course.yaml +10 -0
  13. package/courses/github-actions-cicd/scenarios/level-1/actions-and-runners.yaml +58 -0
  14. package/courses/github-actions-cicd/scenarios/level-1/basic-workflow-syntax.yaml +52 -0
  15. package/courses/github-actions-cicd/scenarios/level-1/branch-protection-checks.yaml +63 -0
  16. package/courses/github-actions-cicd/scenarios/level-1/environment-variables-secrets.yaml +65 -0
  17. package/courses/github-actions-cicd/scenarios/level-1/first-cicd-shift.yaml +62 -0
  18. package/courses/github-actions-cicd/scenarios/level-1/job-dependencies-outputs.yaml +62 -0
  19. package/courses/github-actions-cicd/scenarios/level-1/simple-ci-pipeline.yaml +57 -0
  20. package/courses/github-actions-cicd/scenarios/level-1/workflow-debugging.yaml +90 -0
  21. package/courses/github-actions-cicd/scenarios/level-1/workflow-status-notifications.yaml +59 -0
  22. package/courses/github-actions-cicd/scenarios/level-1/workflow-triggers.yaml +56 -0
  23. package/courses/github-actions-cicd/scenarios/level-2/concurrency-control.yaml +58 -0
  24. package/courses/github-actions-cicd/scenarios/level-2/conditional-execution.yaml +60 -0
  25. package/courses/github-actions-cicd/scenarios/level-2/custom-actions-development.yaml +55 -0
  26. package/courses/github-actions-cicd/scenarios/level-2/dependency-caching.yaml +58 -0
  27. package/courses/github-actions-cicd/scenarios/level-2/deployment-workflows.yaml +61 -0
  28. package/courses/github-actions-cicd/scenarios/level-2/github-packages-publishing.yaml +59 -0
  29. package/courses/github-actions-cicd/scenarios/level-2/intermediate-cicd-shift.yaml +68 -0
  30. package/courses/github-actions-cicd/scenarios/level-2/matrix-builds.yaml +59 -0
  31. package/courses/github-actions-cicd/scenarios/level-2/reusable-workflows.yaml +61 -0
  32. package/courses/github-actions-cicd/scenarios/level-2/workflow-cost-optimization.yaml +61 -0
  33. package/courses/github-actions-cicd/scenarios/level-3/advanced-cicd-shift.yaml +64 -0
  34. package/courses/github-actions-cicd/scenarios/level-3/compliance-automation.yaml +68 -0
  35. package/courses/github-actions-cicd/scenarios/level-3/docker-action-development.yaml +65 -0
  36. package/courses/github-actions-cicd/scenarios/level-3/github-environments.yaml +65 -0
  37. package/courses/github-actions-cicd/scenarios/level-3/monorepo-ci.yaml +68 -0
  38. package/courses/github-actions-cicd/scenarios/level-3/oidc-cloud-deployments.yaml +55 -0
  39. package/courses/github-actions-cicd/scenarios/level-3/release-automation.yaml +61 -0
  40. package/courses/github-actions-cicd/scenarios/level-3/security-hardening.yaml +63 -0
  41. package/courses/github-actions-cicd/scenarios/level-3/self-hosted-runners.yaml +60 -0
  42. package/courses/github-actions-cicd/scenarios/level-3/workflow-optimization.yaml +59 -0
  43. package/courses/github-actions-cicd/scenarios/level-4/cicd-data-architecture.yaml +63 -0
  44. package/courses/github-actions-cicd/scenarios/level-4/cicd-economics-roi.yaml +63 -0
  45. package/courses/github-actions-cicd/scenarios/level-4/cicd-executive-communication.yaml +58 -0
  46. package/courses/github-actions-cicd/scenarios/level-4/cicd-incident-response.yaml +60 -0
  47. package/courses/github-actions-cicd/scenarios/level-4/cicd-org-design.yaml +59 -0
  48. package/courses/github-actions-cicd/scenarios/level-4/cicd-platform-architecture.yaml +63 -0
  49. package/courses/github-actions-cicd/scenarios/level-4/cicd-training-program.yaml +65 -0
  50. package/courses/github-actions-cicd/scenarios/level-4/cicd-vendor-evaluation.yaml +59 -0
  51. package/courses/github-actions-cicd/scenarios/level-4/enterprise-cicd-governance.yaml +55 -0
  52. package/courses/github-actions-cicd/scenarios/level-4/expert-cicd-shift.yaml +60 -0
  53. package/courses/github-actions-cicd/scenarios/level-5/cicd-ai-future.yaml +63 -0
  54. package/courses/github-actions-cicd/scenarios/level-5/cicd-behavioral-science.yaml +70 -0
  55. package/courses/github-actions-cicd/scenarios/level-5/cicd-board-strategy.yaml +56 -0
  56. package/courses/github-actions-cicd/scenarios/level-5/cicd-consulting-engagement.yaml +61 -0
  57. package/courses/github-actions-cicd/scenarios/level-5/cicd-industry-benchmarks.yaml +63 -0
  58. package/courses/github-actions-cicd/scenarios/level-5/cicd-ma-integration.yaml +73 -0
  59. package/courses/github-actions-cicd/scenarios/level-5/cicd-product-development.yaml +68 -0
  60. package/courses/github-actions-cicd/scenarios/level-5/cicd-regulatory-landscape.yaml +72 -0
  61. package/courses/github-actions-cicd/scenarios/level-5/comprehensive-cicd-system.yaml +66 -0
  62. package/courses/github-actions-cicd/scenarios/level-5/master-cicd-shift.yaml +76 -0
  63. package/courses/github-pr-review/scenarios/level-2/api-change-review.yaml +82 -0
  64. package/courses/github-pr-review/scenarios/level-2/automated-review-tooling.yaml +53 -0
  65. package/courses/github-pr-review/scenarios/level-2/cross-team-review.yaml +61 -0
  66. package/courses/github-pr-review/scenarios/level-2/intermediate-review-shift.yaml +66 -0
  67. package/courses/github-pr-review/scenarios/level-2/performance-review-patterns.yaml +99 -0
  68. package/courses/github-pr-review/scenarios/level-2/review-disagreement-resolution.yaml +64 -0
  69. package/courses/github-pr-review/scenarios/level-2/review-metrics-analysis.yaml +63 -0
  70. package/courses/github-pr-review/scenarios/level-2/review-turnaround-sla.yaml +54 -0
  71. package/courses/github-pr-review/scenarios/level-2/stacked-pr-review.yaml +65 -0
  72. package/courses/github-pr-review/scenarios/level-3/advanced-review-shift.yaml +65 -0
  73. package/courses/github-pr-review/scenarios/level-3/ai-powered-review.yaml +58 -0
  74. package/courses/github-pr-review/scenarios/level-3/compliance-review-process.yaml +64 -0
  75. package/courses/github-pr-review/scenarios/level-3/cross-functional-review.yaml +60 -0
  76. package/courses/github-pr-review/scenarios/level-3/incident-driven-review.yaml +63 -0
  77. package/courses/github-pr-review/scenarios/level-3/large-scale-review-operations.yaml +55 -0
  78. package/courses/github-pr-review/scenarios/level-3/monorepo-review-process.yaml +68 -0
  79. package/courses/github-pr-review/scenarios/level-3/review-automation-platform.yaml +61 -0
  80. package/courses/github-pr-review/scenarios/level-3/review-culture-design.yaml +62 -0
  81. package/courses/github-pr-review/scenarios/level-3/review-data-pipeline.yaml +62 -0
  82. package/courses/github-pr-review/scenarios/level-4/enterprise-review-operations.yaml +61 -0
  83. package/courses/github-pr-review/scenarios/level-4/expert-review-shift.yaml +62 -0
  84. package/courses/github-pr-review/scenarios/level-4/review-data-architecture.yaml +69 -0
  85. package/courses/github-pr-review/scenarios/level-4/review-economics-roi.yaml +63 -0
  86. package/courses/github-pr-review/scenarios/level-4/review-executive-communication.yaml +61 -0
  87. package/courses/github-pr-review/scenarios/level-4/review-incident-postmortem.yaml +69 -0
  88. package/courses/github-pr-review/scenarios/level-4/review-org-design.yaml +62 -0
  89. package/courses/github-pr-review/scenarios/level-4/review-platform-architecture.yaml +64 -0
  90. package/courses/github-pr-review/scenarios/level-4/review-training-program.yaml +66 -0
  91. package/courses/github-pr-review/scenarios/level-4/review-vendor-evaluation.yaml +76 -0
  92. package/courses/github-pr-review/scenarios/level-5/comprehensive-review-system.yaml +68 -0
  93. package/courses/github-pr-review/scenarios/level-5/master-review-shift.yaml +73 -0
  94. package/courses/github-pr-review/scenarios/level-5/review-ai-future.yaml +69 -0
  95. package/courses/github-pr-review/scenarios/level-5/review-behavioral-science.yaml +66 -0
  96. package/courses/github-pr-review/scenarios/level-5/review-board-strategy.yaml +62 -0
  97. package/courses/github-pr-review/scenarios/level-5/review-consulting-engagement.yaml +62 -0
  98. package/courses/github-pr-review/scenarios/level-5/review-devtools-product.yaml +71 -0
  99. package/courses/github-pr-review/scenarios/level-5/review-industry-benchmarks.yaml +64 -0
  100. package/courses/github-pr-review/scenarios/level-5/review-ma-integration.yaml +76 -0
  101. package/courses/github-pr-review/scenarios/level-5/review-regulatory-landscape.yaml +78 -0
  102. package/courses/postgresql-query-optimization/course.yaml +11 -0
  103. package/courses/postgresql-query-optimization/scenarios/level-1/explain-analyze-basics.yaml +80 -0
  104. package/courses/postgresql-query-optimization/scenarios/level-1/first-optimization-shift.yaml +77 -0
  105. package/courses/postgresql-query-optimization/scenarios/level-1/index-fundamentals.yaml +76 -0
  106. package/courses/postgresql-query-optimization/scenarios/level-1/join-basics.yaml +73 -0
  107. package/courses/postgresql-query-optimization/scenarios/level-1/n-plus-one-queries.yaml +62 -0
  108. package/courses/postgresql-query-optimization/scenarios/level-1/query-rewriting-basics.yaml +69 -0
  109. package/courses/postgresql-query-optimization/scenarios/level-1/select-star-problems.yaml +69 -0
  110. package/courses/postgresql-query-optimization/scenarios/level-1/slow-query-diagnosis.yaml +63 -0
  111. package/courses/postgresql-query-optimization/scenarios/level-1/vacuum-and-statistics.yaml +62 -0
  112. package/courses/postgresql-query-optimization/scenarios/level-1/where-clause-optimization.yaml +74 -0
  113. package/courses/postgresql-query-optimization/scenarios/level-2/autovacuum-tuning.yaml +76 -0
  114. package/courses/postgresql-query-optimization/scenarios/level-2/composite-index-design.yaml +81 -0
  115. package/courses/postgresql-query-optimization/scenarios/level-2/covering-indexes.yaml +74 -0
  116. package/courses/postgresql-query-optimization/scenarios/level-2/cte-optimization.yaml +83 -0
  117. package/courses/postgresql-query-optimization/scenarios/level-2/intermediate-optimization-shift.yaml +66 -0
  118. package/courses/postgresql-query-optimization/scenarios/level-2/join-optimization.yaml +72 -0
  119. package/courses/postgresql-query-optimization/scenarios/level-2/partial-and-expression-indexes.yaml +75 -0
  120. package/courses/postgresql-query-optimization/scenarios/level-2/query-planner-settings.yaml +62 -0
  121. package/courses/postgresql-query-optimization/scenarios/level-2/subquery-optimization.yaml +67 -0
  122. package/courses/postgresql-query-optimization/scenarios/level-2/window-function-optimization.yaml +63 -0
  123. package/courses/postgresql-query-optimization/scenarios/level-3/advanced-optimization-shift.yaml +71 -0
  124. package/courses/postgresql-query-optimization/scenarios/level-3/connection-pooling.yaml +60 -0
  125. package/courses/postgresql-query-optimization/scenarios/level-3/full-text-search-optimization.yaml +66 -0
  126. package/courses/postgresql-query-optimization/scenarios/level-3/jsonb-optimization.yaml +88 -0
  127. package/courses/postgresql-query-optimization/scenarios/level-3/lock-contention-analysis.yaml +80 -0
  128. package/courses/postgresql-query-optimization/scenarios/level-3/materialized-view-optimization.yaml +73 -0
  129. package/courses/postgresql-query-optimization/scenarios/level-3/parallel-query-execution.yaml +74 -0
  130. package/courses/postgresql-query-optimization/scenarios/level-3/partitioning-strategies.yaml +71 -0
  131. package/courses/postgresql-query-optimization/scenarios/level-3/specialized-index-types.yaml +67 -0
  132. package/courses/postgresql-query-optimization/scenarios/level-3/write-optimization.yaml +65 -0
  133. package/courses/postgresql-query-optimization/scenarios/level-4/data-architecture-analytics.yaml +64 -0
  134. package/courses/postgresql-query-optimization/scenarios/level-4/database-executive-communication.yaml +64 -0
  135. package/courses/postgresql-query-optimization/scenarios/level-4/database-migration-planning.yaml +57 -0
  136. package/courses/postgresql-query-optimization/scenarios/level-4/enterprise-database-governance.yaml +52 -0
  137. package/courses/postgresql-query-optimization/scenarios/level-4/expert-optimization-shift.yaml +73 -0
  138. package/courses/postgresql-query-optimization/scenarios/level-4/high-availability-architecture.yaml +62 -0
  139. package/courses/postgresql-query-optimization/scenarios/level-4/optimizer-internals.yaml +69 -0
  140. package/courses/postgresql-query-optimization/scenarios/level-4/performance-sla-design.yaml +58 -0
  141. package/courses/postgresql-query-optimization/scenarios/level-4/read-replica-optimization.yaml +62 -0
  142. package/courses/postgresql-query-optimization/scenarios/level-4/vendor-evaluation.yaml +73 -0
  143. package/courses/rest-api-error-handling/course.yaml +11 -0
  144. package/courses/rest-api-error-handling/scenarios/level-1/authentication-errors.yaml +71 -0
  145. package/courses/rest-api-error-handling/scenarios/level-1/content-negotiation-errors.yaml +63 -0
  146. package/courses/rest-api-error-handling/scenarios/level-1/error-logging-basics.yaml +63 -0
  147. package/courses/rest-api-error-handling/scenarios/level-1/error-response-format.yaml +58 -0
  148. package/courses/rest-api-error-handling/scenarios/level-1/first-error-handling-shift.yaml +67 -0
  149. package/courses/rest-api-error-handling/scenarios/level-1/http-status-codes.yaml +46 -0
  150. package/courses/rest-api-error-handling/scenarios/level-1/not-found-errors.yaml +52 -0
  151. package/courses/rest-api-error-handling/scenarios/level-1/rate-limiting-errors.yaml +56 -0
  152. package/courses/rest-api-error-handling/scenarios/level-1/request-validation-errors.yaml +59 -0
  153. package/courses/rest-api-error-handling/scenarios/level-1/server-error-handling.yaml +55 -0
  154. package/courses/rest-api-error-handling/scenarios/level-2/api-versioning-errors.yaml +66 -0
  155. package/courses/rest-api-error-handling/scenarios/level-2/batch-request-errors.yaml +61 -0
  156. package/courses/rest-api-error-handling/scenarios/level-2/circuit-breaker-pattern.yaml +52 -0
  157. package/courses/rest-api-error-handling/scenarios/level-2/error-code-taxonomy.yaml +62 -0
  158. package/courses/rest-api-error-handling/scenarios/level-2/error-monitoring-alerting.yaml +53 -0
  159. package/courses/rest-api-error-handling/scenarios/level-2/intermediate-error-shift.yaml +69 -0
  160. package/courses/rest-api-error-handling/scenarios/level-2/pagination-errors.yaml +66 -0
  161. package/courses/rest-api-error-handling/scenarios/level-2/retry-and-idempotency.yaml +60 -0
  162. package/courses/rest-api-error-handling/scenarios/level-2/rfc7807-problem-details.yaml +60 -0
  163. package/courses/rest-api-error-handling/scenarios/level-2/webhook-error-handling.yaml +55 -0
  164. package/courses/rest-api-error-handling/scenarios/level-3/advanced-error-shift.yaml +72 -0
  165. package/courses/rest-api-error-handling/scenarios/level-3/api-gateway-errors.yaml +71 -0
  166. package/courses/rest-api-error-handling/scenarios/level-3/async-api-errors.yaml +67 -0
  167. package/courses/rest-api-error-handling/scenarios/level-3/caching-error-scenarios.yaml +65 -0
  168. package/courses/rest-api-error-handling/scenarios/level-3/chaos-engineering-apis.yaml +62 -0
  169. package/courses/rest-api-error-handling/scenarios/level-3/database-error-handling.yaml +79 -0
  170. package/courses/rest-api-error-handling/scenarios/level-3/distributed-error-propagation.yaml +63 -0
  171. package/courses/rest-api-error-handling/scenarios/level-3/error-budgets-sre.yaml +61 -0
  172. package/courses/rest-api-error-handling/scenarios/level-3/error-correlation.yaml +58 -0
  173. package/courses/rest-api-error-handling/scenarios/level-3/graphql-vs-rest-errors.yaml +73 -0
  174. package/courses/rest-api-error-handling/scenarios/level-4/compliance-error-handling.yaml +65 -0
  175. package/courses/rest-api-error-handling/scenarios/level-4/enterprise-error-governance.yaml +62 -0
  176. package/courses/rest-api-error-handling/scenarios/level-4/error-analytics-platform.yaml +65 -0
  177. package/courses/rest-api-error-handling/scenarios/level-4/error-cost-optimization.yaml +63 -0
  178. package/courses/rest-api-error-handling/scenarios/level-4/error-executive-communication.yaml +60 -0
  179. package/courses/rest-api-error-handling/scenarios/level-4/error-handling-architecture.yaml +67 -0
  180. package/courses/rest-api-error-handling/scenarios/level-4/error-org-design.yaml +68 -0
  181. package/courses/rest-api-error-handling/scenarios/level-4/error-sla-design.yaml +65 -0
  182. package/courses/rest-api-error-handling/scenarios/level-4/error-training-program.yaml +61 -0
  183. package/courses/rest-api-error-handling/scenarios/level-4/expert-error-shift.yaml +63 -0
  184. package/courses/rest-api-error-handling/scenarios/level-5/comprehensive-error-system.yaml +68 -0
  185. package/courses/rest-api-error-handling/scenarios/level-5/error-ai-future.yaml +75 -0
  186. package/courses/rest-api-error-handling/scenarios/level-5/error-behavioral-science.yaml +73 -0
  187. package/courses/rest-api-error-handling/scenarios/level-5/error-board-strategy.yaml +60 -0
  188. package/courses/rest-api-error-handling/scenarios/level-5/error-consulting-engagement.yaml +58 -0
  189. package/courses/rest-api-error-handling/scenarios/level-5/error-industry-benchmarks.yaml +72 -0
  190. package/courses/rest-api-error-handling/scenarios/level-5/error-ma-integration.yaml +68 -0
  191. package/courses/rest-api-error-handling/scenarios/level-5/error-product-development.yaml +66 -0
  192. package/courses/rest-api-error-handling/scenarios/level-5/error-regulatory-landscape.yaml +80 -0
  193. package/courses/rest-api-error-handling/scenarios/level-5/master-error-shift.yaml +73 -0
  194. package/dist/cli/commands/add.d.ts.map +1 -1
  195. package/dist/cli/commands/add.js +6 -5
  196. package/dist/cli/commands/add.js.map +1 -1
  197. package/dist/cli/commands/generate.d.ts.map +1 -1
  198. package/dist/cli/commands/generate.js +4 -0
  199. package/dist/cli/commands/generate.js.map +1 -1
  200. package/dist/cli/commands/list.d.ts.map +1 -1
  201. package/dist/cli/commands/list.js +6 -18
  202. package/dist/cli/commands/list.js.map +1 -1
  203. package/dist/cli/commands/train.d.ts.map +1 -1
  204. package/dist/cli/commands/train.js +18 -18
  205. package/dist/cli/commands/train.js.map +1 -1
  206. package/dist/cli/index.js +93 -55
  207. package/dist/cli/index.js.map +1 -1
  208. package/dist/cli/run-demo.js +2 -1
  209. package/dist/cli/run-demo.js.map +1 -1
  210. package/dist/cli/setup.d.ts +18 -0
  211. package/dist/cli/setup.d.ts.map +1 -0
  212. package/dist/cli/setup.js +154 -0
  213. package/dist/cli/setup.js.map +1 -0
  214. package/dist/engine/agent-bridge.d.ts +5 -2
  215. package/dist/engine/agent-bridge.d.ts.map +1 -1
  216. package/dist/engine/agent-bridge.js +36 -9
  217. package/dist/engine/agent-bridge.js.map +1 -1
  218. package/dist/engine/loader.d.ts +21 -0
  219. package/dist/engine/loader.d.ts.map +1 -1
  220. package/dist/engine/loader.js +54 -1
  221. package/dist/engine/loader.js.map +1 -1
  222. package/dist/engine/training-loop.d.ts.map +1 -1
  223. package/dist/engine/training-loop.js +1 -0
  224. package/dist/engine/training-loop.js.map +1 -1
  225. package/dist/engine/training.d.ts.map +1 -1
  226. package/dist/engine/training.js +1 -0
  227. package/dist/engine/training.js.map +1 -1
  228. package/dist/generator/skill-generator.d.ts +1 -1
  229. package/dist/generator/skill-generator.d.ts.map +1 -1
  230. package/dist/generator/skill-generator.js +21 -2
  231. package/dist/generator/skill-generator.js.map +1 -1
  232. package/dist/mcp/server.d.ts.map +1 -1
  233. package/dist/mcp/server.js +11 -26
  234. package/dist/mcp/server.js.map +1 -1
  235. package/dist/mcp/session-manager.d.ts +3 -1
  236. package/dist/mcp/session-manager.d.ts.map +1 -1
  237. package/dist/mcp/session-manager.js +44 -22
  238. package/dist/mcp/session-manager.js.map +1 -1
  239. package/dist/types/schemas.d.ts +38 -13
  240. package/dist/types/schemas.d.ts.map +1 -1
  241. package/dist/types/schemas.js +9 -5
  242. package/dist/types/schemas.js.map +1 -1
  243. package/package.json +1 -1
@@ -0,0 +1,65 @@
1
+ meta:
2
+ id: github-environments
3
+ level: 3
4
+ course: github-actions-cicd
5
+ type: output
6
+ description: "Configure GitHub Environments — set up deployment protection rules, approval gates, and environment-specific secrets"
7
+ tags: [github, actions, environments, protection-rules, deployment-gates, advanced]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ Your company needs a multi-environment deployment pipeline with
13
+ proper gates and controls. Currently, deployments go directly to
14
+ production with no staging or approval process.
15
+
16
+ Environment requirements:
17
+ 1. Development (dev):
18
+ - Auto-deploy on every push to feature branches
19
+ - Ephemeral environments (one per PR, destroyed on merge)
20
+ - No approval required
21
+ - Uses development database and mock services
22
+
23
+ 2. Staging:
24
+ - Auto-deploy on merge to main
25
+ - Protected: only deployable from main branch
26
+ - Runs smoke tests after deployment
27
+ - Uses staging database with anonymized production data
28
+ - Secrets: staging-specific AWS credentials, API keys
29
+
30
+ 3. Production:
31
+ - Manual approval required (2 reviewers from @devops team)
32
+ - Deployment window: weekdays 9AM-4PM ET (no weekend deploys)
33
+ - Wait timer: 5-minute delay after approval (for last-minute
34
+ cancellation)
35
+ - Branch restriction: only main branch
36
+ - Secrets: production AWS credentials, API keys, DB connection
37
+ - Required: all staging smoke tests must have passed
38
+
39
+ 4. Canary (subset of production):
40
+ - Deploy to 5% of production traffic first
41
+ - Monitor error rates for 15 minutes
42
+ - Auto-promote to full production if error rate < 0.5%
43
+ - Auto-rollback if error rate > 1%
44
+
45
+ Task: Configure all 4 environments. Write: the GitHub Environment
46
+ settings for each (protection rules, secrets, deployment branch
47
+ policy), the deployment workflow that uses all 4 environments in
48
+ sequence, the canary deployment logic (traffic splitting and
49
+ monitoring), and the ephemeral environment management for dev (create
50
+ on PR open, destroy on PR close). Include the IAM and infrastructure
51
+ setup needed to support environment-specific secrets.
52
+
53
+ assertions:
54
+ - type: llm_judge
55
+ criteria: "GitHub Environment configuration is correct — each environment has appropriate protection rules (required reviewers for production, wait timer, branch policy), environment-specific secrets are properly scoped, and the deployment window restriction uses custom deployment protection rules"
56
+ weight: 0.35
57
+ description: "Correct environment configuration"
58
+ - type: llm_judge
59
+ criteria: "Deployment workflow uses environments correctly — references environments with 'environment:' key in each job, environment approvals pause the workflow, secrets are accessed per-environment, and the sequential flow (dev → staging → canary → production) is properly orchestrated"
60
+ weight: 0.35
61
+ description: "Correct environment workflow usage"
62
+ - type: llm_judge
63
+ criteria: "Canary and ephemeral environments are practical — canary deployment includes traffic splitting logic and monitoring-based auto-promote/rollback, ephemeral dev environments are created/destroyed via PR lifecycle events, and the infrastructure requirements are addressed"
64
+ weight: 0.30
65
+ description: "Practical canary and ephemeral environments"
@@ -0,0 +1,68 @@
1
+ meta:
2
+ id: monorepo-ci
3
+ level: 3
4
+ course: github-actions-cicd
5
+ type: output
6
+ description: "Design monorepo CI — build efficient CI pipelines for monorepos with path filters, dynamic matrices, and selective testing"
7
+ tags: [github, actions, monorepo, path-filters, dynamic-matrix, turborepo, advanced]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ Your company migrated 8 microservices into a Turborepo monorepo.
13
+ The current CI runs ALL tests for every PR, taking 35 minutes and
14
+ costing $800/month unnecessarily. You need to make CI smart enough
15
+ to only test what changed.
16
+
17
+ Monorepo structure:
18
+ ```
19
+ /
20
+ ├── apps/
21
+ │ ├── web/ (React, 12,000 lines)
22
+ │ ├── api/ (Express, 8,000 lines)
23
+ │ ├── mobile/ (React Native, 10,000 lines)
24
+ │ └── admin/ (Next.js, 5,000 lines)
25
+ ├── packages/
26
+ │ ├── ui/ (Shared components, used by web + mobile + admin)
27
+ │ ├── auth/ (Auth library, used by api + web + admin)
28
+ │ ├── database/ (Prisma client, used by api + admin)
29
+ │ └── config/ (Shared config, used by all)
30
+ ├── turbo.json
31
+ └── package.json
32
+ ```
33
+
34
+ Dependency graph:
35
+ - web depends on: ui, auth, config
36
+ - api depends on: auth, database, config
37
+ - mobile depends on: ui, auth, config
38
+ - admin depends on: ui, auth, database, config
39
+
40
+ Requirements:
41
+ 1. Only run tests for changed packages and their dependents
42
+ 2. If packages/auth changes, test web, api, mobile, and admin
43
+ 3. If apps/web changes, only test web
44
+ 4. If packages/config changes, test everything (affects all)
45
+ 5. Generate the test matrix dynamically based on affected packages
46
+ 6. Run Turborepo's --filter for selective builds
47
+ 7. Cache Turborepo's .turbo directory across workflow runs
48
+
49
+ Task: Write the monorepo CI workflow. Include: the change detection
50
+ job (determines which packages are affected), the dynamic matrix
51
+ generation (creates a matrix from affected packages), the selective
52
+ test execution (only tests affected packages), the Turborepo
53
+ integration (using --filter and caching), and the deployment trigger
54
+ logic (deploy web only if web or its dependencies changed).
55
+
56
+ assertions:
57
+ - type: llm_judge
58
+ criteria: "Change detection correctly identifies affected packages — uses git diff with path matching, understands the dependency graph (changing auth affects all consumers), and handles the transitive dependency case (config affects everything)"
59
+ weight: 0.35
60
+ description: "Correct change detection"
61
+ - type: llm_judge
62
+ criteria: "Dynamic matrix is properly generated — the detection job outputs a JSON array of affected packages, the test job uses fromJson() to create a dynamic matrix, and the matrix correctly handles the case where no packages are affected (skips testing)"
63
+ weight: 0.35
64
+ description: "Proper dynamic matrix generation"
65
+ - type: llm_judge
66
+ criteria: "Turborepo integration is correct — uses turbo run test --filter with correct syntax, caches .turbo directory between runs, and the cost savings are estimated (from 35 minutes for all packages to X minutes for affected only)"
67
+ weight: 0.30
68
+ description: "Correct Turborepo integration"
@@ -0,0 +1,55 @@
1
+ meta:
2
+ id: oidc-cloud-deployments
3
+ level: 3
4
+ course: github-actions-cicd
5
+ type: output
6
+ description: "Deploy with OIDC — configure keyless authentication to AWS, GCP, and Azure using GitHub Actions OIDC tokens"
7
+ tags: [github, actions, OIDC, AWS, GCP, Azure, cloud-auth, advanced]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ Your company deploys to all 3 major cloud providers and currently
13
+ uses long-lived credentials stored as GitHub Secrets. The security
14
+ team mandates a migration to OIDC (keyless authentication) within
15
+ 30 days. No more static credentials in GitHub Secrets.
16
+
17
+ Current setup (to be replaced):
18
+ - AWS: IAM user access key + secret key in GitHub Secrets
19
+ - GCP: Service account key JSON file in GitHub Secrets
20
+ - Azure: Service principal client ID + secret in GitHub Secrets
21
+
22
+ Deployment targets:
23
+ - AWS: ECS (API), S3 + CloudFront (frontend), Lambda (serverless)
24
+ - GCP: Cloud Run (microservices), GCS (static assets)
25
+ - Azure: AKS (Kubernetes), Azure Functions (serverless)
26
+
27
+ Requirements:
28
+ - Each cloud provider should only trust tokens from specific repos
29
+ - Production deployments should only be allowed from the main branch
30
+ - Staging deployments should be allowed from any branch
31
+ - Each cloud role should have minimum required permissions
32
+ - The OIDC configuration should work with GitHub Environments
33
+
34
+ Task: Configure OIDC for all 3 cloud providers. For each, write:
35
+ the identity provider setup (cloud-side configuration), the trust
36
+ policy (limiting which repos/branches can assume the role), the
37
+ IAM role with minimum permissions, the workflow changes (replacing
38
+ static credentials with OIDC), and the testing/verification steps.
39
+ Include: a comparison of OIDC across the 3 providers, the common
40
+ pitfalls, and the migration checklist for removing old static
41
+ credentials safely.
42
+
43
+ assertions:
44
+ - type: llm_judge
45
+ criteria: "AWS OIDC is correctly configured — IAM OIDC provider with GitHub's thumbprint, IAM role trust policy with conditions on repo and branch (sub claim), workflow uses aws-actions/configure-aws-credentials with role-to-assume and no static credentials"
46
+ weight: 0.35
47
+ description: "Correct AWS OIDC configuration"
48
+ - type: llm_judge
49
+ criteria: "GCP and Azure OIDC are also configured — GCP uses Workload Identity Federation with correct attribute mapping, Azure uses federated credentials on the app registration, and both have branch-restricted trust policies matching the AWS pattern"
50
+ weight: 0.35
51
+ description: "Complete multi-cloud OIDC"
52
+ - type: llm_judge
53
+ criteria: "Migration plan is safe — includes a parallel-running period (both OIDC and static credentials work), verification steps before removing static credentials, rollback plan if OIDC fails, and the credential rotation/deletion checklist"
54
+ weight: 0.30
55
+ description: "Safe migration plan"
@@ -0,0 +1,61 @@
1
+ meta:
2
+ id: release-automation
3
+ level: 3
4
+ course: github-actions-cicd
5
+ type: output
6
+ description: "Automate releases — build semantic versioning, changelog generation, and GitHub Release workflows"
7
+ tags: [github, actions, releases, semantic-versioning, changelog, automation, advanced]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ Your team currently releases manually: someone bumps the version in
13
+ package.json, writes a changelog entry, creates a git tag, builds
14
+ the artifacts, and creates a GitHub Release. This takes 45 minutes
15
+ and has caused errors (wrong version, missing changelog entries,
16
+ forgotten tags). You need to fully automate the release process.
17
+
18
+ Requirements:
19
+ 1. Semantic versioning based on commit messages:
20
+ - feat: → minor bump (1.2.0 → 1.3.0)
21
+ - fix: → patch bump (1.2.0 → 1.2.1)
22
+ - BREAKING CHANGE: → major bump (1.2.0 → 2.0.0)
23
+ - Use conventional commits to determine version bump
24
+
25
+ 2. Automated changelog generation:
26
+ - Generate from conventional commits since last release
27
+ - Group by type: Features, Bug Fixes, Breaking Changes
28
+ - Include PR links and author attributions
29
+ - Update CHANGELOG.md in the repo
30
+
31
+ 3. Release artifacts:
32
+ - Build production bundles (frontend + backend)
33
+ - Generate Docker images tagged with version
34
+ - Create source code archives (zip + tar.gz)
35
+ - Sign artifacts with cosign/sigstore
36
+
37
+ 4. Release workflow triggers:
38
+ - Option A: Automatically release on merge to main (CD)
39
+ - Option B: Manual trigger with version override
40
+ - Option C: Release PR workflow (create a "release PR" that
41
+ shows the changelog for review before publishing)
42
+
43
+ Task: Implement all 3 release workflow options. For each, write: the
44
+ complete workflow YAML, the tooling configuration (semantic-release,
45
+ release-please, or changesets — compare all 3), the changelog format
46
+ and generation logic, and the artifact signing configuration. Recommend
47
+ which option works best for different team sizes and release cadences.
48
+
49
+ assertions:
50
+ - type: llm_judge
51
+ criteria: "Semantic versioning is correctly automated — conventional commits are parsed, version bumps follow semver rules, package.json version is updated, git tag is created, and BREAKING CHANGE triggers a major bump correctly"
52
+ weight: 0.35
53
+ description: "Correct semantic versioning automation"
54
+ - type: llm_judge
55
+ criteria: "Tool comparison is informative — compares semantic-release, release-please, and changesets on features, complexity, customization, and team fit. Makes a clear recommendation for different scenarios (OSS vs enterprise, mono vs multi-repo)"
56
+ weight: 0.35
57
+ description: "Informative tool comparison"
58
+ - type: llm_judge
59
+ criteria: "All 3 workflow options are implemented — automatic CD, manual trigger with override, and release PR workflow are all provided with complete YAML, and the recommendation explains when each is appropriate"
60
+ weight: 0.30
61
+ description: "All release workflow options"
@@ -0,0 +1,63 @@
1
+ meta:
2
+ id: security-hardening
3
+ level: 3
4
+ course: github-actions-cicd
5
+ type: output
6
+ description: "Harden GitHub Actions security — prevent supply chain attacks, pin actions by SHA, implement OIDC, and secure workflows"
7
+ tags: [github, actions, security, supply-chain, OIDC, hardening, advanced]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ Your security team conducted an audit of your GitHub Actions setup
13
+ and found critical vulnerabilities. You need to remediate all findings
14
+ and implement a security hardening plan.
15
+
16
+ Audit findings:
17
+
18
+ Finding 1 — Supply chain risk (Critical):
19
+ All 45 third-party actions are referenced by tag (e.g., @v4) not by
20
+ SHA. A compromised action tag could execute malicious code in your
21
+ CI. Example: `uses: some-popular-action/upload@v3` — if that
22
+ maintainer's account is compromised, v3 could be overwritten.
23
+
24
+ Finding 2 — Overly permissive GITHUB_TOKEN (High):
25
+ All workflows run with default GITHUB_TOKEN permissions (read+write
26
+ on all scopes). Most workflows only need read access to contents
27
+ and write access to pull-requests.
28
+
29
+ Finding 3 — Fork PR vulnerability (High):
30
+ Workflows triggered by pull_request_target have access to secrets
31
+ and run in the context of the base branch. A malicious fork could
32
+ submit a PR that exfiltrates secrets.
33
+
34
+ Finding 4 — No OIDC authentication (Medium):
35
+ AWS deployments use long-lived access keys stored as GitHub Secrets.
36
+ These keys never rotate and would be exposed if a workflow is
37
+ compromised. Should use OIDC for keyless authentication.
38
+
39
+ Finding 5 — Script injection (Medium):
40
+ Several workflows use github.event.pull_request.title directly in
41
+ run: commands. A PR title containing backticks or $() could execute
42
+ arbitrary commands.
43
+
44
+ Task: Remediate all 5 findings. For each, write: the vulnerability
45
+ explanation (how it could be exploited), the remediation (specific
46
+ YAML changes), the verification steps (how to confirm the fix works),
47
+ and the ongoing prevention strategy. Include: the complete OIDC setup
48
+ for AWS (IAM role, trust policy, workflow changes), the GITHUB_TOKEN
49
+ permission lockdown, and a security checklist for all future workflows.
50
+
51
+ assertions:
52
+ - type: llm_judge
53
+ criteria: "All 5 vulnerabilities are remediated correctly — actions pinned by full SHA, GITHUB_TOKEN permissions restricted with permissions: key at workflow and job level, pull_request_target secured against fork attacks, OIDC configured for AWS, and script injection prevented with environment variables"
54
+ weight: 0.35
55
+ description: "Correct vulnerability remediation"
56
+ - type: llm_judge
57
+ criteria: "OIDC setup is complete — includes the AWS IAM OIDC identity provider, the IAM role trust policy with correct GitHub conditions (repo, branch, environment), the workflow changes to use aws-actions/configure-aws-credentials with OIDC, and explains why this is more secure than static keys"
58
+ weight: 0.35
59
+ description: "Complete OIDC setup"
60
+ - type: llm_judge
61
+ criteria: "Security checklist is actionable — covers at least 10 security practices for GitHub Actions, is formatted as a PR review checklist, and includes automated enforcement options (e.g., CodeQL for workflow scanning, required workflow for org-wide security policy)"
62
+ weight: 0.30
63
+ description: "Actionable security checklist"
@@ -0,0 +1,60 @@
1
+ meta:
2
+ id: self-hosted-runners
3
+ level: 3
4
+ course: github-actions-cicd
5
+ type: output
6
+ description: "Manage self-hosted runners — set up, secure, scale, and maintain self-hosted runner infrastructure for GitHub Actions"
7
+ tags: [github, actions, self-hosted-runners, infrastructure, scaling, advanced]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ Your company is migrating from GitHub-hosted to self-hosted runners
13
+ for 3 reasons: cost reduction (spending $15K/month on GitHub runners),
14
+ specialized hardware needs (GPU for ML model testing), and compliance
15
+ requirements (code must not leave your network).
16
+
17
+ Infrastructure requirements:
18
+ - 80 engineers, 300 workflow runs per day
19
+ - Peak: 50 concurrent jobs during 10AM-2PM
20
+ - Job types: CI (80%), deployment (15%), ML training (5%)
21
+ - Runner OS: Linux (90%), macOS (10% for iOS builds)
22
+ - Security: runners must be ephemeral (clean state per job)
23
+ - Network: runners need access to internal services but not
24
+ unrestricted internet access
25
+
26
+ Architecture options to evaluate:
27
+ 1. Bare metal servers in your data center
28
+ 2. VMs on existing VMware infrastructure
29
+ 3. Kubernetes with actions-runner-controller (ARC)
30
+ 4. Auto-scaled cloud VMs (AWS EC2 with runner auto-scaler)
31
+
32
+ Security concerns:
33
+ - How to prevent a malicious workflow from compromising the runner
34
+ - How to handle secrets on self-hosted runners
35
+ - How to ensure runners are patched and updated
36
+ - How to isolate runners between teams/repos
37
+ - How to prevent crypto mining on organization runners
38
+
39
+ Task: Design the self-hosted runner infrastructure. Write: the
40
+ architecture recommendation (which option and why), the runner
41
+ configuration (labels, groups, scaling policies), the security
42
+ hardening guide (ephemeral runners, network isolation, secret
43
+ handling), the monitoring and alerting setup (runner health, queue
44
+ depth, job wait times), and the cost comparison (self-hosted vs
45
+ GitHub-hosted for your usage). Include the runner registration
46
+ automation and the disaster recovery plan.
47
+
48
+ assertions:
49
+ - type: llm_judge
50
+ criteria: "Architecture recommendation is well-reasoned — evaluates all 4 options with pros/cons for the specific requirements, likely recommends ARC or cloud auto-scaling for ephemeral runners, and addresses GPU needs for ML jobs separately from general CI"
51
+ weight: 0.35
52
+ description: "Well-reasoned architecture"
53
+ - type: llm_judge
54
+ criteria: "Security hardening is comprehensive — covers ephemeral runners (clean state per job), network isolation (firewall rules, no internet for sensitive repos), runner groups for team isolation, automatic patching, and protection against malicious workflows"
55
+ weight: 0.35
56
+ description: "Comprehensive security hardening"
57
+ - type: llm_judge
58
+ criteria: "Cost comparison is data-driven — calculates the total cost of self-hosted (hardware, maintenance, networking, engineer time) vs GitHub-hosted ($15K/month), identifies the break-even point, and the monitoring setup tracks runner utilization to optimize costs"
59
+ weight: 0.30
60
+ description: "Data-driven cost comparison"
@@ -0,0 +1,59 @@
1
+ meta:
2
+ id: workflow-optimization
3
+ level: 3
4
+ course: github-actions-cicd
5
+ type: output
6
+ description: "Optimize workflow performance — reduce CI time from 30 to 10 minutes using parallelism, caching, and smart architecture"
7
+ tags: [github, actions, optimization, parallelism, performance, advanced]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ Your team's main CI workflow takes 30 minutes to complete. This is
13
+ the #1 developer experience complaint. The CTO wants it under 10
14
+ minutes. Here's the current workflow and timing breakdown:
15
+
16
+ Current workflow (sequential):
17
+ ```
18
+ checkout (30s) → install (3min) → lint (2min) → typecheck (3min) →
19
+ unit-tests (8min) → integration-tests (6min) → e2e-tests (5min) →
20
+ build (2min) → docker-build (1.5min) = 31 minutes total
21
+ ```
22
+
23
+ Additional data:
24
+ - Unit tests: 1,200 tests in 45 test files
25
+ - Integration tests: 80 tests requiring PostgreSQL + Redis
26
+ - E2E tests: 30 Cypress tests requiring a running dev server
27
+ - Build output: 12MB frontend bundle + Docker image
28
+ - Cache hit rate: 60% (should be 95%+)
29
+ - Runner: ubuntu-latest (2 CPU, 7GB RAM)
30
+
31
+ Optimization budget:
32
+ - Can split into multiple parallel jobs
33
+ - Can use larger runners (4 CPU, 16GB RAM) — 2x cost but 2x faster
34
+ - Can use test sharding (split tests across parallel workers)
35
+ - Can use remote caching (Turborepo remote cache or similar)
36
+ - Can restructure tests (some unit tests may actually be integration)
37
+
38
+ Task: Redesign the workflow for sub-10-minute completion. Write: the
39
+ optimized workflow YAML with parallel jobs, the test sharding
40
+ configuration (split unit tests across N workers), the caching
41
+ strategy (to achieve 95%+ hit rate), the runner sizing analysis
42
+ (standard vs larger runners — cost vs speed trade-off), and the
43
+ before/after comparison (timeline diagram showing parallel execution
44
+ vs sequential). Explain each optimization technique and its expected
45
+ impact.
46
+
47
+ assertions:
48
+ - type: llm_judge
49
+ criteria: "Workflow is redesigned for parallelism — lint, typecheck, and unit tests run in parallel (not sequential), e2e tests use sharding across multiple runners, and the critical path is identified and optimized to under 10 minutes"
50
+ weight: 0.35
51
+ description: "Parallel workflow redesign"
52
+ - type: llm_judge
53
+ criteria: "Test sharding is correctly implemented — unit tests split across N parallel workers using matrix strategy with test file distribution, integration tests use proper service containers, and e2e tests are sharded with Cypress's parallelization"
54
+ weight: 0.35
55
+ description: "Correct test sharding"
56
+ - type: llm_judge
57
+ criteria: "Before/after comparison is clear — shows the timeline diagram (text-based) of sequential vs parallel execution, quantifies each optimization's contribution, and the cost analysis compares standard vs larger runners at the new parallel configuration"
58
+ weight: 0.30
59
+ description: "Clear before/after comparison"
@@ -0,0 +1,63 @@
1
+ meta:
2
+ id: cicd-data-architecture
3
+ level: 4
4
+ course: github-actions-cicd
5
+ type: output
6
+ description: "Design CI/CD data architecture — build analytics pipelines for workflow metrics, cost tracking, and predictive insights"
7
+ tags: [github, actions, data-architecture, analytics, metrics, DORA, expert]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ You're the Head of Data Engineering building the data infrastructure
13
+ for CI/CD analytics. The platform team needs data to track DORA
14
+ metrics, optimize costs, and predict failures. Currently there's no
15
+ centralized CI/CD data — metrics are scattered across GitHub API
16
+ responses, runner logs, and deployment systems.
17
+
18
+ Data sources:
19
+ - GitHub Actions API: Workflow runs, job details, step timings, costs
20
+ - GitHub webhooks: Real-time workflow events (50,000+ events/day)
21
+ - Self-hosted runner metrics: CPU, memory, queue depth (Prometheus)
22
+ - Cloud provider APIs: Deployment status, resource costs
23
+ - Incident management: PagerDuty alerts, incident timelines
24
+ - Git data: Commit frequency, PR merge times, branch patterns
25
+
26
+ Analytics requirements:
27
+ 1. DORA metrics dashboard (deployment frequency, lead time, MTTR,
28
+ change failure rate) — real-time, per team, trending
29
+ 2. Cost analytics (per-team, per-repo, per-workflow cost allocation
30
+ with budget alerts)
31
+ 3. Failure prediction (ML model to predict which PRs will have CI
32
+ failures based on files changed, time of day, author history)
33
+ 4. Performance trending (workflow duration trends, bottleneck
34
+ detection, runner utilization optimization)
35
+ 5. Compliance reporting (automated evidence for SOC 2 audits)
36
+
37
+ Constraints:
38
+ - Budget: $100K/year for data infrastructure
39
+ - Must handle 50K+ events/day without data loss
40
+ - DORA dashboard must update within 5 minutes of events
41
+ - Cost data must be accurate to within $1 per team per month
42
+ - 2-year data retention for compliance
43
+
44
+ Task: Design the CI/CD data architecture. Write: the data model
45
+ (entities, relationships, derived metrics), the ingestion pipeline
46
+ (webhook processing, API polling, stream processing), the storage
47
+ strategy (time-series for metrics, OLAP for analytics, feature store
48
+ for ML), the DORA metrics computation logic, and the ML pipeline for
49
+ failure prediction. Include the cost breakdown for the $100K budget.
50
+
51
+ assertions:
52
+ - type: llm_judge
53
+ criteria: "DORA metrics computation is correct — deployment frequency counts production deploys per day, lead time measures commit-to-deploy, MTTR measures incident-open-to-resolved, change failure rate is failed-deploys/total-deploys, and all are computed per-team with correct time windows"
54
+ weight: 0.35
55
+ description: "Correct DORA metrics computation"
56
+ - type: llm_judge
57
+ criteria: "Architecture fits the $100K budget — uses cost-effective technologies (not enterprise tools), handles 50K+ events/day reliably, and the cost breakdown accounts for compute, storage, and data transfer across all components"
58
+ weight: 0.35
59
+ description: "Budget-fitting architecture"
60
+ - type: llm_judge
61
+ criteria: "ML failure prediction is practical — identifies useful features (files changed, test history, time of day, PR size, author failure rate), proposes a reasonable model (not over-engineered), and the feature store design supports both batch training and real-time inference"
62
+ weight: 0.30
63
+ description: "Practical ML failure prediction"
@@ -0,0 +1,63 @@
1
+ meta:
2
+ id: cicd-economics-roi
3
+ level: 4
4
+ course: github-actions-cicd
5
+ type: output
6
+ description: "Analyze CI/CD economics — calculate the true cost, model ROI, and present the business case for CI/CD investment"
7
+ tags: [github, actions, economics, ROI, cost-analysis, business-case, expert]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ You're the Director of Engineering presenting a business case to the
13
+ CFO for a $2M CI/CD platform investment. The CFO asks: "We spend
14
+ $1.2M/year on GitHub Actions already. Why invest more?"
15
+
16
+ Current CI/CD costs:
17
+ - GitHub Actions: $1.2M/year (minutes + storage)
18
+ - Self-hosted runners: $300K/year (infrastructure + maintenance)
19
+ - Engineering time on CI/CD: 3 FTEs dedicated ($600K/year)
20
+ - Time lost to CI failures: estimated 2 hours/week per developer
21
+ - Total: ~$2.1M/year visible costs
22
+
23
+ Hidden costs (to calculate):
24
+ - Developer waiting time: 800 engineers × avg 20 min/day waiting
25
+ for CI = ? hours/year at $85/hour fully loaded
26
+ - Failed deployments: 12/quarter, avg 4 hours to fix, 3 engineers
27
+ - Rollbacks: 8/quarter, avg 2 hours, 2 engineers
28
+ - Context switching: developers context-switch while waiting for
29
+ 30-minute CI runs
30
+
31
+ Proposed investment ($2M over 2 years):
32
+ 1. CI/CD platform team: 5 FTEs ($1M/year)
33
+ 2. Self-hosted runner infrastructure upgrade: $400K
34
+ 3. Tooling and automation: $200K
35
+ 4. Training program: $100K
36
+
37
+ Expected outcomes:
38
+ - Reduce average CI time from 25 min to 8 min
39
+ - Reduce deployment failures from 12/quarter to 2/quarter
40
+ - Eliminate 80% of developer CI wait time
41
+ - Standardize deployment across all 200 repos
42
+
43
+ Task: Build the complete economic model. Write: the true cost of
44
+ the current state (including all hidden costs), the investment
45
+ analysis for the proposed $2M (expected returns, payback period,
46
+ NPV), the risk-adjusted projection (what if improvements are only
47
+ 50% of target), the DORA metrics improvement forecast (deployment
48
+ frequency, lead time, MTTR, change failure rate), and the 2-page
49
+ executive summary for the CFO. Include a sensitivity analysis.
50
+
51
+ assertions:
52
+ - type: llm_judge
53
+ criteria: "Hidden costs are calculated — developer wait time is quantified (800 engineers × 20 min/day × 250 days × $85/hour), deployment failure costs are summed, and the total true cost is significantly higher than the visible $2.1M"
54
+ weight: 0.35
55
+ description: "Calculated hidden costs"
56
+ - type: llm_judge
57
+ criteria: "Investment analysis is rigorous — includes NPV with appropriate discount rate, payback period calculation, sensitivity analysis (best/expected/worst case), and the risk-adjusted projection shows the investment is worthwhile even at 50% of expected improvements"
58
+ weight: 0.35
59
+ description: "Rigorous investment analysis"
60
+ - type: llm_judge
61
+ criteria: "Executive summary is CFO-ready — leads with business impact (not technical details), presents the 'do nothing' cost, shows clear ROI, includes DORA metrics improvement as industry-standard benchmarks, and fits in 2 pages"
62
+ weight: 0.30
63
+ description: "CFO-ready executive summary"
@@ -0,0 +1,58 @@
1
+ meta:
2
+ id: cicd-executive-communication
3
+ level: 4
4
+ course: github-actions-cicd
5
+ type: output
6
+ description: "Executive communication about CI/CD — present platform health, investment needs, and strategic roadmap to C-suite audiences"
7
+ tags: [github, actions, executive, communication, strategy, DORA-metrics, expert]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ You're the CTO preparing 3 executive communications about CI/CD
13
+ platform strategy. Each audience has different concerns.
14
+
15
+ Communication 1 — Board of Directors quarterly update:
16
+ The board wants to understand "engineering velocity" as a competitive
17
+ metric. Your DORA metrics data:
18
+ - Deployment frequency: 45/day (up from 8/day last year)
19
+ - Lead time for changes: 2.3 hours (down from 5 days)
20
+ - Mean time to recovery: 18 minutes (down from 4 hours)
21
+ - Change failure rate: 2.1% (down from 12%)
22
+ All metrics are now in the "Elite" DORA category. The board asks:
23
+ "How does this compare to competitors and how does it impact revenue?"
24
+
25
+ Communication 2 — CFO budget review:
26
+ CI/CD costs increased 300% year-over-year ($400K → $1.6M) due to
27
+ growth from 100 to 500 engineers. The CFO wants to understand: is
28
+ this scaling linearly (bad) or sublinearly (good)? What's the cost
29
+ per deployment? How does the investment in the platform team ($3M)
30
+ pay back? And should the company consider moving from GitHub Actions
31
+ to a cheaper alternative?
32
+
33
+ Communication 3 — All-engineering town hall:
34
+ You're presenting the CI/CD platform roadmap for the next year. The
35
+ audience includes engineers frustrated with current CI speed ("builds
36
+ take 30 minutes"), teams that want more deployment autonomy ("why
37
+ do we need the platform team's approval to change our pipeline"),
38
+ and security engineers who want stricter controls.
39
+
40
+ Task: Write all 3 communications. For each: adapt the message to
41
+ the audience, use data effectively, include specific asks or next
42
+ steps, and anticipate tough questions. The board update should be
43
+ 1 page, the CFO review should include financial models, and the
44
+ town hall should be an engaging presentation outline.
45
+
46
+ assertions:
47
+ - type: llm_judge
48
+ criteria: "Board communication connects DORA metrics to business value — translates elite DORA metrics into competitive advantage (faster time-to-market, lower outage costs, higher engineering productivity), with industry benchmarks for context"
49
+ weight: 0.35
50
+ description: "Business-value board communication"
51
+ - type: llm_judge
52
+ criteria: "CFO review has solid financial analysis — shows cost-per-deployment trend (should be declining despite total cost increase), demonstrates sublinear cost scaling per engineer, and makes a data-driven case against switching platforms (migration cost vs savings)"
53
+ weight: 0.35
54
+ description: "Financial CFO review"
55
+ - type: llm_judge
56
+ criteria: "Town hall addresses all audience segments — acknowledges the 30-minute build frustration with a specific improvement plan, explains the balance between autonomy and governance, and gives security engineers confidence in the compliance roadmap"
57
+ weight: 0.30
58
+ description: "Multi-audience town hall"