Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
5.4 KiB
uhhm.no from a plan, 2026-09-23
The live site (uhhm/questions) rebuilt from plans/uhhm.yaml: the
five buckets it already holds, with their live state and event names
(events: on the plan, new today), plus two new ones. trials is
the client feature: a business describes how work flows through it
and an owner approves the intake by hand before anything is built;
the n8n workflow that builds the preview is named as attended_by
and does not exist yet. custody_requests is UHHM as the custodian
of the redoal network: a desk of its own for the custodians group,
which owners watch and invite into.
Words by Claude Sonnet (engines/claude.sh, 142 s for 14 pages),
verifier green by construction. Lifting words from the live repo
(--words-from) was tried and dropped: the lift is by position, so
the old front door's three headings landed on the new front door's
first three cards regardless of meaning, and "Attention is earned"
is the wording the 2026-09-21 run found at fault. Visitor: qwen3:8b,
one task per call, shown the whole card; 15 held-out personas, the
eight from runs/uhhm-2026-09-21 and seven for what is new.
| Round | Words | With descriptions | Headings only |
|---|---|---|---|
1 (r1/) |
Sonnet, as built | 16 of 27 | 19 of 27 |
2 (r2/) |
+ overrides.json: the custody card and the cards behind both doors reworded by hand |
19 of 27 | 20 of 27 |
3 (site/) |
+ overrides-r3.json: the doors as who the visitor is |
19 of 27 | 21 of 27 |
Round 1's defect was one card: "Get an answer from the people who keep the network" read as "contact us" and took seven personas of every kind on the front door. Naming redoal in the heading fixed that. Inside the doors, "Work with people who read the whole thing" and "Get a page fixed the way you'd write it" crossed over until they became "Work with us" and "Suggest a change to this website"; the join door has routed 3 of 3 on every question since.
What is left is the front door, and it is mostly not wording:
- The exhibition visitor ("your drawing network") and the interaction designer ("the drawing interface") go to the redoal card. The plan says subscribe and collaborate; the visitor is not wrong.
- The tech journalist ("what you release") and the app builder (redoal addresses in an app) go to the build door. Fair either way.
- On
/build, the architecture firm and the climbing gym pick "See your own business as a site, before you buy anything" over the brief, with descriptions. A paying client who wants to see first is the trial's whole point; if the plan should say so, make the trial the door for both and the brief a field. - The dance school lands three different places in three rounds: the visitor model's noise floor, not the page.
rate on round 3: LIX 19 to 33 (very easy to easy) on every page,
against 25 to 35 for the earlier contractor build. Behind the doors,
which/where/asked/next are full marks on every page and every control
passes. On the front door, "which" is 1 of 3 for the brief and 1 of 2
for the trial and the proposal: a door heading cannot say what each
card behind it says.
Before the branch (uhhm/questions trainer-rebuild) merges: the
site runs portal v0.3.36 and invite:/attended_by need v0.3.40 or
later, so the branch bumps PORTAL_RELEASE and IRIS_RELEASE to
v0.3.42; the custodians group has to exist in id.uhhm.no; invites
need KANIDM_API_TOKEN in the repo's secrets, or the two invite forms
fail closed with a message; and any unsubscribe link already sent by
the newsletter points at /subscribed, which is now
/decide/subscribe.
Files: score.sh runs the whole scoring; tasks-*.jsonl,
answers-*.jsonl, model.json, rated/ are round 3's; words-r3.json
is the words as used, the next rebuild starts from it with --words.
Rounds 4 and 5: the front door opens modestly, no doors
The same plan flattened the same afternoon: no doors, and the front door opens with what UHHM does, two cards for the two roles it exists for (a brief, and the redoal network), then a look-around card (what was built, the relay's live count), and only then the six offers. Round 5 heads each opener card with what that role gets, and gives both roles a move after sending: the client withdraws a brief, the person on the network says when a case is resolved.
| Round | Front door | With descriptions | Headings only |
|---|---|---|---|
3 (r3/) |
two doors, the custody card | 19 of 27 | 21 of 27 |
4 (r4/) |
opener, look around, six offers | 12 of 15 | 12 of 15 |
5 (site/) |
+ wins as headings, players' moves | 11 of 15 | 12 of 15 |
Fewer tasks, since no persona is asked twice. Per persona the flat
page routes at least as well as the doored one, and the misses are
the same judgment calls: the interaction designer and the app builder
between "Work with us" and the trial or the network, the dance school
anywhere. Two personas now pick the opener itself on headings alone
(the journalist, the rewriter): they are browsing, which is what the
card is for, and the scorer counts it as a miss. words-r5.json is
the words as used.
Round 6: the mails
Same words as round 5, plus mails: on the brief, the trial and the
custody case: the submitter hears on arrival and on every decision,
from portal@uhhm.no. The subjects and bodies are the builder's
fallbacks (what happened, and the link to the submitter's own move
where they have one); a model has not reworded them yet. This is what
the trainer-rebuild branch carries.