Medical consent components ran a construction safety briefing
/safety-kyCaptured 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
Medical consent components ran a construction safety briefing
Build log series: I give an AI that has never seen my design system
@gunjo/uionly the public npm package and the gunjo.jp docs, and have it build real screens. The third construction brief was a hazard-prediction sheet for a morning construction-site briefing. The screen records the hazards and precautions for each task that day, attendance and acknowledgment from participants, finalization of the record, and approval from the person in charge.
Result: 4/5. Confirmation and signature components crossed into safety management
The briefing board passes tsc and works on mobile as well as desktop.
Components added to Gunjo for confirmation and signatures in health care and accounting transferred directly to safety management on a construction site.
-
SafetyBanner(highest-priority instruction) blocks progress until its acknowledgment is confirmed. It was originally designed for health care warnings about allergies and contraindications, but it handled the morning briefing instruction "The entire crane swing radius is off-limits. The record cannot be finalized until this is confirmed" without modification. -
SignedRecord(finalized, then append-only) locks the record once the foreman finalizes it and permits only additions afterward. It covered the safety requirement that finalized records become append-only. -
CoSign(two-person confirmation) was built for double-checking medication administration and accounting approvals, but it supported the flow in which "a general contractor supervisor approves the record as a second person, separate from the foreman" out of the box. It also includes a guard that prevents the same person from approving twice. -
DataTable(roster) served directly as the attendance roster, including its ability to switch from a table on desktop to cards on mobile.
The agent built a screen that looks safety-specific out of health care and accounting components.
What was missing: hazard sheet rows, roster checks, and handwritten signatures
Three areas remained uncovered, and each follows a pattern specific to construction safety management.
- There is no hazard sheet row for laying out hazards and precautions. Each task needed one unit combining multiple predicted hazards, multiple precautions, risk level, and implementation checks, but there is no such component. The existing checklist components use one check per row, which does not fit multiple hazards and precautions, so the agent hand-rolled about 75 lines. The existing
CheckListcomponent handled the implementation-confirmation rows with no changes. - There is no roster with checks for multiple attributes. The table itself already existed for a roster that checks each worker's health, breathalyzer result, protective equipment, and identity, but the agent hand-rolled about 130 lines for the check layout and mobile cards.
- There is no component for collecting a handwritten signature. There is no component that lets a person sign with a finger or stylus. The agent substituted a checkbox. This is a clear gap because safety and administrative records sometimes require a drawn signature in the field.
That hand-rolled code was just over 200 lines out of roughly 870 for the whole screen, leaving most of the implementation to existing components. Hazard sheets and rosters are common patterns in construction safety management, so they are likely to be needed again on other site screens. Under the same rule of three, each gap is still only one of three.
Where the names got confusing and where they worked well
- The name
StatusBoardis confusing. Because it says "board," the agent initially mistook it for the main morning briefing board, but it is actually a tile board for dispatching and monitoring, which is different from a hazard sheet. The mistaken choice cost the agent time. - On the other hand, the by-use-case table worked well. Purpose terms such as "two-person confirmation" and "append-only after finalization" led directly to
SafetyBanner,CoSign, andSignedRecordthrough the same by-use-case table. The photo management round lacked a media section, but the safety and signature area was organized well. This showed that the table's coverage varies by area.
Wrapping up
This round located the boundary between reusable record controls and field inputs. Confirmation, locking, and co-signing transferred cleanly, while hazard rows, multi-check rosters, and drawn signatures did not.
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.