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,71 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: review-devtools-product
|
|
3
|
+
level: 5
|
|
4
|
+
course: github-pr-review
|
|
5
|
+
type: output
|
|
6
|
+
description: "Build a review DevTools product — design and launch a code review SaaS product as a startup co-founder"
|
|
7
|
+
tags: [github, pr-review, product, startup, SaaS, go-to-market, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're the co-founder/CPO of a startup building "ReviewIQ" — an
|
|
13
|
+
AI-powered code review platform. You've raised $5M in seed funding
|
|
14
|
+
and have 12 months of runway. Your thesis: code review is broken at
|
|
15
|
+
scale and the market is ready for a purpose-built solution.
|
|
16
|
+
|
|
17
|
+
Market analysis:
|
|
18
|
+
- TAM: $4.2B (developer productivity tools market)
|
|
19
|
+
- SAM: $800M (code review and quality tools)
|
|
20
|
+
- SOM: $80M (AI-powered review for GitHub-based teams)
|
|
21
|
+
- Competitors: CodeRabbit ($12M ARR), Sourcery ($5M ARR), GitHub
|
|
22
|
+
Copilot code review (free, basic), Graphite (focused on stacking)
|
|
23
|
+
- Gap: No tool combines AI review + analytics + workflow automation
|
|
24
|
+
in a single platform
|
|
25
|
+
|
|
26
|
+
Product vision:
|
|
27
|
+
1. AI Reviewer: Catches bugs, security issues, and style violations
|
|
28
|
+
with <5% false positive rate
|
|
29
|
+
2. Review Analytics: Team-level and org-level metrics with benchmarks
|
|
30
|
+
3. Smart Assignment: Expertise-based reviewer assignment with load
|
|
31
|
+
balancing
|
|
32
|
+
4. Review Workflow: Custom review workflows (different rules per repo,
|
|
33
|
+
team, risk level)
|
|
34
|
+
5. Developer Experience: Integrates into GitHub's native review UI
|
|
35
|
+
|
|
36
|
+
Technical constraints:
|
|
37
|
+
- Must work with GitHub (80% of target market)
|
|
38
|
+
- Customer code must never leave their environment (enterprise
|
|
39
|
+
requirement)
|
|
40
|
+
- Must handle repos with 500K+ lines without timeout
|
|
41
|
+
- Must work with monorepos and polyglot codebases
|
|
42
|
+
|
|
43
|
+
Go-to-market constraints:
|
|
44
|
+
- 12-month runway ($5M, burn rate $400K/month)
|
|
45
|
+
- 6-person engineering team (including you)
|
|
46
|
+
- Need to reach $1M ARR to raise Series A
|
|
47
|
+
- Developer-led growth (PLG) is the primary motion
|
|
48
|
+
|
|
49
|
+
Task: Design the complete product strategy. Write: the product
|
|
50
|
+
roadmap (MVP scope for Month 1-3, growth features for Month 4-8,
|
|
51
|
+
enterprise features for Month 9-12), the technical architecture
|
|
52
|
+
(handle the privacy constraint with on-prem or edge deployment), the
|
|
53
|
+
pricing strategy (free tier, team, enterprise — with specific limits),
|
|
54
|
+
the PLG go-to-market plan (developer adoption → team adoption →
|
|
55
|
+
enterprise sale), and the competitive positioning (how to win against
|
|
56
|
+
GitHub Copilot's free review and funded competitors). Include the
|
|
57
|
+
metrics dashboard for the board and the 12-month financial projection.
|
|
58
|
+
|
|
59
|
+
assertions:
|
|
60
|
+
- type: llm_judge
|
|
61
|
+
criteria: "MVP scope is achievable by a 6-person team in 3 months — focuses on one killer feature (likely AI review or analytics, not everything), defers enterprise features, and the scope decision is justified with competitive analysis"
|
|
62
|
+
weight: 0.35
|
|
63
|
+
description: "Achievable MVP scope"
|
|
64
|
+
- type: llm_judge
|
|
65
|
+
criteria: "Technical architecture solves the privacy constraint — proposes a viable approach for keeping customer code private (edge deployment, customer-hosted inference, or GitHub App with minimal data transmission), and this doesn't compromise the AI quality"
|
|
66
|
+
weight: 0.35
|
|
67
|
+
description: "Privacy-solving technical architecture"
|
|
68
|
+
- type: llm_judge
|
|
69
|
+
criteria: "GTM strategy reaches $1M ARR in 12 months — the PLG funnel is realistic (free users → team conversion → enterprise expansion), pricing tiers incentivize team adoption, and the competitive positioning against GitHub Copilot is credible (not just 'we're better')"
|
|
70
|
+
weight: 0.30
|
|
71
|
+
description: "ARR-reaching GTM strategy"
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: review-industry-benchmarks
|
|
3
|
+
level: 5
|
|
4
|
+
course: github-pr-review
|
|
5
|
+
type: output
|
|
6
|
+
description: "Publish industry benchmarks — create the definitive 'State of Code Review' report with cross-industry analysis and strategic insights"
|
|
7
|
+
tags: [github, pr-review, benchmarks, research, industry-analysis, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're the Head of Engineering Research at a developer tools company
|
|
13
|
+
publishing the annual "State of Code Review 2026" report. This report
|
|
14
|
+
is read by 50,000+ engineering leaders and influences industry
|
|
15
|
+
practices. You have survey data from 2,500 organizations.
|
|
16
|
+
|
|
17
|
+
Raw data highlights:
|
|
18
|
+
- Average merge time by company size:
|
|
19
|
+
Startup (<50 eng): 0.8 days | Mid (50-500): 2.1 days |
|
|
20
|
+
Enterprise (500+): 4.3 days
|
|
21
|
+
- Review practices adoption:
|
|
22
|
+
Required reviews: 89% | CODEOWNERS: 52% | AI review tools: 34% |
|
|
23
|
+
Review training: 18% | Review metrics: 27%
|
|
24
|
+
- Developer satisfaction with review:
|
|
25
|
+
Very satisfied: 15% | Satisfied: 35% | Neutral: 25% |
|
|
26
|
+
Dissatisfied: 18% | Very dissatisfied: 7%
|
|
27
|
+
- Correlation data:
|
|
28
|
+
Teams with review training: 2.3x fewer review-related incidents
|
|
29
|
+
Teams using AI review: 35% faster first review, no change in bug
|
|
30
|
+
detection rate
|
|
31
|
+
Teams with stale review dismissal: 40% fewer post-merge issues
|
|
32
|
+
Teams tracking review metrics: 1.8x faster improvement velocity
|
|
33
|
+
- Industry breakdown (merge time):
|
|
34
|
+
Fintech: 3.2 days | Healthcare: 4.8 days | SaaS: 1.5 days |
|
|
35
|
+
Gaming: 0.9 days | Government: 7.1 days | E-commerce: 1.8 days
|
|
36
|
+
- Emerging trends:
|
|
37
|
+
28% considering "review-free" paths for AI-generated code
|
|
38
|
+
45% exploring AI as first reviewer before human review
|
|
39
|
+
62% report "review fatigue" as top developer experience issue
|
|
40
|
+
33% have reduced required approvals in the last year
|
|
41
|
+
|
|
42
|
+
Task: Write the "State of Code Review 2026" report. Include: the
|
|
43
|
+
executive summary (key findings in 1 page), the benchmarking
|
|
44
|
+
methodology (how data was collected, limitations, statistical
|
|
45
|
+
significance), the cross-industry analysis (why healthcare and
|
|
46
|
+
government are slow, what gaming and SaaS do differently), the
|
|
47
|
+
emerging trends analysis (AI review, review-free paths, review
|
|
48
|
+
fatigue — with predictions), and the strategic recommendations by
|
|
49
|
+
company size. Each section should include data visualizations
|
|
50
|
+
described in text and key takeaways.
|
|
51
|
+
|
|
52
|
+
assertions:
|
|
53
|
+
- type: llm_judge
|
|
54
|
+
criteria: "Benchmarking methodology is credible — describes data collection, sample sizes, statistical methods, and explicitly states limitations (survival bias, self-selection, correlation ≠ causation). The methodology section would withstand peer review"
|
|
55
|
+
weight: 0.35
|
|
56
|
+
description: "Credible benchmarking methodology"
|
|
57
|
+
- type: llm_judge
|
|
58
|
+
criteria: "Cross-industry analysis reveals insights — explains why industries differ (healthcare: compliance overhead, gaming: rapid iteration culture, government: audit requirements), identifies transferable practices, and doesn't just present data but interprets it"
|
|
59
|
+
weight: 0.35
|
|
60
|
+
description: "Insightful cross-industry analysis"
|
|
61
|
+
- type: llm_judge
|
|
62
|
+
criteria: "Predictions and recommendations are bold but grounded — makes specific predictions about AI review adoption, review-free paths, and review fatigue trends, with recommendations tailored by company size and industry. Addresses the controversial 'review-free for AI code' trend thoughtfully"
|
|
63
|
+
weight: 0.30
|
|
64
|
+
description: "Bold grounded predictions"
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: review-ma-integration
|
|
3
|
+
level: 5
|
|
4
|
+
course: github-pr-review
|
|
5
|
+
type: output
|
|
6
|
+
description: "M&A review integration — harmonize code review processes across acquired companies with different engineering cultures"
|
|
7
|
+
tags: [github, pr-review, M&A, integration, culture, harmonization, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're the CTO overseeing the technical integration of 3 recently
|
|
13
|
+
acquired companies into the parent company. Each has a radically
|
|
14
|
+
different code review culture, and you need to create a unified
|
|
15
|
+
review process that preserves the best of each while meeting the
|
|
16
|
+
parent company's compliance requirements.
|
|
17
|
+
|
|
18
|
+
Parent company (800 engineers):
|
|
19
|
+
- GitHub Enterprise, strict 2-reviewer requirement
|
|
20
|
+
- CODEOWNERS, branch protection, SOC 2/PCI DSS compliance
|
|
21
|
+
- Average merge time: 2 days, developer satisfaction: 72%
|
|
22
|
+
- Strong tooling: automated review assignment, SLA tracking, analytics
|
|
23
|
+
- Weakness: perceived as "bureaucratic" by some teams
|
|
24
|
+
|
|
25
|
+
Acquisition A — Fast-moving SaaS startup (120 engineers):
|
|
26
|
+
- GitHub Cloud, 1-reviewer requirement, frequent self-merges
|
|
27
|
+
- No CODEOWNERS, minimal branch protection
|
|
28
|
+
- Average merge time: 4 hours, developer satisfaction: 85%
|
|
29
|
+
- Culture: "Ship fast, fix fast," trunk-based development
|
|
30
|
+
- Strength: Incredible velocity. Weakness: 3x incident rate
|
|
31
|
+
|
|
32
|
+
Acquisition B — Enterprise security company (200 engineers):
|
|
33
|
+
- GitLab self-hosted, 3-reviewer requirement including mandatory
|
|
34
|
+
security review
|
|
35
|
+
- Average merge time: 8 days, developer satisfaction: 45%
|
|
36
|
+
- Culture: "Every line must be perfect." Zero incidents but very slow
|
|
37
|
+
- Strength: Security rigor. Weakness: Engineering burnout, 30% attrition
|
|
38
|
+
|
|
39
|
+
Acquisition C — AI/ML research lab (80 engineers):
|
|
40
|
+
- Mix of GitHub and Jupyter notebooks in shared drives
|
|
41
|
+
- No formal review process — pair programming and "demo day" reviews
|
|
42
|
+
- No merge times (no PRs), developer satisfaction: 90%
|
|
43
|
+
- Culture: Academic, collaborative, experimental
|
|
44
|
+
- Strength: Innovation. Weakness: Production code quality varies wildly
|
|
45
|
+
|
|
46
|
+
Integration constraints:
|
|
47
|
+
- Must unify on GitHub Enterprise within 12 months
|
|
48
|
+
- Must achieve SOC 2 compliance across all entities within 18 months
|
|
49
|
+
- Must not lose more than 10% of acquired talent (especially from A
|
|
50
|
+
and C where culture change risk is highest)
|
|
51
|
+
- Must maintain each acquisition's product velocity during integration
|
|
52
|
+
- Budget: $1.5M for integration tooling and training
|
|
53
|
+
|
|
54
|
+
Task: Design the M&A review integration strategy. Write: the
|
|
55
|
+
assessment of each acquisition's review culture (strengths to preserve,
|
|
56
|
+
gaps to close), the unified review framework (minimum standard +
|
|
57
|
+
team-specific extensions), the migration plan for each acquisition
|
|
58
|
+
(phased, with specific milestones and risk mitigations), the culture
|
|
59
|
+
integration approach (how to merge 4 different review cultures without
|
|
60
|
+
destroying what works), and the retention risk mitigation plan.
|
|
61
|
+
Include the 18-month timeline and the executive dashboard for tracking
|
|
62
|
+
integration progress.
|
|
63
|
+
|
|
64
|
+
assertions:
|
|
65
|
+
- type: llm_judge
|
|
66
|
+
criteria: "Assessment preserves strengths — Acquisition A's velocity practices are identified for adoption (not just compliance), B's security rigor informs the security review standard, and C's collaborative culture inspires pair/mob programming practices. Integration isn't one-way assimilation"
|
|
67
|
+
weight: 0.35
|
|
68
|
+
description: "Strength-preserving assessment"
|
|
69
|
+
- type: llm_judge
|
|
70
|
+
criteria: "Migration plans are tailored — A gets gradual compliance addition without killing velocity (start with CODEOWNERS, then branch protection), B gets process streamlining (reduce from 3 to 2 reviewers, optimize security review), C gets formalization without bureaucracy (lightweight PR process for production code, freedom for research)"
|
|
71
|
+
weight: 0.35
|
|
72
|
+
description: "Tailored migration plans"
|
|
73
|
+
- type: llm_judge
|
|
74
|
+
criteria: "Retention risk is specifically addressed — identifies flight risks (A's engineers who value speed, C's researchers who value freedom), proposes specific retention mechanisms (cultural ambassadors, review process autonomy periods, transparent timeline), and the 10% attrition target is tracked"
|
|
75
|
+
weight: 0.30
|
|
76
|
+
description: "Specific retention risk mitigation"
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: review-regulatory-landscape
|
|
3
|
+
level: 5
|
|
4
|
+
course: github-pr-review
|
|
5
|
+
type: output
|
|
6
|
+
description: "Navigate the regulatory landscape for code review — analyze how global regulations shape review requirements and prepare for emerging compliance frameworks"
|
|
7
|
+
tags: [github, pr-review, regulatory, compliance, global, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're the Chief Compliance Officer of a global software company
|
|
13
|
+
operating in 35 countries. You need to map the regulatory landscape
|
|
14
|
+
for code review and change management, as regulations increasingly
|
|
15
|
+
require demonstrable software quality controls.
|
|
16
|
+
|
|
17
|
+
Current regulatory requirements affecting code review:
|
|
18
|
+
|
|
19
|
+
1. EU AI Act (effective 2026):
|
|
20
|
+
- High-risk AI systems require documented development processes
|
|
21
|
+
- Code changes to AI models need traceable review and testing
|
|
22
|
+
- Your AI-powered recommendation engine and fraud detection system
|
|
23
|
+
are classified as "high-risk"
|
|
24
|
+
- Penalty: up to 7% of global annual turnover
|
|
25
|
+
|
|
26
|
+
2. SEC Cybersecurity Rules (2024+):
|
|
27
|
+
- Material cybersecurity incidents must be disclosed within 4 days
|
|
28
|
+
- Board must demonstrate oversight of cybersecurity risk management
|
|
29
|
+
- Code review is part of the "reasonable controls" expectation
|
|
30
|
+
- Your financial reporting software processes $50B annually
|
|
31
|
+
|
|
32
|
+
3. DORA (Digital Operational Resilience Act, EU):
|
|
33
|
+
- ICT change management must be documented and tested
|
|
34
|
+
- Third-party ICT risk (including code review tools) must be managed
|
|
35
|
+
- Incident response must include root cause analysis of code changes
|
|
36
|
+
- Applies to your financial services customers in the EU
|
|
37
|
+
|
|
38
|
+
4. India's DPDP Act + China's PIPL:
|
|
39
|
+
- Data processing code changes must have privacy review
|
|
40
|
+
- Cross-border data flow code must have additional scrutiny
|
|
41
|
+
- You have engineering teams in Bangalore and Shanghai
|
|
42
|
+
|
|
43
|
+
5. Proposed US legislation:
|
|
44
|
+
- "Software Liability Act" draft would make companies liable for
|
|
45
|
+
known vulnerabilities that passed code review
|
|
46
|
+
- Bipartisan support, expected to pass within 2 years
|
|
47
|
+
- Would require "reasonable review practices" (undefined)
|
|
48
|
+
|
|
49
|
+
Emerging trends:
|
|
50
|
+
- Supply chain security regulations (NIST SSDF, EU CRA)
|
|
51
|
+
- AI-specific code review requirements (model governance)
|
|
52
|
+
- "Software bill of materials" requirements affecting dependency PRs
|
|
53
|
+
- Insurance underwriters requiring code review evidence for cyber
|
|
54
|
+
insurance renewals
|
|
55
|
+
|
|
56
|
+
Task: Map the regulatory landscape. Write: the regulatory matrix
|
|
57
|
+
(which regulations apply to which codebases, by jurisdiction and risk
|
|
58
|
+
level), the compliance gap analysis (where current review practices
|
|
59
|
+
fall short), the unified compliance framework (one review process
|
|
60
|
+
that satisfies all applicable regulations), the future-proofing
|
|
61
|
+
strategy (how to prepare for proposed and emerging regulations), and
|
|
62
|
+
the executive brief for the board on regulatory risk and investment
|
|
63
|
+
needed. Include the timeline for compliance milestones and the
|
|
64
|
+
consequences of non-compliance.
|
|
65
|
+
|
|
66
|
+
assertions:
|
|
67
|
+
- type: llm_judge
|
|
68
|
+
criteria: "Regulatory matrix is comprehensive — maps each regulation to affected codebases, identifies overlapping requirements (e.g., EU AI Act + DORA both require documentation), and notes jurisdictional complexity (different requirements in EU, US, India, China)"
|
|
69
|
+
weight: 0.35
|
|
70
|
+
description: "Comprehensive regulatory matrix"
|
|
71
|
+
- type: llm_judge
|
|
72
|
+
criteria: "Unified framework satisfies all regulations efficiently — doesn't create separate review processes per regulation, identifies the superset of requirements, and implements the most stringent standard as the baseline with lighter paths for lower-risk code"
|
|
73
|
+
weight: 0.35
|
|
74
|
+
description: "Efficient unified compliance framework"
|
|
75
|
+
- type: llm_judge
|
|
76
|
+
criteria: "Future-proofing strategy is forward-looking — prepares for the Software Liability Act, supply chain regulations, and AI governance requirements before they take effect, with a regulatory monitoring process that detects new requirements early"
|
|
77
|
+
weight: 0.30
|
|
78
|
+
description: "Forward-looking future-proofing"
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
id: kubernetes-deployment-troubleshooting
|
|
2
|
+
name: "Kubernetes Deployment Troubleshooting"
|
|
3
|
+
description: >
|
|
4
|
+
Master Kubernetes deployment troubleshooting from pod debugging basics
|
|
5
|
+
to enterprise platform operations. Learn to diagnose CrashLoopBackOff,
|
|
6
|
+
ImagePullBackOff, OOMKilled pods, fix networking and service issues,
|
|
7
|
+
manage storage and RBAC, optimize resources with HPA/VPA, implement
|
|
8
|
+
GitOps pipelines, and design multi-cluster disaster recovery
|
|
9
|
+
strategies for large-scale Kubernetes deployments.
|
|
10
|
+
levels: 5
|
|
11
|
+
scenarios_per_level: 10
|
|
12
|
+
tags: [development, Kubernetes, DevOps, troubleshooting, containers, deployment, cloud-native]
|
package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/configmap-secret-issues.yaml
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: configmap-secret-issues
|
|
3
|
+
level: 1
|
|
4
|
+
course: kubernetes-deployment-troubleshooting
|
|
5
|
+
type: output
|
|
6
|
+
description: "Debug ConfigMap and Secret issues — diagnose missing environment variables, mount failures, and configuration mismatches"
|
|
7
|
+
tags: [Kubernetes, ConfigMap, Secret, environment-variables, configuration, beginner]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your application deployed successfully but is returning 500 errors.
|
|
13
|
+
The logs show it can't find its configuration:
|
|
14
|
+
|
|
15
|
+
$ kubectl get pods
|
|
16
|
+
NAME READY STATUS RESTARTS AGE
|
|
17
|
+
auth-svc-2b3c4d5e-fg67 1/1 Running 0 2m
|
|
18
|
+
|
|
19
|
+
$ kubectl logs auth-svc-2b3c4d5e-fg67
|
|
20
|
+
Error: Missing required environment variable: JWT_SECRET
|
|
21
|
+
Error: Missing required environment variable: REDIS_URL
|
|
22
|
+
Error: Configuration validation failed, shutting down...
|
|
23
|
+
Process exited with code 1
|
|
24
|
+
|
|
25
|
+
Wait — the pod status shows Running, not CrashLoopBackOff? That's
|
|
26
|
+
because the container has a startup delay and the crash happened after
|
|
27
|
+
the liveness probe window.
|
|
28
|
+
|
|
29
|
+
$ kubectl describe pod auth-svc-2b3c4d5e-fg67
|
|
30
|
+
Environment:
|
|
31
|
+
DATABASE_URL: <set to the key 'DATABASE_URL' in secret 'auth-secrets'>
|
|
32
|
+
JWT_SECRET: <set to the key 'JWT_SECRET' in secret 'auth-secrets'>
|
|
33
|
+
REDIS_URL: <set to the key 'REDIS_URL' in configmap 'auth-config'>
|
|
34
|
+
|
|
35
|
+
$ kubectl get secret auth-secrets -o jsonpath='{.data}' | jq
|
|
36
|
+
{
|
|
37
|
+
"DATABASE_URL": "cG9zdGdyZXM6Ly8uLi4="
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
The secret exists but only has DATABASE_URL — JWT_SECRET is missing
|
|
41
|
+
from the secret! And the ConfigMap:
|
|
42
|
+
|
|
43
|
+
$ kubectl get configmap auth-config
|
|
44
|
+
Error from server (NotFound): configmaps "auth-config" not found
|
|
45
|
+
|
|
46
|
+
The ConfigMap doesn't exist at all. Two issues:
|
|
47
|
+
1. Secret auth-secrets is missing the JWT_SECRET key
|
|
48
|
+
2. ConfigMap auth-config was never created
|
|
49
|
+
|
|
50
|
+
Task: Explain how ConfigMaps and Secrets work in Kubernetes. Write:
|
|
51
|
+
how pods consume configuration (env vars vs volume mounts), what
|
|
52
|
+
happens when a referenced ConfigMap/Secret is missing (pod may or may
|
|
53
|
+
not start depending on optional flag), how to debug missing config,
|
|
54
|
+
the difference between ConfigMaps and Secrets, and best practices for
|
|
55
|
+
configuration management.
|
|
56
|
+
|
|
57
|
+
assertions:
|
|
58
|
+
- type: llm_judge
|
|
59
|
+
criteria: "ConfigMap and Secret consumption is explained — two methods: environment variables (envFrom or env with valueFrom) and volume mounts. envFrom loads all keys, env with valueFrom loads specific keys. Volume mounts project keys as files. If a referenced ConfigMap/Secret doesn't exist, the pod fails to start unless the reference is marked as optional"
|
|
60
|
+
weight: 0.35
|
|
61
|
+
description: "ConfigMap/Secret consumption"
|
|
62
|
+
- type: llm_judge
|
|
63
|
+
criteria: "Debugging steps are systematic — check pod events (kubectl describe pod), verify ConfigMap/Secret exists (kubectl get cm/secret), inspect keys (kubectl get secret -o jsonpath or -o yaml), verify key names match what the deployment references, check if the reference is in the correct namespace. Shows how base64 encoding works for secrets"
|
|
64
|
+
weight: 0.35
|
|
65
|
+
description: "Debugging steps"
|
|
66
|
+
- type: llm_judge
|
|
67
|
+
criteria: "Differences and best practices are covered — ConfigMaps for non-sensitive config, Secrets for sensitive data (base64 encoded, can be encrypted at rest in etcd). Best practices: use optional references where appropriate, validate config in CI/CD, use sealed-secrets or external secret managers for production, consider volume mounts for auto-updates vs env vars requiring restart"
|
|
68
|
+
weight: 0.30
|
|
69
|
+
description: "Differences and best practices"
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: crashloopbackoff
|
|
3
|
+
level: 1
|
|
4
|
+
course: kubernetes-deployment-troubleshooting
|
|
5
|
+
type: output
|
|
6
|
+
description: "Debug CrashLoopBackOff — diagnose why a pod keeps crashing and restarting, using kubectl logs, describe, and events"
|
|
7
|
+
tags: [Kubernetes, CrashLoopBackOff, debugging, pod-lifecycle, beginner]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You deployed a new version of your API service and kubectl shows:
|
|
13
|
+
|
|
14
|
+
$ kubectl get pods
|
|
15
|
+
NAME READY STATUS RESTARTS AGE
|
|
16
|
+
api-server-7b8f9c4d-x2k9l 0/1 CrashLoopBackOff 5 3m
|
|
17
|
+
api-server-7b8f9c4d-m4p7q 0/1 CrashLoopBackOff 5 3m
|
|
18
|
+
api-server-7b8f9c4d-r9n1j 0/1 CrashLoopBackOff 5 3m
|
|
19
|
+
|
|
20
|
+
All 3 replicas are in CrashLoopBackOff. The previous version was
|
|
21
|
+
running fine. The team is panicking because the API is down.
|
|
22
|
+
|
|
23
|
+
kubectl describe pod api-server-7b8f9c4d-x2k9l shows:
|
|
24
|
+
State: Waiting
|
|
25
|
+
Reason: CrashLoopBackOff
|
|
26
|
+
Last State: Terminated
|
|
27
|
+
Reason: Error
|
|
28
|
+
Exit Code: 1
|
|
29
|
+
Started: 2025-12-01T10:00:05Z
|
|
30
|
+
Finished: 2025-12-01T10:00:06Z
|
|
31
|
+
|
|
32
|
+
Events:
|
|
33
|
+
Warning BackOff 3m kubelet Back-off restarting failed container
|
|
34
|
+
|
|
35
|
+
kubectl logs api-server-7b8f9c4d-x2k9l shows:
|
|
36
|
+
Error: connect ECONNREFUSED 10.100.50.3:5432
|
|
37
|
+
Error: Unable to connect to database
|
|
38
|
+
Process exited with code 1
|
|
39
|
+
|
|
40
|
+
The application requires a PostgreSQL database connection. The
|
|
41
|
+
database is running in the same cluster as a StatefulSet. Nothing
|
|
42
|
+
changed about the database — only the API image was updated.
|
|
43
|
+
|
|
44
|
+
Investigation reveals:
|
|
45
|
+
- The new image version changed the env var name from DATABASE_URL
|
|
46
|
+
to DB_CONNECTION_STRING
|
|
47
|
+
- The ConfigMap still has DATABASE_URL
|
|
48
|
+
- The container starts, fails to connect (wrong env var), and exits
|
|
49
|
+
|
|
50
|
+
Task: Explain how to debug CrashLoopBackOff. Write: what
|
|
51
|
+
CrashLoopBackOff means (the restart backoff mechanism), the debugging
|
|
52
|
+
workflow (kubectl logs → describe → events), common causes (app crash,
|
|
53
|
+
missing env vars, missing dependencies, OOM, wrong command), the fix
|
|
54
|
+
for this specific case, and how to prevent this in the future.
|
|
55
|
+
|
|
56
|
+
assertions:
|
|
57
|
+
- type: llm_judge
|
|
58
|
+
criteria: "CrashLoopBackOff is explained — the container starts, crashes, Kubernetes restarts it with exponential backoff (10s, 20s, 40s... up to 5 minutes). Exit code 1 indicates application error (not OOMKilled=137, not SIGTERM=143). The backoff means Kubernetes is waiting longer between each restart attempt"
|
|
59
|
+
weight: 0.35
|
|
60
|
+
description: "CrashLoopBackOff explained"
|
|
61
|
+
- type: llm_judge
|
|
62
|
+
criteria: "Debugging workflow is systematic — (1) kubectl logs <pod> to see application error, (2) kubectl logs <pod> --previous if container already restarted, (3) kubectl describe pod to see events, exit codes, and container state, (4) check env vars with kubectl exec (if pod stays up) or kubectl get cm/secret. Identifies the env var mismatch as root cause"
|
|
63
|
+
weight: 0.35
|
|
64
|
+
description: "Systematic debugging workflow"
|
|
65
|
+
- type: llm_judge
|
|
66
|
+
criteria: "Fix and prevention are practical — immediate fix: update ConfigMap to include DB_CONNECTION_STRING, or update deployment to map the old var name. Prevention: validate env vars in CI/CD, use health checks (readiness probe on DB connection), and consider using a shared config schema between app versions"
|
|
67
|
+
weight: 0.30
|
|
68
|
+
description: "Fix and prevention"
|
package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/deployment-rollout.yaml
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: deployment-rollout
|
|
3
|
+
level: 1
|
|
4
|
+
course: kubernetes-deployment-troubleshooting
|
|
5
|
+
type: output
|
|
6
|
+
description: "Debug deployment rollout issues — understand rolling updates, rollback, and why a deployment might get stuck"
|
|
7
|
+
tags: [Kubernetes, Deployment, rollout, rolling-update, rollback, beginner]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You updated your deployment to a new image version but the rollout
|
|
13
|
+
is stuck. Old pods are still running alongside partially updated ones:
|
|
14
|
+
|
|
15
|
+
$ kubectl rollout status deployment/user-svc
|
|
16
|
+
Waiting for deployment "user-svc" spec update to be observed...
|
|
17
|
+
Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
|
|
18
|
+
|
|
19
|
+
$ kubectl get pods
|
|
20
|
+
NAME READY STATUS RESTARTS AGE
|
|
21
|
+
user-svc-7a8b9c0d-old1 1/1 Running 0 2h
|
|
22
|
+
user-svc-7a8b9c0d-old2 1/1 Running 0 2h
|
|
23
|
+
user-svc-7a8b9c0d-old3 1/1 Running 0 2h
|
|
24
|
+
user-svc-3e4f5g6h-new1 0/1 CrashLoopBackOff 4 5m
|
|
25
|
+
|
|
26
|
+
The deployment strategy is RollingUpdate with maxSurge=1 and
|
|
27
|
+
maxUnavailable=0. The new pod keeps crashing, so the rollout can't
|
|
28
|
+
proceed (it needs at least 1 new pod Ready before terminating old ones).
|
|
29
|
+
|
|
30
|
+
$ kubectl logs user-svc-3e4f5g6h-new1
|
|
31
|
+
Error: Cannot connect to database — migration v15 not applied
|
|
32
|
+
The new version requires a database migration that wasn't run.
|
|
33
|
+
|
|
34
|
+
The deployment is stuck: new pods crash, old pods keep serving traffic,
|
|
35
|
+
but the deployment never completes. After 10 minutes the
|
|
36
|
+
progressDeadlineSeconds (default 600s) will mark it as Failed.
|
|
37
|
+
|
|
38
|
+
Task: Explain how Kubernetes deployment rollouts work. Write: the
|
|
39
|
+
RollingUpdate strategy (maxSurge, maxUnavailable), what happens when
|
|
40
|
+
a rollout gets stuck, how to check rollout status and history, how
|
|
41
|
+
to rollback (kubectl rollout undo), progressDeadlineSeconds, and the
|
|
42
|
+
Recreate strategy as an alternative.
|
|
43
|
+
|
|
44
|
+
assertions:
|
|
45
|
+
- type: llm_judge
|
|
46
|
+
criteria: "Rolling update mechanics are explained — maxSurge controls how many extra pods can be created during update, maxUnavailable controls how many pods can be down. With maxSurge=1 maxUnavailable=0, Kubernetes creates 1 new pod, waits for it to be Ready, then terminates 1 old pod. If the new pod never becomes Ready, the rollout stalls"
|
|
47
|
+
weight: 0.35
|
|
48
|
+
description: "Rolling update mechanics"
|
|
49
|
+
- type: llm_judge
|
|
50
|
+
criteria: "Stuck rollout debugging is explained — kubectl rollout status shows progress, kubectl rollout history shows revision history, progressDeadlineSeconds (default 600s) marks deployment as Failed if no progress within deadline. A stuck rollout means old pods continue serving traffic (safe but incomplete update)"
|
|
51
|
+
weight: 0.35
|
|
52
|
+
description: "Stuck rollout debugging"
|
|
53
|
+
- type: llm_judge
|
|
54
|
+
criteria: "Rollback and alternatives are covered — kubectl rollout undo deployment/<name> reverts to previous revision, kubectl rollout undo --to-revision=N reverts to specific version. Recreate strategy: terminates all old pods before creating new ones (causes downtime but avoids version mixing). kubectl rollout pause/resume for controlled rollouts"
|
|
55
|
+
weight: 0.30
|
|
56
|
+
description: "Rollback and alternatives"
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: first-troubleshooting-shift
|
|
3
|
+
level: 1
|
|
4
|
+
course: kubernetes-deployment-troubleshooting
|
|
5
|
+
type: output
|
|
6
|
+
description: "Combined troubleshooting shift — diagnose multiple pod failures across a namespace using the full beginner debugging toolkit"
|
|
7
|
+
tags: [Kubernetes, troubleshooting, debugging, combined, shift-simulation, beginner]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're on-call and get paged: "Multiple services down in staging
|
|
13
|
+
namespace." You run:
|
|
14
|
+
|
|
15
|
+
$ kubectl get pods -n staging
|
|
16
|
+
NAME READY STATUS RESTARTS AGE
|
|
17
|
+
api-gw-5a6b7c8d-e9f0 0/1 CrashLoopBackOff 6 15m
|
|
18
|
+
user-svc-1g2h3i4j-k5l6 0/1 ImagePullBackOff 0 15m
|
|
19
|
+
order-svc-7m8n9o0p-q1r2 0/1 Pending 0 15m
|
|
20
|
+
payment-svc-3s4t5u6v-w7x8 1/1 Running 0 15m
|
|
21
|
+
notification-svc-9a0b-c1d2 0/1 Running 0 15m
|
|
22
|
+
|
|
23
|
+
Five services, four different problems:
|
|
24
|
+
|
|
25
|
+
1. api-gw — CrashLoopBackOff, exit code 1
|
|
26
|
+
Logs: "Error: REDIS_HOST environment variable not set"
|
|
27
|
+
The ConfigMap was deleted during a cleanup.
|
|
28
|
+
|
|
29
|
+
2. user-svc — ImagePullBackOff
|
|
30
|
+
Events: "Failed to pull image 'registry.company.com/user-svc:v3.2.1':
|
|
31
|
+
unauthorized"
|
|
32
|
+
The registry token expired overnight.
|
|
33
|
+
|
|
34
|
+
3. order-svc — Pending
|
|
35
|
+
Events: "0/3 nodes are available: 3 Insufficient memory"
|
|
36
|
+
Requests 4Gi memory but largest available is 2Gi.
|
|
37
|
+
|
|
38
|
+
4. payment-svc — Running but 0/1 Ready? No, it shows 1/1, but the
|
|
39
|
+
Service has no endpoints. Label mismatch: Service selector
|
|
40
|
+
app=payment, pod label app=payment-svc.
|
|
41
|
+
|
|
42
|
+
5. notification-svc — Running, 0/1 Ready
|
|
43
|
+
Readiness probe failing: HTTP 503 on /ready
|
|
44
|
+
The downstream email service is unreachable.
|
|
45
|
+
|
|
46
|
+
Task: Walk through diagnosing all five issues. Write: the triage
|
|
47
|
+
approach (start with kubectl get pods, identify status patterns), the
|
|
48
|
+
debugging steps for each issue type (CrashLoopBackOff → logs,
|
|
49
|
+
ImagePullBackOff → events, Pending → describe, Service issues →
|
|
50
|
+
endpoints, Readiness → probe config), and how to prioritize which to
|
|
51
|
+
fix first in a real incident.
|
|
52
|
+
|
|
53
|
+
assertions:
|
|
54
|
+
- type: llm_judge
|
|
55
|
+
criteria: "All five issues are correctly diagnosed — (1) CrashLoopBackOff from missing ConfigMap causing missing env var, (2) ImagePullBackOff from expired registry credentials, (3) Pending from insufficient memory on nodes, (4) Service-pod label mismatch causing empty endpoints despite pod running, (5) Readiness probe failing due to downstream dependency. Each diagnosis maps to the correct kubectl command"
|
|
56
|
+
weight: 0.35
|
|
57
|
+
description: "All issues diagnosed"
|
|
58
|
+
- type: llm_judge
|
|
59
|
+
criteria: "Triage methodology is systematic — start with kubectl get pods for overview, group by status type, check most impactful services first. Use kubectl describe for events, kubectl logs for application errors, kubectl get endpoints for service connectivity. Prioritize: fix what unblocks the most services first (e.g., ConfigMap might affect multiple services)"
|
|
60
|
+
weight: 0.35
|
|
61
|
+
description: "Triage methodology"
|
|
62
|
+
- type: llm_judge
|
|
63
|
+
criteria: "Fixes and prioritization are practical — prioritize payment-svc (revenue-critical, quick label fix), then api-gw (gateway affects all downstream, recreate ConfigMap), then user-svc (refresh registry token), then order-svc (scale down request or add capacity), then notification-svc (investigate downstream dependency). Shows the actual kubectl fix commands"
|
|
64
|
+
weight: 0.30
|
|
65
|
+
description: "Fixes and prioritization"
|
package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/health-probe-failures.yaml
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: health-probe-failures
|
|
3
|
+
level: 1
|
|
4
|
+
course: kubernetes-deployment-troubleshooting
|
|
5
|
+
type: output
|
|
6
|
+
description: "Debug health probe failures — understand liveness, readiness, and startup probes and why misconfigured probes cause restarts or traffic loss"
|
|
7
|
+
tags: [Kubernetes, health-probes, liveness, readiness, startup, beginner]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your application is running but keeps getting restarted, and users
|
|
13
|
+
report intermittent 503 errors:
|
|
14
|
+
|
|
15
|
+
$ kubectl get pods
|
|
16
|
+
NAME READY STATUS RESTARTS AGE
|
|
17
|
+
web-app-4a5b6c7d-mn01 1/1 Running 12 1h
|
|
18
|
+
web-app-4a5b6c7d-op23 0/1 Running 0 30s
|
|
19
|
+
web-app-4a5b6c7d-qr45 1/1 Running 8 1h
|
|
20
|
+
|
|
21
|
+
$ kubectl describe pod web-app-4a5b6c7d-mn01
|
|
22
|
+
Containers:
|
|
23
|
+
web-app:
|
|
24
|
+
Liveness: http-get http://:8080/healthz delay=5s timeout=1s
|
|
25
|
+
period=10s #success=1 #failure=3
|
|
26
|
+
Readiness: http-get http://:8080/ready delay=5s timeout=1s
|
|
27
|
+
period=10s #success=1 #failure=3
|
|
28
|
+
|
|
29
|
+
Events:
|
|
30
|
+
Warning Unhealthy 2m kubelet Liveness probe failed: HTTP probe
|
|
31
|
+
failed with statuscode: 503
|
|
32
|
+
Normal Killing 2m kubelet Container web-app failed liveness
|
|
33
|
+
check, will be restarted
|
|
34
|
+
Warning Unhealthy 30s kubelet Readiness probe failed: HTTP probe
|
|
35
|
+
failed with statuscode: 503
|
|
36
|
+
|
|
37
|
+
The application takes 45 seconds to fully start up (loading caches,
|
|
38
|
+
warming connections). But the liveness probe starts checking at 5
|
|
39
|
+
seconds with only 3 failures allowed (5s + 3*10s = 35s), so it kills
|
|
40
|
+
the container before it's ready.
|
|
41
|
+
|
|
42
|
+
Additionally, the readiness probe uses the same aggressive timing,
|
|
43
|
+
so during startup the pod is removed from the Service endpoints,
|
|
44
|
+
causing 503s for users.
|
|
45
|
+
|
|
46
|
+
Problems:
|
|
47
|
+
1. Liveness probe starts too early — kills the container during startup
|
|
48
|
+
2. No startup probe — would protect the container during initialization
|
|
49
|
+
3. Readiness probe timing causes premature endpoint removal
|
|
50
|
+
|
|
51
|
+
Task: Explain Kubernetes health probes. Write: the difference between
|
|
52
|
+
liveness, readiness, and startup probes, what each one controls (restart
|
|
53
|
+
vs traffic vs startup protection), how to configure timing parameters
|
|
54
|
+
(initialDelaySeconds, periodSeconds, failureThreshold, timeoutSeconds),
|
|
55
|
+
common misconfiguration patterns, and best practices for slow-starting
|
|
56
|
+
applications.
|
|
57
|
+
|
|
58
|
+
assertions:
|
|
59
|
+
- type: llm_judge
|
|
60
|
+
criteria: "All three probe types are explained — liveness: kills and restarts the container if it fails (detects deadlocks/hangs), readiness: removes pod from Service endpoints if it fails (controls traffic routing), startup: disables liveness/readiness until it succeeds (protects slow-starting containers). Each probe serves a different purpose and should not use the same endpoint"
|
|
61
|
+
weight: 0.35
|
|
62
|
+
description: "Probe types explained"
|
|
63
|
+
- type: llm_judge
|
|
64
|
+
criteria: "Timing parameters are explained with the math — initialDelaySeconds (wait before first check), periodSeconds (interval between checks), failureThreshold (consecutive failures before action), timeoutSeconds (per-check timeout). Total startup tolerance = initialDelaySeconds + (failureThreshold * periodSeconds). In this case: 5 + (3*10) = 35s < 45s startup time, so the container gets killed"
|
|
65
|
+
weight: 0.35
|
|
66
|
+
description: "Timing parameters explained"
|
|
67
|
+
- type: llm_judge
|
|
68
|
+
criteria: "Fix and best practices are practical — add a startup probe with generous timeout (e.g., failureThreshold=30, periodSeconds=5 = 150s window), keep liveness probe for runtime health only (not startup), make readiness check actual dependency availability, never use the same endpoint for all three probes if they serve different purposes"
|
|
69
|
+
weight: 0.30
|
|
70
|
+
description: "Fix and best practices"
|