Files
rootnode-academy/docs/ROOT_V1_CURRICULUM_MANIFEST.md
T
ced4568andClaude Sonnet 5 d066410451
Release to Docker Hub / Build & Push Docker Image (push) Canceled after 0s
Release to Docker Hub / Create GitHub Release (push) Canceled after 0s
docs(phase6f): document ROOT_ V1 pilot readiness
New: PHASE6F_ROOT_V1_PILOT_READINESS.md (phase summary), ROOT_V1_CURRICULUM_MANIFEST.md
(canonical V1 scope), ROOT_V1_PREREQUISITE_MAP.md, ROOT_V1_ASSESSMENT_MAP.md,
ROOT_V1_SYLLABUS.md, ROOT_V1_INSTRUCTOR_GUIDE.md, ROOT_V1_STUDENT_REQUIREMENTS.md,
ROOT_V1_INSTRUCTOR_LED_PILOT.md, WINTER_BREAK_CAMP_CURRICULUM_OPTIONS.md.

Updated: ROOT_PROGRAM_ARCHITECTURE.md (course-sequence table reflects real V1 statuses),
ROOT_PILOT_CURRICULUM.md (self-paced-readiness correction), ROOT_PROGRAM_DURATION_MODEL.md
(real post-integration totals: 64.2 V1 hours / 68.3 program-wide), ROOT_CAPSTONE_READINESS.md
(§1b, the new root-09 course-layer gate), platform/README.md (test list).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-26 18:33:46 -05:00

139 lines
9.0 KiB
Markdown

