dojo.md 0.1.0 → 0.2.1
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.
- package/courses/GENERATION_LOG.md +72 -0
- package/courses/api-error-handling/course.yaml +16 -0
- package/courses/api-error-handling/scenarios/level-1/error-response-format.yaml +131 -0
- package/courses/api-error-handling/scenarios/level-1/http-status-codes-basics.yaml +90 -0
- package/courses/api-error-handling/scenarios/level-1/rate-limiting-basics.yaml +135 -0
- package/courses/api-error-handling/scenarios/level-1/request-validation-errors.yaml +208 -0
- package/courses/api-error-handling/scenarios/level-2/circuit-breaker-pattern.yaml +189 -0
- package/courses/api-error-handling/scenarios/level-2/idempotency-retry-logic.yaml +159 -0
- package/courses/api-error-handling/scenarios/level-2/rfc-7807-problem-details.yaml +178 -0
- package/courses/api-error-handling/scenarios/level-2/webhook-error-handling.yaml +211 -0
- package/courses/api-error-handling/scenarios/level-3/distributed-tracing-errors.yaml +275 -0
- package/courses/aws-lambda-debugging/course.yaml +11 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/api-gateway-integration.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/cloudwatch-logs-basics.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/cold-start-basics.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/environment-variable-issues.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/first-debugging-shift.yaml +73 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/handler-import-errors.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/iam-permission-errors.yaml +68 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/invocation-errors.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/lambda-timeout-errors.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/memory-and-oom.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/async-invocation-failures.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/cold-start-optimization.yaml +76 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/dynamodb-streams-debugging.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/intermediate-debugging-shift.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/lambda-concurrency-management.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/lambda-layers-debugging.yaml +76 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/sam-local-debugging.yaml +74 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/sqs-event-source.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/vpc-networking-issues.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/xray-tracing.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/advanced-debugging-shift.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/container-image-lambda.yaml +79 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/cross-account-invocation.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/eventbridge-patterns.yaml +79 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/iac-deployment-debugging.yaml +68 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/kinesis-stream-processing.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/lambda-at-edge.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/lambda-extensions-debugging.yaml +67 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/powertools-observability.yaml +79 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/step-functions-debugging.yaml +80 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/cost-optimization-strategy.yaml +67 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/expert-debugging-shift.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/incident-management-serverless.yaml +61 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/multi-region-serverless.yaml +67 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/observability-platform-design.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-architecture-design.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-data-architecture.yaml +66 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-migration-strategy.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-security-design.yaml +60 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-testing-strategy.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/board-serverless-strategy.yaml +63 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/consulting-serverless-adoption.yaml +57 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/industry-serverless-patterns.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/ma-serverless-integration.yaml +75 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/master-debugging-shift.yaml +61 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/organizational-serverless-transformation.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/regulatory-serverless.yaml +61 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/serverless-economics.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/serverless-future-technology.yaml +66 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/serverless-platform-design.yaml +71 -0
- package/courses/docker-container-debugging/course.yaml +11 -0
- package/courses/docker-container-debugging/scenarios/level-1/container-exit-codes.yaml +59 -0
- package/courses/docker-container-debugging/scenarios/level-1/container-networking-basics.yaml +69 -0
- package/courses/docker-container-debugging/scenarios/level-1/docker-logs-debugging.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-1/dockerfile-build-failures.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-1/environment-variable-issues.yaml +74 -0
- package/courses/docker-container-debugging/scenarios/level-1/first-debugging-shift.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-1/image-pull-failures.yaml +68 -0
- package/courses/docker-container-debugging/scenarios/level-1/port-mapping-issues.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-1/resource-limits-oom.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-1/volume-mount-problems.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-2/container-health-checks.yaml +73 -0
- package/courses/docker-container-debugging/scenarios/level-2/docker-compose-debugging.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-2/docker-exec-debugging.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-2/image-layer-optimization.yaml +81 -0
- package/courses/docker-container-debugging/scenarios/level-2/intermediate-debugging-shift.yaml +73 -0
- package/courses/docker-container-debugging/scenarios/level-2/logging-and-log-rotation.yaml +76 -0
- package/courses/docker-container-debugging/scenarios/level-2/multi-stage-build-debugging.yaml +76 -0
- package/courses/docker-container-debugging/scenarios/level-2/network-debugging-tools.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-2/pid1-signal-handling.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-2/security-scanning-basics.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-3/advanced-debugging-shift.yaml +77 -0
- package/courses/docker-container-debugging/scenarios/level-3/buildkit-optimization.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-3/container-filesystem-debugging.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-3/container-security-hardening.yaml +74 -0
- package/courses/docker-container-debugging/scenarios/level-3/disk-space-management.yaml +74 -0
- package/courses/docker-container-debugging/scenarios/level-3/docker-api-automation.yaml +72 -0
- package/courses/docker-container-debugging/scenarios/level-3/docker-daemon-issues.yaml +73 -0
- package/courses/docker-container-debugging/scenarios/level-3/docker-in-docker-ci.yaml +69 -0
- package/courses/docker-container-debugging/scenarios/level-3/overlay-network-debugging.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-3/production-container-ops.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-4/cicd-pipeline-design.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-monitoring-observability.yaml +63 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-orchestration-strategy.yaml +62 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-performance-engineering.yaml +64 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-security-architecture.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-4/enterprise-image-management.yaml +58 -0
- package/courses/docker-container-debugging/scenarios/level-4/expert-debugging-shift.yaml +63 -0
- package/courses/docker-container-debugging/scenarios/level-4/incident-response-containers.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-4/multi-environment-management.yaml +65 -0
- package/courses/docker-container-debugging/scenarios/level-4/stateful-service-containers.yaml +65 -0
- package/courses/docker-container-debugging/scenarios/level-5/board-infrastructure-strategy.yaml +58 -0
- package/courses/docker-container-debugging/scenarios/level-5/consulting-container-strategy.yaml +61 -0
- package/courses/docker-container-debugging/scenarios/level-5/container-platform-architecture.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/container-platform-economics.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/container-technology-evolution.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/disaster-recovery-containers.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-5/industry-container-patterns.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-5/master-debugging-shift.yaml +62 -0
- package/courses/docker-container-debugging/scenarios/level-5/organizational-transformation.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/regulatory-compliance-containers.yaml +61 -0
- package/courses/github-actions-cicd/course.yaml +10 -0
- package/courses/github-actions-cicd/scenarios/level-1/actions-and-runners.yaml +58 -0
- package/courses/github-actions-cicd/scenarios/level-1/basic-workflow-syntax.yaml +52 -0
- package/courses/github-actions-cicd/scenarios/level-1/branch-protection-checks.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-1/environment-variables-secrets.yaml +65 -0
- package/courses/github-actions-cicd/scenarios/level-1/first-cicd-shift.yaml +62 -0
- package/courses/github-actions-cicd/scenarios/level-1/job-dependencies-outputs.yaml +62 -0
- package/courses/github-actions-cicd/scenarios/level-1/simple-ci-pipeline.yaml +57 -0
- package/courses/github-actions-cicd/scenarios/level-1/workflow-debugging.yaml +90 -0
- package/courses/github-actions-cicd/scenarios/level-1/workflow-status-notifications.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-1/workflow-triggers.yaml +56 -0
- package/courses/github-actions-cicd/scenarios/level-2/concurrency-control.yaml +58 -0
- package/courses/github-actions-cicd/scenarios/level-2/conditional-execution.yaml +60 -0
- package/courses/github-actions-cicd/scenarios/level-2/custom-actions-development.yaml +55 -0
- package/courses/github-actions-cicd/scenarios/level-2/dependency-caching.yaml +58 -0
- package/courses/github-actions-cicd/scenarios/level-2/deployment-workflows.yaml +61 -0
- package/courses/github-actions-cicd/scenarios/level-2/github-packages-publishing.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-2/intermediate-cicd-shift.yaml +68 -0
- package/courses/github-actions-cicd/scenarios/level-2/matrix-builds.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-2/reusable-workflows.yaml +61 -0
- package/courses/github-actions-cicd/scenarios/level-2/workflow-cost-optimization.yaml +61 -0
- package/courses/github-actions-cicd/scenarios/level-3/advanced-cicd-shift.yaml +64 -0
- package/courses/github-actions-cicd/scenarios/level-3/compliance-automation.yaml +68 -0
- package/courses/github-actions-cicd/scenarios/level-3/docker-action-development.yaml +65 -0
- package/courses/github-actions-cicd/scenarios/level-3/github-environments.yaml +65 -0
- package/courses/github-actions-cicd/scenarios/level-3/monorepo-ci.yaml +68 -0
- package/courses/github-actions-cicd/scenarios/level-3/oidc-cloud-deployments.yaml +55 -0
- package/courses/github-actions-cicd/scenarios/level-3/release-automation.yaml +61 -0
- package/courses/github-actions-cicd/scenarios/level-3/security-hardening.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-3/self-hosted-runners.yaml +60 -0
- package/courses/github-actions-cicd/scenarios/level-3/workflow-optimization.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-data-architecture.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-economics-roi.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-executive-communication.yaml +58 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-incident-response.yaml +60 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-org-design.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-platform-architecture.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-training-program.yaml +65 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-vendor-evaluation.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-4/enterprise-cicd-governance.yaml +55 -0
- package/courses/github-actions-cicd/scenarios/level-4/expert-cicd-shift.yaml +60 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-ai-future.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-behavioral-science.yaml +70 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-board-strategy.yaml +56 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-consulting-engagement.yaml +61 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-industry-benchmarks.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-ma-integration.yaml +73 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-product-development.yaml +68 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-regulatory-landscape.yaml +72 -0
- package/courses/github-actions-cicd/scenarios/level-5/comprehensive-cicd-system.yaml +66 -0
- package/courses/github-actions-cicd/scenarios/level-5/master-cicd-shift.yaml +76 -0
- package/courses/github-pr-review/scenarios/level-2/api-change-review.yaml +82 -0
- package/courses/github-pr-review/scenarios/level-2/automated-review-tooling.yaml +53 -0
- package/courses/github-pr-review/scenarios/level-2/cross-team-review.yaml +61 -0
- package/courses/github-pr-review/scenarios/level-2/intermediate-review-shift.yaml +66 -0
- package/courses/github-pr-review/scenarios/level-2/performance-review-patterns.yaml +99 -0
- package/courses/github-pr-review/scenarios/level-2/review-disagreement-resolution.yaml +64 -0
- package/courses/github-pr-review/scenarios/level-2/review-metrics-analysis.yaml +63 -0
- package/courses/github-pr-review/scenarios/level-2/review-turnaround-sla.yaml +54 -0
- package/courses/github-pr-review/scenarios/level-2/stacked-pr-review.yaml +65 -0
- package/courses/github-pr-review/scenarios/level-3/advanced-review-shift.yaml +65 -0
- package/courses/github-pr-review/scenarios/level-3/ai-powered-review.yaml +58 -0
- package/courses/github-pr-review/scenarios/level-3/compliance-review-process.yaml +64 -0
- package/courses/github-pr-review/scenarios/level-3/cross-functional-review.yaml +60 -0
- package/courses/github-pr-review/scenarios/level-3/incident-driven-review.yaml +63 -0
- package/courses/github-pr-review/scenarios/level-3/large-scale-review-operations.yaml +55 -0
- package/courses/github-pr-review/scenarios/level-3/monorepo-review-process.yaml +68 -0
- package/courses/github-pr-review/scenarios/level-3/review-automation-platform.yaml +61 -0
- package/courses/github-pr-review/scenarios/level-3/review-culture-design.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-3/review-data-pipeline.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-4/enterprise-review-operations.yaml +61 -0
- package/courses/github-pr-review/scenarios/level-4/expert-review-shift.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-4/review-data-architecture.yaml +69 -0
- package/courses/github-pr-review/scenarios/level-4/review-economics-roi.yaml +63 -0
- package/courses/github-pr-review/scenarios/level-4/review-executive-communication.yaml +61 -0
- package/courses/github-pr-review/scenarios/level-4/review-incident-postmortem.yaml +69 -0
- package/courses/github-pr-review/scenarios/level-4/review-org-design.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-4/review-platform-architecture.yaml +64 -0
- package/courses/github-pr-review/scenarios/level-4/review-training-program.yaml +66 -0
- package/courses/github-pr-review/scenarios/level-4/review-vendor-evaluation.yaml +76 -0
- package/courses/github-pr-review/scenarios/level-5/comprehensive-review-system.yaml +68 -0
- package/courses/github-pr-review/scenarios/level-5/master-review-shift.yaml +73 -0
- package/courses/github-pr-review/scenarios/level-5/review-ai-future.yaml +69 -0
- package/courses/github-pr-review/scenarios/level-5/review-behavioral-science.yaml +66 -0
- package/courses/github-pr-review/scenarios/level-5/review-board-strategy.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-5/review-consulting-engagement.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-5/review-devtools-product.yaml +71 -0
- package/courses/github-pr-review/scenarios/level-5/review-industry-benchmarks.yaml +64 -0
- package/courses/github-pr-review/scenarios/level-5/review-ma-integration.yaml +76 -0
- package/courses/github-pr-review/scenarios/level-5/review-regulatory-landscape.yaml +78 -0
- package/courses/kubernetes-deployment-troubleshooting/course.yaml +12 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/configmap-secret-issues.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/crashloopbackoff.yaml +68 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/deployment-rollout.yaml +56 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/first-troubleshooting-shift.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/health-probe-failures.yaml +70 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/imagepullbackoff.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/kubectl-debugging-basics.yaml +56 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/oomkilled.yaml +70 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/pending-pods.yaml +68 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/service-not-reachable.yaml +66 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/dns-resolution-failures.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/helm-deployment-failures.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/hpa-scaling-issues.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/ingress-routing-issues.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/init-container-failures.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/intermediate-troubleshooting-shift.yaml +66 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/network-policy-blocking.yaml +67 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/persistent-volume-issues.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/rbac-permission-denied.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/resource-quota-limits.yaml +64 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/advanced-troubleshooting-shift.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/cluster-upgrade-failures.yaml +71 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/gitops-drift-detection.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/job-cronjob-failures.yaml +67 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/monitoring-alerting-gaps.yaml +64 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/multi-container-debugging.yaml +68 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/node-pressure-evictions.yaml +70 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/pod-disruption-budgets.yaml +59 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/service-mesh-debugging.yaml +64 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/statefulset-troubleshooting.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/capacity-planning.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/cost-optimization.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/disaster-recovery-design.yaml +56 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/executive-communication.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/expert-troubleshooting-shift.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/incident-management-process.yaml +59 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/multi-cluster-operations.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/multi-tenancy-design.yaml +55 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/platform-engineering.yaml +59 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/security-hardening.yaml +58 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/behavioral-science.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/board-strategy.yaml +61 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/cloud-native-future.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/comprehensive-platform.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/consulting-engagement.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/industry-benchmarks.yaml +58 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/ma-integration.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/master-troubleshooting-shift.yaml +73 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/product-development.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/regulatory-compliance.yaml +76 -0
- package/courses/mysql-query-optimization/course.yaml +11 -0
- package/courses/mysql-query-optimization/scenarios/level-1/buffer-pool-basics.yaml +65 -0
- package/courses/mysql-query-optimization/scenarios/level-1/explain-basics.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-1/first-optimization-shift.yaml +78 -0
- package/courses/mysql-query-optimization/scenarios/level-1/innodb-index-fundamentals.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-1/join-basics.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-1/n-plus-one-queries.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-1/query-rewriting-basics.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-1/select-star-problems.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-1/slow-query-diagnosis.yaml +65 -0
- package/courses/mysql-query-optimization/scenarios/level-1/where-clause-optimization.yaml +65 -0
- package/courses/mysql-query-optimization/scenarios/level-2/buffer-pool-tuning.yaml +64 -0
- package/courses/mysql-query-optimization/scenarios/level-2/composite-index-design.yaml +71 -0
- package/courses/mysql-query-optimization/scenarios/level-2/covering-and-invisible-indexes.yaml +69 -0
- package/courses/mysql-query-optimization/scenarios/level-2/cte-and-window-functions.yaml +78 -0
- package/courses/mysql-query-optimization/scenarios/level-2/intermediate-optimization-shift.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-2/join-optimization.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-2/performance-schema-analysis.yaml +69 -0
- package/courses/mysql-query-optimization/scenarios/level-2/query-optimizer-hints.yaml +74 -0
- package/courses/mysql-query-optimization/scenarios/level-2/subquery-optimization.yaml +70 -0
- package/courses/mysql-query-optimization/scenarios/level-2/write-optimization.yaml +63 -0
- package/courses/mysql-query-optimization/scenarios/level-3/advanced-optimization-shift.yaml +71 -0
- package/courses/mysql-query-optimization/scenarios/level-3/connection-management.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-3/full-text-search.yaml +77 -0
- package/courses/mysql-query-optimization/scenarios/level-3/json-optimization.yaml +87 -0
- package/courses/mysql-query-optimization/scenarios/level-3/lock-contention-analysis.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-3/monitoring-alerting.yaml +63 -0
- package/courses/mysql-query-optimization/scenarios/level-3/online-schema-changes.yaml +79 -0
- package/courses/mysql-query-optimization/scenarios/level-3/partitioning-strategies.yaml +83 -0
- package/courses/mysql-query-optimization/scenarios/level-3/query-profiling-deep-dive.yaml +84 -0
- package/courses/mysql-query-optimization/scenarios/level-3/replication-optimization.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-4/aurora-vs-rds-evaluation.yaml +61 -0
- package/courses/mysql-query-optimization/scenarios/level-4/data-architecture.yaml +62 -0
- package/courses/mysql-query-optimization/scenarios/level-4/database-migration-planning.yaml +59 -0
- package/courses/mysql-query-optimization/scenarios/level-4/enterprise-governance.yaml +50 -0
- package/courses/mysql-query-optimization/scenarios/level-4/executive-communication.yaml +54 -0
- package/courses/mysql-query-optimization/scenarios/level-4/expert-optimization-shift.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-4/high-availability-architecture.yaml +60 -0
- package/courses/mysql-query-optimization/scenarios/level-4/optimizer-internals.yaml +62 -0
- package/courses/mysql-query-optimization/scenarios/level-4/performance-sla-design.yaml +52 -0
- package/courses/mysql-query-optimization/scenarios/level-4/read-replica-scaling.yaml +51 -0
- package/courses/mysql-query-optimization/scenarios/level-5/ai-database-future.yaml +45 -0
- package/courses/mysql-query-optimization/scenarios/level-5/behavioral-science.yaml +44 -0
- package/courses/mysql-query-optimization/scenarios/level-5/benchmark-design.yaml +47 -0
- package/courses/mysql-query-optimization/scenarios/level-5/board-strategy.yaml +48 -0
- package/courses/mysql-query-optimization/scenarios/level-5/comprehensive-platform.yaml +49 -0
- package/courses/mysql-query-optimization/scenarios/level-5/consulting-engagement.yaml +52 -0
- package/courses/mysql-query-optimization/scenarios/level-5/ma-database-integration.yaml +47 -0
- package/courses/mysql-query-optimization/scenarios/level-5/master-optimization-shift.yaml +56 -0
- package/courses/mysql-query-optimization/scenarios/level-5/product-development.yaml +48 -0
- package/courses/mysql-query-optimization/scenarios/level-5/regulatory-compliance.yaml +48 -0
- package/courses/postgresql-query-optimization/course.yaml +11 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/explain-analyze-basics.yaml +80 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/first-optimization-shift.yaml +77 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/index-fundamentals.yaml +76 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/join-basics.yaml +73 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/n-plus-one-queries.yaml +62 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/query-rewriting-basics.yaml +69 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/select-star-problems.yaml +69 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/slow-query-diagnosis.yaml +63 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/vacuum-and-statistics.yaml +62 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/where-clause-optimization.yaml +74 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/autovacuum-tuning.yaml +76 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/composite-index-design.yaml +81 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/covering-indexes.yaml +74 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/cte-optimization.yaml +83 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/intermediate-optimization-shift.yaml +66 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/join-optimization.yaml +72 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/partial-and-expression-indexes.yaml +75 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/query-planner-settings.yaml +62 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/subquery-optimization.yaml +67 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/window-function-optimization.yaml +63 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/advanced-optimization-shift.yaml +71 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/connection-pooling.yaml +60 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/full-text-search-optimization.yaml +66 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/jsonb-optimization.yaml +88 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/lock-contention-analysis.yaml +80 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/materialized-view-optimization.yaml +73 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/parallel-query-execution.yaml +74 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/partitioning-strategies.yaml +71 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/specialized-index-types.yaml +67 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/write-optimization.yaml +65 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/data-architecture-analytics.yaml +64 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/database-executive-communication.yaml +64 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/database-migration-planning.yaml +57 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/enterprise-database-governance.yaml +52 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/expert-optimization-shift.yaml +73 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/high-availability-architecture.yaml +62 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/optimizer-internals.yaml +69 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/performance-sla-design.yaml +58 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/read-replica-optimization.yaml +62 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/vendor-evaluation.yaml +73 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/comprehensive-database-system.yaml +70 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-ai-future.yaml +81 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-behavioral-science.yaml +63 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-board-strategy.yaml +77 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-consulting-engagement.yaml +61 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-industry-benchmarks.yaml +64 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-ma-integration.yaml +71 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-product-development.yaml +72 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-regulatory-landscape.yaml +76 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/master-optimization-shift.yaml +66 -0
- package/courses/rest-api-error-handling/course.yaml +11 -0
- package/courses/rest-api-error-handling/scenarios/level-1/authentication-errors.yaml +71 -0
- package/courses/rest-api-error-handling/scenarios/level-1/content-negotiation-errors.yaml +63 -0
- package/courses/rest-api-error-handling/scenarios/level-1/error-logging-basics.yaml +63 -0
- package/courses/rest-api-error-handling/scenarios/level-1/error-response-format.yaml +58 -0
- package/courses/rest-api-error-handling/scenarios/level-1/first-error-handling-shift.yaml +67 -0
- package/courses/rest-api-error-handling/scenarios/level-1/http-status-codes.yaml +46 -0
- package/courses/rest-api-error-handling/scenarios/level-1/not-found-errors.yaml +52 -0
- package/courses/rest-api-error-handling/scenarios/level-1/rate-limiting-errors.yaml +56 -0
- package/courses/rest-api-error-handling/scenarios/level-1/request-validation-errors.yaml +59 -0
- package/courses/rest-api-error-handling/scenarios/level-1/server-error-handling.yaml +55 -0
- package/courses/rest-api-error-handling/scenarios/level-2/api-versioning-errors.yaml +66 -0
- package/courses/rest-api-error-handling/scenarios/level-2/batch-request-errors.yaml +61 -0
- package/courses/rest-api-error-handling/scenarios/level-2/circuit-breaker-pattern.yaml +52 -0
- package/courses/rest-api-error-handling/scenarios/level-2/error-code-taxonomy.yaml +62 -0
- package/courses/rest-api-error-handling/scenarios/level-2/error-monitoring-alerting.yaml +53 -0
- package/courses/rest-api-error-handling/scenarios/level-2/intermediate-error-shift.yaml +69 -0
- package/courses/rest-api-error-handling/scenarios/level-2/pagination-errors.yaml +66 -0
- package/courses/rest-api-error-handling/scenarios/level-2/retry-and-idempotency.yaml +60 -0
- package/courses/rest-api-error-handling/scenarios/level-2/rfc7807-problem-details.yaml +60 -0
- package/courses/rest-api-error-handling/scenarios/level-2/webhook-error-handling.yaml +55 -0
- package/courses/rest-api-error-handling/scenarios/level-3/advanced-error-shift.yaml +72 -0
- package/courses/rest-api-error-handling/scenarios/level-3/api-gateway-errors.yaml +71 -0
- package/courses/rest-api-error-handling/scenarios/level-3/async-api-errors.yaml +67 -0
- package/courses/rest-api-error-handling/scenarios/level-3/caching-error-scenarios.yaml +65 -0
- package/courses/rest-api-error-handling/scenarios/level-3/chaos-engineering-apis.yaml +62 -0
- package/courses/rest-api-error-handling/scenarios/level-3/database-error-handling.yaml +79 -0
- package/courses/rest-api-error-handling/scenarios/level-3/distributed-error-propagation.yaml +63 -0
- package/courses/rest-api-error-handling/scenarios/level-3/error-budgets-sre.yaml +61 -0
- package/courses/rest-api-error-handling/scenarios/level-3/error-correlation.yaml +58 -0
- package/courses/rest-api-error-handling/scenarios/level-3/graphql-vs-rest-errors.yaml +73 -0
- package/courses/rest-api-error-handling/scenarios/level-4/compliance-error-handling.yaml +65 -0
- package/courses/rest-api-error-handling/scenarios/level-4/enterprise-error-governance.yaml +62 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-analytics-platform.yaml +65 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-cost-optimization.yaml +63 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-executive-communication.yaml +60 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-handling-architecture.yaml +67 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-org-design.yaml +68 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-sla-design.yaml +65 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-training-program.yaml +61 -0
- package/courses/rest-api-error-handling/scenarios/level-4/expert-error-shift.yaml +63 -0
- package/courses/rest-api-error-handling/scenarios/level-5/comprehensive-error-system.yaml +68 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-ai-future.yaml +75 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-behavioral-science.yaml +73 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-board-strategy.yaml +60 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-consulting-engagement.yaml +58 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-industry-benchmarks.yaml +72 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-ma-integration.yaml +68 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-product-development.yaml +66 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-regulatory-landscape.yaml +80 -0
- package/courses/rest-api-error-handling/scenarios/level-5/master-error-shift.yaml +73 -0
- package/courses/terraform-infrastructure-setup/course.yaml +11 -0
- package/courses/terraform-infrastructure-setup/scenarios/level-1/terraform-init-errors.yaml +72 -0
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/add.js +6 -5
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +4 -0
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +6 -18
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/train.d.ts.map +1 -1
- package/dist/cli/commands/train.js +18 -18
- package/dist/cli/commands/train.js.map +1 -1
- package/dist/cli/index.js +93 -55
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/run-demo.js +2 -1
- package/dist/cli/run-demo.js.map +1 -1
- package/dist/cli/setup.d.ts +18 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +154 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/engine/agent-bridge.d.ts +5 -2
- package/dist/engine/agent-bridge.d.ts.map +1 -1
- package/dist/engine/agent-bridge.js +36 -9
- package/dist/engine/agent-bridge.js.map +1 -1
- package/dist/engine/loader.d.ts +21 -0
- package/dist/engine/loader.d.ts.map +1 -1
- package/dist/engine/loader.js +54 -1
- package/dist/engine/loader.js.map +1 -1
- package/dist/engine/training-loop.d.ts.map +1 -1
- package/dist/engine/training-loop.js +1 -0
- package/dist/engine/training-loop.js.map +1 -1
- package/dist/engine/training.d.ts.map +1 -1
- package/dist/engine/training.js +1 -0
- package/dist/engine/training.js.map +1 -1
- package/dist/generator/skill-generator.d.ts +1 -1
- package/dist/generator/skill-generator.d.ts.map +1 -1
- package/dist/generator/skill-generator.js +21 -2
- package/dist/generator/skill-generator.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +11 -26
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session-manager.d.ts +9 -4
- package/dist/mcp/session-manager.d.ts.map +1 -1
- package/dist/mcp/session-manager.js +65 -28
- package/dist/mcp/session-manager.js.map +1 -1
- package/dist/types/schemas.d.ts +38 -13
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +9 -5
- package/dist/types/schemas.js.map +1 -1
- package/package.json +1 -1
|
@@ -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"
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: cross-functional-review
|
|
3
|
+
level: 3
|
|
4
|
+
course: github-pr-review
|
|
5
|
+
type: output
|
|
6
|
+
description: "Cross-functional PR review — coordinate reviews involving design, security, legal, and product stakeholders beyond engineering"
|
|
7
|
+
tags: [github, pr-review, cross-functional, design-review, security-review, advanced]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're leading the review process for a major feature PR that requires
|
|
13
|
+
input from multiple non-engineering stakeholders. The PR implements
|
|
14
|
+
GDPR consent management and data deletion for EU users.
|
|
15
|
+
|
|
16
|
+
The PR ("Implement GDPR consent and right-to-erasure"):
|
|
17
|
+
- 600 lines across 15 files
|
|
18
|
+
- Changes: consent UI, data collection APIs, deletion pipeline, audit
|
|
19
|
+
logging, cookie management, privacy policy integration
|
|
20
|
+
|
|
21
|
+
Required reviewers and their concerns:
|
|
22
|
+
1. Engineering (2 reviewers): Code quality, architecture, test coverage
|
|
23
|
+
2. Security team: Data handling, encryption at rest, access controls,
|
|
24
|
+
deletion completeness
|
|
25
|
+
3. Legal/Privacy: Consent language accuracy, deletion scope compliance
|
|
26
|
+
with Article 17, data retention exceptions
|
|
27
|
+
4. Design: Consent banner UX, accessibility, user flow clarity
|
|
28
|
+
5. Product: Feature completeness against GDPR requirements spec,
|
|
29
|
+
analytics impact (what tracking stops)
|
|
30
|
+
|
|
31
|
+
Challenges:
|
|
32
|
+
- Legal doesn't use GitHub — they review via email/Confluence
|
|
33
|
+
- Design reviews in Figma, not in code
|
|
34
|
+
- Security wants to run their own penetration test before approval
|
|
35
|
+
- Product wants to verify in a staging environment
|
|
36
|
+
- Each stakeholder has different availability (legal is 2 weeks out)
|
|
37
|
+
- The PR is too large for a single review session
|
|
38
|
+
|
|
39
|
+
Task: Design the cross-functional review process. Write: the review
|
|
40
|
+
coordination plan (who reviews what, in what order, with timeline),
|
|
41
|
+
the PR splitting strategy (if the 600-line PR should be broken up for
|
|
42
|
+
different reviewers), the tooling integration (how to bring GitHub,
|
|
43
|
+
Figma, Confluence, and email reviews into a single audit trail), the
|
|
44
|
+
sign-off process (how each stakeholder formally approves), and the
|
|
45
|
+
template for cross-functional PRs. Address the legal reviewer's 2-week
|
|
46
|
+
availability constraint.
|
|
47
|
+
|
|
48
|
+
assertions:
|
|
49
|
+
- type: llm_judge
|
|
50
|
+
criteria: "Review coordination is realistic — sequences reviews logically (legal/design first since they have longest lead time, security pen test in parallel with code review, product verification last in staging), and the timeline accounts for the legal 2-week constraint"
|
|
51
|
+
weight: 0.35
|
|
52
|
+
description: "Realistic review coordination"
|
|
53
|
+
- type: llm_judge
|
|
54
|
+
criteria: "Tooling integration creates a single audit trail — brings email/Confluence legal feedback, Figma design comments, and GitHub code review into a traceable record, handles stakeholders who don't use GitHub"
|
|
55
|
+
weight: 0.35
|
|
56
|
+
description: "Unified audit trail"
|
|
57
|
+
- type: llm_judge
|
|
58
|
+
criteria: "The process is repeatable — the template and sign-off process could be reused for future cross-functional features, balances thoroughness with velocity, and doesn't create a 6-week review bottleneck"
|
|
59
|
+
weight: 0.30
|
|
60
|
+
description: "Repeatable cross-functional process"
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: incident-driven-review
|
|
3
|
+
level: 3
|
|
4
|
+
course: github-pr-review
|
|
5
|
+
type: output
|
|
6
|
+
description: "Incident-driven review improvement — analyze post-incident review failures and redesign processes to catch similar issues"
|
|
7
|
+
tags: [github, pr-review, incidents, post-mortem, process-improvement, advanced]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Three production incidents in the last quarter were traced back to
|
|
13
|
+
code review failures — issues that should have been caught in review
|
|
14
|
+
but weren't. You've been tasked with analyzing the failures and
|
|
15
|
+
improving the review process.
|
|
16
|
+
|
|
17
|
+
Incident 1 — Data loss (Severity: Critical):
|
|
18
|
+
A migration PR dropped a column that was still used by a background
|
|
19
|
+
job. The PR had 2 approvals and CI was green. Neither reviewer checked
|
|
20
|
+
the background job code. The column name appeared in 3 files that
|
|
21
|
+
weren't part of the PR diff.
|
|
22
|
+
Impact: 48 hours of data loss for 12,000 users
|
|
23
|
+
Review gap: Reviewers only looked at files in the diff, not at callers
|
|
24
|
+
of the changed code
|
|
25
|
+
|
|
26
|
+
Incident 2 — Security breach (Severity: Critical):
|
|
27
|
+
A PR added a debug endpoint that returned user data without
|
|
28
|
+
authentication. It was merged as part of a 1,200-line "feature
|
|
29
|
+
complete" PR. The endpoint was on line 847 of a 900-line file.
|
|
30
|
+
Impact: 500 user records exposed for 3 days
|
|
31
|
+
Review gap: The PR was too large to review effectively, the debug
|
|
32
|
+
endpoint was buried in a massive diff, and the reviewer admitted
|
|
33
|
+
to "skimming" the last 400 lines
|
|
34
|
+
|
|
35
|
+
Incident 3 — Financial miscalculation (Severity: High):
|
|
36
|
+
A PR changed a currency conversion formula. The unit test used the
|
|
37
|
+
same incorrect formula as the implementation (copy-pasted), so tests
|
|
38
|
+
passed. The reviewer approved based on "tests pass."
|
|
39
|
+
Impact: $47,000 in incorrect charges over 2 weeks
|
|
40
|
+
Review gap: Tests validated consistency, not correctness. No
|
|
41
|
+
independent verification of the business logic
|
|
42
|
+
|
|
43
|
+
Task: For each incident, write: the root cause analysis of the review
|
|
44
|
+
failure (why the review process didn't catch it), the specific process
|
|
45
|
+
change that would prevent recurrence, the detection mechanism (how to
|
|
46
|
+
know if the process change is working), and the review checklist
|
|
47
|
+
addition. Then write a synthesis: the systemic patterns across all 3
|
|
48
|
+
incidents, the comprehensive review process improvements, and the
|
|
49
|
+
training program to address the skill gaps revealed by these incidents.
|
|
50
|
+
|
|
51
|
+
assertions:
|
|
52
|
+
- type: llm_judge
|
|
53
|
+
criteria: "Root causes go beyond blaming reviewers — identifies systemic issues: #1 reveals that reviews don't check callers/dependencies, #2 reveals that large PRs can't be reviewed effectively, #3 reveals that test-pass ≠ correctness and independent verification is needed"
|
|
54
|
+
weight: 0.35
|
|
55
|
+
description: "Systemic root cause analysis"
|
|
56
|
+
- type: llm_judge
|
|
57
|
+
criteria: "Process changes are specific and preventive — #1 adds dependency/caller analysis to reviews (or automated tooling), #2 enforces PR size limits and adds security-specific review for auth-related code, #3 requires independent test verification for business-critical calculations"
|
|
58
|
+
weight: 0.35
|
|
59
|
+
description: "Specific preventive process changes"
|
|
60
|
+
- type: llm_judge
|
|
61
|
+
criteria: "Synthesis identifies patterns — connects all 3 incidents to broader themes (over-reliance on CI, review depth vs PR size, domain-specific review expertise), and the training program addresses the revealed skill gaps without creating blame"
|
|
62
|
+
weight: 0.30
|
|
63
|
+
description: "Pattern-connecting synthesis"
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: large-scale-review-operations
|
|
3
|
+
level: 3
|
|
4
|
+
course: github-pr-review
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design large-scale review operations — create review processes for 100+ developer organizations with multiple teams and repositories"
|
|
7
|
+
tags: [github, pr-review, operations, scaling, organization, advanced]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're the Director of Engineering at a company scaling from 30 to
|
|
13
|
+
150 engineers over the next year. The current review process (informal,
|
|
14
|
+
team-based) is already breaking down at 30 engineers. You need to
|
|
15
|
+
design a review system that scales.
|
|
16
|
+
|
|
17
|
+
Current problems:
|
|
18
|
+
- 15 repositories with no consistent review process
|
|
19
|
+
- Some repos require 1 approval, others require 3
|
|
20
|
+
- No cross-repo review standards (code style varies wildly)
|
|
21
|
+
- Average merge time: 3 days (target: 1 day)
|
|
22
|
+
- Knowledge silos: only 2 people can review the payment code
|
|
23
|
+
- New hires take 3 months before they can review code confidently
|
|
24
|
+
- No review quality metrics — quantity is tracked but not quality
|
|
25
|
+
- Occasional "LGTM" rubber-stamp approvals on critical code
|
|
26
|
+
|
|
27
|
+
Planned growth:
|
|
28
|
+
- 5 new teams being formed (total: 10 teams)
|
|
29
|
+
- 3 new repos being created (total: 18 repos)
|
|
30
|
+
- Acquiring a company with 20 engineers and their own repo/processes
|
|
31
|
+
- Moving to a monorepo for shared libraries (under discussion)
|
|
32
|
+
|
|
33
|
+
Task: Design the review operations framework. Write: the review
|
|
34
|
+
standards document (minimum requirements for all repos, with team-
|
|
35
|
+
specific extensions), the reviewer assignment system (CODEOWNERS
|
|
36
|
+
strategy, rotation, knowledge distribution), the quality assurance
|
|
37
|
+
mechanisms (preventing rubber stamps, ensuring review depth), the
|
|
38
|
+
onboarding program for new reviewers (shadow reviewing, graduated
|
|
39
|
+
autonomy), and the metrics framework (what to measure, targets,
|
|
40
|
+
dashboards). Include the migration plan for existing repos and the
|
|
41
|
+
acquired company's integration.
|
|
42
|
+
|
|
43
|
+
assertions:
|
|
44
|
+
- type: llm_judge
|
|
45
|
+
criteria: "Standards are scalable — creates a base standard that applies to all 18 repos with team-specific extensions, handles the monorepo question, and includes the acquired company integration with a gradual alignment plan rather than forcing immediate compliance"
|
|
46
|
+
weight: 0.35
|
|
47
|
+
description: "Scalable review standards"
|
|
48
|
+
- type: llm_judge
|
|
49
|
+
criteria: "Knowledge distribution is addressed — CODEOWNERS strategy prevents knowledge silos (rotation, mandatory cross-training), reviewer onboarding program reduces the 3-month ramp-up time, and the system handles the 2-person payment code bottleneck"
|
|
50
|
+
weight: 0.35
|
|
51
|
+
description: "Knowledge distribution strategy"
|
|
52
|
+
- type: llm_judge
|
|
53
|
+
criteria: "Quality assurance prevents gaming — mechanisms to detect rubber-stamp reviews (review depth metrics, comment quality), graduated approval requirements (critical code vs routine changes), and the metrics framework measures quality not just speed"
|
|
54
|
+
weight: 0.30
|
|
55
|
+
description: "Anti-gaming quality assurance"
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: monorepo-review-process
|
|
3
|
+
level: 3
|
|
4
|
+
course: github-pr-review
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design monorepo review process — handle review routing, ownership, and CI for PRs that touch multiple packages in a monorepo"
|
|
7
|
+
tags: [github, pr-review, monorepo, CODEOWNERS, CI, routing, advanced]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your company just migrated 12 microservice repos into a single
|
|
13
|
+
monorepo using Turborepo. The review process that worked for individual
|
|
14
|
+
repos is now broken. Key problems:
|
|
15
|
+
|
|
16
|
+
Monorepo structure:
|
|
17
|
+
```
|
|
18
|
+
/
|
|
19
|
+
├── apps/
|
|
20
|
+
│ ├── web/ (Frontend team, 8 devs)
|
|
21
|
+
│ ├── api/ (Backend team, 10 devs)
|
|
22
|
+
│ ├── mobile/ (Mobile team, 6 devs)
|
|
23
|
+
│ └── admin/ (Platform team, 4 devs)
|
|
24
|
+
├── packages/
|
|
25
|
+
│ ├── ui/ (Design system — shared)
|
|
26
|
+
│ ├── auth/ (Auth library — shared)
|
|
27
|
+
│ ├── database/ (DB client — backend + platform)
|
|
28
|
+
│ ├── config/ (Shared config — everyone)
|
|
29
|
+
│ └── types/ (Shared types — everyone)
|
|
30
|
+
├── infra/ (DevOps, 3 devs)
|
|
31
|
+
└── tools/ (DX team, 2 devs)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Current problems:
|
|
35
|
+
- A PR touching `packages/types` requests review from ALL 33 engineers
|
|
36
|
+
- CI runs all tests for every PR (45 minutes), even single-line changes
|
|
37
|
+
- CODEOWNERS from individual repos were concatenated — conflicts and
|
|
38
|
+
overlaps everywhere
|
|
39
|
+
- Cross-package PRs (e.g., API change + type update + web update) have
|
|
40
|
+
no clear review strategy
|
|
41
|
+
- Shared packages have no clear ownership — everyone and no one
|
|
42
|
+
|
|
43
|
+
A recent incident: A change to `packages/auth` broke mobile login but
|
|
44
|
+
the mobile team wasn't requested as reviewers. It took 2 days to
|
|
45
|
+
discover the break.
|
|
46
|
+
|
|
47
|
+
Task: Design the monorepo review process. Write: the CODEOWNERS
|
|
48
|
+
strategy (ownership model for shared packages, cross-team routing),
|
|
49
|
+
the CI optimization (affected-package detection, selective test runs),
|
|
50
|
+
the cross-package PR guidelines (when to split PRs, when one PR is
|
|
51
|
+
fine, who reviews what), the shared package governance model (who
|
|
52
|
+
owns shared code, how changes are reviewed), and the incident
|
|
53
|
+
prevention strategy (ensuring breaking changes are caught by affected
|
|
54
|
+
teams). Include the CODEOWNERS file and a sample CI workflow.
|
|
55
|
+
|
|
56
|
+
assertions:
|
|
57
|
+
- type: llm_judge
|
|
58
|
+
criteria: "CODEOWNERS handles the monorepo correctly — shared packages have designated owners plus affected-team routing (not all 33 engineers), apps have team ownership, and cross-package PRs are handled with both source and consumer team reviews"
|
|
59
|
+
weight: 0.35
|
|
60
|
+
description: "Correct monorepo CODEOWNERS"
|
|
61
|
+
- type: llm_judge
|
|
62
|
+
criteria: "CI optimization is practical — uses affected-package detection (Turborepo's --filter or similar), runs only relevant tests, but still runs shared-package tests when shared code changes. Reduces 45-minute CI to relevant-only runs"
|
|
63
|
+
weight: 0.35
|
|
64
|
+
description: "Practical CI optimization"
|
|
65
|
+
- type: llm_judge
|
|
66
|
+
criteria: "Incident prevention is addressed — the auth-breaking-mobile scenario is prevented through consumer-team notification on shared package changes, integration test requirements for cross-package changes, and a shared package change RFC process"
|
|
67
|
+
weight: 0.30
|
|
68
|
+
description: "Cross-package incident prevention"
|