A
Visual change, no new behaviour
main → gate → preflight → push
shipped.Three designers took a wall-mounted family hub from zero to a device on the wall, in eight weeks.
Home. The morning glance, read from across a kitchen.
One screen, wherever family life happens. 1920 x 1080, landscape, mains-powered, never off.




A generated reply has no fixed layout, so we specified the shapes it is allowed to take. This is the catalogue we designed to, and it ships as a scenario library inside the product.








Every state is reviewable on demand, including the ones a real conversation almost never reaches.
Not files. They ship inside the production binary behind a debug panel, so engineering reviews a running thing on real hardware.
Lines of code I inserted, by destination. 82,387 across 713 files.
Voice enrolment, grid versus carousel. The scrubber on the right walks the flow, so a reviewer needs no build.


Six voice states, driven by hand, no account and no network. Twenty more prototypes live in the mobile app, eight of them mine.

I negotiated the access, then wrote the rules that made engineering willing to grant it. They are an executable agent skill, not a wiki page.
A
main → gate → preflight → push
B
branch → spec + prototype → PR → me
C
branch → PR → me + eng owner
The gates are mechanical, so nobody argues past one. Designers can write code; we cannot approve it.
The part worth talking about
So we specify behaviour and boundaries: what it may write, what it must ask, what it does when unsure.
Skills and rule files. A decision written precisely enough is executable: agents route it, build it, refuse it.
Of 7,380 commits in the repo. The bar moved from can you build it to can you decide it.
The bottleneck stopped being production. It became judgement.
Believed
The hub runs as whoever set it up.
Broke
A child's chore said created by Dad. That account leaves, the wall dies.
Shipped
A family-owned device identity. It asks who a list belongs to; it never guesses.

Believed
Check the voiceprint, then answer.
Broke
A device that silently refuses is not secure. Nobody debugs a threshold in a kitchen.
Shipped
It always answers. Recognition only resolves "me" and clears the lock.

Believed
A PIN on the pad keeps the kids out.
Broke
Twice. They watch you type it, and the lock's own settings sit behind it.
Shipped
Settings moved to the phone. The pad page has no controls at all.

The rule underneath: the wall does, the phone decides.
Same company, two visual languages, about four months apart. Each window scrolls the whole page.
BEFOREProduct shot

Rounded sans, an uppercase claim, hardware on a table. Reads like a spec sheet with a family in it.
NOWParent Copilot

Warm paper, one sentence per screen, video set inside the headline, the device shown in rooms. Sells a feeling.
The function
Three designers, 377 commits into the product repo. The routes and review ownership are written down, so the model survives me.
The product
First commit 27 June, v1.0.0 in first homes by late August. 53 specs, 579 commits on the device app.
The method
Prototype inside the binary. Specify behaviour, not layout. Write decisions precisely enough for agents to execute.
With agents, making things stopped being the constraint. I made more options than the team could evaluate.
The welcome animation, the pairing flow, the on-device PIN. The demo was fine. The kitchen was not.
What unblocked the team was write access plus a rule set strict enough for engineering to accept.
It is early. The hub is with first families; the retention numbers do not exist yet.