Lewati ke isi

DEC-013 — Bounded Profile Matrix (Jenjang / Timezone V1)

Mode: Server /home/scola/odoo
Approval: APPROVED_BY_REQUESTING_USER_CONVERSATION (2026-08-29)
Scope: Minimum product decisions to unblock §10.2 RT-PROFILE-* rows without full cartesian jenjang × timezone
Format: Same bounded-decision pattern as T4-DEC-W16-bounded-freezes.md


Retained V1 profile set (bounded)

Profile ID Deterministic fixture IANA timezone V1 status
GT-PROFILE-NON-EARLY-WIB Existing GT-T1 (smp) + GT-T1-U2 (sd) topology Asia/Jakarta Seeded — baseline positive class
GT-PROFILE-EARLY-WIB Product-selected early-years unit (tk, see rationale) Asia/Jakarta Seed PROF-1 — overlay gt.profile.early_wib
GT-PROFILE-NON-EARLY-WITA Non-early unit (smp) Asia/Makassar Seed PROF-1 — overlay gt.profile.wita
GT-PROFILE-NON-EARLY-WIT Non-early unit (smp) Asia/Jayapura Retained, fixture deferred — independent fixed-clock run required (STAB-022); PROF-3

Explicitly excluded from V1 claim: GT-PROFILE-MATRIX-DECISION (full cartesian jenjang × timezone) unless Product reopens partition.


RT-PROFILE-JENJANG-01 — Certified jenjang set and menu branches

Blockers resolved: DEC-013 (retained codes + equivalence partition)

Aspect V1 bounded decision
Early-years fixture tk only for GT-PROFILE-EARLY-WIB (single early-years equivalence class)
Early-years rationale paudtk for menu/route purposes (EARLY_YEARS_JENJANG_CODES in schoolJenjang.js); vitest anchor uses TK (teacherAttendanceReportScope.spec.js); reduces seed cost with explicit code-backed partition
Non-early equivalence sd, smp, sma, smk, slb, pkbmGT-PROFILE-NON-EARLY-WIB class per 06 §12.1 — same nonEarly branch in resolveRecognizedJenjangProfile
Negative matrix Empty, missing, malformed, unknown, unsupported, expired/unassigned, cross-company → fail closed (STAB-044 contract); vitest 9/9 + harness negative probes
Harness proof profile_matrix_certify.pyPROFILE-JENJANG-* on Golden :8090; W00 nav parameterization deferred PROF-3

RT-PROFILE-TIMEZONE-01 — Certified timezone set and local-day behavior

Blockers resolved: DEC-013 (retained IANA set); STAB-022 fixed-clock cases deferred PROF-3

Aspect V1 bounded decision
Retained zones Asia/Jakarta (WIB), Asia/Makassar (WITA), Asia/Jayapura (WIT)
No cross-zone equivalence Each zone requires independent run — WIB run cannot certify WITA/WIT
WIB baseline Existing GT-T1/GT-T2 (Asia/Jakarta)
WITA baseline GT-PROFILE-NON-EARLY-WITA overlay (PROF-1)
WIT fixture Retained in manifest; seed + STAB-022 boundary run PROF-3
Date-sensitive workflows W01/W05/W06/W20 fixed-clock straddle local midnight — NOT RUN at PROF-2 baseline
Harness proof profile_matrix_certify.py — auth school_timezone positive/negative probes; full workflow clock matrix deferred

Equivalence partition summary

Early-years:     paud ≡ tk  →  GT-PROFILE-EARLY-WIB (fixture code: tk)
Non-early:       sd | smp | sma | smk | slb | pkbm  →  GT-PROFILE-NON-EARLY-WIB
Timezone:        WIB ≠ WITA ≠ WIT  (no inheritance)

Adding a profile after freeze invalidates W00 navigation plus every date-sensitive workflow certificate until re-run on the same build (06 §12.1).


Explicit NOT RUN (non-claim at PROF-2)

Item Status Reason
GT-PROFILE-NON-EARLY-WIT fixture + STAB-022 NOT RUN PROF-3 seed + fixed-clock boundary
W00 nav crawl per jenjang NOT RUN PROF-3 parameterization
W01/W05/W06/W20 timezone boundaries NOT RUN PROF-3 STAB-022
Full cartesian jenjang × timezone Out of V1 Equivalence partition signed above
UAT PROMOTE_UAT Out of Profile track W16+ gelombang
Production promotion Not authorized Immutable CERTIFIED manifest

Certification denominator summary (PROF-2 baseline target)

Workstream Harness Target (PROF-2) Matrix rows
Profile jenjang profile_matrix_certify.py Baseline positive + negative probes §10.2 RT-PROFILE-JENJANG-01
Profile timezone profile_matrix_certify.py WIB/WITA auth probes; WIT NOT RUN §10.2 RT-PROFILE-TIMEZONE-01
STAB-044 regression vitest teacherAttendanceReportScope.spec.js 9/9 (unchanged) No Core regression

Sign-off record

Date Approver Decision Scope
2026-08-29 Requesting user (Post-SCORE Build/Lanjutkan) APPROVED — retained GT-PROFILE-* set, tk for early-years, non-early equivalence partition, and timezone non-inheritance as written PROF-1 seed + PROF-2 harness unblocked; does not authorize production promotion, UAT wave, or W16 denominator rebind

Product bounded options signed 2026-08-29 via conversational approval in Post-SCORE program execution (APPROVED_BY_REQUESTING_USER_CONVERSATION).