Round #135Score 4/5Transport: air

The gap that did not appear told me as much as the ones that did

Route: /network-planning
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

The gap that did not appear told me as much as the ones that did

⁠Build log series⁠: Each round, an AI with no prior Gunjo (@gunjo/ui) experience builds a real screen from the public npm package and the gunjo.jp docs alone. ⁠This was the fifth staff-facing air screen⁠, a ⁠network, timetable, and slot planning console⁠ covering routes and frequencies, arrival and departure slots, and aircraft rotation. It brings staff-facing air to five screens, fully symmetrical with rail.

Result: 4/5, with the backbone nearly complete

The screen passed tsc at desktop density. The agent reported:

⁠As a console of data tables and lists of items awaiting action, this is close to finished.⁠ DataTable for routes and frequencies, with Meter and a break-even target turning load factor red; ActionQueue for items requiring action, whose docstring names disruption and cancellation outright; StatGroup; and Meter, all of which have been through real operations and dispatch work. The accessibility basics are better than most teams write by hand.

The core observation: a gap that did not appear confirmed a prediction

In , rail timetable planning, the agent said a stringline chart is needed not only for rail but for ⁠anything that moves along a route over time⁠ (bus Marey diagrams, conveyors, shipping) and that Gantt cannot produce one, which pointed to ⁠a third Stringline case on a staff-facing bus screen.⁠

This round was also a chance to test the negative side of that prediction: ⁠would air network planning call for a stringline chart?⁠

The agent: "⁠No stringline was needed, and that gap is specific to rail.⁠ Airline slots and rotations are resources against time, rows on a clock, which is the shape Gantt and ScheduleGrid already target. ⁠There is no fixed-track time-against-distance dimension here, so I never once reached for a stringline. Its absence is correct, not an oversight.⁠"

⁠The measurement agrees: zero hand-rolled stringline charts⁠, against one each in and on rail. So Stringline is a gap specific to things moving along a route, and it does not arise structurally in air network planning.⁠ The prediction that the third Stringline case comes from bus ⁠was confirmed by the gap failing to appear.⁠ A map of missing components is only accurate once the places they do not appear are settled too.

The other core observation: intraday resolution on Gantt landed twice in one screen

The agent: "⁠Aircraft rotation⁠: Gantt places bars correctly to the minute, but the header stays on dates, with no 06:00, 12:00, or 18:00 ticks. It is the only component that needs a resolution or tickInterval prop. ⁠Arrival and departure slots⁠: ScheduleGrid is a discrete matrix with no time axis and no idea of capacity, so I built the sixteen-hour columns myself and computed the congestion."

Two requests converged on one component: ⁠a resolution="hour" mode on Gantt, or a ResourceTimeGrid with resources against a time axis and a capacity tone per cell.⁠ I reconfirmed issue #386, where rail vehicle operations in and rotations and slots here make a clear second and third case. ⁠Rotations, vehicle operations, and slots are all intraday, so this gap is one step from being built.⁠ I noted alongside it that misusing PageHeader on desktop has now happened three times, where the mobile app bar gets used on desktop and the agent then falls back to a hand-rolled <header>.

⁠No component went into src this round.⁠ The 4/5 reconfirmed the intraday Gantt mode and confirmed the absence of Stringline.

What I took away: settling where a gap does not appear is part of drawing the map

The value of depth is not only in finding gaps. ⁠This round needed no new component at all⁠, and still settled two things:

  • Stringline does not appear in air⁠, which confirms it belongs to rail and bus, the fixed-route modes, and backs the prediction that its third case comes from bus.
  • ⁠The intraday Gantt mode lands in air too⁠, the same gap as rail in , which makes it a cross-mode piece that is one step from being built.

A gap gets built once three cases accumulate, and ⁠being able to map in advance which modes will and will not produce those cases⁠ makes the priority and the timing of a build readable. ⁠A round that added no component still raised the resolution of the map.⁠

📊 Component scoreboard (⁠11 built⁠)

AmountBreakdown / ActionQueue / ListCard / Gantt-segments / SeatMap / LoyaltySummaryCard / RadioCard / FilterChips / PageHeader / Itinerary / TicketStub In progress: ⁠an intraday Gantt mode or ResourceTimeGrid, one step from being built⁠, ⁠StatusBoard at two of three⁠, ⁠Stringline at two of three, next from bus⁠, ExpiryBadge, and CheckboxCard.

📋 Staff-facing and passenger-facing progress: rail and air are both fully symmetrical at five staff and six passenger screens

  • ✈️ Air: passenger, six screens ✅ / ⁠staff, five screens (operations control, MRO, crew, ground handling, network planning)⁠
  • 🚆 Rail: passenger, six screens ✅ / staff, five screens (operations, crew, vehicles, station operations, timetable planning) ✅
  • Both modes are now complete and symmetrical across the staff and passenger sides.

Next up: build log

  • ⁠The new mode: bus.⁠ Staff-facing operations control, where ⁠a third Stringline case and a build is the main hope⁠ (a stringline or Marey chart, with the intraday Gantt mode likely to land at the same time), or passenger-facing routes, arrivals, and fares. The question is how the rail and air foundation performs on a third mode.

The run

Air network planning never reached for a stringline chart. Settling where a gap does not appear is what makes the rest of the map trustworthy, and the next stop is bus, where three gaps could move at once.

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指示書パック」、先行登録を受付中です。