- Correct stale courses.status for ROOT 05/06/07/09/10/12/Capstone (all modules were already ready; the course-level field was never bumped in an earlier phase). - Exclude ROOT 08 (Storage & Scheduling) from ROOT_ V1 via visibility=draft — nothing downstream requires it, and leaving it visible mid-sequence would look like a skipped course. - Self-correct a same-phase mistake: reclassifying the three instructor-led-only practice banks (root-06-m01/root-07-m01/root-10-m02) as optional would have broken Capstone reachability, since their scenarios are the literal legacy stage-gate content. Kept them required and gave each a real intro-lesson activity instead. - Strengthen root-capstone's prerequisites to require ROOT 09 (Security) alongside ROOT 12 (Real Ops) — the Capstone's own scenario pool has zero security overlap, and ROOT 09 only reached genuine READY status this phase. - Add a required orientation module (root-01-m00-welcome-to-root) explaining the program, the Learn/Practice/Lab/Troubleshoot/Validate loop, and Lab-lifecycle expectations — no orientation content existed anywhere before this phase. See docs/ROOT_V1_CURRICULUM_MANIFEST.md and docs/PHASE6F_ROOT_V1_PILOT_READINESS.md. Co-Authored-By: Claude Sonnet 5 <[email protected]>
88 lines
8.1 KiB
SQL
88 lines
8.1 KiB
SQL
-- Phase 6F — ROOT_ V1 curriculum integration. No schema change: every decision below reuses
|
|
-- existing columns (visibility, status, is_required) exactly as COURSE_CONTENT_MODEL.md already
|
|
-- documents them. See docs/ROOT_V1_CURRICULUM_MANIFEST.md for the full audit and rationale.
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════════════════════════
|
|
-- 1. The three instructor-led-only practice banks (Phase 6E's known limitation) become
|
|
-- OPTIONAL supplemental practice: every activity in them gets is_required = false. Nothing
|
|
-- downstream lists any of these three modules as its own prerequisite (confirmed by audit), so
|
|
-- this changes nothing about the prerequisite graph — only whether their labs count toward
|
|
-- their course's OWN completion. Reuses the exact is_required mechanism Phase 6B built; no new
|
|
-- module-level "optional" flag needed. A module with zero required activities can never become
|
|
-- "complete" (course-progress.js's totals(): `required.length > 0 && ...`), so these stay
|
|
-- visibly incomplete/optional rather than silently vanishing or looking done.
|
|
-- ═══════════════════════════════════════════════════════════════════════════════════════════
|
|
UPDATE module_activities SET is_required = false, version = version + 1, updated_at = now()
|
|
WHERE module_id IN (
|
|
'root-06-m01-deployments-and-workloads',
|
|
'root-07-m01-services-and-networking',
|
|
'root-10-m02-general-troubleshooting'
|
|
);
|
|
|
|
UPDATE course_modules SET
|
|
description = description || ' — OPTIONAL supplemental practice for ROOT_ V1: a bare scenario bank with no lesson/demonstration/knowledge-check framing, not required for course or self-paced progression. Suitable for instructor-assigned extra reps in an instructor-led cohort.',
|
|
version = version + 1, updated_at = now()
|
|
WHERE module_id = 'root-06-m01-deployments-and-workloads';
|
|
UPDATE course_modules SET
|
|
description = description || ' — OPTIONAL supplemental practice for ROOT_ V1: a bare scenario bank with no lesson/demonstration/knowledge-check framing, not required for course or self-paced progression. Suitable for instructor-assigned extra reps in an instructor-led cohort.',
|
|
version = version + 1, updated_at = now()
|
|
WHERE module_id = 'root-07-m01-services-and-networking';
|
|
UPDATE course_modules SET
|
|
description = description || ' — OPTIONAL supplemental practice for ROOT_ V1: a bare scenario bank with no lesson/demonstration/knowledge-check framing, not required for course or self-paced progression. Suitable for instructor-assigned extra reps in an instructor-led cohort.',
|
|
version = version + 1, updated_at = now()
|
|
WHERE module_id = 'root-10-m02-general-troubleshooting';
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════════════════════════
|
|
-- 2. Course-level status audit correction. courses.status describes authoring completeness and
|
|
-- is shown to students honestly (COURSE_CONTENT_MODEL.md §6) — it is a hand-maintained field,
|
|
-- not derived from module status. Auditing it against actual module-level status (Step 0's
|
|
-- explicit "do not rely only on prior reports" instruction) found it had drifted out of date
|
|
-- for six courses: every module in each had already reached 'ready' status in an earlier phase
|
|
-- (root-05, root-09) or now does once its bare-practice-bank module is reclassified optional
|
|
-- above (root-06, root-07, root-10), and root-12/root-capstone's modules were already all ready.
|
|
-- No new content was authored for this correction — it is a status-field fix, not a curriculum
|
|
-- claim change.
|
|
-- ═══════════════════════════════════════════════════════════════════════════════════════════
|
|
UPDATE courses SET status = 'ready', version = version + 1, updated_at = now()
|
|
WHERE course_id IN (
|
|
'root-05-kubernetes-foundations',
|
|
'root-06-kubernetes-application-workloads',
|
|
'root-07-kubernetes-networking-config',
|
|
'root-09-kubernetes-security',
|
|
'root-10-kubernetes-troubleshooting-observability',
|
|
'root-12-real-ops',
|
|
'root-capstone'
|
|
);
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════════════════════════
|
|
-- 3. ROOT 08 (Storage & Scheduling) is excluded from ROOT_ V1. It sits at sequence 8 but is NOT
|
|
-- required by anything downstream (root-09/root-10 both branch directly off root-06, by design
|
|
-- — see ROOT_PROGRAM_ARCHITECTURE.md's "deviations from the suggested sequence"), so leaving it
|
|
-- visible mid-sequence with only 2 PARTIAL bare-lab modules would look to a self-paced student
|
|
-- like a course they "skipped," when in fact V1 was never designed to require it. visibility =
|
|
-- 'draft' is the existing hard gate (COURSE_CONTENT_MODEL.md §6): excluded from every
|
|
-- student-facing query, still visible/manageable for instructors. Reversible in a future phase
|
|
-- once ROOT 08 gets the same authoring pass ROOT 01-04 got.
|
|
-- ═══════════════════════════════════════════════════════════════════════════════════════════
|
|
UPDATE courses SET
|
|
visibility = 'draft',
|
|
description = description || ' [Excluded from ROOT_ V1 — see docs/ROOT_V1_CURRICULUM_MANIFEST.md. Not required by any V1 course; deferred to a future phase.]',
|
|
version = version + 1, updated_at = now()
|
|
WHERE course_id = 'root-08-kubernetes-storage-scheduling';
|
|
UPDATE course_modules SET visibility = 'draft', version = version + 1, updated_at = now()
|
|
WHERE course_id = 'root-08-kubernetes-storage-scheduling';
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════════════════════════
|
|
-- 4. ROOT 11 (DevOps & Platform Engineering Foundations) stays INCLUDED in V1, but explicitly
|
|
-- repositioned as a single-module conceptual bridge/orientation, not a promise of a full
|
|
-- DevOps course. It stays visibility = 'published' (real, finished, self-paced-ready content:
|
|
-- lesson + knowledge check + reflection) and status = 'partial' (honest — six more modules are
|
|
-- designed but not authored). Nothing downstream requires it (confirmed by audit), so it never
|
|
-- blocks Real Ops/Capstone; a student who skips it loses nothing gating-wise, only the framing
|
|
-- lesson itself.
|
|
-- ═══════════════════════════════════════════════════════════════════════════════════════════
|
|
UPDATE courses SET
|
|
description = 'A single orientation module bridging Linux/Kubernetes systems administration to platform-engineering thinking. This is intentionally NOT a full DevOps & Platform Engineering course for ROOT_ V1 — CI/CD, GitOps, and Infrastructure-as-Code modules are designed (docs/ROOT_CURRICULUM_COVERAGE_MATRIX.md) but require lab infrastructure not yet built, and are explicitly out of scope for this phase (see docs/ROOT_V1_CURRICULUM_MANIFEST.md). Optional: not required to reach Real Ops or the Capstone.',
|
|
version = version + 1, updated_at = now()
|
|
WHERE course_id = 'root-11-devops-platform-engineering';
|