What was asked. Is the studio easy to use — are its sections well sorted, is anything filed in the wrong place, does every link show a picture of what it leads to. Beauty is not judged here; that is taste.
What was done. Twenty-two live pages opened at 1440 px and 390 px and photographed. Every link followed. Five errands run, two of them again on a phone. build-index.py --check read. The find bar tried on fifty words a person would really type. No page was edited.
No score. Three severities: bloquant the reader cannot find the thing · gênant they find it late or by luck · finition polish.
Where the plan is. The specification Frank approved · the session copy of this document is studio-review-15-08-2026.md.
1 · Four preview tiles say “404 Not Found”. bloquant
On
all.html, two of the seven Formats tiles and two of the four Country-leaflet tiles are empty boxes reading 404 Not Found. Their previews point at ../../3 - Projects/… and ../../2 - eR services/…, outside the published folder. The section's own instruction is “Each thumbnail is a real page; open it, then copy its shape.”
Why it matters. The card The ready document formats exists to serve this section, and four of its shapes cannot be copied.
Repair. Capture those four pages as pictures under assets/thumbs/ and show the picture, since the pages themselves cannot be published.


2 · Twenty-one pages, twenty-one different top bars. bloquant
Not one of the twenty-one pages checked carries the same navigation as another. The front door lists twelve links;
all.html drops Tools and All pages;
people/,
guide/ and
diagramas/ replace the site links with their own page sections;
body/ has no navigation at all.
Why it matters. The reader never learns where they are, and from the body page the only way back is the browser's back button.
Frank's baseline UX, rule 5: sibling pages visible in the navigation, internal menus labeled as menus.
Repair. One bar on every page — the seven families plus All pages. A page's own sections go on a second line, headed “On this page”.
3 · Two cards, one page, one picture. bloquant
Give a page a voice and Speak to the machine both open
voice/index.html and both show card-voice.jpg. Two of nineteen cards are the same door.
Why it matters. The Speakers chip shows five cards and two of them are one thing; the reader spends a choice on nothing.
Repair. One card, Voice, carrying both promises. If dictation deserves its own card it needs its own page first.
4 · Every markdown link hands the reader a download. bloquant
The server answers .md with content-type: application/octet-stream. Sixty-five of the links on
all.html are markdown, including
taste.md,
README.md,
franks-baseline-ux.md and the whole Kennedy shelf.
Why it matters. Two thirds of the library's links do not open a page; they drop a file in the Downloads folder.
Repair. One line in the nginx config so .md is served as text/plain; charset=utf-8.
5 · Four pages scroll sideways on a phone. bloquant
Measured at 390 px:
people/ overflows by 147 px,
guide/ by 326 px,
skills.html by 261 px,
diagramas/ by 2 px. One cause in the first three — a wide table with no scrolling wrapper. skills.html carries no @media rule at all.
Why it matters. “Works on a phone” is one of the things the
README says holds in both modes and is not negotiable.
Repair. Wrap every table in a box that scrolls on its own, and give skills.html the phone rules the other pages have.

6 · The find bar dies on any two-word phrase, and says nothing. gênant
It matches one literal string (hay.indexOf(q)). Measured: before and after → 0 cards. speaker sizes → 0. tone of voice → 0. taste → 0. how to publish → 0. A zero-result search simply empties the grid, with no message.
Why it matters. A person types the phrase, sees a blank page, and concludes the studio has nothing — while
body/ is exactly a before-and-after.
Repair. Split what is typed on spaces and keep a card that holds every word. When nothing matches, say so in one line and offer All pages.

7 · Three cards are filed where the reader will not look. gênant
Reduce cost with your own factory sits under Tools, while its own page carries the breadcrumb Studio › Speakers › The factory. Send mail as your domain sits under Tools, while
Publishing defines itself as how a thing reaches someone. Show a body, and put it straight sits under Motion, while two of its three ways to make one are drawings, which is
Diagrams.
Why it matters. Each one is a thing the reader would filter to a different chip to find.
Repair. Factory → Speakers. Mail → Publishing. Body → Diagrams. What each move costs is below.
8 · Frank's own refusals cannot be reached. gênant
The errand what did Frank refuse has no card, returns nothing in the find bar for taste or refuse, is listed only inside a closed row at the bottom of
all.html, and downloads when clicked.
Why it matters.
taste.md is the file the studio itself names as the owner of every look decision, and it is the hardest thing in the studio to reach.
Repair. Give taste an HTML page and a card. It is a judgement record, not a page shape, so its family is the open question below.
9 · The page that holds everything opens empty. gênant
all.html loads 1,280 px tall with all six of its sections closed. Its eighty-six links are behind six clicks.
Why it matters. The front door's own invitation is “Browse the full searchable library →”, and what arrives is six headings.
Repair. Open the sections by default, or show the count on each closed row so the reader knows what is inside.

