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
studio/lab/<brief>/storyboard/index.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, at
studio/lab/<brief>/v1/index.html,v2and on. 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.srcintalk.jsonpoints 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 (deck)
src/pages/studio/briefs/ one page per brief (deck writes, ruv.sgit appends its Versions section)
src/static/studio/data/ sourced material as JSON (deck)
src/static/studio/lab/b01/ the work for brief B01 (ruv.sgit)
storyboard/index.html
v1/index.html, v2/index.html, ...
notes.md what was tried, what the builder would do next
Lab pages are standalone: no site chrome and no markdown twin, like the slides, and the gate knows it. A version loads the engine from ../../../../talk/engine/slide.js and slide.css and draws on the 1280 by 720 canvas the engine scales. It reads its data with a relative fetch of ../../../data/<file>.json.
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-drawanddata-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;
?staticshows 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 intalk.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 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.