Lewati ke isi

SUPERSEDED (2026-09-08). Canonical SSOT: T6C-W07-report-card-contract.md. Live workflow states are draft → submitted → wali_kelas → kepala_sekolah → published (+ rejected). Do not treat DRAFT tokens reviewed / approved / finalized / released as live API tokens. Publish authority is wali kelas after KS approve_ks (principal does not portal-publish).


T6C W07 Report Card Product Contract — APPROVED (Implementation)

Field Value
Status APPROVED (product owner via Cursor prompt)
Wave W07 / SC-REPORT + optional SC-LEARN bridge
SKU PKG-REPORT-W07, BRIDGE-LEARN-REPORT-W07
Harness (planned) w07_runtime_certify.py
Owner sign-off SIGNED via prompt

Sign-off (product owner via Cursor prompt)

Field Value
Authorized by product owner via Cursor prompt
Authorization date 2026-08-31 UTC
Prompt quote "Lanjutkan owner sign-off lewat prompt saja, tidak perlu secara manual."
Engineering witness agent session

Bounded V1: standalone SC-REPORT grade entry→finalize with homeroom/principal SoD per DEC-004; SC-LEARN bridge deferred. Deferred: W08 promotion, CTRL-003/004 full closure.

1. Scope

In scope Out of scope
Standalone SC-REPORT grade entry, review, finalize, release Full LMS authoring (W21)
Optional SC-LEARN → report card bridge (RT-PKG-GAP-11) Promotion workflow (W08)
Homeroom/principal approval paths per DEC-004 Finance posting from grades
GT synthetic fixtures: GT-ACA, GT-STU, approved grade source Production tenant rollout

2. Actors

Actor Capabilities (draft) Notes
Assigned teacher Enter draft grades for assigned subjects [OWNER: confirm capability codes]
Homeroom teacher Review class report card draft [OWNER: SoD vs entry teacher]
Principal / VP academics Finalize and release report card [OWNER: lock/unlock authority]
School admin Configure report card templates only [OWNER: configure vs mutate]
Student / parent Read released report card only Portal scope

3. State machine outline

stateDiagram-v2
    [*] --> draft
    draft --> submitted: teacher submit
    submitted --> reviewed: homeroom review
    reviewed --> approved: principal approve
    approved --> finalized: finalize lock
    finalized --> released: release to portal
    finalized --> correction: approved correction path
    correction --> finalized: re-finalize
Transition Maker Checker [OWNER: rule]
draft → submitted Teacher Self-submit allowed?
submitted → reviewed Homeroom Cannot review own class?
reviewed → approved Principal DEC-004 SoD
approved → finalized Principal Irreversible lock?
finalized → correction [OWNER] Who may unlock?

Bound decisions: DEC-004, DEC-007, DEC-008, DEC-009.


4. Blocking RT-* / control IDs

ID Category Blocker
CTRL-003 Control Grade source/lock/finalize contract undefined
CTRL-004 Control Propagation/correction authority undefined
RT-PKG-GAP-11 Package SC-REPORT-only profile vs SC-LEARN bridge scope
RT-W07-POS-01 POS No harness
RT-W07-STA-01 STA State machine unsigned
RT-W07-NEG-01 … RT-W07-UIA-01 All BLOCKED pending contract

5. Harness plan

Step Command / artifact
1 Owner signs this contract
2 Implement scripts/golden/w07_runtime_certify.py
3 Seed overlay: GT-OVL-SC-REPORT + optional GT-OVL-BRIDGE-LEARN-REPORT
4 Run ×2 on disposable DB; evidence → execution/T6C-evidence/
5 Closure decision doc; matrix §3 row update

Engineering modules: scola_report_card, scola_assessment_bridge.


6. Owner sign-off

# Decision Owner Date Checkbox
1 Grade source of truth (manual vs LMS import) [OWNER]
2 Lock/finalize irreversibility policy [OWNER]
3 SC-LEARN bridge in-scope vs deferred [OWNER]
4 Maker-checker matrix (DEC-004 domain: Report) [OWNER]
5 Approve engineering harness start Product owner 2026-08-31

Product owner signature: prompt-signed (Cursor) Date: 2026-08-31