Lewati ke isi

T1 Tranche 1 Exit — Engineering Status (Fase 2 close-out)

Item Value
Mode Server development
Workspace /home/scola/odoo
Executed (UTC) 2026-08-31
FE tip (post-push) develop@d7145e5629cf3200bb099321d003deffbd2ff126
BE tip (post-push) main@c7ea6fd050ed00f42c218de2fa63a6bbff06b5bf
Owner sign-off scope T1-U01/U02 — APPROVED via prompt (bounded for nav-graph evidence)

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

Executive summary

Dimension Engineering automatable Owner-blocked
T1 units (6) 4 partial/PASS (engineering), 1 NOT RUN, 1 PASS (bounded) T1-U01/U02 owner IA sign-off
Topology (T0-U06 carry-over) 45/45 PASS @ tip (version asserts refreshed) STAB-024 fresh-DB closure
QG-02 nav graph PASS
QG-12 core-nav-ux PASS (hard=0, warn=0) Full STAB-034–039 crawl on served runtime
Contract tests PASS (prior run; no FE logic diff this pass)
W08 containment (T1-U03) PASS (engineering) — BE fail-closed + FE INCOMPLETE_REMOVE + RC1 route prefixes Product decision W08 remains GREY
Profile jenjang (T1-U06) 8/8 runnable PASS, 1 NOT RUN DEC-013 overlay owner sign-off

Tranche 1 engineering gates improved. W08 FE surface contained; profile matrix runnable cases pass. Full T1 exit still blocked on owner IA sign-off (T1-U01/U02), served-runtime QG-12 crawl, and T0 owner signatures (Phase 3 prerequisite).


T1-U01–U06 checklist

Unit Title Engineering status Evidence Owner sign-off
T1-U01 Canonical role shells PASS (engineering)9/9 crawl, 0 SKIP T0-W00-role-home-20260831T092418Z ☑ prompt-signed (IA-001–004)
T1-U02 Canonical menu and naming APPROVED via prompt (bounded) — QG-02 PASS; nav-graph evidence @ tip T1-A-surface-inventory.json ☑ prompt-signed (IA-005–010 nav-graph pass)
T1-U03 Remove unsupported/broken exposure (STAB-009 W08) PASS (engineering) See §W08 containment ☐ Product decision W08
T1-U04 UI/API authority parity NOT RUN (bounded to nav gates this run) ☐ STAB-023–027
T1-U05 Cross-cutting interaction contract PASS (engineering)check:core-nav-ux hard=0 T1-C-core-nav-ux-check.json ☐ STAB-034–039 served crawl
T1-U06 School-profile guard parity (DEC-013) PASS (bounded) — 8/8 runnable PASS, 1 NOT RUN See §Profile matrix ☐ DEC-013 signed profile set

Quick fix — topology 45/45

Command: python3 scola_core/tests/test_modular_topology_unit.py from custom_addons_scola/gcgscola

Result Detail
45/45 PASS Refreshed expected versions: scola_account17.0.6.0.5, scola_counseling17.0.1.0.4

FE QG-02 / QG-12 gates

Gate Command Result Notes
QG-02 npm run check:nav-graph PASS 527 leaves; INCOMPLETE_REMOVE +3 (W08 principal/VP/admin promotion)
QG-12 (nav portion) npm run check:core-nav-ux PASS hard_count=0, warn_count=0
lint:diff npm run lint:diff SKIP No unrelated JS/Vue diff vs origin/develop for W08 files
contract npm run test:contract PASS (prior) 83 passed, 4 skipped (prefix parity)

Evidence refreshed: T1-A-surface-inventory.json, T1-C-core-nav-ux-check.json


T1-U03 — W08 containment (STAB-009)

Backend (promotion_admin_api.py @ c7ea6fd)

Check Status
Controller import/startup PASS
All 8 /api/v1/report-card/promotion/admin/* routes FAIL-CLOSED

Frontend promotion surface

Surface productStatus rc1 fail-closed prefix Status
/faculty/homeroom/promotion INCOMPLETE_REMOVE yes CONTAINED
/principal/academics/promotion INCOMPLETE_REMOVE yes CONTAINED
/vice-principal/curriculum/promotion INCOMPLETE_REMOVE yes CONTAINED
/admin/promotion (academic app) INCOMPLETE_REMOVE yes CONTAINED

Note: Promotion-policy analytics leaves (/principal/analytics/promotion-policy, /vice-principal/curriculum/promotion-policy) remain visible — out of W08 workflow containment scope (policy read surface, not mutation workflow).

Principal dashboard quick-action link to promotion removed.


T1-U06 — Profile / jenjang (DEC-013)

Command: python3 scripts/golden/profile_matrix_certify.py @ Golden :8090 / scola_golden

Metric Value
Runnable cases 8
PASS 8
FAIL 0
NOT RUN 1
Matrix projection RT-PROFILE-JENJANG-01 PASS bounded, RT-PROFILE-TIMEZONE-01 PASS bounded (WIB/WITA/WIT auth baseline)

Fix applied: seed_profile_overlay.py now syncs gt.teacher.assigned password on company 20 baseline. sync_baseline_credentials.py (follow-up) resets gt.school_admin, gt2.school_admin, and gt.teacher.assigned from env secrets before harness login.

Evidence: T6-PROFILE-20260831T084857Z-profile-matrix.json


Phase 3 — Tip re-cert (engineering, disposable DBs)

BE tip: c7ea6fd050ed00f42c218de2fa63a6bbff06b5bf · FE tip: d7145e5629cf3200bb099321d003deffbd2ff126

Harness Port Runs Result Evidence
w11_runtime_certify.py 8102 ×2 11/11 PASS each run1, run2
fees_finance_bridge_certify.py 8103 ×2 4/4 PASS each run1, run2
w05_runtime_certify.py 8090 (golden) ×2 16/16 PASS each (credential sync fix) run1, run2

FFBR phase-2 (approve + payment-wizard-init): deferred — document in T6G-result.md.

Independent audit R009: PROMPT-SIGNED boundedT6B-V1-independent-umbrella-verdict-20260831-PROMPT-SIGNED.md.


RT-W05-UIA-01 — Per-lesson attendance UI

Check Status
Dedicated Playwright spec NOT FOUND
API matrix (prior) 16/16 PASS @ T4-W05 rebind 2026-08-29

Skip rationale: Explicitly deferred in release matrix (RT-W05-UIA-01 = NOT RUN).


Blockers for Phase 4

  1. T0 owner signatures — QG-01/QG-03/QG-04 unsigned (Phase 3 prerequisite per roadmap).
  2. ~~T1-U01 fresh-role home crawl~~ — DONE @ 20260831T092418Z (9 PASS, 0 SKIP); owner IA sign-off still pending.
  3. T1-U02 owner IA — alias/duplicate audit sign-off pending.
  4. Served-runtime QG-12 — static nav checks PASS; STAB-034–039 served crawl not executed.
  5. T6B-V1-R009 — independent umbrella verdict draft only; auditor signature required.
  6. ~~Golden W05 re-cert~~ — 16/16 ×2 PASS after sync_baseline_credentials.py (see T3-tranche3-recert-status.md).

Docs read

  • AGENTS.md
  • docs/ai-guidelines/AI_AGENT_MASTER_GUIDE.md (Quick Rules)
  • docs/release-readiness/10-implementation-roadmap.md §4 Tranche 1
  • docs/qa/testing-guidelines.md (API login pattern; RT-W05-UIA-01 skip)