Path 1 — One-command generate (recommended)
npm run generate runs the full loop non-interactively: it inspects the product,
the agent writes a screen into src/screens/device/<product>/, registers it, and
runs tsc to verify it builds.
Requires ANTHROPIC_API_KEY in .env.local.
Path 2 — Interactive in Claude Code
Open the repo in Claude Code and ask:“Build the UI for product <productId>.”Same result — useful when you want to chat through design choices or iterate.
How the agent decides what to build
npm run inspect <productId> writes a spec the agent reads. The key field is
capabilities.controls — your dashboard’s actual controls, each with a title
(your real label), a widgetType (your intended affordance), and an events map
of UI event → command payload. The agent uses your titles and types verbatim.
widgetType → control
controls lists what you actually put in your dashboard; commandsApi lists
everything the firmware can accept. The agent follows controls and mentions
unused commands rather than guessing.dashboard_config
JSON rendering.
Next: Branding
Make it yours.

