# The typist and the developer — data kit

**What this directory holds.** The receipts behind the exhibit *The Typist and the
Developer* (https://research.strata2signal.com/the-typist-and-the-developer/index.html): one pre-registration written before any measured
call, and the raw rows of the contention bench exactly as they landed. The run
opened **2026-08-26T18:18:02Z** and closed **2026-08-26T18:18:37Z** — **35
seconds end to end**, later and far shorter than the window the registration
declared, which is what the registration's one dated addendum is for.

**Licence: CC BY 4.0.** Take these rows, re-plot them, check our arithmetic,
publish what you find. Attribution: strata→signal research,
research.strata2signal.com. If you find an error in any of this, we want to hear
about it: hello@strata2signal.com.

## What is in here

| file | what it holds | what was applied to it | bytes |
|---|---|---|---:|
| `prereg.md` | The pre-registration, written 2026-08-26 ~13:4xZ before any measured call, with its one dated addendum: the declared window and the beside-traffic disclosure, the two stacks in their production shapes, the five rows and their sample counts, the four named self-refutation checks, and the publication plan. Every rule and UTC date is as registered — including the declared window that the addendum then corrects. | operator-name-to-the-operators, internal-slug-to-product-name | 4,064 |
| `rows.jsonl` | Every sample this bench paid, one JSON object per line — the 47 recorded rows plus the harness's own open and close lines: five solo token rows, five solo renders, five contended token rows with the six background renders that kept the card busy, five contended renders, the re-grab readings (the chat model's load time on the first call after a render burst) and the free-memory reads before and after. The first line is the provenance header added at publication; everything after it is as the harness wrote it. The excluded-failures list is empty because nothing failed. | provenance-header-added | 8,203 |
| `residency-klein-0825.json` | The two-painter residency probe from the klein bake-off of 2026-08-25 (the same 96 GB card, one day before the contention rows): each entry is one render — its label, the painter's own execution seconds, and the card's free memory before and after. The alternation the piece re-quotes (32.7 ↔ 16.2 GiB free as the two paint sets evict each other; +2.9 s per swap) is read straight off these rows. Published byte-for-byte; it names no box. | none — byte for byte | 628 |
| `provenance.json` | all three files above with both sha256s, the named rules applied to each, and the run window | — | — |
| `index.json` | this directory, listed: file names, sizes, sha256s, and what each one answers | — | — |

## Sanitised at the pen, not copied

Nothing here is a raw copy. Each file was read and rewritten, and every transform
has a NAME that `provenance.json` prints per file with the number of times it
fired — so a reader can see which rules touched a file and be sure nothing else
did. The rules, in full:

- **`operator-name-to-the-operators`** — the operator's name — and the agent-lane id built from it — becomes the role: the registration's author line reads "the orchestrator lane". No person is named on a published page.
- **`internal-slug-to-product-name`** — the estate's internal name for the running game instance becomes the product the reader knows: "the game's own sketch tier". The tier, the graph and every measured number are unchanged.
- **`provenance-header-added`** — rows.jsonl gains ONE line at publication, first in the file, naming what the raw file never did: the card's memory class, the model, the graph, the step count, the canvas, the run id and the run's window. Nothing is removed and nothing is rewritten — every line after the header is byte-for-byte as the harness wrote it.

## What the rows will and will not tell you

The rows measure **what**, not **why**. They record how fast the chat model wrote
and how long a sketch took, alone and while the other machine worked the same
card — five samples per row, medians published with their spreads. They do not
record why the split is lopsided; the piece says so in its own words, and names
the mechanisms it cannot separate. Two numbers in the article are re-quotes from
earlier published benches rather than measurements from this run, each labelled
as such on the page; they are not in this kit, because this kit is only what this
run paid for.

## Not a standard

Five samples per row is a mini-bench sized to one question, on one card, for one
pair of workloads. It is not a leaderboard, and co-residence is a property of a
*pair* — the same card that fits this pair evicts a different one, which the
article states and the estate has measured separately.
