12 — Assumptions & Open Questions (Shared)
- A. Product-level
- B. API / backend
- C. Product decisions deferred (no backend signal)
- D. Design system
- E. Governance
Every cross-cutting uncertainty affecting the whole design-docs set. Module docs list their own module-specific items; this file is the global ledger.
A. Product-level
| # | Item | Status | Impact |
|---|---|---|---|
| A1 | PRD conflict: native mobile apps are out of Phase 1 scope (PRODUCT_REQUIREMENTS_DOCUMENT.md:144); roadmap Phase 3 = read-only companion. These docs specify a full client. | Owner decision needed — proceeding per user instruction: full forward-looking specs | All Flutter docs |
| A2 | Web-first UI exists only as roadmap; no web client spec | Assumed: same design system, responsive shell (05_Global_Information_Architecture.md) | All |
| A3 | No brand assets, logo, or org branding defaults beyond organization.branding schema field | Assumed: token defaults in 02_Design_Tokens.md; org override hooks only | Theme, onboarding |
| A4 | Analytics SDK not chosen | Contract defined (10_QA_Baseline.md §8), SDK open | All analytics events |
| A5 | Supported locales beyond English unspecified (backend i18n module exists) | Assumed: en + platform locales; org-driven additions | Localization |
B. API / backend
| # | Item | Status | Impact |
|---|---|---|---|
| B1 | Endpoints in docs/IMPLEMENTATION_PLAN.md not yet in code (full communication/leave/CRM-admission/timetable-slot APIs) | Flagged (planned) in every doc where used | Those modules |
| B2 | WebSocket handshake/protocol not implemented (WsModule gateway exists) | Assumed standard WS + bearer; verify before build | Realtime everywhere |
| B3 | No push-device registry/DeviceToken endpoint | Forward-looking; docs mark push entry points as planned | Notifications, attendance |
| B4 | No QR-code backend support (no QR endpoints) | QR entry points marked forward-looking only | Biometric, transport, library |
| B5 | Server cache TTLs not enumerable from code | Client cache TTLs proposed per module (06 §3.3) | All lists |
| B6 | Idempotency-Key header support not confirmed per endpoint | Client contract defined; verify per module | Writes |
| B7 | File upload resume (chunked) not implemented | Uploads queued + retried, no resume | Files, homework |
| B8 | Payments integration: gateway status per tenant unknown (manual reconciliation per PRD §8) | Client shows "payment recorded/pending" from server state only | Payments, fees |
C. Product decisions deferred (no backend signal)
| # | Item | Who decides |
|---|---|---|
| C1 | Exact navigation order/destinations per role (proposed in 05 §2) | Product owner |
| C2 | Which lists are infinite-scroll vs paginated | Per-module design owner |
| C3 | Offline write queues beyond attendance/homework drafts | Product owner |
| C4 | Biometric client gate (fingerprint for payments/admin) | Security owner |
| C5 | Dashboard widget set + customization depth | Product owner |
| C6 | Notification channel defaults per role (email/push/in-app/WhatsApp) | Tenant config (backend notification.read perms) |
D. Design system
| # | Item | Status |
|---|---|---|
| D1 | 02_Design_Tokens.md updated to designer-provided token export (v1) | Signed off except rows marked TBD by designer (extrapolated surfaces §1.2, dark chromatic roles §1.4, decimal spacing gaps §3.2, radius 4/16/28 §4, elevation §5) — confirm before ship |
| D2 | Iconography pack unselected | Material Symbols assumed; no icon tokens in export |
| D3 | Flutter deps list unverified for licensing | Verify before adopting (fl_chart, mobile_scanner, flutter_markdown) |
| D4 | Typeface resolved | Inter (UI) + JetBrains Mono (data) — designer-provided; org font support planned |
| D5 | Dark chromatic roles (primary/secondary/tertiary/error/success/warning) absent from export | TBD by designer; working proposal = M3 tonal derivation from light roles (dark primary ≈ inversePrimary #B7C4FF) |
| D6 | No elevation/shadow tokens in export | dp scale (e-0…e-5) + shadow recipes proposed from Black + opacity.10; TBD by designer |
E. Governance
- When any of the above is resolved, the owning doc(s) must be updated; module docs should not contradict this ledger.
- Any doc that invents a feature absent from source violates policy — reviewers check derivability. Items above are the only sanctioned extrapolations.