# ROOT_ V1 Curriculum Manifest
Phase 6F — the canonical technical definition of what ROOT_ V1, the first sellable version of
the ROOT_ program, actually includes. Where this disagrees with an older doc (`ROOT_PILOT_
CURRICULUM.md`, `ROOT_PROGRAM_ARCHITECTURE.md`), this document is the current source of truth;
those documents have been updated to point back here.
## V1 course list
| # | Course | In V1? | Status | Required? | Prerequisite(s) | Duration (38-40 activities/course avg) |
|---|---|---|---|---|---|---|
| 1 | Computing & Linux Foundations | Yes | READY | Required | — | 353 min (38 activities) |
| 2 | Linux Administration & Networking | Yes | READY | Required | ROOT 01 | 388 min (37) |
| 3 | Git & Collaborative Development | Yes | READY | Required | ROOT 02 | 312 min (31) |
| 4 | Containers & Docker | Yes | READY | Required | ROOT 03 | 444 min (43) |
| 5 | Kubernetes Foundations | Yes | READY | Required | ROOT 04 | 403 min (28) |
| 6 | Kubernetes Application Workloads | Yes | READY | Required | ROOT 05 | 299 min (23) |
| 7 | Kubernetes Networking & Configuration | Yes | READY | Required | ROOT 06 | 356 min (28) |
| 8 | Kubernetes Storage & Scheduling | **No** | PARTIAL | Excluded | — | 250 min (15) — excluded from V1 total |
| 9 | Kubernetes Security | Yes | READY | Required for Capstone | ROOT 06 | 745 min (40, includes CKS-depth optional labs) |
| 10 | Kubernetes Troubleshooting & Observability | Yes | READY | Required | ROOT 06 | 280 min (21) |
| 11 | DevOps & Platform Engineering (orientation) | Yes | PARTIAL (by design) | Optional bonus | ROOT 10 (non-gating) | 35 min (3) |
| 12 | RootNode Real Ops | Yes | READY | Required for Capstone | ROOT 10 | 115 min (6) |
| — | ROOT Capstone | Yes | READY | Terminal | ROOT 12 AND ROOT 09 | 120 min (5) |
**ROOT_ V1 total: 3,850 minutes = 64.2 structured hours** (12 courses, excludes ROOT 08's 250
min). Program-wide total including the excluded ROOT 08: 4,100 minutes = 68.3 hours. Full
per-module breakdown in `docs/ROOT_PROGRAM_DURATION_MODEL.md`.
Every V1-included course's real per-module evidence (activity counts, lab list, assessment
wiring) lives in `docs/ROOT_FOUNDATIONS_PILOT_READINESS.md` (ROOT 01-04) and `docs/
ROOT_CURRICULUM_COVERAGE_MATRIX.md` (ROOT 05-13). This manifest is the scope decision; those
documents are the evidence.
## ROOT 08 — excluded from V1 (Step 2)
ROOT 08 (Storage & Scheduling) exists with 2 PARTIAL modules (bare scenario banks, no lesson
scaffolding) but critically **is not required by anything downstream** — ROOT 09 and ROOT 10
both branch directly off ROOT 06 by design (see `ROOT_PROGRAM_ARCHITECTURE.md`'s "deviations
from the suggested sequence"). Leaving it visible mid-sequence (course #8, between two READY
courses) would look to a self-paced student like a course they skipped, when V1 was never
designed to require it.
**Mechanism**: `visibility = 'draft'` on the course and both its modules — the existing hard
gate (`COURSE_CONTENT_MODEL.md` §6), excluded from every student-facing query, still fully
visible/manageable for instructors. No content was deleted; this is reversible the moment ROOT
08 gets the same authoring pass ROOT 01-04 got.
## ROOT 11 — included, repositioned as orientation-only bonus (Step 3)
ROOT 11 has exactly one real, finished, self-paced-ready module (lesson + knowledge check +
reflection) bridging "systems administration" to "platform engineering thinking." The other six
designed modules (CI/CD, GitOps, IaC) require lab infrastructure not yet built and are
explicitly out of Phase 6F's scope (per the authorization's own DO-NOT-BUILD list).
**Decision**: keep it in V1, but its course description was rewritten to say plainly that it is
a single orientation module, not a full DevOps course, and that the remaining six are designed
but not yet built. It stays `status = 'partial'` (honest) and `visibility = 'published'`
(real, finished content worth keeping visible). Nothing downstream requires it — a student who
skips it loses nothing gating-wise.
## The three instructor-led-only practice banks (Step 4)
`root-06-m01-deployments-and-workloads`, `root-07-m01-services-and-networking`, and
`root-10-m02-general-troubleshooting` were flagged in Phase 6E as instructor-led-only: bare
scenario banks with zero lesson/demonstration/knowledge-check framing.
**Critical finding before any fix was applied**: these three modules' scenario_ids are not
generic supplemental practice — they are the *literal* content of the pre-existing
`scenarios/rootnode-path.json` "workloads"/"networking"/"troubleshooting" stages, the older,
separate mechanism that gates whether a student can even **start** the `rootnode-capstone`
assessment. An initial attempt to reclassify them `is_required = false` (making them optional
for course completion) was caught during this phase's own audit before being committed: it would
have let a self-paced student reach a course-tree-"complete" state while remaining silently,
confusingly blocked from the Capstone by the older stage gate. See `platform/api/migrations/
030_phase6f_capstone_gate_correction.sql` for the full self-correction record.
**Actual fix (Option A, not B)**: each module kept its activities `is_required = true` and
received one short intro-lesson activity (`*-a00-lab-bank-intro`) explaining what the bank is,
why it has no per-scenario teaching, and how to use it — the minimum real authoring needed to
be honestly self-paced-ready, not a reclassification. All three modules, and their parent
courses (ROOT 06, 07, 10), now genuinely earn `status = 'ready'`.
## Course-level status audit correction (Step 0)
Auditing `courses.status` against actual module-level status (not trusting prior phase reports)
found it had drifted stale for ROOT 05, 06, 07, 09, 10, 12, and Capstone — every module in each
had already reached real `ready` content, but the course-level field was never bumped. Corrected
in `029_phase6f_root_v1_integration.sql`; no new content was required for ROOT 05, 09, 12, or
Capstone (already fully authored), only for 06/07/10 (the practice-bank intro lessons above).
## Capstone gate review (Step 7)
Two separate, independent gates protect the Capstone:
1. **The legacy stage-based gate** (`scenarios/rootnode-path.json`'s `unlock_rule`, checked by
`POST /api/assessments/rootnode-capstone/start`): six K8s scenario stages (foundation,
workloads, networking, configuration, troubleshooting, real-ops). **Left unchanged** this
phase — it has no natural "security stage" without new scenario-bank authoring, out of scope.
2. **The course-layer gate** (`courses.prerequisites` on `root-capstone`, checked by
`buildCourseTree()`): previously `{root-12-real-ops}` only.
**Decision: strengthened.** `root-capstone.prerequisites` now also requires
`root-09-kubernetes-security`. Evidence: the Capstone's own scenario pool
(`assessment_definitions.pool_spec`) has zero overlap with the security assessment's CKS-style
pool — a student could pass the Capstone having never touched a security scenario. ROOT 09 only
reached genuine `ready` status this same phase, so requiring it any earlier would have gated on
unfinished content. ROOT 09 and ROOT 12 are already sibling courses (both prerequisite = ROOT
06), so this adds no new sequencing burden — either order, or in parallel. See `031_phase6f_
capstone_security_prerequisite.sql`.
## Program + Lab orientation (Steps 9-11)
No orientation content existed anywhere before this phase (audited by grep across
`content/root`). Added `root-01-m00-welcome-to-root`, a new required front-door module — the
same pattern `root-05-m00` already established — with two lessons (program overview and Lab
lifecycle) and a knowledge check, sequenced before what was previously ROOT 01's first module.
See `032_phase6f_root_v1_orientation.sql`.
## ROOT_ V1 curriculum version (Step 26)
No second versioning system was built — this manifest reuses the existing per-row `version`
integer (`courses`/`course_modules`/`module_activities`), unchanged in convention from
`COURSE_CONTENT_MODEL.md` §6b. "ROOT_ V1" itself is a scope label (which course/module ids are
included, defined by this document), not a new database concept. What's frozen for a historical
enrollment is exactly what was already true pre-Phase-6F: a student's `activity_completions`
row stays valid across a later semantic edit to the same `activity_id`, keyed by the stable id,
not a snapshot. A future "V1.1" content correction follows the same rule `COURSE_CONTENT_MODEL.md`
§6b already documents — bump `version` on the changed row for a semantic edit, skip it for a
typo-only fix. A future V1 SCOPE change (adding/removing a course from the manifest) is a change
to this document plus a `visibility`/`prerequisites` migration, exactly like ROOT 08's exclusion
this phase — not a new mechanism to build.
## What this manifest deliberately does not cover
Pricing, registration, marketing copy, and camp scheduling are out of scope for this document —
see `docs/WINTER_BREAK_CAMP_CURRICULUM_OPTIONS.md` and `docs/ROOT_V1_INSTRUCTOR_LED_PILOT.md`
for delivery packaging, and Phase 7 for the business/product architecture layer.