-- 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';