SectionList was independently found on the next shipper screen
/shipper-portalCaptured 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
SectionList was independently found on the next shipper screen
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 first customer-facing trucking round followed five staff screens with a mobile-first shipper delivery portal for pickup requests, freight tracking, and delivery history.
Result: 4.5/5, with one of the fastest build-to-validation loops
The screen passed tsc and fit a 375px mobile-first layout. The agent reported:
This was among the most compatible screens I could have been given. The by-use-case catalog correctly led to every main component, and most looked purpose-built for a customer logistics portal. Their JSDoc suggested that they were.
The first core observation: SectionList was validated almost immediately
I had built SectionList in #162. On this next consecutive round, another agent independently found it:
SectionListintroduced no friction. It grouped delivery history by month, used groupmetafor the yen total andfooterfor the subtotal, and placedListCardincontent. The catalog led directly to it, and the answer was correct. No hand-rolling.
This was among the fastest build-to-validation loops in the series. Stringline took 17 rounds from #136 to #153, while SectionList found its natural use within two rounds. As the foundation matures, a new component is reused almost immediately.
The second core observation: TimePicker substituted the wrong meaning
Pickup requested a window such as morning or 12:00 to 14:00. The agent found:
TimePickerexists, and the catalog recommends it for a time band, but it selects an exact hour and minute. A shipper does not request pickup at 14:37; they request morning or 12:00 to 14:00. The catalog substituted a component with the right name and wrong model. I switched to a select. The highest-value addition isTimeBandPicker, a universal pattern in Japanese logistics and commerce.
This was the same substitution trap as RelationshipRow in #160. I corrected the catalog in PR#423 to send time bands to SegmentedControl or RadioGroup and reserve TimePicker for exact times. I recorded TimeBandPicker on issue #422. Nothing new was added under src this round.
The third core observation: RouteStops fit delivery but only within one day
RouteStops directly fit pickup, transit, and delivered states, but the agent found a time-model boundary:
The staged state and
aria-currentmodel fit. ButplannedTimeandactualTimeacceptHH:MMand calculate delay within one day. Consumer tracking crosses dates. I could not fit a pickup on June 28 at 18:40 and delivery on June 29 from 14:00 to 16:00, so I hid times and forced dates into metadata.RouteStopswas designed for a driver's intraday route, not multiday relay transport.
I added a per-stop dateLabel or free-form timestamp request to issue #422. The component belongs in delivery, as #159 confirmed, but its time model remains intraday.
What I took away: shrinking build-to-validation distance measures maturity
The distance had fallen across the series:
Stringline, #136 to #153: 17 rounds.Leaderboard, #155 to #159: four rounds.LimitMonitor, #161 to #163: two rounds across industries.SectionList, #162 to #164: two rounds, effectively the next run.
A shorter distance means missing components appear less often and reuse dominates. Opening customer-facing trucking produced only a first TimeBandPicker case and a multiday extension for RouteStops; existing components covered about 90 percent.
📊 Component scoreboard (20 built)
Two of the six components added this session: LimitMonitor / SectionList. In progress: TimeBandPicker at one of three, Statistic goodWhen at two of three, multiday RouteStops at one of three, and MatchCard at one of three.
📋 Mode progress
- ✈️ Air ✅ / 🚆 Rail ✅ / 🚕 Taxi ✅ / 🚌 Bus ✅
- 🚚 Trucking: five staff + one customer-facing screen (shipper portal), with customer-facing coverage beginning
Next up: build log #165
- Continue customer-facing trucking with recipient parcel tracking and redelivery, or shipper billing and documents, moving toward symmetry.
The run
- gunjo.jp / SectionList / RouteStops / RadioCard / AmountBreakdown / npm
@gunjo/ui/ GitHub / previous rounds #1 through #163 - GunjoUI by UIXHERO
SectionList was independently found on the next shipper screen. The shrinking distance from build to validation is a final measure of foundation maturity.
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.