Round #144Score 5/5Transport: taxi

A taxi fleet screen earned the series' first perfect score

Route: /taxi-maintenance
Desktop preview
Mobile preview

Captured 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 taxi fleet screen earned the series' first perfect score

⁠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 fourth staff-facing taxi round covered a ⁠fleet management screen⁠ for vehicles, inspection and insurance expiry, mileage, maintenance planning, and service records.

Result: 5/5, the first perfect score in the series

The desktop-density screen passed its type check on the first attempt. The agent reported:

⁠The library felt prepared for this exact screen.⁠ It produced a practical, dense operations console with almost no hand-rolling. ⁠All six needs were already components: a fleet table, a consumption-against-limit meter, a progress bar, a list of items requiring action, a signed record, and a date-with-expiry display.⁠

The first perfect score arrived in round 144. A central administrative screen for maintenance, compliance, and asset management needed almost nothing added.

The highlight: yesterday's component found another use on its own

I built ExpiryBadge in for ⁠crew qualification deadlines⁠. Here the agent independently found it for ⁠vehicle inspections and insurance⁠:

ExpiryBadge was built for this. Its description even names inspections, insurance, and maintenance. It worked in table cells, detail cards, and counts without extra code.⁠

A component built for crew qualifications carried directly into vehicle inspections and insurance. The shared pattern is ⁠a date and a deadline⁠, whether the subject is a person, vehicle, policy, or contract. StatusBoard, built in , also returned for the fleet's operational state. Two new components were independently reused in other work on the same screen.

What I took away: components built around common patterns travel well

A date and a deadline mean the same thing for crews, vehicles, insurance, and contracts. Components designed around that ⁠shared pattern⁠, rather than around one industry, are naturally reusable elsewhere. This screen made the payoff visible twice.

What it flagged: a desktop page bar was missing for the fourth time

⁠The component I wanted most was a light header bar at the top of a desktop screen.⁠ PageHeader is mobile-specific, while Header is too heavy because it belongs to site-wide navigation. Every console hand-rolls its page title.

After the same finding in , , and , this was the ⁠fourth case⁠. I recorded DesktopPageHeader on issue #397.

⁠No new component was added this round.⁠ The perfect score came with a maintenance screen assembled without friction, two cases of reuse in new work, and one desktop-header gap recorded.

Components added to Gunjo so far (14)

AmountBreakdown / ActionQueue / ListCard / Gantt / SeatMap / LoyaltySummaryCard / RadioCard / FilterChips / PageHeader / Itinerary / TicketStub / Stringline / StatusBoard / ExpiryBadge

Next up: build log

  • Close the taxi run with a ⁠passenger ride-hailing app⁠ for requesting a car, arrival estimates, fare estimates, the ride, and payment.

The run

The series earned its first perfect score. Components built around the shared date-and-deadline pattern carried from qualifications into inspections without being prompted.

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.

業界別「AI指示書パック」、先行登録を受付中です。