docs(phase3b): document the learning and assessment engine

New docs/PHASE3B_LEARNING_AND_ASSESSMENT.md covers the attempt/learning-record model,
progressive hints (including the Gateway response-rewrite mechanism), curriculum completion
rules, the assessment/exam engine and its timer/draw integrity guarantees, the RootNode
Capstone design, achievement records, the deliberately minimal versioning model, instructor
analytics, the Phase 3B RBAC matrix, security/integrity assumptions, dev/test commands, known
limitations, and the Phase 4 boundary.

Updates ENGINEERING_SOP.md (roadmap items 2/7/8 now done, new section 12, corrects a stale
capstone-placeholder description in section 4), LAB_ARCHITECTURE.md's status line,
README.md (corrects the 'Lab image unmodified' claim now that its frontend bundle carries
Phase 3B UX, plus new platform properties), platform/README.md, and platform/api/README.md.
This commit is contained in:
2026-08-18 14:36:13 -05:00
parent 8956a95446
commit 45a147a61f
6 changed files with 503 additions and 66 deletions
+17 -11
View File
@@ -1,9 +1,11 @@
# RootNode Academy — Platform API (Phase 3A)
# RootNode Academy — Platform API (Phase 3B)
Lightweight service: no k3s, no `--privileged`, no Lab terminal runtime. See
`docs/PHASE2B_ADMIN_AND_PLATFORM_DATA.md` for the original split/migration design and
`docs/PHASE2B_ADMIN_AND_PLATFORM_DATA.md` for the original split/migration design,
`docs/PHASE3A_IDENTITY_AND_INSTRUCTOR_ACCESS.md` for persistent sessions, per-instructor
accounts, RBAC, and audit logging — this file is the operational reference.
accounts, RBAC, and audit logging, and `docs/PHASE3B_LEARNING_AND_ASSESSMENT.md` for attempt
telemetry, progressive hints, curriculum rules, and the exam/capstone engine — this file is the
operational reference.
## Configuration reference
@@ -71,14 +73,18 @@ with instructor accounts, which are Phase 3A-native and start empty until you bo
## Tests
`platform/test/e2e-phase2a.js` (student-flow regression), `platform/test/e2e-phase2b.js` (the
classroom acceptance workflow), and `platform/test/e2e-phase3a.js` (persistent sessions
including a real restart, instructor auth, RBAC, cohort scoping, CSRF, audit log). All three
need the full stack up and `OWNER_EMAIL` / `OWNER_PASSWORD` set to a bootstrapped account — see
`platform/README.md`.
classroom acceptance workflow), `platform/test/e2e-phase3a.js` (persistent sessions including a
real restart, instructor auth, RBAC, cohort scoping, CSRF, audit log), and
`platform/test/e2e-phase3b.js` (attempt telemetry, progressive hints, curriculum/Capstone
unlock rules, the exam engine including a real restart, two-student assessment isolation,
instructor analytics). All four need the full stack up and `OWNER_EMAIL` / `OWNER_PASSWORD` set
to a bootstrapped account — see `platform/README.md`.
## Known limitations
See `docs/PHASE3A_IDENTITY_AND_INSTRUCTOR_ACCESS.md` "Known limitations" — sessions are
Postgres-backed (survive a restart) but there's no distributed revocation channel to the
Gateway's short-lived whoami cache, exam mode's live bookkeeping stays Lab-local, and OIDC/SSO
is a documented adapter interface, not a working integration yet.
See `docs/PHASE3A_IDENTITY_AND_INSTRUCTOR_ACCESS.md` "Known limitations" (sessions are
Postgres-backed and survive a restart, but there's no distributed revocation channel to the
Gateway's short-lived whoami cache; OIDC/SSO is a documented adapter interface, not a working
integration yet) and `docs/PHASE3B_LEARNING_AND_ASSESSMENT.md` §20 (no automatic
abandoned-attempt detection, needs-attention thresholds are fixed constants, `pool_spec`
authoring is raw JSON in the admin UI).