Skip to content

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-002 initial 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

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.