Figma ↔ FE ↔ Function Gap Matrix
Baseline 2026-08-06. Cột Function của CON/PAR/DRV đã được P9 (26/26 IMP, 2026-08-15) supersede — xem 19 + DOCS-AUDIT-2026-08-17. File này giữ inventory gap lúc audit Figma.
| Field |
Value |
| Date |
2026-08-06 |
| WP |
WP-FIGMA-FE-AUDIT-01 |
| Figma |
w0SRHX3cbiWLFHjzVC0pTE — BLOCKED_EXTERNAL |
| Design mode |
IMPLEMENTED_FROM_LOCAL_DESIGN · FIGMA_EXACT_SYNC: DEFERRED |
| Surface focus |
CON (mobile/) |
| Status vocabulary |
MATCHED · VISUAL_PARTIAL · FUNCTION_PARTIAL · MISSING_SCREEN · MISSING_STATE · MISSING_NAVIGATION · MISSING_API_BINDING · BLOCKED_DESIGN_ACCESS · OWNER_REQUIRED · PASS · FAIL |
Figma node IDs: not invented. Local JPG + existing SCR matrices are the active references.
Legend (Final status column)
Use only the vocabulary above. Visual vs function are separate.
A. Design access / system
| Domain |
WP |
SCR-ID |
Figma |
Local JPG/PDF |
Route |
Screen / path |
API / WS |
Visual |
Function |
Missing |
Final |
| TOOLING |
WP-FIGMA-FE-AUDIT-01 |
— |
file root 0:1 denied |
39 JPG |
— |
audit docs |
— |
BLOCKED_DESIGN_ACCESS |
PASS (audit) |
MCP edit |
BLOCKED_DESIGN_ACCESS |
| DESIGN |
WP-FIGMA-TOKENS-01 |
— |
variables unread |
tokens.ts + JPG |
— |
theme/tokens.ts |
— |
VISUAL_PARTIAL |
PASS |
typography weights, elevations, 69 hex files |
VISUAL_PARTIAL |
B. App shell & shared UI
| Domain |
WP |
SCR-ID |
Local JPG |
Route / nav |
Path |
API |
Visual |
Function |
Missing |
Final |
| D-AUTH |
WP-FIGMA-AUTH-SHELL-01 |
SCR-AUTH-* |
bfb028… |
Auth stack |
features/auth/* |
/auth/email/otp/* |
VISUAL_PASS_STATIC |
PASS (email OTP) |
Phone OTP obsolete · Google OWNER · Device QA deferred |
IMP (2026-08-06) |
| D-AUTH |
WP-AUTH-GOOGLE-LIVE-01 |
SCR-AUTH-GOOGLE |
bfb028… |
Login |
GoogleLoginBlock |
/auth/google |
MATCHED (guard UI) |
OWNER_REQUIRED |
Real Web Client ID |
OWNER_REQUIRED |
| System |
WP-FIGMA-SYS-STATES-01 |
SCR-SYS-* |
868c944… |
SystemStates / Terms / Privacy |
shared/ui/StateBlocks + ListStateGate + useOnline |
cms terms/privacy |
VISUAL_PASS_STATIC |
FUNCTION_PASS |
Lists wire Empty/Offline/Error · SessionExpired onHome |
— |
| NAV |
WP-FIGMA-HOME-NAV-01 |
SCR-HOME-SERVICES |
029311… 61a37… |
ServiceStub |
ServiceStubScreen |
— |
VISUAL_PARTIAL |
FUNCTION_PARTIAL |
Some tiles still stub |
FUNCTION_PARTIAL |
C. Home & Places
| Domain |
WP |
SCR-ID |
Local JPG |
Route |
Path |
API |
Visual |
Function |
Missing |
Final |
| D-PLACE |
WP-FIGMA-HOME-01 |
SCR-HOME-MAP |
029311… 47da… |
HomeMap |
HomeMapScreen |
places nearby / map |
VISUAL_PASS_STATIC |
PASS |
Device QA deferred; Figma deferred |
IMP (2026-08-06) |
| D-PLACE |
WP-FIGMA-PLACE-01 |
SCR-PLACE-* |
029311… |
PlacesNearby · Search · Detail · WelifeMap |
features/places/* |
/places/* |
VISUAL_PARTIAL |
PASS |
Filter/empty polish |
VISUAL_PARTIAL |
| D-FAV |
— |
SCR-FAV |
account |
Favorites |
favorites |
/favorites |
VISUAL_PARTIAL |
PASS |
— |
VISUAL_PARTIAL |
D. Routing
| Domain |
WP |
SCR-ID |
Local JPG |
Route |
Path |
API |
Visual |
Function |
Missing |
Final |
| D-ROUTE |
WP-FE-ROUTE-05 (done JPG) |
SCR-ROUTE-* |
b6ccd… |
RoutingDirections · Steps · Active |
features/routing/* |
/routing/directions |
VISUAL_PARTIAL |
PASS (Haversine fallback possible) |
Figma pixel sync deferred; provider live PARTIAL |
VISUAL_PARTIAL |
| D-ROUTE |
WP-ROUTING-PROVIDER-01 |
— |
— |
— |
API |
OSRM/Mapbox |
N/A |
FUNCTION_PARTIAL |
External providers |
FUNCTION_PARTIAL |
E. Wallet / payments
| Domain |
WP |
SCR-ID |
Local JPG |
Route |
Path |
API |
Visual |
Function |
Missing |
Final |
| D-WALLET |
WP-FIGMA-FN-WALLET-01 |
SCR-WALLET-* |
6183… 1eabc… |
Wallet* |
features/wallet/* |
/wallet/* |
VISUAL_PASS |
PASS (transfer smoke) |
PCI last4 only · OWNER Pay live |
IMP (2026-08-15) |
| D-PAY |
WP-PAY-LIVE-01 |
SCR-PAY-* |
— |
checkout flows |
payments |
MoMo/VNPay |
— |
OWNER_REQUIRED |
Live credentials |
OWNER_REQUIRED |
F. Ride
| Domain |
WP |
SCR-ID |
Local JPG |
Route |
Path |
API / WS |
Visual |
Function |
Missing |
Final |
| D-RIDES |
WP-FIGMA-RIDE-01 / WP-FIGMA-RIDE-SYNC-01 |
SCR-RIDE-* |
090d… · Figma 28:3207 |
RideHome · Quote · Matching · Detail · Rate |
features/rides/* |
/rides/* · WS /rides |
VISUAL_PASS_STATIC (quote) |
PASS (API smoke) |
Matching/Detail polish |
IMP quote (2026-08-13) |
G. F&B / Grocery
| Domain |
WP |
SCR-ID |
Local JPG |
Route |
Path |
API |
Visual |
Function |
Missing |
Final |
| D-FNB |
WP-FIGMA-FNB-01 / WP-FIGMA-FNB-SYNC-01 |
SCR-FNB-* |
44ba… 0beb… · Figma 25:761 |
Merchant* · Cart · Order* |
features/fnb/* |
merchants/cart/orders |
VISUAL_PASS_STATIC (list) |
PASS |
Menu/cart polish |
IMP list (2026-08-13) |
| D-GROCERY |
WP-FIGMA-GROCERY-01 / WP-FIGMA-MARKET-SYNC-01 |
SCR-GROCERY-* |
160bc… · Figma 25:1550 |
Grocery* |
features/grocery/* |
merchants/orders |
VISUAL_PASS_STATIC (home) |
PASS |
Store/checkout polish |
IMP home (2026-08-13) |
H. Vertical services
| Domain |
WP |
SCR-ID |
Local JPG |
Route |
Path |
API |
Visual |
Function |
Missing |
Final |
| D-PARK |
WP-FIGMA-PARK-01 / WP-FIGMA-PARK-SYNC-01 |
SCR-PARK-* |
25af… · Figma 25:1037 |
Parking* |
parking |
/parking/* |
VISUAL_PASS_STATIC (nearby) |
PASS |
Lot detail polish |
IMP nearby (2026-08-13) |
| D-FUEL |
WP-FIGMA-FUEL-01 / WP-FIGMA-FUEL-SYNC-01 |
SCR-FUEL-* |
2905… · Figma 25:899 |
Fuel* |
fuel |
/fuel/* |
VISUAL_PASS_STATIC (nearby) |
PASS |
Detail polish |
IMP nearby (2026-08-13) |
| D-ATM |
WP-FIGMA-ATM-01 / WP-FIGMA-ATM-SYNC-01 |
SCR-ATM-* |
6c9b… · Figma 25:1232 |
Atm* |
atm |
/atms/* |
VISUAL_PASS_STATIC (nearby) |
PASS |
Detail polish |
IMP nearby (2026-08-13) |
| D-HOTEL |
WP-FIGMA-HOTEL-01 / WP-FIGMA-HOTEL-SYNC-01 |
SCR-HOTEL-* |
934d… · Figma 25:1379 |
Hotel* |
hotels |
/hotels/* |
VISUAL_PASS_STATIC (list) |
PASS |
Detail polish |
IMP list (2026-08-13) |
| D-RENTAL |
WP-FIGMA-RENT-01 / WP-FIGMA-RENT-SYNC-01 |
SCR-RENT-* |
0ea6… · Figma 25:1686 |
Rental* |
rentals |
/rentals/* |
VISUAL_PASS_STATIC (list) |
PASS |
Detail polish |
IMP list (2026-08-13) |
| D-PHARM |
WP-FIGMA-PHARM-01 / WP-FIGMA-PHARM-SYNC-01 |
SCR-PHARM-* |
24c3… 51ff… · node 25:2014 (JPG fallback) |
Pharmacy* |
pharmacy |
/pharmacy/* |
VISUAL_PASS_STATIC (list) |
PASS |
Re-pixel when MCP OK |
IMP list (2026-08-13) |
| D-MED |
WP-FIGMA-MED-01 / WP-FIGMA-MED-SYNC-01 |
SCR-MED-* |
f16b… · Figma 25:1858 |
Medical* |
medical |
/medical/* |
VISUAL_PASS_STATIC (list) |
PASS |
Detail polish |
IMP list (2026-08-13) |
| D-SCHOOL |
WP-FIGMA-SCHOOL-01 / WP-FIGMA-SCHOOL-SYNC-01 |
SCR-SCHOOL-* |
706f… · Figma 26:2958 |
School* |
schools |
/schools/* |
VISUAL_PASS_STATIC (list) |
PASS |
Detail polish |
IMP list (2026-08-13) |
| D-CHARGING |
WP-FIGMA-CHARGE-01 |
SCR-CHARGE-* |
AllServices |
Charging* |
charging |
/charging/* |
VISUAL_PARTIAL |
PASS |
Dedicated JPG weak |
VISUAL_PARTIAL |
| D-TRANSIT |
WP-FIGMA-TRANSIT-01 |
SCR-TRANSIT-* |
AllServices |
Transit* |
transit |
/transit/* |
VISUAL_PARTIAL |
PASS |
Hardcoded hex in screens |
VISUAL_PARTIAL |
| D-HOME |
WP-FIGMA-HOMESVC-01 |
SCR-HOME-SVC-* |
AllServices |
HomeServices* |
homeservices |
/homeservices/* |
VISUAL_PARTIAL |
PASS |
— |
VISUAL_PARTIAL |
| D-DELIVERY |
WP-FIGMA-DELIVERY-01 |
SCR-DELIVERY-* |
AllServices |
Delivery* |
delivery |
/delivery/* |
VISUAL_PARTIAL |
PASS |
— |
VISUAL_PARTIAL |
| D-QR |
WP-FIGMA-QR-01 |
SCR-QR-* |
AllServices |
Qr* |
qr |
/qr/* |
VISUAL_PARTIAL |
PASS |
— |
VISUAL_PARTIAL |
| D-BILLS |
WP-FIGMA-BILLS-01 |
SCR-BILLS-* |
AllServices |
Bills* |
bills |
/bills/* |
VISUAL_PARTIAL |
PASS |
— |
VISUAL_PARTIAL |
I. Social / Chat / Assistant
| Domain |
WP |
SCR-ID |
Local JPG |
Route |
Path |
API / WS |
Visual |
Function |
Missing |
Final |
| D-SOCIAL |
WP-FIGMA-SOC-01 |
SCR-SOC-* |
9a111… |
Reels/Social stacks |
social |
/social/* |
PIXEL (Reels) |
PASS |
Social feed grid still JPG-partial |
PIXEL (Reels) |
| D-CHAT |
WP-CHAT-AUTH-E2E-01 |
SCR-CHAT-* |
BOARD-SHR-CHAT |
Chat* |
chat |
Socket /chat |
VISUAL_PARTIAL |
FUNCTION_PARTIAL |
JWT realtime E2E NOT CONFIRMED |
FUNCTION_PARTIAL |
| D-ASSIST |
WP-FIGMA-ASSIST-01 |
SCR-ASSIST |
bfb028… |
Assistant |
assistant |
/assistant/chat |
VISUAL_PARTIAL |
PASS |
— |
VISUAL_PARTIAL |
| D-SUPPORT |
WP-FIGMA-SUP-01 |
SCR-SUP-* |
6183… |
Support* |
support |
/support/* |
VISUAL_PARTIAL |
PASS |
— |
VISUAL_PARTIAL |
J. Gap summary (CON)
| Category |
Estimate |
Missing screens (no *Screen) for planned boards |
Low for CON core; higher for PAR/DRV boards (out of CON Figma scope) |
| Visual partial (JPG-based, Figma unverified) |
Most CON screens |
| Function partial |
ServiceStub tiles · Chat realtime · Routing providers · Google live · Pay live |
| Missing states (Empty/Offline/Permission not universal) |
System + many lists |
| Missing navigation |
ServiceStub leftovers · deep-link matrix |
| Missing API binding |
Not the main CON gap (API 354 IMP); binding quality varies |
| Orphan screens |
Needs scripted sweep (follow-up) |
| BLOCKED_DESIGN_ACCESS |
Figma MCP |
| OWNER_REQUIRED |
Google · live Pay |
K. Explicit non-claims
PIXEL MATCH PASS: NO
FIGMA_VERIFIED: NO
DEVICE_VERIFIED: NO
FUNCTIONAL API (backend): PASS (prior audit)
LOCAL DESIGN IMPLEMENTATION: PARTIAL → journey WPs