10 · The mail page's last word is a state that stopped being true the same morning. gênant
mail/branded-mail.html § Status runs 02-08-2026, then “15-08-2026, later the same day: it works”, then a third block: “The morning of 15-08-2026, before that, it was not done at all. Nothing on this page is installed.” Nothing marks that block superseded.
Why it matters. The reader who scrolls to the end of the Status reads the false state, in the studio's own confident voice.
Repair. Newest first, and stamp the older blocks “superseded”.
The publishing page.
publishing/ answered its errand in one click, with the answer on the first screen, and every claim in it checks out. This is the page the others should copy.
The register page.
register/ answers on the first screen and is correctly filed.
The body page.
body/ shows twelve pictures against six links — the only page where the picture rule is beaten rather than met.
The links themselves. Of 109 live URLs followed, exactly two failed: inspiration/viktoroddy/ and the same folder linked from motion, both folders without an index.
The composition audits. Fourteen of the twenty-two pages pass every desktop check with zero failures.
Nineteen cards. Family today, what the page really holds, verdict.
| Card | Family today | What the page really is | Right? |
|---|---|---|---|
| Putting it online | Publishing | The three roads to a link | yes |
| Our page design rules | Documents | Type, spacing, colour, blocks | yes |
| The ready document formats | Documents | A section of all.html, seven shapes, four tiles broken | family right, target wrong |
| The user manual | Documents | How to make a manual of a software | yes |
| The UI review | Documents | A practice: reviewing screens and pages | family strained |
| The design benches | Inspiration | Where a project parks visual ideas | yes |
| The register of a document | Documents | The voice the prose is written in | yes |
| Illustrate a concept | Diagrams | 2D and 3D concept illustrations | yes |
| Put a speaker in the page | Speakers | Sizes, features, costs of a speaker | yes |
| Make your own speaker | Speakers | The wizard — but its three roads are not linked | target incomplete |
| Give a page a voice | Speakers | voice/index.html | duplicate |
| Speak to the machine | Speakers | voice/index.html, same page, same picture | duplicate |
| The guide | Speakers | A person you can talk with | yes |
| Make pages move | Motion | The recipes — skips the family's own front page | family right, target wrong |
| Ideas: sites, images, motion, films | Inspiration | The galleries | yes |
| Reduce cost with your own factory | Tools | The speaker factory — its breadcrumb says Speakers | wrong family |
| Send mail as your domain | Tools | How a message reaches someone | wrong family |
| Show a body, and put it straight | Motion | A before-and-after drawing grammar | wrong family |
| Make a film | Motion | Film recipes | yes |
Ten right · three in the wrong family · two that are the same card twice · three that point at the wrong page · one that strains its family.
Factory → Speakers. The page's own breadcrumb is Studio › Speakers › The factory, and its subject is making a speaker cheaply. Cost: Speakers grows to six cards, still under the eight the
README sets as the limit. Tools drops to one card — so this move only works with the next one.
Mail → Publishing.
Publishing opens with “not what a page is made of, but how it reaches someone”, which is what mail is. Cost: Tools loses its second card and stops being a chip; the tool register keeps its banner, where it already is. Publishing goes from one card to two, which is the point.
Body → Diagrams. Of its three ways to make one — drawn in the page, a line over real film, a 3D body in Blender — two are drawings. Cost: the files stay in body/, so a session grepping the folders still finds it, but a session filtering by the Motion chip no longer will. Put the words in the card.
Two chips hold one card each. Publishing and Diagrams. Pressing a one-card chip does exactly what clicking the card does. With mail moved in Publishing becomes two; with body moved in Diagrams becomes two. That is the whole repair — no new family is needed.
Documents is now the shelf for practices as well as page shapes. Five cards: two are shapes to copy, three are practices with a method and a verdict loop (the user manual, the UI review, the register). A reader looking for “review my page” does not press Documents. This is a finding about the families, not a card to move — the studio has no family for a practice, and inventing one is Frank's call, not the reviewer's.
taste.md has nowhere to go for the same reason.
Buried the other way.
motion/index.html — the Motion family's own front page, the one the top bar points at — is reachable from no card. The card sends the reader to motion-design.html, and the two share only five sentences, so whichever door you take you miss the other half.
Three roads unreachable. The card Make your own speaker promises “Take one that exists, invent a new one, or use your own face.” The three pages that answer it are live —
speaker-existing,
speaker-new,
speaker-yourself — and
make-your-own.html links to none of them. It links instead to two markdown files, which download.
Counted live, per page. Outward links exclude the repeated top bar; pictures are img, iframe and video. A waiver is allowed in exactly two cases: the target is on Frank's Mac, or the page must stay one self-contained file. Every waiver is named.
| Page | Links out | Pictures | Gap | Waiver |
|---|---|---|---|---|
| 38 | 0 | 38 | none — all thirty-eight are public galleries | |
| 31 | 0 | 31 | none — public tool sites | |
| 22 | 3 | 19 | none | |
| 11 | 0 | 11 | 1 of 11 is a Mac path | |
| 9 | 0 | 9 | none | |
| 86 | 16 | 70 | 15 of 86 are Mac paths; the rest, none | |
| 19 | 12 | 7 | 7 of 19 are Mac paths — waived | |
| 7 | 0 | 7 | all 7 are Mac paths — waived | |
| 6 | 0 | 6 | none | |
| 9 | 3 | 6 | none | |
| 4 | 0 | 4 | all 4 are Mac paths — waived | |
| 4 | 0 | 4 | none | |
| 7 | 4 | 3 | none | |
| 2 | 0 | 2 | 1 of 2 is a Mac path | |
| 3 | 1 | 2 | all 3 are Mac paths — waived | |
| 3 | 2 | 1 | 2 of 3 are Mac paths — waived | |
| 26 | 26 | 0 | — | |
| 0 | 0 | 0 | link nowhere; the rule never fires | |
| 0 | 2 | −2 | — | |
| 13 · 2 · 6 | 19 · 8 · 12 | −6 each | — | |
| Total | 308 | 108 | 200 | 69 waived as Mac paths |
The rule holds on the front door and collapses behind it. Every card on
index.html carries a picture, and three pages beat the rule. But
inspiration/, whose only job is to point at other people's sites, names thirty-eight of them and shows not one — and it is the page Frank's rule of 15-08-2026 was written for: “systematically put thumbnails when you refer to a site or an image”. bloquant for this question.
A picture that shows the wrong thing. In the Formats and Country-leaflet bands, several live previews are clipped at the tile's right edge mid-word, so the picture shows the left third of a page. That is about finding, not beauty. finition
| Errand | Gestures | What went wrong first | Verdict |
|---|---|---|---|
| I need the four speaker sizes | 2 | Pressed Speakers, then five cards none of which says “sizes”; picked one of five | Passes by a coin toss. The answer sits 2.3 screens down a 3.5 MB page |
| Where do I put a page online | 1 | Nothing | Pass. The best errand in the studio |
| What did Frank refuse | ≥6 | Searched taste: nothing. Searched refuse: the design benches, which is not it. Went to All pages, opened the last closed row, clicked — a file downloaded | Fail |
| What voice should this document be written in | 1 | Searched voice: five cards, four about speaking aloud. The right one happened to be first | Passes by luck. tone of voice returns nothing |
| Show me a before-and-after | ≥3 | Searched before and after: blank page, no message. Searched before: four cards. The right one is filed under Motion | Fail |
Load time was never the obstacle: every page opened in under 250 ms on this connection.
Where do I put a page online. Passes, slowly. The front door is 7,060 px tall — 8.4 screens. The first card starts 1,319 px down, and 693 of those pixels are the two banners. The teal banner is 497 px tall on a phone against 73 px on desktop, because its columns do not collapse: its sentence runs one or two words per line for three hundred pixels. gênant
I need the four speaker sizes. Fails. The chips wrap to three rows and work; the card opens; and then
people/ scrolls sideways by 147 px, so the reader is dragging a page wider than the phone while hunting a paragraph 2.3 screens down. bloquant

