Lewati ke isi

T1-A Navigation Residuals — Backlog T1-B / T1-C

Item Nilai
Mode Server development
Workspace root /home/scola/odoo
Tanggal 2026-08-10
Input T1-A-capability-parity.md / .json, T1-A-preflight.md, 10-implementation-roadmap.md (T1-U01–U06), 01-product-contract.md, 02-information-architecture.md (alias/IA residual)
Nature Backlog residual navigasi — bukan rewrite temuan T0; bukan sertifikasi W01/W02/W05

Prinsip yang tetap berlaku di residual

  • installed ≠ entitled ≠ visible
  • Isolasi internal/platform dari navigasi sekolah
  • Kontrak visibilitas mobile = desktop (beda layout, sama gate)
  • Protected Core tanpa capability → fail closed

1. Large UX redesigns (T1-U05) — deferred (besar)

ID Residual Alasan defer Target
RES-T1-U05 Normalisasi toast/alert, modal konfirmasi, sort tabel global, shell responsif, validasi form/filter, loading/empty/error/retry, primitif UI, page header Cakupannya lintas src/components/ui/, layout, dan hampir semua halaman Core; terlalu besar untuk parity docs T1-A T1-C setelah surface kanonis T1-B stabil
RES-T1-U05-MOBILE Bottom bar / quickAccess vs desktop rail harus diuji snapshot kontrak yang sama Bergantung inventory route yang sudah di-canonicalize T1-C / QG-12

Jangan mengklaim QG-12 hijau dari dokumen ini.


2. Optional workflow certification — deferred

ID Residual Catatan
RES-OPT-CERT SC-ADM / FEES / REPORT / LEARN / ASSESS / LIB / FIN / OPS / STUDENT / PEOPLE / ATTEND+ / FOUND Status katalog sudah ada; workflow E2E package belum certified di T1-A
RES-OPT-MENU-API ~138 capability menu tidak exact di API registry Diharapkan pada leaf UX optional; tutup per-package di suite masing-masing, bukan bulk Core
RES-PILOT SC-DAP, SC-BOS Controlled pilot — entitlement+capability saja sampai pilot gate

3. W01 / W02 / W05 — not certified

Workflow Status T1-A Residual navigasi terkait Tranche owner
W01 Academic master → timetable NOT CERTIFIED /schedule read sudah mendekati PARITY; mutation/lock/ownership master tetap terbuka T2
W02 Student onboarding NOT CERTIFIED /students list PARITY; create/import/linkage capability & CTA residual T3
W05 Daily student attendance NOT CERTIFIED (Controlled Pilot domain) Hub /attendance/home read PARITY; write/complete/correct/CTA drift residual; students.attendance.edit non-DEC-003 T4

T1-A hanya menahan surface agar tidak mengklaim workflow hijau.


4. DECISION_REQUIRED surfaces (tahan fail-closed)

Shell / area Residual Tindakan T1-B/C
security-officer Ada API visitor + capability, tidak ada SKU/package owner Sembunyikan dari ROLE_APPS Core sampai Product memutus; jangan sertifikasi
school-committee Memakai berita Core tanpa package owner Withhold shell; jangan campur ke SC-CORE nav
dpo Role compliance tanpa kontrak produk/retensi/audit Withhold; keputusan Security/DPO
pickup-officer Bukan W05; boundary privacy/transport terbuka Pisahkan dari attendance Core; withhold atau SKU baru
Mixed portal sections (teacher/student/parent) Core shell memuat leaf optional (LMS, fees, report, library, student-services, HR personal) Split folder package; leaf hilang jika tidak entitled; cegah empty-group menyesatkan
Leadership / VP / principal / admin-staff mixed shells Sudah ditandai Requires Product Decision di kontrak produk Tetap withhold dari Core certified nav

5. Legacy alias retirement schedule (usulan T1-B)

Setiap alias harus punya: canonical target, owner, alasan, telemetry/test, tanggal expiry atau alasan permanent.

