The next delivery screen proved that a one-line catalog fix worked
/parcel-trackingCaptured at a 375px viewport. Long pages scroll inside the frame.
The screenshots stay in Japanese. Every round is a real screen for a real Japanese industry, so an English re-render would no longer be the screen the agent actually produced.
Write-up
The next delivery screen proved that a one-line catalog fix worked
Build log series: I give an AI that has never seen Gunjo (
@gunjo/ui) only the public npm package and the gunjo.jp docs, then ask it to build a real screen. This second customer-facing trucking round followed the shipper portal with a mobile parcel tracking and redelivery flow for recipients: tracking, redelivery requests, delivery windows and methods, and notifications.
Result: 4/5, and the previous catalog correction was validated immediately
The screen passed tsc and fit a 375px mobile-first layout. The agent reported:
This was a genuinely strong mobile library for recipients. Nearly every needed component existed, mobile-first behavior came by default, and the by-use-case catalog made every decision correctly. The one-point deduction came from missing multiday tracking.
The first core observation: the TimePicker correction worked one screen later
In #164 I found that the catalog substituted exact-time TimePicker for delivery windows. PR#423 corrected windows to SegmentedControl or RadioGroup and clarified that TimePicker selects an exact time. Here the agent said:
Delivery windows needed no hand-rolling or confusion. The catalog explicitly said that delivery and pickup windows use
SegmentedControlorRadioGroup, notTimePicker. I usedSegmentedControl. A new adopter might grab the existingTimePicker, but the catalog actively steered me away from that trap.
The agent wrote zero TimePicker workaround code. A substitution trap found in #164 was closed and the next adopter landed on the right answer. Catalog fixes have the same build-to-validation loop as components: even a cheap guidance edit only proves itself when a later agent avoids the trap.
TimeBandPicker stayed at one of three. Because corrected guidance removed the friction, there was no reason to rush a dedicated component.
The second core observation: multiday RouteStops reached two of three
RouteStops fit received, in transit, out for delivery, and delivered states, but parcels cross dates:
The catalog correctly recommends
RouteStops, but its per-stage time model only acceptsplannedTimeandactualTimeasHH:MM. Parcel tracking runs from receipt on June 27 to delivery on June 29. The component cannot represent the dates, anddelayMinutesassumes one day, so I forced the date into metadata. It needs a date, timestamp, ordateLabelper stop and optional grouping by day.
This was the second case on issue #422, after the shipper portal in #164. A third multiday tracking screen would trigger a free-form timestamp while preserving the existing intraday HH:MM path.
What I took away: guidance fixes also need later validation
The series now has two validation layers:
- Build a component, then watch a later agent find it, as with
SectionListfrom #162 to #164. - Fix the catalog, then watch a later agent avoid the old trap, as with exact time versus time window from PR#423 to this screen.
The second is cheap to implement but still measurable only through later behavior. A mature foundation runs both loops: components close missing behavior, guidance closes traps, and later screens verify each.
What it flagged
- 🟡 Multiday timestamps on
RouteStops, now two of three. - ✅ The
TimePickersubstitution fix worked, soTimeBandPickerstayed at one of three. - ✅
RadioCardfor delivery method,SegmentedControlfor the window,DatePicker,BottomActionBar, andSwitchall fit directly.RouteStopsalso had the right default delivery vocabulary.
Nothing new was added under src this round. The 4/5 validated the prior guidance change and moved multiday tracking to two of three.
📊 Component scoreboard (20 built)
Two of the six components added this session: LimitMonitor / SectionList. In progress: multiday RouteStops at two of three, Statistic goodWhen at two of three, TimeBandPicker at one of three, and MatchCard at one of three.
📋 Mode progress
- ✈️ Air ✅ / 🚆 Rail ✅ / 🚕 Taxi ✅ / 🚌 Bus ✅
- 🚚 Trucking: five staff + two customer-facing screens (shipper portal and parcel tracking)
Next up: build log #166
- Continue customer-facing trucking with shipper billing and documents, or personal delivery-location settings. Another multiday tracking screen could trigger the
RouteStopsextension.
The run
- gunjo.jp / RouteStops / SegmentedControl / RadioCard / npm
@gunjo/ui/ GitHub / previous rounds #1 through #164 - GunjoUI by UIXHERO
The previous catalog correction proved itself on the next screen. Guidance changes have their own build-to-validation loop, and this one reduced the TimePicker workaround count to zero.
This series is co-created with AI (Claude and Codex). A human designs the experiments, makes the calls, and fact-checks before publishing; the AI does the hands-on work and drafting.
Components from @gunjo/ui
The components this screen's source imports directly.
The code the agent actually wrote
Click a file to expand its source.