A catalog correction proved itself on the very next freight screen
/truck-matchingCaptured 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
A catalog correction proved itself on the very next freight 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 second staff-facing trucking round covered load and empty-truck matching: candidates, fit scores, agreements, and freight-rate negotiation. It introduced the two-sided marketplace pattern, unseen in the earlier modes.
Result: 4/5. A catalog correction worked on the next screen
The dense desktop screen passed tsc. The agent reported:
A real operations console came together with almost no fighting. The by-use-case catalog correctly guided every decision around lists, queues, KPIs, and rankings. The one-point deduction came from the core of a two-sided marketplace: matching and pairing itself had no home.
The first core observation: the fix from #418 worked one screen later
In #159 I found that the catalog hid ActionDataTable by directing job lists to plain DataTable, and corrected it in PR#418. Here the agent found:
Loads belong in
ActionDataTable.enableSelection,selectedIds,onSelectionChange,bulkActionsfor bulk offers and CSV, androwActionsmodel selecting freight and making an offer. The catalog sent me directly there, so this was not an accidental discovery. It was one of the library's strongest moments.
A catalog correction in #159 was validated on the next screen. This mirrored the build-and-validate loop for components, applied to guidance as well. Leaderboard was also independently found for fit ranking.
The second core observation: pairing had no entity-neutral home
The only hand-rolled piece was a pairing detail with a load on the left, an empty truck on the right, and a fit score in the middle:
There was no
MatchCardor two-column pairing composition. The library lacked an entity-neutral A-to-B match. The catalog recommendsRelationshipRowfor two-party relationships, but that component models person to person throughPersonCell, with avatar, name, and role. Putting two freight cards into it abusesnameandsecondaryand gives a pallet an avatar circle. It is the wrong tool.
I opened issue #419 for MatchCard or PairingPanel, with a left entity, right entity, connector or score, and a factor breakdown, without assuming people. It recurs in freight and truck matching, dispatch, candidates and jobs, and buyers and sellers. This was another catalog trap: two-sided relationships pointed to a people-only component.
What I took away: the catalog has two kinds of trap
With the foundation mature, catalog failures had become the dominant result. This screen separated two kinds:
- Hiding, as in #159. The correct component exists, but the catalog omits it and points elsewhere. Adding guidance is a cheap correction.
- Substitution, as here. The catalog actively recommends a component whose model is wrong. Adopters trust it until a pallet receives an avatar. Correcting this requires both new guidance and often a real component, making it more expensive and dangerous.
A hidden answer forces an adopter to hand-roll the UI once they realize it is absent. A substituted answer first wastes time on a component that appears to exist. Mature cold testing now distinguishes cheap catalog additions from expensive component-and-guidance repairs.
Nothing new was added under src this round. The 4/5 validated the prior catalog fix and logged the higher-cost MatchCard gap.
📊 Component scoreboard (18 built)
Gantt with intraday resolution / Leaderboard / SegmentedControl / LineChip, plus earlier components In progress: MatchCard or PairingPanel at one of three, SectionList at two of three, LimitMonitor at two of three, and ValidityTimer at one of three.
📋 Mode progress
- ✈️ Air ✅ / 🚆 Rail ✅ / 🚕 Taxi ✅ / 🚌 Bus ✅
- 🚚 Trucking: two staff screens (dispatch and load matching), with staff depth growing
Next up: build log #161
- Continue staff-facing trucking with freight rates and billing, fleet maintenance and digital tachographs, or transport cost, before moving to shipper pickup requests and tracking.
The run
- gunjo.jp / ActionDataTable / Leaderboard / Meter / npm
@gunjo/ui/ GitHub / previous rounds #1 through #159 - GunjoUI by UIXHERO
A catalog correction proved itself on the next screen. Hidden answers and substituted answers are different traps, and substitution is the more dangerous one.
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.