diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json
index 695bf43..44f922a 100644
--- a/.claude-plugin/marketplace.json
+++ b/.claude-plugin/marketplace.json
@@ -7,7 +7,7 @@
{
"name": "desk",
"description": "Forty-two design desks, one command, studio quality on the plans you already have.",
- "version": "1.0.2",
+ "version": "1.1.0",
"author": { "name": "Aditya Reddy" },
"source": "./",
"category": "design",
diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json
index dfd798b..283c8cb 100644
--- a/.claude-plugin/plugin.json
+++ b/.claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "desk",
- "version": "1.0.2",
+ "version": "1.1.0",
"description": "Desk Studio: a design studio inside your coding agent. Forty-two desks staffed per job, roughs, pick, polish, proof and sign-off, studio quality on the plans you already have.",
"author": { "name": "Aditya Reddy", "url": "https://deskstudio.ai" },
"homepage": "https://deskstudio.ai",
diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml
index f8e62b4..cc20ea1 100644
--- a/.github/workflows/pages.yml
+++ b/.github/workflows/pages.yml
@@ -29,7 +29,7 @@ jobs:
- run: sudo apt-get update -q && sudo apt-get install -y -q ffmpeg
- run: node site/build.mjs
- name: Verify site body
- run: echo 'e936190208d7e297e369a282ec27afcc688f8bfb93255f50c4ab332e6d5fc2cd site/dist/index.html' | sha256sum --check
+ run: echo '8c21ab79c0bff821d2bda925dc774eb21b1c310eb3feb896743f5a60d6751420 site/dist/index.html' | sha256sum --check
- uses: actions/configure-pages@v5
- uses: actions/upload-pages-artifact@v3
with:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4c7f692..0ab3170 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
# Changelog
+## [1.1.0](https://github.com/adityareddy-dev/deskstudio/releases/tag/v1.1.0) - 2026-10-31
+
+A new dashboard, a brand to match it, and a new film on the site.
+
+- The dashboard shows every desk as a small bot at its own desk, in a room for its tier, awake only while an agent of that desk is working. The job moves along a track from the brief to the sign-off, with the round, score, cost and time beside it. The review board has a tab per round, a score chart against the bar, and the scorecard. The studio log says what happened in plain words. All controls and routes are unchanged.
+- The logo is the bot's head with its one lens eye. The lamp mark is retired.
+- A dashboard guide with screenshots in `docs/dashboard.md`, and a 50-second captioned walkthrough.
+- `clips/frames.mjs` records the dashboard at 60 frames a second on a virtual clock, replaying real job records.
+- The 50-second film on deskstudio.ai and in the README is new: a rendered studio floor, the 42 desks, and one job from brief to sign-off.
+
## [1.0.2](https://github.com/adityareddy-dev/deskstudio/releases/tag/v1.0.2) - 2026-10-23
Export a job's event log as an OpenTelemetry trace with role timings, token usage and cost.
diff --git a/README.md b/README.md
index 0135f51..dd32785 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ The first line is for Claude Code. The second is for Codex, Cursor, Gemini CLI,
-[deskstudio.ai](https://deskstudio.ai) · [Install](docs/install.md) · [Docs](#docs) · [Contribute](#contribute) · [Discussions](https://github.com/adityareddy-dev/deskstudio/discussions)
+[deskstudio.ai](https://deskstudio.ai) · [Install](docs/install.md) · [Dashboard guide](docs/dashboard.md) · [Docs](#docs) · [Contribute](#contribute) · [Discussions](https://github.com/adityareddy-dev/deskstudio/discussions)
@@ -49,6 +49,14 @@ Files land in `.desk/out//` with a short note on who did what, the scores a
The outputs, scores and cost are in [What it makes](docs/gallery.md).
+## Watch it work
+
+The dashboard shows the studio as it works. Every desk is a small bot at its own desk, awake while its agent works, and the job moves along a track from the brief to the sign-off with its round, score and cost.
+
+
+
+[Watch a whole job on the dashboard, 50 seconds with captions](site/media/walkthrough.mp4). Open it in your project with `/desk:dashboard setup` once, then `/desk:dashboard start`. How to read every part of it is in [the dashboard guide](docs/dashboard.md).
+
## Why it exists
Cheap models make, strong models judge. Every visual job runs the way a studio runs: roughs, a pick, polish, proof, sign-off. The desks call models through the CLI you are already signed in to (`claude`, `codex` or `agy`) or a key (`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY`). `npx --package deskstudio desk-run doctor` shows which path it will take without making a model call. Scores come from the studio's model reviewers, they are not independent benchmarks.
@@ -58,7 +66,7 @@ Cheap models make, strong models judge. Every visual job runs the way a studio r
Three roughs on Sonnet, the pick on Opus, polish on Haiku, proof with no model, then the sign-off. The launch card job, retold with its real numbers. The five steps, the retry rules and the pixel checks are in [How a job runs](docs/how-it-works.md).
- 42 desks: the Design Manager and 41 that run as subagents. See [the team, cost and models](docs/team-and-cost.md) and [docs/roles.md](docs/roles.md).
-- A local [dashboard](docs/dashboard-tour.md) to pause, move a desk to another model, write a desk a note or pick a rough yourself.
+- A local [dashboard](docs/dashboard.md) to watch the desks work, pause, move a desk to another model, write a desk a note or pick a rough yourself.
- It runs on your machine. The only things that leave it are the model calls the desks make and, for the few research desks, web lookups. The dashboard is 127.0.0.1 only with a token in the URL. See [docs/privacy.md](docs/privacy.md).
## Install and use
@@ -75,7 +83,15 @@ Other agents, one line in the project:
npx deskstudio add
```
-It writes `.desk/`, copies the desks to `.agents/skills/desk/` and puts one marked block in the agent's instruction file. Every agent by default, one with `--agent codex`. The runner takes `design` for social cards for now; the other commands are Claude Code skills. Older Claude Code versions, the table of instruction files per agent, what each agent gets and the update rules are in [docs/install.md](docs/install.md).
+Then open the dashboard and ask for something:
+
+```
+/desk:dashboard setup
+/desk:dashboard start
+/desk:design a launch card for LinkedIn
+```
+
+Outside Claude Code the dashboard is `npx --package deskstudio desk-dashboard setup`, then `start`. `npx deskstudio add` writes `.desk/`, copies the desks to `.agents/skills/desk/` and puts one marked block in the agent's instruction file. Every agent by default, one with `--agent codex`. The runner takes `design` for social cards for now; the other commands are Claude Code skills. Older Claude Code versions, the table of instruction files per agent, what each agent gets and the update rules are in [docs/install.md](docs/install.md).
Models are set once in `.desk/project.json`, or from the dashboard for one job:
diff --git a/brand/DESIGN.md b/brand/DESIGN.md
index 4272d9c..2b6e672 100644
--- a/brand/DESIGN.md
+++ b/brand/DESIGN.md
@@ -1,180 +1,185 @@
---
name: Desk Studio
colors:
- background: "#12110f"
- foreground: "#f4f0e8"
+ background: "#15100b"
+ foreground: "#fcf3e4"
accent: "#ffaa1c"
- muted: "#9a948a"
- surface: "#1c1a17"
- line: "#3b3830"
- danger: "#ff6b5e"
- background-light: "#ffffff"
- foreground-light: "#17140f"
- accent-light: "#c27a00"
- muted-light: "#6b655b"
- surface-light: "#f6f3ec"
- line-light: "#d9d4c8"
- danger-light: "#c4281c"
+ muted: "#c2b19b"
+ surface: "#1f1711"
+ line: "#3b2e23"
+ danger: "#ff8a4c"
+ bot: "#f6e9d6"
+ lens: "#2a1f18"
+ amber: "#ffaa1c"
+ green: "#009e73"
+ pink: "#cc79a7"
+ blue: "#0072b2"
+ sky: "#56b4e9"
+ orange: "#d55e00"
+ background-light: "#fbf3e6"
+ foreground-light: "#2b2017"
+ accent-light: "#9a5b00"
+ muted-light: "#6f604f"
+ surface-light: "#fffaf2"
+ line-light: "#eadbc4"
+ danger-light: "#b34700"
type:
family: "Inter"
- headingWeight: 600
+ headingWeight: 800
bodyWeight: 400
base: 16
ratio: 1.25
spacing:
- unit: 8
- radius: 4
+ unit: 4
+ radius: 10
logo:
path: "brand/mark.svg"
- clearSpace: "0.5x height"
+ clearSpace: "0.25x height"
motion:
- entrance: "300ms cubic-bezier(0.16, 1, 0.3, 1)"
+ entrance: "320ms cubic-bezier(0.16, 1, 0.3, 1)"
+ pop: "360ms cubic-bezier(0.34, 1.56, 0.64, 1)"
+ move: "700ms cubic-bezier(0.65, 0, 0.35, 1)"
exit: "200ms cubic-bezier(0.7, 0, 0.84, 0)"
- move: "300ms cubic-bezier(0.65, 0, 0.35, 1)"
- emphasis: "400ms cubic-bezier(0.16, 1, 0.3, 1)"
sources:
- - "brand-kit job 20261018-2114-desk-studio-brand-kit, direction 3"
- - "pick ring drawn as direction 2's hand-drawn circle, in direction 3's amber"
+ - "direction of 2026-10-29: a fun dashboard where the studio is visible, the lamp dropped"
+ - "the dashboard redesign in dashboard/public, then this kit to match it"
+ - "the six trims shared with the site film (Okabe-Ito, safe for colour vision deficiency)"
---
# Desk Studio
## Position
-For developers and founders who ship without a designer, 42 desks working inside your agent while you run the dashboard. Warm, plain, steady.
+For developers and founders who ship without a designer. A small studio of 42 desks works inside your coding agent, and you watch it work on the dashboard. Warm, plain, a bit playful.
## Voice
-Plain, confident, short. Claims, not descriptions. Numbers are figures and stay exact.
+Plain, confident, short. Numbers are figures and stay exact. Fun comes from the bots and the motion, never from the words: no hype, no exclamation marks.
Example: "Your own design studio."
-## The accent's two jobs
+## The bots
-Amber is a desk at work and the pick: a lit lamp, and the ring drawn round the picked desk or rough. Nothing else is amber. Amber is never a text colour, never a button fill, never a background for text. A lamp at rest is muted, and the slab is always foreground.
+Every desk is a small toy bot at its own desk: a cream body, one lens eye, a laptop, and the trim colour of its tier. The bot is the brand. The logo is its head.
+
+| Tier | Trim | Wears | Count |
+|---|---|---|---|
+| Manager | amber #ffaa1c | a headset | 1 |
+| Director | pink #cc79a7 | a bow tie | 3 |
+| Senior | sky #56b4e9 | a lanyard and badge | 17 |
+| Builder | green #009e73 | a cap | 21 |
+
+- On the dashboard, a bot is awake only while an agent of its desk is really working: lens open, typing, its laptop mark lit in the trim. Otherwise it sleeps, lens shut, breathing slowly. Never wake a bot on the dashboard to fill a frame. Illustrations (the banner, the site's crew) can show the crew at work.
+- Blue #0072b2 is for links and information, orange #d55e00 for anything that needs you: under the bar, a failed proof, a job waiting on you.
+- Amber is the Manager's trim, the job's place on the track and the pick ring.
+
+## The mark
+
+- The head of a studio bot: a rounded cream head, two ear bolts, one lens with an amber iris, a dark pupil and a white glint. It sits on a dark tile with a little dusk light in the top left corner (`logo/logo.svg`).
+- On light pages use the outlined head (`logo/logo-light.svg`, `logo/mark-on-light.svg`). In one colour use `mark-mono.svg`.
+- Smallest size: 16px for the tile. Clear space: a quarter of the mark's height on every side.
+- Don't add a body, arms or a second eye to the mark, don't recolour the iris, don't put the cream head straight on white without the outline.
## Colour by job
-Dark set (default for the dashboard and the sting)
+Dark set, the default for the dashboard
| Job | Token | Hex |
|---|---|---|
-| Page | background | #12110f |
-| Text | foreground | #f4f0e8 |
-| Lit lamp, pick ring | accent | #ffaa1c |
-| Secondary text, unlit lamp, empty slab | muted | #9a948a |
-| Desk and panel fill | surface | #1c1a17 |
-| Hairlines, resting desk border | line | #3b3830 |
-| Score under 8 | danger | #ff6b5e |
-
-Light set (hero page, sheet, card on white)
+| Page, dusk | background | #15100b |
+| Panels | surface | #1f1711 |
+| Raised panels, inputs | surface-2 | #2a2018 |
+| Hairlines | line | #3b2e23 |
+| Text | foreground | #fcf3e4 |
+| Secondary text | muted | #c2b19b |
+| Small labels, times | faint | #a08d77 |
+| Bot body | bot | #f6e9d6 |
+| Lens | lens | #2a1f18 |
+| Desk top, desk front | desk | #b07a4c, #8c5c37 |
+
+Light set, the studio by day
| Job | Token | Hex |
|---|---|---|
-| Page | background-light | #ffffff |
-| Text | foreground-light | #17140f |
-| Lit lamp, pick ring | accent-light | #c27a00 |
-| Secondary text, unlit lamp, empty slab | muted-light | #6b655b |
-| Panel fill | surface-light | #f6f3ec |
-| Hairlines | line-light | #d9d4c8 |
-| Score under 8 | danger-light | #c4281c |
+| Page | background-light | #fbf3e6 |
+| Panels | surface-light | #fffaf2 |
+| Hairlines | line-light | #eadbc4 |
+| Text | foreground-light | #2b2017 |
+| Secondary text | muted-light | #6f604f |
+
+The six trims are the same in both sets. As text they get a lighter shade on dark and a darker one on light, listed in the contrast tables.
+
+## Type
+
+Inter, the same face as the site film. 800 for the wordmark and big figures, 700 for headings, 650 for labels and names, 400 for body. Geist Mono for commands, ids and paths only. Figures are tabular. Scale and sizes are in `type.md`.
-Background, foreground and accent keep the strategist's hexes in both sets. Nothing else is changed from the strategy. `line` and `line-light` are decorative separators and carry no content, so they have no ratio to meet.
+## Shape and depth
-## Spacing, radius, elevation
+- Radius 10 for controls and cards, 14 for rooms, 18 for panels, 999 for pills and buttons.
+- Buttons are pills with a 2px bottom edge, like a plastic key, and press down by 1px.
+- Rooms on the floor have a wall band and plank lines. Panels can carry a soft warm glow at the top of the page, nothing else glows.
+- Spacing on a 4px grid.
-- Unit 8px. Scale in units: 0.5, 1, 2, 3, 4, 6, 8, 12, 16 (4, 8, 16, 24, 32, 48, 64, 96, 128px). Nothing off the scale.
-- Radius 0 on the mark, slabs, bars and the dashboard's desks. Radius 4 is the default for panels, inputs and buttons. Radius 8 for cards and the hero's rough frames. Nothing round.
-- No shadows. Menus and dialogs may take one 1px `line` border instead.
-- Breakpoints 390, 768, 1024, 1440.
+## Motion
+
+Bots wake with a small hop, bob while they work and blink now and then. The job ticket slides along the track. Bubbles pop in. Scorecard bars fill from the left. The pick ring draws once. Confetti falls once, when a job you are watching signs off at the bar. All of it stops under reduced motion. Details in `motion.md`.
## Do
-- Set every lit lamp in amber and every other element in foreground, muted or surface.
-- Keep the mark's disc 8 units across, over the right third of a square-ended slab.
-- Put figures in Inter with tabular numerals wherever they sit in a row.
-- Use foreground on background for headlines and body, muted for labels and secondary lines.
-- Draw the pass line at 8 on every scorecard, even when every axis passes.
-- Show the 42-desk grid as 7 columns by 6 rows, and only where it is the dashboard.
-- Draw the pick ring as one open amber stroke round the picked desk or rough: a slightly irregular oval 1.5 times the picked box, centred on it, round caps and joins, no fill, drawn clockwise from the top arc a third in from the left, the end running past the start (8px on rings under 120px wide, 12px from 120px), its last quarter drifting outward so it passes the start with one stroke width of clear space between the two strokes. Stroke 3px under 120px wide, 4px from 120px. One ring per screen.
+- Show the floor as rooms by tier, every desk a bot, and only the working ones awake.
+- Draw the pass line at 8 on every scorecard and the bar at 8.5 on the score chart.
- Write a desk by its job title: Art Director, Typographer.
-- Respect reduced motion: show the end state, no fill, draw or stagger.
+- Keep figures exact. 0.48 stays 0.48.
## Don't
-- Don't set text in amber, on light or on dark.
-- Don't put text on an amber fill.
-- Don't use a second accent, a gradient, a glow, a shadow or a blur.
-- Don't move the disc to the centre, enlarge it, curve the slab or give the unit a face.
-- Don't tile the 42-desk grid behind text.
-- Don't letterspace the wordmark past 0 or set it uppercase.
-- Don't round, dress up or compare a figure. 0.48 stays 0.48.
+- Don't fake activity: no bot awake, no score and no cost the record does not have.
+- Don't use the old lamp, slab or disc anywhere. They are retired.
+- Don't set long text in a trim colour, or small text in amber on light.
- Don't use exclamation marks, "Introducing", or any of the house style's banned words.
-- Don't close, fill, double or straighten the ring, set it in foreground, or draw it round a line of text.
## Contrast
-WCAG 2.x ratios. Text pairs pass at 4.5:1. Large text and non-text pairs pass at 3:1.
+WCAG 2.x ratios, measured. Text pairs pass at 4.5:1, large text and non-text at 3:1.
Dark set
-| Pair | Ratio | Bar | Result |
+| Pair | On background | On surface | On surface-2 |
|---|---|---|---|
-| foreground on background | 16.6:1 | 4.5 | pass |
-| foreground on surface | 15.3:1 | 4.5 | pass |
-| muted on background | 6.3:1 | 4.5 | pass |
-| muted on surface | 5.8:1 | 4.5 | pass |
-| danger on background | 6.7:1 | 4.5 | pass |
-| danger on surface | 6.2:1 | 4.5 | pass |
-| accent on background (lamp, ring, non-text) | 9.9:1 | 3 | pass |
-| accent on surface (lamp, ring, non-text) | 9.1:1 | 3 | pass |
+| foreground | 17.2 | 16.0 | 14.5 |
+| muted | 9.1 | 8.5 | 7.6 |
+| faint #a08d77 | 5.9 | 5.5 | 5.0 |
+| amber text #ffbf52 | 11.5 | 10.8 | 9.7 |
+| green text #3fcf9f | 9.6 | 8.9 | 8.1 |
+| pink text #e39cc4 | 8.8 | 8.3 | 7.4 |
+| sky text #8ccdf2 | 10.9 | 10.2 | 9.2 |
+| orange text #ff8a4c | 8.1 | 7.6 | 6.8 |
Light set
-| Pair | Ratio | Bar | Result |
+| Pair | On background-light | On surface-light | On surface-2-light #f6ecdc |
|---|---|---|---|
-| foreground-light on background-light | 18.4:1 | 4.5 | pass |
-| foreground-light on surface-light | 16.6:1 | 4.5 | pass |
-| muted-light on background-light | 5.8:1 | 4.5 | pass |
-| muted-light on surface-light | 5.2:1 | 4.5 | pass |
-| danger-light on background-light | 5.7:1 | 4.5 | pass |
-| danger-light on surface-light | 5.2:1 | 4.5 | pass |
-| accent-light on background-light (lamp, ring, non-text) | 3.5:1 | 3 | pass |
-| accent-light on surface-light (lamp, non-text) | 3.1:1 | 3 | pass |
-
-Amber on the light set is for lamps and the ring at 3:1, never text.
+| foreground-light | 14.4 | 15.3 | 13.6 |
+| muted-light | 5.5 | 5.8 | 5.2 |
+| amber text #9a5b00 | 4.9 | 5.2 | 4.6 |
+| green text #007a5a | 4.8 | 5.1 | 4.6 |
+| pink text #a5497f | 4.9 | 5.2 | 4.7 |
+| sky text #1a6fa3 | 5.0 | 5.3 | 4.7 |
+| orange text #b34700 | 5.0 | 5.3 | 4.7 |
-## Data palettes
+Trims as shapes (bars, dots, rings) on the page background
-Categorical six, from the accent, built on the Okabe-Ito set that holds under colour vision deficiency. Order is fixed. Every series also gets a direct label, so colour is never the only cue.
-
-| Slot | Dark | Light |
+| Trim | Dark | Light |
|---|---|---|
-| 1 | #ffaa1c | #c27a00 |
-| 2 | #56b4e9 | #1a78b0 |
-| 3 | #009e73 | #007a5a |
-| 4 | #cc79a7 | #a5497f |
-| 5 | #0072b2 | #2a3f9e |
-| 6 | #d55e00 | #b34700 |
-
-The dark slots all clear 3:1 on background (the lowest is #0072b2 at 3.6:1). The light slots all clear 3:1 on background-light. The light set is adjusted from the dark by hand and has not been run through a CVD simulation.
+| amber #ffaa1c | 9.9 | 1.7, so the ring on light uses #c27a00 (3.1) |
+| green #009e73 | 5.5 | 3.1 |
+| pink #cc79a7 | 6.2 | 2.8, decorative only |
+| blue #0072b2 | 3.6 | 4.7 |
+| sky #56b4e9 | 8.2 | 2.1, the chart line on light uses #1a78b0 (4.4) |
+| orange #d55e00 | 4.9 | 3.5 |
-Sequential seven, one amber hue, light to heavy, low to high value.
+Dark ink #1a120b on amber is 9.7, on the bot's cream 15.5. White on the green button #007a5a is 5.3.
-| Step | Dark | Light |
-|---|---|---|
-| 1 | #3b2d12 | #f7ead2 |
-| 2 | #5f4511 | #f0d3a0 |
-| 3 | #85600f | #e4b668 |
-| 4 | #ad7b10 | #d29a35 |
-| 5 | #d49416 | #c27a00 |
-| 6 | #ffaa1c | #8f5a00 |
-| 7 | #ffd27a | #5c3a00 |
-
-Diverging pair, amber to blue through a neutral. The pair is separable for protan and deutan viewers.
+## Data palettes
-| End | Dark | Light |
-|---|---|---|
-| Low | #56b4e9 | #1a78b0 |
-| Mid | #9a948a | #e8e3d8 |
-| High | #ffaa1c | #c27a00 |
+Categorical six, in this order, safe under colour vision deficiency: amber #ffaa1c, sky #56b4e9, green #009e73, pink #cc79a7, blue #0072b2, orange #d55e00. Every series also gets a direct label. Tiers always keep their own trim: director pink, senior sky, builder green.
diff --git a/brand/README.md b/brand/README.md
index 24965cc..783e6fb 100644
--- a/brand/README.md
+++ b/brand/README.md
@@ -1,38 +1,44 @@
-# Desk Studio
+# Desk Studio brand
-Position: for developers and founders who ship without a designer, 42 desks working inside your agent while you run the dashboard. Warm, plain, steady.
+Position: for developers and founders who ship without a designer, a small studio of 42 desks inside your coding agent that you watch work on the dashboard. Warm, plain, a bit playful.
-## The mark
-
-- The mark is a desk with its lamp: a flat slab and an 8-unit disc over the right third. Never move the disc, resize it, curve the slab or add a face.
-- Smallest size: mark alone 16px high. Horizontal lockup 120px wide. Stacked lockup 72px wide. Wordmark alone 96px wide.
-- Clear space is 0.5 mark heights on all four sides, in every lockup.
-- The slab is always foreground. The disc is muted at rest and amber when lit.
-- One colour per placement, no gradient, no outline version, no effects.
+The brand comes from the dashboard: every desk is a toy bot at its own desk, and the logo is that bot's head. It shares the six trim colours and Inter with the site film.
-## Backgrounds
+## Files
-- Dark set (`background` #12110f) for the dashboard, the sting and dark cards.
-- Light set (`background-light` #ffffff) for the hero page, the sheet and white cards.
-- Surface (`surface`, `surface-light`) for panels and desks only. Never put the mark on amber.
-- Text pairs are in `DESIGN.md`. Use only those.
+| File | What it is |
+|---|---|
+| `DESIGN.md` | Colours by job with measured contrast, type, shape, the bots, do and don't. Its front matter is what the studio's proof reads. |
+| `palette.css` | The tokens, dark and light. |
+| `type.md`, `motion.md` | The type scale and the moves. |
+| `sheet.html` | The kit on one page: mark, wordmark, lockups, the four tiers of bots, colour, type and motion. |
+| `mark.svg`, `mark-mono.svg`, `mark-clear.svg` | The bot head in colour, in one colour, and with its clear space. |
+| `wordmark.svg`, `lockup-horizontal.svg`, `lockup-stacked.svg` | The words, and the tile with the words, in `currentColor`. |
+| `logo/` | The app icon (`logo.svg`, `logo-light.svg`), PNGs from 32 to 1024, `favicon.ico`, the lockups on dark and light, the README banner and the cover images. |
+| `brief.md` | The brief and what changed. |
-## Accent
+## Making the files
-Amber is a desk at work and the pick: a lit lamp, and the ring drawn round the picked desk or rough. Nothing else is amber. Never text, never a button, never a fill behind text. On light, amber is 3.5:1 and is for lamps and the ring only.
+```
+python brand/logo/build.py # every SVG, the words outlined from Inter 800
+node brand/logo/render.mjs # the PNGs and favicon.ico
+node brand/logo/banner.mjs # the README banner, and --og, --devto, --cover variants
+```
-## Type
+## The mark
-Inter, 600 and 400. Wordmark tracking -0.02em. Scale and sizes are in `type.md`. Geist Mono only for the install line.
+- A studio bot's head: cream, two ear bolts, one lens with an amber iris. On the dark tile with a little dusk light.
+- On light pages, the outlined head. In one colour, `mark-mono.svg`.
+- Smallest size 16px. Clear space a quarter of the mark's height.
-## The dashboard
+## Colour
-The 42-desk grid is 7 columns by 6 rows. It appears only as the dashboard, never as wallpaper behind text.
+Dark is the default: dusk brown #15100b with cream text. Light is the studio by day, #fbf3e6. The trims: amber #ffaa1c (the Manager, the pick, where the job is), pink #cc79a7 (directors), sky #56b4e9 (seniors), green #009e73 (builders and passes), blue #0072b2 (links and information), orange #d55e00 (anything that needs you).
-## Voice
+## Type
-Plain, confident, short. Numbers are figures. Costs are rounded to the cent and scores to one decimal, the same way everywhere.
+Inter 800 for the wordmark and big figures, 700 headings, 650 labels, 400 body. Geist Mono for commands and paths.
-## Motion
+## Voice
-Lamps fill in 300ms, the pick ring draws in 400ms, scorecard slabs fill 300ms each, 60ms apart. All ease-out. Reduced motion shows the end state.
+Plain, confident, short. Figures exact. The fun is in the bots and the motion, not in the words.
diff --git a/brand/brief.md b/brand/brief.md
index e49a98d..bb3d87d 100644
--- a/brand/brief.md
+++ b/brand/brief.md
@@ -2,6 +2,15 @@
The input for the studio's own brand job (phase 4). The Brand Strategist, Typographer, Design System Lead and UI Designer work from this. Nothing here is final until Adi picks a direction.
+## What changed on 2026-10-29
+
+The dashboard and the site shots looked dull, nothing showed a fun dashboard, and the lamp wasn't working. So I redesigned the dashboard first and redid the brand to match it.
+
+- Was: a desk slab with a lamp disc as the mark, a "DS" monogram as the app icon, one amber accent, no characters, no gradients, no robots and no mascot. Now: every desk is a toy bot at its own desk, the mark is that bot's head with one lens eye, and the six trims of the site film carry the tiers (amber Manager, pink directors, sky seniors, green builders, blue for information, orange for what needs you). A soft dusk light is allowed.
+- Was: Inter 600 for the wordmark. Now: Inter 800, still the same face as the film.
+- The lamp, the slab and the disc are retired everywhere. The old kit's pages (`card.html`, `hero.html`, `marks.html`, `sting.html` and the old `sheet.html`) are in git history; `sheet.html` now shows the new kit.
+- The visual starting points and the "Not this" list below are kept as they were written for the first brand job, on 2026-10-18.
+
## What it is
A design studio inside the coding agent people already use. Forty-two desks, each a real role with a brief, staffed per job by a Design Manager. Work goes through roughs, a pick, polish, proof on real pixels, and a sign-off against an eight-axis rubric. Cheap models make, strong models judge, and the user runs it all from a local dashboard: pause, swap a role, write a desk a note, pick the rough yourself.
diff --git a/brand/card.html b/brand/card.html
deleted file mode 100644
index bc9e3eb..0000000
--- a/brand/card.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-You run the dashboard.
-
-
-
-