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_account → 17.0.6.0.5, scola_counseling → 17.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 bounded — T6B-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¶
- T0 owner signatures — QG-01/QG-03/QG-04 unsigned (Phase 3 prerequisite per roadmap).
- ~~T1-U01 fresh-role home crawl~~ — DONE @ 20260831T092418Z (9 PASS, 0 SKIP); owner IA sign-off still pending.
- T1-U02 owner IA — alias/duplicate audit sign-off pending.
- Served-runtime QG-12 — static nav checks PASS; STAB-034–039 served crawl not executed.
- T6B-V1-R009 — independent umbrella verdict draft only; auditor signature required.
- ~~Golden W05 re-cert~~ — 16/16 ×2 PASS after
sync_baseline_credentials.py(see T3-tranche3-recert-status.md).
Docs read¶
AGENTS.mddocs/ai-guidelines/AI_AGENT_MASTER_GUIDE.md(Quick Rules)docs/release-readiness/10-implementation-roadmap.md§4 Tranche 1docs/qa/testing-guidelines.md(API login pattern; RT-W05-UIA-01 skip)