Alias / family Canonical Usulan expiry Owner usulan
/faculty/home (masih jadi menu route) /faculty/dashboard T1-B: menu/breadcrumb/home → canonical; redirect tetap ≤ GA+1 release FE IA + Teacher portal
/adminhome, /admin/home /admin/dashboard Sudah redirect; tandai compatibility-only di registry alias FE IA
/student/home, /parent/home dashboard kanonis masing-masing Samakan pola teacher; expiry GA+1 FE IA
/absensi /attendance/home Compatibility; hapus dari docs/menu Attendance FE
/parent/news, /faculty/news /news Sudah redirect; retire dari search/help Communication
/wakasek/humas/news /admin/news Retire setelah telemetry nol Communication / Humas
/announcement* (legacy model/page) /news Remove menu + migrate/deprecate data (IA-010) Communication + Product
analytics app + /admin/analytics/* Domain/leadership owner routes Remove dari ROLE_APPS; redirect bertanggal (IA-005/021) Product + FE IA
Library /librarian/* mirrors /library/* family Scoped redirect only; satu identitas analytics SC-LIB
119 recon redirect records (agregat) Per-record canonical Inventory penuh di T1-B (IA-021); tidak ada alias sebagai home/menu/breadcrumb FE IA

Jadwal konkret release-cut mengikuti freeze T1 exit; dokumen ini menetapkan kewajiban registry, bukan tanggal kalender pemasaran.


6. Lab technician placeholder removal

ID Residual Bukti Tindakan
RES-LAB-REMOVE Shell lab-technician Incomplete / Remove 01-product-contract.md; stub views Laboran; capability lab.* mayoritas tanpa API registry T1-U03: hilangkan dari ROLE_APPS, deny route/API langsung, hapus placeholder pages
RES-LAB-ATTEND-BLEED lab_technician masuk ATTENDANCE_PORTAL_ALLOWED_ROLES attendanceRoutes.js Cabut dari allowlist Core attendance bersamaan removal

7. FE cleanup deferred (terlalu besar untuk T1-A)

ID Item Kenapa ditunda Slot
RES-CAP-ACTION-NORMALIZE 18+ action tail non-DEC-003 (edit, config, …) Butuh migrasi ROLE_CAPABILITIES + registry + tests serempak T1-B (Core dulu) lalu per-package
RES-MENU-API-EXACT 138 menu cap ≠ exact API registry Normal untuk optional; generator kontrak menu→API (AUTH-012) besar T1-B scaffold + T2–T6 per domain
RES-DUPLICATE-LEAVES 36 route key berulang / 122 instances Perlu canonicalPageId + allowlist reuse T1-U02
RES-PARENT-CAP-UNIFY Shell app masih parents.portal.view vs home leaf/router parents.dashboard.view Optional rename shell string T1-B kecil (home sudah PARITY di T1-A)
RES-DASHBOARD-API-BIND Bind academics.dashboard.view / students.dashboard.view ke API, ketatkan /api/dashboard/stats Sentuh BE registry + FE mirror T1-B
RES-CAL-FAIL-CLOSED capabilityKey + meta.capability = communication.calendar.view Closed in T1-A follow-up
RES-ATTEND-APP-CAP App settings.attendance.view vs leaf hub Rapikan gate app/section T1-B
RES-REGISTER-STUB /register heading-only vs SPMB IA-007; keputusan acquisition T1-U03 / Product
RES-AUDIT-MENU-TOOL npm run audit:menu false positives IA-022; tool repair sebelum gate T1-B tooling
RES-FEATUREFLAG-SECONDARY secondaryFeatureFlag tidak dievaluasi penuh di guard IA-023; satu resolver package T1-B
RES-T1-U05 Cross-cutting UX Lihat §1 T1-C

8. Prioritas usulan masuk T1-B

  1. Done (T1-A) Fail-closed calendar (menu mirrors + router meta).
  2. Done (T1-A home) Unify parent dashboard leaf↔router; shell string optional T1-B.
  3. P1 Canonicalize teacher/student/parent homes (menu memakai route kanonis; alias = redirect only).
  4. P1 Bind/tighten dashboard API capabilities; cabut role bleed attendance (pickup_officer, lab_technician) dari Core allowlist.
  5. P1 Mulai alias registry bertanggal + remove lab-technician / analytics dari supported ROLE_APPS.
  6. P2 Scaffold menu→route→API parity checks untuk Core leaves saja.
  7. T1-C T1-U05 UX contract + optional package certification planning (bukan execution penuh).

9. Explicit non-goals

  • Tidak menulis ulang audit T0 / E1.2.
  • Tidak menandai W01/W02/W05 sebagai hijau.
  • Tidak mengangkat shell DECISION_REQUIRED ke Core V1 hanya karena API sudah ada.

9. FE cleanup applied in T1-A (bounded) + follow-ups

ID Item Status
RES-T1A-SSOT productStatus / package / legacyAliases on appSchema + app fragments Done in T1-A
RES-T1A-FAILCLOSED canAccessNode hides DECISION/PLACEHOLDER/LEGACY/INCOMPLETE Done in T1-A
RES-T1A-GRADE Canonical /grade-levels (+ alias /course-level) Done in T1-A
RES-T1A-TEACHER-HOME Teacher landing → /faculty/dashboard Done in T1-A
RES-T1A-VP Lima shell VP ditandai DECISION_REQUIRED (exposure OFF) sampai role/package closure Reopened 2026-08-12vp-curriculum / vp-student-affairsCORE_SUPPORTED+SC-CORE; vp-infrastructureOPTIONAL_GATED+SC-OPS; vp-public-relationsOPTIONAL_GATED+SC-CORE; vp-financeOPTIONAL_GATED+SC-FIN (menu WKS Kurikulum: Jurnal Mengajar, Approval Laporan Mingguan, dll.)
RES-T1A-CAL Calendar mirrors + /calendar router communication.calendar.view Done in T1-A follow-up
RES-T1A-PARENT-HOME Parent home leaf → parents.dashboard.view Done in T1-A follow-up
RES-T1A-REBIND Current-tip E1.2 rebind setelah commit application tree baru Done — FE 6c7df740… · run T0-E1.2-REBIND-CURRENT-20260810T104714Z · 29/29 PASS
RES-T1A-GOLDEN-SMOKE Launcher/menu/negatif smoke runtime Golden Done — 5/5 roles PASS · negatives 4/4 PASS · evidence T1-A-evidence/T1-A-golden-role-navigation-smoke.json
RES-T1A-PRINCIPAL-FIXTURE Akun Golden principal tidak ada di gt-core-b1.1 ACCOUNTS Residual T1-B/fixture — smoke principal SKIP; kontrak FE ROLE_APPS tetap
RES-T1A-LIB-ROUTES 8 leaf library/librarian path-scan miss (prefix composition) T1-B verify against live router resolve