OngoingDesign system

joSystem

The rules I kept repeating to every agent, refined together into a system they can apply, and checks that hold them to it.

Role
Design and code, with Claude
When
Oct 2026 – now
Where it stands
Ongoing, v0.2

Two faces, named roles, the parts built from them, and one gray in 16 steps.

  1. 5media that read one token file
  2. 16steps of one cool metal, Rhodium
  3. 1,212 → 6contrast failures on ten case pages
On this page 
Repeating rules

Every agent heard the same notes, so I wrote them once

Five of the notes, and the rules they became.

By November I had agents on the site, the deck, the résumé and two products of mine, each getting the same notes from me: group this, draw the graph, the gray is too faint. So the notes became one file every session reads first.

Rules are defaults, not laws: “It depends on the context and the content.” Only what can be measured is a hard floor: contrast, the 4 px grid, clearance and padding.

How pieces fit

No magic: everything comes from somewhere

The principle is from industrial design: a false physical system. Everything on the page comes from somewhere and goes somewhere, so every page is a bento and pages are places: a case opens out of its card.

Where each page lives, and how long each move takes; back is shorter than the way in.

Most changes are cuts. Motion is spent where continuity is the message, or on a named delight like Contact.

Schibsted carries everything; the serif is used only for the punch.

Schibsted Grotesk is the boat: plain enough to hold any project, with good numbers. Instrument Serif is the voice, one phrase a block, because serif for all large type “doesn’t quite hold all of the different projects.”

A host for guests

The host stays neutral so the guests keep their color

GLKB’s blue, KICK’s lime, YOW’s yellow: my system has to house other systems, “which becomes the fun part.” So the ground stays near neutral, and a guest’s color lives only in its dot, its voice line and its own figures.

On screen each guest keeps its own lightness; on paper all five are deepened to 3:1.

The cool comes from my industrial design desk: cool-gray markers are how a product sketch renders metal. Color words didn’t survive a fact check (gunmetal is a bronze), so the rule became: name it after a metal that has the cast.

Where the cool came from: metal in cool-gray marker, at Avient and on TC-01.
Rhodium, picked within the metal: a thin cool finish over a neutral base.
Written for agents

Rules an agent can apply, and checks that hold it

Raw values, the roles that point at them, and five media that read only the roles.

An agent can’t apply taste, but it can apply a role. Every value is a token in two layers: raw values, and roles that point at them; each medium reads only the roles.

The audit set the first jobs. Before aligning anything, I ran a heuristic evaluation of my own site with Claude: 20 findings on 24 pages. The top one, a gray at 3.2:1 on every page, set the muted token.

One command checks a page against the floors; on ten case pages, contrast failures went from 1,212 to 6.

One command checks every page before I publish. It flags; it doesn’t decide: contrast, clearance and padding block, and the rest is fixed or explained.

Five media, one token file

The same place in each medium, before and after.

The same tokens now run five media: this site, my interview deck, the résumé, joIndex and joSite. Paper has its own rules: the white is the paper, sizes are whole points, and the résumé still fits one page.

Components, built once on the tokens; 9 more are named and not built yet.

Components came last, from real use: 21 built once, proposed as v0.1, and 9 more named; none applied back to the media yet. The deck alone builds a phone seven times, which is the case for building them once.

The two systems I built before this oneTwo Design Systems → One for GLKB, an AI research engine, and one for YOW.tv, an indie streaming brand, started a month apart. Each became the file a designer, a developer and an AI agent all read.
How we’d know

Pages that pass before anyone looks

Every page on the system

Hard-floor failures per page, from one command

The guardrailDepartures from a default, each with its reason
Where it standsMeasuredContrast failures 1,212 → 6 on ten case pages, the six not real text; padding hits 201 → 0
Role
Design and code, with Claude
When
Oct 2026 – now
Where it stands
Ongoing, v0.2
Credit
  • Design and code with Claude
  • Decided by me; proposed and applied by the sessions that built it
  • Type Schibsted Grotesk and Instrument Serif
Next case studytime to → A running series of Apple Watch faces, drawn in code, on the real time.