Lewati ke isi

T1-A Result — Canonical Product Surface & Navigation Contract

Item Nilai
Mode Server development · /home/scola/odoo
Tanggal 2026-08-10
Label T1-A COMPLETE — CANONICAL PRODUCT SURFACE / NAVIGATION CONTRACT FROZEN
Bukan Sertifikasi W01 / W02 / W05 · optional workflow certification · full Tranche-1 UX (T1-U05)
Docs dibaca AGENTS.md, workspace-governance.md, 01-product-contract.md, 02-information-architecture.md, 10-implementation-roadmap.md (T1-U01–U06), DEC-003, package dispositions, T0-final-reconciliation.md, disiplin E1.2 rebind

1. Identity (post exit)

Check Verdict
FE application commit (nav contract) 6c7df7403dc0880ece1e44e2b6a52842910c6b30 (feat(nav): T1-A canonical product surface and navigation contract)
FE tip (docs + evidence) 7d790ef25ff9cec7f9ba204fb3062fff9576fd0f
FE application tree hash 248413272a892f89b7b935f63fcd97184fec8780ddf3ad28367ac4093212c75a
E1.2 manifest frontend_application_commit_sha a608135d5935bd01e26f5707d36026306312c9dd (tree hash sama; tip mencakup skrip/evidence T1-A)
Served FE (dist/version.json) 6c7df7403dc0+msn3umq4 · SHA 6c7df7403dc0880ece1e44e2b6a52842910c6b30 · :5181
BE tip 95468e5e5bd46157adff044c6004e343bb9c5c5c MATCH (tidak diubah)
DEC-003 SHA256 18704cbd…fc11f2 MATCH
E1.2 current-tip rebind T0-E1.2-REBIND-CURRENT-20260810T104714Z · 29/29 PASS

Historical T0 audits / prior REBIND matrices dipertahankan. Evidence lama tidak di-reuse diam-diam.


2. Artefak wajib (Phase 21)

# Artefak Path
1 Preflight docs/release-readiness/execution/T1-A-preflight.md
2–3 Surface inventory T1-A-surface-inventory.md / .json
4 Canonical app map T1-A-canonical-app-map.md
5 Role × navigation matrix T1-A-role-navigation-matrix.json
6 Capability parity T1-A-capability-parity.md / .json
7 Vocabulary T1-A-canonical-vocabulary.md
8 Residuals T1-A-navigation-residuals.md
9 Result (ini) T1-A-result.md

Evidence: T1-A-evidence/ (static smoke, golden role smoke, parity extract) · T0-E1.2-evidence/T0-E1.2-REBIND-CURRENT-20260810T104714Z-security-matrix.json.


3. Inventory snapshot

Metric Count
Apps / sections / leaves 36 / 143 / 529
CORE_SUPPORTED 59
OPTIONAL_GATED 365
CONTROLLED_PILOT 16
INTERNAL_PLATFORM 11
LEGACY_DEPRECATED 3
PLACEHOLDER_REMOVE 10
DECISION_REQUIRED 65
Core missing capability 0

npm run check:nav-graphPASSED.


4. FE changes (bounded) — committed

Commit FE: 6c7df740… pada develop (belum di-push kecuali diminta).

Area Perubahan
SSOT schema productStatus, package, legacyAliases + validator T1-A
Access canAccessNode fail-closed DECISION / PLACEHOLDER / LEGACY / INCOMPLETE
App fragments Anotasi status/package + landing/capability alignments
Scripts/tests scripts/t1a/*, check:nav-graph, menu/access specs

Tidak diubah: arsitektur auth Core, package SKU baru, workflow optional, redesign UI global, tip BE.


5. Verification (exit)

Gate Result
check:nav-graph PASS
Route surface coverage PASS (1716; UNREGISTERED 0)
Package topology + contract + mutations PASS
Package catalog PASS
E1.2 matrix current-tip 29/29 PASS · finding_observation_fail 0
E1.2 identity validator PASS (setelah commit evidence; --allow-docs-tip bila tip docs lanjut)
Static role smoke PASST1-A-evidence/T1-A-static-role-smoke.json
Golden role nav smoke PASS 5/5 runtime roles · principal SKIP (no fixture account) · negatives 4/4 PASST1-A-evidence/T1-A-golden-role-navigation-smoke.json

6. Exit gate checklist

# Kriteria Ya/Tidak
1 Setiap route/menu reachable punya disposisi produk Ya
2 Setiap fungsi Core retained punya satu canonical route Ya
3 Setiap Core menu leaf punya capability DEC-003 Ya
4 FE capability Core direkonsiliasi dengan BE Ya (+ residual T1-B non-blocker)
5 Optional/pilot/internal gated jujur Ya
6 Installed-but-unentitled tidak menciptakan navigasi Ya (kontrak + smoke feature flags)
7 Placeholder/stub tidak tampil sebagai Core Ya
8 Legacy punya disposisi eksplisit Ya
9 Mobile/desktop visibility contract setuju Ya
10 Inactive assigned role tidak memperluas menu Ya (smoke gt.multi.teacher_homeroom)
11 Direct forbidden URL/API tetap denied Ya (teacher → /api/v1/users capability_denied; platform denied)
12 Navigation graph Core tanpa broken canonical link Ya
13 Regresi T0 security/package hijau Ya (E1.2 rebind + topology)
14 Ambiguity tersisa hanya DECISION_REQUIRED (exposure OFF) Ya

Exit gate keseluruhan: COMPLETE

Residual jujur: smoke runtime principal SKIP karena fixture Golden gt-core-b1.1 tidak punya akun principal — kontrak FE tetap ada; tambah akun fixture = residual non-blocker T1-B/fixture.


7. Adversarial self-review (13)

  1. Surface reachable tanpa disposisi? No
  2. Core retained >1 canonical tanpa owner? No
  3. Core leaf tanpa capability? No
  4. FE Core capability tidak direkonsiliasi? No (residual T1-B tercatat)
  5. Optional/pilot/internal tampak sebagai Core? No
  6. Installed-unentitled membuka nav? No
  7. Placeholder tampil sebagai Core? No
  8. Legacy tanpa disposisi? No
  9. Mobile/desktop authority beda? No
  10. Inactive assigned role memperluas menu? No (dibuktikan smoke)
  11. Direct forbidden bypass? No (API deny teacher)
  12. Core nav graph broken? No
  13. Evidence T0 di-reuse stale setelah app change? No — rebind baru …104714Z

8. STOP / rebind actions taken

Saat Aksi
Phase 0 Docs-tip saja → lanjut tanpa rebind
Phase 16–17 App tree berubah → tidak silent-regenerate
Phase 20 Commit FE 6c7df740 → rebuild/serve → E1.2 REBIND-CURRENT-20260810T104714Z 29/29
Phase 18–19 Golden role nav smoke + negatives

9. Final label

T1-A COMPLETE — CANONICAL PRODUCT SURFACE / NAVIGATION CONTRACT FROZEN