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
- Done (T1-A) Fail-closed calendar (menu mirrors + router meta).
- Done (T1-A home) Unify parent dashboard leaf↔router; shell string optional T1-B.
- P1 Canonicalize teacher/student/parent homes (menu memakai route kanonis; alias = redirect only).
- P1 Bind/tighten dashboard API capabilities; cabut role bleed attendance (
pickup_officer, lab_technician) dari Core allowlist.
- P1 Mulai alias registry bertanggal + remove
lab-technician / analytics dari supported ROLE_APPS.
- P2 Scaffold menu→route→API parity checks untuk Core leaves saja.
- 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-12 — vp-curriculum / vp-student-affairs → CORE_SUPPORTED+SC-CORE; vp-infrastructure → OPTIONAL_GATED+SC-OPS; vp-public-relations → OPTIONAL_GATED+SC-CORE; vp-finance → OPTIONAL_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 |