Files
portal/runs/uhhm-2026-09-23/model.json
T
Bendik Aagaard LynghaugandClaude Fable 5.1 9e511b5b57 runs: uhhm.no from a plan, three rounds of wording
Sonnet writes, qwen3:8b routes: 16 then 19 of 27 with descriptions,
19 then 21 of 27 on headings alone. One card took seven personas
until it named redoal; what remains is on the front door and mostly
a judgment the plan could make differently, not the words.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-23 15:09:35 +02:00

939 lines
30 KiB
JSON

{
"needs": [
{
"id": "commission",
"who": "an organization with a problem it wants software to solve",
"wants": "a considered reply to a brief, from people who read the whole thing",
"enters_as": null,
"lands_in": "projects",
"handled_by": "owners",
"done_when": [
"accepted",
"declined"
],
"success": [
"accepted"
],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You run an organization that needs software built"
],
"alternative": "You run an organization that needs software built",
"fields": []
},
{
"page": "/build",
"question": "Do you have a brief, or do you want to see your business as a site first?",
"options": [
{
"name": "Have us build it: send the brief",
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing."
},
{
"name": "See your own business as a site, before you buy anything",
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through."
}
],
"expect": [
"Have us build it: send the brief"
],
"alternative": "Have us build it: send the brief",
"fields": [
{
"name": "name",
"label": "Your name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Your email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "project",
"label": "The problem you want solved",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "organization",
"label": "Your organization",
"type": "text",
"optional": false,
"options": []
},
{
"name": "org_contact",
"label": "Who we should talk to",
"type": "text",
"optional": true,
"options": []
}
]
}
]
},
{
"id": "trial",
"who": "someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything",
"wants": "a first draft of a site for their own roles, built from their own words and approved by a person first",
"enters_as": null,
"lands_in": "trials",
"handled_by": "owners",
"done_when": [
"previewed",
"declined"
],
"success": [
"previewed"
],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You run an organization that needs software built"
],
"alternative": "You run an organization that needs software built",
"fields": []
},
{
"page": "/build",
"question": "Do you have a brief, or do you want to see your business as a site first?",
"options": [
{
"name": "Have us build it: send the brief",
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing."
},
{
"name": "See your own business as a site, before you buy anything",
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through."
}
],
"expect": [
"See your own business as a site, before you buy anything"
],
"alternative": "See your own business as a site, before you buy anything",
"fields": [
{
"name": "business",
"label": "Your business",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Your email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "what_we_do",
"label": "What you do",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "who_comes_to_us",
"label": "Who comes to you",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "what_we_keep_track_of",
"label": "What you keep track of",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "who_is_involved",
"label": "Who's involved",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "what_slows_us_down",
"label": "What slows you down",
"type": "textarea",
"optional": true,
"options": []
}
]
}
]
},
{
"id": "collaborate",
"who": "someone who wants to work with us on what we build",
"wants": "to be read as a person, and invited in if there is a fit",
"enters_as": null,
"lands_in": "applicants",
"handled_by": "owners",
"done_when": [
"departed",
"declined"
],
"success": [
"departed"
],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You want to join us, follow us, or fix a page on this site"
],
"alternative": "You want to join us, follow us, or fix a page on this site",
"fields": []
},
{
"page": "/join",
"question": "How do you want to be part of this?",
"options": [
{
"name": "Work with us",
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
},
{
"name": "Hear from us now and then",
"description": "You'd rather hear from us now and then than check back on your own."
},
{
"name": "Suggest a change to this website",
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
}
],
"expect": [
"Work with us"
],
"alternative": "Work with us",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "interest",
"label": "What kind of work",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "note",
"label": "Tell us more",
"type": "textarea",
"optional": true,
"options": []
}
]
}
]
},
{
"id": "subscribe",
"who": "someone who wants to hear from us when there is something to say",
"wants": "a note now and then, and an easy way out",
"enters_as": null,
"lands_in": "subscribers",
"handled_by": "owners",
"done_when": [
"unsubscribed"
],
"success": [],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You want to join us, follow us, or fix a page on this site"
],
"alternative": "You want to join us, follow us, or fix a page on this site",
"fields": []
},
{
"page": "/join",
"question": "How do you want to be part of this?",
"options": [
{
"name": "Work with us",
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
},
{
"name": "Hear from us now and then",
"description": "You'd rather hear from us now and then than check back on your own."
},
{
"name": "Suggest a change to this website",
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
}
],
"expect": [
"Hear from us now and then"
],
"alternative": "Hear from us now and then",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "propose",
"who": "a visitor who sees how a page on this site should change",
"wants": "the change read by a person and, if approved, made",
"enters_as": null,
"lands_in": "development_proposals",
"handled_by": "owners",
"done_when": [
"approved",
"rejected"
],
"success": [
"approved"
],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You want to join us, follow us, or fix a page on this site"
],
"alternative": "You want to join us, follow us, or fix a page on this site",
"fields": []
},
{
"page": "/join",
"question": "How do you want to be part of this?",
"options": [
{
"name": "Work with us",
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
},
{
"name": "Hear from us now and then",
"description": "You'd rather hear from us now and then than check back on your own."
},
{
"name": "Suggest a change to this website",
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
}
],
"expect": [
"Suggest a change to this website"
],
"alternative": "Suggest a change to this website",
"fields": [
{
"name": "submitted_by",
"label": "Your name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": true,
"options": []
},
{
"name": "page",
"label": "Which page",
"type": "text",
"optional": true,
"options": []
},
{
"name": "rationale",
"label": "Why this is better",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "proposed_yaml",
"label": "Your proposed text",
"type": "textarea",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "custody",
"who": "someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node",
"wants": "an answer from a custodian, and action where the network keeps something it should not",
"enters_as": null,
"lands_in": "custody_requests",
"handled_by": "custodians",
"done_when": [
"resolved",
"declined"
],
"success": [
"resolved"
],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You are on the redoal network: a node, an app, or a recording that concerns you"
],
"alternative": "You are on the redoal network: a node, an app, or a recording that concerns you",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "about",
"label": "What's going on",
"type": "select",
"optional": false,
"options": [
"Running a node of my own",
"Building on the network",
"Something the network keeps about me",
"Something else"
]
},
{
"name": "what",
"label": "In short",
"type": "textarea",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "prospect",
"who": "an owner who has met an organization worth following up",
"wants": "it written down and walked through its states from the desk",
"enters_as": "owners",
"lands_in": "organizations",
"handled_by": "owners",
"done_when": [
"past_client"
],
"success": [],
"steps": [
{
"page": "/owners/prospect",
"question": "Is there an organization I should be keeping track of?",
"options": [
{
"name": "Keep an organization on your radar",
"description": "One line per organization worth watching, moved through the stages as things develop."
}
],
"expect": [
"Keep an organization on your radar"
],
"alternative": "Keep an organization on your radar",
"fields": [
{
"name": "name",
"label": "Organization",
"type": "text",
"optional": false,
"options": []
},
{
"name": "contact",
"label": "Contact",
"type": "text",
"optional": false,
"options": []
},
{
"name": "note",
"label": "Note",
"type": "textarea",
"optional": true,
"options": []
}
]
}
]
}
],
"buckets": {
"projects": {
"initial": "open",
"transitions": {
"open": [
"accepted",
"declined"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "open",
"to": "accepted",
"label": "Accept brief"
},
{
"from": "open",
"to": "declined",
"label": "Decline brief"
}
]
}
],
"self_moves": []
},
"trials": {
"initial": "open",
"transitions": {
"approved": [
"previewed",
"declined"
],
"open": [
"approved",
"declined"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "approved",
"to": "previewed",
"label": "Mark previewed"
},
{
"from": "approved",
"to": "declined",
"label": "Decline trial"
},
{
"from": "open",
"to": "approved",
"label": "Approve trial"
},
{
"from": "open",
"to": "declined",
"label": "Decline trial"
}
]
}
],
"self_moves": []
},
"applicants": {
"initial": "open",
"transitions": {
"open": [
"invited",
"declined"
],
"invited": [
"active",
"declined"
],
"active": [
"departed",
"declined"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "active",
"to": "departed",
"label": "Mark departed"
},
{
"from": "active",
"to": "declined",
"label": "End collaboration"
},
{
"from": "invited",
"to": "active",
"label": "Confirm active"
},
{
"from": "invited",
"to": "declined",
"label": "Withdraw invite"
},
{
"from": "open",
"to": "invited",
"label": "Send invite"
},
{
"from": "open",
"to": "declined",
"label": "Decline applicant"
}
]
}
],
"self_moves": []
},
"subscribers": {
"initial": "open",
"transitions": {
"open": [
"unsubscribed"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "open",
"to": "unsubscribed",
"label": "Unsubscribe them"
}
]
}
],
"self_moves": [
"unsubscribed"
]
},
"development_proposals": {
"initial": "open",
"transitions": {
"open": [
"approved",
"rejected"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "open",
"to": "approved",
"label": "Approve change"
},
{
"from": "open",
"to": "rejected",
"label": "Reject change"
}
]
}
],
"self_moves": []
},
"custody_requests": {
"initial": "open",
"transitions": {
"in_dialogue": [
"resolved",
"declined"
],
"open": [
"in_dialogue",
"declined"
]
},
"desks": [
{
"page": "/custodians",
"group": "custodians",
"moves": [
{
"from": "in_dialogue",
"to": "resolved",
"label": "Mark resolved"
},
{
"from": "in_dialogue",
"to": "declined",
"label": "Close, no action"
},
{
"from": "open",
"to": "in_dialogue",
"label": "Open dialogue"
},
{
"from": "open",
"to": "declined",
"label": "Decline case"
}
]
},
{
"page": "/owners",
"group": "owners",
"moves": []
}
],
"self_moves": []
},
"organizations": {
"initial": "prospect",
"transitions": {
"prospect": [
"client",
"past_client"
],
"client": [
"past_client"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "client",
"to": "past_client",
"label": "Mark past client"
},
{
"from": "prospect",
"to": "client",
"label": "Mark as client"
},
{
"from": "prospect",
"to": "past_client",
"label": "Mark not pursued"
}
]
}
],
"self_moves": []
}
},
"personas": [
{
"id": "architecture-firm",
"need": "commission",
"text": "We run a small architecture firm and our project files are scattered across three cloud drives. We want to pay someone to set up proper storage and backups we control ourselves."
},
{
"id": "climbing-gym-founder",
"need": "commission",
"text": "I have an idea for a booking app for climbing gyms and I'm looking for a team that can build the first version with me."
},
{
"id": "municipality-buyer",
"need": "commission",
"text": "Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."
},
{
"id": "exhibition-visitor",
"need": "subscribe",
"text": "I saw your drawing network at an exhibition and liked it. I don't want to get involved, I'd just like to know when there is news."
},
{
"id": "tech-journalist",
"need": "subscribe",
"text": "I write about Nordic technology. Keep me posted on what you release so I can cover it."
},
{
"id": "rust-developer",
"need": "collaborate",
"text": "I'm a Rust developer between jobs and I like that you build in the open. I would love to contribute, and maybe join you."
},
{
"id": "interaction-designer",
"need": "collaborate",
"text": "I'm an interaction designer. I want to work with you on the drawing interface."
},
{
"id": "student-intern",
"need": "collaborate",
"text": "I'm a computer science student looking for a summer internship doing infrastructure work."
},
{
"id": "plumber-owner",
"need": "trial",
"text": "I run a plumbing company with four vans. Jobs come in by phone and text and some get lost. I'd like to see how this would look for us before I spend any money."
},
{
"id": "dance-school",
"need": "trial",
"text": "We are a dance school. Enrolments, cancellations and invoices all go through one email inbox that only I understand. Can you show me a version made for us?"
},
{
"id": "node-runner",
"need": "custody",
"text": "I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?"
},
{
"id": "recorded-name",
"need": "custody",
"text": "Someone left a recording on redoal that says my full name and where I live. I want it gone, and I want to know who is responsible for that network."
},
{
"id": "app-builder",
"need": "custody",
"text": "I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?"
},
{
"id": "wording-fix",
"need": "propose",
"text": "The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."
},
{
"id": "rewrite",
"need": "propose",
"text": "One page on this site reads wrong to me and I know exactly how I'd rewrite it. Where do I send the new text?"
}
]
}