# How the studio works

> The studio's protocol: who does what, the stages from brief to promotion, where files go, the version ladder, the review checklist and how work is handed back.

*Source: <https://the-ultimate-insider.presentation.sgit.ai/studio/how-it-works.html> · site v0.1.37 · generated from the same content as the page, so the two cannot drift.*

---

The studio

# How the studio works

The protocol every agent in the studio follows. It is short on purpose: the brief says what to make, this page says how work moves and when it is done.

## Who does what

| Role | In the studio |
| Dinis Cruz, the editor | Gives the talk. Decides the argument, settles open questions, and has the last word on what goes on stage. | ``
| deck@the-ultimate-insider | Writes the briefs and keeps the board. Reviews what comes back, promotes the winner into talk.json, and keeps the script in step with the new slide. |
| ruv.sgit@the-ultimate-insider | Builds: storyboards and versions, using the techniques of ruv.sgit.ai. Updates its brief's page as work lands. Asks rather than improvises when the material is thin. |
| dev@the-ultimate-insider | Owns the slide engine, the player, the build and the gate. A version that needs the engine to do something new asks dev, and does not patch the engine itself. |

## The stages, and when each is done

- **Brief** (deck). Done when the brief page states the job, the material with sources, the constraints, the ladder and the hand-back, and the board lists it as open.
- **Storyboard** (ruv.sgit). A single page of frames at `ruv-sgit/<slug>/storyboard.html`: each frame a still with its time in the beat and the words spoken over it. Done when deck has read it and either said go or sent notes. Cheap to change, so change it here, not in a version.
- **Versions** (ruv.sgit). At least two where the brief asks, at `ruv-sgit/<slug>/`, each with its explainer. Each is a complete slide that runs in the player. Done when each passes the checklist below.
- **Critique** (deck, with the editor when it matters). The versions side by side. The outcome is written on the brief page: which version, and why the others lost.
- **Promote** (deck). The beat's `slide.src` in `talk.json` points at the winner, the script's words and cue are adjusted to match, and the board says promoted.

## Where files go
`src/pages/studio/ these pages, the programme and deck's reviews (deck) src/static/studio/data/ sourced material as JSON, and programme.json (deck) team/deck/requests/ deck's requests to other members, until deck holds the mail vault key ruv-sgit/<slug>/index.html the piece, made in a ruv.sgit run (ruv.sgit's pages) ruv-sgit/<slug>/explainer.html what the piece shows, frame by frame, and its sources (ruv.sgit) studio/reviews/<id>.html deck's review of each pass (deck)`

ruv.sgit delivers on its own pages, as its article [How ruv.sgit works](../articles/how-ruv-sgit-works.md) sets out, on the slide engine and its 1280 by 720 canvas. The studio links to them; it does not copy them. (Until 29 October this page named `studio/lab/` for the work; nothing was ever delivered there.)

## The version ladder

As at ruv.sgit.ai, versions climb from simple to rich, and a richer one has to beat the simpler one to be promoted. A simple slide that lands beats a rich one that distracts.

- **Static.** SVG and type, the end state only. If the idea does not work still, motion will not save it.
- **Built.** The same picture, revealed in the order the words arrive, with the engine's `data-in`, `data-draw` and `data-count`.
- **Driven.** Drawn from the data file by script in `SLIDE_RENDER`, so a corrected number corrects the slide.
- **Rich.** Canvas particles, 2.5D, or WebGL, only where the movement itself carries meaning (scale, speed, flow). Any library is copied into the lab folder, since the gate refuses scripts from another host.

## The checklist

A version is ready for critique when all of these hold.

- One idea. Say it in a sentence on the brief page; if it takes two, it is two slides.
- Every number on screen comes from a studio data file or a source the brief lists, and matches it exactly. A prediction, a survey or a preliminary figure says so on screen.
- Anything invented for illustration is labelled illustrative on screen.
- Readable from the back of the room: nothing under 20 px on the 1280 by 720 canvas, high contrast, three colours of meaning at most (the agent red, the infrastructure amber, the risk violet from `tokens.css`).
- Runs in the player: seek, pause and replay work; `?static` shows a complete end state; `?t=` freezes cleanly at any second.
- With reduced motion the end state is shown and still makes the point.
- Works in both themes (`?theme=light`); the stage default is dark.
- No console errors, no scripts or styles from another host, no em-dashes in any text.
- Its length (`data-end`) fits the beat's time in `talk.json`, or the brief page says how much time it needs.

## Handing work back

- Add a Versions section to the brief's page, one line per version: link, technique, the idea in a sentence, and the frames it changed from the storyboard.
- Set the brief's status on the [board](index.md) to in review.
- Build and gate before every push: `./run-website-locally.sh`. Commit subjects start with the role, for example `@ruv.sgit: B01 storyboard`, and never carry a number.
- If the material is wrong or thin, write it down in the brief's open questions and stop that line of work; do not fill the gap.

---

*[Site index for agents](../llms.txt) · [HTML version](https://the-ultimate-insider.presentation.sgit.ai/studio/how-it-works.html)*
