NS0-003 Booking UI Reconciliation Manifest¶
- Status:
INITIAL UX RECONCILED WITH CURRENT SOURCE / NS0-004 INPUT - Task:
NS0-003 - Current-source revision:
36655f639ee34e9bb371eb2c1ad893d0da2d09d4 - UI authority:
NS0-002initial direction - Final page-contract authority:
NS0-004
1. Initial Direction That Remains Valid¶
Legacy Office lists/forms
= compact and high density
Product Workspace
= guided Process stages + clear Next Action
CTC
= H / Cobalt
MK
= K / Indigo
H/K differences
= semantic color tokens only
App Shell
= semantic workspace tabs with duplicate record reuse
The current compact Booking lists support the requirement to inspect many records at once.
2. Current Surface Preservation¶
| Current surface | Preserve during coexistence | Target addition |
|---|---|---|
CTC booking-list |
route, menu identity, compact table, open/create/edit path | option to open Booking Workspace |
MK mk-booking-list |
route, menu identity, compact table, filters, deep links | option to open Booking Workspace |
| Booking popup/editor | open/save/cancel/close, exact readback, parent refresh, accepted optional data | standardized field system and related-work grouping |
| Booking Confirmation/Packing List | direct current paths until replaced | document state and explicit generation commands |
| Empty planning | current path until Process review | separate planning workspace/read model |
3. Corrections Required Before Final UI Approval¶
3.1 Do not show an invented Booking status¶
The current Booking record has no explicit lifecycle status. Earlier prototype labels such as CONFIRMED must remain placeholder-only or be removed until a target state contract is approved.
Use independent facts instead:
Source link
Schedule completeness
Equipment intent
Linked containers
Documents
Invoice indicator
Provider effects
Record active/retired
3.2 Separate Booking from related work¶
The current editor exposes many actions. The Product Workspace may surface them, but must identify their owners:
Create Empty -> Equipment/Transportation command
Manage Photos -> shared media capability
Packing List -> Documents/read model + bounded correction commands
Continue to Outbound -> Commercial/Fulfillment navigation
EIR download -> File/read model effect
Clone Booking -> Booking create command
An action appearing in the Booking Workspace does not transfer its mutation authority to Booking.
3.3 Replace raw client composition¶
The current browser contract chooses fields from numeric client identity. Final React pages must consume:
EffectiveSurfaceContract
+ typed policy
+ persisted record facts
The target must not implement if (clientId === 2) or isMK UI authority.
3.4 Preserve current validation, but do not freeze it as target policy¶
Current source requires Booking number, shipping line, shipper and Booking type. The final page contract may retain or modify this only after Process approval.
3.5 Temporal fields¶
Current source stores:
ERD / SI_CUTOFF / CUTOFF = datetime
ETD / ETA = date
The target uses the approved shared TemporalField visual family. Date-only precision remains valid only for facts that are approved as date-only.
3.6 Sales Order/source linkage¶
Current MK composition exposes Sales Order and auto-defaults related fields. Final UI must:
- identify the source record explicitly;
- show whether defaults came from the source or were overridden;
- make link/unlink/correction behavior explicit;
- not silently allocate inventory, create Fulfillment or dispatch Shipment.
3.7 Save and recovery¶
Keep the current useful behavior:
Saving
-> server ID
-> exact Booking readback
-> Saved
no response
-> Unknown result
-> search/read authoritative Booking
-> retry only when missing
List refresh failure is separate from Booking save failure.
4. Booking Workspace Candidate Sections¶
These sections are allowed for NS0-004, subject to approved facts:
Booking identity
Source / commercial reference
Carrier and schedule
Terminals and ports
Equipment intent
Independent related states
Related containers
Documents and files
Timeline / audit
Exceptions
Next Action
Related commands
The Workspace must not add explanatory subtext by default.
5. Compatibility List Columns¶
Current columns differ by profile and may remain profile-specific read models. Final acceptance requires:
- compact row height and sticky/high-contrast headers;
- current search/date-range behavior;
- no loss of material CTC/MK fields;
- keyboard-accessible open/create actions;
- route/deep-link preservation;
- no client-specific backend fork.
6. Workspace Tabs¶
Current source does not implement the new semantic workspace-tab model. The target direction remains valid, but NS0-003/004 must decide:
maximum tabs
restore duration
dirty close behavior
stale read refresh
tenant/role revalidation
cross-window coordination
Tab state never implies Booking state.
7. Autocomplete And Forms¶
The final Booking page must inherit the approved catalog order and control behavior:
Text & Number
Autocomplete
Schedule
Selection
Notes & Files
Field State Matrix
Autocomplete remains visible and includes exact-match, creatable, dependent and multiselect patterns where the Process requires them.
8. Media¶
Booking and linked-container pages use the shared file/photo capabilities.
generic files
= custom FileAttachmentField
photos
= KJPhoto/PhotoAttachmentTool
+ authoritative Sequence
+ view sorts
+ explicit Save order
+ group-scoped keyboard lightbox
The current Booking editor still opens one legacy PHOTO.create_fieldset path. Coexistence adapters may wrap it, but the target page must not duplicate media logic.
9. Final UI Blockers¶
NS0-004 cannot finalize the Booking page until NS0-003 resolves:
- Booking lifecycle and state labels;
- create trigger and source relationship;
- field requiredness/default provenance;
- role/action authorization;
- cancel/retire/correct/reopen;
- document/flag ownership;
- downstream Next Action conditions;
- exact CTC/MK positive-path parity.
10. Evidence Boundary¶
initial UX direction = USER APPROVED
current source reconciliation = PASS
final Booking page contract = BLOCKED
Runtime/browser verification = NOT_RUN
mobile = DEFERRED
---¶
Source:
new-system/docs/reconstruction/NS0-003_BOOKING_UI_RECONCILIATION_MANIFEST.md— ctc repository · This page is an English translation of the source document. Identifiers, file paths and code symbols are unchanged.