Right. The share skill and its plugin share-service v1.3.0 exist as
publishing/ describes. Every skill named in the pages is on disk or correctly marked archived, rag-gardien included. The four speaker sizes match the
README.
Wrong. The mail Status — repair 10.
Published but marked for deletion.
all.html lists three files from kennedy/_root-pack-absorbed-safe-to-delete/, a folder whose name is its own verdict. They are live and clickable. finition — delete the folder, then re-run build-index.py.
Marked unverified, honestly. kennedy/cheat-sheet-unverified.md says so in its title, and
tools.html marks four capabilities with a warning. That is the studio's own rule 3 working.
Stale-sounding but true.
diagramas/ says two engines are “Waiting for top-up”;
motion/ says the motion-so server waits on Frank's authorisation. Both are states, correctly dated. No repair.
Four rules live in two places. In every case the
README holds the second copy — and the README is reachable from no card, so the copy nobody can find is the one nobody will correct.
| Doctrine | Source — where a reader lands | Second copy |
|---|---|---|
| The three roads to publish | README § “Putting a page online”, six lines | |
| The eight registers and seven forbidden habits | README § “For how the text SOUNDS”, five lines | |
| The before-and-after grammar and its three roads | README § “Show a body”, four lines | |
| The four motion moments and the speaker's four sizes | README § “For animated sites”, three lines |
The source is always the family page, because that is where a card lands and where the pictures are. Repair. The README keeps one line and a link per family. It is the spine, not a second library.
Not a duplicate.
taste.md §3 restates the six suspended rules but cites the README as their home. That is a cross-reference, and it is correct.
Nothing is cut in this pass. Each proposal carries its short version, written out.
Sixteen lines restating four pages.
How the text sounds → register. Eight registers, one default per document type, chosen before writing. Seven habits forbidden in all eight.
Putting a page online → publishing. Three roads: a link now, the studio itself, Frank's two servers. The page says which, and what to check before any of them.
Show a body, and put it straight → body. A fault shown in place, then put right in the same frame. Three ways to make one.
Motion, video and people in the page → motion. Video under a calm UI, four motion moments, the speaker in four sizes.
Three of the five promise a guide who answers: “a guide answers questions” · “make the guide answer back” · “She answers, and can be cut off.” Two of those three open the same page, which is not the guide's.
Put a speaker in the page — She presents your page. Four sizes.
Make your own speaker — One photo, five minutes of voice, about three dollars.
Voice — A page that reads itself, and dictation into any app.
The guide — She answers questions, live, and can be cut off.
page on six cards · make on five · one on five · voice on three · guide on three · real, words, before on three each. The eye cannot choose between six cards that all say “page”.
Today: “the tool register: which tools Claude pilots end-to-end, which it only borrows code from.”
The tool register — what Claude drives, and what it only reads.
The audit flags
motion/motion-design.html (6 of 35 paragraphs past 90 characters, worst 149) and
inspiration/ (4 of 12). finition — cap the column, as the pages beside them already do.
Frank's real asks of the last weeks, checked one by one against the studio.
| His ask | In the studio? |
|---|---|
| A user manual | Yes — |
| A design bench | Yes — |
| A speaker | Yes — five cards, arguably one too many |
| A way to publish | Yes — |
| A demo page | No. The app's real screens in phone frames the viewer can operate, asked for on 02-08-2026, has no card, no page, and is named nowhere in the studio |
Two more, from the studio's own inbox.
inbox.md has been carrying two candidate needs that were never dug.
Charts and data. Parked 03-07-2026 as “chart/dataviz tooling beyond Kennedy's color picker”. The find bar returns nothing for chart or table, and no page covers a chart. A studio that decides what can go in a page has nothing to say about the commonest thing in a report.
The screen-mockup vocabulary. Parked 19-07-2026, a full block vocabulary for drawing a software screen inside a page, with the note that Frank had flagged the difference himself. Never promoted. The find bar returns nothing for mockup.
Sixty-eight pages with no card. build-index.py --check reports them; they sit behind a closed row of
all.html and, being markdown, download when clicked.
What is in there. The entire Kennedy shelf, twelve files, which the README calls layer ② of the method · the four root doctrine files,
README,
taste,
franks-baseline-ux,
tools · twelve motion reference notes · ten inspiration video notes · the five format specifications behind the format tiles · three built speaker pages the wizard forgets to link · three files in a folder named _root-pack-absorbed-safe-to-delete.
It is not a junk drawer. It holds the method, the taste record and the format specifications — everything the second reader, a session hunting for doctrine, actually needs. bloquant for that reader, and repairs 4 and 9 fix most of it at once.
A 404 on every page. All twenty-two pages ask for /favicon.ico and get 404. One file fixes it.
Card pictures far bigger than the card. A card image is drawn 382 px wide and served at 1,400 to 2,560 px. Four files alone weigh 908, 764, 661 and 267 KB; the front door pulls 3.8 MB once scrolled, and
body/ pulls 7.2 MB. Resize to 800 px.
Two folders answer 403. /formats/ and /kennedy/ have no index, so a reader who trims a URL gets a server error instead of a page.
Paragraphs that touch. The audit finds pairs with less than half a line between them on
people/,
make-your-own,
factory and
motion-design.
The badge and the chip disagree. Cards are badged MOTION; the chip says “Motion & films”. One name per notion.
Two find bars, different promises. The front door offers “try: leaflet, speaker, film, mail, voice”;
all.html offers “e.g. leaflet, callout, comparison, deck, law”. Neither finds what the other finds.
British spelling misses. colour returns nothing; color returns two cards. The studio's own README writes “colour”.
One card leads to an anchor, not a page. The ready document formats is the only card that opens a section of the catch-all page rather than a page of its own.

How it was run. Against the live site on 15-08-2026, per the specification. Captures with node ~/.claude/skills/page-review/review.js at 1440 px and 390 px; pictures in studio-review-15-08-2026/. Overflow and element geometry measured with playwright at 390 px; weight and requests after a full scroll; link status by following all 109 live URLs; the find bar simulated against the real data-find strings and the matching rule in index.html.
What was not touched. No studio page edited, nothing published, no new taxonomy invented, no source cited from outside the studio's own doctrine.
Next. Frank's verdict, then one build session that applies the moves, the cuts and the re-captures together — because moving three cards changes the text anyway.