Lewati ke isi

T6E SC-LEARN Approved Product Contract

Field Value
Approver Requesting user via current conversation (full package SC-LEARN → enable GBN plan)
Date 2026-08-30
Scope SC-LEARN / W21 / PKG-LEARN-W21 only
Status APPROVED_BY_REQUESTING_USER_CONVERSATION
Core V1 impact None
Production authority Exact demo candidate → UAT → GBN code promote, then separate SCOLA_CERTIFIED_ADDON_SKUS delta for SC-LEARN

This record is the immutable SC-LEARN product contract for engineering. It does not certify Core V1, W07, SC-REPORT, or SC-ASSESS.

Bound platform decisions: DEC-001, DEC-003, DEC-005, DEC-007, DEC-012, STAB-024, STAB-028.


1. Package boundary

  • SKU: SC-LEARN / PKG-LEARN-W21
  • Workflow: W21 — LMS course / content / assignment / submission lifecycle
  • Installer: scola_bundle_learningscola_lms
  • Prerequisites: W00 PASS; W01/W02 teaching assignment and enrolled roster for learning context
  • Overlay GT-OVL-SC-LEARN: SC-REPORT commercial entitlement / UI / API surface off while certifying standalone LEARN (module may remain installed only via optional bridge auto-install when both present)
  • Gradebook → e-rapor propagation: out of scope (BRIDGE-LEARN-REPORT-W07 only after both SKUs certified)

2. Course lifecycle (authoritative)

Course (batch×subject teaching surface) states for certification:

draftpublishedarchived

Allowed transitions (fail closed otherwise):

From To Actor
draft published teacher with academics.lms.manage on assigned course
published archived, draft same (unpublish only if zero graded submissions or explicit archive)
archived draft manager reopen with audit

Forbidden: publish without teaching assignment scope; cross-company course create/save.

3. Content / course items

  • Item types in scope: material, assignment, discussion (read moderation)
  • Create/update/delete only by assigned teacher (academics.lms.manage)
  • Student may view published items for enrolled courses only (academics.assignments.view / academics.lms.self.view)
  • Parent read only linked-child assignment visibility when entitled and related

4. Assignment submission

  • Student submits only while item is open and enrollment valid
  • Late: deny after due_at unless teacher-set grace; no silent accept
  • One authoritative submission per student per item unless teacher allows resubmit (max_attempts)

5. LMS grading (in-SKU)

  • Teacher grades submissions with academics.lms.manage or academics.lms_gradebook.view as contracted per surface
  • Publish LMS gradebook scores visible to student/parent per policy
  • Does not write finalized report-card lines unless bridge entitled (fail-closed)

6. Idempotency and recovery (DEC-005)

  • Duplicate submit same payload → success with existing submission id
  • Autosave draft answers/files preserved across reconnect
  • Resume uses same draft/submission record; no unauthorized reopen of graded work

7. Roles and capabilities (DEC-003)

Action Capability
LMS course/item CRUD, gradebook manage academics.lms.manage
LMS gradebook view academics.lms_gradebook.view
Teaching journal academics.teaching_journal.view
Student assignment view/submit academics.assignments.view / self LMS view
Schedule/session LMS calendar academics.schedule.view
Parent child assignment read parents.children.view / parents.portal.view

Feature flag: all surfaces require scola_lms effective (entitled ∩ certified ∩ installed).

8. STAB-024 topology (mandatory for independent cert)

  • scola_lms must install without hard depends on scola_report_card
  • Peer glue (TP/CP M2M, curriculum group hooks that require report_card models) lives in scola_lms_report_card (auto_install: True, depends scola_lms + scola_report_card)
  • scola_assessment_bridge remains internal platform dependency (not a peer commercial SKU)
  • Fresh LEARN-only install must not pull scola_student_activity via report_card hard dep
  • Disposition: split + bridgeAPPROVED_PEER_SKU_ALLOWLIST stays empty for LEARN→REPORT

9. Cross-module (XMD)

  • Base Learning works with SC-CORE + SC-LEARN only
  • SC-REPORT absent/unentitled: LMS APIs that need report models return feature_disabled / omit fields; no crash
  • SC-ASSESS not required; CBT menus remain gated by scola_cbt

10. Evidence

  • Runtime matrix: 11 rows RT-W21-* PASS on exact FE/BE candidate
  • Identity bind: backend_git_commit_sha + application_tree_hash (+ fixture version) in evidence JSON
  • Two reproducibility runs (QG-17) before GBN production promotion
  • Overlay: disposable scola_t6e_learn_audit_* only

11. GBN enable path

  1. Code/module promote exact candidate to GBN (does not by itself open LMS UI if allowlist omits SC-LEARN)
  2. Separate authorization: set SCOLA_CERTIFIED_ADDON_SKUS=SC-ADM,SC-FEES,SC-LEARN, restart, verify scola_lms=true
  3. Smoke: teacher digital-learning + LMS; negative unentitled/uncertified remains blocked

Non-goals

W07 standalone, BRIDGE-LEARN-REPORT-W07, SC-ASSESS allowlist, SC-REPORT allowlist, Core V1 TF freeze, changing company SKU lists beyond certified allowlist intersection, Spansa skip.