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,61 @@
1
+ meta:
2
+ id: cross-team-review
3
+ level: 2
4
+ course: github-pr-review
5
+ type: output
6
+ description: "Cross-team code review — review PRs outside your domain expertise, ask effective questions, and provide value without deep context"
7
+ tags: [github, pr-review, cross-team, knowledge-sharing, communication, intermediate]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ You're a frontend engineer asked to review 3 PRs from teams outside
13
+ your usual domain. You need to provide valuable feedback despite not
14
+ being a domain expert.
15
+
16
+ PR #401 — From the Data team: "Add real-time analytics pipeline"
17
+ You don't know Kafka or Spark, but the PR touches shared API contracts
18
+ your frontend consumes. Changes include:
19
+ - New event schema for user interactions (affects your tracking code)
20
+ - API response format change for the analytics dashboard endpoint
21
+ - New WebSocket endpoint for real-time data
22
+ The PR has 400 lines, good tests, but the API changes aren't
23
+ documented and the response format breaks backward compatibility.
24
+
25
+ PR #402 — From the Infrastructure team: "Migrate to Kubernetes"
26
+ You don't know K8s well, but the PR modifies environment variables and
27
+ deployment configuration that affect your app. Changes include:
28
+ - New environment variable naming convention (REACT_APP_ → NEXT_PUBLIC_)
29
+ - Health check endpoint added (your app needs to implement /healthz)
30
+ - Changed base URL configuration from hardcoded to dynamic
31
+ The PR is 600 lines of YAML and config, with a migration guide buried
32
+ in a comment.
33
+
34
+ PR #403 — From the Mobile team: "Add shared component library"
35
+ The mobile team is creating a shared React Native component library
36
+ that should share design tokens with your web components. Changes:
37
+ - New design token format (different from your current CSS variables)
38
+ - Shared TypeScript types for API responses
39
+ - A utility function that duplicates logic from your web codebase
40
+ The PR is 250 lines with no mention of the web team in the description.
41
+
42
+ Task: Review all 3 PRs. For each, write: what you can and can't
43
+ evaluate as a non-domain expert, the specific feedback you can provide
44
+ (API contracts, compatibility, shared code), the questions to ask the
45
+ authors (framed constructively, not "I don't understand"), and the
46
+ cross-team concerns to raise. Include a meta-analysis of what this
47
+ cross-team review experience reveals about organizational communication.
48
+
49
+ assertions:
50
+ - type: llm_judge
51
+ criteria: "Reviews add value despite limited domain knowledge — identifies API contract breaks in #401, environment variable migration risks in #402, and code duplication in #403, all from the frontend perspective without pretending to understand Kafka/K8s internals"
52
+ weight: 0.35
53
+ description: "Value-adding cross-team reviews"
54
+ - type: llm_judge
55
+ criteria: "Questions are constructive and specific — asks about backward compatibility plans (not 'will this break things?'), migration timeline for env vars, and design token unification strategy, showing respect for the authors' domain expertise"
56
+ weight: 0.35
57
+ description: "Constructive cross-team questions"
58
+ - type: llm_judge
59
+ criteria: "Organizational patterns are identified — notes that cross-team PRs need better API change documentation, shared code should have cross-team visibility, and suggests process improvements (RFC for cross-team changes, shared API contract tests)"
60
+ weight: 0.30
61
+ description: "Organizational pattern recognition"
@@ -0,0 +1,66 @@
1
+ meta:
2
+ id: intermediate-review-shift
3
+ level: 2
4
+ course: github-pr-review
5
+ type: output
6
+ description: "Intermediate review shift — handle a complex batch of PRs requiring security, performance, and cross-team review skills"
7
+ tags: [github, pr-review, shift-simulation, batch-review, intermediate]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ You're doing a review shift with 4 challenging PRs. Each requires
13
+ different intermediate skills.
14
+
15
+ PR #501 (critical, 2 hours old): "Hotfix: Rate limit the signup
16
+ endpoint"
17
+ Author: On-call engineer. Context: The signup endpoint is being
18
+ abused — 10,000 fake accounts created in the last hour. The fix adds
19
+ Redis-based rate limiting: 5 signups per IP per hour.
20
+ Code concern: The rate limit key is based only on IP address (easily
21
+ bypassed with proxies), the Redis connection has no error handling (if
22
+ Redis is down, all signups fail), and the rate limit response doesn't
23
+ include Retry-After header.
24
+ Urgency: Active abuse happening now.
25
+
26
+ PR #502 (medium, 1 day old): "Add real-time notifications via SSE"
27
+ Author: Mid-level engineer. 350 lines adding Server-Sent Events for
28
+ notification delivery. The implementation keeps all SSE connections in
29
+ a Map in memory, with no connection limit, no heartbeat, and no
30
+ cleanup of dead connections. In production with 50K concurrent users,
31
+ this would exhaust memory.
32
+ Tests: Only tests the happy path with 1 connection.
33
+
34
+ PR #503 (low urgency, 3 days old): "Migrate from Moment.js to
35
+ date-fns"
36
+ Author: Junior engineer. 800 lines of date library migration. Most
37
+ changes are mechanical (moment().format() → format(new Date())), but
38
+ 3 timezone conversions are incorrect — they use local timezone instead
39
+ of UTC, which would break for users in non-UTC timezones.
40
+ CI: Green (tests don't cover timezone edge cases).
41
+
42
+ PR #504 (medium, 4 hours old): "Stacked PR 2/3: Add payment webhooks"
43
+ This is the second PR in a 3-PR stack. PR 1/3 (payment model) was
44
+ merged with a review comment about adding an index that was never
45
+ addressed. This PR adds webhook handling but references the unindexed
46
+ column in queries that will be called for every webhook event.
47
+
48
+ Task: Review all 4 PRs. For each, write: the priority order with
49
+ justification, a focused review addressing the key technical concern,
50
+ the decision (approve/request changes/comment) with rationale, and
51
+ specific code-level feedback. End with a shift summary noting patterns
52
+ and team-level observations.
53
+
54
+ assertions:
55
+ - type: llm_judge
56
+ criteria: "Priority order balances urgency with risk — PR #501 is first (active abuse), but the review still catches security gaps in the rate limit implementation rather than rubber-stamping the hotfix. The stacked PR #504 gets attention for the carried-over tech debt"
57
+ weight: 0.35
58
+ description: "Urgency-balanced priority order"
59
+ - type: llm_judge
60
+ criteria: "Technical depth is appropriate per PR — #501 gets security-focused review (rate limit bypass, Redis failure mode), #502 gets scalability review (memory exhaustion, connection management), #503 catches timezone bugs, #504 addresses the unresolved index issue from the previous PR"
61
+ weight: 0.35
62
+ description: "Appropriate technical depth"
63
+ - type: llm_judge
64
+ criteria: "Shift summary identifies systemic issues — notes patterns across PRs (missing error handling, insufficient test coverage for edge cases, tech debt carried across stacked PRs) and recommends team-level improvements"
65
+ weight: 0.30
66
+ description: "Systemic issue identification"
@@ -0,0 +1,99 @@
1
+ meta:
2
+ id: performance-review-patterns
3
+ level: 2
4
+ course: github-pr-review
5
+ type: output
6
+ description: "Performance-focused code review — identify N+1 queries, memory leaks, and inefficient patterns in pull requests"
7
+ tags: [github, pr-review, performance, N+1, memory-leaks, intermediate]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ You're reviewing a PR titled "Add order history page with product
13
+ details." The PR loads a user's order history and displays product
14
+ information. Review these code sections for performance issues:
15
+
16
+ Section 1 — API endpoint:
17
+ ```javascript
18
+ app.get('/api/orders', async (req, res) => {
19
+ const orders = await Order.findAll({ where: { userId: req.user.id } });
20
+ const result = [];
21
+ for (const order of orders) {
22
+ const items = await OrderItem.findAll({ where: { orderId: order.id } });
23
+ for (const item of items) {
24
+ item.product = await Product.findOne({ where: { id: item.productId } });
25
+ item.reviews = await Review.findAll({ where: { productId: item.productId } });
26
+ }
27
+ result.push({ ...order.toJSON(), items });
28
+ }
29
+ res.json(result);
30
+ });
31
+ ```
32
+
33
+ Section 2 — React component:
34
+ ```jsx
35
+ function OrderHistory() {
36
+ const [orders, setOrders] = useState([]);
37
+ const [enrichedOrders, setEnrichedOrders] = useState([]);
38
+
39
+ useEffect(() => {
40
+ fetch('/api/orders').then(r => r.json()).then(setOrders);
41
+ }, []);
42
+
43
+ useEffect(() => {
44
+ orders.forEach(async (order) => {
45
+ const shipping = await fetch(`/api/shipping/${order.id}`).then(r => r.json());
46
+ setEnrichedOrders(prev => [...prev, { ...order, shipping }]);
47
+ });
48
+ }, [orders]);
49
+
50
+ return (
51
+ <div>
52
+ {enrichedOrders.map(order => (
53
+ <OrderCard key={order.id} order={order} />
54
+ ))}
55
+ </div>
56
+ );
57
+ }
58
+ ```
59
+
60
+ Section 3 — Utility function:
61
+ ```javascript
62
+ function formatOrdersForExport(orders) {
63
+ const allProducts = [];
64
+ orders.forEach(order => {
65
+ order.items.forEach(item => {
66
+ allProducts.push(JSON.parse(JSON.stringify(item.product)));
67
+ });
68
+ });
69
+ return allProducts.map(p => ({
70
+ ...p,
71
+ formattedPrice: new Intl.NumberFormat('en-US', {
72
+ style: 'currency', currency: 'USD'
73
+ }).format(p.price)
74
+ }));
75
+ }
76
+ ```
77
+
78
+ The user has 50 orders on average, each with 3-5 items. The page
79
+ currently takes 8 seconds to load.
80
+
81
+ Task: Write a performance-focused review. For each section: name the
82
+ performance anti-pattern, estimate the impact (number of queries,
83
+ memory usage, render cycles), provide the optimized solution with code,
84
+ and explain why the optimization works. Include a summary of expected
85
+ performance improvement.
86
+
87
+ assertions:
88
+ - type: llm_judge
89
+ criteria: "N+1 query problem is identified and fixed — Section 1 has nested N+1 queries (orders → items → products → reviews), and the fix uses eager loading (includes/joins) or batch queries to reduce from O(n*m) queries to O(1) or O(k)"
90
+ weight: 0.35
91
+ description: "N+1 query identification and fix"
92
+ - type: llm_judge
93
+ criteria: "Frontend performance issues are identified — Section 2 causes waterfall API calls (one per order), causes re-renders on every setState in the loop, and has a race condition with the enrichedOrders accumulation. Fix uses Promise.all or batched endpoint"
94
+ weight: 0.35
95
+ description: "Frontend performance issues"
96
+ - type: llm_judge
97
+ criteria: "Memory and computation waste identified — Section 3 deep-clones objects unnecessarily with JSON.parse/JSON.stringify, creates a new Intl.NumberFormat for each item instead of reusing it, and the fixes show proper optimization with minimal memory allocation"
98
+ weight: 0.30
99
+ description: "Memory and computation optimization"
@@ -0,0 +1,64 @@
1
+ meta:
2
+ id: review-disagreement-resolution
3
+ level: 2
4
+ course: github-pr-review
5
+ type: output
6
+ description: "Resolve review disagreements — handle conflicting reviewer opinions, technical disputes, and author pushback constructively"
7
+ tags: [github, pr-review, conflict-resolution, disagreement, communication, intermediate]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ You're a senior engineer mediating review disagreements on 3 PRs
13
+ where reviewers and authors have reached an impasse.
14
+
15
+ Dispute #1 — Architecture disagreement:
16
+ PR "Refactor user service to microservice" has been open for 2 weeks.
17
+ - Author (mid-level): Extracted the user service into a separate
18
+ microservice with its own database. Says it improves scalability.
19
+ - Reviewer A (staff engineer): "This adds unnecessary complexity.
20
+ We're a 10-person team. Keep it as a module in the monolith."
21
+ - Reviewer B (senior): "I agree with the extraction but the API
22
+ contract is wrong — it should use gRPC, not REST."
23
+ - Author: "I've already spent 3 weeks on this. I'm not rewriting it."
24
+ Both reviewers have valid points. The PR has 1,500 lines changed.
25
+
26
+ Dispute #2 — Style/preference war:
27
+ PR "Add error handling to checkout flow" has 47 review comments.
28
+ - Reviewer keeps requesting changes for style preferences not in the
29
+ style guide: single quotes vs double quotes, trailing commas,
30
+ function declarations vs arrow functions.
31
+ - Author: "These are personal preferences, not bugs. Our style guide
32
+ doesn't cover this. I'm not changing them."
33
+ - The actual error handling logic hasn't been reviewed at all.
34
+
35
+ Dispute #3 — Testing philosophy clash:
36
+ PR "Add payment retry logic" has 2 reviewers disagreeing:
37
+ - Reviewer A: "These tests mock too much. They don't test real
38
+ behavior. Write integration tests."
39
+ - Reviewer B: "Integration tests are slow and flaky. Unit tests with
40
+ mocks are the right approach. Ship it."
41
+ - Author: "I wrote what Reviewer B asked for last time. Now Reviewer A
42
+ wants something different. Which is it?"
43
+ The team has no documented testing strategy.
44
+
45
+ Task: For each dispute, write: the root cause of the disagreement
46
+ (technical, process, or interpersonal), the mediation approach (how
47
+ to move forward without picking sides), the specific resolution with
48
+ rationale, the process improvement to prevent recurrence, and the
49
+ actual review comments you would post. Include a summary of when to
50
+ escalate vs mediate.
51
+
52
+ assertions:
53
+ - type: llm_judge
54
+ criteria: "Root causes are correctly diagnosed — Dispute #1 is a scope/architecture issue (PR too large, decision should have been made before coding), #2 is a process issue (style guide gaps), #3 is a documentation/alignment issue (no testing strategy)"
55
+ weight: 0.35
56
+ description: "Correct root cause diagnosis"
57
+ - type: llm_judge
58
+ criteria: "Resolutions are practical and fair — doesn't just pick a side, suggests concrete paths forward (e.g., for #1: scope down to module extraction without separate service, for #2: end the style war and focus on the error handling, for #3: define testing strategy then apply)"
59
+ weight: 0.35
60
+ description: "Practical and fair resolutions"
61
+ - type: llm_judge
62
+ criteria: "Process improvements prevent recurrence — suggests architectural decision records (ADRs) for #1, style guide expansion and linter rules for #2, documented testing strategy for #3, and general guidelines for when reviewers disagree"
63
+ weight: 0.30
64
+ description: "Recurrence-preventing process improvements"
@@ -0,0 +1,63 @@
1
+ meta:
2
+ id: review-metrics-analysis
3
+ level: 2
4
+ course: github-pr-review
5
+ type: output
6
+ description: "Analyze review metrics — interpret PR review data to identify bottlenecks, improve turnaround time, and balance reviewer load"
7
+ tags: [github, pr-review, metrics, analytics, turnaround-time, intermediate]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ You're a team lead analyzing 3 months of PR review data for your
13
+ 12-person engineering team. Management is concerned about shipping
14
+ velocity. Here's the data:
15
+
16
+ Overall metrics:
17
+ - Average time to first review: 18 hours
18
+ - Average time to merge: 4.2 days
19
+ - Average review rounds: 2.8
20
+ - PRs merged per week: 23
21
+ - PRs abandoned/closed without merge: 8 per week
22
+
23
+ Per-reviewer breakdown:
24
+ | Reviewer | Reviews/week | Avg first review (hrs) | Avg comments | Approval rate |
25
+ |----------|-------------|----------------------|--------------|---------------|
26
+ | Alice | 14 | 4 | 8.2 | 35% |
27
+ | Bob | 12 | 6 | 3.1 | 72% |
28
+ | Carol | 3 | 48 | 1.5 | 90% |
29
+ | David | 8 | 12 | 5.4 | 55% |
30
+ | Eve | 2 | 72 | 0.8 | 95% |
31
+ | Frank | 6 | 24 | 4.7 | 60% |
32
+
33
+ PR size distribution:
34
+ - Under 100 lines: 30% (avg 1.2 days to merge)
35
+ - 100-400 lines: 45% (avg 3.8 days to merge)
36
+ - 400+ lines: 25% (avg 8.5 days to merge)
37
+
38
+ Common review comment categories:
39
+ - Style/formatting: 35%
40
+ - Logic errors: 20%
41
+ - Missing tests: 18%
42
+ - Architecture concerns: 15%
43
+ - Documentation: 12%
44
+
45
+ Task: Analyze the data and write: the key findings (what's working,
46
+ what's not), the root causes behind slow merge times, specific
47
+ recommendations for each bottleneck (reviewer load balancing, PR size
48
+ policy, automation opportunities), an action plan with expected impact,
49
+ and the dashboard design for ongoing monitoring.
50
+
51
+ assertions:
52
+ - type: llm_judge
53
+ criteria: "Key bottlenecks are identified — Alice is a bottleneck (too many reviews, too critical), Carol and Eve are under-reviewing, 35% of comments are style issues that should be automated, large PRs take disproportionately long, and the abandonment rate is high"
54
+ weight: 0.35
55
+ description: "Bottleneck identification"
56
+ - type: llm_judge
57
+ criteria: "Recommendations are specific and actionable — includes reviewer load rebalancing (cap Alice, increase Carol/Eve), automating style checks to eliminate 35% of comments, enforcing PR size limits, and reducing review rounds through better PR descriptions"
58
+ weight: 0.35
59
+ description: "Specific recommendations"
60
+ - type: llm_judge
61
+ criteria: "Action plan includes expected impact — quantifies improvements (e.g., automating style saves X hours/week, rebalancing reduces first-review time by Y hours), prioritizes actions by impact, and the dashboard tracks leading indicators not just lagging metrics"
62
+ weight: 0.30
63
+ description: "Quantified action plan"
@@ -0,0 +1,54 @@
1
+ meta:
2
+ id: review-turnaround-sla
3
+ level: 2
4
+ course: github-pr-review
5
+ type: output
6
+ description: "Design review SLAs — create turnaround time agreements that balance speed with quality and handle escalations"
7
+ tags: [github, pr-review, SLA, turnaround-time, process, intermediate]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ Your engineering org (40 developers, 4 teams) has no formal review
13
+ SLAs. The result: some PRs get reviewed in minutes (if the author
14
+ pings on Slack), others sit for days (if the author is quiet). This
15
+ creates frustration and slows delivery unpredictably.
16
+
17
+ Current pain points:
18
+ - Average first-review time varies wildly: 1 hour to 5 days
19
+ - Hotfixes sometimes wait behind feature PRs
20
+ - Junior engineers' PRs wait longer than senior engineers' PRs
21
+ - Cross-team reviews are the slowest (2x longer than within-team)
22
+ - No escalation path when a review is stuck
23
+ - Some reviewers batch all reviews to Friday afternoon
24
+ - No distinction between "quick look" reviews and deep reviews
25
+
26
+ Team composition:
27
+ - Platform team (8 devs): infrastructure, shared libraries
28
+ - Product team A (12 devs): user-facing features
29
+ - Product team B (10 devs): merchant-facing features
30
+ - Data team (10 devs): pipelines, analytics, ML
31
+
32
+ Task: Design the review SLA framework. Write: the SLA tiers (by PR
33
+ type, size, and urgency — with specific time targets for first review
34
+ and final decision), the escalation process (what happens when SLA is
35
+ missed — auto-assign, manager notification, etc.), the cross-team
36
+ review protocol (how to handle reviews that need expertise from another
37
+ team), the GitHub automation to track and enforce SLAs (labels, bots,
38
+ notifications), and the fairness mechanisms (ensuring junior engineers
39
+ get timely reviews, preventing reviewer burnout). Include the rollout
40
+ communication plan.
41
+
42
+ assertions:
43
+ - type: llm_judge
44
+ criteria: "SLA tiers are well-designed — differentiates by urgency (hotfix < 2 hrs, normal < 1 business day, large/architectural < 2 days), by size (small PRs get faster targets), and includes separate targets for first review vs final decision"
45
+ weight: 0.35
46
+ description: "Well-designed SLA tiers"
47
+ - type: llm_judge
48
+ criteria: "Escalation and automation are practical — includes graduated escalation (reminder → reassign → manager), GitHub Actions or bot configuration for SLA tracking, label-based routing, and doesn't create notification fatigue"
49
+ weight: 0.35
50
+ description: "Practical escalation and automation"
51
+ - type: llm_judge
52
+ criteria: "Fairness and sustainability are addressed — prevents reviewer burnout (review load caps, rotation), ensures junior engineers' PRs don't get deprioritized, handles cross-team reviews with designated liaisons, and the communication plan gets buy-in"
53
+ weight: 0.30
54
+ description: "Fair and sustainable framework"
@@ -0,0 +1,65 @@
1
+ meta:
2
+ id: stacked-pr-review
3
+ level: 2
4
+ course: github-pr-review
5
+ type: output
6
+ description: "Review stacked PRs — handle dependent PR chains, manage merge order, and review incremental changes effectively"
7
+ tags: [github, pr-review, stacked-prs, dependencies, workflow, intermediate]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ A senior engineer has submitted a stack of 4 dependent PRs for a
13
+ payment processing feature. They've asked you to review the full
14
+ stack. The PRs must be merged in order.
15
+
16
+ PR #301 (base: main) — "Add Payment model and database migration"
17
+ - 120 lines: new Payment table, migration, model with validations
18
+ - Status: CI green, no other reviews yet
19
+ - The migration adds columns: amount, currency, status, stripe_id,
20
+ created_at, updated_at
21
+ - You notice: no index on stripe_id, status enum uses strings instead
22
+ of an integer enum, no soft delete support
23
+
24
+ PR #302 (base: PR #301) — "Add payment processing service"
25
+ - 200 lines: PaymentService class, Stripe integration, error handling
26
+ - Status: CI green (includes #301's changes)
27
+ - Handles: create, capture, refund, webhook processing
28
+ - You notice: good error handling, but the refund method doesn't
29
+ check if the payment was already refunded, and the webhook handler
30
+ doesn't validate the Stripe signature
31
+
32
+ PR #303 (base: PR #302) — "Add payment API endpoints"
33
+ - 150 lines: REST endpoints, request validation, authentication
34
+ - Status: CI green
35
+ - You notice: endpoints look good, but there's no rate limiting on
36
+ the create-payment endpoint, and error responses leak internal
37
+ error messages to the client
38
+
39
+ PR #304 (base: PR #303) — "Add payment UI components"
40
+ - 180 lines: React components, form validation, loading states
41
+ - Status: CI green
42
+ - You notice: good UX, but the payment form doesn't disable the
43
+ submit button after click (double-charge risk), and there's no
44
+ idempotency key sent with the request
45
+
46
+ Task: Review the full stack. Write: the review strategy (how to
47
+ approach reviewing dependent PRs — top-down vs bottom-up, what to
48
+ focus on at each layer), the review for each PR (noting which issues
49
+ block the entire stack vs just that PR), the guidance on which issues
50
+ to fix before merging vs address in follow-ups, and the merge plan
51
+ (order, timing, what to verify between merges).
52
+
53
+ assertions:
54
+ - type: llm_judge
55
+ criteria: "Review strategy is sound — reviews bottom-up (data layer first), identifies which issues are stack-blocking (migration issues in #301 block everything) vs local (UI issues in #304 only affect that PR), and reviews each PR in the context of the full feature"
56
+ weight: 0.35
57
+ description: "Sound stacked PR review strategy"
58
+ - type: llm_judge
59
+ criteria: "Issues are correctly categorized — missing stripe_id index and webhook signature validation are blocking issues, double-submit in UI is important but could be a follow-up, and the review recognizes that some issues span PRs (idempotency needs both API and UI changes)"
60
+ weight: 0.35
61
+ description: "Correct issue categorization"
62
+ - type: llm_judge
63
+ criteria: "Merge plan is practical — addresses the risks of merging a stack (what happens if #301 merges but #302 needs changes), suggests rebasing strategy, and handles the case where a middle PR needs significant changes"
64
+ weight: 0.30
65
+ description: "Practical merge plan"
@@ -0,0 +1,65 @@
1
+ meta:
2
+ id: advanced-review-shift
3
+ level: 3
4
+ course: github-pr-review
5
+ type: output
6
+ description: "Advanced review shift — handle cross-functional reviews, compliance requirements, and process improvements simultaneously"
7
+ tags: [github, pr-review, shift-simulation, cross-functional, compliance, advanced]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ You're the review lead for the week. Your shift involves complex
13
+ reviews that span organizational boundaries and require process-level
14
+ decisions.
15
+
16
+ Situation 1 — Compliance-critical PR:
17
+ PR #601: "Add PCI DSS logging to payment endpoints" (180 lines)
18
+ The PR adds audit logging but the implementation logs full credit card
19
+ numbers in the "debug" log level. The author says debug logs are "only
20
+ for development" but you know they're enabled in staging which shares
21
+ infrastructure with production logs. This PR is blocking a PCI audit
22
+ next week.
23
+ Two reviewers have already approved it.
24
+
25
+ Situation 2 — Cross-team architecture dispute:
26
+ PR #602: "Shared authentication library v2" (450 lines)
27
+ The platform team submitted a breaking change to the auth library.
28
+ Three consuming teams have pushed back in the PR comments — 87
29
+ comments over 5 days with no resolution. The backend team wants OAuth,
30
+ the mobile team wants JWT, and the frontend team wants session-based.
31
+ The platform team is frustrated and threatening to merge without
32
+ consensus.
33
+
34
+ Situation 3 — Review process failure:
35
+ A production incident occurred because a PR was merged with a stale
36
+ approval — the code changed significantly after the approval, but
37
+ GitHub didn't require re-review. The CTO wants a fix before end of
38
+ week.
39
+
40
+ Situation 4 — Culture challenge:
41
+ A junior engineer comes to you privately saying a senior reviewer has
42
+ been leaving dismissive comments like "this is obviously wrong" and
43
+ "any competent developer would know this." The junior wants to change
44
+ teams. You check the PR history and confirm the pattern — 15 PRs with
45
+ similar comments in the last month.
46
+
47
+ Task: Handle all 4 situations. For each, write: the immediate action
48
+ (what to do right now), the resolution (how to resolve the core issue),
49
+ the process improvement (how to prevent recurrence), and the
50
+ communication (what to say and to whom). Include a weekly review lead
51
+ summary for the engineering leadership.
52
+
53
+ assertions:
54
+ - type: llm_judge
55
+ criteria: "Compliance situation is handled correctly — the PCI logging issue is flagged as a blocker despite 2 existing approvals, the approval is dismissed/review requested, and the fix addresses the credit card logging in all environments, not just production"
56
+ weight: 0.35
57
+ description: "Correct compliance handling"
58
+ - type: llm_judge
59
+ criteria: "Architecture dispute is resolved constructively — doesn't pick a side in the PR, escalates to an architectural decision record (ADR) or RFC process, proposes an in-person/sync discussion, and addresses the platform team's frustration with a timeline commitment"
60
+ weight: 0.35
61
+ description: "Constructive dispute resolution"
62
+ - type: llm_judge
63
+ criteria: "Culture issue is addressed seriously — the senior reviewer's behavior is addressed through management (not publicly in PRs), the junior engineer is supported, and the systemic fix includes reviewer conduct expectations and a feedback mechanism"
64
+ weight: 0.30
65
+ description: "Serious culture issue handling"
@@ -0,0 +1,58 @@
1
+ meta:
2
+ id: ai-powered-review
3
+ level: 3
4
+ course: github-pr-review
5
+ type: output
6
+ description: "Implement AI-powered code review — evaluate and integrate AI review tools, define human-AI review boundaries, and measure effectiveness"
7
+ tags: [github, pr-review, AI, automation, LLM, code-analysis, advanced]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ Your CTO wants to adopt AI-powered code review to reduce review
13
+ bottlenecks. You've been tasked with evaluating the approach and
14
+ designing the integration. Your team has 80 engineers across 25 repos.
15
+
16
+ Tools to evaluate:
17
+ 1. GitHub Copilot code review (built-in, understands repo context)
18
+ 2. CodeRabbit (AI review bot, posts inline comments)
19
+ 3. Sourcery (automated refactoring suggestions)
20
+ 4. Custom solution using Claude/GPT API with GitHub webhooks
21
+
22
+ Current review data:
23
+ - 120 PRs per week, average 4 review comments each
24
+ - Comment breakdown: 40% style/formatting, 25% bug/logic, 20%
25
+ performance, 15% architecture
26
+ - Average reviewer time per PR: 25 minutes
27
+ - 60% of first-round comments are issues AI could catch
28
+
29
+ Concerns from the team:
30
+ - "AI reviews will be noisy and developers will start ignoring all
31
+ automated feedback"
32
+ - "We'll lose the learning aspect of human review"
33
+ - "Who's responsible when AI misses a bug that a human would catch?"
34
+ - "AI can't understand our business domain and conventions"
35
+ - "Junior engineers will stop learning if AI does the reviewing"
36
+
37
+ Task: Design the AI review integration. Write: the tool evaluation
38
+ matrix (features, accuracy, cost, integration complexity for each),
39
+ the human-AI boundary definition (what AI reviews vs what humans
40
+ review), the integration architecture (GitHub Actions workflow, comment
41
+ formatting, noise reduction), the measurement framework (how to track
42
+ AI review accuracy, false positive rate, developer satisfaction), and
43
+ the change management plan (addressing team concerns, pilot program,
44
+ rollout). Include cost-benefit analysis.
45
+
46
+ assertions:
47
+ - type: llm_judge
48
+ criteria: "Tool evaluation is thorough — compares all 4 options on accuracy, cost, integration effort, and noise level, with a clear recommendation and reasoning. Considers the custom solution's flexibility vs maintenance burden"
49
+ weight: 0.35
50
+ description: "Thorough tool evaluation"
51
+ - type: llm_judge
52
+ criteria: "Human-AI boundaries are well-defined — AI handles style/formatting (40% of comments), flags potential bugs for human verification, and humans focus on architecture/design/domain logic. Addresses the learning concern by keeping educational review interactions human"
53
+ weight: 0.35
54
+ description: "Well-defined human-AI boundaries"
55
+ - type: llm_judge
56
+ criteria: "Change management addresses real concerns — the pilot program starts small and measures before scaling, noise reduction strategy prevents alert fatigue, the cost-benefit analysis quantifies saved reviewer hours vs tool cost, and the plan includes an exit strategy"
57
+ weight: 0.30
58
+ description: "Realistic change management"
@@ -0,0 +1,64 @@
1
+ meta:
2
+ id: compliance-review-process
3
+ level: 3
4
+ course: github-pr-review
5
+ type: output
6
+ description: "Design compliance-aware review — build review processes that satisfy SOX, SOC 2, HIPAA, and PCI DSS audit requirements"
7
+ tags: [github, pr-review, compliance, SOX, SOC2, audit, advanced]
8
+
9
+ state: {}
10
+
11
+ trigger: |
12
+ Your fintech company is preparing for SOC 2 Type II and PCI DSS
13
+ audits. The auditors will examine your code review process as part
14
+ of change management controls. Currently your process has gaps that
15
+ would fail the audit.
16
+
17
+ Audit requirements:
18
+ 1. SOC 2 — Change Management (CC8.1):
19
+ - All production changes must be reviewed by someone other than
20
+ the author
21
+ - Reviews must be documented and traceable
22
+ - Emergency changes must have post-deployment review within 24 hrs
23
+ - Separation of duties: developer cannot approve and deploy
24
+
25
+ 2. PCI DSS — Requirement 6.5:
26
+ - Code reviews must check for OWASP Top 10 vulnerabilities
27
+ - Security-focused review must be documented
28
+ - All custom code changes in the cardholder data environment must
29
+ be reviewed before deployment
30
+
31
+ 3. SOX (if applicable to financial reporting code):
32
+ - Changes to financial calculation code require dual approval
33
+ - Complete audit trail of who reviewed, when, and what was decided
34
+
35
+ Current gaps:
36
+ - 15% of PRs are merged by the author (self-merge after auto-approve
37
+ from CI)
38
+ - No documented security review checklist
39
+ - Emergency hotfixes bypass review entirely
40
+ - No separation between code approval and deployment
41
+ - Review comments are sometimes deleted or edited after merge
42
+ - No way to prove a human reviewed the code (vs rubber stamp)
43
+
44
+ Task: Design the compliance-aware review process. Write: the branch
45
+ protection rules that enforce separation of duties, the security
46
+ review checklist (OWASP-focused, documented per PR), the emergency
47
+ change process (fast but auditable), the audit trail requirements
48
+ (what to log, how to preserve, how to present to auditors), and the
49
+ GitHub configuration (rulesets, required reviews, CODEOWNERS for
50
+ sensitive code paths). Include sample audit evidence you would present.
51
+
52
+ assertions:
53
+ - type: llm_judge
54
+ criteria: "Compliance controls are complete — prevents self-merge (branch protection), requires documented security review for PCI-scoped code, enforces dual approval for SOX-scope financial code, and creates an immutable audit trail"
55
+ weight: 0.35
56
+ description: "Complete compliance controls"
57
+ - type: llm_judge
58
+ criteria: "Emergency process balances speed with compliance — allows expedited merges with reduced (but not zero) review requirements, mandates post-deployment review within 24 hours, and creates an audit trail even for emergency changes"
59
+ weight: 0.35
60
+ description: "Balanced emergency process"
61
+ - type: llm_judge
62
+ criteria: "Audit evidence is convincing — includes sample reports, GitHub configurations that create tamper-proof trails, and the process for presenting review history to auditors. Addresses the gap of edited/deleted review comments"
63
+ weight: 0.30
64
+ description: "Convincing audit evidence"