# Clawmates Frontend — Implementation & Wiring Handoff
> **Audience:** the build agent (or engineer) integrating these screens into the Clawmates
> platform (the Rust workspace + Next.js app) and feeding them live from the durable runner.
>
> **What this package is:** every Clawmates screen as a self-contained HTML file, plus a
> dependency-free real-time bridge and client adapter that make them update live. Read this
> file once, top to bottom, before wiring anything. Everything runs **offline in demo mode**
> with synthetic data, so you can see each screen breathe before touching the backend.
---
## 0. Package layout
```
handoff/
├── IMPLEMENTATION.md ← this file
├── README.md ← 60-second start
├── install.sh ← idempotent installer (Node check, static server, .env)
├── .env.example ← copy → .env for live mode
├── screens/ ← the UI. Open any .dc.html directly in a browser — no build step.
│ ├── Clawmates World.dc.html
│ ├── Clawmates Observe.dc.html
│ ├── Clawmates Dashboard.dc.html
│ ├── Clawmates Infrastructure.dc.html
│ ├── Clawmates Auth.dc.html
│ ├── Clawmates Landing.dc.html
│ └── support.js ← the .dc runtime (MUST sit next to the .dc.html files)
└── realtime/
├── server.mjs ← demo + live SSE bridge (Node ≥20, zero deps)
├── clawmates-live.js ← browser client adapter → window.ClawmatesLive
└── events.schema.json ← the Clawmates Event Taxonomy (the contract)
```
### What a `.dc.html` file is
Each screen is a **Design Component**: a single HTML file whose markup + a small logic class are
rendered by the bundled `support.js` runtime. There is **no build step and no npm install to view
them** — open the file in a browser, or serve the `screens/` folder statically. `support.js` must
sit beside the `.dc.html` files (it does, in `screens/`).
To edit a screen's behavior you change two regions inside the file: the `…` template
(markup, inline-styled) and the `class Component extends DCLogic { … }` block (state + a
`renderVals()` that returns the values the template binds to). All live data flows into a screen by
calling `this.setState(...)` from a `ClawmatesLive.on(...)` handler — see §3.
---
## 1. The screens
| Screen | Purpose | Primary live inputs (see §3 taxonomy) |
|---|---|---|
| **World** | The "Large World" map in three formations: **Hierarchy** (org▸company▸team▸claw tree), **Flat** (peer mesh), **Live** (Gource-style convergence on a `