From 8b4e6e053be376dc3eddad3f7eb33f6875614b03 Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 23 Sep 2026 18:15:06 +0200 Subject: [PATCH] The front door opens modestly, and everything sits on it No doors: the page first says what UHHM does, two cards for the two roles it exists for (a brief, and the redoal network), each headed by what that role gets, then what there is to look at (what was built, the relay's live count), and only then the six offers. The client can withdraw a brief and the person on the network says when a case is resolved, so both roles have a move after sending. Rebuilt by portal-trainer from plans/uhhm.yaml, round 5. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH --- needs.yaml | 20 +-- questions/build/index.yaml | 94 ------------- questions/decide/commission.yaml | 9 ++ questions/decide/custody.yaml | 9 ++ questions/index.yaml | 235 +++++++++++++++++++++++++++++-- questions/join/index.yaml | 110 --------------- 6 files changed, 249 insertions(+), 228 deletions(-) delete mode 100644 questions/build/index.yaml create mode 100644 questions/decide/commission.yaml create mode 100644 questions/decide/custody.yaml delete mode 100644 questions/join/index.yaml diff --git a/needs.yaml b/needs.yaml index 39df5ec..4c8e7d3 100644 --- a/needs.yaml +++ b/needs.yaml @@ -7,14 +7,14 @@ needs: id: commission lands_in: projects max_fields: 4 - max_steps: 2 + max_steps: 1 stages: - open - accepted - declined success: - accepted - via: You run an organization that needs software built + via: 'Have us build it: send the brief' wants: a considered reply to a brief, from people who read the whole thing who: an organization with a problem it wants software to solve - done_when: @@ -25,7 +25,7 @@ needs: id: trial lands_in: trials max_fields: 6 - max_steps: 2 + max_steps: 1 stages: - open - approved @@ -33,7 +33,7 @@ needs: - declined success: - previewed - via: You run an organization that needs software built + via: See your own business as a site, before you buy anything wants: a first draft of a site for their own roles, built from their own words and approved by a person first 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 - done_when: @@ -44,7 +44,7 @@ needs: id: collaborate lands_in: applicants max_fields: 3 - max_steps: 2 + max_steps: 1 stages: - open - invited @@ -53,7 +53,7 @@ needs: - declined success: - departed - via: You want to join us, follow us, or fix a page on this site + via: Work with us wants: to be read as a person, and invited in if there is a fit who: someone who wants to work with us on what we build - done_when: @@ -63,12 +63,12 @@ needs: id: subscribe lands_in: subscribers max_fields: 2 - max_steps: 2 + max_steps: 1 stages: - open - unsubscribed success: [] - via: You want to join us, follow us, or fix a page on this site + via: Hear from us now and then wants: a note now and then, and an easy way out who: someone who wants to hear from us when there is something to say - done_when: @@ -79,14 +79,14 @@ needs: id: propose lands_in: development_proposals max_fields: 3 - max_steps: 2 + max_steps: 1 stages: - open - approved - rejected success: - approved - via: You want to join us, follow us, or fix a page on this site + via: Suggest a change to this website wants: the change read by a person and, if approved, made who: a visitor who sees how a page on this site should change - done_when: diff --git a/questions/build/index.yaml b/questions/build/index.yaml deleted file mode 100644 index 2439592..0000000 --- a/questions/build/index.yaml +++ /dev/null @@ -1,94 +0,0 @@ -alternatives: -- action: /received/commission - consequence: - - 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. - encouragements: - - Someone here reads every brief in full before writing back. - features: - - description: We read your brief and either take it on or tell you honestly if it's not a fit. - icon: lucide:route - name: What happens next - - description: One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly. - icon: lucide:user-check - name: Who reads this - - description: The more of the problem you put in, the better the reply. - icon: lucide:briefcase - name: Tell us the problem - requirements: - - label: Your name - name: name - placeholder: Sara Nilsen - type: text - - label: Your email - name: email - placeholder: sara@company.com - type: email - - label: The problem you want solved - name: project - placeholder: Our drivers log hours on paper and it takes a day to get them into payroll. - type: textarea - - label: Your organization - name: organization - placeholder: Nilsen Transport AS - type: text - - label: Who we should talk to - name: org_contact - optional: true - placeholder: Sara Nilsen, ops manager - type: text - name: 'Have us build it: send the brief' - record_as: projects -- action: /received/trial - consequence: - - Start the draft - 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. - encouragements: - - A person looks at what you send before anything gets built. - features: - - description: We look at what you sent and, if it's a fit, build a draft from your own roles and words for you to see before anything moves further. - icon: lucide:route - name: What happens next - - description: An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly. - icon: lucide:user-check - name: Who reads this - - description: Answer in your own words - there's no wrong way to describe your business. - icon: lucide:layers - name: Describe your business - requirements: - - label: Your business - name: business - placeholder: Nilsen Transport AS - type: text - - label: Your email - name: email - placeholder: sara@company.com - type: email - - label: What you do - name: what_we_do - placeholder: We move freight for local businesses and handle the paperwork for them. - type: textarea - - label: Who comes to you - name: who_comes_to_us - placeholder: Local businesses that need something moved on short notice. - type: textarea - - label: What you keep track of - name: what_we_keep_track_of - placeholder: Bookings, driver hours, and which loads are still waiting on a signature. - type: textarea - - label: Who's involved - name: who_is_involved - placeholder: Drivers, dispatchers, and the customers waiting on their delivery. - type: textarea - - label: What slows you down - name: what_slows_us_down - optional: true - placeholder: Approvals sit in someone's inbox for days before anyone acts on them. - type: textarea - name: See your own business as a site, before you buy anything - record_as: trials -description: Have a problem software should solve, or want to see your own way of working as a site before you pay anyone? -name: Do you have a brief, or do you want to see your business as a site first? -responsible: - contact: bl@uhhm.no - name: Bendik Aagaard Lynghaug diff --git a/questions/decide/commission.yaml b/questions/decide/commission.yaml new file mode 100644 index 0000000..4d2ac0c --- /dev/null +++ b/questions/decide/commission.yaml @@ -0,0 +1,9 @@ +alternatives: +- description: '' + name: Declined + self_transition: + bucket: projects + label: Declined + to: declined +description: '' +name: What would you like to do? diff --git a/questions/decide/custody.yaml b/questions/decide/custody.yaml new file mode 100644 index 0000000..4573513 --- /dev/null +++ b/questions/decide/custody.yaml @@ -0,0 +1,9 @@ +alternatives: +- description: '' + name: Resolved + self_transition: + bucket: custody_requests + label: Resolved + to: resolved +description: '' +name: What would you like to do? diff --git a/questions/index.yaml b/questions/index.yaml index 43b5b34..09f6cd1 100644 --- a/questions/index.yaml +++ b/questions/index.yaml @@ -1,22 +1,229 @@ alternatives: -- action: /build - consequence: - - Start here - 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. +- description: Two things, both built here and both running. features: - - description: '' + - description: 'UHHM builds and carries the redoal network: the gesture math, the relay, the first node, and the portal this page runs on. Run a node, build on it, or have a recording removed, and you say when it is resolved.' + name: A network that answers to you + - description: 'Infrastructure, tools and products for organizations that can say what problem they have. Bring the brief, or first see your own way of working as a working site, before you pay for anything. The brief stays yours: you can withdraw it yourself.' + icon: lucide:layers + name: A considered reply to your brief, and software that fits the argument + name: What UHHM does +- description: Nothing to fill in here. What is already out in the world, and the network as it runs right now. + features: + - description: A few things already out in the world. icon: lucide:hammer - name: For a business or an organization with a job for us - name: You run an organization that needs software built -- action: /join + name: What we have built + resource: + jq: | + .[] | {name: .name, description: .description, url: (if .website != null and .website != "" then .website elif .private then null else .html_url end)} + public: true + source: + kind: gitea_starred + username: bl + - description: Straight from the relay, the first node of the network. + icon: lucide:activity + name: The redoal network, live + resource: + empty: The first voice has not echoed yet. + jq: | + { "name": (.voices_echoed | tostring), + "description": "voices echoed so far" } + public: true + source: + kind: url + url: https://relay.redoal.com/pulse + name: Have a look around first +- action: /received/commission consequence: - - Start here - 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. + - 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. + encouragements: + - Someone here reads every brief in full before writing back. features: - - description: '' + - description: We read your brief and either take it on or tell you honestly if it's not a fit. + icon: lucide:route + name: What happens next + - description: One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly. + icon: lucide:user-check + name: Who reads this + - description: The more of the problem you put in, the better the reply. + icon: lucide:briefcase + name: Tell us the problem + requirements: + - label: Your name + name: name + placeholder: Sara Nilsen + type: text + - label: Your email + name: email + placeholder: sara@company.com + type: email + - label: The problem you want solved + name: project + placeholder: Our drivers log hours on paper and it takes a day to get them into payroll. + type: textarea + - label: Your organization + name: organization + placeholder: Nilsen Transport AS + type: text + - label: Who we should talk to + name: org_contact + optional: true + placeholder: Sara Nilsen, ops manager + type: text + name: 'Have us build it: send the brief' + record_as: projects +- action: /received/trial + consequence: + - Start the draft + 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. + encouragements: + - A person looks at what you send before anything gets built. + features: + - description: We look at what you sent and, if it's a fit, build a draft from your own roles and words for you to see before anything moves further. + icon: lucide:route + name: What happens next + - description: An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly. + icon: lucide:user-check + name: Who reads this + - description: Answer in your own words - there's no wrong way to describe your business. + icon: lucide:layers + name: Describe your business + requirements: + - label: Your business + name: business + placeholder: Nilsen Transport AS + type: text + - label: Your email + name: email + placeholder: sara@company.com + type: email + - label: What you do + name: what_we_do + placeholder: We move freight for local businesses and handle the paperwork for them. + type: textarea + - label: Who comes to you + name: who_comes_to_us + placeholder: Local businesses that need something moved on short notice. + type: textarea + - label: What you keep track of + name: what_we_keep_track_of + placeholder: Bookings, driver hours, and which loads are still waiting on a signature. + type: textarea + - label: Who's involved + name: who_is_involved + placeholder: Drivers, dispatchers, and the customers waiting on their delivery. + type: textarea + - label: What slows you down + name: what_slows_us_down + optional: true + placeholder: Approvals sit in someone's inbox for days before anyone acts on them. + type: textarea + name: See your own business as a site, before you buy anything + record_as: trials +- action: /received/collaborate + consequence: + - Get in touch + 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.' + encouragements: + - A person reads this, not a form filter — worth the ten minutes. + features: + - description: We read what you send and get back to you. If there's a fit, we invite you in and you start working with us — and if things ever change, that's fine too. + icon: lucide:route + name: What happens next + - description: One of the owners reads this directly — for anything urgent, write to bl@uhhm.no. + icon: lucide:user-check + name: Who reads this + - description: Tell us who you are and what kind of work you're after. icon: lucide:handshake - name: For a person, on their own behalf - name: You want to join us, follow us, or fix a page on this site + name: Say hello + requirements: + - label: Name + name: name + placeholder: Your name + type: text + - label: Email + name: email + placeholder: you@example.com + type: email + - label: What kind of work + name: interest + placeholder: Backend work, or something design-heavy + type: textarea + - label: Tell us more + name: note + optional: true + placeholder: A bit about what you'd want to work on, or a link to your work + type: textarea + name: Work with us + record_as: applicants +- action: /received/subscribe + consequence: + - Sign up + description: You'd rather hear from us now and then than check back on your own. + encouragements: + - One click unsubscribes you later, no questions asked. + features: + - description: You're on the list. We write when there's something worth saying, and you can leave the list whenever you like. + icon: lucide:bell + name: What happens next + - description: An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first. + icon: lucide:user-check + name: Who reads this + - description: Just your email, or your name too if you'd like. + icon: lucide:mail + name: Stay in the loop + requirements: + - label: Name + name: name + placeholder: Your name + type: text + - label: Email + name: email + placeholder: you@example.com + type: email + name: Hear from us now and then + record_as: subscribers +- action: /received/propose + consequence: + - Send change + description: You have spotted a page on uhhm.no that should read differently, and you know roughly how. + encouragements: + - Even a rough version helps — we can tidy the wording ourselves. + features: + - description: Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back. + icon: lucide:route + name: What happens next + - description: An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive. + icon: lucide:user-check + name: Who reads this + - description: Point us to the page and show us the change. + icon: lucide:pencil + name: Propose a change + requirements: + - label: Your name + name: submitted_by + placeholder: Your name + type: text + - label: Email + name: email + optional: true + placeholder: you@example.com + type: email + - label: Which page + name: page + optional: true + placeholder: questions/join/index.yaml + type: text + - label: Why this is better + name: rationale + placeholder: The current heading doesn't say what you actually get + type: textarea + - label: Your proposed text + name: proposed_yaml + placeholder: 'heading: "A clearer way to say this"' + type: textarea + name: Suggest a change to this website + record_as: development_proposals - action: /received/custody consequence: - Send to a custodian @@ -57,7 +264,7 @@ alternatives: name: 'You are on the redoal network: a node, an app, or a recording that concerns you' record_as: custody_requests description: UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath. -name: Who are you, and what do you need from UHHM? +name: What is UHHM, and what can you get here? responsible: contact: bl@uhhm.no name: Bendik Aagaard Lynghaug diff --git a/questions/join/index.yaml b/questions/join/index.yaml deleted file mode 100644 index 450e4c6..0000000 --- a/questions/join/index.yaml +++ /dev/null @@ -1,110 +0,0 @@ -alternatives: -- action: /received/collaborate - consequence: - - Get in touch - 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.' - encouragements: - - A person reads this, not a form filter — worth the ten minutes. - features: - - description: We read what you send and get back to you. If there's a fit, we invite you in and you start working with us — and if things ever change, that's fine too. - icon: lucide:route - name: What happens next - - description: One of the owners reads this directly — for anything urgent, write to bl@uhhm.no. - icon: lucide:user-check - name: Who reads this - - description: Tell us who you are and what kind of work you're after. - icon: lucide:handshake - name: Say hello - requirements: - - label: Name - name: name - placeholder: Your name - type: text - - label: Email - name: email - placeholder: you@example.com - type: email - - label: What kind of work - name: interest - placeholder: Backend work, or something design-heavy - type: textarea - - label: Tell us more - name: note - optional: true - placeholder: A bit about what you'd want to work on, or a link to your work - type: textarea - name: Work with us - record_as: applicants -- action: /received/subscribe - consequence: - - Sign up - description: You'd rather hear from us now and then than check back on your own. - encouragements: - - One click unsubscribes you later, no questions asked. - features: - - description: You're on the list. We write when there's something worth saying, and you can leave the list whenever you like. - icon: lucide:bell - name: What happens next - - description: An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first. - icon: lucide:user-check - name: Who reads this - - description: Just your email, or your name too if you'd like. - icon: lucide:mail - name: Stay in the loop - requirements: - - label: Name - name: name - placeholder: Your name - type: text - - label: Email - name: email - placeholder: you@example.com - type: email - name: Hear from us now and then - record_as: subscribers -- action: /received/propose - consequence: - - Send change - description: You have spotted a page on uhhm.no that should read differently, and you know roughly how. - encouragements: - - Even a rough version helps — we can tidy the wording ourselves. - features: - - description: Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back. - icon: lucide:route - name: What happens next - - description: An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive. - icon: lucide:user-check - name: Who reads this - - description: Point us to the page and show us the change. - icon: lucide:pencil - name: Propose a change - requirements: - - label: Your name - name: submitted_by - placeholder: Your name - type: text - - label: Email - name: email - optional: true - placeholder: you@example.com - type: email - - label: Which page - name: page - optional: true - placeholder: questions/join/index.yaml - type: text - - label: Why this is better - name: rationale - placeholder: The current heading doesn't say what you actually get - type: textarea - - label: Your proposed text - name: proposed_yaml - placeholder: 'heading: "A clearer way to say this"' - type: textarea - name: Suggest a change to this website - record_as: development_proposals -description: 'Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.' -name: How do you want to be part of this? -responsible: - contact: bl@uhhm.no - name: Bendik Aagaard Lynghaug