From 9e7f16c4893d265e498d8e7206a3fce0c812d2aa Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 23 Sep 2026 18:24:23 +0200 Subject: [PATCH] build: the front door opens modestly, and a featured role must have a move `does:` on a plan, at most two features, each `for:` a need: the first card of the front door says what the business does, one role each, headed by what that role gets, and asks for nothing. `shows:` is the second card, portal resource blocks passed through verbatim plus every public view. Only then the offers, as more alternatives on the same page; the front-door warning moves to seven and stops recommending doors. `Plan::spectators()` warns when a featured need gives the submitter neither a move nor a view. uhhm.no rounds 4 and 5 (flat, at least as good per persona) and Tomter Vel flat (worse: ten offers on one page, the close pairs collide) are in runs/. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH --- README.md | 20 + plans/tomtervel.yaml | 39 +- plans/uhhm.yaml | 54 +- runs/tomtervel-flat-2026-09-23/README.md | 36 + .../answers-full.jsonl | 20 + .../answers-skim.jsonl | 20 + runs/tomtervel-flat-2026-09-23/iris.log | 31 + runs/tomtervel-flat-2026-09-23/model.json | 1595 +++++++++++++++++ runs/tomtervel-flat-2026-09-23/opener-no.json | 23 + .../tomtervel-flat-2026-09-23/rated/rate.json | 299 +++ runs/tomtervel-flat-2026-09-23/score.log | 39 + runs/tomtervel-flat-2026-09-23/score.sh | 16 + .../site/aggregates.yaml | 162 ++ .../tomtervel-flat-2026-09-23/site/needs.yaml | 265 +++ .../questions/arrangementer/_section.yaml | 1 + .../site/questions/arrangementer/index.yaml | 65 + .../site/questions/decide/bli-medlem.yaml | 9 + .../site/questions/decide/dele-utstyr.yaml | 9 + .../site/questions/decide/kan-hjelpe.yaml | 9 + .../site/questions/decide/trenger-hjelp.yaml | 9 + .../questions/horingsinstans/_section.yaml | 1 + .../site/questions/horingsinstans/index.yaml | 59 + .../site/questions/index.yaml | 382 ++++ .../site/questions/kasserer/_section.yaml | 1 + .../site/questions/kasserer/index.yaml | 102 ++ .../site/questions/komiteer/_section.yaml | 1 + .../site/questions/komiteer/index.yaml | 44 + .../site/questions/komiteer/utlegg-sent.yaml | 10 + .../site/questions/komiteer/utlegg.yaml | 38 + .../site/questions/lekeplasser/_section.yaml | 1 + .../site/questions/lekeplasser/index.yaml | 59 + .../site/questions/nabohjelp/_section.yaml | 1 + .../site/questions/nabohjelp/index.yaml | 85 + .../site/questions/received/anleggsfeil.yaml | 15 + .../site/questions/received/bli-medlem.yaml | 10 + .../site/questions/received/dele-utstyr.yaml | 15 + .../questions/received/endre-medlemskap.yaml | 10 + .../site/questions/received/hjelpe-til.yaml | 10 + .../questions/received/horingsinnspill.yaml | 10 + .../site/questions/received/kan-hjelpe.yaml | 10 + .../site/questions/received/komite.yaml | 10 + .../site/questions/received/trafikkfare.yaml | 15 + .../questions/received/trenger-hjelp.yaml | 10 + .../questions/status/anleggsfeil/index.yaml | 22 + .../site/questions/status/oppslag/index.yaml | 22 + .../status/trafikkmeldinger/index.yaml | 22 + .../site/questions/styret/_section.yaml | 1 + .../site/questions/styret/index.yaml | 219 +++ .../site/questions/trafikk/_section.yaml | 1 + .../site/questions/trafikk/index.yaml | 65 + runs/tomtervel-flat-2026-09-23/site/site.yaml | 2 + .../tomtervel-flat-2026-09-23/site/words.json | 868 +++++++++ .../tasks-full.jsonl | 20 + .../tasks-skim.jsonl | 20 + runs/tomtervel-flat-2026-09-23/words.json | 856 +++++++++ runs/uhhm-2026-09-23/README.md | 25 + runs/uhhm-2026-09-23/answers-full.jsonl | 40 +- runs/uhhm-2026-09-23/answers-skim.jsonl | 36 +- runs/uhhm-2026-09-23/iris.log | 28 +- runs/uhhm-2026-09-23/model.json | 239 +-- runs/uhhm-2026-09-23/overrides-r4.json | 21 + runs/uhhm-2026-09-23/overrides-r5.json | 10 + runs/uhhm-2026-09-23/r3/answers-full.jsonl | 27 + runs/uhhm-2026-09-23/r3/answers-skim.jsonl | 27 + runs/uhhm-2026-09-23/r3/rated/rate.json | 274 +++ runs/uhhm-2026-09-23/r3/score.log | 34 + runs/uhhm-2026-09-23/r3/site/aggregates.yaml | 113 ++ .../site/llm/01-questions_build_index.yaml.md | 174 ++ .../llm/02-questions_custodians_index.yaml.md | 108 ++ .../llm/03-questions_decide_subscribe.yaml.md | 60 + .../r3/site/llm/04-questions_index.yaml.md | 136 ++ .../site/llm/05-questions_join_index.yaml.md | 208 +++ .../llm/06-questions_owners_index.yaml.md | 236 +++ .../07-questions_owners_prospect-sent.yaml.md | 52 + .../llm/08-questions_owners_prospect.yaml.md | 92 + .../09-questions_received_collaborate.yaml.md | 52 + .../10-questions_received_commission.yaml.md | 52 + .../llm/11-questions_received_custody.yaml.md | 52 + .../llm/12-questions_received_propose.yaml.md | 52 + .../13-questions_received_subscribe.yaml.md | 52 + .../llm/14-questions_received_trial.yaml.md | 52 + runs/uhhm-2026-09-23/r3/site/needs.yaml | 173 ++ .../{ => r3}/site/questions/build/index.yaml | 0 .../site/questions/custodians/_section.yaml | 1 + .../r3/site/questions/custodians/index.yaml | 65 + .../r3/site/questions/decide/subscribe.yaml | 9 + .../r3/site/questions/index.yaml | 63 + .../{ => r3}/site/questions/join/index.yaml | 0 .../r3/site/questions/owners/_section.yaml | 1 + .../r3/site/questions/owners/index.yaml | 212 +++ .../site/questions/owners/prospect-sent.yaml | 10 + .../r3/site/questions/owners/prospect.yaml | 39 + .../site/questions/received/collaborate.yaml | 10 + .../site/questions/received/commission.yaml | 10 + .../r3/site/questions/received/custody.yaml | 10 + .../r3/site/questions/received/propose.yaml | 10 + .../r3/site/questions/received/subscribe.yaml | 10 + .../r3/site/questions/received/trial.yaml | 10 + runs/uhhm-2026-09-23/r3/site/site.yaml | 2 + runs/uhhm-2026-09-23/r3/site/words.json | 426 +++++ runs/uhhm-2026-09-23/r4/answers-full.jsonl | 15 + runs/uhhm-2026-09-23/r4/answers-skim.jsonl | 15 + runs/uhhm-2026-09-23/r4/rated/rate.json | 164 ++ runs/uhhm-2026-09-23/r4/score.log | 21 + runs/uhhm-2026-09-23/r4/site/aggregates.yaml | 113 ++ .../site/llm/01-questions_build_index.yaml.md | 174 ++ .../llm/02-questions_custodians_index.yaml.md | 108 ++ .../llm/03-questions_decide_subscribe.yaml.md | 60 + .../r4/site/llm/04-questions_index.yaml.md | 136 ++ .../site/llm/05-questions_join_index.yaml.md | 208 +++ .../llm/06-questions_owners_index.yaml.md | 236 +++ .../07-questions_owners_prospect-sent.yaml.md | 52 + .../llm/08-questions_owners_prospect.yaml.md | 92 + .../09-questions_received_collaborate.yaml.md | 52 + .../10-questions_received_commission.yaml.md | 52 + .../llm/11-questions_received_custody.yaml.md | 52 + .../llm/12-questions_received_propose.yaml.md | 52 + .../13-questions_received_subscribe.yaml.md | 52 + .../llm/14-questions_received_trial.yaml.md | 52 + runs/uhhm-2026-09-23/r4/site/needs.yaml | 173 ++ .../site/questions/custodians/_section.yaml | 1 + .../r4/site/questions/custodians/index.yaml | 65 + .../r4/site/questions/decide/subscribe.yaml | 9 + .../r4/site/questions/index.yaml | 270 +++ .../r4/site/questions/owners/_section.yaml | 1 + .../r4/site/questions/owners/index.yaml | 212 +++ .../site/questions/owners/prospect-sent.yaml | 10 + .../r4/site/questions/owners/prospect.yaml | 39 + .../site/questions/received/collaborate.yaml | 10 + .../site/questions/received/commission.yaml | 10 + .../r4/site/questions/received/custody.yaml | 10 + .../r4/site/questions/received/propose.yaml | 10 + .../r4/site/questions/received/subscribe.yaml | 10 + .../r4/site/questions/received/trial.yaml | 10 + runs/uhhm-2026-09-23/r4/site/site.yaml | 2 + runs/uhhm-2026-09-23/r4/site/words.json | 431 +++++ runs/uhhm-2026-09-23/rated/rate.json | 168 +- runs/uhhm-2026-09-23/score.log | 42 +- runs/uhhm-2026-09-23/site/needs.yaml | 20 +- .../site/questions/decide/commission.yaml | 9 + .../site/questions/decide/custody.yaml | 9 + .../uhhm-2026-09-23/site/questions/index.yaml | 235 ++- runs/uhhm-2026-09-23/site/words.json | 263 +-- runs/uhhm-2026-09-23/tasks-full.jsonl | 42 +- runs/uhhm-2026-09-23/tasks-skim.jsonl | 42 +- runs/uhhm-2026-09-23/words-r4.json | 430 +++++ runs/uhhm-2026-09-23/words-r5.json | 430 +++++ src/build.rs | 226 ++- 148 files changed, 13367 insertions(+), 579 deletions(-) create mode 100644 runs/tomtervel-flat-2026-09-23/README.md create mode 100644 runs/tomtervel-flat-2026-09-23/answers-full.jsonl create mode 100644 runs/tomtervel-flat-2026-09-23/answers-skim.jsonl create mode 100644 runs/tomtervel-flat-2026-09-23/iris.log create mode 100644 runs/tomtervel-flat-2026-09-23/model.json create mode 100644 runs/tomtervel-flat-2026-09-23/opener-no.json create mode 100644 runs/tomtervel-flat-2026-09-23/rated/rate.json create mode 100644 runs/tomtervel-flat-2026-09-23/score.log create mode 100755 runs/tomtervel-flat-2026-09-23/score.sh create mode 100644 runs/tomtervel-flat-2026-09-23/site/aggregates.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/needs.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/arrangementer/_section.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/arrangementer/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/decide/bli-medlem.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/decide/dele-utstyr.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/decide/kan-hjelpe.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/decide/trenger-hjelp.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/horingsinstans/_section.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/horingsinstans/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/kasserer/_section.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/kasserer/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/komiteer/_section.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/komiteer/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/komiteer/utlegg-sent.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/komiteer/utlegg.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/lekeplasser/_section.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/lekeplasser/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/nabohjelp/_section.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/nabohjelp/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/received/anleggsfeil.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/received/bli-medlem.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/received/dele-utstyr.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/received/endre-medlemskap.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/received/hjelpe-til.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/received/horingsinnspill.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/received/kan-hjelpe.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/received/komite.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/received/trafikkfare.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/received/trenger-hjelp.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/status/anleggsfeil/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/status/oppslag/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/status/trafikkmeldinger/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/styret/_section.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/styret/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/trafikk/_section.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/questions/trafikk/index.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/site.yaml create mode 100644 runs/tomtervel-flat-2026-09-23/site/words.json create mode 100644 runs/tomtervel-flat-2026-09-23/tasks-full.jsonl create mode 100644 runs/tomtervel-flat-2026-09-23/tasks-skim.jsonl create mode 100644 runs/tomtervel-flat-2026-09-23/words.json create mode 100644 runs/uhhm-2026-09-23/overrides-r4.json create mode 100644 runs/uhhm-2026-09-23/overrides-r5.json create mode 100644 runs/uhhm-2026-09-23/r3/answers-full.jsonl create mode 100644 runs/uhhm-2026-09-23/r3/answers-skim.jsonl create mode 100644 runs/uhhm-2026-09-23/r3/rated/rate.json create mode 100644 runs/uhhm-2026-09-23/r3/score.log create mode 100644 runs/uhhm-2026-09-23/r3/site/aggregates.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/01-questions_build_index.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/02-questions_custodians_index.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/03-questions_decide_subscribe.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/04-questions_index.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/05-questions_join_index.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/06-questions_owners_index.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/07-questions_owners_prospect-sent.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/08-questions_owners_prospect.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/09-questions_received_collaborate.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/10-questions_received_commission.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/11-questions_received_custody.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/12-questions_received_propose.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/13-questions_received_subscribe.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/llm/14-questions_received_trial.yaml.md create mode 100644 runs/uhhm-2026-09-23/r3/site/needs.yaml rename runs/uhhm-2026-09-23/{ => r3}/site/questions/build/index.yaml (100%) create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/custodians/_section.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/custodians/index.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/decide/subscribe.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/index.yaml rename runs/uhhm-2026-09-23/{ => r3}/site/questions/join/index.yaml (100%) create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/owners/_section.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/owners/index.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/owners/prospect-sent.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/owners/prospect.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/received/collaborate.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/received/commission.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/received/custody.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/received/propose.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/received/subscribe.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/questions/received/trial.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/site.yaml create mode 100644 runs/uhhm-2026-09-23/r3/site/words.json create mode 100644 runs/uhhm-2026-09-23/r4/answers-full.jsonl create mode 100644 runs/uhhm-2026-09-23/r4/answers-skim.jsonl create mode 100644 runs/uhhm-2026-09-23/r4/rated/rate.json create mode 100644 runs/uhhm-2026-09-23/r4/score.log create mode 100644 runs/uhhm-2026-09-23/r4/site/aggregates.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/01-questions_build_index.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/02-questions_custodians_index.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/03-questions_decide_subscribe.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/04-questions_index.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/05-questions_join_index.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/06-questions_owners_index.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/07-questions_owners_prospect-sent.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/08-questions_owners_prospect.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/09-questions_received_collaborate.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/10-questions_received_commission.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/11-questions_received_custody.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/12-questions_received_propose.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/13-questions_received_subscribe.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/llm/14-questions_received_trial.yaml.md create mode 100644 runs/uhhm-2026-09-23/r4/site/needs.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/custodians/_section.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/custodians/index.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/decide/subscribe.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/index.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/owners/_section.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/owners/index.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/owners/prospect-sent.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/owners/prospect.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/received/collaborate.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/received/commission.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/received/custody.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/received/propose.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/received/subscribe.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/questions/received/trial.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/site.yaml create mode 100644 runs/uhhm-2026-09-23/r4/site/words.json create mode 100644 runs/uhhm-2026-09-23/site/questions/decide/commission.yaml create mode 100644 runs/uhhm-2026-09-23/site/questions/decide/custody.yaml create mode 100644 runs/uhhm-2026-09-23/words-r4.json create mode 100644 runs/uhhm-2026-09-23/words-r5.json diff --git a/README.md b/README.md index 3a2a8fc..b93184b 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,26 @@ from the model: the plan's `who` and `wants` lines and the personas were written by the same person about the same needs, and the fallback heading is the need's `wants`, so the two are cousins. +### The front door opens modestly + +A front door with more buttons than text leaves a visitor paralysed. +So the built front door opens with what the business does, in one or +two features and no button at all (`does:` on the plan, at most two, +each `for:` a need so it speaks to one role and is headed by what +that role gets); then a look-around card, things a visitor may +inspect before asking for anything (`shows:`, each a portal resource +block passed through verbatim, plus every public view the plan +opens); and only then the offers, as more alternatives on the same +page. Nothing is layered: doors still exist for a plan that wants +them, but a second tier is what this shape is there to avoid, and on +uhhm.no a flat front door with an opener routed better than the +doored one. + +The house and its players: a role the opener invites in has to see +its win, and the machine has to give it something to do after it +sits down. `build` warns when a featured need gives the submitter +neither a move (`moves_by: {: [submitter, ...]}`) nor a public +view; a player with no move is a spectator. ### Doors: a first question before the forms Five or six needs on one page is more than a visitor sorts through diff --git a/plans/tomtervel.yaml b/plans/tomtervel.yaml index 557ff45..041cd26 100644 --- a/plans/tomtervel.yaml +++ b/plans/tomtervel.yaml @@ -28,37 +28,47 @@ groups: # invitere inn i seg selv. Portal oppretter kontoen og en engangslenke. invites_by: [styret] -doors: +# Forsiden åpner beskjedent: to trekk, én rolle hver, ingen knapp, +# før tilbudene lenger ned på samme side. De to velet er til for: en +# husstand som blir medlem, og en nabo som trenger en hånd. Begge har +# noe å gjøre etterpå: medlemmet melder seg ut selv, den som fikk +# hjelp sier selv fra at det er ordnet. +does: - id: medlem - who: en husstand i Tomter som vil bli medlem, betale kontingent, eller melde flytting, ny e-post eller utmelding - - id: melde-fra - who: noen som har sett noe farlig i trafikken, eller noe ødelagt på lekeplassen eller stien - - id: bidra - who: noen som vil stille opp på 17. mai, dugnad eller et arrangement, eller sitte i en komité - - id: naboer - who: en nabo som trenger en hånd med snømåking, handling eller skyss, kan gi en, eller har noe å låne ut + for: bli-medlem + text: > + Velet taler for Tomter overfor kommunen, holder lekeplassene og + stien i stand og samler naboene på 17. mai og dugnad. 157 + husstander er med. Du melder deg inn her, og ut igjen selv når + du vil. + - id: nabo + for: trenger-hjelp + text: > + Trenger du en hånd med snømåking, handling eller skyss, kobler + nabohjelpsgruppa deg med en nabo som kan. Du sier selv fra når + det er ordnet. needs: - id: bli-medlem who: en husstand i Tomter wants: å bli medlem og få betalt kontingenten - door: medlem lands_in: husstander handled_by: kasserer stages: [open, betalt, utmeldt] done_when: [betalt, utmeldt] success: [betalt] + # Medlemmet melder seg ut selv, gjennom sin egen lenke. + moves_by: { utmeldt: [submitter, kasserer] } max_fields: 3 collects: - { name: navn } - { name: adresse } - - { name: epost, type: email } + - { name: email, type: email } - { name: telefon, type: tel, optional: true } - id: endre-medlemskap who: et medlem som har flyttet, byttet e-post eller vil melde seg ut wants: at velet har riktige opplysninger om dem - door: medlem lands_in: medlemsendringer handled_by: kasserer stages: [open, oppdatert] @@ -73,7 +83,6 @@ needs: - id: trafikkfare who: en som har sett et farlig sted i trafikken wants: at velet tar det opp med kommunen eller den som eier veien - door: melde-fra lands_in: trafikkmeldinger handled_by: trafikk stages: [open, tatt_opp, ordnet, avvist] @@ -90,7 +99,6 @@ needs: - id: anleggsfeil who: en som ser at noe på lekeplassen eller stien er ødelagt wants: at det blir fikset før noen skader seg - door: melde-fra lands_in: anleggsfeil handled_by: lekeplasser stages: [open, tatt_tak_i, utbedret] @@ -121,7 +129,6 @@ needs: - id: hjelpe-til who: en som vil hjelpe til på et arrangement eller en dugnad wants: å bli satt opp på noe som passer dem - door: bidra lands_in: frivillige handled_by: arrangementer stages: [open, kontaktet, satt_opp, takket_nei] @@ -136,7 +143,6 @@ needs: - id: komite who: en som vil sitte i en komité wants: en plass i den komiteen som driver med det de bryr seg om - door: bidra lands_in: komitesoknader handled_by: styret stages: [open, plassert, avslatt] @@ -154,7 +160,6 @@ needs: - id: trenger-hjelp who: en beboer som ikke får til noe selv for tiden, som snømåking, handling eller en skyss wants: at en nabo stiller opp - door: naboer lands_in: hjelpebehov handled_by: nabohjelp stages: [open, formidlet, ordnet, ikke_lost] @@ -172,7 +177,6 @@ needs: - id: kan-hjelpe who: en nabo som kan stille opp når noen trenger det wants: å bli spurt når det passer - door: naboer lands_in: hjelpere handled_by: nabohjelp stages: [open, registrert, trukket] @@ -190,7 +194,6 @@ needs: - id: dele-utstyr who: en nabo som har noe å låne ut, eller trenger å låne noe wants: et oppslag som naboene ser - door: naboer lands_in: oppslag handled_by: styret stages: [open, lagt_ut, tatt_ned] diff --git a/plans/uhhm.yaml b/plans/uhhm.yaml index 06a96e9..5f58c8a 100644 --- a/plans/uhhm.yaml +++ b/plans/uhhm.yaml @@ -24,23 +24,59 @@ groups: # Owners onboard into every desk; a custodian can vouch for another. invites_by: [owners] -doors: - - id: build - who: an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone - - id: join - who: someone who wants to build with us, hear from us now and then, or change this site +# The front door opens modestly: one or two features, one role each, +# and no button, before the offers further down the same page. The +# two roles UHHM exists for: an organization with a problem, and the +# people on the redoal network it keeps. +does: + - id: software + for: commission + text: > + Software built around a clear argument. Infrastructure, tools + and products for organizations that can say what problem they + have - and a working draft of your own workflow as a site, + before you pay for anything. + - id: redoal + for: custody + text: > + The redoal network, built and carried here: the gesture math, + the relay, the first node, and the portal this site runs on. + UHHM answers for what that network keeps. + +# Things to look at before asking for anything. +shows: + - id: built + text: A few things already out in the world. + resource: + public: true + source: { kind: gitea_starred, username: bl } + jq: > + .[] | {name: .name, description: .description, + url: (if .website != null and .website != "" then .website + elif .private then null + else .html_url end)} + - id: voices + text: Live from the redoal relay - what has been left at places so far. + resource: + public: true + source: { kind: url, url: https://relay.redoal.com/pulse } + jq: > + { "name": (.voices_echoed | tostring), + "description": "voices echoed so far" } + empty: The first voice has not echoed yet. 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 - door: build lands_in: projects handled_by: owners stages: [open, accepted, declined] done_when: [accepted, declined] success: [accepted] events: { open: submitted } + # The client plays too: they can withdraw the brief themselves. + moves_by: { declined: [submitter, owners] } max_fields: 4 collects: - { name: name } @@ -54,7 +90,6 @@ needs: - 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 - door: build lands_in: trials handled_by: owners stages: [open, approved, previewed, declined] @@ -78,7 +113,6 @@ needs: - 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 - door: join lands_in: applicants handled_by: owners stages: [open, invited, active, departed, declined] @@ -95,7 +129,6 @@ needs: - 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 - door: join lands_in: subscribers handled_by: owners stages: [open, unsubscribed] @@ -111,7 +144,6 @@ needs: - 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 - door: join lands_in: development_proposals handled_by: owners stages: [open, approved, rejected] @@ -137,6 +169,8 @@ needs: stages: [open, in_dialogue, resolved, declined] done_when: [resolved, declined] success: [resolved] + # The person affected says when it is resolved, not only the custodian. + moves_by: { resolved: [submitter, custodians] } max_fields: 4 collects: - { name: name } diff --git a/runs/tomtervel-flat-2026-09-23/README.md b/runs/tomtervel-flat-2026-09-23/README.md new file mode 100644 index 0000000..401a057 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/README.md @@ -0,0 +1,36 @@ +# Tomter Vel, flat: the front door opens modestly, 2026-09-23 + +`plans/tomtervel.yaml` without its four doors: the front door opens +with what the vel does, two cards for a household that becomes a +member and a neighbour who needs a hand (each with a move of their +own afterwards: the member leaves through their own link, the helped +say when it is done), then the three public lists, and then all ten +offers on the same page. Words lifted from +`runs/tomtervel-invites-2026-09-23/words.json` by need, the opener in +Norwegian by hand (`opener-no.json`). The builder warns: ten offers +after the opener, past seven a visitor stops reading. + +Visitor qwen3:8b, one task per call, whole card, the plan's 21 +personas (20 public): + +| Front door | With descriptions | Headings only | +|---|---|---| +| Four doors, 2026-09-23 (`tomtervel-cards-2026-09-23`) | 32 of 40 | 29 of 40 | +| Flat, this run | 12 of 20 | 9 of 20 | + +The doored numbers count each persona twice, so compare per persona: +behind doors most personas that got through the door routed right on +the door's page; on the flat page a fifth of them do not even with +descriptions, and half do not on headings alone. The misses are the +close pairs the doors kept apart: join versus change membership, need +a hand versus can give one, a committee versus a dugnad versus a +hearing. Ten offers on one page is what the builder's warning is +about, and this is what it looks like. + +So the modest opener is right and the flat page is right for six +offers (uhhm.no); for ten, the offers need to share: one membership +card with join and change as its two buttons, one neighbour-help card +with need and give. That is a plan change (needs sharing an +alternative), not words. The branch `flat-front-door` on +tomtervel/questions holds this build; merge it after that change, +not before. diff --git a/runs/tomtervel-flat-2026-09-23/answers-full.jsonl b/runs/tomtervel-flat-2026-09-23/answers-full.jsonl new file mode 100644 index 0000000..16515e3 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/answers-full.jsonl @@ -0,0 +1,20 @@ +{"choice":"Oppdater eller avslutt medlemskapet","confidence":0.95,"id":"nyinnflyttet@/"} +{"choice":"Bli medlem av Tomter Vel","confidence":0.95,"id":"glemte-a-betale@/"} +{"choice":"Oppdater eller avslutt medlemskapet","confidence":0.95,"id":"ny-epost@/"} +{"choice":"Oppdater eller avslutt medlemskapet","confidence":0.95,"id":"flytter@/"} +{"choice":"Meld fra om en trafikkfare","confidence":0.95,"id":"skolevei@/"} +{"choice":"Lån ut eller lån av naboen","confidence":0.95,"id":"busslomme@/"} +{"choice":"Meld fra om noe ødelagt","confidence":0.95,"id":"huske@/"} +{"choice":"Få en nabo til å stille opp","confidence":0.95,"id":"bru@/"} +{"choice":"Få din mening med i høringssvaret","confidence":0.95,"id":"blokker@/"} +{"choice":"Meld fra om en trafikkfare","confidence":0.95,"id":"togtider@/"} +{"choice":"Få en nabo til å stille opp","confidence":0.95,"id":"vafler@/"} +{"choice":"Bli med på dugnad eller arrangement","confidence":0.95,"id":"motorsag@/"} +{"choice":"Sitt i en komité som betyr noe for deg","confidence":0.95,"id":"pendler@/"} +{"choice":"Få din mening med i høringssvaret","confidence":0.95,"id":"planlegger@/"} +{"choice":"Lån ut eller lån av naboen","confidence":0.95,"id":"tilhenger@/"} +{"choice":"Meld fra om noe ødelagt","confidence":0.95,"id":"stige@/"} +{"choice":"Få en nabo til å stille opp","confidence":0.95,"id":"snomaking@/"} +{"choice":"Få en nabo til å stille opp","confidence":0.95,"id":"nyoperert@/"} +{"choice":"Få en nabo til å stille opp","confidence":0.95,"id":"hjemmekontor@/"} +{"choice":"Bli spurt når en nabo trenger en hånd","confidence":0.95,"id":"pensjonert-elektriker@/"} diff --git a/runs/tomtervel-flat-2026-09-23/answers-skim.jsonl b/runs/tomtervel-flat-2026-09-23/answers-skim.jsonl new file mode 100644 index 0000000..5b75d1f --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/answers-skim.jsonl @@ -0,0 +1,20 @@ +{"choice":"Bli medlem av Tomter Vel","confidence":0.95,"id":"nyinnflyttet@/"} +{"choice":"Oppdater eller avslutt medlemskapet","confidence":0.95,"id":"glemte-a-betale@/"} +{"choice":"Bli medlem av Tomter Vel","confidence":0.95,"id":"ny-epost@/"} +{"choice":"Oppdater eller avslutt medlemskapet","confidence":0.95,"id":"flytter@/"} +{"choice":"Meld fra om en trafikkfare","confidence":0.95,"id":"skolevei@/"} +{"choice":"Bli medlem av Tomter Vel","confidence":0.95,"id":"busslomme@/"} +{"choice":"Bli medlem av Tomter Vel","confidence":0.95,"id":"huske@/"} +{"choice":"Bli medlem av Tomter Vel","confidence":0.85,"id":"bru@/"} +{"choice":"Få din mening med i høringssvaret","confidence":0.85,"id":"blokker@/"} +{"choice":"Meld fra om en trafikkfare","confidence":0.85,"id":"togtider@/"} +{"choice":"Se deg rundt først","confidence":0.85,"id":"vafler@/"} +{"choice":"Bli med på dugnad eller arrangement","confidence":0.95,"id":"motorsag@/"} +{"choice":"Bli med på dugnad eller arrangement","confidence":0.85,"id":"pendler@/"} +{"choice":"Få din mening med i høringssvaret","confidence":0.95,"id":"planlegger@/"} +{"choice":"Lån ut eller lån av naboen","confidence":0.95,"id":"tilhenger@/"} +{"choice":"Lån ut eller lån av naboen","confidence":0.85,"id":"stige@/"} +{"choice":"Bli spurt når en nabo trenger en hånd","confidence":0.85,"id":"snomaking@/"} +{"choice":"Bli spurt når en nabo trenger en hånd","confidence":0.95,"id":"nyoperert@/"} +{"choice":"Bli spurt når en nabo trenger en hånd","confidence":0.95,"id":"hjemmekontor@/"} +{"choice":"Bli spurt når en nabo trenger en hånd","confidence":0.95,"id":"pensjonert-elektriker@/"} diff --git a/runs/tomtervel-flat-2026-09-23/iris.log b/runs/tomtervel-flat-2026-09-23/iris.log new file mode 100644 index 0000000..c9b770f --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/iris.log @@ -0,0 +1,31 @@ +OK: 28 question(s), 13 aggregate(s) valid +OK: access policy, 109 rule(s), validates +need "bli-medlem": / [Bli medlem av Tomter Vel] -> "husstander" +need "endre-medlemskap": / [Oppdater eller avslutt medlemskapet] -> "medlemsendringer" +need "trafikkfare": / [Meld fra om en trafikkfare] -> "trafikkmeldinger" +need "anleggsfeil": / [Meld fra om noe ødelagt] -> "anleggsfeil" +need "horingsinnspill": / [Få din mening med i høringssvaret] -> "innspill" +need "hjelpe-til": / [Bli med på dugnad eller arrangement] -> "frivillige" +need "komite": / [Sitt i en komité som betyr noe for deg] -> "komitesoknader" +need "trenger-hjelp": / [Få en nabo til å stille opp] -> "hjelpebehov" +need "kan-hjelpe": / [Bli spurt når en nabo trenger en hånd] -> "hjelpere" +need "dele-utstyr": / [Lån ut eller lån av naboen] -> "oppslag" +need "utlegg": /komiteer/utlegg [Få pengene tilbake] -> "utlegg" +OK: 11 need(s) structurally met, 0 planned, 21 persona(s) +wrote the simulation model to model.json +wrote 20 wording task(s) to tasks-full.jsonl +OK: 28 question(s), 13 aggregate(s) valid +OK: access policy, 109 rule(s), validates +need "bli-medlem": / [Bli medlem av Tomter Vel] -> "husstander" +need "endre-medlemskap": / [Oppdater eller avslutt medlemskapet] -> "medlemsendringer" +need "trafikkfare": / [Meld fra om en trafikkfare] -> "trafikkmeldinger" +need "anleggsfeil": / [Meld fra om noe ødelagt] -> "anleggsfeil" +need "horingsinnspill": / [Få din mening med i høringssvaret] -> "innspill" +need "hjelpe-til": / [Bli med på dugnad eller arrangement] -> "frivillige" +need "komite": / [Sitt i en komité som betyr noe for deg] -> "komitesoknader" +need "trenger-hjelp": / [Få en nabo til å stille opp] -> "hjelpebehov" +need "kan-hjelpe": / [Bli spurt når en nabo trenger en hånd] -> "hjelpere" +need "dele-utstyr": / [Lån ut eller lån av naboen] -> "oppslag" +need "utlegg": /komiteer/utlegg [Få pengene tilbake] -> "utlegg" +OK: 11 need(s) structurally met, 0 planned, 21 persona(s) +wrote 20 wording task(s) to tasks-skim.jsonl diff --git a/runs/tomtervel-flat-2026-09-23/model.json b/runs/tomtervel-flat-2026-09-23/model.json new file mode 100644 index 0000000..324b9cd --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/model.json @@ -0,0 +1,1595 @@ +{ + "needs": [ + { + "id": "bli-medlem", + "who": "en husstand i Tomter", + "wants": "å bli medlem og få betalt kontingenten", + "enters_as": null, + "lands_in": "husstander", + "handled_by": "kasserer", + "done_when": [ + "betalt", + "utmeldt" + ], + "success": [ + "betalt" + ], + "steps": [ + { + "page": "/", + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "options": [ + { + "name": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden." + }, + { + "name": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står." + }, + { + "name": "Bli medlem av Tomter Vel", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet." + }, + { + "name": "Oppdater eller avslutt medlemskapet", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger." + }, + { + "name": "Meld fra om en trafikkfare", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre." + }, + { + "name": "Meld fra om noe ødelagt", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det." + }, + { + "name": "Få din mening med i høringssvaret", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar." + }, + { + "name": "Bli med på dugnad eller arrangement", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer." + }, + { + "name": "Sitt i en komité som betyr noe for deg", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i." + }, + { + "name": "Få en nabo til å stille opp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp." + }, + { + "name": "Bli spurt når en nabo trenger en hånd", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer." + }, + { + "name": "Lån ut eller lån av naboen", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det." + } + ], + "expect": [ + "Bli medlem av Tomter Vel" + ], + "alternative": "Bli medlem av Tomter Vel", + "fields": [ + { + "name": "navn", + "label": "Navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "adresse", + "label": "Adresse", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "email", + "label": "Email", + "type": "email", + "optional": false, + "options": [] + }, + { + "name": "telefon", + "label": "Telefon", + "type": "tel", + "optional": true, + "options": [] + } + ] + } + ] + }, + { + "id": "endre-medlemskap", + "who": "et medlem som har flyttet, byttet e-post eller vil melde seg ut", + "wants": "at velet har riktige opplysninger om dem", + "enters_as": null, + "lands_in": "medlemsendringer", + "handled_by": "kasserer", + "done_when": [ + "oppdatert" + ], + "success": [ + "oppdatert" + ], + "steps": [ + { + "page": "/", + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "options": [ + { + "name": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden." + }, + { + "name": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står." + }, + { + "name": "Bli medlem av Tomter Vel", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet." + }, + { + "name": "Oppdater eller avslutt medlemskapet", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger." + }, + { + "name": "Meld fra om en trafikkfare", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre." + }, + { + "name": "Meld fra om noe ødelagt", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det." + }, + { + "name": "Få din mening med i høringssvaret", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar." + }, + { + "name": "Bli med på dugnad eller arrangement", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer." + }, + { + "name": "Sitt i en komité som betyr noe for deg", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i." + }, + { + "name": "Få en nabo til å stille opp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp." + }, + { + "name": "Bli spurt når en nabo trenger en hånd", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer." + }, + { + "name": "Lån ut eller lån av naboen", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det." + } + ], + "expect": [ + "Oppdater eller avslutt medlemskapet" + ], + "alternative": "Oppdater eller avslutt medlemskapet", + "fields": [ + { + "name": "navn", + "label": "Navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "adresse", + "label": "Adresse", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "hva_er_nytt", + "label": "Hva vil du endre?", + "type": "textarea", + "optional": false, + "options": [] + } + ] + } + ] + }, + { + "id": "trafikkfare", + "who": "en som har sett et farlig sted i trafikken", + "wants": "at velet tar det opp med kommunen eller den som eier veien", + "enters_as": null, + "lands_in": "trafikkmeldinger", + "handled_by": "trafikk", + "done_when": [ + "ordnet", + "avvist" + ], + "success": [ + "ordnet" + ], + "steps": [ + { + "page": "/", + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "options": [ + { + "name": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden." + }, + { + "name": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står." + }, + { + "name": "Bli medlem av Tomter Vel", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet." + }, + { + "name": "Oppdater eller avslutt medlemskapet", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger." + }, + { + "name": "Meld fra om en trafikkfare", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre." + }, + { + "name": "Meld fra om noe ødelagt", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det." + }, + { + "name": "Få din mening med i høringssvaret", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar." + }, + { + "name": "Bli med på dugnad eller arrangement", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer." + }, + { + "name": "Sitt i en komité som betyr noe for deg", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i." + }, + { + "name": "Få en nabo til å stille opp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp." + }, + { + "name": "Bli spurt når en nabo trenger en hånd", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer." + }, + { + "name": "Lån ut eller lån av naboen", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det." + } + ], + "expect": [ + "Meld fra om en trafikkfare" + ], + "alternative": "Meld fra om en trafikkfare", + "fields": [ + { + "name": "hvor", + "label": "Hvor var det", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "hva", + "label": "Hva så du", + "type": "textarea", + "optional": false, + "options": [] + }, + { + "name": "epost", + "label": "E-post (valgfritt)", + "type": "email", + "optional": true, + "options": [] + } + ] + } + ] + }, + { + "id": "anleggsfeil", + "who": "en som ser at noe på lekeplassen eller stien er ødelagt", + "wants": "at det blir fikset før noen skader seg", + "enters_as": null, + "lands_in": "anleggsfeil", + "handled_by": "lekeplasser", + "done_when": [ + "utbedret" + ], + "success": [ + "utbedret" + ], + "steps": [ + { + "page": "/", + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "options": [ + { + "name": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden." + }, + { + "name": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står." + }, + { + "name": "Bli medlem av Tomter Vel", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet." + }, + { + "name": "Oppdater eller avslutt medlemskapet", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger." + }, + { + "name": "Meld fra om en trafikkfare", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre." + }, + { + "name": "Meld fra om noe ødelagt", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det." + }, + { + "name": "Få din mening med i høringssvaret", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar." + }, + { + "name": "Bli med på dugnad eller arrangement", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer." + }, + { + "name": "Sitt i en komité som betyr noe for deg", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i." + }, + { + "name": "Få en nabo til å stille opp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp." + }, + { + "name": "Bli spurt når en nabo trenger en hånd", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer." + }, + { + "name": "Lån ut eller lån av naboen", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det." + } + ], + "expect": [ + "Meld fra om noe ødelagt" + ], + "alternative": "Meld fra om noe ødelagt", + "fields": [ + { + "name": "hvor", + "label": "Hvor er det", + "type": "select", + "optional": false, + "options": [ + "Lekeplassen", + "Elvestien", + "Skøytebanen", + "Et annet sted" + ] + }, + { + "name": "hva", + "label": "Hva er ødelagt", + "type": "textarea", + "optional": false, + "options": [] + } + ] + } + ] + }, + { + "id": "horingsinnspill", + "who": "en beboer som har en mening om en sak kommunen har på høring", + "wants": "at velet tar det med i sitt svar", + "enters_as": null, + "lands_in": "innspill", + "handled_by": "horingsinstans", + "done_when": [ + "tatt_med", + "ikke_tatt_med" + ], + "success": [ + "tatt_med" + ], + "steps": [ + { + "page": "/", + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "options": [ + { + "name": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden." + }, + { + "name": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står." + }, + { + "name": "Bli medlem av Tomter Vel", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet." + }, + { + "name": "Oppdater eller avslutt medlemskapet", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger." + }, + { + "name": "Meld fra om en trafikkfare", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre." + }, + { + "name": "Meld fra om noe ødelagt", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det." + }, + { + "name": "Få din mening med i høringssvaret", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar." + }, + { + "name": "Bli med på dugnad eller arrangement", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer." + }, + { + "name": "Sitt i en komité som betyr noe for deg", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i." + }, + { + "name": "Få en nabo til å stille opp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp." + }, + { + "name": "Bli spurt når en nabo trenger en hånd", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer." + }, + { + "name": "Lån ut eller lån av naboen", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det." + } + ], + "expect": [ + "Få din mening med i høringssvaret" + ], + "alternative": "Få din mening med i høringssvaret", + "fields": [ + { + "name": "navn", + "label": "Navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "sak", + "label": "Hvilken sak gjelder det?", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "innspill", + "label": "Hva mener du?", + "type": "textarea", + "optional": false, + "options": [] + } + ] + } + ] + }, + { + "id": "hjelpe-til", + "who": "en som vil hjelpe til på et arrangement eller en dugnad", + "wants": "å bli satt opp på noe som passer dem", + "enters_as": null, + "lands_in": "frivillige", + "handled_by": "arrangementer", + "done_when": [ + "satt_opp", + "takket_nei" + ], + "success": [ + "satt_opp" + ], + "steps": [ + { + "page": "/", + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "options": [ + { + "name": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden." + }, + { + "name": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står." + }, + { + "name": "Bli medlem av Tomter Vel", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet." + }, + { + "name": "Oppdater eller avslutt medlemskapet", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger." + }, + { + "name": "Meld fra om en trafikkfare", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre." + }, + { + "name": "Meld fra om noe ødelagt", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det." + }, + { + "name": "Få din mening med i høringssvaret", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar." + }, + { + "name": "Bli med på dugnad eller arrangement", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer." + }, + { + "name": "Sitt i en komité som betyr noe for deg", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i." + }, + { + "name": "Få en nabo til å stille opp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp." + }, + { + "name": "Bli spurt når en nabo trenger en hånd", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer." + }, + { + "name": "Lån ut eller lån av naboen", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det." + } + ], + "expect": [ + "Bli med på dugnad eller arrangement" + ], + "alternative": "Bli med på dugnad eller arrangement", + "fields": [ + { + "name": "navn", + "label": "Navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "telefon", + "label": "Telefon", + "type": "tel", + "optional": false, + "options": [] + }, + { + "name": "hva", + "label": "Hva kan du hjelpe til med?", + "type": "select", + "optional": false, + "options": [ + "17. mai", + "Juletregranstenning", + "Skøytedag", + "Dugnad på elvestien", + "Det som trengs" + ] + } + ] + } + ] + }, + { + "id": "komite", + "who": "en som vil sitte i en komité", + "wants": "en plass i den komiteen som driver med det de bryr seg om", + "enters_as": null, + "lands_in": "komitesoknader", + "handled_by": "styret", + "done_when": [ + "plassert", + "avslatt" + ], + "success": [ + "plassert" + ], + "steps": [ + { + "page": "/", + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "options": [ + { + "name": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden." + }, + { + "name": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står." + }, + { + "name": "Bli medlem av Tomter Vel", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet." + }, + { + "name": "Oppdater eller avslutt medlemskapet", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger." + }, + { + "name": "Meld fra om en trafikkfare", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre." + }, + { + "name": "Meld fra om noe ødelagt", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det." + }, + { + "name": "Få din mening med i høringssvaret", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar." + }, + { + "name": "Bli med på dugnad eller arrangement", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer." + }, + { + "name": "Sitt i en komité som betyr noe for deg", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i." + }, + { + "name": "Få en nabo til å stille opp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp." + }, + { + "name": "Bli spurt når en nabo trenger en hånd", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer." + }, + { + "name": "Lån ut eller lån av naboen", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det." + } + ], + "expect": [ + "Sitt i en komité som betyr noe for deg" + ], + "alternative": "Sitt i en komité som betyr noe for deg", + "fields": [ + { + "name": "navn", + "label": "Navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "epost", + "label": "E-post", + "type": "email", + "optional": false, + "options": [] + }, + { + "name": "komite", + "label": "Hvilken komité?", + "type": "select", + "optional": false, + "options": [ + "Arrangementer", + "Elvesti", + "Høringsinstans", + "Leke- og møteplasser", + "Miljøgate", + "Pendlerforhold", + "Trafikkforhold" + ] + } + ] + } + ] + }, + { + "id": "trenger-hjelp", + "who": "en beboer som ikke får til noe selv for tiden, som snømåking, handling eller en skyss", + "wants": "at en nabo stiller opp", + "enters_as": null, + "lands_in": "hjelpebehov", + "handled_by": "nabohjelp", + "done_when": [ + "ordnet", + "ikke_lost" + ], + "success": [ + "ordnet" + ], + "steps": [ + { + "page": "/", + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "options": [ + { + "name": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden." + }, + { + "name": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står." + }, + { + "name": "Bli medlem av Tomter Vel", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet." + }, + { + "name": "Oppdater eller avslutt medlemskapet", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger." + }, + { + "name": "Meld fra om en trafikkfare", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre." + }, + { + "name": "Meld fra om noe ødelagt", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det." + }, + { + "name": "Få din mening med i høringssvaret", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar." + }, + { + "name": "Bli med på dugnad eller arrangement", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer." + }, + { + "name": "Sitt i en komité som betyr noe for deg", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i." + }, + { + "name": "Få en nabo til å stille opp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp." + }, + { + "name": "Bli spurt når en nabo trenger en hånd", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer." + }, + { + "name": "Lån ut eller lån av naboen", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det." + } + ], + "expect": [ + "Få en nabo til å stille opp" + ], + "alternative": "Få en nabo til å stille opp", + "fields": [ + { + "name": "navn", + "label": "Navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "email", + "label": "E-post", + "type": "email", + "optional": false, + "options": [] + }, + { + "name": "adresse", + "label": "Adresse", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "hva", + "label": "Hva trenger du hjelp til", + "type": "textarea", + "optional": false, + "options": [] + }, + { + "name": "telefon", + "label": "Telefon", + "type": "tel", + "optional": true, + "options": [] + } + ] + } + ] + }, + { + "id": "kan-hjelpe", + "who": "en nabo som kan stille opp når noen trenger det", + "wants": "å bli spurt når det passer", + "enters_as": null, + "lands_in": "hjelpere", + "handled_by": "nabohjelp", + "done_when": [ + "registrert", + "trukket" + ], + "success": [ + "registrert" + ], + "steps": [ + { + "page": "/", + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "options": [ + { + "name": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden." + }, + { + "name": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står." + }, + { + "name": "Bli medlem av Tomter Vel", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet." + }, + { + "name": "Oppdater eller avslutt medlemskapet", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger." + }, + { + "name": "Meld fra om en trafikkfare", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre." + }, + { + "name": "Meld fra om noe ødelagt", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det." + }, + { + "name": "Få din mening med i høringssvaret", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar." + }, + { + "name": "Bli med på dugnad eller arrangement", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer." + }, + { + "name": "Sitt i en komité som betyr noe for deg", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i." + }, + { + "name": "Få en nabo til å stille opp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp." + }, + { + "name": "Bli spurt når en nabo trenger en hånd", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer." + }, + { + "name": "Lån ut eller lån av naboen", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det." + } + ], + "expect": [ + "Bli spurt når en nabo trenger en hånd" + ], + "alternative": "Bli spurt når en nabo trenger en hånd", + "fields": [ + { + "name": "navn", + "label": "Navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "email", + "label": "E-post", + "type": "email", + "optional": false, + "options": [] + }, + { + "name": "telefon", + "label": "Telefon", + "type": "tel", + "optional": false, + "options": [] + }, + { + "name": "kan", + "label": "Hva kan du hjelpe med", + "type": "select", + "optional": false, + "options": [ + "Snømåking", + "Handling", + "Kjøring", + "Småfiks i huset", + "En prat og litt selskap", + "Det som trengs" + ] + } + ] + } + ] + }, + { + "id": "dele-utstyr", + "who": "en nabo som har noe å låne ut, eller trenger å låne noe", + "wants": "et oppslag som naboene ser", + "enters_as": null, + "lands_in": "oppslag", + "handled_by": "styret", + "done_when": [ + "lagt_ut", + "tatt_ned" + ], + "success": [ + "lagt_ut" + ], + "steps": [ + { + "page": "/", + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "options": [ + { + "name": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden." + }, + { + "name": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står." + }, + { + "name": "Bli medlem av Tomter Vel", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet." + }, + { + "name": "Oppdater eller avslutt medlemskapet", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger." + }, + { + "name": "Meld fra om en trafikkfare", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre." + }, + { + "name": "Meld fra om noe ødelagt", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det." + }, + { + "name": "Få din mening med i høringssvaret", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar." + }, + { + "name": "Bli med på dugnad eller arrangement", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer." + }, + { + "name": "Sitt i en komité som betyr noe for deg", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i." + }, + { + "name": "Få en nabo til å stille opp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp." + }, + { + "name": "Bli spurt når en nabo trenger en hånd", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer." + }, + { + "name": "Lån ut eller lån av naboen", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det." + } + ], + "expect": [ + "Lån ut eller lån av naboen" + ], + "alternative": "Lån ut eller lån av naboen", + "fields": [ + { + "name": "navn", + "label": "Navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "email", + "label": "E-post", + "type": "email", + "optional": false, + "options": [] + }, + { + "name": "har_eller_trenger", + "label": "Har du eller trenger du", + "type": "select", + "optional": false, + "options": [ + "Jeg har noe å låne ut", + "Jeg trenger å låne noe" + ] + }, + { + "name": "hva", + "label": "Hva gjelder det", + "type": "textarea", + "optional": false, + "options": [] + } + ] + } + ] + }, + { + "id": "utlegg", + "who": "en i en komité som har lagt ut for noe", + "wants": "pengene tilbake", + "enters_as": "komiteer", + "lands_in": "utlegg", + "handled_by": "kasserer", + "done_when": [ + "utbetalt", + "avvist" + ], + "success": [ + "utbetalt" + ], + "steps": [ + { + "page": "/komiteer/utlegg", + "question": "Har du lagt ut penger for komiteen og vil ha dem tilbake?", + "options": [ + { + "name": "Få pengene tilbake", + "description": "Har du lagt ut for noe til komiteen? Send det inn, så ordner kasserer resten." + } + ], + "expect": [ + "Få pengene tilbake" + ], + "alternative": "Få pengene tilbake", + "fields": [ + { + "name": "navn", + "label": "Navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "belop", + "label": "Beløp", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "hva", + "label": "Hva gjaldt det", + "type": "textarea", + "optional": false, + "options": [] + } + ] + } + ] + } + ], + "buckets": { + "husstander": { + "initial": "open", + "transitions": { + "open": [ + "betalt", + "utmeldt" + ] + }, + "desks": [ + { + "page": "/kasserer", + "group": "kasserer", + "moves": [ + { + "from": "open", + "to": "betalt", + "label": "Registrer betaling" + }, + { + "from": "open", + "to": "utmeldt", + "label": "Meld ut" + } + ] + } + ], + "self_moves": [ + "utmeldt" + ] + }, + "medlemsendringer": { + "initial": "open", + "transitions": { + "open": [ + "oppdatert" + ] + }, + "desks": [ + { + "page": "/kasserer", + "group": "kasserer", + "moves": [ + { + "from": "open", + "to": "oppdatert", + "label": "Registrer endring" + } + ] + } + ], + "self_moves": [] + }, + "trafikkmeldinger": { + "initial": "open", + "transitions": { + "tatt_opp": [ + "ordnet", + "avvist" + ], + "open": [ + "tatt_opp", + "avvist" + ] + }, + "desks": [ + { + "page": "/status/trafikkmeldinger", + "group": null, + "moves": [] + }, + { + "page": "/styret", + "group": "styret", + "moves": [] + }, + { + "page": "/trafikk", + "group": "trafikk", + "moves": [ + { + "from": "open", + "to": "tatt_opp", + "label": "Ta opp med kommunen" + }, + { + "from": "open", + "to": "avvist", + "label": "Avvis meldingen" + }, + { + "from": "tatt_opp", + "to": "ordnet", + "label": "Meld ordnet" + }, + { + "from": "tatt_opp", + "to": "avvist", + "label": "Avvis meldingen" + } + ] + } + ], + "self_moves": [] + }, + "anleggsfeil": { + "initial": "open", + "transitions": { + "tatt_tak_i": [ + "utbedret" + ], + "open": [ + "tatt_tak_i" + ] + }, + "desks": [ + { + "page": "/lekeplasser", + "group": "lekeplasser", + "moves": [ + { + "from": "open", + "to": "tatt_tak_i", + "label": "Ta tak i saken" + }, + { + "from": "tatt_tak_i", + "to": "utbedret", + "label": "Merk som utbedret" + } + ] + }, + { + "page": "/status/anleggsfeil", + "group": null, + "moves": [] + } + ], + "self_moves": [] + }, + "innspill": { + "initial": "open", + "transitions": { + "open": [ + "tatt_med", + "ikke_tatt_med" + ] + }, + "desks": [ + { + "page": "/horingsinstans", + "group": "horingsinstans", + "moves": [ + { + "from": "open", + "to": "tatt_med", + "label": "Tatt med i svaret" + }, + { + "from": "open", + "to": "ikke_tatt_med", + "label": "Ikke tatt med" + } + ] + }, + { + "page": "/styret", + "group": "styret", + "moves": [] + } + ], + "self_moves": [] + }, + "frivillige": { + "initial": "open", + "transitions": { + "kontaktet": [ + "satt_opp", + "takket_nei" + ], + "open": [ + "kontaktet", + "takket_nei" + ] + }, + "desks": [ + { + "page": "/arrangementer", + "group": "arrangementer", + "moves": [ + { + "from": "kontaktet", + "to": "satt_opp", + "label": "Sett opp" + }, + { + "from": "kontaktet", + "to": "takket_nei", + "label": "Takket nei" + }, + { + "from": "open", + "to": "kontaktet", + "label": "Merk som kontaktet" + }, + { + "from": "open", + "to": "takket_nei", + "label": "Takket nei" + } + ] + } + ], + "self_moves": [] + }, + "komitesoknader": { + "initial": "open", + "transitions": { + "open": [ + "plassert", + "avslatt" + ] + }, + "desks": [ + { + "page": "/styret", + "group": "styret", + "moves": [ + { + "from": "open", + "to": "plassert", + "label": "Sett i komité" + }, + { + "from": "open", + "to": "avslatt", + "label": "Avslå søknaden" + } + ] + } + ], + "self_moves": [] + }, + "hjelpebehov": { + "initial": "open", + "transitions": { + "formidlet": [ + "ordnet", + "ikke_lost" + ], + "open": [ + "formidlet", + "ikke_lost" + ] + }, + "desks": [ + { + "page": "/nabohjelp", + "group": "nabohjelp", + "moves": [ + { + "from": "formidlet", + "to": "ordnet", + "label": "Meld ordnet" + }, + { + "from": "formidlet", + "to": "ikke_lost", + "label": "Meld ikke løst" + }, + { + "from": "open", + "to": "formidlet", + "label": "Koble til nabo" + }, + { + "from": "open", + "to": "ikke_lost", + "label": "Meld ikke løst" + } + ] + } + ], + "self_moves": [ + "ordnet" + ] + }, + "hjelpere": { + "initial": "open", + "transitions": { + "open": [ + "registrert", + "trukket" + ] + }, + "desks": [ + { + "page": "/nabohjelp", + "group": "nabohjelp", + "moves": [ + { + "from": "open", + "to": "registrert", + "label": "Registrer som hjelper" + }, + { + "from": "open", + "to": "trukket", + "label": "Meld trukket" + } + ] + } + ], + "self_moves": [ + "trukket" + ] + }, + "oppslag": { + "initial": "open", + "transitions": { + "open": [ + "lagt_ut", + "tatt_ned" + ] + }, + "desks": [ + { + "page": "/status/oppslag", + "group": null, + "moves": [] + }, + { + "page": "/styret", + "group": "styret", + "moves": [ + { + "from": "open", + "to": "lagt_ut", + "label": "Legg ut oppslaget" + }, + { + "from": "open", + "to": "tatt_ned", + "label": "Ta ned oppslaget" + } + ] + } + ], + "self_moves": [ + "tatt_ned" + ] + }, + "utlegg": { + "initial": "open", + "transitions": { + "godkjent": [ + "utbetalt", + "avvist" + ], + "open": [ + "godkjent", + "avvist" + ] + }, + "desks": [ + { + "page": "/kasserer", + "group": "kasserer", + "moves": [ + { + "from": "godkjent", + "to": "utbetalt", + "label": "Merk som utbetalt" + }, + { + "from": "godkjent", + "to": "avvist", + "label": "Avvis likevel" + }, + { + "from": "open", + "to": "godkjent", + "label": "Godkjenn utlegg" + }, + { + "from": "open", + "to": "avvist", + "label": "Avvis utlegg" + } + ] + } + ], + "self_moves": [] + } + }, + "personas": [ + { + "id": "nyinnflyttet", + "need": "bli-medlem", + "text": "Vi flyttet til Tomter i mars og har hørt at det finnes et vel. Hvordan blir vi med, og hva koster det?" + }, + { + "id": "glemte-a-betale", + "need": "bli-medlem", + "text": "Jeg har vært medlem før men fikk ikke betalt i fjor. Kan jeg bare vippse, og til hvem?" + }, + { + "id": "ny-epost", + "need": "endre-medlemskap", + "text": "Vi har byttet e-postadresse og får ikke lenger noe fra dere." + }, + { + "id": "flytter", + "need": "endre-medlemskap", + "text": "Vi selger huset og flytter til Ski i august, så vi må ut av medlemslista." + }, + { + "id": "skolevei", + "need": "trafikkfare", + "text": "Bilene kjører altfor fort i svingen ved skolen om morgenen, og det er ikke fortau der ungene går." + }, + { + "id": "busslomme", + "need": "trafikkfare", + "text": "Det er umulig å se om det kommer noen når man skal ut fra busslomma ved butikken, hekken har blitt kjempehøy." + }, + { + "id": "huske", + "need": "anleggsfeil", + "text": "Huska på lekeplassen henger i én kjetting. Sønnen min dro i den i går og den holdt så vidt." + }, + { + "id": "bru", + "need": "anleggsfeil", + "text": "Planken på den lille brua på stien langs elva er råtten, jeg gikk nesten gjennom." + }, + { + "id": "blokker", + "need": "horingsinnspill", + "text": "Kommunen skal bygge blokker på jordet bak stasjonen, og jeg synes det er alt for høyt. Kan velet si ifra?" + }, + { + "id": "togtider", + "need": "horingsinnspill", + "text": "Ruter vil kutte det tidlige toget. Jeg pendler til Oslo hver dag og vil at velet skriver til dem om det." + }, + { + "id": "vafler", + "need": "hjelpe-til", + "text": "Jeg kan steke vafler på 17. mai-frokosten hvis dere trenger folk." + }, + { + "id": "motorsag", + "need": "hjelpe-til", + "text": "Har motorsag og ledig helg, kan ta trær langs elvestien hvis det er en dugnad." + }, + { + "id": "pendler", + "need": "komite", + "text": "Jeg pendler og er lei av at ingen snakker med Ruter. Jeg vil gjerne være med i gjengen som jobber med det." + }, + { + "id": "planlegger", + "need": "komite", + "text": "Jeg er arealplanlegger av yrke og kunne bidratt når kommunen sender saker på høring." + }, + { + "id": "tilhenger", + "need": "dele-utstyr", + "text": "Jeg har en tilhenger som står ubrukt mesteparten av året, naboer kan gjerne låne den for en hundrelapp." + }, + { + "id": "stige", + "need": "dele-utstyr", + "text": "Trenger en lang stige en dag i helga for å rense takrenna, er det noen i nærheten som har?" + }, + { + "id": "snomaking", + "need": "trenger-hjelp", + "text": "Jeg er 84 og klarer ikke å måke innkjørselen lenger. Er det noen som kan hjelpe meg når det snør?" + }, + { + "id": "nyoperert", + "need": "trenger-hjelp", + "text": "Jeg er nyoperert i hofta og kommer meg ikke til butikken på noen uker. Kunne noen handlet for meg?" + }, + { + "id": "hjemmekontor", + "need": "kan-hjelpe", + "text": "Jeg jobber hjemmefra og kan godt måke eller handle for noen som ikke får det til selv." + }, + { + "id": "pensjonert-elektriker", + "need": "kan-hjelpe", + "text": "Pensjonert elektriker, har bil og god tid. Si fra om noen trenger skyss eller en hånd med småting." + }, + { + "id": "kvittering", + "need": "utlegg", + "text": "Jeg kjøpte pølser og kakao til skøytedagen for 1 840 kroner, her er kvitteringa, vil ha det igjen." + } + ] +} \ No newline at end of file diff --git a/runs/tomtervel-flat-2026-09-23/opener-no.json b/runs/tomtervel-flat-2026-09-23/opener-no.json new file mode 100644 index 0000000..71e0017 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/opener-no.json @@ -0,0 +1,23 @@ +{ + "questions/index.yaml": { + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "description": "Velforeningen for Tomter, stiftet i 1947, drevet på fritida av naboene dine. Alt du kan be om her havner hos en komité eller styret, og du ser selv hvor saken står.", + "opener": { + "heading": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden.", + "features": { + "medlem": { "heading": "Et vel som taler for Tomter, og et medlemskap du styrer selv", "description": "Velet taler for Tomter overfor kommunen, holder lekeplassene og stien i stand og samler naboene på 17. mai og dugnad. 157 husstander er med. Du melder deg inn her, og ut igjen selv når du vil.", "icon": "users" }, + "nabo": { "heading": "En nabo som stiller opp når du trenger det", "description": "Trenger du en hånd med snømåking, handling eller skyss, kobler nabohjelpsgruppa deg med en nabo som kan. Du sier selv fra når det er ordnet.", "icon": "handshake" } + } + }, + "shopping": { + "heading": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.", + "items": { + "status-trafikkmeldinger": { "heading": "Alle trafikkmeldinger", "description": "Farlige steder naboene har meldt, og hva velet har gjort med dem.", "icon": "list" }, + "status-anleggsfeil": { "heading": "Alt som er meldt ødelagt", "description": "Lekeplassen og stien: det som er meldt, og det som er fikset.", "icon": "list" }, + "status-oppslag": { "heading": "Oppslagstavla", "description": "Det naboene har å låne ut, og det de trenger å låne.", "icon": "list" } + } + } + } +} diff --git a/runs/tomtervel-flat-2026-09-23/rated/rate.json b/runs/tomtervel-flat-2026-09-23/rated/rate.json new file mode 100644 index 0000000..cfcd8f1 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/rated/rate.json @@ -0,0 +1,299 @@ +{ + "anleggsfeil": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 23.852492631039347, + "options": 12, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 2, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "bli-medlem": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 27.098737083811713, + "options": 12, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 3, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "dele-utstyr": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 24.179839633447884, + "options": 12, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 4, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "endre-medlemskap": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 25.953529411764706, + "options": 12, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 3, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "hjelpe-til": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 25.094279366842542, + "options": 12, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 3, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "horingsinnspill": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 24.899104477611942, + "options": 12, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 3, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "kan-hjelpe": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 24.636363636363637, + "options": 12, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 4, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "komite": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 23.612111292962357, + "options": 12, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 3, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "trafikkfare": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 25.784532671629446, + "options": 12, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 2, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "trenger-hjelp": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 23.71794871794872, + "options": 12, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 4, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "utlegg": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 36.333333333333336, + "options": 1, + "overloaded": false, + "page": "/komiteer/utlegg", + "personas": 1, + "required_fields": 3, + "understanding": { + "asked": 1, + "next": 1, + "where": 1, + "which": 1 + } + } + ], + "steps": 1 + } +} \ No newline at end of file diff --git a/runs/tomtervel-flat-2026-09-23/score.log b/runs/tomtervel-flat-2026-09-23/score.log new file mode 100644 index 0000000..2ccae3d --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/score.log @@ -0,0 +1,39 @@ +== answer full +== answer skim +== score full +MISROUTE: nyinnflyttet@/: picked "Oppdater eller avslutt medlemskapet" (0.95), the need is met by ["Bli medlem av Tomter Vel"] +MISROUTE: busslomme@/: picked "Lån ut eller lån av naboen" (0.95), the need is met by ["Meld fra om en trafikkfare"] +MISROUTE: bru@/: picked "Få en nabo til å stille opp" (0.95), the need is met by ["Meld fra om noe ødelagt"] +MISROUTE: togtider@/: picked "Meld fra om en trafikkfare" (0.95), the need is met by ["Få din mening med i høringssvaret"] +MISROUTE: vafler@/: picked "Få en nabo til å stille opp" (0.95), the need is met by ["Bli med på dugnad eller arrangement"] +MISROUTE: planlegger@/: picked "Få din mening med i høringssvaret" (0.95), the need is met by ["Sitt i en komité som betyr noe for deg"] +MISROUTE: stige@/: picked "Meld fra om noe ødelagt" (0.95), the need is met by ["Lån ut eller lån av naboen"] +MISROUTE: hjemmekontor@/: picked "Få en nabo til å stille opp" (0.95), the need is met by ["Bli spurt når en nabo trenger en hånd"] +wording: 12/20 routed right (60%) +== score skim +MISROUTE: glemte-a-betale@/: picked "Oppdater eller avslutt medlemskapet" (0.95), the need is met by ["Bli medlem av Tomter Vel"] +MISROUTE: ny-epost@/: picked "Bli medlem av Tomter Vel" (0.95), the need is met by ["Oppdater eller avslutt medlemskapet"] +MISROUTE: busslomme@/: picked "Bli medlem av Tomter Vel" (0.95), the need is met by ["Meld fra om en trafikkfare"] +MISROUTE: huske@/: picked "Bli medlem av Tomter Vel" (0.95), the need is met by ["Meld fra om noe ødelagt"] +MISROUTE: bru@/: picked "Bli medlem av Tomter Vel" (0.85), the need is met by ["Meld fra om noe ødelagt"] +MISROUTE: togtider@/: picked "Meld fra om en trafikkfare" (0.85), the need is met by ["Få din mening med i høringssvaret"] +MISROUTE: vafler@/: picked "Se deg rundt først" (0.85), the need is met by ["Bli med på dugnad eller arrangement"] +MISROUTE: pendler@/: picked "Bli med på dugnad eller arrangement" (0.85), the need is met by ["Sitt i en komité som betyr noe for deg"] +MISROUTE: planlegger@/: picked "Få din mening med i høringssvaret" (0.95), the need is met by ["Sitt i en komité som betyr noe for deg"] +MISROUTE: snomaking@/: picked "Bli spurt når en nabo trenger en hånd" (0.85), the need is met by ["Få en nabo til å stille opp"] +MISROUTE: nyoperert@/: picked "Bli spurt når en nabo trenger en hånd" (0.95), the need is met by ["Få en nabo til å stille opp"] +wording: 9/20 routed right (45%) +== rate +need LIX which where asked next gutted twin says page load +bli-medlem 27 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 12 options, 3 required - SPLIT +endre-medlemskap 26 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 12 options, 3 required - SPLIT +trafikkfare 26 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 12 options, 2 required - SPLIT +anleggsfeil 24 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 12 options, 2 required - SPLIT +horingsinnspill 25 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 12 options, 3 required - SPLIT +hjelpe-til 25 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 12 options, 3 required - SPLIT +komite 24 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 12 options, 3 required - SPLIT +trenger-hjelp 24 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 12 options, 4 required - SPLIT +kan-hjelpe 25 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 12 options, 4 required - SPLIT +dele-utstyr 24 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 12 options, 4 required - SPLIT +utlegg 36 easy 1/1 1/1 1/1 1/1 0/0/0/0 ok 1 options, 3 required +== done diff --git a/runs/tomtervel-flat-2026-09-23/score.sh b/runs/tomtervel-flat-2026-09-23/score.sh new file mode 100755 index 0000000..b7ef331 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/score.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# Score the built uhhm site: routing by a blind visitor (qwen3:8b), one +# task per call, with and without descriptions; then rate the cards. +set -eu +cd "$(dirname "$0")" +IRIS=/var/local/cargo-target/release/iris +T=/var/local/cargo-target/release/portal-trainer +LLM="MODEL=qwen3:8b ../../engines/ollama.sh" +$IRIS check --path site/questions --needs-tasks tasks-full.jsonl --needs-sim model.json > iris.log 2>&1 +$IRIS check --path site/questions --needs-tasks tasks-skim.jsonl --skim >> iris.log 2>&1 +echo "== answer full"; $T answer --tasks tasks-full.jsonl --repo site --llm "$LLM" > answers-full.jsonl +echo "== answer skim"; $T answer --tasks tasks-skim.jsonl --repo site --llm "$LLM" > answers-skim.jsonl +echo "== score full"; $IRIS check --path site/questions --needs-tasks tasks-full.jsonl --needs-score answers-full.jsonl 2>&1 | grep -E "MISROUTE|HESITANT|UNANSWERED|wording:" +echo "== score skim"; $IRIS check --path site/questions --needs-tasks tasks-skim.jsonl --skim --needs-score answers-skim.jsonl 2>&1 | grep -E "MISROUTE|HESITANT|UNANSWERED|wording:" +echo "== rate"; $T rate --model model.json --out rated --repo site --llm "$LLM" 2>&1 | tail -40 +echo "== done" diff --git a/runs/tomtervel-flat-2026-09-23/site/aggregates.yaml b/runs/tomtervel-flat-2026-09-23/site/aggregates.yaml new file mode 100644 index 0000000..73a8eaa --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/aggregates.yaml @@ -0,0 +1,162 @@ +aggregates: +- bucket: anleggsfeil + initial: open + states: + open: + event: received + tatt_tak_i: + event: tatt_tak_i + utbedret: + event: utbedret + transitions: + open: + - tatt_tak_i + tatt_tak_i: + - utbedret +- bucket: frivillige + initial: open + states: + kontaktet: + event: kontaktet + open: + event: received + satt_opp: + event: satt_opp + takket_nei: + event: takket_nei + transitions: + kontaktet: + - satt_opp + - takket_nei + open: + - kontaktet + - takket_nei +- bucket: hjelpebehov + initial: open + states: + formidlet: + event: formidlet + ikke_lost: + event: ikke_lost + open: + event: received + ordnet: + event: ordnet + transitions: + formidlet: + - ordnet + - ikke_lost + open: + - formidlet + - ikke_lost +- bucket: hjelpere + initial: open + states: + open: + event: received + registrert: + event: registrert + trukket: + event: trukket + transitions: + open: + - registrert + - trukket +- bucket: husstander + initial: open + states: + betalt: + event: betalt + open: + event: received + utmeldt: + event: utmeldt + transitions: + open: + - betalt + - utmeldt +- bucket: innspill + initial: open + states: + ikke_tatt_med: + event: ikke_tatt_med + open: + event: received + tatt_med: + event: tatt_med + transitions: + open: + - tatt_med + - ikke_tatt_med +- bucket: komitesoknader + initial: open + states: + avslatt: + event: avslatt + open: + event: received + plassert: + event: plassert + transitions: + open: + - plassert + - avslatt +- bucket: medlemsendringer + initial: open + states: + open: + event: received + oppdatert: + event: oppdatert + transitions: + open: + - oppdatert +- bucket: oppslag + initial: open + states: + lagt_ut: + event: lagt_ut + open: + event: received + tatt_ned: + event: tatt_ned + transitions: + open: + - lagt_ut + - tatt_ned +- bucket: trafikkmeldinger + initial: open + states: + avvist: + event: avvist + open: + event: received + ordnet: + event: ordnet + tatt_opp: + event: tatt_opp + transitions: + open: + - tatt_opp + - avvist + tatt_opp: + - ordnet + - avvist +- bucket: utlegg + initial: open + states: + avvist: + event: avvist + godkjent: + event: godkjent + open: + event: received + utbetalt: + event: utbetalt + transitions: + godkjent: + - utbetalt + - avvist + open: + - godkjent + - avvist diff --git a/runs/tomtervel-flat-2026-09-23/site/needs.yaml b/runs/tomtervel-flat-2026-09-23/site/needs.yaml new file mode 100644 index 0000000..c618efc --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/needs.yaml @@ -0,0 +1,265 @@ +needs: +- done_when: + - betalt + - utmeldt + enters: / + handled_by: kasserer + id: bli-medlem + lands_in: husstander + max_fields: 3 + max_steps: 1 + stages: + - open + - betalt + - utmeldt + success: + - betalt + via: Bli medlem av Tomter Vel + wants: å bli medlem og få betalt kontingenten + who: en husstand i Tomter +- done_when: + - oppdatert + enters: / + handled_by: kasserer + id: endre-medlemskap + lands_in: medlemsendringer + max_fields: 3 + max_steps: 1 + stages: + - open + - oppdatert + success: + - oppdatert + via: Oppdater eller avslutt medlemskapet + wants: at velet har riktige opplysninger om dem + who: et medlem som har flyttet, byttet e-post eller vil melde seg ut +- done_when: + - ordnet + - avvist + enters: / + handled_by: trafikk + id: trafikkfare + lands_in: trafikkmeldinger + max_fields: 2 + max_steps: 1 + stages: + - open + - tatt_opp + - ordnet + - avvist + success: + - ordnet + via: Meld fra om en trafikkfare + wants: at velet tar det opp med kommunen eller den som eier veien + who: en som har sett et farlig sted i trafikken +- done_when: + - utbedret + enters: / + handled_by: lekeplasser + id: anleggsfeil + lands_in: anleggsfeil + max_fields: 2 + max_steps: 1 + stages: + - open + - tatt_tak_i + - utbedret + success: + - utbedret + via: Meld fra om noe ødelagt + wants: at det blir fikset før noen skader seg + who: en som ser at noe på lekeplassen eller stien er ødelagt +- done_when: + - tatt_med + - ikke_tatt_med + enters: / + handled_by: horingsinstans + id: horingsinnspill + lands_in: innspill + max_fields: 3 + max_steps: 1 + stages: + - open + - tatt_med + - ikke_tatt_med + success: + - tatt_med + via: Få din mening med i høringssvaret + wants: at velet tar det med i sitt svar + who: en beboer som har en mening om en sak kommunen har på høring +- done_when: + - satt_opp + - takket_nei + enters: / + handled_by: arrangementer + id: hjelpe-til + lands_in: frivillige + max_fields: 3 + max_steps: 1 + stages: + - open + - kontaktet + - satt_opp + - takket_nei + success: + - satt_opp + via: Bli med på dugnad eller arrangement + wants: å bli satt opp på noe som passer dem + who: en som vil hjelpe til på et arrangement eller en dugnad +- done_when: + - plassert + - avslatt + enters: / + handled_by: styret + id: komite + lands_in: komitesoknader + max_fields: 3 + max_steps: 1 + stages: + - open + - plassert + - avslatt + success: + - plassert + via: Sitt i en komité som betyr noe for deg + wants: en plass i den komiteen som driver med det de bryr seg om + who: en som vil sitte i en komité +- done_when: + - ordnet + - ikke_lost + enters: / + handled_by: nabohjelp + id: trenger-hjelp + lands_in: hjelpebehov + max_fields: 4 + max_steps: 1 + stages: + - open + - formidlet + - ordnet + - ikke_lost + success: + - ordnet + via: Få en nabo til å stille opp + wants: at en nabo stiller opp + who: en beboer som ikke får til noe selv for tiden, som snømåking, handling eller en skyss +- done_when: + - registrert + - trukket + enters: / + handled_by: nabohjelp + id: kan-hjelpe + lands_in: hjelpere + max_fields: 4 + max_steps: 1 + stages: + - open + - registrert + - trukket + success: + - registrert + via: Bli spurt når en nabo trenger en hånd + wants: å bli spurt når det passer + who: en nabo som kan stille opp når noen trenger det +- done_when: + - lagt_ut + - tatt_ned + enters: / + handled_by: styret + id: dele-utstyr + lands_in: oppslag + max_fields: 4 + max_steps: 1 + stages: + - open + - lagt_ut + - tatt_ned + success: + - lagt_ut + via: Lån ut eller lån av naboen + wants: et oppslag som naboene ser + who: en nabo som har noe å låne ut, eller trenger å låne noe +- done_when: + - utbetalt + - avvist + enters: /komiteer/utlegg + enters_as: komiteer + handled_by: kasserer + id: utlegg + lands_in: utlegg + max_fields: 3 + max_steps: 1 + stages: + - open + - godkjent + - utbetalt + - avvist + success: + - utbetalt + via: Få pengene tilbake + wants: pengene tilbake + who: en i en komité som har lagt ut for noe +personas: +- id: nyinnflyttet + need: bli-medlem + text: Vi flyttet til Tomter i mars og har hørt at det finnes et vel. Hvordan blir vi med, og hva koster det? +- id: glemte-a-betale + need: bli-medlem + text: Jeg har vært medlem før men fikk ikke betalt i fjor. Kan jeg bare vippse, og til hvem? +- id: ny-epost + need: endre-medlemskap + text: Vi har byttet e-postadresse og får ikke lenger noe fra dere. +- id: flytter + need: endre-medlemskap + text: Vi selger huset og flytter til Ski i august, så vi må ut av medlemslista. +- id: skolevei + need: trafikkfare + text: Bilene kjører altfor fort i svingen ved skolen om morgenen, og det er ikke fortau der ungene går. +- id: busslomme + need: trafikkfare + text: Det er umulig å se om det kommer noen når man skal ut fra busslomma ved butikken, hekken har blitt kjempehøy. +- id: huske + need: anleggsfeil + text: Huska på lekeplassen henger i én kjetting. Sønnen min dro i den i går og den holdt så vidt. +- id: bru + need: anleggsfeil + text: Planken på den lille brua på stien langs elva er råtten, jeg gikk nesten gjennom. +- id: blokker + need: horingsinnspill + text: Kommunen skal bygge blokker på jordet bak stasjonen, og jeg synes det er alt for høyt. Kan velet si ifra? +- id: togtider + need: horingsinnspill + text: Ruter vil kutte det tidlige toget. Jeg pendler til Oslo hver dag og vil at velet skriver til dem om det. +- id: vafler + need: hjelpe-til + text: Jeg kan steke vafler på 17. mai-frokosten hvis dere trenger folk. +- id: motorsag + need: hjelpe-til + text: Har motorsag og ledig helg, kan ta trær langs elvestien hvis det er en dugnad. +- id: pendler + need: komite + text: Jeg pendler og er lei av at ingen snakker med Ruter. Jeg vil gjerne være med i gjengen som jobber med det. +- id: planlegger + need: komite + text: Jeg er arealplanlegger av yrke og kunne bidratt når kommunen sender saker på høring. +- id: tilhenger + need: dele-utstyr + text: Jeg har en tilhenger som står ubrukt mesteparten av året, naboer kan gjerne låne den for en hundrelapp. +- id: stige + need: dele-utstyr + text: Trenger en lang stige en dag i helga for å rense takrenna, er det noen i nærheten som har? +- id: snomaking + need: trenger-hjelp + text: Jeg er 84 og klarer ikke å måke innkjørselen lenger. Er det noen som kan hjelpe meg når det snør? +- id: nyoperert + need: trenger-hjelp + text: Jeg er nyoperert i hofta og kommer meg ikke til butikken på noen uker. Kunne noen handlet for meg? +- id: hjemmekontor + need: kan-hjelpe + text: Jeg jobber hjemmefra og kan godt måke eller handle for noen som ikke får det til selv. +- id: pensjonert-elektriker + need: kan-hjelpe + text: Pensjonert elektriker, har bil og god tid. Si fra om noen trenger skyss eller en hånd med småting. +- id: kvittering + need: utlegg + text: Jeg kjøpte pølser og kakao til skøytedagen for 1 840 kroner, her er kvitteringa, vil ha det igjen. diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/arrangementer/_section.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/arrangementer/_section.yaml new file mode 100644 index 0000000..94afa0f --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/arrangementer/_section.yaml @@ -0,0 +1 @@ +qualifies: arrangementer diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/arrangementer/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/arrangementer/index.yaml new file mode 100644 index 0000000..13a990e --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/arrangementer/index.yaml @@ -0,0 +1,65 @@ +alternatives: +- action: /arrangementer + consequence: + - Lagre + description: Her ser du hvem som har meldt seg til dugnad, 17. mai eller andre arrangementer, og hvor langt du har kommet med hver av dem. + features: + - description: '' + name: '' + resource: + requires_group: arrangementer + source: + bucket: frivillige + kind: kv + transitions: + - from: kontaktet + label: Sett opp + to: satt_opp + - from: kontaktet + label: Takket nei + to: takket_nei + - from: open + label: Merk som kontaktet + to: kontaktet + - from: open + label: Takket nei + to: takket_nei + name: Frivillige til arrangementer og dugnad +- action: /arrangementer + consequence: + - Inviter + description: De får en konto, plass i Arrangementer, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: arrangementer + name: Inviter noen inn i Arrangementer +- action: /arrangementer + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: arrangementer + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner +description: Oversikt over folk som vil hjelpe til, slik at du kan følge opp og sette dem opp på noe som passer. +name: Hvem har meldt seg, og hvor langt har jeg kommet med å sette dem opp? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/decide/bli-medlem.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/decide/bli-medlem.yaml new file mode 100644 index 0000000..d7dad96 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/decide/bli-medlem.yaml @@ -0,0 +1,9 @@ +alternatives: +- description: '' + name: Utmeldt + self_transition: + bucket: husstander + label: Utmeldt + to: utmeldt +description: '' +name: What would you like to do? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/decide/dele-utstyr.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/decide/dele-utstyr.yaml new file mode 100644 index 0000000..dfece00 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/decide/dele-utstyr.yaml @@ -0,0 +1,9 @@ +alternatives: +- description: Oppslaget fjernes fra siden, så ingen flere spør om å låne det. + name: Meld at utstyret er tatt ned + self_transition: + bucket: oppslag + label: Ta ned oppslaget + to: tatt_ned +description: Her sier du fra at utstyret er hentet eller ikke lenger tilgjengelig for utlån. +name: Skal oppslaget om utstyret fortsatt stå ute? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/decide/kan-hjelpe.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/decide/kan-hjelpe.yaml new file mode 100644 index 0000000..2598b32 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/decide/kan-hjelpe.yaml @@ -0,0 +1,9 @@ +alternatives: +- description: Du blir tatt av lista over naboer som kan spørres, men kan melde deg på igjen når det passer bedre. + name: Ta en pause fra nabohjelpen + self_transition: + bucket: hjelpere + label: Trekk meg + to: trukket +description: Her ser du naboer som har bedt om en hånd, og kan velge om du fortsatt kan bidra eller trekke deg for nå. +name: Vil du fortsatt kunne bli spurt om å hjelpe en nabo? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/decide/trenger-hjelp.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/decide/trenger-hjelp.yaml new file mode 100644 index 0000000..7aad76e --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/decide/trenger-hjelp.yaml @@ -0,0 +1,9 @@ +alternatives: +- description: Da vet vi at naboen har fått hjelpen sin, og saken lukkes. + name: Meld fra at hjelpen er gitt + self_transition: + bucket: hjelpebehov + label: Merk som ordnet + to: ordnet +description: Her ser du henvendelsen fra naboen som trengte en hånd, og kan si fra når det er ordnet. +name: Har naboen fått hjelpen de trengte? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/horingsinstans/_section.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/horingsinstans/_section.yaml new file mode 100644 index 0000000..ad97e31 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/horingsinstans/_section.yaml @@ -0,0 +1 @@ +qualifies: horingsinstans diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/horingsinstans/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/horingsinstans/index.yaml new file mode 100644 index 0000000..b5c4abb --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/horingsinstans/index.yaml @@ -0,0 +1,59 @@ +alternatives: +- action: /horingsinstans + consequence: + - Send svar + description: Her ligger innspill fra beboere til saker kommunen har på høring. + features: + - description: '' + name: '' + resource: + requires_group: horingsinstans + source: + bucket: innspill + kind: kv + transitions: + - from: open + label: Tatt med i svaret + to: tatt_med + - from: open + label: Ikke tatt med + to: ikke_tatt_med + name: Innspill til høringssvar +- action: /horingsinstans + consequence: + - Inviter + description: De får en konto, plass i Høringsinstans, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: horingsinstans + name: Inviter noen inn i Høringsinstans +- action: /horingsinstans + consequence: + - Send svar + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: horingsinstans + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner +description: Her samler du innspillene og ser hva som er tatt med i velets høringssvar. +name: Hva sier vi i høringssvaret? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/index.yaml new file mode 100644 index 0000000..45176ff --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/index.yaml @@ -0,0 +1,382 @@ +alternatives: +- description: To ting først. Resten står lenger ned på siden. + features: + - description: Velet taler for Tomter overfor kommunen, holder lekeplassene og stien i stand og samler naboene på 17. mai og dugnad. 157 husstander er med. Du melder deg inn her, og ut igjen selv når du vil. + icon: lucide:users + name: Et vel som taler for Tomter, og et medlemskap du styrer selv + - description: Trenger du en hånd med snømåking, handling eller skyss, kobler nabohjelpsgruppa deg med en nabo som kan. Du sier selv fra når det er ordnet. + icon: lucide:handshake + name: En nabo som stiller opp når du trenger det + name: Dette gjør velet +- description: Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står. + features: + - description: 'Lekeplassen og stien: det som er meldt, og det som er fikset. [Alt som er meldt ødelagt](/status/anleggsfeil)' + icon: lucide:list + name: Alt som er meldt ødelagt + - description: Det naboene har å låne ut, og det de trenger å låne. [Oppslagstavla](/status/oppslag) + icon: lucide:list + name: Oppslagstavla + - description: Farlige steder naboene har meldt, og hva velet har gjort med dem. [Alle trafikkmeldinger](/status/trafikkmeldinger) + icon: lucide:list + name: Alle trafikkmeldinger + name: Se deg rundt først +- action: /received/bli-medlem + consequence: + - Bli medlem + description: Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet. + encouragements: + - Kasserer sender deg kontingenten på e-post rett etterpå. + features: + - description: Meldingen går til kasserer, som registrerer deg og sender deg kontingenten på e-post. Når den er betalt er du medlem. + icon: lucide:coins + name: Etter innmelding + - description: Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden. + icon: lucide:user + name: Hvem svarer deg + - description: Ha adressen i Tomter og en e-post du bruker klar. + icon: lucide:user-plus + name: Meld deg inn + requirements: + - label: Navn + name: navn + placeholder: Ola Nordmann + type: text + - label: Adresse + name: adresse + placeholder: Tomterveien 12 + type: text + - label: Email + name: email + type: email + - label: Telefon + name: telefon + optional: true + placeholder: 123 45 678 + type: tel + name: Bli medlem av Tomter Vel + record_as: husstander +- action: /received/endre-medlemskap + consequence: + - Send endring + description: Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger. + encouragements: + - Det tar bare et par minutter, og kasserer ordner resten. + features: + - description: Kasserer får beskjeden og oppdaterer medlemslisten, eller melder deg ut om det er det du ber om. + icon: lucide:refresh-cw + name: Etter du sender inn + - description: Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden. + icon: lucide:user + name: Hvem svarer deg + - description: Skriv navnet ditt og hva som er nytt. + icon: lucide:pencil + name: Endre medlemskap + requirements: + - label: Navn + name: navn + placeholder: Ola Nordmann + type: text + - label: Adresse + name: adresse + placeholder: Ny adresse i Tomter + type: text + - label: Hva vil du endre? + name: hva_er_nytt + placeholder: Ny e-post, ny adresse, eller ønske om utmelding + type: textarea + name: Oppdater eller avslutt medlemskapet + record_as: medlemsendringer +- action: /received/trafikkfare + consequence: + - Send inn + description: Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre. + encouragements: + - Bare noen linjer om hva og hvor er nok til at vi kan følge opp. + features: + - description: Trafikkomiteen tar meldingen din opp med kommunen eller den som eier veien. Du får vite om saken blir ordnet eller avvist. + icon: lucide:route + name: Hva skjer videre + - description: Trafikkomiteen leser meldingen din; haster det, kan du nå styret på post@tomtervel.no. + icon: lucide:car + name: Hvem leser dette + - description: Fortell hva du så, hvor det var, og legg gjerne igjen e-posten din hvis vi trenger å spørre mer. + icon: lucide:alert-triangle + name: Meld trafikkfare + requirements: + - label: Hvor var det + name: hvor + placeholder: Krysset Tomterveien / Elvestien + type: text + - label: Hva så du + name: hva + placeholder: Dårlig sikt i krysset, biler kjører fort + type: textarea + - label: E-post (valgfritt) + name: epost + optional: true + placeholder: ola.nordmann@epost.no + type: email + name: Meld fra om en trafikkfare + record_as: trafikkmeldinger +- action: /received/anleggsfeil + consequence: + - Send inn + description: Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det. + encouragements: + - Det holder med noen ord om hva du så og hvor. + features: + - description: Meldingen går til lekeplasskomiteen, som ser på den og tar tak i saken. Når feilen er utbedret, er saken avsluttet. + icon: lucide:wrench + name: Hva skjer videre + - description: Lekeplasskomiteen leser meldingen din; til det haster kan du nå styret på post@tomtervel.no. + icon: lucide:hammer + name: Hvem leser dette + - description: Fortell hva som er ødelagt og omtrent hvor det er. + icon: lucide:construction + name: Meld anleggsfeil + requirements: + - label: Hvor er det + name: hvor + options: + - Lekeplassen + - Elvestien + - Skøytebanen + - Et annet sted + type: select + - label: Hva er ødelagt + name: hva + placeholder: Løs planke på gjerdet ved husken + type: textarea + name: Meld fra om noe ødelagt + record_as: anleggsfeil +- action: /received/horingsinnspill + consequence: + - Send innspill + description: Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar. + encouragements: + - Innspillet ditt blir lest av høringsutvalget vårt og veier inn i svaret vi sender kommunen. + features: + - description: Innspillet ditt kommer inn hos høringsutvalget. De vurderer om det tas med i velets svar til kommunen, eller om det ikke passer inn denne gangen. + icon: lucide:route + name: Hva skjer videre + - description: Høringsutvalget i Tomter Vel leser innspillet ditt; i mellomtiden kan du nå styret på post@tomtervel.no. + icon: lucide:users + name: Hvem leser dette + - description: Fortell hvilken sak det gjelder og hva du mener. + icon: lucide:megaphone + name: Send et høringsinnspill + requirements: + - label: Navn + name: navn + placeholder: Kari Nordmann + type: text + - label: Hvilken sak gjelder det? + name: sak + placeholder: Reguleringsplan for Tomterveien + type: text + - label: Hva mener du? + name: innspill + placeholder: Jeg mener det bør settes opp fartsdumper langs den nye traseen, for barna krysser der til skolen. + type: textarea + name: Få din mening med i høringssvaret + record_as: innspill +- action: /received/hjelpe-til + consequence: + - Meld meg på + description: 17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer. + encouragements: + - Det holder med noen ord om hva du kan tenke deg – vi tar kontakt når det nærmer seg. + features: + - description: Arrangementskomiteen tar kontakt og finner ut hva som passer for deg. Sier du ja, blir du satt opp på en oppgave – sier du nei takk, er det helt greit. + icon: lucide:clipboard-list + name: Hva skjer videre + - description: Arrangementskomiteen leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden. + icon: lucide:users + name: Hvem leser dette + - description: Fortell kort hva du kan hjelpe til med. + icon: lucide:hand-helping + name: Meld deg som hjelper + requirements: + - label: Navn + name: navn + placeholder: Kari Nordmann + type: text + - label: Telefon + name: telefon + placeholder: 912 34 567 + type: tel + - label: Hva kan du hjelpe til med? + multiple: true + name: hva + options: + - 17. mai + - Juletregranstenning + - Skøytedag + - Dugnad på elvestien + - Det som trengs + type: select + name: Bli med på dugnad eller arrangement + record_as: frivillige +- action: /received/komite + consequence: + - Meld interesse + description: Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i. + encouragements: + - Det tar bare et minutt, og noen fra styret svarer deg. + features: + - description: Styret ser på ønsket ditt og finner en plass i komiteen du har meldt deg til, eller sier fra hvis det ikke er rom akkurat nå. + icon: lucide:clipboard-list + name: Hva skjer videre + - description: Styret leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden. + icon: lucide:handshake + name: Hvem leser dette + - description: Skriv hvilken komité du er interessert i. + icon: lucide:users + name: Meld deg til en komité + requirements: + - label: Navn + name: navn + placeholder: Kari Nordmann + type: text + - label: E-post + name: epost + placeholder: kari@eksempel.no + type: email + - label: Hvilken komité? + multiple: true + name: komite + options: + - Arrangementer + - Elvesti + - Høringsinstans + - Leke- og møteplasser + - Miljøgate + - Pendlerforhold + - Trafikkforhold + type: select + name: Sitt i en komité som betyr noe for deg + record_as: komitesoknader +- action: /received/trenger-hjelp + consequence: + - Be om hjelp + description: Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp. + encouragements: + - Vi finner en nabo som kan stille opp så fort som mulig. + features: + - description: Nabohjelpen finner en nabo som kan stille opp. Er det ordnet, eller om det ikke lot seg løse, får du beskjed. + icon: lucide:hand-helping + name: Fra melding til hjelp + - description: Nabohjelpen tar imot og finner noen til deg, eller ring post@tomtervel.no i mellomtiden. + icon: lucide:users + name: Hvem ser dette + - description: Skriv kort hva du trenger hjelp til. + icon: lucide:heart-handshake + name: Be om en hånd + requirements: + - label: Navn + name: navn + placeholder: Kari Nordmann + type: text + - label: E-post + name: email + placeholder: kari@eksempel.no + type: email + - label: Adresse + name: adresse + placeholder: Tomterveien 12 + type: text + - label: Hva trenger du hjelp til + name: hva + placeholder: Måke snø på trappa, handle inn litt mat + type: textarea + - label: Telefon + name: telefon + optional: true + placeholder: 123 45 678 + type: tel + name: Få en nabo til å stille opp + record_as: hjelpebehov +- action: /received/kan-hjelpe + consequence: + - Meld deg + description: Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer. + encouragements: + - Du blir bare kontaktet når noe passer for deg. + features: + - description: Du blir registrert som hjelper. Trekker du deg tilbake senere, er det bare å si fra. + icon: lucide:user-check + name: Fra påmelding til spørsmål + - description: Nabohjelpen har oversikten og ringer deg direkte når det er noe, eller nås på post@tomtervel.no. + icon: lucide:heart-handshake + name: Hvem ser dette + - description: Fortell kort hva du kan bidra med. + icon: lucide:hand-helping + name: Meld deg som hjelper + requirements: + - label: Navn + name: navn + placeholder: Kari Nordmann + type: text + - label: E-post + name: email + placeholder: kari@eksempel.no + type: email + - label: Telefon + name: telefon + placeholder: 123 45 678 + type: tel + - label: Hva kan du hjelpe med + multiple: true + name: kan + options: + - Snømåking + - Handling + - Kjøring + - Småfiks i huset + - En prat og litt selskap + - Det som trengs + type: select + name: Bli spurt når en nabo trenger en hånd + record_as: hjelpere +- action: /received/dele-utstyr + consequence: + - Legg ut oppslag + description: Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det. + encouragements: + - Vi legger det ut så naboene kan se det. + features: + - description: Oppslaget legges ut for naboene å se. Når det er ordnet eller ikke lenger aktuelt, tas det ned igjen. + icon: lucide:clipboard-list + name: Fra oppslag til avtale + - description: Styret legger ut oppslaget og kan nås på post@tomtervel.no i mellomtiden. + icon: lucide:users + name: Hvem ser dette + - description: Skriv kort hva det gjelder, så folk skjønner det med en gang. + icon: lucide:package + name: Lån eller utlån + requirements: + - label: Navn + name: navn + placeholder: Ola Nordmann + type: text + - label: E-post + name: email + placeholder: ola@eksempel.no + type: email + - label: Har du eller trenger du + name: har_eller_trenger + options: + - Jeg har noe å låne ut + - Jeg trenger å låne noe + type: select + - label: Hva gjelder det + name: hva + placeholder: Hengerfeste til bil, tilhenger, stige + type: textarea + name: Lån ut eller lån av naboen + record_as: oppslag +description: Velforeningen for Tomter, stiftet i 1947, drevet på fritida av naboene dine. Alt du kan be om her havner hos en komité eller styret, og du ser selv hvor saken står. +name: Hva gjør Tomter Vel, og hva kan du få her? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/kasserer/_section.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/kasserer/_section.yaml new file mode 100644 index 0000000..2f8af2f --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/kasserer/_section.yaml @@ -0,0 +1 @@ +qualifies: kasserer diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/kasserer/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/kasserer/index.yaml new file mode 100644 index 0000000..8dda085 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/kasserer/index.yaml @@ -0,0 +1,102 @@ +alternatives: +- action: /kasserer + consequence: + - Lagre + description: Husstander som har meldt seg inn og venter på å bli registrert som betalende medlem. + features: + - description: '' + name: '' + resource: + requires_group: kasserer + source: + bucket: husstander + kind: kv + transitions: + - from: open + label: Registrer betaling + to: betalt + - from: open + label: Meld ut + to: utmeldt + name: Nye medlemmer som venter på registrering +- action: /kasserer + consequence: + - Lagre + description: Medlemmer som har flyttet, byttet e-post eller vil melde seg ut, og venter på at opplysningene blir oppdatert. + features: + - description: '' + name: '' + resource: + requires_group: kasserer + source: + bucket: medlemsendringer + kind: kv + transitions: + - from: open + label: Registrer endring + to: oppdatert + name: Endringer som venter på å bli registrert +- action: /kasserer + consequence: + - Lagre + description: Utlegg fra komitémedlemmer som venter på godkjenning eller utbetaling. + features: + - description: '' + name: '' + resource: + requires_group: kasserer + source: + bucket: utlegg + kind: kv + transitions: + - from: godkjent + label: Merk som utbetalt + to: utbetalt + - from: godkjent + label: Avvis likevel + to: avvist + - from: open + label: Godkjenn utlegg + to: godkjent + - from: open + label: Avvis utlegg + to: avvist + name: Utlegg som venter på deg +- action: /kasserer + consequence: + - Inviter + description: De får en konto, plass i kassereren, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: kasserer + name: Inviter noen inn i kassereren +- action: /kasserer + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: kasserer + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner +description: Her har du oversikt over medlemmer, endringer og utlegg som venter på deg som kasserer. +name: Hva venter på meg som kasserer akkurat nå? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/_section.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/_section.yaml new file mode 100644 index 0000000..57e3295 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/_section.yaml @@ -0,0 +1 @@ +qualifies: komiteer diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/index.yaml new file mode 100644 index 0000000..ccf6e5e --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/index.yaml @@ -0,0 +1,44 @@ +alternatives: +- action: /komiteer/utlegg + consequence: + - Send utlegg + description: Har du lagt ut for noe til komiteen? Send det inn så kasserer kan betale deg tilbake. + name: Få tilbake det du har lagt ut +- action: /komiteer + consequence: + - Inviter + description: De får en konto, plass i komiteene, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: komiteer + name: Inviter noen inn i komiteene +- action: /komiteer + consequence: + - Confirm + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: komiteer + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner +description: Her holder du oversikt over sakene komiteen din har ansvar for, og flytter dem videre etter hvert som de blir fulgt opp. +name: Hva står ubehandlet i komiteen din nå? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/utlegg-sent.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/utlegg-sent.yaml new file mode 100644 index 0000000..e347ad3 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/utlegg-sent.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Kasserer ser gjennom kvitteringen og overfører pengene til kontoen du oppga. + name: Pengene kommer på konto +- action: /komiteer + consequence: + - Til forsiden + description: '' + name: Til forsiden +description: Utlegget er sendt til kasserer. Du får beskjed når det er sjekket. +name: Hva skjer med utlegget mitt nå? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/utlegg.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/utlegg.yaml new file mode 100644 index 0000000..5d94ad3 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/komiteer/utlegg.yaml @@ -0,0 +1,38 @@ +alternatives: +- action: /komiteer/utlegg-sent + consequence: + - Send inn + description: Har du lagt ut for noe til komiteen? Send det inn, så ordner kasserer resten. + encouragements: + - Legg ved bilag om du har det, så går det raskere. + features: + - description: Kasserer ser gjennom kravet og godkjenner det, og deretter blir pengene utbetalt til deg. Blir det avvist, hører du hvorfor. + icon: lucide:wallet + name: Fra krav til utbetaling + - description: Kasserer i styret leser kravet ditt, og kan nås på post@tomtervel.no om det haster. + icon: lucide:coins + name: Kasserer ser dette + - description: Ha kvittering eller bilag klart før du fyller ut. + icon: lucide:receipt + name: Krav om refusjon + requirements: + - label: Navn + name: navn + placeholder: Kari Nordmann + type: text + - label: Beløp + name: belop + placeholder: 450 kr + type: text + - label: Hva gjaldt det + name: hva + placeholder: Kaffe og kjeks til dugnaden + type: textarea + name: Få pengene tilbake + record_as: utlegg +description: Har du betalt for noe på vegne av en komité? Send inn utlegget, så får du pengene tilbake. +followup: false +name: Har du lagt ut penger for komiteen og vil ha dem tilbake? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/lekeplasser/_section.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/lekeplasser/_section.yaml new file mode 100644 index 0000000..1652221 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/lekeplasser/_section.yaml @@ -0,0 +1 @@ +qualifies: lekeplasser diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/lekeplasser/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/lekeplasser/index.yaml new file mode 100644 index 0000000..215a9bc --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/lekeplasser/index.yaml @@ -0,0 +1,59 @@ +alternatives: +- action: /lekeplasser + consequence: + - Lagre + description: Meldinger om noe som er ødelagt på lekeplassen eller langs stien, og som bør fikses. + features: + - description: '' + name: '' + resource: + requires_group: lekeplasser + source: + bucket: anleggsfeil + kind: kv + transitions: + - from: open + label: Ta tak i saken + to: tatt_tak_i + - from: tatt_tak_i + label: Merk som utbedret + to: utbedret + name: Det som er meldt inn av skader +- action: /lekeplasser + consequence: + - Inviter + description: De får en konto, plass i Leke- og møteplasser, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: lekeplasser + name: Inviter noen inn i Leke- og møteplasser +- action: /lekeplasser + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: lekeplasser + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner +description: Her følger komiteen for lekeplassene opp det som er meldt inn av skader, til det er fikset. +name: Hva må fikses på lekeplassene og stien nå? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/nabohjelp/_section.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/nabohjelp/_section.yaml new file mode 100644 index 0000000..5b3a2ad --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/nabohjelp/_section.yaml @@ -0,0 +1 @@ +qualifies: nabohjelp diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/nabohjelp/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/nabohjelp/index.yaml new file mode 100644 index 0000000..ab4db6b --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/nabohjelp/index.yaml @@ -0,0 +1,85 @@ +alternatives: +- action: /nabohjelp + consequence: + - Lagre + description: Naboer som trenger en hånd med snømåking, handling eller skyss – klare til å bli koblet med noen som kan hjelpe. + features: + - description: '' + name: '' + resource: + requires_group: nabohjelp + source: + bucket: hjelpebehov + kind: kv + transitions: + - from: formidlet + label: Meld ordnet + to: ordnet + - from: formidlet + label: Meld ikke løst + to: ikke_lost + - from: open + label: Koble til nabo + to: formidlet + - from: open + label: Meld ikke løst + to: ikke_lost + name: Naboer som trenger en hånd +- action: /nabohjelp + consequence: + - Lagre + description: Naboer som har sagt de kan stille opp – klare til å bli spurt når noen trenger dem. + features: + - description: '' + name: '' + resource: + requires_group: nabohjelp + source: + bucket: hjelpere + kind: kv + transitions: + - from: open + label: Registrer som hjelper + to: registrert + - from: open + label: Meld trukket + to: trukket + name: Naboer som kan stille opp +- action: /nabohjelp + consequence: + - Inviter + description: De får en konto, plass i nabohjelpen, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: nabohjelp + name: Inviter noen inn i nabohjelpen +- action: /nabohjelp + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: nabohjelp + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner +description: Her kobler du naboer som trenger hjelp med dem som kan stille opp. +name: Hvem trenger hjelp, og hvem kan stille opp? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/received/anleggsfeil.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/received/anleggsfeil.yaml new file mode 100644 index 0000000..09d4976 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/received/anleggsfeil.yaml @@ -0,0 +1,15 @@ +alternatives: +- description: Lekeplasskomiteen ser på meldingen og tar tak i det som må fikses før noen skader seg. + name: Komiteen tar tak i det +- action: /status/anleggsfeil + consequence: + - Se meldte feil + description: Se hva andre har meldt inn av skader på lekeplassene og stien, og hvor langt det har kommet. + name: Se andre meldte feil +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Meldingen din om skaden er sendt til lekeplasskomiteen. De ser over det du har sendt. +name: Hva skjer med meldingen min nå? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/received/bli-medlem.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/received/bli-medlem.yaml new file mode 100644 index 0000000..533f8a6 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/received/bli-medlem.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Kasserer går gjennom nye innmeldinger og sender deg kontonummer og beløp for kontingenten. + name: Kasserer sender deg betalingsinfo +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Vi har mottatt innmeldingen din. Kasserer tar kontakt med betalingsinfo så snart medlemskapet er registrert. +name: Hva skjer etter at jeg har meldt meg inn? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/received/dele-utstyr.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/received/dele-utstyr.yaml new file mode 100644 index 0000000..761313b --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/received/dele-utstyr.yaml @@ -0,0 +1,15 @@ +alternatives: +- description: En i styret legger utstyret ut på naboenes oppslag, så andre kan se det og spørre om å låne. + name: Styret legger det ut for deg +- action: /status/oppslag + consequence: + - Se hva naboer deler + description: Se hva andre i Tomter har lagt ut til utlån akkurat nå. + name: Se alt naboene deler +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Takk for at du la ut noe naboene kan låne. Vi legger det ut på oppslaget så snart vi kan. +name: Hva skjer med det jeg har lagt ut? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/received/endre-medlemskap.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/received/endre-medlemskap.yaml new file mode 100644 index 0000000..c58d676 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/received/endre-medlemskap.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Kasserer oppdaterer medlemslista og gir deg beskjed hvis det er noe mer vi trenger fra deg. + name: Kasserer retter opp opplysningene +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Vi har mottatt beskjeden om at du har flyttet, byttet e-post eller vil melde deg ut. +name: Hva skjer nå med det jeg meldte inn? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/received/hjelpe-til.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/received/hjelpe-til.yaml new file mode 100644 index 0000000..3c61af4 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/received/hjelpe-til.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Du hører fra noen i komiteen når de vet hva de trenger hjelp til, gjerne noen dager før arrangementet eller dugnaden. + name: Komiteen tar kontakt +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Takk for at du vil hjelpe til. Arrangementskomiteen har fått beskjed og tar kontakt med deg. +name: Hva skjer nå som jeg har meldt meg? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/received/horingsinnspill.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/received/horingsinnspill.yaml new file mode 100644 index 0000000..bf87c92 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/received/horingsinnspill.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: De ser på om det kan tas med i velets høringssvar til kommunen, og gir beskjed om det blir med. + name: Innspillet ditt inn i vurderingen +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Innspillet ditt er sendt til høringsinstansen i velet. +name: Hva skjer med det jeg har sagt om saken? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/received/kan-hjelpe.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/received/kan-hjelpe.yaml new file mode 100644 index 0000000..0ac67b5 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/received/kan-hjelpe.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Når en nabo trenger hjelp med noe du har sagt du kan bidra med, tar komiteen kontakt med deg direkte. + name: Du blir kontaktet ved behov +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Takk for at du sier fra at du kan stille opp. Nabohjelp-komiteen tar imot meldingen og legger deg inn på lista over naboer som kan hjelpe. +name: Hva skjer nå som jeg har registrert meg? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/received/komite.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/received/komite.yaml new file mode 100644 index 0000000..a36dfda --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/received/komite.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Noen fra styret tar kontakt for å høre mer om hva du liker å drive med, og finner en komité som passer. + name: Vi finner riktig komité til deg +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Takk for at du vil bidra! Styret har fått beskjed og ser på hvilken komité som passer best for deg. +name: Hva skjer nå som jeg har meldt interesse for en komité? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/received/trafikkfare.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/received/trafikkfare.yaml new file mode 100644 index 0000000..82da494 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/received/trafikkfare.yaml @@ -0,0 +1,15 @@ +alternatives: +- description: Trafikkomiteen ser gjennom meldinger jevnlig og tar det videre med kommunen eller den som eier veien der det trengs. + name: Trafikkomiteen tar den videre +- action: /status/trafikkmeldinger + consequence: + - Se andre trafikkfarer + description: Se hva andre har meldt inn, og status på sakene. + name: Andre meldte trafikkfarer +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Meldingen din om trafikkfaren er sendt til komiteen for trafikk. +name: Hva skjer med meldingen min nå? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/received/trenger-hjelp.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/received/trenger-hjelp.yaml new file mode 100644 index 0000000..beec6e5 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/received/trenger-hjelp.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Vi tar kontakt med noen som kan hjelpe, så snart vi finner en som passer. + name: Vi finner en nabo til deg +- action: / + consequence: + - Til forsiden + description: '' + name: Til forsiden +description: Meldingen din er sendt til nabohjelpa. Vi ser etter en nabo som kan stille opp. +name: Hva skjer nå som jeg har bedt om hjelp? diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/status/anleggsfeil/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/status/anleggsfeil/index.yaml new file mode 100644 index 0000000..805a464 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/status/anleggsfeil/index.yaml @@ -0,0 +1,22 @@ +alternatives: +- description: Alle meldinger er åpne for alle å se. + features: + - description: '' + name: '' + resource: + jq: '.[] | .responses |= {hva: .hva, hvor: .hvor}' + public: true + source: + bucket: anleggsfeil + kind: kv + name: Status på meldte anleggsfeil +- action: / + consequence: + - Tilbake til meldinger + description: '' + name: Tilbake til meldinger +description: Her ser du meldinger om ødelagt lekeutstyr og skader på elvestien, og hvor langt hver sak har kommet. +name: Hva skjer med det jeg har meldt fra om? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/status/oppslag/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/status/oppslag/index.yaml new file mode 100644 index 0000000..cf172af --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/status/oppslag/index.yaml @@ -0,0 +1,22 @@ +alternatives: +- description: Åpen liste – navn og detaljer vises ikke. + features: + - description: '' + name: '' + resource: + jq: '.[] | .responses |= {har_eller_trenger: .har_eller_trenger, hva: .hva}' + public: true + source: + bucket: oppslag + kind: kv + name: Oversikt over det som er meldt inn +- action: / + consequence: + - Tilbake + description: '' + name: Tilbake +description: Her ser du alt som er sendt inn og hvor langt hvert oppslag har kommet. +name: Hva er sendt inn, og hvor langt har det kommet? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/status/trafikkmeldinger/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/status/trafikkmeldinger/index.yaml new file mode 100644 index 0000000..7444f44 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/status/trafikkmeldinger/index.yaml @@ -0,0 +1,22 @@ +alternatives: +- description: Alle meldinger som er sendt inn, og hvor de står nå. + features: + - description: '' + name: '' + resource: + jq: '.[] | .responses |= {hva: .hva, hvor: .hvor}' + public: true + source: + bucket: trafikkmeldinger + kind: kv + name: Trafikkmeldinger og status +- action: / + consequence: + - Tilbake + description: '' + name: Tilbake +description: Her ser du farlige steder i trafikken som er meldt inn, og hvor langt saken har kommet. +name: Er det meldt fra om noe farlig i trafikken der jeg bor? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/styret/_section.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/styret/_section.yaml new file mode 100644 index 0000000..5a34160 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/styret/_section.yaml @@ -0,0 +1 @@ +qualifies: styret diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/styret/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/styret/index.yaml new file mode 100644 index 0000000..1a27364 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/styret/index.yaml @@ -0,0 +1,219 @@ +alternatives: +- action: /styret + consequence: + - Lagre + description: Her samles meninger fra beboerne om saker kommunen har på høring, klare til å tas med i velets svar. + features: + - description: '' + name: '' + resource: + requires_group: styret + source: + bucket: innspill + kind: kv + transitions: [] + name: Høringsinnspill fra beboerne +- action: /styret + consequence: + - Lagre + description: Her ligger alle som har meldt seg til en komité og venter på en plass. + features: + - description: '' + name: '' + resource: + requires_group: styret + source: + bucket: komitesoknader + kind: kv + transitions: + - from: open + label: Sett i komité + to: plassert + - from: open + label: Avslå søknaden + to: avslatt + name: Søknader til komiteene +- action: /styret + consequence: + - Lagre + description: Her ligger det naboer har å låne ut eller trenger å låne, klart til å legges ut. + features: + - description: '' + name: '' + resource: + requires_group: styret + source: + bucket: oppslag + kind: kv + transitions: + - from: open + label: Legg ut oppslaget + to: lagt_ut + - from: open + label: Ta ned oppslaget + to: tatt_ned + name: Utstyr til utlån blant naboer +- action: /styret + consequence: + - Lagre + description: Her samles meldinger om farlige steder i trafikken, klare til å tas videre med kommunen eller veieier. + features: + - description: '' + name: '' + resource: + requires_group: styret + source: + bucket: trafikkmeldinger + kind: kv + transitions: [] + name: Meldinger om trafikkfarer +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i Arrangementer, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: arrangementer + name: Inviter noen inn i Arrangementer +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i Høringsinstans, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: horingsinstans + name: Inviter noen inn i Høringsinstans +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i kassereren, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: kasserer + name: Inviter noen inn i kassereren +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i komiteene, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: komiteer + name: Inviter noen inn i komiteene +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i Leke- og møteplasser, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: lekeplasser + name: Inviter noen inn i Leke- og møteplasser +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i nabohjelpen, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: nabohjelp + name: Inviter noen inn i nabohjelpen +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i styret, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: styret + name: Inviter noen inn i styret +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i Trafikkforhold, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: trafikk + name: Inviter noen inn i Trafikkforhold +- action: /styret + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: styret + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner +description: 'Herfra følger styret opp det som ikke hører under en enkelt komité: høringssvar, komitéplasser og oppslag fra naboer.' +name: Hva venter på styret akkurat nå? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/trafikk/_section.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/trafikk/_section.yaml new file mode 100644 index 0000000..dbe5246 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/trafikk/_section.yaml @@ -0,0 +1 @@ +qualifies: trafikk diff --git a/runs/tomtervel-flat-2026-09-23/site/questions/trafikk/index.yaml b/runs/tomtervel-flat-2026-09-23/site/questions/trafikk/index.yaml new file mode 100644 index 0000000..d14490e --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/questions/trafikk/index.yaml @@ -0,0 +1,65 @@ +alternatives: +- action: /trafikk + consequence: + - Lagre + description: Farlige steder i trafikken som naboer har meldt inn. + features: + - description: '' + name: '' + resource: + requires_group: trafikk + source: + bucket: trafikkmeldinger + kind: kv + transitions: + - from: open + label: Ta opp med kommunen + to: tatt_opp + - from: open + label: Avvis meldingen + to: avvist + - from: tatt_opp + label: Meld ordnet + to: ordnet + - from: tatt_opp + label: Avvis meldingen + to: avvist + name: Farlige steder i trafikken +- action: /trafikk + consequence: + - Inviter + description: De får en konto, plass i Trafikkforhold, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: trafikk + name: Inviter noen inn i Trafikkforhold +- action: /trafikk + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: trafikk + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner +description: Her ser du meldinger om farlige steder i trafikken og følger dem opp overfor kommunen eller veieier. +name: Hvilke trafikkfarer må følges opp? +responsible: + contact: post@tomtervel.no + name: Styret i Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/site.yaml b/runs/tomtervel-flat-2026-09-23/site/site.yaml new file mode 100644 index 0000000..e1c5866 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/site.yaml @@ -0,0 +1,2 @@ +lang: no +title: Tomter Vel diff --git a/runs/tomtervel-flat-2026-09-23/site/words.json b/runs/tomtervel-flat-2026-09-23/site/words.json new file mode 100644 index 0000000..0e461bf --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/site/words.json @@ -0,0 +1,868 @@ +{ + "questions/arrangementer/index.yaml": { + "buckets": { + "frivillige": { + "description": "Her ser du hvem som har meldt seg til dugnad, 17. mai eller andre arrangementer, og hvor langt du har kommet med hver av dem.", + "heading": "Frivillige til arrangementer og dugnad", + "moves": { + "kontaktet->satt_opp": "Sett opp", + "kontaktet->takket_nei": "Takket nei", + "open->kontaktet": "Merk som kontaktet", + "open->takket_nei": "Takket nei" + } + } + }, + "confirm": "Lagre", + "description": "Oversikt over folk som vil hjelpe til, slik at du kan følge opp og sette dem opp på noe som passer.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "arrangementer": { + "button": "Inviter", + "description": "De får en konto, plass i Arrangementer, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Arrangementer", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hvem har meldt seg, og hvor langt har jeg kommet med å sette dem opp?" + }, + "questions/decide/bli-medlem.yaml": { + "description": "", + "moves": { + "utmeldt": { + "button": "Utmeldt", + "description": "", + "heading": "Utmeldt" + } + }, + "question": "What would you like to do?" + }, + "questions/decide/dele-utstyr.yaml": { + "description": "Her sier du fra at utstyret er hentet eller ikke lenger tilgjengelig for utlån.", + "moves": { + "tatt_ned": { + "button": "Ta ned oppslaget", + "description": "Oppslaget fjernes fra siden, så ingen flere spør om å låne det.", + "heading": "Meld at utstyret er tatt ned" + } + }, + "question": "Skal oppslaget om utstyret fortsatt stå ute?" + }, + "questions/decide/kan-hjelpe.yaml": { + "description": "Her ser du naboer som har bedt om en hånd, og kan velge om du fortsatt kan bidra eller trekke deg for nå.", + "moves": { + "trukket": { + "button": "Trekk meg", + "description": "Du blir tatt av lista over naboer som kan spørres, men kan melde deg på igjen når det passer bedre.", + "heading": "Ta en pause fra nabohjelpen" + } + }, + "question": "Vil du fortsatt kunne bli spurt om å hjelpe en nabo?" + }, + "questions/decide/trenger-hjelp.yaml": { + "description": "Her ser du henvendelsen fra naboen som trengte en hånd, og kan si fra når det er ordnet.", + "moves": { + "ordnet": { + "button": "Merk som ordnet", + "description": "Da vet vi at naboen har fått hjelpen sin, og saken lukkes.", + "heading": "Meld fra at hjelpen er gitt" + } + }, + "question": "Har naboen fått hjelpen de trengte?" + }, + "questions/horingsinstans/index.yaml": { + "buckets": { + "innspill": { + "description": "Her ligger innspill fra beboere til saker kommunen har på høring.", + "heading": "Innspill til høringssvar", + "moves": { + "open->ikke_tatt_med": "Ikke tatt med", + "open->tatt_med": "Tatt med i svaret" + } + } + }, + "confirm": "Send svar", + "description": "Her samler du innspillene og ser hva som er tatt med i velets høringssvar.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "horingsinstans": { + "button": "Inviter", + "description": "De får en konto, plass i Høringsinstans, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Høringsinstans", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hva sier vi i høringssvaret?" + }, + "questions/index.yaml": { + "description": "Velforeningen for Tomter, stiftet i 1947, drevet på fritida av naboene dine. Alt du kan be om her havner hos en komité eller styret, og du ser selv hvor saken står.", + "doors": {}, + "needs": { + "anleggsfeil": { + "button": "Send inn", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.", + "encouragement": "Det holder med noen ord om hva du så og hvor.", + "form_description": "Fortell hva som er ødelagt og omtrent hvor det er.", + "form_title": "Meld anleggsfeil", + "heading": "Meld fra om noe ødelagt", + "hints": { + "hva": "Løs planke på gjerdet ved husken", + "hvor": "" + }, + "icon": "construction", + "labels": { + "hva": "Hva er ødelagt", + "hvor": "Hvor er det" + }, + "road_description": "Meldingen går til lekeplasskomiteen, som ser på den og tar tak i saken. Når feilen er utbedret, er saken avsluttet.", + "road_icon": "lucide:wrench", + "road_title": "Hva skjer videre", + "who_description": "Lekeplasskomiteen leser meldingen din; til det haster kan du nå styret på post@tomtervel.no.", + "who_icon": "lucide:hammer", + "who_title": "Hvem leser dette" + }, + "bli-medlem": { + "button": "Bli medlem", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.", + "encouragement": "Kasserer sender deg kontingenten på e-post rett etterpå.", + "form_description": "Ha adressen i Tomter og en e-post du bruker klar.", + "form_title": "Meld deg inn", + "heading": "Bli medlem av Tomter Vel", + "hints": { + "adresse": "Tomterveien 12", + "email": "", + "navn": "Ola Nordmann", + "telefon": "123 45 678" + }, + "icon": "user-plus", + "labels": { + "adresse": "Adresse", + "email": "Email", + "navn": "Navn", + "telefon": "Telefon" + }, + "road_description": "Meldingen går til kasserer, som registrerer deg og sender deg kontingenten på e-post. Når den er betalt er du medlem.", + "road_icon": "lucide:coins", + "road_title": "Etter innmelding", + "who_description": "Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:user", + "who_title": "Hvem svarer deg" + }, + "dele-utstyr": { + "button": "Legg ut oppslag", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.", + "encouragement": "Vi legger det ut så naboene kan se det.", + "form_description": "Skriv kort hva det gjelder, så folk skjønner det med en gang.", + "form_title": "Lån eller utlån", + "heading": "Lån ut eller lån av naboen", + "hints": { + "email": "ola@eksempel.no", + "har_eller_trenger": "", + "hva": "Hengerfeste til bil, tilhenger, stige", + "navn": "Ola Nordmann" + }, + "icon": "package", + "labels": { + "email": "E-post", + "har_eller_trenger": "Har du eller trenger du", + "hva": "Hva gjelder det", + "navn": "Navn" + }, + "road_description": "Oppslaget legges ut for naboene å se. Når det er ordnet eller ikke lenger aktuelt, tas det ned igjen.", + "road_icon": "lucide:clipboard-list", + "road_title": "Fra oppslag til avtale", + "who_description": "Styret legger ut oppslaget og kan nås på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:users", + "who_title": "Hvem ser dette" + }, + "endre-medlemskap": { + "button": "Send endring", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.", + "encouragement": "Det tar bare et par minutter, og kasserer ordner resten.", + "form_description": "Skriv navnet ditt og hva som er nytt.", + "form_title": "Endre medlemskap", + "heading": "Oppdater eller avslutt medlemskapet", + "hints": { + "adresse": "Ny adresse i Tomter", + "hva_er_nytt": "Ny e-post, ny adresse, eller ønske om utmelding", + "navn": "Ola Nordmann" + }, + "icon": "pencil", + "labels": { + "adresse": "Adresse", + "hva_er_nytt": "Hva vil du endre?", + "navn": "Navn" + }, + "road_description": "Kasserer får beskjeden og oppdaterer medlemslisten, eller melder deg ut om det er det du ber om.", + "road_icon": "lucide:refresh-cw", + "road_title": "Etter du sender inn", + "who_description": "Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:user", + "who_title": "Hvem svarer deg" + }, + "hjelpe-til": { + "button": "Meld meg på", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.", + "encouragement": "Det holder med noen ord om hva du kan tenke deg – vi tar kontakt når det nærmer seg.", + "form_description": "Fortell kort hva du kan hjelpe til med.", + "form_title": "Meld deg som hjelper", + "heading": "Bli med på dugnad eller arrangement", + "hints": { + "hva": "", + "navn": "Kari Nordmann", + "telefon": "912 34 567" + }, + "icon": "hand-helping", + "labels": { + "hva": "Hva kan du hjelpe til med?", + "navn": "Navn", + "telefon": "Telefon" + }, + "road_description": "Arrangementskomiteen tar kontakt og finner ut hva som passer for deg. Sier du ja, blir du satt opp på en oppgave – sier du nei takk, er det helt greit.", + "road_icon": "lucide:clipboard-list", + "road_title": "Hva skjer videre", + "who_description": "Arrangementskomiteen leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:users", + "who_title": "Hvem leser dette" + }, + "horingsinnspill": { + "button": "Send innspill", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.", + "encouragement": "Innspillet ditt blir lest av høringsutvalget vårt og veier inn i svaret vi sender kommunen.", + "form_description": "Fortell hvilken sak det gjelder og hva du mener.", + "form_title": "Send et høringsinnspill", + "heading": "Få din mening med i høringssvaret", + "hints": { + "innspill": "Jeg mener det bør settes opp fartsdumper langs den nye traseen, for barna krysser der til skolen.", + "navn": "Kari Nordmann", + "sak": "Reguleringsplan for Tomterveien" + }, + "icon": "megaphone", + "labels": { + "innspill": "Hva mener du?", + "navn": "Navn", + "sak": "Hvilken sak gjelder det?" + }, + "road_description": "Innspillet ditt kommer inn hos høringsutvalget. De vurderer om det tas med i velets svar til kommunen, eller om det ikke passer inn denne gangen.", + "road_icon": "lucide:route", + "road_title": "Hva skjer videre", + "who_description": "Høringsutvalget i Tomter Vel leser innspillet ditt; i mellomtiden kan du nå styret på post@tomtervel.no.", + "who_icon": "lucide:users", + "who_title": "Hvem leser dette" + }, + "kan-hjelpe": { + "button": "Meld deg", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.", + "encouragement": "Du blir bare kontaktet når noe passer for deg.", + "form_description": "Fortell kort hva du kan bidra med.", + "form_title": "Meld deg som hjelper", + "heading": "Bli spurt når en nabo trenger en hånd", + "hints": { + "email": "kari@eksempel.no", + "kan": "", + "navn": "Kari Nordmann", + "telefon": "123 45 678" + }, + "icon": "hand-helping", + "labels": { + "email": "E-post", + "kan": "Hva kan du hjelpe med", + "navn": "Navn", + "telefon": "Telefon" + }, + "road_description": "Du blir registrert som hjelper. Trekker du deg tilbake senere, er det bare å si fra.", + "road_icon": "lucide:user-check", + "road_title": "Fra påmelding til spørsmål", + "who_description": "Nabohjelpen har oversikten og ringer deg direkte når det er noe, eller nås på post@tomtervel.no.", + "who_icon": "lucide:heart-handshake", + "who_title": "Hvem ser dette" + }, + "komite": { + "button": "Meld interesse", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i.", + "encouragement": "Det tar bare et minutt, og noen fra styret svarer deg.", + "form_description": "Skriv hvilken komité du er interessert i.", + "form_title": "Meld deg til en komité", + "heading": "Sitt i en komité som betyr noe for deg", + "hints": { + "epost": "kari@eksempel.no", + "komite": "", + "navn": "Kari Nordmann" + }, + "icon": "users", + "labels": { + "epost": "E-post", + "komite": "Hvilken komité?", + "navn": "Navn" + }, + "road_description": "Styret ser på ønsket ditt og finner en plass i komiteen du har meldt deg til, eller sier fra hvis det ikke er rom akkurat nå.", + "road_icon": "lucide:clipboard-list", + "road_title": "Hva skjer videre", + "who_description": "Styret leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:handshake", + "who_title": "Hvem leser dette" + }, + "trafikkfare": { + "button": "Send inn", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.", + "encouragement": "Bare noen linjer om hva og hvor er nok til at vi kan følge opp.", + "form_description": "Fortell hva du så, hvor det var, og legg gjerne igjen e-posten din hvis vi trenger å spørre mer.", + "form_title": "Meld trafikkfare", + "heading": "Meld fra om en trafikkfare", + "hints": { + "epost": "ola.nordmann@epost.no", + "hva": "Dårlig sikt i krysset, biler kjører fort", + "hvor": "Krysset Tomterveien / Elvestien" + }, + "icon": "alert-triangle", + "labels": { + "epost": "E-post (valgfritt)", + "hva": "Hva så du", + "hvor": "Hvor var det" + }, + "road_description": "Trafikkomiteen tar meldingen din opp med kommunen eller den som eier veien. Du får vite om saken blir ordnet eller avvist.", + "road_icon": "lucide:route", + "road_title": "Hva skjer videre", + "who_description": "Trafikkomiteen leser meldingen din; haster det, kan du nå styret på post@tomtervel.no.", + "who_icon": "lucide:car", + "who_title": "Hvem leser dette" + }, + "trenger-hjelp": { + "button": "Be om hjelp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.", + "encouragement": "Vi finner en nabo som kan stille opp så fort som mulig.", + "form_description": "Skriv kort hva du trenger hjelp til.", + "form_title": "Be om en hånd", + "heading": "Få en nabo til å stille opp", + "hints": { + "adresse": "Tomterveien 12", + "email": "kari@eksempel.no", + "hva": "Måke snø på trappa, handle inn litt mat", + "navn": "Kari Nordmann", + "telefon": "123 45 678" + }, + "icon": "heart-handshake", + "labels": { + "adresse": "Adresse", + "email": "E-post", + "hva": "Hva trenger du hjelp til", + "navn": "Navn", + "telefon": "Telefon" + }, + "road_description": "Nabohjelpen finner en nabo som kan stille opp. Er det ordnet, eller om det ikke lot seg løse, får du beskjed.", + "road_icon": "lucide:hand-helping", + "road_title": "Fra melding til hjelp", + "who_description": "Nabohjelpen tar imot og finner noen til deg, eller ring post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:users", + "who_title": "Hvem ser dette" + } + }, + "opener": { + "description": "To ting først. Resten står lenger ned på siden.", + "features": { + "medlem": { + "description": "Velet taler for Tomter overfor kommunen, holder lekeplassene og stien i stand og samler naboene på 17. mai og dugnad. 157 husstander er med. Du melder deg inn her, og ut igjen selv når du vil.", + "heading": "Et vel som taler for Tomter, og et medlemskap du styrer selv", + "icon": "users" + }, + "nabo": { + "description": "Trenger du en hånd med snømåking, handling eller skyss, kobler nabohjelpsgruppa deg med en nabo som kan. Du sier selv fra når det er ordnet.", + "heading": "En nabo som stiller opp når du trenger det", + "icon": "handshake" + } + }, + "heading": "Dette gjør velet" + }, + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "shopping": { + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.", + "heading": "Se deg rundt først", + "items": { + "status-anleggsfeil": { + "description": "Lekeplassen og stien: det som er meldt, og det som er fikset.", + "heading": "Alt som er meldt ødelagt", + "icon": "list" + }, + "status-oppslag": { + "description": "Det naboene har å låne ut, og det de trenger å låne.", + "heading": "Oppslagstavla", + "icon": "list" + }, + "status-trafikkmeldinger": { + "description": "Farlige steder naboene har meldt, og hva velet har gjort med dem.", + "heading": "Alle trafikkmeldinger", + "icon": "list" + } + } + } + }, + "questions/kasserer/index.yaml": { + "buckets": { + "husstander": { + "description": "Husstander som har meldt seg inn og venter på å bli registrert som betalende medlem.", + "heading": "Nye medlemmer som venter på registrering", + "moves": { + "open->betalt": "Registrer betaling", + "open->utmeldt": "Meld ut" + } + }, + "medlemsendringer": { + "description": "Medlemmer som har flyttet, byttet e-post eller vil melde seg ut, og venter på at opplysningene blir oppdatert.", + "heading": "Endringer som venter på å bli registrert", + "moves": { + "open->oppdatert": "Registrer endring" + } + }, + "utlegg": { + "description": "Utlegg fra komitémedlemmer som venter på godkjenning eller utbetaling.", + "heading": "Utlegg som venter på deg", + "moves": { + "godkjent->avvist": "Avvis likevel", + "godkjent->utbetalt": "Merk som utbetalt", + "open->avvist": "Avvis utlegg", + "open->godkjent": "Godkjenn utlegg" + } + } + }, + "confirm": "Lagre", + "description": "Her har du oversikt over medlemmer, endringer og utlegg som venter på deg som kasserer.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "kasserer": { + "button": "Inviter", + "description": "De får en konto, plass i kassereren, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i kassereren", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hva venter på meg som kasserer akkurat nå?" + }, + "questions/komiteer/index.yaml": { + "buckets": {}, + "confirm": "Confirm", + "description": "Her holder du oversikt over sakene komiteen din har ansvar for, og flytter dem videre etter hvert som de blir fulgt opp.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "komiteer": { + "button": "Inviter", + "description": "De får en konto, plass i komiteene, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i komiteene", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": { + "utlegg": { + "button": "Send utlegg", + "description": "Har du lagt ut for noe til komiteen? Send det inn så kasserer kan betale deg tilbake.", + "heading": "Få tilbake det du har lagt ut" + } + }, + "question": "Hva står ubehandlet i komiteen din nå?" + }, + "questions/komiteer/utlegg-sent.yaml": { + "back": "Til forsiden", + "description": "Utlegget er sendt til kasserer. Du får beskjed når det er sjekket.", + "next_description": "Kasserer ser gjennom kvitteringen og overfører pengene til kontoen du oppga.", + "next_heading": "Pengene kommer på konto", + "question": "Hva skjer med utlegget mitt nå?" + }, + "questions/komiteer/utlegg.yaml": { + "button": "Send inn", + "description": "Har du lagt ut for noe til komiteen? Send det inn, så ordner kasserer resten.", + "encouragement": "Legg ved bilag om du har det, så går det raskere.", + "form_description": "Ha kvittering eller bilag klart før du fyller ut.", + "form_title": "Krav om refusjon", + "heading": "Få pengene tilbake", + "hints": { + "belop": "450 kr", + "hva": "Kaffe og kjeks til dugnaden", + "navn": "Kari Nordmann" + }, + "icon": "receipt", + "labels": { + "belop": "Beløp", + "hva": "Hva gjaldt det", + "navn": "Navn" + }, + "page_description": "Har du betalt for noe på vegne av en komité? Send inn utlegget, så får du pengene tilbake.", + "question": "Har du lagt ut penger for komiteen og vil ha dem tilbake?", + "road_description": "Kasserer ser gjennom kravet og godkjenner det, og deretter blir pengene utbetalt til deg. Blir det avvist, hører du hvorfor.", + "road_icon": "lucide:wallet", + "road_title": "Fra krav til utbetaling", + "who_description": "Kasserer i styret leser kravet ditt, og kan nås på post@tomtervel.no om det haster.", + "who_icon": "lucide:coins", + "who_title": "Kasserer ser dette" + }, + "questions/lekeplasser/index.yaml": { + "buckets": { + "anleggsfeil": { + "description": "Meldinger om noe som er ødelagt på lekeplassen eller langs stien, og som bør fikses.", + "heading": "Det som er meldt inn av skader", + "moves": { + "open->tatt_tak_i": "Ta tak i saken", + "tatt_tak_i->utbedret": "Merk som utbedret" + } + } + }, + "confirm": "Lagre", + "description": "Her følger komiteen for lekeplassene opp det som er meldt inn av skader, til det er fikset.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "lekeplasser": { + "button": "Inviter", + "description": "De får en konto, plass i Leke- og møteplasser, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Leke- og møteplasser", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hva må fikses på lekeplassene og stien nå?" + }, + "questions/nabohjelp/index.yaml": { + "buckets": { + "hjelpebehov": { + "description": "Naboer som trenger en hånd med snømåking, handling eller skyss – klare til å bli koblet med noen som kan hjelpe.", + "heading": "Naboer som trenger en hånd", + "moves": { + "formidlet->ikke_lost": "Meld ikke løst", + "formidlet->ordnet": "Meld ordnet", + "open->formidlet": "Koble til nabo", + "open->ikke_lost": "Meld ikke løst" + } + }, + "hjelpere": { + "description": "Naboer som har sagt de kan stille opp – klare til å bli spurt når noen trenger dem.", + "heading": "Naboer som kan stille opp", + "moves": { + "open->registrert": "Registrer som hjelper", + "open->trukket": "Meld trukket" + } + } + }, + "confirm": "Lagre", + "description": "Her kobler du naboer som trenger hjelp med dem som kan stille opp.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "nabohjelp": { + "button": "Inviter", + "description": "De får en konto, plass i nabohjelpen, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i nabohjelpen", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hvem trenger hjelp, og hvem kan stille opp?" + }, + "questions/received/anleggsfeil.yaml": { + "back": "Tilbake til forsiden", + "description": "Meldingen din om skaden er sendt til lekeplasskomiteen. De ser over det du har sendt.", + "next_description": "Lekeplasskomiteen ser på meldingen og tar tak i det som må fikses før noen skader seg.", + "next_heading": "Komiteen tar tak i det", + "question": "Hva skjer med meldingen min nå?", + "see_all": { + "button": "Se meldte feil", + "description": "Se hva andre har meldt inn av skader på lekeplassene og stien, og hvor langt det har kommet.", + "heading": "Se andre meldte feil" + } + }, + "questions/received/bli-medlem.yaml": { + "back": "Tilbake til forsiden", + "description": "Vi har mottatt innmeldingen din. Kasserer tar kontakt med betalingsinfo så snart medlemskapet er registrert.", + "next_description": "Kasserer går gjennom nye innmeldinger og sender deg kontonummer og beløp for kontingenten.", + "next_heading": "Kasserer sender deg betalingsinfo", + "question": "Hva skjer etter at jeg har meldt meg inn?" + }, + "questions/received/dele-utstyr.yaml": { + "back": "Tilbake til forsiden", + "description": "Takk for at du la ut noe naboene kan låne. Vi legger det ut på oppslaget så snart vi kan.", + "next_description": "En i styret legger utstyret ut på naboenes oppslag, så andre kan se det og spørre om å låne.", + "next_heading": "Styret legger det ut for deg", + "question": "Hva skjer med det jeg har lagt ut?", + "see_all": { + "button": "Se hva naboer deler", + "description": "Se hva andre i Tomter har lagt ut til utlån akkurat nå.", + "heading": "Se alt naboene deler" + } + }, + "questions/received/endre-medlemskap.yaml": { + "back": "Tilbake til forsiden", + "description": "Vi har mottatt beskjeden om at du har flyttet, byttet e-post eller vil melde deg ut.", + "next_description": "Kasserer oppdaterer medlemslista og gir deg beskjed hvis det er noe mer vi trenger fra deg.", + "next_heading": "Kasserer retter opp opplysningene", + "question": "Hva skjer nå med det jeg meldte inn?" + }, + "questions/received/hjelpe-til.yaml": { + "back": "Tilbake til forsiden", + "description": "Takk for at du vil hjelpe til. Arrangementskomiteen har fått beskjed og tar kontakt med deg.", + "next_description": "Du hører fra noen i komiteen når de vet hva de trenger hjelp til, gjerne noen dager før arrangementet eller dugnaden.", + "next_heading": "Komiteen tar kontakt", + "question": "Hva skjer nå som jeg har meldt meg?" + }, + "questions/received/horingsinnspill.yaml": { + "back": "Tilbake til forsiden", + "description": "Innspillet ditt er sendt til høringsinstansen i velet.", + "next_description": "De ser på om det kan tas med i velets høringssvar til kommunen, og gir beskjed om det blir med.", + "next_heading": "Innspillet ditt inn i vurderingen", + "question": "Hva skjer med det jeg har sagt om saken?" + }, + "questions/received/kan-hjelpe.yaml": { + "back": "Tilbake til forsiden", + "description": "Takk for at du sier fra at du kan stille opp. Nabohjelp-komiteen tar imot meldingen og legger deg inn på lista over naboer som kan hjelpe.", + "next_description": "Når en nabo trenger hjelp med noe du har sagt du kan bidra med, tar komiteen kontakt med deg direkte.", + "next_heading": "Du blir kontaktet ved behov", + "question": "Hva skjer nå som jeg har registrert meg?" + }, + "questions/received/komite.yaml": { + "back": "Tilbake til forsiden", + "description": "Takk for at du vil bidra! Styret har fått beskjed og ser på hvilken komité som passer best for deg.", + "next_description": "Noen fra styret tar kontakt for å høre mer om hva du liker å drive med, og finner en komité som passer.", + "next_heading": "Vi finner riktig komité til deg", + "question": "Hva skjer nå som jeg har meldt interesse for en komité?" + }, + "questions/received/trafikkfare.yaml": { + "back": "Tilbake til forsiden", + "description": "Meldingen din om trafikkfaren er sendt til komiteen for trafikk.", + "next_description": "Trafikkomiteen ser gjennom meldinger jevnlig og tar det videre med kommunen eller den som eier veien der det trengs.", + "next_heading": "Trafikkomiteen tar den videre", + "question": "Hva skjer med meldingen min nå?", + "see_all": { + "button": "Se andre trafikkfarer", + "description": "Se hva andre har meldt inn, og status på sakene.", + "heading": "Andre meldte trafikkfarer" + } + }, + "questions/received/trenger-hjelp.yaml": { + "back": "Til forsiden", + "description": "Meldingen din er sendt til nabohjelpa. Vi ser etter en nabo som kan stille opp.", + "next_description": "Vi tar kontakt med noen som kan hjelpe, så snart vi finner en som passer.", + "next_heading": "Vi finner en nabo til deg", + "question": "Hva skjer nå som jeg har bedt om hjelp?" + }, + "questions/status/anleggsfeil/index.yaml": { + "back": "Tilbake til meldinger", + "description": "Her ser du meldinger om ødelagt lekeutstyr og skader på elvestien, og hvor langt hver sak har kommet.", + "heading": "Status på meldte anleggsfeil", + "list_description": "Alle meldinger er åpne for alle å se.", + "question": "Hva skjer med det jeg har meldt fra om?" + }, + "questions/status/oppslag/index.yaml": { + "back": "Tilbake", + "description": "Her ser du alt som er sendt inn og hvor langt hvert oppslag har kommet.", + "heading": "Oversikt over det som er meldt inn", + "list_description": "Åpen liste – navn og detaljer vises ikke.", + "question": "Hva er sendt inn, og hvor langt har det kommet?" + }, + "questions/status/trafikkmeldinger/index.yaml": { + "back": "Tilbake", + "description": "Her ser du farlige steder i trafikken som er meldt inn, og hvor langt saken har kommet.", + "heading": "Trafikkmeldinger og status", + "list_description": "Alle meldinger som er sendt inn, og hvor de står nå.", + "question": "Er det meldt fra om noe farlig i trafikken der jeg bor?" + }, + "questions/styret/index.yaml": { + "buckets": { + "innspill": { + "description": "Her samles meninger fra beboerne om saker kommunen har på høring, klare til å tas med i velets svar.", + "heading": "Høringsinnspill fra beboerne", + "moves": {} + }, + "komitesoknader": { + "description": "Her ligger alle som har meldt seg til en komité og venter på en plass.", + "heading": "Søknader til komiteene", + "moves": { + "open->avslatt": "Avslå søknaden", + "open->plassert": "Sett i komité" + } + }, + "oppslag": { + "description": "Her ligger det naboer har å låne ut eller trenger å låne, klart til å legges ut.", + "heading": "Utstyr til utlån blant naboer", + "moves": { + "open->lagt_ut": "Legg ut oppslaget", + "open->tatt_ned": "Ta ned oppslaget" + } + }, + "trafikkmeldinger": { + "description": "Her samles meldinger om farlige steder i trafikken, klare til å tas videre med kommunen eller veieier.", + "heading": "Meldinger om trafikkfarer", + "moves": {} + } + }, + "confirm": "Lagre", + "description": "Herfra følger styret opp det som ikke hører under en enkelt komité: høringssvar, komitéplasser og oppslag fra naboer.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "arrangementer": { + "button": "Inviter", + "description": "De får en konto, plass i Arrangementer, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Arrangementer", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "horingsinstans": { + "button": "Inviter", + "description": "De får en konto, plass i Høringsinstans, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Høringsinstans", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "kasserer": { + "button": "Inviter", + "description": "De får en konto, plass i kassereren, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i kassereren", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "komiteer": { + "button": "Inviter", + "description": "De får en konto, plass i komiteene, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i komiteene", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "lekeplasser": { + "button": "Inviter", + "description": "De får en konto, plass i Leke- og møteplasser, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Leke- og møteplasser", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "nabohjelp": { + "button": "Inviter", + "description": "De får en konto, plass i nabohjelpen, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i nabohjelpen", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "styret": { + "button": "Inviter", + "description": "De får en konto, plass i styret, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i styret", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "trafikk": { + "button": "Inviter", + "description": "De får en konto, plass i Trafikkforhold, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Trafikkforhold", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hva venter på styret akkurat nå?" + }, + "questions/trafikk/index.yaml": { + "buckets": { + "trafikkmeldinger": { + "description": "Farlige steder i trafikken som naboer har meldt inn.", + "heading": "Farlige steder i trafikken", + "moves": { + "open->avvist": "Avvis meldingen", + "open->tatt_opp": "Ta opp med kommunen", + "tatt_opp->avvist": "Avvis meldingen", + "tatt_opp->ordnet": "Meld ordnet" + } + } + }, + "confirm": "Lagre", + "description": "Her ser du meldinger om farlige steder i trafikken og følger dem opp overfor kommunen eller veieier.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "trafikk": { + "button": "Inviter", + "description": "De får en konto, plass i Trafikkforhold, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Trafikkforhold", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hvilke trafikkfarer må følges opp?" + } +} \ No newline at end of file diff --git a/runs/tomtervel-flat-2026-09-23/tasks-full.jsonl b/runs/tomtervel-flat-2026-09-23/tasks-full.jsonl new file mode 100644 index 0000000..55a5595 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/tasks-full.jsonl @@ -0,0 +1,20 @@ +{"id":"nyinnflyttet@/","persona":"nyinnflyttet","need":"bli-medlem","page":"/","state":{"body":"Vi flyttet til Tomter i mars og har hørt at det finnes et vel. Hvordan blir vi med, og hva koster det?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Bli medlem av Tomter Vel"]} +{"id":"glemte-a-betale@/","persona":"glemte-a-betale","need":"bli-medlem","page":"/","state":{"body":"Jeg har vært medlem før men fikk ikke betalt i fjor. Kan jeg bare vippse, og til hvem?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Bli medlem av Tomter Vel"]} +{"id":"ny-epost@/","persona":"ny-epost","need":"endre-medlemskap","page":"/","state":{"body":"Vi har byttet e-postadresse og får ikke lenger noe fra dere."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Oppdater eller avslutt medlemskapet"]} +{"id":"flytter@/","persona":"flytter","need":"endre-medlemskap","page":"/","state":{"body":"Vi selger huset og flytter til Ski i august, så vi må ut av medlemslista."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Oppdater eller avslutt medlemskapet"]} +{"id":"skolevei@/","persona":"skolevei","need":"trafikkfare","page":"/","state":{"body":"Bilene kjører altfor fort i svingen ved skolen om morgenen, og det er ikke fortau der ungene går."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Meld fra om en trafikkfare"]} +{"id":"busslomme@/","persona":"busslomme","need":"trafikkfare","page":"/","state":{"body":"Det er umulig å se om det kommer noen når man skal ut fra busslomma ved butikken, hekken har blitt kjempehøy."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Meld fra om en trafikkfare"]} +{"id":"huske@/","persona":"huske","need":"anleggsfeil","page":"/","state":{"body":"Huska på lekeplassen henger i én kjetting. Sønnen min dro i den i går og den holdt så vidt."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Meld fra om noe ødelagt"]} +{"id":"bru@/","persona":"bru","need":"anleggsfeil","page":"/","state":{"body":"Planken på den lille brua på stien langs elva er råtten, jeg gikk nesten gjennom."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Meld fra om noe ødelagt"]} +{"id":"blokker@/","persona":"blokker","need":"horingsinnspill","page":"/","state":{"body":"Kommunen skal bygge blokker på jordet bak stasjonen, og jeg synes det er alt for høyt. Kan velet si ifra?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Få din mening med i høringssvaret"]} +{"id":"togtider@/","persona":"togtider","need":"horingsinnspill","page":"/","state":{"body":"Ruter vil kutte det tidlige toget. Jeg pendler til Oslo hver dag og vil at velet skriver til dem om det."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Få din mening med i høringssvaret"]} +{"id":"vafler@/","persona":"vafler","need":"hjelpe-til","page":"/","state":{"body":"Jeg kan steke vafler på 17. mai-frokosten hvis dere trenger folk."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Bli med på dugnad eller arrangement"]} +{"id":"motorsag@/","persona":"motorsag","need":"hjelpe-til","page":"/","state":{"body":"Har motorsag og ledig helg, kan ta trær langs elvestien hvis det er en dugnad."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Bli med på dugnad eller arrangement"]} +{"id":"pendler@/","persona":"pendler","need":"komite","page":"/","state":{"body":"Jeg pendler og er lei av at ingen snakker med Ruter. Jeg vil gjerne være med i gjengen som jobber med det."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Sitt i en komité som betyr noe for deg"]} +{"id":"planlegger@/","persona":"planlegger","need":"komite","page":"/","state":{"body":"Jeg er arealplanlegger av yrke og kunne bidratt når kommunen sender saker på høring."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Sitt i en komité som betyr noe for deg"]} +{"id":"tilhenger@/","persona":"tilhenger","need":"dele-utstyr","page":"/","state":{"body":"Jeg har en tilhenger som står ubrukt mesteparten av året, naboer kan gjerne låne den for en hundrelapp."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Lån ut eller lån av naboen"]} +{"id":"stige@/","persona":"stige","need":"dele-utstyr","page":"/","state":{"body":"Trenger en lang stige en dag i helga for å rense takrenna, er det noen i nærheten som har?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Lån ut eller lån av naboen"]} +{"id":"snomaking@/","persona":"snomaking","need":"trenger-hjelp","page":"/","state":{"body":"Jeg er 84 og klarer ikke å måke innkjørselen lenger. Er det noen som kan hjelpe meg når det snør?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Få en nabo til å stille opp"]} +{"id":"nyoperert@/","persona":"nyoperert","need":"trenger-hjelp","page":"/","state":{"body":"Jeg er nyoperert i hofta og kommer meg ikke til butikken på noen uker. Kunne noen handlet for meg?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Få en nabo til å stille opp"]} +{"id":"hjemmekontor@/","persona":"hjemmekontor","need":"kan-hjelpe","page":"/","state":{"body":"Jeg jobber hjemmefra og kan godt måke eller handle for noen som ikke får det til selv."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Bli spurt når en nabo trenger en hånd"]} +{"id":"pensjonert-elektriker@/","persona":"pensjonert-elektriker","need":"kan-hjelpe","page":"/","state":{"body":"Pensjonert elektriker, har bil og god tid. Si fra om noen trenger skyss eller en hånd med småting."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.","Bli medlem av Tomter Vel":"Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.","Bli spurt når en nabo trenger en hånd":"Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.","Dette gjør velet":"To ting først. Resten står lenger ned på siden.","Få din mening med i høringssvaret":"Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.","Få en nabo til å stille opp":"Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.","Lån ut eller lån av naboen":"Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.","Meld fra om en trafikkfare":"Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.","Meld fra om noe ødelagt":"Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.","Oppdater eller avslutt medlemskapet":"Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.","Se deg rundt først":"Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.","Sitt i en komité som betyr noe for deg":"Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i."}}},"expect":["Bli spurt når en nabo trenger en hånd"]} diff --git a/runs/tomtervel-flat-2026-09-23/tasks-skim.jsonl b/runs/tomtervel-flat-2026-09-23/tasks-skim.jsonl new file mode 100644 index 0000000..975897f --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/tasks-skim.jsonl @@ -0,0 +1,20 @@ +{"id":"nyinnflyttet@/","persona":"nyinnflyttet","need":"bli-medlem","page":"/","state":{"body":"Vi flyttet til Tomter i mars og har hørt at det finnes et vel. Hvordan blir vi med, og hva koster det?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Bli medlem av Tomter Vel"]} +{"id":"glemte-a-betale@/","persona":"glemte-a-betale","need":"bli-medlem","page":"/","state":{"body":"Jeg har vært medlem før men fikk ikke betalt i fjor. Kan jeg bare vippse, og til hvem?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Bli medlem av Tomter Vel"]} +{"id":"ny-epost@/","persona":"ny-epost","need":"endre-medlemskap","page":"/","state":{"body":"Vi har byttet e-postadresse og får ikke lenger noe fra dere."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Oppdater eller avslutt medlemskapet"]} +{"id":"flytter@/","persona":"flytter","need":"endre-medlemskap","page":"/","state":{"body":"Vi selger huset og flytter til Ski i august, så vi må ut av medlemslista."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Oppdater eller avslutt medlemskapet"]} +{"id":"skolevei@/","persona":"skolevei","need":"trafikkfare","page":"/","state":{"body":"Bilene kjører altfor fort i svingen ved skolen om morgenen, og det er ikke fortau der ungene går."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Meld fra om en trafikkfare"]} +{"id":"busslomme@/","persona":"busslomme","need":"trafikkfare","page":"/","state":{"body":"Det er umulig å se om det kommer noen når man skal ut fra busslomma ved butikken, hekken har blitt kjempehøy."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Meld fra om en trafikkfare"]} +{"id":"huske@/","persona":"huske","need":"anleggsfeil","page":"/","state":{"body":"Huska på lekeplassen henger i én kjetting. Sønnen min dro i den i går og den holdt så vidt."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Meld fra om noe ødelagt"]} +{"id":"bru@/","persona":"bru","need":"anleggsfeil","page":"/","state":{"body":"Planken på den lille brua på stien langs elva er råtten, jeg gikk nesten gjennom."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Meld fra om noe ødelagt"]} +{"id":"blokker@/","persona":"blokker","need":"horingsinnspill","page":"/","state":{"body":"Kommunen skal bygge blokker på jordet bak stasjonen, og jeg synes det er alt for høyt. Kan velet si ifra?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Få din mening med i høringssvaret"]} +{"id":"togtider@/","persona":"togtider","need":"horingsinnspill","page":"/","state":{"body":"Ruter vil kutte det tidlige toget. Jeg pendler til Oslo hver dag og vil at velet skriver til dem om det."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Få din mening med i høringssvaret"]} +{"id":"vafler@/","persona":"vafler","need":"hjelpe-til","page":"/","state":{"body":"Jeg kan steke vafler på 17. mai-frokosten hvis dere trenger folk."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Bli med på dugnad eller arrangement"]} +{"id":"motorsag@/","persona":"motorsag","need":"hjelpe-til","page":"/","state":{"body":"Har motorsag og ledig helg, kan ta trær langs elvestien hvis det er en dugnad."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Bli med på dugnad eller arrangement"]} +{"id":"pendler@/","persona":"pendler","need":"komite","page":"/","state":{"body":"Jeg pendler og er lei av at ingen snakker med Ruter. Jeg vil gjerne være med i gjengen som jobber med det."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Sitt i en komité som betyr noe for deg"]} +{"id":"planlegger@/","persona":"planlegger","need":"komite","page":"/","state":{"body":"Jeg er arealplanlegger av yrke og kunne bidratt når kommunen sender saker på høring."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Sitt i en komité som betyr noe for deg"]} +{"id":"tilhenger@/","persona":"tilhenger","need":"dele-utstyr","page":"/","state":{"body":"Jeg har en tilhenger som står ubrukt mesteparten av året, naboer kan gjerne låne den for en hundrelapp."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Lån ut eller lån av naboen"]} +{"id":"stige@/","persona":"stige","need":"dele-utstyr","page":"/","state":{"body":"Trenger en lang stige en dag i helga for å rense takrenna, er det noen i nærheten som har?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Lån ut eller lån av naboen"]} +{"id":"snomaking@/","persona":"snomaking","need":"trenger-hjelp","page":"/","state":{"body":"Jeg er 84 og klarer ikke å måke innkjørselen lenger. Er det noen som kan hjelpe meg når det snør?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Få en nabo til å stille opp"]} +{"id":"nyoperert@/","persona":"nyoperert","need":"trenger-hjelp","page":"/","state":{"body":"Jeg er nyoperert i hofta og kommer meg ikke til butikken på noen uker. Kunne noen handlet for meg?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Få en nabo til å stille opp"]} +{"id":"hjemmekontor@/","persona":"hjemmekontor","need":"kan-hjelpe","page":"/","state":{"body":"Jeg jobber hjemmefra og kan godt måke eller handle for noen som ikke får det til selv."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Bli spurt når en nabo trenger en hånd"]} +{"id":"pensjonert-elektriker@/","persona":"pensjonert-elektriker","need":"kan-hjelpe","page":"/","state":{"body":"Pensjonert elektriker, har bil og god tid. Si fra om noen trenger skyss eller en hånd med småting."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva gjør Tomter Vel, og hva kan du få her?\". Which alternative do they choose?","criteria":{"Bli med på dugnad eller arrangement":"Bli med på dugnad eller arrangement","Bli medlem av Tomter Vel":"Bli medlem av Tomter Vel","Bli spurt når en nabo trenger en hånd":"Bli spurt når en nabo trenger en hånd","Dette gjør velet":"Dette gjør velet","Få din mening med i høringssvaret":"Få din mening med i høringssvaret","Få en nabo til å stille opp":"Få en nabo til å stille opp","Lån ut eller lån av naboen":"Lån ut eller lån av naboen","Meld fra om en trafikkfare":"Meld fra om en trafikkfare","Meld fra om noe ødelagt":"Meld fra om noe ødelagt","Oppdater eller avslutt medlemskapet":"Oppdater eller avslutt medlemskapet","Se deg rundt først":"Se deg rundt først","Sitt i en komité som betyr noe for deg":"Sitt i en komité som betyr noe for deg"}}},"expect":["Bli spurt når en nabo trenger en hånd"]} diff --git a/runs/tomtervel-flat-2026-09-23/words.json b/runs/tomtervel-flat-2026-09-23/words.json new file mode 100644 index 0000000..e9a3849 --- /dev/null +++ b/runs/tomtervel-flat-2026-09-23/words.json @@ -0,0 +1,856 @@ +{ + "questions/arrangementer/index.yaml": { + "buckets": { + "frivillige": { + "description": "Her ser du hvem som har meldt seg til dugnad, 17. mai eller andre arrangementer, og hvor langt du har kommet med hver av dem.", + "heading": "Frivillige til arrangementer og dugnad", + "moves": { + "kontaktet->satt_opp": "Sett opp", + "kontaktet->takket_nei": "Takket nei", + "open->kontaktet": "Merk som kontaktet", + "open->takket_nei": "Takket nei" + } + } + }, + "confirm": "Lagre", + "description": "Oversikt over folk som vil hjelpe til, slik at du kan følge opp og sette dem opp på noe som passer.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "arrangementer": { + "button": "Inviter", + "description": "De får en konto, plass i Arrangementer, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Arrangementer", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hvem har meldt seg, og hvor langt har jeg kommet med å sette dem opp?" + }, + "questions/decide/dele-utstyr.yaml": { + "description": "Her sier du fra at utstyret er hentet eller ikke lenger tilgjengelig for utlån.", + "moves": { + "tatt_ned": { + "button": "Ta ned oppslaget", + "description": "Oppslaget fjernes fra siden, så ingen flere spør om å låne det.", + "heading": "Meld at utstyret er tatt ned" + } + }, + "question": "Skal oppslaget om utstyret fortsatt stå ute?" + }, + "questions/decide/kan-hjelpe.yaml": { + "description": "Her ser du naboer som har bedt om en hånd, og kan velge om du fortsatt kan bidra eller trekke deg for nå.", + "moves": { + "trukket": { + "button": "Trekk meg", + "description": "Du blir tatt av lista over naboer som kan spørres, men kan melde deg på igjen når det passer bedre.", + "heading": "Ta en pause fra nabohjelpen" + } + }, + "question": "Vil du fortsatt kunne bli spurt om å hjelpe en nabo?" + }, + "questions/decide/trenger-hjelp.yaml": { + "description": "Her ser du henvendelsen fra naboen som trengte en hånd, og kan si fra når det er ordnet.", + "moves": { + "ordnet": { + "button": "Merk som ordnet", + "description": "Da vet vi at naboen har fått hjelpen sin, og saken lukkes.", + "heading": "Meld fra at hjelpen er gitt" + } + }, + "question": "Har naboen fått hjelpen de trengte?" + }, + "questions/horingsinstans/index.yaml": { + "buckets": { + "innspill": { + "description": "Her ligger innspill fra beboere til saker kommunen har på høring.", + "heading": "Innspill til høringssvar", + "moves": { + "open->ikke_tatt_med": "Ikke tatt med", + "open->tatt_med": "Tatt med i svaret" + } + } + }, + "confirm": "Send svar", + "description": "Her samler du innspillene og ser hva som er tatt med i velets høringssvar.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "horingsinstans": { + "button": "Inviter", + "description": "De får en konto, plass i Høringsinstans, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Høringsinstans", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hva sier vi i høringssvaret?" + }, + "questions/index.yaml": { + "description": "Velforeningen for Tomter, stiftet i 1947, drevet på fritida av naboene dine. Alt du kan be om her havner hos en komité eller styret, og du ser selv hvor saken står.", + "needs": { + "bli-medlem": { + "button": "Bli medlem", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.", + "encouragement": "Kasserer sender deg kontingenten på e-post rett etterpå.", + "form_description": "Ha adressen i Tomter og en e-post du bruker klar.", + "form_title": "Meld deg inn", + "heading": "Bli medlem av Tomter Vel", + "hints": { + "adresse": "Tomterveien 12", + "epost": "ola.nordmann@epost.no", + "navn": "Ola Nordmann", + "telefon": "123 45 678" + }, + "icon": "user-plus", + "labels": { + "adresse": "Adresse", + "epost": "E-post", + "navn": "Navn", + "telefon": "Telefon" + }, + "road_description": "Meldingen går til kasserer, som registrerer deg og sender deg kontingenten på e-post. Når den er betalt er du medlem.", + "road_icon": "lucide:coins", + "road_title": "Etter innmelding", + "who_description": "Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:user", + "who_title": "Hvem svarer deg" + }, + "endre-medlemskap": { + "button": "Send endring", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.", + "encouragement": "Det tar bare et par minutter, og kasserer ordner resten.", + "form_description": "Skriv navnet ditt og hva som er nytt.", + "form_title": "Endre medlemskap", + "heading": "Oppdater eller avslutt medlemskapet", + "hints": { + "adresse": "Ny adresse i Tomter", + "hva_er_nytt": "Ny e-post, ny adresse, eller ønske om utmelding", + "navn": "Ola Nordmann" + }, + "icon": "pencil", + "labels": { + "adresse": "Adresse", + "hva_er_nytt": "Hva vil du endre?", + "navn": "Navn" + }, + "road_description": "Kasserer får beskjeden og oppdaterer medlemslisten, eller melder deg ut om det er det du ber om.", + "road_icon": "lucide:refresh-cw", + "road_title": "Etter du sender inn", + "who_description": "Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:user", + "who_title": "Hvem svarer deg" + }, + "anleggsfeil": { + "button": "Send inn", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.", + "encouragement": "Det holder med noen ord om hva du så og hvor.", + "form_description": "Fortell hva som er ødelagt og omtrent hvor det er.", + "form_title": "Meld anleggsfeil", + "heading": "Meld fra om noe ødelagt", + "hints": { + "hva": "Løs planke på gjerdet ved husken", + "hvor": "" + }, + "icon": "construction", + "labels": { + "hva": "Hva er ødelagt", + "hvor": "Hvor er det" + }, + "road_description": "Meldingen går til lekeplasskomiteen, som ser på den og tar tak i saken. Når feilen er utbedret, er saken avsluttet.", + "road_icon": "lucide:wrench", + "road_title": "Hva skjer videre", + "who_description": "Lekeplasskomiteen leser meldingen din; til det haster kan du nå styret på post@tomtervel.no.", + "who_icon": "lucide:hammer", + "who_title": "Hvem leser dette" + }, + "trafikkfare": { + "button": "Send inn", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.", + "encouragement": "Bare noen linjer om hva og hvor er nok til at vi kan følge opp.", + "form_description": "Fortell hva du så, hvor det var, og legg gjerne igjen e-posten din hvis vi trenger å spørre mer.", + "form_title": "Meld trafikkfare", + "heading": "Meld fra om en trafikkfare", + "hints": { + "epost": "ola.nordmann@epost.no", + "hva": "Dårlig sikt i krysset, biler kjører fort", + "hvor": "Krysset Tomterveien / Elvestien" + }, + "icon": "alert-triangle", + "labels": { + "epost": "E-post (valgfritt)", + "hva": "Hva så du", + "hvor": "Hvor var det" + }, + "road_description": "Trafikkomiteen tar meldingen din opp med kommunen eller den som eier veien. Du får vite om saken blir ordnet eller avvist.", + "road_icon": "lucide:route", + "road_title": "Hva skjer videre", + "who_description": "Trafikkomiteen leser meldingen din; haster det, kan du nå styret på post@tomtervel.no.", + "who_icon": "lucide:car", + "who_title": "Hvem leser dette" + }, + "hjelpe-til": { + "button": "Meld meg på", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.", + "encouragement": "Det holder med noen ord om hva du kan tenke deg – vi tar kontakt når det nærmer seg.", + "form_description": "Fortell kort hva du kan hjelpe til med.", + "form_title": "Meld deg som hjelper", + "heading": "Bli med på dugnad eller arrangement", + "hints": { + "hva": "", + "navn": "Kari Nordmann", + "telefon": "912 34 567" + }, + "icon": "hand-helping", + "labels": { + "hva": "Hva kan du hjelpe til med?", + "navn": "Navn", + "telefon": "Telefon" + }, + "road_description": "Arrangementskomiteen tar kontakt og finner ut hva som passer for deg. Sier du ja, blir du satt opp på en oppgave – sier du nei takk, er det helt greit.", + "road_icon": "lucide:clipboard-list", + "road_title": "Hva skjer videre", + "who_description": "Arrangementskomiteen leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:users", + "who_title": "Hvem leser dette" + }, + "komite": { + "button": "Meld interesse", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i.", + "encouragement": "Det tar bare et minutt, og noen fra styret svarer deg.", + "form_description": "Skriv hvilken komité du er interessert i.", + "form_title": "Meld deg til en komité", + "heading": "Sitt i en komité som betyr noe for deg", + "hints": { + "epost": "kari@eksempel.no", + "komite": "", + "navn": "Kari Nordmann" + }, + "icon": "users", + "labels": { + "epost": "E-post", + "komite": "Hvilken komité?", + "navn": "Navn" + }, + "road_description": "Styret ser på ønsket ditt og finner en plass i komiteen du har meldt deg til, eller sier fra hvis det ikke er rom akkurat nå.", + "road_icon": "lucide:clipboard-list", + "road_title": "Hva skjer videre", + "who_description": "Styret leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:handshake", + "who_title": "Hvem leser dette" + }, + "dele-utstyr": { + "button": "Legg ut oppslag", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.", + "encouragement": "Vi legger det ut så naboene kan se det.", + "form_description": "Skriv kort hva det gjelder, så folk skjønner det med en gang.", + "form_title": "Lån eller utlån", + "heading": "Lån ut eller lån av naboen", + "hints": { + "email": "ola@eksempel.no", + "har_eller_trenger": "", + "hva": "Hengerfeste til bil, tilhenger, stige", + "navn": "Ola Nordmann" + }, + "icon": "package", + "labels": { + "email": "E-post", + "har_eller_trenger": "Har du eller trenger du", + "hva": "Hva gjelder det", + "navn": "Navn" + }, + "road_description": "Oppslaget legges ut for naboene å se. Når det er ordnet eller ikke lenger aktuelt, tas det ned igjen.", + "road_icon": "lucide:clipboard-list", + "road_title": "Fra oppslag til avtale", + "who_description": "Styret legger ut oppslaget og kan nås på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:users", + "who_title": "Hvem ser dette" + }, + "kan-hjelpe": { + "button": "Meld deg", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.", + "encouragement": "Du blir bare kontaktet når noe passer for deg.", + "form_description": "Fortell kort hva du kan bidra med.", + "form_title": "Meld deg som hjelper", + "heading": "Bli spurt når en nabo trenger en hånd", + "hints": { + "email": "kari@eksempel.no", + "kan": "", + "navn": "Kari Nordmann", + "telefon": "123 45 678" + }, + "icon": "hand-helping", + "labels": { + "email": "E-post", + "kan": "Hva kan du hjelpe med", + "navn": "Navn", + "telefon": "Telefon" + }, + "road_description": "Du blir registrert som hjelper. Trekker du deg tilbake senere, er det bare å si fra.", + "road_icon": "lucide:user-check", + "road_title": "Fra påmelding til spørsmål", + "who_description": "Nabohjelpen har oversikten og ringer deg direkte når det er noe, eller nås på post@tomtervel.no.", + "who_icon": "lucide:heart-handshake", + "who_title": "Hvem ser dette" + }, + "trenger-hjelp": { + "button": "Be om hjelp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.", + "encouragement": "Vi finner en nabo som kan stille opp så fort som mulig.", + "form_description": "Skriv kort hva du trenger hjelp til.", + "form_title": "Be om en hånd", + "heading": "Få en nabo til å stille opp", + "hints": { + "adresse": "Tomterveien 12", + "email": "kari@eksempel.no", + "hva": "Måke snø på trappa, handle inn litt mat", + "navn": "Kari Nordmann", + "telefon": "123 45 678" + }, + "icon": "heart-handshake", + "labels": { + "adresse": "Adresse", + "email": "E-post", + "hva": "Hva trenger du hjelp til", + "navn": "Navn", + "telefon": "Telefon" + }, + "road_description": "Nabohjelpen finner en nabo som kan stille opp. Er det ordnet, eller om det ikke lot seg løse, får du beskjed.", + "road_icon": "lucide:hand-helping", + "road_title": "Fra melding til hjelp", + "who_description": "Nabohjelpen tar imot og finner noen til deg, eller ring post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:users", + "who_title": "Hvem ser dette" + }, + "horingsinnspill": { + "button": "Send innspill", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.", + "encouragement": "Innspillet ditt blir lest av høringsutvalget vårt og veier inn i svaret vi sender kommunen.", + "form_description": "Fortell hvilken sak det gjelder og hva du mener.", + "form_title": "Send et høringsinnspill", + "heading": "Få din mening med i høringssvaret", + "hints": { + "innspill": "Jeg mener det bør settes opp fartsdumper langs den nye traseen, for barna krysser der til skolen.", + "navn": "Kari Nordmann", + "sak": "Reguleringsplan for Tomterveien" + }, + "icon": "megaphone", + "labels": { + "innspill": "Hva mener du?", + "navn": "Navn", + "sak": "Hvilken sak gjelder det?" + }, + "road_description": "Innspillet ditt kommer inn hos høringsutvalget. De vurderer om det tas med i velets svar til kommunen, eller om det ikke passer inn denne gangen.", + "road_icon": "lucide:route", + "road_title": "Hva skjer videre", + "who_description": "Høringsutvalget i Tomter Vel leser innspillet ditt; i mellomtiden kan du nå styret på post@tomtervel.no.", + "who_icon": "lucide:users", + "who_title": "Hvem leser dette" + } + }, + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "opener": { + "heading": "Dette gjør velet", + "description": "To ting først. Resten står lenger ned på siden.", + "features": { + "medlem": { + "heading": "Et vel som taler for Tomter, og et medlemskap du styrer selv", + "description": "Velet taler for Tomter overfor kommunen, holder lekeplassene og stien i stand og samler naboene på 17. mai og dugnad. 157 husstander er med. Du melder deg inn her, og ut igjen selv når du vil.", + "icon": "users" + }, + "nabo": { + "heading": "En nabo som stiller opp når du trenger det", + "description": "Trenger du en hånd med snømåking, handling eller skyss, kobler nabohjelpsgruppa deg med en nabo som kan. Du sier selv fra når det er ordnet.", + "icon": "handshake" + } + } + }, + "shopping": { + "heading": "Se deg rundt først", + "description": "Ingenting å fylle ut her. Det som er meldt inn, og hvor hver sak står.", + "items": { + "status-trafikkmeldinger": { + "heading": "Alle trafikkmeldinger", + "description": "Farlige steder naboene har meldt, og hva velet har gjort med dem.", + "icon": "list" + }, + "status-anleggsfeil": { + "heading": "Alt som er meldt ødelagt", + "description": "Lekeplassen og stien: det som er meldt, og det som er fikset.", + "icon": "list" + }, + "status-oppslag": { + "heading": "Oppslagstavla", + "description": "Det naboene har å låne ut, og det de trenger å låne.", + "icon": "list" + } + } + } + }, + "questions/kasserer/index.yaml": { + "buckets": { + "husstander": { + "description": "Husstander som har meldt seg inn og venter på å bli registrert som betalende medlem.", + "heading": "Nye medlemmer som venter på registrering", + "moves": { + "open->betalt": "Registrer betaling", + "open->utmeldt": "Meld ut" + } + }, + "medlemsendringer": { + "description": "Medlemmer som har flyttet, byttet e-post eller vil melde seg ut, og venter på at opplysningene blir oppdatert.", + "heading": "Endringer som venter på å bli registrert", + "moves": { + "open->oppdatert": "Registrer endring" + } + }, + "utlegg": { + "description": "Utlegg fra komitémedlemmer som venter på godkjenning eller utbetaling.", + "heading": "Utlegg som venter på deg", + "moves": { + "godkjent->avvist": "Avvis likevel", + "godkjent->utbetalt": "Merk som utbetalt", + "open->avvist": "Avvis utlegg", + "open->godkjent": "Godkjenn utlegg" + } + } + }, + "confirm": "Lagre", + "description": "Her har du oversikt over medlemmer, endringer og utlegg som venter på deg som kasserer.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "kasserer": { + "button": "Inviter", + "description": "De får en konto, plass i kassereren, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i kassereren", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hva venter på meg som kasserer akkurat nå?" + }, + "questions/komiteer/index.yaml": { + "buckets": {}, + "confirm": "Confirm", + "description": "Her holder du oversikt over sakene komiteen din har ansvar for, og flytter dem videre etter hvert som de blir fulgt opp.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "komiteer": { + "button": "Inviter", + "description": "De får en konto, plass i komiteene, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i komiteene", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": { + "utlegg": { + "button": "Send utlegg", + "description": "Har du lagt ut for noe til komiteen? Send det inn så kasserer kan betale deg tilbake.", + "heading": "Få tilbake det du har lagt ut" + } + }, + "question": "Hva står ubehandlet i komiteen din nå?" + }, + "questions/komiteer/utlegg-sent.yaml": { + "back": "Til forsiden", + "description": "Utlegget er sendt til kasserer. Du får beskjed når det er sjekket.", + "next_description": "Kasserer ser gjennom kvitteringen og overfører pengene til kontoen du oppga.", + "next_heading": "Pengene kommer på konto", + "question": "Hva skjer med utlegget mitt nå?" + }, + "questions/komiteer/utlegg.yaml": { + "button": "Send inn", + "description": "Har du lagt ut for noe til komiteen? Send det inn, så ordner kasserer resten.", + "encouragement": "Legg ved bilag om du har det, så går det raskere.", + "form_description": "Ha kvittering eller bilag klart før du fyller ut.", + "form_title": "Krav om refusjon", + "heading": "Få pengene tilbake", + "hints": { + "belop": "450 kr", + "hva": "Kaffe og kjeks til dugnaden", + "navn": "Kari Nordmann" + }, + "icon": "receipt", + "labels": { + "belop": "Beløp", + "hva": "Hva gjaldt det", + "navn": "Navn" + }, + "page_description": "Har du betalt for noe på vegne av en komité? Send inn utlegget, så får du pengene tilbake.", + "question": "Har du lagt ut penger for komiteen og vil ha dem tilbake?", + "road_description": "Kasserer ser gjennom kravet og godkjenner det, og deretter blir pengene utbetalt til deg. Blir det avvist, hører du hvorfor.", + "road_icon": "lucide:wallet", + "road_title": "Fra krav til utbetaling", + "who_description": "Kasserer i styret leser kravet ditt, og kan nås på post@tomtervel.no om det haster.", + "who_icon": "lucide:coins", + "who_title": "Kasserer ser dette" + }, + "questions/lekeplasser/index.yaml": { + "buckets": { + "anleggsfeil": { + "description": "Meldinger om noe som er ødelagt på lekeplassen eller langs stien, og som bør fikses.", + "heading": "Det som er meldt inn av skader", + "moves": { + "open->tatt_tak_i": "Ta tak i saken", + "tatt_tak_i->utbedret": "Merk som utbedret" + } + } + }, + "confirm": "Lagre", + "description": "Her følger komiteen for lekeplassene opp det som er meldt inn av skader, til det er fikset.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "lekeplasser": { + "button": "Inviter", + "description": "De får en konto, plass i Leke- og møteplasser, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Leke- og møteplasser", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hva må fikses på lekeplassene og stien nå?" + }, + "questions/nabohjelp/index.yaml": { + "buckets": { + "hjelpebehov": { + "description": "Naboer som trenger en hånd med snømåking, handling eller skyss – klare til å bli koblet med noen som kan hjelpe.", + "heading": "Naboer som trenger en hånd", + "moves": { + "formidlet->ikke_lost": "Meld ikke løst", + "formidlet->ordnet": "Meld ordnet", + "open->formidlet": "Koble til nabo", + "open->ikke_lost": "Meld ikke løst" + } + }, + "hjelpere": { + "description": "Naboer som har sagt de kan stille opp – klare til å bli spurt når noen trenger dem.", + "heading": "Naboer som kan stille opp", + "moves": { + "open->registrert": "Registrer som hjelper", + "open->trukket": "Meld trukket" + } + } + }, + "confirm": "Lagre", + "description": "Her kobler du naboer som trenger hjelp med dem som kan stille opp.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "nabohjelp": { + "button": "Inviter", + "description": "De får en konto, plass i nabohjelpen, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i nabohjelpen", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hvem trenger hjelp, og hvem kan stille opp?" + }, + "questions/received/anleggsfeil.yaml": { + "back": "Tilbake til forsiden", + "description": "Meldingen din om skaden er sendt til lekeplasskomiteen. De ser over det du har sendt.", + "next_description": "Lekeplasskomiteen ser på meldingen og tar tak i det som må fikses før noen skader seg.", + "next_heading": "Komiteen tar tak i det", + "question": "Hva skjer med meldingen min nå?", + "see_all": { + "button": "Se meldte feil", + "description": "Se hva andre har meldt inn av skader på lekeplassene og stien, og hvor langt det har kommet.", + "heading": "Se andre meldte feil" + } + }, + "questions/received/bli-medlem.yaml": { + "back": "Tilbake til forsiden", + "description": "Vi har mottatt innmeldingen din. Kasserer tar kontakt med betalingsinfo så snart medlemskapet er registrert.", + "next_description": "Kasserer går gjennom nye innmeldinger og sender deg kontonummer og beløp for kontingenten.", + "next_heading": "Kasserer sender deg betalingsinfo", + "question": "Hva skjer etter at jeg har meldt meg inn?" + }, + "questions/received/dele-utstyr.yaml": { + "back": "Tilbake til forsiden", + "description": "Takk for at du la ut noe naboene kan låne. Vi legger det ut på oppslaget så snart vi kan.", + "next_description": "En i styret legger utstyret ut på naboenes oppslag, så andre kan se det og spørre om å låne.", + "next_heading": "Styret legger det ut for deg", + "question": "Hva skjer med det jeg har lagt ut?", + "see_all": { + "button": "Se hva naboer deler", + "description": "Se hva andre i Tomter har lagt ut til utlån akkurat nå.", + "heading": "Se alt naboene deler" + } + }, + "questions/received/endre-medlemskap.yaml": { + "back": "Tilbake til forsiden", + "description": "Vi har mottatt beskjeden om at du har flyttet, byttet e-post eller vil melde deg ut.", + "next_description": "Kasserer oppdaterer medlemslista og gir deg beskjed hvis det er noe mer vi trenger fra deg.", + "next_heading": "Kasserer retter opp opplysningene", + "question": "Hva skjer nå med det jeg meldte inn?" + }, + "questions/received/hjelpe-til.yaml": { + "back": "Tilbake til forsiden", + "description": "Takk for at du vil hjelpe til. Arrangementskomiteen har fått beskjed og tar kontakt med deg.", + "next_description": "Du hører fra noen i komiteen når de vet hva de trenger hjelp til, gjerne noen dager før arrangementet eller dugnaden.", + "next_heading": "Komiteen tar kontakt", + "question": "Hva skjer nå som jeg har meldt meg?" + }, + "questions/received/horingsinnspill.yaml": { + "back": "Tilbake til forsiden", + "description": "Innspillet ditt er sendt til høringsinstansen i velet.", + "next_description": "De ser på om det kan tas med i velets høringssvar til kommunen, og gir beskjed om det blir med.", + "next_heading": "Innspillet ditt inn i vurderingen", + "question": "Hva skjer med det jeg har sagt om saken?" + }, + "questions/received/kan-hjelpe.yaml": { + "back": "Tilbake til forsiden", + "description": "Takk for at du sier fra at du kan stille opp. Nabohjelp-komiteen tar imot meldingen og legger deg inn på lista over naboer som kan hjelpe.", + "next_description": "Når en nabo trenger hjelp med noe du har sagt du kan bidra med, tar komiteen kontakt med deg direkte.", + "next_heading": "Du blir kontaktet ved behov", + "question": "Hva skjer nå som jeg har registrert meg?" + }, + "questions/received/komite.yaml": { + "back": "Tilbake til forsiden", + "description": "Takk for at du vil bidra! Styret har fått beskjed og ser på hvilken komité som passer best for deg.", + "next_description": "Noen fra styret tar kontakt for å høre mer om hva du liker å drive med, og finner en komité som passer.", + "next_heading": "Vi finner riktig komité til deg", + "question": "Hva skjer nå som jeg har meldt interesse for en komité?" + }, + "questions/received/trafikkfare.yaml": { + "back": "Tilbake til forsiden", + "description": "Meldingen din om trafikkfaren er sendt til komiteen for trafikk.", + "next_description": "Trafikkomiteen ser gjennom meldinger jevnlig og tar det videre med kommunen eller den som eier veien der det trengs.", + "next_heading": "Trafikkomiteen tar den videre", + "question": "Hva skjer med meldingen min nå?", + "see_all": { + "button": "Se andre trafikkfarer", + "description": "Se hva andre har meldt inn, og status på sakene.", + "heading": "Andre meldte trafikkfarer" + } + }, + "questions/received/trenger-hjelp.yaml": { + "back": "Til forsiden", + "description": "Meldingen din er sendt til nabohjelpa. Vi ser etter en nabo som kan stille opp.", + "next_description": "Vi tar kontakt med noen som kan hjelpe, så snart vi finner en som passer.", + "next_heading": "Vi finner en nabo til deg", + "question": "Hva skjer nå som jeg har bedt om hjelp?" + }, + "questions/status/anleggsfeil/index.yaml": { + "back": "Tilbake til meldinger", + "description": "Her ser du meldinger om ødelagt lekeutstyr og skader på elvestien, og hvor langt hver sak har kommet.", + "heading": "Status på meldte anleggsfeil", + "list_description": "Alle meldinger er åpne for alle å se.", + "question": "Hva skjer med det jeg har meldt fra om?" + }, + "questions/status/oppslag/index.yaml": { + "back": "Tilbake", + "description": "Her ser du alt som er sendt inn og hvor langt hvert oppslag har kommet.", + "heading": "Oversikt over det som er meldt inn", + "list_description": "Åpen liste – navn og detaljer vises ikke.", + "question": "Hva er sendt inn, og hvor langt har det kommet?" + }, + "questions/status/trafikkmeldinger/index.yaml": { + "back": "Tilbake", + "description": "Her ser du farlige steder i trafikken som er meldt inn, og hvor langt saken har kommet.", + "heading": "Trafikkmeldinger og status", + "list_description": "Alle meldinger som er sendt inn, og hvor de står nå.", + "question": "Er det meldt fra om noe farlig i trafikken der jeg bor?" + }, + "questions/styret/index.yaml": { + "buckets": { + "innspill": { + "description": "Her samles meninger fra beboerne om saker kommunen har på høring, klare til å tas med i velets svar.", + "heading": "Høringsinnspill fra beboerne", + "moves": {} + }, + "komitesoknader": { + "description": "Her ligger alle som har meldt seg til en komité og venter på en plass.", + "heading": "Søknader til komiteene", + "moves": { + "open->avslatt": "Avslå søknaden", + "open->plassert": "Sett i komité" + } + }, + "oppslag": { + "description": "Her ligger det naboer har å låne ut eller trenger å låne, klart til å legges ut.", + "heading": "Utstyr til utlån blant naboer", + "moves": { + "open->lagt_ut": "Legg ut oppslaget", + "open->tatt_ned": "Ta ned oppslaget" + } + }, + "trafikkmeldinger": { + "description": "Her samles meldinger om farlige steder i trafikken, klare til å tas videre med kommunen eller veieier.", + "heading": "Meldinger om trafikkfarer", + "moves": {} + } + }, + "confirm": "Lagre", + "description": "Herfra følger styret opp det som ikke hører under en enkelt komité: høringssvar, komitéplasser og oppslag fra naboer.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "arrangementer": { + "button": "Inviter", + "description": "De får en konto, plass i Arrangementer, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Arrangementer", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "horingsinstans": { + "button": "Inviter", + "description": "De får en konto, plass i Høringsinstans, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Høringsinstans", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "kasserer": { + "button": "Inviter", + "description": "De får en konto, plass i kassereren, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i kassereren", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "komiteer": { + "button": "Inviter", + "description": "De får en konto, plass i komiteene, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i komiteene", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "lekeplasser": { + "button": "Inviter", + "description": "De får en konto, plass i Leke- og møteplasser, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Leke- og møteplasser", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "nabohjelp": { + "button": "Inviter", + "description": "De får en konto, plass i nabohjelpen, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i nabohjelpen", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "styret": { + "button": "Inviter", + "description": "De får en konto, plass i styret, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i styret", + "labels": { + "email": "E-post", + "name": "Navn" + } + }, + "trafikk": { + "button": "Inviter", + "description": "De får en konto, plass i Trafikkforhold, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Trafikkforhold", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hva venter på styret akkurat nå?" + }, + "questions/trafikk/index.yaml": { + "buckets": { + "trafikkmeldinger": { + "description": "Farlige steder i trafikken som naboer har meldt inn.", + "heading": "Farlige steder i trafikken", + "moves": { + "open->avvist": "Avvis meldingen", + "open->tatt_opp": "Ta opp med kommunen", + "tatt_opp->avvist": "Avvis meldingen", + "tatt_opp->ordnet": "Meld ordnet" + } + } + }, + "confirm": "Lagre", + "description": "Her ser du meldinger om farlige steder i trafikken og følger dem opp overfor kommunen eller veieier.", + "invited": { + "description": "Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.", + "done": "Er inne", + "heading": "Sendte invitasjoner" + }, + "invites": { + "trafikk": { + "button": "Inviter", + "description": "De får en konto, plass i Trafikkforhold, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.", + "form_title": "Hvem", + "heading": "Inviter noen inn i Trafikkforhold", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hvilke trafikkfarer må følges opp?" + } +} diff --git a/runs/uhhm-2026-09-23/README.md b/runs/uhhm-2026-09-23/README.md index b4a643f..a140481 100644 --- a/runs/uhhm-2026-09-23/README.md +++ b/runs/uhhm-2026-09-23/README.md @@ -67,3 +67,28 @@ the newsletter points at `/subscribed`, which is now 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. diff --git a/runs/uhhm-2026-09-23/answers-full.jsonl b/runs/uhhm-2026-09-23/answers-full.jsonl index 9fade07..1961dc2 100644 --- a/runs/uhhm-2026-09-23/answers-full.jsonl +++ b/runs/uhhm-2026-09-23/answers-full.jsonl @@ -1,27 +1,15 @@ -{"choice":"You run an organization that needs software built","confidence":0.95,"id":"architecture-firm@/"} -{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"architecture-firm@/build"} -{"choice":"You run an organization that needs software built","confidence":0.95,"id":"climbing-gym-founder@/"} -{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"climbing-gym-founder@/build"} -{"choice":"You run an organization that needs software built","confidence":0.95,"id":"municipality-buyer@/"} -{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/build"} -{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"exhibition-visitor@/"} -{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/join"} -{"choice":"You run an organization that needs software built","confidence":0.95,"id":"tech-journalist@/"} -{"choice":"Hear from us now and then","confidence":0.95,"id":"tech-journalist@/join"} -{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"rust-developer@/"} -{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/join"} -{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"interaction-designer@/"} -{"choice":"Work with us","confidence":0.95,"id":"interaction-designer@/join"} -{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"student-intern@/"} -{"choice":"Work with us","confidence":0.95,"id":"student-intern@/join"} -{"choice":"You run an organization that needs software built","confidence":0.95,"id":"plumber-owner@/"} -{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/build"} -{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"dance-school@/"} -{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"dance-school@/build"} -{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":1.0,"id":"node-runner@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"architecture-firm@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"climbing-gym-founder@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"tech-journalist@/"} +{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"interaction-designer@/"} +{"choice":"Work with us","confidence":0.95,"id":"student-intern@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/"} +{"choice":"Work with us","confidence":0.95,"id":"dance-school@/"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"node-runner@/"} {"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"recorded-name@/"} -{"choice":"You run an organization that needs software built","confidence":0.95,"id":"app-builder@/"} -{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"wording-fix@/"} -{"choice":"Suggest a change to this website","confidence":0.95,"id":"wording-fix@/join"} -{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":1.0,"id":"rewrite@/"} -{"choice":"Suggest a change to this website","confidence":1.0,"id":"rewrite@/join"} +{"choice":"Work with us","confidence":0.95,"id":"app-builder@/"} +{"choice":"Suggest a change to this website","confidence":0.95,"id":"wording-fix@/"} +{"choice":"What UHHM does","confidence":0.95,"id":"rewrite@/"} diff --git a/runs/uhhm-2026-09-23/answers-skim.jsonl b/runs/uhhm-2026-09-23/answers-skim.jsonl index 1d0413d..49ba944 100644 --- a/runs/uhhm-2026-09-23/answers-skim.jsonl +++ b/runs/uhhm-2026-09-23/answers-skim.jsonl @@ -1,27 +1,15 @@ -{"choice":"You run an organization that needs software built","confidence":0.95,"id":"architecture-firm@/"} -{"choice":"Have us build it: send the brief","confidence":0.95,"id":"architecture-firm@/build"} -{"choice":"You run an organization that needs software built","confidence":0.95,"id":"climbing-gym-founder@/"} -{"choice":"Have us build it: send the brief","confidence":0.95,"id":"climbing-gym-founder@/build"} -{"choice":"You run an organization that needs software built","confidence":0.95,"id":"municipality-buyer@/"} -{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/build"} -{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"exhibition-visitor@/"} -{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/join"} -{"choice":"You run an organization that needs software built","confidence":0.95,"id":"tech-journalist@/"} -{"choice":"Hear from us now and then","confidence":0.95,"id":"tech-journalist@/join"} -{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"rust-developer@/"} -{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/join"} -{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"interaction-designer@/"} -{"choice":"Work with us","confidence":0.95,"id":"interaction-designer@/join"} -{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"student-intern@/"} -{"choice":"Work with us","confidence":0.95,"id":"student-intern@/join"} -{"choice":"You run an organization that needs software built","confidence":0.95,"id":"plumber-owner@/"} -{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/build"} -{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"dance-school@/"} -{"choice":"Have us build it: send the brief","confidence":0.95,"id":"dance-school@/build"} +{"choice":"Work with us","confidence":0.85,"id":"architecture-firm@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"climbing-gym-founder@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/"} +{"choice":"What UHHM does","confidence":0.95,"id":"tech-journalist@/"} +{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/"} +{"choice":"Work with us","confidence":0.85,"id":"interaction-designer@/"} +{"choice":"Work with us","confidence":0.95,"id":"student-intern@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.85,"id":"dance-school@/"} {"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"node-runner@/"} {"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"recorded-name@/"} {"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"app-builder@/"} -{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"wording-fix@/"} -{"choice":"Hear from us now and then","confidence":0.95,"id":"wording-fix@/join"} -{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"rewrite@/"} -{"choice":"Suggest a change to this website","confidence":0.95,"id":"rewrite@/join"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"wording-fix@/"} +{"choice":"Suggest a change to this website","confidence":0.95,"id":"rewrite@/"} diff --git a/runs/uhhm-2026-09-23/iris.log b/runs/uhhm-2026-09-23/iris.log index 752a08e..2196453 100644 --- a/runs/uhhm-2026-09-23/iris.log +++ b/runs/uhhm-2026-09-23/iris.log @@ -1,23 +1,23 @@ OK: 14 question(s), 9 aggregate(s) valid -OK: access policy, 53 rule(s), validates -need "commission": / [You run an organization that needs software built] -> /build [Have us build it: send the brief] -> "projects" -need "trial": / [You run an organization that needs software built] -> /build [See your own business as a site, before you buy anything] -> "trials" -need "collaborate": / [You want to join us, follow us, or fix a page on this site] -> /join [Work with us] -> "applicants" -need "subscribe": / [You want to join us, follow us, or fix a page on this site] -> /join [Hear from us now and then] -> "subscribers" -need "propose": / [You want to join us, follow us, or fix a page on this site] -> /join [Suggest a change to this website] -> "development_proposals" +OK: access policy, 57 rule(s), validates +need "commission": / [Have us build it: send the brief] -> "projects" +need "trial": / [See your own business as a site, before you buy anything] -> "trials" +need "collaborate": / [Work with us] -> "applicants" +need "subscribe": / [Hear from us now and then] -> "subscribers" +need "propose": / [Suggest a change to this website] -> "development_proposals" need "custody": / [You are on the redoal network: a node, an app, or a recording that concerns you] -> "custody_requests" need "prospect": /owners/prospect [Keep an organization on your radar] -> "organizations" OK: 7 need(s) structurally met, 0 planned, 15 persona(s) wrote the simulation model to model.json -wrote 27 wording task(s) to tasks-full.jsonl +wrote 15 wording task(s) to tasks-full.jsonl OK: 14 question(s), 9 aggregate(s) valid -OK: access policy, 53 rule(s), validates -need "commission": / [You run an organization that needs software built] -> /build [Have us build it: send the brief] -> "projects" -need "trial": / [You run an organization that needs software built] -> /build [See your own business as a site, before you buy anything] -> "trials" -need "collaborate": / [You want to join us, follow us, or fix a page on this site] -> /join [Work with us] -> "applicants" -need "subscribe": / [You want to join us, follow us, or fix a page on this site] -> /join [Hear from us now and then] -> "subscribers" -need "propose": / [You want to join us, follow us, or fix a page on this site] -> /join [Suggest a change to this website] -> "development_proposals" +OK: access policy, 57 rule(s), validates +need "commission": / [Have us build it: send the brief] -> "projects" +need "trial": / [See your own business as a site, before you buy anything] -> "trials" +need "collaborate": / [Work with us] -> "applicants" +need "subscribe": / [Hear from us now and then] -> "subscribers" +need "propose": / [Suggest a change to this website] -> "development_proposals" need "custody": / [You are on the redoal network: a node, an app, or a recording that concerns you] -> "custody_requests" need "prospect": /owners/prospect [Keep an organization on your radar] -> "organizations" OK: 7 need(s) structurally met, 0 planned, 15 persona(s) -wrote 27 wording task(s) to tasks-skim.jsonl +wrote 15 wording task(s) to tasks-skim.jsonl diff --git a/runs/uhhm-2026-09-23/model.json b/runs/uhhm-2026-09-23/model.json index 3811920..3a95bea 100644 --- a/runs/uhhm-2026-09-23/model.json +++ b/runs/uhhm-2026-09-23/model.json @@ -17,31 +17,16 @@ "steps": [ { "page": "/", - "question": "Who are you, and what do you need from UHHM?", + "question": "What is UHHM, and what can you get here?", "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": "What UHHM does", + "description": "Two things, both built here and both running." }, { - "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": "Have a look around first", + "description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now." }, - { - "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." @@ -49,6 +34,22 @@ { "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." + }, + { + "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." + }, + { + "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": [ @@ -112,31 +113,16 @@ "steps": [ { "page": "/", - "question": "Who are you, and what do you need from UHHM?", + "question": "What is UHHM, and what can you get here?", "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": "What UHHM does", + "description": "Two things, both built here and both running." }, { - "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": "Have a look around first", + "description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now." }, - { - "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." @@ -144,6 +130,22 @@ { "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." + }, + { + "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." + }, + { + "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": [ @@ -221,31 +223,24 @@ "steps": [ { "page": "/", - "question": "Who are you, and what do you need from UHHM?", + "question": "What is UHHM, and what can you get here?", "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": "What UHHM does", + "description": "Two things, both built here and both running." }, { - "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": "Have a look around first", + "description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now." }, { - "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": "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." + }, { "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." @@ -257,6 +252,10 @@ { "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." + }, + { + "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": [ @@ -310,31 +309,24 @@ "steps": [ { "page": "/", - "question": "Who are you, and what do you need from UHHM?", + "question": "What is UHHM, and what can you get here?", "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": "What UHHM does", + "description": "Two things, both built here and both running." }, { - "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": "Have a look around first", + "description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now." }, { - "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": "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." + }, { "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." @@ -346,6 +338,10 @@ { "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." + }, + { + "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": [ @@ -388,31 +384,24 @@ "steps": [ { "page": "/", - "question": "Who are you, and what do you need from UHHM?", + "question": "What is UHHM, and what can you get here?", "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": "What UHHM does", + "description": "Two things, both built here and both running." }, { - "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": "Have a look around first", + "description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now." }, { - "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": "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." + }, { "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." @@ -424,6 +413,10 @@ { "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." + }, + { + "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": [ @@ -487,15 +480,35 @@ "steps": [ { "page": "/", - "question": "Who are you, and what do you need from UHHM?", + "question": "What is UHHM, and what can you get here?", "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": "What UHHM does", + "description": "Two things, both built here and both running." }, { - "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": "Have a look around first", + "description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now." + }, + { + "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." + }, + { + "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." }, { "name": "You are on the redoal network: a node, an app, or a recording that concerns you", @@ -623,7 +636,9 @@ ] } ], - "self_moves": [] + "self_moves": [ + "declined" + ] }, "trials": { "initial": "open", @@ -674,13 +689,13 @@ "invited", "declined" ], - "invited": [ - "active", - "declined" - ], "active": [ "departed", "declined" + ], + "invited": [ + "active", + "declined" ] }, "desks": [ @@ -820,16 +835,18 @@ "moves": [] } ], - "self_moves": [] + "self_moves": [ + "resolved" + ] }, "organizations": { "initial": "prospect", "transitions": { - "prospect": [ - "client", + "client": [ "past_client" ], - "client": [ + "prospect": [ + "client", "past_client" ] }, diff --git a/runs/uhhm-2026-09-23/overrides-r4.json b/runs/uhhm-2026-09-23/overrides-r4.json new file mode 100644 index 0000000..1b350bc --- /dev/null +++ b/runs/uhhm-2026-09-23/overrides-r4.json @@ -0,0 +1,21 @@ +{ + "questions/index.yaml": { + "question": "What is UHHM, and what can you get here?", + "opener": { + "heading": "What UHHM does", + "description": "Two things, both built here and both running.", + "features": { + "software": { "heading": "Software built around a clear argument", "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.", "icon": "layers" }, + "redoal": { "heading": "The redoal network, built and carried here", "description": "The gesture math, the relay, the first node, and the portal this page runs on. UHHM answers for what that network keeps.", "icon": "waypoints" } + } + }, + "shopping": { + "heading": "Have a look around first", + "description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now.", + "items": { + "built": { "heading": "What we have built", "description": "A few things already out in the world.", "icon": "hammer" }, + "voices": { "heading": "The redoal network, live", "description": "Straight from the relay, the first node of the network.", "icon": "activity" } + } + } + } +} diff --git a/runs/uhhm-2026-09-23/overrides-r5.json b/runs/uhhm-2026-09-23/overrides-r5.json new file mode 100644 index 0000000..8d794f9 --- /dev/null +++ b/runs/uhhm-2026-09-23/overrides-r5.json @@ -0,0 +1,10 @@ +{ + "questions/index.yaml": { + "opener": { + "features": { + "software": { "heading": "A considered reply to your brief, and software that fits the argument", "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." }, + "redoal": { "heading": "A network that answers to you", "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." } + } + } + } +} diff --git a/runs/uhhm-2026-09-23/r3/answers-full.jsonl b/runs/uhhm-2026-09-23/r3/answers-full.jsonl new file mode 100644 index 0000000..9fade07 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/answers-full.jsonl @@ -0,0 +1,27 @@ +{"choice":"You run an organization that needs software built","confidence":0.95,"id":"architecture-firm@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"architecture-firm@/build"} +{"choice":"You run an organization that needs software built","confidence":0.95,"id":"climbing-gym-founder@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"climbing-gym-founder@/build"} +{"choice":"You run an organization that needs software built","confidence":0.95,"id":"municipality-buyer@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/build"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"exhibition-visitor@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/join"} +{"choice":"You run an organization that needs software built","confidence":0.95,"id":"tech-journalist@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"tech-journalist@/join"} +{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"rust-developer@/"} +{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/join"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"interaction-designer@/"} +{"choice":"Work with us","confidence":0.95,"id":"interaction-designer@/join"} +{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"student-intern@/"} +{"choice":"Work with us","confidence":0.95,"id":"student-intern@/join"} +{"choice":"You run an organization that needs software built","confidence":0.95,"id":"plumber-owner@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/build"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"dance-school@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"dance-school@/build"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":1.0,"id":"node-runner@/"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"recorded-name@/"} +{"choice":"You run an organization that needs software built","confidence":0.95,"id":"app-builder@/"} +{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"wording-fix@/"} +{"choice":"Suggest a change to this website","confidence":0.95,"id":"wording-fix@/join"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":1.0,"id":"rewrite@/"} +{"choice":"Suggest a change to this website","confidence":1.0,"id":"rewrite@/join"} diff --git a/runs/uhhm-2026-09-23/r3/answers-skim.jsonl b/runs/uhhm-2026-09-23/r3/answers-skim.jsonl new file mode 100644 index 0000000..1d0413d --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/answers-skim.jsonl @@ -0,0 +1,27 @@ +{"choice":"You run an organization that needs software built","confidence":0.95,"id":"architecture-firm@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"architecture-firm@/build"} +{"choice":"You run an organization that needs software built","confidence":0.95,"id":"climbing-gym-founder@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"climbing-gym-founder@/build"} +{"choice":"You run an organization that needs software built","confidence":0.95,"id":"municipality-buyer@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/build"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"exhibition-visitor@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/join"} +{"choice":"You run an organization that needs software built","confidence":0.95,"id":"tech-journalist@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"tech-journalist@/join"} +{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"rust-developer@/"} +{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/join"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"interaction-designer@/"} +{"choice":"Work with us","confidence":0.95,"id":"interaction-designer@/join"} +{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"student-intern@/"} +{"choice":"Work with us","confidence":0.95,"id":"student-intern@/join"} +{"choice":"You run an organization that needs software built","confidence":0.95,"id":"plumber-owner@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/build"} +{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"dance-school@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"dance-school@/build"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"node-runner@/"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"recorded-name@/"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"app-builder@/"} +{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"wording-fix@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"wording-fix@/join"} +{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"rewrite@/"} +{"choice":"Suggest a change to this website","confidence":0.95,"id":"rewrite@/join"} diff --git a/runs/uhhm-2026-09-23/r3/rated/rate.json b/runs/uhhm-2026-09-23/r3/rated/rate.json new file mode 100644 index 0000000..e61a44b --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/rated/rate.json @@ -0,0 +1,274 @@ +{ + "collaborate": { + "pages": [ + { + "control": { + "asked": 0, + "next": null, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": false, + "lix": 29.517543859649123, + "options": 3, + "overloaded": false, + "page": "/", + "personas": 3, + "required_fields": 0, + "understanding": { + "asked": 3, + "next": null, + "where": 3, + "which": 2 + } + }, + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 19.40740740740741, + "options": 3, + "overloaded": false, + "page": "/join", + "personas": 3, + "required_fields": 3, + "understanding": { + "asked": 3, + "next": 3, + "where": 3, + "which": 3 + } + } + ], + "steps": 2 + }, + "commission": { + "pages": [ + { + "control": { + "asked": 0, + "next": null, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": false, + "lix": 29.517543859649123, + "options": 3, + "overloaded": false, + "page": "/", + "personas": 3, + "required_fields": 0, + "understanding": { + "asked": 3, + "next": null, + "where": 2, + "which": 1 + } + }, + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 31.056192660550458, + "options": 2, + "overloaded": false, + "page": "/build", + "personas": 3, + "required_fields": 4, + "understanding": { + "asked": 3, + "next": 3, + "where": 3, + "which": 3 + } + } + ], + "steps": 2 + }, + "custody": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 30.00409836065574, + "options": 3, + "overloaded": false, + "page": "/", + "personas": 3, + "required_fields": 4, + "understanding": { + "asked": 3, + "next": 3, + "where": 3, + "which": 3 + } + } + ], + "steps": 1 + }, + "propose": { + "pages": [ + { + "control": { + "asked": 0, + "next": null, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": false, + "lix": 29.517543859649123, + "options": 3, + "overloaded": false, + "page": "/", + "personas": 2, + "required_fields": 0, + "understanding": { + "asked": 2, + "next": null, + "where": 2, + "which": 1 + } + }, + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 23.11111111111111, + "options": 3, + "overloaded": false, + "page": "/join", + "personas": 2, + "required_fields": 3, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 2 + }, + "subscribe": { + "pages": [ + { + "control": { + "asked": 0, + "next": null, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": false, + "lix": 29.517543859649123, + "options": 3, + "overloaded": false, + "page": "/", + "personas": 2, + "required_fields": 0, + "understanding": { + "asked": 2, + "next": null, + "where": 2, + "which": 2 + } + }, + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 21.1010101010101, + "options": 3, + "overloaded": false, + "page": "/join", + "personas": 2, + "required_fields": 2, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 2 + }, + "trial": { + "pages": [ + { + "control": { + "asked": 0, + "next": null, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": false, + "lix": 29.517543859649123, + "options": 3, + "overloaded": false, + "page": "/", + "personas": 2, + "required_fields": 0, + "understanding": { + "asked": 2, + "next": null, + "where": 2, + "which": 1 + } + }, + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 32.95073891625616, + "options": 2, + "overloaded": true, + "page": "/build", + "personas": 2, + "required_fields": 6, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 2 + } +} \ No newline at end of file diff --git a/runs/uhhm-2026-09-23/r3/score.log b/runs/uhhm-2026-09-23/r3/score.log new file mode 100644 index 0000000..6327a13 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/score.log @@ -0,0 +1,34 @@ +== answer full +== answer skim +== score full +MISROUTE: architecture-firm@/build: picked "See your own business as a site, before you buy anything" (0.95), the need is met by ["Have us build it: send the brief"] +MISROUTE: climbing-gym-founder@/build: picked "See your own business as a site, before you buy anything" (0.95), the need is met by ["Have us build it: send the brief"] +MISROUTE: exhibition-visitor@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] +MISROUTE: tech-journalist@/: picked "You run an organization that needs software built" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] +MISROUTE: interaction-designer@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] +MISROUTE: dance-school@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You run an organization that needs software built"] +MISROUTE: app-builder@/: picked "You run an organization that needs software built" (0.95), the need is met by ["You are on the redoal network: a node, an app, or a recording that concerns you"] +MISROUTE: rewrite@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (1.00), the need is met by ["You want to join us, follow us, or fix a page on this site"] +wording: 19/27 routed right (70%) +== score skim +MISROUTE: exhibition-visitor@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] +MISROUTE: tech-journalist@/: picked "You run an organization that needs software built" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] +MISROUTE: interaction-designer@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] +MISROUTE: dance-school@/: picked "You want to join us, follow us, or fix a page on this site" (0.95), the need is met by ["You run an organization that needs software built"] +MISROUTE: dance-school@/build: picked "Have us build it: send the brief" (0.95), the need is met by ["See your own business as a site, before you buy anything"] +MISROUTE: wording-fix@/join: picked "Hear from us now and then" (0.95), the need is met by ["Suggest a change to this website"] +wording: 21/27 routed right (78%) +== rate +need LIX which where asked next gutted twin says page load +commission @/ 30 very easy 1/3 2/3 3/3 - 0/0/0/- ok 3 options, 0 required +commission @/build 31 easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 2 options, 4 required +trial @/ 30 very easy 1/2 2/2 2/2 - 0/0/0/- ok 3 options, 0 required +trial @/build 33 easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 2 options, 6 required - SPLIT +collaborate @/ 30 very easy 2/3 3/3 3/3 - 0/0/0/- ok 3 options, 0 required +collaborate @/join 19 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 3 options, 3 required +subscribe @/ 30 very easy 2/2 2/2 2/2 - 0/0/0/- ok 3 options, 0 required +subscribe @/join 21 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 3 options, 2 required +propose @/ 30 very easy 1/2 2/2 2/2 - 0/0/0/- ok 3 options, 0 required +propose @/join 23 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 3 options, 3 required +custody 30 easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 3 options, 4 required +== done diff --git a/runs/uhhm-2026-09-23/r3/site/aggregates.yaml b/runs/uhhm-2026-09-23/r3/site/aggregates.yaml new file mode 100644 index 0000000..cccafd2 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/aggregates.yaml @@ -0,0 +1,113 @@ +aggregates: +- bucket: applicants + initial: open + states: + active: + event: onboarded + declined: + event: declined + departed: + event: departed + invited: + event: invited + open: + event: applied + transitions: + active: + - departed + - declined + invited: + - active + - declined + open: + - invited + - declined +- bucket: custody_requests + initial: open + states: + declined: + event: declined + in_dialogue: + event: in_dialogue + open: + event: received + resolved: + event: resolved + transitions: + in_dialogue: + - resolved + - declined + open: + - in_dialogue + - declined +- bucket: development_proposals + initial: open + states: + approved: + event: approved + open: + event: proposed + rejected: + event: rejected + transitions: + open: + - approved + - rejected +- bucket: organizations + initial: prospect + states: + client: + event: became_client + past_client: + event: churned + prospect: + event: identified + transitions: + client: + - past_client + prospect: + - client + - past_client +- bucket: projects + initial: open + states: + accepted: + event: accepted + declined: + event: declined + open: + event: submitted + transitions: + open: + - accepted + - declined +- bucket: subscribers + initial: open + states: + open: + event: subscribed + unsubscribed: + event: unsubscribed + transitions: + open: + - unsubscribed +- attended_by: | + approved -> previewed: the n8n workflow that builds the draft site from an approved intake (docker, rauthy, portal content) and sends the preview link. Until it exists, owners run portal-trainer by hand and press the button. + bucket: trials + initial: open + states: + approved: + event: approved + declined: + event: declined + open: + event: received + previewed: + event: previewed + transitions: + approved: + - previewed + - declined + open: + - approved + - declined diff --git a/runs/uhhm-2026-09-23/r3/site/llm/01-questions_build_index.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/01-questions_build_index.yaml.md new file mode 100644 index 0000000..8517c6a --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/01-questions_build_index.yaml.md @@ -0,0 +1,174 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/build/index.yaml +It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "description": "", + "needs": { + "commission": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "email": "", + "name": "", + "org_contact": "", + "organization": "", + "project": "" + }, + "icon": "", + "labels": { + "email": "", + "name": "", + "org_contact": "", + "organization": "", + "project": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + }, + "trial": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "business": "", + "email": "", + "what_slows_us_down": "", + "what_we_do": "", + "what_we_keep_track_of": "", + "who_comes_to_us": "", + "who_is_involved": "" + }, + "icon": "", + "labels": { + "business": "", + "email": "", + "what_slows_us_down": "", + "what_we_do": "", + "what_we_keep_track_of": "", + "who_comes_to_us": "", + "who_is_involved": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + } + }, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "description": "Have a problem software should solve, or want to see your own way of working as a site before you pay anyone?", + "needs": { + "commission": { + "button": "Send the brief", + "description": "You know the problem and want it solved. Write it up and send it to people who will read the whole thing.", + "encouragement": "Someone here reads every brief in full before writing back.", + "form_description": "The more of the problem you put in, the better the reply.", + "form_title": "Tell us the problem", + "heading": "A considered reply to your brief", + "hints": { + "email": "sara@company.com", + "name": "Sara Nilsen", + "org_contact": "Sara Nilsen, ops manager", + "organization": "Nilsen Transport AS", + "project": "Our drivers log hours on paper and it takes a day to get them into payroll." + }, + "icon": "briefcase", + "labels": { + "email": "Your email", + "name": "Your name", + "org_contact": "Who we should talk to", + "organization": "Your organization", + "project": "The problem you want solved" + }, + "road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "trial": { + "button": "Start the draft", + "description": "See your own requests, approvals and handovers as a working site, before you commit to anything.", + "encouragement": "A person looks at what you send before anything gets built.", + "form_description": "Answer in your own words - there's no wrong way to describe your business.", + "form_title": "Describe your business", + "heading": "A first draft of your own site", + "hints": { + "business": "Nilsen Transport AS", + "email": "sara@company.com", + "what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.", + "what_we_do": "We move freight for local businesses and handle the paperwork for them.", + "what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.", + "who_comes_to_us": "Local businesses that need something moved on short notice.", + "who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery." + }, + "icon": "layers", + "labels": { + "business": "Your business", + "email": "Your email", + "what_slows_us_down": "What slows you down", + "what_we_do": "What you do", + "what_we_keep_track_of": "What you keep track of", + "who_comes_to_us": "Who comes to you", + "who_is_involved": "Who's involved" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + } + }, + "question": "Do you already know the problem, or do you want to see your own business as a site first?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/02-questions_custodians_index.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/02-questions_custodians_index.yaml.md new file mode 100644 index 0000000..c9aeeb9 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/02-questions_custodians_index.yaml.md @@ -0,0 +1,108 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/custodians/index.yaml +It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open. Under `invites`, each entry is a form that invites a person into that group - they get an account and a one-time link - and `invited` is the list of invites sent. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "buckets": { + "custody_requests": { + "description": "", + "heading": "", + "moves": { + "in_dialogue->declined": "declined>", + "in_dialogue->resolved": "resolved>", + "open->declined": "declined>", + "open->in_dialogue": "in_dialogue>" + } + } + }, + "confirm": "", + "description": "", + "invited": { + "description": "", + "done": "", + "heading": "" + }, + "invites": { + "custodians": { + "button": "", + "description": "", + "form_title": "", + "heading": "", + "labels": { + "email": "", + "name": "" + } + } + }, + "links": {}, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "buckets": { + "custody_requests": { + "description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.", + "heading": "Custody cases waiting on you", + "moves": { + "in_dialogue->declined": "Close, no action", + "in_dialogue->resolved": "Mark resolved", + "open->declined": "Decline case", + "open->in_dialogue": "Open dialogue" + } + } + }, + "confirm": "Send invite", + "description": "The desk for custodians: open custody cases, and the people invited to answer them.", + "invited": { + "description": "Custodians invited but not yet signed in.", + "done": "Signed in", + "heading": "Invited custodians" + }, + "invites": { + "custodians": { + "button": "Invite custodian", + "description": "Give someone an account and a one-time link to join as a custodian.", + "form_title": "Invite a custodian", + "heading": "Bring in another custodian", + "labels": { + "email": "Email", + "name": "Name" + } + } + }, + "links": {}, + "question": "What does the network owe the people it affects, right now?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/03-questions_decide_subscribe.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/03-questions_decide_subscribe.yaml.md new file mode 100644 index 0000000..729c7c0 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/03-questions_decide_subscribe.yaml.md @@ -0,0 +1,60 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/decide/subscribe.yaml +It is a page the person who sent a form reaches later, through a private link, to make a decision that is theirs: under `moves`, each entry is one thing they can decide. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "description": "", + "moves": { + "unsubscribed": { + "button": "", + "description": "", + "heading": "" + } + }, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "description": "You're on our list. Change your mind whenever you like.", + "moves": { + "unsubscribed": { + "button": "Unsubscribe", + "description": "You'll stop hearing from us. Nothing else changes.", + "heading": "Stop getting notes from us" + } + }, + "question": "Do you want to keep hearing from us?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/04-questions_index.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/04-questions_index.yaml.md new file mode 100644 index 0000000..e11b912 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/04-questions_index.yaml.md @@ -0,0 +1,136 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/index.yaml +It is the front door: the first page any visitor sees. `question` is the page's one question. Under `doors`, each entry is one alternative that leads to a page of its own for one kind of visitor: its heading must let that visitor recognise themselves from the heading alone. Under `needs`, each entry is one alternative with a form behind it. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "description": "", + "doors": { + "build": { + "button": "", + "description": "", + "for_whom": "", + "heading": "", + "icon": "" + }, + "join": { + "button": "", + "description": "", + "for_whom": "", + "heading": "", + "icon": "" + } + }, + "needs": { + "custody": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "about": "", + "email": "", + "name": "", + "what": "" + }, + "icon": "", + "labels": { + "about": "", + "email": "", + "name": "", + "what": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + } + }, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.", + "doors": { + "build": { + "button": "Start here", + "description": "Send us the problem, or try your own workflow as a working site before you pay for anything.", + "for_whom": "For an organisation with a problem, or a business sizing us up", + "heading": "Get software built around your problem", + "icon": "hammer" + }, + "join": { + "button": "Start here", + "description": "Build with us, hear from us now and then, or tell us what should change on this page.", + "for_whom": "For anyone who wants in, on their own terms", + "heading": "Work with us, or just stay in touch", + "icon": "handshake" + } + }, + "needs": { + "custody": { + "button": "Send to a custodian", + "description": "For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.", + "encouragement": "A custodian reads every message that comes in here.", + "form_description": "Tell us what the network is doing, or not doing, and how we can reach you.", + "form_title": "Reach a custodian", + "heading": "Get an answer from the people who keep the network", + "hints": { + "about": "We run our order system on a relay node and it's been dropping messages since Tuesday", + "email": "you@yourcompany.com", + "name": "Your name", + "what": "A relay node is misbehaving" + }, + "icon": "shield", + "labels": { + "about": "What's going on", + "email": "Email", + "name": "Name", + "what": "In short" + }, + "road_description": "We open it and start a dialogue with you. Once we understand what the network is keeping that it shouldn't, we work it through to resolved, or tell you plainly if we can't.", + "road_icon": "route", + "road_title": "What happens next", + "who_title": "Who reads this", + "who_icon": "user-check", + "who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime." + } + }, + "question": "What brings you here?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/05-questions_join_index.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/05-questions_join_index.yaml.md new file mode 100644 index 0000000..493c581 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/05-questions_join_index.yaml.md @@ -0,0 +1,208 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/join/index.yaml +It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "description": "", + "needs": { + "collaborate": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "email": "", + "interest": "", + "name": "", + "note": "" + }, + "icon": "", + "labels": { + "email": "", + "interest": "", + "name": "", + "note": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + }, + "propose": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "email": "", + "page": "", + "proposed_yaml": "", + "rationale": "", + "submitted_by": "" + }, + "icon": "", + "labels": { + "email": "", + "page": "", + "proposed_yaml": "", + "rationale": "", + "submitted_by": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + }, + "subscribe": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "email": "", + "name": "" + }, + "icon": "", + "labels": { + "email": "", + "name": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + } + }, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "description": "Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.", + "needs": { + "collaborate": { + "button": "Get in touch", + "description": "You want to build software with people who read the whole brief, not just the summary.", + "encouragement": "A person reads this, not a form filter — worth the ten minutes.", + "form_description": "Tell us who you are and what kind of work you're after.", + "form_title": "Say hello", + "heading": "Work with people who read the whole thing", + "hints": { + "email": "you@example.com", + "interest": "Backend work, or something design-heavy", + "name": "Your name", + "note": "A bit about what you'd want to work on, or a link to your work" + }, + "icon": "handshake", + "labels": { + "email": "Email", + "interest": "What kind of work", + "name": "Name", + "note": "Tell us more" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "propose": { + "button": "Send change", + "description": "You've spotted something on this site that should read differently, and you know roughly how.", + "encouragement": "Even a rough version helps — we can tidy the wording ourselves.", + "form_description": "Point us to the page and show us the change.", + "form_title": "Propose a change", + "heading": "Get a page fixed the way you'd write it", + "hints": { + "email": "you@example.com", + "page": "questions/join/index.yaml", + "proposed_yaml": "heading: \"A clearer way to say this\"", + "rationale": "The current heading doesn't say what you actually get", + "submitted_by": "Your name" + }, + "icon": "pencil", + "labels": { + "email": "Email", + "page": "Which page", + "proposed_yaml": "Your proposed text", + "rationale": "Why this is better", + "submitted_by": "Your name" + }, + "road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "subscribe": { + "button": "Sign up", + "description": "You'd rather hear from us now and then than check back on your own.", + "encouragement": "One click unsubscribes you later, no questions asked.", + "form_description": "Just your email, or your name too if you'd like.", + "form_title": "Stay in the loop", + "heading": "Hear from us only when there's something to say", + "hints": { + "email": "you@example.com", + "name": "Your name" + }, + "icon": "mail", + "labels": { + "email": "Email", + "name": "Name" + }, + "road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.", + "road_icon": "bell", + "road_title": "What happens next", + "who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.", + "who_icon": "user-check", + "who_title": "Who reads this" + } + }, + "question": "How do you want to be part of this?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/06-questions_owners_index.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/06-questions_owners_index.yaml.md new file mode 100644 index 0000000..56e3fe7 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/06-questions_owners_index.yaml.md @@ -0,0 +1,236 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/owners/index.yaml +It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open. Under `invites`, each entry is a form that invites a person into that group - they get an account and a one-time link - and `invited` is the list of invites sent. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "buckets": { + "applicants": { + "description": "", + "heading": "", + "moves": { + "active->declined": "declined>", + "active->departed": "departed>", + "invited->active": "active>", + "invited->declined": "declined>", + "open->declined": "declined>", + "open->invited": "invited>" + } + }, + "custody_requests": { + "description": "", + "heading": "", + "moves": {} + }, + "development_proposals": { + "description": "", + "heading": "", + "moves": { + "open->approved": "approved>", + "open->rejected": "rejected>" + } + }, + "organizations": { + "description": "", + "heading": "", + "moves": { + "client->past_client": "past_client>", + "prospect->client": "client>", + "prospect->past_client": "past_client>" + } + }, + "projects": { + "description": "", + "heading": "", + "moves": { + "open->accepted": "accepted>", + "open->declined": "declined>" + } + }, + "subscribers": { + "description": "", + "heading": "", + "moves": { + "open->unsubscribed": "unsubscribed>" + } + }, + "trials": { + "description": "", + "heading": "", + "moves": { + "approved->declined": "declined>", + "approved->previewed": "previewed>", + "open->approved": "approved>", + "open->declined": "declined>" + } + } + }, + "confirm": "", + "description": "", + "invited": { + "description": "", + "done": "", + "heading": "" + }, + "invites": { + "custodians": { + "button": "", + "description": "", + "form_title": "", + "heading": "", + "labels": { + "email": "", + "name": "" + } + }, + "owners": { + "button": "", + "description": "", + "form_title": "", + "heading": "", + "labels": { + "email": "", + "name": "" + } + } + }, + "links": { + "prospect": { + "button": "", + "description": "", + "heading": "" + } + }, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +{ + "buckets": { + "applicants": { + "description": "People who've asked to build with us, waiting on a decision or already working alongside us.", + "heading": "People who want to build with us", + "moves": { + "active->declined": "End collaboration", + "active->departed": "Mark departed", + "invited->active": "Confirm active", + "invited->declined": "Withdraw invite", + "open->declined": "Decline applicant", + "open->invited": "Send invite" + } + }, + "custody_requests": { + "description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.", + "heading": "What's been raised with custodians", + "moves": {} + }, + "development_proposals": { + "description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.", + "heading": "Proposed changes to the site", + "moves": { + "open->approved": "Approve change", + "open->rejected": "Reject change" + } + }, + "organizations": { + "description": "Organizations you've met, tracked from first contact through to client and beyond.", + "heading": "Organizations you're tracking", + "moves": { + "client->past_client": "Mark past client", + "prospect->client": "Mark as client", + "prospect->past_client": "Mark not pursued" + } + }, + "projects": { + "description": "Briefs sent in by organizations with a problem they want solved.", + "heading": "Briefs waiting on a reply", + "moves": { + "open->accepted": "Accept brief", + "open->declined": "Decline brief" + } + }, + "subscribers": { + "description": "People who want to hear from you now and then.", + "heading": "Who's hearing from you", + "moves": { + "open->unsubscribed": "Unsubscribe them" + } + }, + "trials": { + "description": "Businesses who want to see their own workflow as a working site before committing to anything.", + "heading": "Trial sites in progress", + "moves": { + "approved->declined": "Decline trial", + "approved->previewed": "Mark previewed", + "open->approved": "Approve trial", + "open->declined": "Decline trial" + } + } + }, + "confirm": "Confirm", + "description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.", + "invited": { + "description": "People you've invited in, and whether they've taken it up yet.", + "done": "Taken up", + "heading": "Invites you've sent" + }, + "invites": { + "custodians": { + "button": "Send invite", + "description": "Bring someone in to help keep the first node and answer for the network.", + "form_title": "Invite a custodian", + "heading": "Bring in a custodian", + "labels": { + "email": "Their email", + "name": "Their name" + } + }, + "owners": { + "button": "Send invite", + "description": "Bring someone in to work this desk alongside you.", + "form_title": "Invite an owner", + "heading": "Bring in another owner", + "labels": { + "email": "Their email", + "name": "Their name" + } + } + }, + "links": { + "prospect": { + "button": "Add prospect", + "description": "Write down an organization worth following up, and track it from first contact onward.", + "heading": "Track a new organization" + } + }, + "question": "What's waiting on me today?" +} diff --git a/runs/uhhm-2026-09-23/r3/site/llm/07-questions_owners_prospect-sent.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/07-questions_owners_prospect-sent.yaml.md new file mode 100644 index 0000000..2bc4507 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/07-questions_owners_prospect-sent.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/owners/prospect-sent.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to site", + "description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.", + "next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.", + "next_heading": "It's on the desk now", + "question": "What happens to this now?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/08-questions_owners_prospect.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/08-questions_owners_prospect.yaml.md new file mode 100644 index 0000000..290d1f2 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/08-questions_owners_prospect.yaml.md @@ -0,0 +1,92 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/owners/prospect.yaml +It is a page only one role inside the business can open, holding one form. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "contact": "", + "name": "", + "note": "" + }, + "icon": "", + "labels": { + "contact": "", + "name": "", + "note": "" + }, + "page_description": "", + "question": "", + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "button": "Add to prospects", + "description": "One line per organization worth watching, moved through the stages as things develop.", + "encouragement": "Takes a minute, and it's yours to update later.", + "form_description": "Name the organization and where things stand.", + "form_title": "New prospect", + "heading": "Keep an organization on your radar", + "hints": { + "contact": "met at the bakers' conference, [email protected]", + "name": "Nordvik Bakery", + "note": "wants a booking flow, follow up after harvest season" + }, + "icon": "briefcase", + "labels": { + "contact": "Contact", + "name": "Organization", + "note": "Note" + }, + "page_description": "Write down an organization worth following up, and move it through client and past client as things develop.", + "question": "Is there an organization I should be keeping track of?", + "road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.", + "road_icon": "route", + "road_title": "Moves as you update it", + "who_description": "Only you see this, so keep it wherever you check next.", + "who_icon": "user", + "who_title": "Just for you" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/09-questions_received_collaborate.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/09-questions_received_collaborate.yaml.md new file mode 100644 index 0000000..6f83c69 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/09-questions_received_collaborate.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/collaborate.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to site", + "description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.", + "next_description": "If it looks like a fit, we'll reach out to talk about where you could help.", + "next_heading": "We'll write if there's a fit", + "question": "What happens to what I just sent?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/10-questions_received_commission.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/10-questions_received_commission.yaml.md new file mode 100644 index 0000000..225f61e --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/10-questions_received_commission.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/commission.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to home", + "description": "Your brief is in. An owner reads every commission end to end before replying.", + "next_description": "Expect a reply within a few working days, either way, straight to your inbox.", + "next_heading": "A real reply from someone who read it", + "question": "What happens now that we've sent our brief?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/11-questions_received_custody.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/11-questions_received_custody.yaml.md new file mode 100644 index 0000000..ee326dc --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/11-questions_received_custody.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/custody.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to the site", + "description": "A custodian reads every message about the redoal network and what it keeps.", + "next_description": "Expect a reply once your report has been looked at and the network checked.", + "next_heading": "A custodian is on it", + "question": "Who looks after what the network keeps?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/12-questions_received_propose.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/12-questions_received_propose.yaml.md new file mode 100644 index 0000000..1ddaf45 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/12-questions_received_propose.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/propose.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back home", + "description": "Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.", + "next_description": "We'll write back once it's been read — approved and made live, or turned down with a reason.", + "next_heading": "A read, then a decision", + "question": "What happens to my proposal now?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/13-questions_received_subscribe.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/13-questions_received_subscribe.yaml.md new file mode 100644 index 0000000..2760f6f --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/13-questions_received_subscribe.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/subscribe.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to site", + "description": "You'll hear from us when there's something worth saying, not on a schedule.", + "next_description": "You're on the list. Every note has an unsubscribe link if it stops being useful.", + "next_heading": "You're on the list", + "question": "What happens now that I've subscribed?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/llm/14-questions_received_trial.yaml.md b/runs/uhhm-2026-09-23/r3/site/llm/14-questions_received_trial.yaml.md new file mode 100644 index 0000000..062e729 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/llm/14-questions_received_trial.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/trial.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to site", + "description": "We read every trial request ourselves before anything gets built.", + "next_description": "If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.", + "next_heading": "A first draft, built from your own words", + "question": "What happens now that you've sent this?" +} +``` diff --git a/runs/uhhm-2026-09-23/r3/site/needs.yaml b/runs/uhhm-2026-09-23/r3/site/needs.yaml new file mode 100644 index 0000000..39df5ec --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/needs.yaml @@ -0,0 +1,173 @@ +needs: +- done_when: + - accepted + - declined + enters: / + handled_by: owners + id: commission + lands_in: projects + max_fields: 4 + max_steps: 2 + stages: + - open + - accepted + - declined + success: + - accepted + via: You run an organization that needs software built + 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: + - previewed + - declined + enters: / + handled_by: owners + id: trial + lands_in: trials + max_fields: 6 + max_steps: 2 + stages: + - open + - approved + - previewed + - declined + success: + - previewed + via: You run an organization that needs software built + 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: + - departed + - declined + enters: / + handled_by: owners + id: collaborate + lands_in: applicants + max_fields: 3 + max_steps: 2 + stages: + - open + - invited + - active + - departed + - declined + success: + - departed + via: You want to join us, follow us, or fix a page on this site + 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: + - unsubscribed + enters: / + handled_by: owners + id: subscribe + lands_in: subscribers + max_fields: 2 + max_steps: 2 + stages: + - open + - unsubscribed + success: [] + via: You want to join us, follow us, or fix a page on this site + 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: + - approved + - rejected + enters: / + handled_by: owners + id: propose + lands_in: development_proposals + max_fields: 3 + max_steps: 2 + stages: + - open + - approved + - rejected + success: + - approved + via: You want to join us, follow us, or fix a page on this site + 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: + - resolved + - declined + enters: / + handled_by: custodians + id: custody + lands_in: custody_requests + max_fields: 4 + max_steps: 1 + stages: + - open + - in_dialogue + - resolved + - declined + success: + - resolved + via: 'You are on the redoal network: a node, an app, or a recording that concerns you' + wants: an answer from a custodian, and action where the network keeps something it should not + who: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node +- done_when: + - past_client + enters: /owners/prospect + enters_as: owners + handled_by: owners + id: prospect + lands_in: organizations + max_fields: 2 + max_steps: 1 + stages: + - prospect + - client + - past_client + success: [] + via: Keep an organization on your radar + wants: it written down and walked through its states from the desk + who: an owner who has met an organization worth following up +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? diff --git a/runs/uhhm-2026-09-23/site/questions/build/index.yaml b/runs/uhhm-2026-09-23/r3/site/questions/build/index.yaml similarity index 100% rename from runs/uhhm-2026-09-23/site/questions/build/index.yaml rename to runs/uhhm-2026-09-23/r3/site/questions/build/index.yaml diff --git a/runs/uhhm-2026-09-23/r3/site/questions/custodians/_section.yaml b/runs/uhhm-2026-09-23/r3/site/questions/custodians/_section.yaml new file mode 100644 index 0000000..de40ef5 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/custodians/_section.yaml @@ -0,0 +1 @@ +qualifies: custodians diff --git a/runs/uhhm-2026-09-23/r3/site/questions/custodians/index.yaml b/runs/uhhm-2026-09-23/r3/site/questions/custodians/index.yaml new file mode 100644 index 0000000..6a0b293 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/custodians/index.yaml @@ -0,0 +1,65 @@ +alternatives: +- action: /custodians + consequence: + - Confirm + description: Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it. + features: + - description: '' + name: '' + resource: + requires_group: custodians + source: + bucket: custody_requests + kind: kv + transitions: + - from: in_dialogue + label: Mark resolved + to: resolved + - from: in_dialogue + label: Close, no action + to: declined + - from: open + label: Open dialogue + to: in_dialogue + - from: open + label: Decline case + to: declined + name: Custody cases waiting on you +- action: /custodians + consequence: + - Invite custodian + description: Give someone an account and a one-time link to join as a custodian. + features: + - description: '' + name: Invite a custodian + requirements: + - label: Name + name: name + - label: Email + name: email + type: email + invite: + group: custodians + name: Bring in another custodian +- action: /custodians + consequence: + - Confirm + description: Custodians invited but not yet signed in. + features: + - description: '' + name: '' + resource: + requires_group: custodians + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Signed in + to: done + name: Invited custodians +description: 'The desk for custodians: open custody cases, and the people invited to answer them.' +name: What is waiting on the custodians? +responsible: + contact: bl@uhhm.no + name: Bendik Aagaard Lynghaug diff --git a/runs/uhhm-2026-09-23/r3/site/questions/decide/subscribe.yaml b/runs/uhhm-2026-09-23/r3/site/questions/decide/subscribe.yaml new file mode 100644 index 0000000..45114ca --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/decide/subscribe.yaml @@ -0,0 +1,9 @@ +alternatives: +- description: You'll stop hearing from us. Nothing else changes. + name: Stop getting notes from us + self_transition: + bucket: subscribers + label: Unsubscribe + to: unsubscribed +description: You're on our list. Change your mind whenever you like. +name: Do you want to keep hearing from us? diff --git a/runs/uhhm-2026-09-23/r3/site/questions/index.yaml b/runs/uhhm-2026-09-23/r3/site/questions/index.yaml new file mode 100644 index 0000000..43b5b34 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/index.yaml @@ -0,0 +1,63 @@ +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. + features: + - description: '' + 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 + 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. + features: + - description: '' + 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 +- action: /received/custody + consequence: + - Send to a custodian + 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. + encouragements: + - A custodian reads every message that comes in here. + features: + - description: A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided. + icon: lucide:route + name: What happens next + - description: A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime. + icon: lucide:user-check + name: Who reads this + - description: Say which of the four it is, and what you need, in a few lines. + icon: lucide:shield + name: Reach a custodian + requirements: + - label: Name + name: name + placeholder: Your name + type: text + - label: Email + name: email + placeholder: you@yourcompany.com + type: email + - label: What's going on + name: about + options: + - Running a node of my own + - Building on the network + - Something the network keeps about me + - Something else + type: select + - label: In short + name: what + placeholder: A relay node is misbehaving + type: textarea + 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? +responsible: + contact: bl@uhhm.no + name: Bendik Aagaard Lynghaug diff --git a/runs/uhhm-2026-09-23/site/questions/join/index.yaml b/runs/uhhm-2026-09-23/r3/site/questions/join/index.yaml similarity index 100% rename from runs/uhhm-2026-09-23/site/questions/join/index.yaml rename to runs/uhhm-2026-09-23/r3/site/questions/join/index.yaml diff --git a/runs/uhhm-2026-09-23/r3/site/questions/owners/_section.yaml b/runs/uhhm-2026-09-23/r3/site/questions/owners/_section.yaml new file mode 100644 index 0000000..670fca7 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/owners/_section.yaml @@ -0,0 +1 @@ +qualifies: owners diff --git a/runs/uhhm-2026-09-23/r3/site/questions/owners/index.yaml b/runs/uhhm-2026-09-23/r3/site/questions/owners/index.yaml new file mode 100644 index 0000000..a59e0b0 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/owners/index.yaml @@ -0,0 +1,212 @@ +alternatives: +- action: /owners + consequence: + - Confirm + description: People who've asked to build with us, waiting on a decision or already working alongside us. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: applicants + kind: kv + transitions: + - from: active + label: Mark departed + to: departed + - from: active + label: End collaboration + to: declined + - from: invited + label: Confirm active + to: active + - from: invited + label: Withdraw invite + to: declined + - from: open + label: Send invite + to: invited + - from: open + label: Decline applicant + to: declined + name: People who want to build with us +- action: /owners + consequence: + - Confirm + description: Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: custody_requests + kind: kv + transitions: [] + name: What's been raised with custodians +- action: /owners + consequence: + - Confirm + description: Changes visitors have proposed for pages on this site, waiting on a yes or no. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: development_proposals + kind: kv + transitions: + - from: open + label: Approve change + to: approved + - from: open + label: Reject change + to: rejected + name: Proposed changes to the site +- action: /owners + consequence: + - Confirm + description: Organizations you've met, tracked from first contact through to client and beyond. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: organizations + kind: kv + transitions: + - from: client + label: Mark past client + to: past_client + - from: prospect + label: Mark as client + to: client + - from: prospect + label: Mark not pursued + to: past_client + name: Organizations you're tracking +- action: /owners + consequence: + - Confirm + description: Briefs sent in by organizations with a problem they want solved. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: projects + kind: kv + transitions: + - from: open + label: Accept brief + to: accepted + - from: open + label: Decline brief + to: declined + name: Briefs waiting on a reply +- action: /owners + consequence: + - Confirm + description: People who want to hear from you now and then. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: subscribers + kind: kv + transitions: + - from: open + label: Unsubscribe them + to: unsubscribed + name: Who's hearing from you +- action: /owners + consequence: + - Confirm + description: Businesses who want to see their own workflow as a working site before committing to anything. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: trials + kind: kv + transitions: + - from: approved + label: Mark previewed + to: previewed + - from: approved + label: Decline trial + to: declined + - from: open + label: Approve trial + to: approved + - from: open + label: Decline trial + to: declined + name: Trial sites in progress +- action: /owners/prospect + consequence: + - Add prospect + description: Write down an organization worth following up, and track it from first contact onward. + name: Track a new organization +- action: /owners + consequence: + - Send invite + description: Bring someone in to help keep the first node and answer for the network. + features: + - description: '' + name: Invite a custodian + requirements: + - label: Their name + name: name + - label: Their email + name: email + type: email + invite: + group: custodians + name: Bring in a custodian +- action: /owners + consequence: + - Send invite + description: Bring someone in to work this desk alongside you. + features: + - description: '' + name: Invite an owner + requirements: + - label: Their name + name: name + - label: Their email + name: email + type: email + invite: + group: owners + name: Bring in another owner +- action: /owners + consequence: + - Confirm + description: People you've invited in, and whether they've taken it up yet. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Taken up + to: done + name: Invites you've sent +description: 'Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.' +name: What's waiting on me today? +responsible: + contact: bl@uhhm.no + name: Bendik Aagaard Lynghaug diff --git a/runs/uhhm-2026-09-23/r3/site/questions/owners/prospect-sent.yaml b/runs/uhhm-2026-09-23/r3/site/questions/owners/prospect-sent.yaml new file mode 100644 index 0000000..d49a1d4 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/owners/prospect-sent.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: An owner walks it from prospect to client, and on to past client, as the relationship moves. + name: It's on the desk now +- action: /owners + consequence: + - Back to site + description: '' + name: Back to site +description: Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking. +name: What happens to this now? diff --git a/runs/uhhm-2026-09-23/r3/site/questions/owners/prospect.yaml b/runs/uhhm-2026-09-23/r3/site/questions/owners/prospect.yaml new file mode 100644 index 0000000..581bd11 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/owners/prospect.yaml @@ -0,0 +1,39 @@ +alternatives: +- action: /owners/prospect-sent + consequence: + - Add to prospects + description: One line per organization worth watching, moved through the stages as things develop. + encouragements: + - Takes a minute, and it's yours to update later. + features: + - description: It sits as a prospect until something moves - then you mark it client, and later past client if the work ends. + icon: lucide:route + name: Moves as you update it + - description: Only you see this, so keep it wherever you check next. + icon: lucide:user + name: Just for you + - description: Name the organization and where things stand. + icon: lucide:briefcase + name: New prospect + requirements: + - label: Organization + name: name + placeholder: Nordvik Bakery + type: text + - label: Contact + name: contact + placeholder: met at the bakers' conference, [email protected] + type: text + - label: Note + name: note + optional: true + placeholder: wants a booking flow, follow up after harvest season + type: textarea + name: Keep an organization on your radar + record_as: organizations +description: Write down an organization worth following up, and move it through client and past client as things develop. +followup: false +name: Is there an organization I should be keeping track of? +responsible: + contact: bl@uhhm.no + name: Bendik Aagaard Lynghaug diff --git a/runs/uhhm-2026-09-23/r3/site/questions/received/collaborate.yaml b/runs/uhhm-2026-09-23/r3/site/questions/received/collaborate.yaml new file mode 100644 index 0000000..c612fe8 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/received/collaborate.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: If it looks like a fit, we'll reach out to talk about where you could help. + name: We'll write if there's a fit +- action: / + consequence: + - Back to site + description: '' + name: Back to site +description: Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring. +name: What happens to what I just sent? diff --git a/runs/uhhm-2026-09-23/r3/site/questions/received/commission.yaml b/runs/uhhm-2026-09-23/r3/site/questions/received/commission.yaml new file mode 100644 index 0000000..59e77bc --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/received/commission.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Expect a reply within a few working days, either way, straight to your inbox. + name: A real reply from someone who read it +- action: / + consequence: + - Back to home + description: '' + name: Back to home +description: Your brief is in. An owner reads every commission end to end before replying. +name: What happens now that we've sent our brief? diff --git a/runs/uhhm-2026-09-23/r3/site/questions/received/custody.yaml b/runs/uhhm-2026-09-23/r3/site/questions/received/custody.yaml new file mode 100644 index 0000000..150966f --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/received/custody.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Expect a reply once your report has been looked at and the network checked. + name: A custodian is on it +- action: / + consequence: + - Back to the site + description: '' + name: Back to the site +description: A custodian reads every message about the redoal network and what it keeps. +name: Who looks after what the network keeps? diff --git a/runs/uhhm-2026-09-23/r3/site/questions/received/propose.yaml b/runs/uhhm-2026-09-23/r3/site/questions/received/propose.yaml new file mode 100644 index 0000000..1ae02a9 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/received/propose.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: We'll write back once it's been read — approved and made live, or turned down with a reason. + name: A read, then a decision +- action: / + consequence: + - Back home + description: '' + name: Back home +description: Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page. +name: What happens to my proposal now? diff --git a/runs/uhhm-2026-09-23/r3/site/questions/received/subscribe.yaml b/runs/uhhm-2026-09-23/r3/site/questions/received/subscribe.yaml new file mode 100644 index 0000000..c2910bb --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/received/subscribe.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: You're on the list. Every note has an unsubscribe link if it stops being useful. + name: You're on the list +- action: / + consequence: + - Back to site + description: '' + name: Back to site +description: You'll hear from us when there's something worth saying, not on a schedule. +name: What happens now that I've subscribed? diff --git a/runs/uhhm-2026-09-23/r3/site/questions/received/trial.yaml b/runs/uhhm-2026-09-23/r3/site/questions/received/trial.yaml new file mode 100644 index 0000000..586bcd3 --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/questions/received/trial.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live. + name: A first draft, built from your own words +- action: / + consequence: + - Back to site + description: '' + name: Back to site +description: We read every trial request ourselves before anything gets built. +name: What happens now that you've sent this? diff --git a/runs/uhhm-2026-09-23/r3/site/site.yaml b/runs/uhhm-2026-09-23/r3/site/site.yaml new file mode 100644 index 0000000..aa5de2a --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/site.yaml @@ -0,0 +1,2 @@ +lang: en +title: UHHM diff --git a/runs/uhhm-2026-09-23/r3/site/words.json b/runs/uhhm-2026-09-23/r3/site/words.json new file mode 100644 index 0000000..f694c0a --- /dev/null +++ b/runs/uhhm-2026-09-23/r3/site/words.json @@ -0,0 +1,426 @@ +{ + "questions/build/index.yaml": { + "description": "Have a problem software should solve, or want to see your own way of working as a site before you pay anyone?", + "needs": { + "commission": { + "button": "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.", + "encouragement": "Someone here reads every brief in full before writing back.", + "form_description": "The more of the problem you put in, the better the reply.", + "form_title": "Tell us the problem", + "heading": "Have us build it: send the brief", + "hints": { + "email": "sara@company.com", + "name": "Sara Nilsen", + "org_contact": "Sara Nilsen, ops manager", + "organization": "Nilsen Transport AS", + "project": "Our drivers log hours on paper and it takes a day to get them into payroll." + }, + "icon": "briefcase", + "labels": { + "email": "Your email", + "name": "Your name", + "org_contact": "Who we should talk to", + "organization": "Your organization", + "project": "The problem you want solved" + }, + "road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "trial": { + "button": "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.", + "encouragement": "A person looks at what you send before anything gets built.", + "form_description": "Answer in your own words - there's no wrong way to describe your business.", + "form_title": "Describe your business", + "heading": "See your own business as a site, before you buy anything", + "hints": { + "business": "Nilsen Transport AS", + "email": "sara@company.com", + "what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.", + "what_we_do": "We move freight for local businesses and handle the paperwork for them.", + "what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.", + "who_comes_to_us": "Local businesses that need something moved on short notice.", + "who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery." + }, + "icon": "layers", + "labels": { + "business": "Your business", + "email": "Your email", + "what_slows_us_down": "What slows you down", + "what_we_do": "What you do", + "what_we_keep_track_of": "What you keep track of", + "who_comes_to_us": "Who comes to you", + "who_is_involved": "Who's involved" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + } + }, + "question": "Do you have a brief, or do you want to see your business as a site first?" + }, + "questions/custodians/index.yaml": { + "buckets": { + "custody_requests": { + "description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.", + "heading": "Custody cases waiting on you", + "moves": { + "in_dialogue->declined": "Close, no action", + "in_dialogue->resolved": "Mark resolved", + "open->declined": "Decline case", + "open->in_dialogue": "Open dialogue" + } + } + }, + "confirm": "Confirm", + "description": "The desk for custodians: open custody cases, and the people invited to answer them.", + "invited": { + "description": "Custodians invited but not yet signed in.", + "done": "Signed in", + "heading": "Invited custodians" + }, + "invites": { + "custodians": { + "button": "Invite custodian", + "description": "Give someone an account and a one-time link to join as a custodian.", + "form_title": "Invite a custodian", + "heading": "Bring in another custodian", + "labels": { + "email": "Email", + "name": "Name" + } + } + }, + "links": {}, + "question": "What is waiting on the custodians?" + }, + "questions/decide/subscribe.yaml": { + "description": "You're on our list. Change your mind whenever you like.", + "moves": { + "unsubscribed": { + "button": "Unsubscribe", + "description": "You'll stop hearing from us. Nothing else changes.", + "heading": "Stop getting notes from us" + } + }, + "question": "Do you want to keep hearing from us?" + }, + "questions/index.yaml": { + "description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.", + "doors": { + "build": { + "button": "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.", + "for_whom": "For a business or an organization with a job for us", + "heading": "You run an organization that needs software built", + "icon": "hammer" + }, + "join": { + "button": "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.", + "for_whom": "For a person, on their own behalf", + "heading": "You want to join us, follow us, or fix a page on this site", + "icon": "handshake" + } + }, + "needs": { + "custody": { + "button": "Send to a custodian", + "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.", + "encouragement": "A custodian reads every message that comes in here.", + "form_description": "Say which of the four it is, and what you need, in a few lines.", + "form_title": "Reach a custodian", + "heading": "You are on the redoal network: a node, an app, or a recording that concerns you", + "hints": { + "about": "We run our order system on a relay node and it's been dropping messages since Tuesday", + "email": "you@yourcompany.com", + "name": "Your name", + "what": "A relay node is misbehaving" + }, + "icon": "shield", + "labels": { + "about": "What's going on", + "email": "Email", + "name": "Name", + "what": "In short" + }, + "road_description": "A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.", + "who_icon": "user-check", + "who_title": "Who reads this" + } + }, + "question": "Who are you, and what do you need from UHHM?" + }, + "questions/join/index.yaml": { + "description": "Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.", + "needs": { + "collaborate": { + "button": "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.", + "encouragement": "A person reads this, not a form filter — worth the ten minutes.", + "form_description": "Tell us who you are and what kind of work you're after.", + "form_title": "Say hello", + "heading": "Work with us", + "hints": { + "email": "you@example.com", + "interest": "Backend work, or something design-heavy", + "name": "Your name", + "note": "A bit about what you'd want to work on, or a link to your work" + }, + "icon": "handshake", + "labels": { + "email": "Email", + "interest": "What kind of work", + "name": "Name", + "note": "Tell us more" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "propose": { + "button": "Send change", + "description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how.", + "encouragement": "Even a rough version helps — we can tidy the wording ourselves.", + "form_description": "Point us to the page and show us the change.", + "form_title": "Propose a change", + "heading": "Suggest a change to this website", + "hints": { + "email": "you@example.com", + "page": "questions/join/index.yaml", + "proposed_yaml": "heading: \"A clearer way to say this\"", + "rationale": "The current heading doesn't say what you actually get", + "submitted_by": "Your name" + }, + "icon": "pencil", + "labels": { + "email": "Email", + "page": "Which page", + "proposed_yaml": "Your proposed text", + "rationale": "Why this is better", + "submitted_by": "Your name" + }, + "road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "subscribe": { + "button": "Sign up", + "description": "You'd rather hear from us now and then than check back on your own.", + "encouragement": "One click unsubscribes you later, no questions asked.", + "form_description": "Just your email, or your name too if you'd like.", + "form_title": "Stay in the loop", + "heading": "Hear from us now and then", + "hints": { + "email": "you@example.com", + "name": "Your name" + }, + "icon": "mail", + "labels": { + "email": "Email", + "name": "Name" + }, + "road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.", + "road_icon": "bell", + "road_title": "What happens next", + "who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.", + "who_icon": "user-check", + "who_title": "Who reads this" + } + }, + "question": "How do you want to be part of this?" + }, + "questions/owners/index.yaml": { + "buckets": { + "applicants": { + "description": "People who've asked to build with us, waiting on a decision or already working alongside us.", + "heading": "People who want to build with us", + "moves": { + "active->declined": "End collaboration", + "active->departed": "Mark departed", + "invited->active": "Confirm active", + "invited->declined": "Withdraw invite", + "open->declined": "Decline applicant", + "open->invited": "Send invite" + } + }, + "custody_requests": { + "description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.", + "heading": "What's been raised with custodians", + "moves": {} + }, + "development_proposals": { + "description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.", + "heading": "Proposed changes to the site", + "moves": { + "open->approved": "Approve change", + "open->rejected": "Reject change" + } + }, + "organizations": { + "description": "Organizations you've met, tracked from first contact through to client and beyond.", + "heading": "Organizations you're tracking", + "moves": { + "client->past_client": "Mark past client", + "prospect->client": "Mark as client", + "prospect->past_client": "Mark not pursued" + } + }, + "projects": { + "description": "Briefs sent in by organizations with a problem they want solved.", + "heading": "Briefs waiting on a reply", + "moves": { + "open->accepted": "Accept brief", + "open->declined": "Decline brief" + } + }, + "subscribers": { + "description": "People who want to hear from you now and then.", + "heading": "Who's hearing from you", + "moves": { + "open->unsubscribed": "Unsubscribe them" + } + }, + "trials": { + "description": "Businesses who want to see their own workflow as a working site before committing to anything.", + "heading": "Trial sites in progress", + "moves": { + "approved->declined": "Decline trial", + "approved->previewed": "Mark previewed", + "open->approved": "Approve trial", + "open->declined": "Decline trial" + } + } + }, + "confirm": "Confirm", + "description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.", + "invited": { + "description": "People you've invited in, and whether they've taken it up yet.", + "done": "Taken up", + "heading": "Invites you've sent" + }, + "invites": { + "custodians": { + "button": "Send invite", + "description": "Bring someone in to help keep the first node and answer for the network.", + "form_title": "Invite a custodian", + "heading": "Bring in a custodian", + "labels": { + "email": "Their email", + "name": "Their name" + } + }, + "owners": { + "button": "Send invite", + "description": "Bring someone in to work this desk alongside you.", + "form_title": "Invite an owner", + "heading": "Bring in another owner", + "labels": { + "email": "Their email", + "name": "Their name" + } + } + }, + "links": { + "prospect": { + "button": "Add prospect", + "description": "Write down an organization worth following up, and track it from first contact onward.", + "heading": "Track a new organization" + } + }, + "question": "What's waiting on me today?" + }, + "questions/owners/prospect-sent.yaml": { + "back": "Back to site", + "description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.", + "next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.", + "next_heading": "It's on the desk now", + "question": "What happens to this now?" + }, + "questions/owners/prospect.yaml": { + "button": "Add to prospects", + "description": "One line per organization worth watching, moved through the stages as things develop.", + "encouragement": "Takes a minute, and it's yours to update later.", + "form_description": "Name the organization and where things stand.", + "form_title": "New prospect", + "heading": "Keep an organization on your radar", + "hints": { + "contact": "met at the bakers' conference, [email protected]", + "name": "Nordvik Bakery", + "note": "wants a booking flow, follow up after harvest season" + }, + "icon": "briefcase", + "labels": { + "contact": "Contact", + "name": "Organization", + "note": "Note" + }, + "page_description": "Write down an organization worth following up, and move it through client and past client as things develop.", + "question": "Is there an organization I should be keeping track of?", + "road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.", + "road_icon": "route", + "road_title": "Moves as you update it", + "who_description": "Only you see this, so keep it wherever you check next.", + "who_icon": "user", + "who_title": "Just for you" + }, + "questions/received/collaborate.yaml": { + "back": "Back to site", + "description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.", + "next_description": "If it looks like a fit, we'll reach out to talk about where you could help.", + "next_heading": "We'll write if there's a fit", + "question": "What happens to what I just sent?" + }, + "questions/received/commission.yaml": { + "back": "Back to home", + "description": "Your brief is in. An owner reads every commission end to end before replying.", + "next_description": "Expect a reply within a few working days, either way, straight to your inbox.", + "next_heading": "A real reply from someone who read it", + "question": "What happens now that we've sent our brief?" + }, + "questions/received/custody.yaml": { + "back": "Back to the site", + "description": "A custodian reads every message about the redoal network and what it keeps.", + "next_description": "Expect a reply once your report has been looked at and the network checked.", + "next_heading": "A custodian is on it", + "question": "Who looks after what the network keeps?" + }, + "questions/received/propose.yaml": { + "back": "Back home", + "description": "Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.", + "next_description": "We'll write back once it's been read — approved and made live, or turned down with a reason.", + "next_heading": "A read, then a decision", + "question": "What happens to my proposal now?" + }, + "questions/received/subscribe.yaml": { + "back": "Back to site", + "description": "You'll hear from us when there's something worth saying, not on a schedule.", + "next_description": "You're on the list. Every note has an unsubscribe link if it stops being useful.", + "next_heading": "You're on the list", + "question": "What happens now that I've subscribed?" + }, + "questions/received/trial.yaml": { + "back": "Back to site", + "description": "We read every trial request ourselves before anything gets built.", + "next_description": "If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.", + "next_heading": "A first draft, built from your own words", + "question": "What happens now that you've sent this?" + } +} \ No newline at end of file diff --git a/runs/uhhm-2026-09-23/r4/answers-full.jsonl b/runs/uhhm-2026-09-23/r4/answers-full.jsonl new file mode 100644 index 0000000..1ec3812 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/answers-full.jsonl @@ -0,0 +1,15 @@ +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"architecture-firm@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"climbing-gym-founder@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"tech-journalist@/"} +{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"interaction-designer@/"} +{"choice":"Work with us","confidence":0.95,"id":"student-intern@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/"} +{"choice":"Work with us","confidence":0.95,"id":"dance-school@/"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"node-runner@/"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"recorded-name@/"} +{"choice":"Work with us","confidence":0.95,"id":"app-builder@/"} +{"choice":"Suggest a change to this website","confidence":0.95,"id":"wording-fix@/"} +{"choice":"Suggest a change to this website","confidence":0.95,"id":"rewrite@/"} diff --git a/runs/uhhm-2026-09-23/r4/answers-skim.jsonl b/runs/uhhm-2026-09-23/r4/answers-skim.jsonl new file mode 100644 index 0000000..49ba944 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/answers-skim.jsonl @@ -0,0 +1,15 @@ +{"choice":"Work with us","confidence":0.85,"id":"architecture-firm@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"climbing-gym-founder@/"} +{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/"} +{"choice":"What UHHM does","confidence":0.95,"id":"tech-journalist@/"} +{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/"} +{"choice":"Work with us","confidence":0.85,"id":"interaction-designer@/"} +{"choice":"Work with us","confidence":0.95,"id":"student-intern@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/"} +{"choice":"See your own business as a site, before you buy anything","confidence":0.85,"id":"dance-school@/"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"node-runner@/"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"recorded-name@/"} +{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"app-builder@/"} +{"choice":"Hear from us now and then","confidence":0.95,"id":"wording-fix@/"} +{"choice":"Suggest a change to this website","confidence":0.95,"id":"rewrite@/"} diff --git a/runs/uhhm-2026-09-23/r4/rated/rate.json b/runs/uhhm-2026-09-23/r4/rated/rate.json new file mode 100644 index 0000000..3fdf485 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/rated/rate.json @@ -0,0 +1,164 @@ +{ + "collaborate": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 25.81998092513114, + "options": 8, + "overloaded": true, + "page": "/", + "personas": 3, + "required_fields": 3, + "understanding": { + "asked": 3, + "next": 3, + "where": 3, + "which": 3 + } + } + ], + "steps": 1 + }, + "commission": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 26.73015873015873, + "options": 8, + "overloaded": true, + "page": "/", + "personas": 3, + "required_fields": 4, + "understanding": { + "asked": 3, + "next": 3, + "where": 3, + "which": 3 + } + } + ], + "steps": 1 + }, + "custody": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 27.915853336850432, + "options": 8, + "overloaded": true, + "page": "/", + "personas": 3, + "required_fields": 4, + "understanding": { + "asked": 3, + "next": 3, + "where": 3, + "which": 3 + } + } + ], + "steps": 1 + }, + "propose": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 27.536719122556033, + "options": 8, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 3, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "subscribe": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 26.73015873015873, + "options": 8, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 2, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + }, + "trial": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 27.441049146931498, + "options": 8, + "overloaded": true, + "page": "/", + "personas": 2, + "required_fields": 6, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 1 + } +} \ No newline at end of file diff --git a/runs/uhhm-2026-09-23/r4/score.log b/runs/uhhm-2026-09-23/r4/score.log new file mode 100644 index 0000000..74bcc22 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/score.log @@ -0,0 +1,21 @@ +== answer full +== answer skim +== score full +MISROUTE: interaction-designer@/: picked "See your own business as a site, before you buy anything" (0.95), the need is met by ["Work with us"] +MISROUTE: dance-school@/: picked "Work with us" (0.95), the need is met by ["See your own business as a site, before you buy anything"] +MISROUTE: app-builder@/: picked "Work with us" (0.95), the need is met by ["You are on the redoal network: a node, an app, or a recording that concerns you"] +wording: 12/15 routed right (80%) +== score skim +MISROUTE: architecture-firm@/: picked "Work with us" (0.85), the need is met by ["Have us build it: send the brief"] +MISROUTE: tech-journalist@/: picked "What UHHM does" (0.95), the need is met by ["Hear from us now and then"] +MISROUTE: wording-fix@/: picked "Hear from us now and then" (0.95), the need is met by ["Suggest a change to this website"] +wording: 12/15 routed right (80%) +== rate +need LIX which where asked next gutted twin says page load +commission 27 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 8 options, 4 required - SPLIT +trial 27 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 8 options, 6 required - SPLIT +collaborate 26 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 8 options, 3 required - SPLIT +subscribe 27 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 8 options, 2 required - SPLIT +propose 28 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 8 options, 3 required - SPLIT +custody 28 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 8 options, 4 required - SPLIT +== done diff --git a/runs/uhhm-2026-09-23/r4/site/aggregates.yaml b/runs/uhhm-2026-09-23/r4/site/aggregates.yaml new file mode 100644 index 0000000..cccafd2 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/aggregates.yaml @@ -0,0 +1,113 @@ +aggregates: +- bucket: applicants + initial: open + states: + active: + event: onboarded + declined: + event: declined + departed: + event: departed + invited: + event: invited + open: + event: applied + transitions: + active: + - departed + - declined + invited: + - active + - declined + open: + - invited + - declined +- bucket: custody_requests + initial: open + states: + declined: + event: declined + in_dialogue: + event: in_dialogue + open: + event: received + resolved: + event: resolved + transitions: + in_dialogue: + - resolved + - declined + open: + - in_dialogue + - declined +- bucket: development_proposals + initial: open + states: + approved: + event: approved + open: + event: proposed + rejected: + event: rejected + transitions: + open: + - approved + - rejected +- bucket: organizations + initial: prospect + states: + client: + event: became_client + past_client: + event: churned + prospect: + event: identified + transitions: + client: + - past_client + prospect: + - client + - past_client +- bucket: projects + initial: open + states: + accepted: + event: accepted + declined: + event: declined + open: + event: submitted + transitions: + open: + - accepted + - declined +- bucket: subscribers + initial: open + states: + open: + event: subscribed + unsubscribed: + event: unsubscribed + transitions: + open: + - unsubscribed +- attended_by: | + approved -> previewed: the n8n workflow that builds the draft site from an approved intake (docker, rauthy, portal content) and sends the preview link. Until it exists, owners run portal-trainer by hand and press the button. + bucket: trials + initial: open + states: + approved: + event: approved + declined: + event: declined + open: + event: received + previewed: + event: previewed + transitions: + approved: + - previewed + - declined + open: + - approved + - declined diff --git a/runs/uhhm-2026-09-23/r4/site/llm/01-questions_build_index.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/01-questions_build_index.yaml.md new file mode 100644 index 0000000..8517c6a --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/01-questions_build_index.yaml.md @@ -0,0 +1,174 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/build/index.yaml +It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "description": "", + "needs": { + "commission": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "email": "", + "name": "", + "org_contact": "", + "organization": "", + "project": "" + }, + "icon": "", + "labels": { + "email": "", + "name": "", + "org_contact": "", + "organization": "", + "project": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + }, + "trial": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "business": "", + "email": "", + "what_slows_us_down": "", + "what_we_do": "", + "what_we_keep_track_of": "", + "who_comes_to_us": "", + "who_is_involved": "" + }, + "icon": "", + "labels": { + "business": "", + "email": "", + "what_slows_us_down": "", + "what_we_do": "", + "what_we_keep_track_of": "", + "who_comes_to_us": "", + "who_is_involved": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + } + }, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "description": "Have a problem software should solve, or want to see your own way of working as a site before you pay anyone?", + "needs": { + "commission": { + "button": "Send the brief", + "description": "You know the problem and want it solved. Write it up and send it to people who will read the whole thing.", + "encouragement": "Someone here reads every brief in full before writing back.", + "form_description": "The more of the problem you put in, the better the reply.", + "form_title": "Tell us the problem", + "heading": "A considered reply to your brief", + "hints": { + "email": "sara@company.com", + "name": "Sara Nilsen", + "org_contact": "Sara Nilsen, ops manager", + "organization": "Nilsen Transport AS", + "project": "Our drivers log hours on paper and it takes a day to get them into payroll." + }, + "icon": "briefcase", + "labels": { + "email": "Your email", + "name": "Your name", + "org_contact": "Who we should talk to", + "organization": "Your organization", + "project": "The problem you want solved" + }, + "road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "trial": { + "button": "Start the draft", + "description": "See your own requests, approvals and handovers as a working site, before you commit to anything.", + "encouragement": "A person looks at what you send before anything gets built.", + "form_description": "Answer in your own words - there's no wrong way to describe your business.", + "form_title": "Describe your business", + "heading": "A first draft of your own site", + "hints": { + "business": "Nilsen Transport AS", + "email": "sara@company.com", + "what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.", + "what_we_do": "We move freight for local businesses and handle the paperwork for them.", + "what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.", + "who_comes_to_us": "Local businesses that need something moved on short notice.", + "who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery." + }, + "icon": "layers", + "labels": { + "business": "Your business", + "email": "Your email", + "what_slows_us_down": "What slows you down", + "what_we_do": "What you do", + "what_we_keep_track_of": "What you keep track of", + "who_comes_to_us": "Who comes to you", + "who_is_involved": "Who's involved" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + } + }, + "question": "Do you already know the problem, or do you want to see your own business as a site first?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/02-questions_custodians_index.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/02-questions_custodians_index.yaml.md new file mode 100644 index 0000000..c9aeeb9 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/02-questions_custodians_index.yaml.md @@ -0,0 +1,108 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/custodians/index.yaml +It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open. Under `invites`, each entry is a form that invites a person into that group - they get an account and a one-time link - and `invited` is the list of invites sent. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "buckets": { + "custody_requests": { + "description": "", + "heading": "", + "moves": { + "in_dialogue->declined": "declined>", + "in_dialogue->resolved": "resolved>", + "open->declined": "declined>", + "open->in_dialogue": "in_dialogue>" + } + } + }, + "confirm": "", + "description": "", + "invited": { + "description": "", + "done": "", + "heading": "" + }, + "invites": { + "custodians": { + "button": "", + "description": "", + "form_title": "", + "heading": "", + "labels": { + "email": "", + "name": "" + } + } + }, + "links": {}, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "buckets": { + "custody_requests": { + "description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.", + "heading": "Custody cases waiting on you", + "moves": { + "in_dialogue->declined": "Close, no action", + "in_dialogue->resolved": "Mark resolved", + "open->declined": "Decline case", + "open->in_dialogue": "Open dialogue" + } + } + }, + "confirm": "Send invite", + "description": "The desk for custodians: open custody cases, and the people invited to answer them.", + "invited": { + "description": "Custodians invited but not yet signed in.", + "done": "Signed in", + "heading": "Invited custodians" + }, + "invites": { + "custodians": { + "button": "Invite custodian", + "description": "Give someone an account and a one-time link to join as a custodian.", + "form_title": "Invite a custodian", + "heading": "Bring in another custodian", + "labels": { + "email": "Email", + "name": "Name" + } + } + }, + "links": {}, + "question": "What does the network owe the people it affects, right now?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/03-questions_decide_subscribe.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/03-questions_decide_subscribe.yaml.md new file mode 100644 index 0000000..729c7c0 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/03-questions_decide_subscribe.yaml.md @@ -0,0 +1,60 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/decide/subscribe.yaml +It is a page the person who sent a form reaches later, through a private link, to make a decision that is theirs: under `moves`, each entry is one thing they can decide. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "description": "", + "moves": { + "unsubscribed": { + "button": "", + "description": "", + "heading": "" + } + }, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "description": "You're on our list. Change your mind whenever you like.", + "moves": { + "unsubscribed": { + "button": "Unsubscribe", + "description": "You'll stop hearing from us. Nothing else changes.", + "heading": "Stop getting notes from us" + } + }, + "question": "Do you want to keep hearing from us?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/04-questions_index.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/04-questions_index.yaml.md new file mode 100644 index 0000000..e11b912 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/04-questions_index.yaml.md @@ -0,0 +1,136 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/index.yaml +It is the front door: the first page any visitor sees. `question` is the page's one question. Under `doors`, each entry is one alternative that leads to a page of its own for one kind of visitor: its heading must let that visitor recognise themselves from the heading alone. Under `needs`, each entry is one alternative with a form behind it. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "description": "", + "doors": { + "build": { + "button": "", + "description": "", + "for_whom": "", + "heading": "", + "icon": "" + }, + "join": { + "button": "", + "description": "", + "for_whom": "", + "heading": "", + "icon": "" + } + }, + "needs": { + "custody": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "about": "", + "email": "", + "name": "", + "what": "" + }, + "icon": "", + "labels": { + "about": "", + "email": "", + "name": "", + "what": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + } + }, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.", + "doors": { + "build": { + "button": "Start here", + "description": "Send us the problem, or try your own workflow as a working site before you pay for anything.", + "for_whom": "For an organisation with a problem, or a business sizing us up", + "heading": "Get software built around your problem", + "icon": "hammer" + }, + "join": { + "button": "Start here", + "description": "Build with us, hear from us now and then, or tell us what should change on this page.", + "for_whom": "For anyone who wants in, on their own terms", + "heading": "Work with us, or just stay in touch", + "icon": "handshake" + } + }, + "needs": { + "custody": { + "button": "Send to a custodian", + "description": "For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.", + "encouragement": "A custodian reads every message that comes in here.", + "form_description": "Tell us what the network is doing, or not doing, and how we can reach you.", + "form_title": "Reach a custodian", + "heading": "Get an answer from the people who keep the network", + "hints": { + "about": "We run our order system on a relay node and it's been dropping messages since Tuesday", + "email": "you@yourcompany.com", + "name": "Your name", + "what": "A relay node is misbehaving" + }, + "icon": "shield", + "labels": { + "about": "What's going on", + "email": "Email", + "name": "Name", + "what": "In short" + }, + "road_description": "We open it and start a dialogue with you. Once we understand what the network is keeping that it shouldn't, we work it through to resolved, or tell you plainly if we can't.", + "road_icon": "route", + "road_title": "What happens next", + "who_title": "Who reads this", + "who_icon": "user-check", + "who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime." + } + }, + "question": "What brings you here?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/05-questions_join_index.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/05-questions_join_index.yaml.md new file mode 100644 index 0000000..493c581 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/05-questions_join_index.yaml.md @@ -0,0 +1,208 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/join/index.yaml +It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "description": "", + "needs": { + "collaborate": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "email": "", + "interest": "", + "name": "", + "note": "" + }, + "icon": "", + "labels": { + "email": "", + "interest": "", + "name": "", + "note": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + }, + "propose": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "email": "", + "page": "", + "proposed_yaml": "", + "rationale": "", + "submitted_by": "" + }, + "icon": "", + "labels": { + "email": "", + "page": "", + "proposed_yaml": "", + "rationale": "", + "submitted_by": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + }, + "subscribe": { + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "email": "", + "name": "" + }, + "icon": "", + "labels": { + "email": "", + "name": "" + }, + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" + } + }, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "description": "Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.", + "needs": { + "collaborate": { + "button": "Get in touch", + "description": "You want to build software with people who read the whole brief, not just the summary.", + "encouragement": "A person reads this, not a form filter — worth the ten minutes.", + "form_description": "Tell us who you are and what kind of work you're after.", + "form_title": "Say hello", + "heading": "Work with people who read the whole thing", + "hints": { + "email": "you@example.com", + "interest": "Backend work, or something design-heavy", + "name": "Your name", + "note": "A bit about what you'd want to work on, or a link to your work" + }, + "icon": "handshake", + "labels": { + "email": "Email", + "interest": "What kind of work", + "name": "Name", + "note": "Tell us more" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "propose": { + "button": "Send change", + "description": "You've spotted something on this site that should read differently, and you know roughly how.", + "encouragement": "Even a rough version helps — we can tidy the wording ourselves.", + "form_description": "Point us to the page and show us the change.", + "form_title": "Propose a change", + "heading": "Get a page fixed the way you'd write it", + "hints": { + "email": "you@example.com", + "page": "questions/join/index.yaml", + "proposed_yaml": "heading: \"A clearer way to say this\"", + "rationale": "The current heading doesn't say what you actually get", + "submitted_by": "Your name" + }, + "icon": "pencil", + "labels": { + "email": "Email", + "page": "Which page", + "proposed_yaml": "Your proposed text", + "rationale": "Why this is better", + "submitted_by": "Your name" + }, + "road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "subscribe": { + "button": "Sign up", + "description": "You'd rather hear from us now and then than check back on your own.", + "encouragement": "One click unsubscribes you later, no questions asked.", + "form_description": "Just your email, or your name too if you'd like.", + "form_title": "Stay in the loop", + "heading": "Hear from us only when there's something to say", + "hints": { + "email": "you@example.com", + "name": "Your name" + }, + "icon": "mail", + "labels": { + "email": "Email", + "name": "Name" + }, + "road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.", + "road_icon": "bell", + "road_title": "What happens next", + "who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.", + "who_icon": "user-check", + "who_title": "Who reads this" + } + }, + "question": "How do you want to be part of this?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/06-questions_owners_index.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/06-questions_owners_index.yaml.md new file mode 100644 index 0000000..56e3fe7 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/06-questions_owners_index.yaml.md @@ -0,0 +1,236 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/owners/index.yaml +It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open. Under `invites`, each entry is a form that invites a person into that group - they get an account and a one-time link - and `invited` is the list of invites sent. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "buckets": { + "applicants": { + "description": "", + "heading": "", + "moves": { + "active->declined": "declined>", + "active->departed": "departed>", + "invited->active": "active>", + "invited->declined": "declined>", + "open->declined": "declined>", + "open->invited": "invited>" + } + }, + "custody_requests": { + "description": "", + "heading": "", + "moves": {} + }, + "development_proposals": { + "description": "", + "heading": "", + "moves": { + "open->approved": "approved>", + "open->rejected": "rejected>" + } + }, + "organizations": { + "description": "", + "heading": "", + "moves": { + "client->past_client": "past_client>", + "prospect->client": "client>", + "prospect->past_client": "past_client>" + } + }, + "projects": { + "description": "", + "heading": "", + "moves": { + "open->accepted": "accepted>", + "open->declined": "declined>" + } + }, + "subscribers": { + "description": "", + "heading": "", + "moves": { + "open->unsubscribed": "unsubscribed>" + } + }, + "trials": { + "description": "", + "heading": "", + "moves": { + "approved->declined": "declined>", + "approved->previewed": "previewed>", + "open->approved": "approved>", + "open->declined": "declined>" + } + } + }, + "confirm": "", + "description": "", + "invited": { + "description": "", + "done": "", + "heading": "" + }, + "invites": { + "custodians": { + "button": "", + "description": "", + "form_title": "", + "heading": "", + "labels": { + "email": "", + "name": "" + } + }, + "owners": { + "button": "", + "description": "", + "form_title": "", + "heading": "", + "labels": { + "email": "", + "name": "" + } + } + }, + "links": { + "prospect": { + "button": "", + "description": "", + "heading": "" + } + }, + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +{ + "buckets": { + "applicants": { + "description": "People who've asked to build with us, waiting on a decision or already working alongside us.", + "heading": "People who want to build with us", + "moves": { + "active->declined": "End collaboration", + "active->departed": "Mark departed", + "invited->active": "Confirm active", + "invited->declined": "Withdraw invite", + "open->declined": "Decline applicant", + "open->invited": "Send invite" + } + }, + "custody_requests": { + "description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.", + "heading": "What's been raised with custodians", + "moves": {} + }, + "development_proposals": { + "description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.", + "heading": "Proposed changes to the site", + "moves": { + "open->approved": "Approve change", + "open->rejected": "Reject change" + } + }, + "organizations": { + "description": "Organizations you've met, tracked from first contact through to client and beyond.", + "heading": "Organizations you're tracking", + "moves": { + "client->past_client": "Mark past client", + "prospect->client": "Mark as client", + "prospect->past_client": "Mark not pursued" + } + }, + "projects": { + "description": "Briefs sent in by organizations with a problem they want solved.", + "heading": "Briefs waiting on a reply", + "moves": { + "open->accepted": "Accept brief", + "open->declined": "Decline brief" + } + }, + "subscribers": { + "description": "People who want to hear from you now and then.", + "heading": "Who's hearing from you", + "moves": { + "open->unsubscribed": "Unsubscribe them" + } + }, + "trials": { + "description": "Businesses who want to see their own workflow as a working site before committing to anything.", + "heading": "Trial sites in progress", + "moves": { + "approved->declined": "Decline trial", + "approved->previewed": "Mark previewed", + "open->approved": "Approve trial", + "open->declined": "Decline trial" + } + } + }, + "confirm": "Confirm", + "description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.", + "invited": { + "description": "People you've invited in, and whether they've taken it up yet.", + "done": "Taken up", + "heading": "Invites you've sent" + }, + "invites": { + "custodians": { + "button": "Send invite", + "description": "Bring someone in to help keep the first node and answer for the network.", + "form_title": "Invite a custodian", + "heading": "Bring in a custodian", + "labels": { + "email": "Their email", + "name": "Their name" + } + }, + "owners": { + "button": "Send invite", + "description": "Bring someone in to work this desk alongside you.", + "form_title": "Invite an owner", + "heading": "Bring in another owner", + "labels": { + "email": "Their email", + "name": "Their name" + } + } + }, + "links": { + "prospect": { + "button": "Add prospect", + "description": "Write down an organization worth following up, and track it from first contact onward.", + "heading": "Track a new organization" + } + }, + "question": "What's waiting on me today?" +} diff --git a/runs/uhhm-2026-09-23/r4/site/llm/07-questions_owners_prospect-sent.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/07-questions_owners_prospect-sent.yaml.md new file mode 100644 index 0000000..2bc4507 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/07-questions_owners_prospect-sent.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/owners/prospect-sent.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to site", + "description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.", + "next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.", + "next_heading": "It's on the desk now", + "question": "What happens to this now?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/08-questions_owners_prospect.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/08-questions_owners_prospect.yaml.md new file mode 100644 index 0000000..290d1f2 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/08-questions_owners_prospect.yaml.md @@ -0,0 +1,92 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/owners/prospect.yaml +It is a page only one role inside the business can open, holding one form. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "button": "", + "description": "", + "encouragement": "", + "form_description": "", + "form_title": "", + "heading": "", + "hints": { + "contact": "", + "name": "", + "note": "" + }, + "icon": "", + "labels": { + "contact": "", + "name": "", + "note": "" + }, + "page_description": "", + "question": "", + "road_description": "", + "road_icon": "", + "road_title": "", + "who_description": "", + "who_icon": "", + "who_title": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "button": "Add to prospects", + "description": "One line per organization worth watching, moved through the stages as things develop.", + "encouragement": "Takes a minute, and it's yours to update later.", + "form_description": "Name the organization and where things stand.", + "form_title": "New prospect", + "heading": "Keep an organization on your radar", + "hints": { + "contact": "met at the bakers' conference, [email protected]", + "name": "Nordvik Bakery", + "note": "wants a booking flow, follow up after harvest season" + }, + "icon": "briefcase", + "labels": { + "contact": "Contact", + "name": "Organization", + "note": "Note" + }, + "page_description": "Write down an organization worth following up, and move it through client and past client as things develop.", + "question": "Is there an organization I should be keeping track of?", + "road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.", + "road_icon": "route", + "road_title": "Moves as you update it", + "who_description": "Only you see this, so keep it wherever you check next.", + "who_icon": "user", + "who_title": "Just for you" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/09-questions_received_collaborate.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/09-questions_received_collaborate.yaml.md new file mode 100644 index 0000000..6f83c69 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/09-questions_received_collaborate.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/collaborate.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to site", + "description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.", + "next_description": "If it looks like a fit, we'll reach out to talk about where you could help.", + "next_heading": "We'll write if there's a fit", + "question": "What happens to what I just sent?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/10-questions_received_commission.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/10-questions_received_commission.yaml.md new file mode 100644 index 0000000..225f61e --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/10-questions_received_commission.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/commission.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to home", + "description": "Your brief is in. An owner reads every commission end to end before replying.", + "next_description": "Expect a reply within a few working days, either way, straight to your inbox.", + "next_heading": "A real reply from someone who read it", + "question": "What happens now that we've sent our brief?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/11-questions_received_custody.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/11-questions_received_custody.yaml.md new file mode 100644 index 0000000..ee326dc --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/11-questions_received_custody.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/custody.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to the site", + "description": "A custodian reads every message about the redoal network and what it keeps.", + "next_description": "Expect a reply once your report has been looked at and the network checked.", + "next_heading": "A custodian is on it", + "question": "Who looks after what the network keeps?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/12-questions_received_propose.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/12-questions_received_propose.yaml.md new file mode 100644 index 0000000..1ddaf45 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/12-questions_received_propose.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/propose.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back home", + "description": "Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.", + "next_description": "We'll write back once it's been read — approved and made live, or turned down with a reason.", + "next_heading": "A read, then a decision", + "question": "What happens to my proposal now?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/13-questions_received_subscribe.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/13-questions_received_subscribe.yaml.md new file mode 100644 index 0000000..2760f6f --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/13-questions_received_subscribe.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/subscribe.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to site", + "description": "You'll hear from us when there's something worth saying, not on a schedule.", + "next_description": "You're on the list. Every note has an unsubscribe link if it stops being useful.", + "next_heading": "You're on the list", + "question": "What happens now that I've subscribed?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/llm/14-questions_received_trial.yaml.md b/runs/uhhm-2026-09-23/r4/site/llm/14-questions_received_trial.yaml.md new file mode 100644 index 0000000..062e729 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/llm/14-questions_received_trial.yaml.md @@ -0,0 +1,52 @@ +You write the words for one page of a website for this business. + +Business: UHHM +About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps. +Contact: Bendik Aagaard Lynghaug +Language to write in: en + +Everyone the site serves: +- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial +- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose +- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. +- trial: 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. Handled by owners. Stages: open -> approved -> previewed -> declined. +- collaborate: 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. Handled by owners. Stages: open -> invited -> active -> departed -> declined. +- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. +- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. +- custody: 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. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. +- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. + +The page: questions/received/trial.yaml +It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next. + +Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer. + +Rules for the words: +- `question` is a question the reader could ask themselves. +- A heading says what the reader gets, in the reader's own words, and must work without its description. +- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use. +- Descriptions are one or two short sentences. Labels and buttons are a few words. +- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words. +- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale +- Write the way people in this trade and country actually speak. + +{ + "back": "", + "description": "", + "next_description": "", + "next_heading": "", + "question": "" +} + +Reply with the JSON object only. + +=== REPLY === +```json +{ + "back": "Back to site", + "description": "We read every trial request ourselves before anything gets built.", + "next_description": "If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.", + "next_heading": "A first draft, built from your own words", + "question": "What happens now that you've sent this?" +} +``` diff --git a/runs/uhhm-2026-09-23/r4/site/needs.yaml b/runs/uhhm-2026-09-23/r4/site/needs.yaml new file mode 100644 index 0000000..4c8e7d3 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/needs.yaml @@ -0,0 +1,173 @@ +needs: +- done_when: + - accepted + - declined + enters: / + handled_by: owners + id: commission + lands_in: projects + max_fields: 4 + max_steps: 1 + stages: + - open + - accepted + - declined + success: + - accepted + 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: + - previewed + - declined + enters: / + handled_by: owners + id: trial + lands_in: trials + max_fields: 6 + max_steps: 1 + stages: + - open + - approved + - previewed + - declined + success: + - previewed + 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: + - departed + - declined + enters: / + handled_by: owners + id: collaborate + lands_in: applicants + max_fields: 3 + max_steps: 1 + stages: + - open + - invited + - active + - departed + - declined + success: + - departed + 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: + - unsubscribed + enters: / + handled_by: owners + id: subscribe + lands_in: subscribers + max_fields: 2 + max_steps: 1 + stages: + - open + - unsubscribed + success: [] + 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: + - approved + - rejected + enters: / + handled_by: owners + id: propose + lands_in: development_proposals + max_fields: 3 + max_steps: 1 + stages: + - open + - approved + - rejected + success: + - approved + 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: + - resolved + - declined + enters: / + handled_by: custodians + id: custody + lands_in: custody_requests + max_fields: 4 + max_steps: 1 + stages: + - open + - in_dialogue + - resolved + - declined + success: + - resolved + via: 'You are on the redoal network: a node, an app, or a recording that concerns you' + wants: an answer from a custodian, and action where the network keeps something it should not + who: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node +- done_when: + - past_client + enters: /owners/prospect + enters_as: owners + handled_by: owners + id: prospect + lands_in: organizations + max_fields: 2 + max_steps: 1 + stages: + - prospect + - client + - past_client + success: [] + via: Keep an organization on your radar + wants: it written down and walked through its states from the desk + who: an owner who has met an organization worth following up +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? diff --git a/runs/uhhm-2026-09-23/r4/site/questions/custodians/_section.yaml b/runs/uhhm-2026-09-23/r4/site/questions/custodians/_section.yaml new file mode 100644 index 0000000..de40ef5 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/custodians/_section.yaml @@ -0,0 +1 @@ +qualifies: custodians diff --git a/runs/uhhm-2026-09-23/r4/site/questions/custodians/index.yaml b/runs/uhhm-2026-09-23/r4/site/questions/custodians/index.yaml new file mode 100644 index 0000000..6a0b293 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/custodians/index.yaml @@ -0,0 +1,65 @@ +alternatives: +- action: /custodians + consequence: + - Confirm + description: Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it. + features: + - description: '' + name: '' + resource: + requires_group: custodians + source: + bucket: custody_requests + kind: kv + transitions: + - from: in_dialogue + label: Mark resolved + to: resolved + - from: in_dialogue + label: Close, no action + to: declined + - from: open + label: Open dialogue + to: in_dialogue + - from: open + label: Decline case + to: declined + name: Custody cases waiting on you +- action: /custodians + consequence: + - Invite custodian + description: Give someone an account and a one-time link to join as a custodian. + features: + - description: '' + name: Invite a custodian + requirements: + - label: Name + name: name + - label: Email + name: email + type: email + invite: + group: custodians + name: Bring in another custodian +- action: /custodians + consequence: + - Confirm + description: Custodians invited but not yet signed in. + features: + - description: '' + name: '' + resource: + requires_group: custodians + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Signed in + to: done + name: Invited custodians +description: 'The desk for custodians: open custody cases, and the people invited to answer them.' +name: What is waiting on the custodians? +responsible: + contact: bl@uhhm.no + name: Bendik Aagaard Lynghaug diff --git a/runs/uhhm-2026-09-23/r4/site/questions/decide/subscribe.yaml b/runs/uhhm-2026-09-23/r4/site/questions/decide/subscribe.yaml new file mode 100644 index 0000000..45114ca --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/decide/subscribe.yaml @@ -0,0 +1,9 @@ +alternatives: +- description: You'll stop hearing from us. Nothing else changes. + name: Stop getting notes from us + self_transition: + bucket: subscribers + label: Unsubscribe + to: unsubscribed +description: You're on our list. Change your mind whenever you like. +name: Do you want to keep hearing from us? diff --git a/runs/uhhm-2026-09-23/r4/site/questions/index.yaml b/runs/uhhm-2026-09-23/r4/site/questions/index.yaml new file mode 100644 index 0000000..6ab11ed --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/index.yaml @@ -0,0 +1,270 @@ +alternatives: +- description: Two things, both built here and both running. + features: + - description: The gesture math, the relay, the first node, and the portal this page runs on. UHHM answers for what that network keeps. + name: The redoal network, built and carried here + - 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. + icon: lucide:layers + name: Software built around a clear 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: 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: + - 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 +- 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 +- action: /received/custody + consequence: + - Send to a custodian + 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. + encouragements: + - A custodian reads every message that comes in here. + features: + - description: A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided. + icon: lucide:route + name: What happens next + - description: A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime. + icon: lucide:user-check + name: Who reads this + - description: Say which of the four it is, and what you need, in a few lines. + icon: lucide:shield + name: Reach a custodian + requirements: + - label: Name + name: name + placeholder: Your name + type: text + - label: Email + name: email + placeholder: you@yourcompany.com + type: email + - label: What's going on + name: about + options: + - Running a node of my own + - Building on the network + - Something the network keeps about me + - Something else + type: select + - label: In short + name: what + placeholder: A relay node is misbehaving + type: textarea + 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: What is UHHM, and what can you get here? +responsible: + contact: bl@uhhm.no + name: Bendik Aagaard Lynghaug diff --git a/runs/uhhm-2026-09-23/r4/site/questions/owners/_section.yaml b/runs/uhhm-2026-09-23/r4/site/questions/owners/_section.yaml new file mode 100644 index 0000000..670fca7 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/owners/_section.yaml @@ -0,0 +1 @@ +qualifies: owners diff --git a/runs/uhhm-2026-09-23/r4/site/questions/owners/index.yaml b/runs/uhhm-2026-09-23/r4/site/questions/owners/index.yaml new file mode 100644 index 0000000..a59e0b0 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/owners/index.yaml @@ -0,0 +1,212 @@ +alternatives: +- action: /owners + consequence: + - Confirm + description: People who've asked to build with us, waiting on a decision or already working alongside us. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: applicants + kind: kv + transitions: + - from: active + label: Mark departed + to: departed + - from: active + label: End collaboration + to: declined + - from: invited + label: Confirm active + to: active + - from: invited + label: Withdraw invite + to: declined + - from: open + label: Send invite + to: invited + - from: open + label: Decline applicant + to: declined + name: People who want to build with us +- action: /owners + consequence: + - Confirm + description: Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: custody_requests + kind: kv + transitions: [] + name: What's been raised with custodians +- action: /owners + consequence: + - Confirm + description: Changes visitors have proposed for pages on this site, waiting on a yes or no. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: development_proposals + kind: kv + transitions: + - from: open + label: Approve change + to: approved + - from: open + label: Reject change + to: rejected + name: Proposed changes to the site +- action: /owners + consequence: + - Confirm + description: Organizations you've met, tracked from first contact through to client and beyond. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: organizations + kind: kv + transitions: + - from: client + label: Mark past client + to: past_client + - from: prospect + label: Mark as client + to: client + - from: prospect + label: Mark not pursued + to: past_client + name: Organizations you're tracking +- action: /owners + consequence: + - Confirm + description: Briefs sent in by organizations with a problem they want solved. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: projects + kind: kv + transitions: + - from: open + label: Accept brief + to: accepted + - from: open + label: Decline brief + to: declined + name: Briefs waiting on a reply +- action: /owners + consequence: + - Confirm + description: People who want to hear from you now and then. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: subscribers + kind: kv + transitions: + - from: open + label: Unsubscribe them + to: unsubscribed + name: Who's hearing from you +- action: /owners + consequence: + - Confirm + description: Businesses who want to see their own workflow as a working site before committing to anything. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: trials + kind: kv + transitions: + - from: approved + label: Mark previewed + to: previewed + - from: approved + label: Decline trial + to: declined + - from: open + label: Approve trial + to: approved + - from: open + label: Decline trial + to: declined + name: Trial sites in progress +- action: /owners/prospect + consequence: + - Add prospect + description: Write down an organization worth following up, and track it from first contact onward. + name: Track a new organization +- action: /owners + consequence: + - Send invite + description: Bring someone in to help keep the first node and answer for the network. + features: + - description: '' + name: Invite a custodian + requirements: + - label: Their name + name: name + - label: Their email + name: email + type: email + invite: + group: custodians + name: Bring in a custodian +- action: /owners + consequence: + - Send invite + description: Bring someone in to work this desk alongside you. + features: + - description: '' + name: Invite an owner + requirements: + - label: Their name + name: name + - label: Their email + name: email + type: email + invite: + group: owners + name: Bring in another owner +- action: /owners + consequence: + - Confirm + description: People you've invited in, and whether they've taken it up yet. + features: + - description: '' + name: '' + resource: + requires_group: owners + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Taken up + to: done + name: Invites you've sent +description: 'Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.' +name: What's waiting on me today? +responsible: + contact: bl@uhhm.no + name: Bendik Aagaard Lynghaug diff --git a/runs/uhhm-2026-09-23/r4/site/questions/owners/prospect-sent.yaml b/runs/uhhm-2026-09-23/r4/site/questions/owners/prospect-sent.yaml new file mode 100644 index 0000000..d49a1d4 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/owners/prospect-sent.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: An owner walks it from prospect to client, and on to past client, as the relationship moves. + name: It's on the desk now +- action: /owners + consequence: + - Back to site + description: '' + name: Back to site +description: Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking. +name: What happens to this now? diff --git a/runs/uhhm-2026-09-23/r4/site/questions/owners/prospect.yaml b/runs/uhhm-2026-09-23/r4/site/questions/owners/prospect.yaml new file mode 100644 index 0000000..581bd11 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/owners/prospect.yaml @@ -0,0 +1,39 @@ +alternatives: +- action: /owners/prospect-sent + consequence: + - Add to prospects + description: One line per organization worth watching, moved through the stages as things develop. + encouragements: + - Takes a minute, and it's yours to update later. + features: + - description: It sits as a prospect until something moves - then you mark it client, and later past client if the work ends. + icon: lucide:route + name: Moves as you update it + - description: Only you see this, so keep it wherever you check next. + icon: lucide:user + name: Just for you + - description: Name the organization and where things stand. + icon: lucide:briefcase + name: New prospect + requirements: + - label: Organization + name: name + placeholder: Nordvik Bakery + type: text + - label: Contact + name: contact + placeholder: met at the bakers' conference, [email protected] + type: text + - label: Note + name: note + optional: true + placeholder: wants a booking flow, follow up after harvest season + type: textarea + name: Keep an organization on your radar + record_as: organizations +description: Write down an organization worth following up, and move it through client and past client as things develop. +followup: false +name: Is there an organization I should be keeping track of? +responsible: + contact: bl@uhhm.no + name: Bendik Aagaard Lynghaug diff --git a/runs/uhhm-2026-09-23/r4/site/questions/received/collaborate.yaml b/runs/uhhm-2026-09-23/r4/site/questions/received/collaborate.yaml new file mode 100644 index 0000000..c612fe8 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/received/collaborate.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: If it looks like a fit, we'll reach out to talk about where you could help. + name: We'll write if there's a fit +- action: / + consequence: + - Back to site + description: '' + name: Back to site +description: Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring. +name: What happens to what I just sent? diff --git a/runs/uhhm-2026-09-23/r4/site/questions/received/commission.yaml b/runs/uhhm-2026-09-23/r4/site/questions/received/commission.yaml new file mode 100644 index 0000000..59e77bc --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/received/commission.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Expect a reply within a few working days, either way, straight to your inbox. + name: A real reply from someone who read it +- action: / + consequence: + - Back to home + description: '' + name: Back to home +description: Your brief is in. An owner reads every commission end to end before replying. +name: What happens now that we've sent our brief? diff --git a/runs/uhhm-2026-09-23/r4/site/questions/received/custody.yaml b/runs/uhhm-2026-09-23/r4/site/questions/received/custody.yaml new file mode 100644 index 0000000..150966f --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/received/custody.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Expect a reply once your report has been looked at and the network checked. + name: A custodian is on it +- action: / + consequence: + - Back to the site + description: '' + name: Back to the site +description: A custodian reads every message about the redoal network and what it keeps. +name: Who looks after what the network keeps? diff --git a/runs/uhhm-2026-09-23/r4/site/questions/received/propose.yaml b/runs/uhhm-2026-09-23/r4/site/questions/received/propose.yaml new file mode 100644 index 0000000..1ae02a9 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/received/propose.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: We'll write back once it's been read — approved and made live, or turned down with a reason. + name: A read, then a decision +- action: / + consequence: + - Back home + description: '' + name: Back home +description: Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page. +name: What happens to my proposal now? diff --git a/runs/uhhm-2026-09-23/r4/site/questions/received/subscribe.yaml b/runs/uhhm-2026-09-23/r4/site/questions/received/subscribe.yaml new file mode 100644 index 0000000..c2910bb --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/received/subscribe.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: You're on the list. Every note has an unsubscribe link if it stops being useful. + name: You're on the list +- action: / + consequence: + - Back to site + description: '' + name: Back to site +description: You'll hear from us when there's something worth saying, not on a schedule. +name: What happens now that I've subscribed? diff --git a/runs/uhhm-2026-09-23/r4/site/questions/received/trial.yaml b/runs/uhhm-2026-09-23/r4/site/questions/received/trial.yaml new file mode 100644 index 0000000..586bcd3 --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/questions/received/trial.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live. + name: A first draft, built from your own words +- action: / + consequence: + - Back to site + description: '' + name: Back to site +description: We read every trial request ourselves before anything gets built. +name: What happens now that you've sent this? diff --git a/runs/uhhm-2026-09-23/r4/site/site.yaml b/runs/uhhm-2026-09-23/r4/site/site.yaml new file mode 100644 index 0000000..aa5de2a --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/site.yaml @@ -0,0 +1,2 @@ +lang: en +title: UHHM diff --git a/runs/uhhm-2026-09-23/r4/site/words.json b/runs/uhhm-2026-09-23/r4/site/words.json new file mode 100644 index 0000000..71ffe6d --- /dev/null +++ b/runs/uhhm-2026-09-23/r4/site/words.json @@ -0,0 +1,431 @@ +{ + "questions/custodians/index.yaml": { + "buckets": { + "custody_requests": { + "description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.", + "heading": "Custody cases waiting on you", + "moves": { + "in_dialogue->declined": "Close, no action", + "in_dialogue->resolved": "Mark resolved", + "open->declined": "Decline case", + "open->in_dialogue": "Open dialogue" + } + } + }, + "confirm": "Confirm", + "description": "The desk for custodians: open custody cases, and the people invited to answer them.", + "invited": { + "description": "Custodians invited but not yet signed in.", + "done": "Signed in", + "heading": "Invited custodians" + }, + "invites": { + "custodians": { + "button": "Invite custodian", + "description": "Give someone an account and a one-time link to join as a custodian.", + "form_title": "Invite a custodian", + "heading": "Bring in another custodian", + "labels": { + "email": "Email", + "name": "Name" + } + } + }, + "links": {}, + "question": "What is waiting on the custodians?" + }, + "questions/decide/subscribe.yaml": { + "description": "You're on our list. Change your mind whenever you like.", + "moves": { + "unsubscribed": { + "button": "Unsubscribe", + "description": "You'll stop hearing from us. Nothing else changes.", + "heading": "Stop getting notes from us" + } + }, + "question": "Do you want to keep hearing from us?" + }, + "questions/index.yaml": { + "description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.", + "doors": {}, + "needs": { + "collaborate": { + "button": "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.", + "encouragement": "A person reads this, not a form filter — worth the ten minutes.", + "form_description": "Tell us who you are and what kind of work you're after.", + "form_title": "Say hello", + "heading": "Work with us", + "hints": { + "email": "you@example.com", + "interest": "Backend work, or something design-heavy", + "name": "Your name", + "note": "A bit about what you'd want to work on, or a link to your work" + }, + "icon": "handshake", + "labels": { + "email": "Email", + "interest": "What kind of work", + "name": "Name", + "note": "Tell us more" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "commission": { + "button": "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.", + "encouragement": "Someone here reads every brief in full before writing back.", + "form_description": "The more of the problem you put in, the better the reply.", + "form_title": "Tell us the problem", + "heading": "Have us build it: send the brief", + "hints": { + "email": "sara@company.com", + "name": "Sara Nilsen", + "org_contact": "Sara Nilsen, ops manager", + "organization": "Nilsen Transport AS", + "project": "Our drivers log hours on paper and it takes a day to get them into payroll." + }, + "icon": "briefcase", + "labels": { + "email": "Your email", + "name": "Your name", + "org_contact": "Who we should talk to", + "organization": "Your organization", + "project": "The problem you want solved" + }, + "road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "custody": { + "button": "Send to a custodian", + "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.", + "encouragement": "A custodian reads every message that comes in here.", + "form_description": "Say which of the four it is, and what you need, in a few lines.", + "form_title": "Reach a custodian", + "heading": "You are on the redoal network: a node, an app, or a recording that concerns you", + "hints": { + "about": "We run our order system on a relay node and it's been dropping messages since Tuesday", + "email": "you@yourcompany.com", + "name": "Your name", + "what": "A relay node is misbehaving" + }, + "icon": "shield", + "labels": { + "about": "What's going on", + "email": "Email", + "name": "Name", + "what": "In short" + }, + "road_description": "A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "propose": { + "button": "Send change", + "description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how.", + "encouragement": "Even a rough version helps — we can tidy the wording ourselves.", + "form_description": "Point us to the page and show us the change.", + "form_title": "Propose a change", + "heading": "Suggest a change to this website", + "hints": { + "email": "you@example.com", + "page": "questions/join/index.yaml", + "proposed_yaml": "heading: \"A clearer way to say this\"", + "rationale": "The current heading doesn't say what you actually get", + "submitted_by": "Your name" + }, + "icon": "pencil", + "labels": { + "email": "Email", + "page": "Which page", + "proposed_yaml": "Your proposed text", + "rationale": "Why this is better", + "submitted_by": "Your name" + }, + "road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "subscribe": { + "button": "Sign up", + "description": "You'd rather hear from us now and then than check back on your own.", + "encouragement": "One click unsubscribes you later, no questions asked.", + "form_description": "Just your email, or your name too if you'd like.", + "form_title": "Stay in the loop", + "heading": "Hear from us now and then", + "hints": { + "email": "you@example.com", + "name": "Your name" + }, + "icon": "mail", + "labels": { + "email": "Email", + "name": "Name" + }, + "road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.", + "road_icon": "bell", + "road_title": "What happens next", + "who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "trial": { + "button": "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.", + "encouragement": "A person looks at what you send before anything gets built.", + "form_description": "Answer in your own words - there's no wrong way to describe your business.", + "form_title": "Describe your business", + "heading": "See your own business as a site, before you buy anything", + "hints": { + "business": "Nilsen Transport AS", + "email": "sara@company.com", + "what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.", + "what_we_do": "We move freight for local businesses and handle the paperwork for them.", + "what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.", + "who_comes_to_us": "Local businesses that need something moved on short notice.", + "who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery." + }, + "icon": "layers", + "labels": { + "business": "Your business", + "email": "Your email", + "what_slows_us_down": "What slows you down", + "what_we_do": "What you do", + "what_we_keep_track_of": "What you keep track of", + "who_comes_to_us": "Who comes to you", + "who_is_involved": "Who's involved" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + } + }, + "opener": { + "description": "Two things, both built here and both running.", + "features": { + "redoal": { + "description": "The gesture math, the relay, the first node, and the portal this page runs on. UHHM answers for what that network keeps.", + "heading": "The redoal network, built and carried here", + "icon": "waypoints" + }, + "software": { + "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.", + "heading": "Software built around a clear argument", + "icon": "layers" + } + }, + "heading": "What UHHM does" + }, + "question": "What is UHHM, and what can you get here?", + "shopping": { + "description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now.", + "heading": "Have a look around first", + "items": { + "built": { + "description": "A few things already out in the world.", + "heading": "What we have built", + "icon": "hammer" + }, + "voices": { + "description": "Straight from the relay, the first node of the network.", + "heading": "The redoal network, live", + "icon": "activity" + } + } + } + }, + "questions/owners/index.yaml": { + "buckets": { + "applicants": { + "description": "People who've asked to build with us, waiting on a decision or already working alongside us.", + "heading": "People who want to build with us", + "moves": { + "active->declined": "End collaboration", + "active->departed": "Mark departed", + "invited->active": "Confirm active", + "invited->declined": "Withdraw invite", + "open->declined": "Decline applicant", + "open->invited": "Send invite" + } + }, + "custody_requests": { + "description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.", + "heading": "What's been raised with custodians", + "moves": {} + }, + "development_proposals": { + "description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.", + "heading": "Proposed changes to the site", + "moves": { + "open->approved": "Approve change", + "open->rejected": "Reject change" + } + }, + "organizations": { + "description": "Organizations you've met, tracked from first contact through to client and beyond.", + "heading": "Organizations you're tracking", + "moves": { + "client->past_client": "Mark past client", + "prospect->client": "Mark as client", + "prospect->past_client": "Mark not pursued" + } + }, + "projects": { + "description": "Briefs sent in by organizations with a problem they want solved.", + "heading": "Briefs waiting on a reply", + "moves": { + "open->accepted": "Accept brief", + "open->declined": "Decline brief" + } + }, + "subscribers": { + "description": "People who want to hear from you now and then.", + "heading": "Who's hearing from you", + "moves": { + "open->unsubscribed": "Unsubscribe them" + } + }, + "trials": { + "description": "Businesses who want to see their own workflow as a working site before committing to anything.", + "heading": "Trial sites in progress", + "moves": { + "approved->declined": "Decline trial", + "approved->previewed": "Mark previewed", + "open->approved": "Approve trial", + "open->declined": "Decline trial" + } + } + }, + "confirm": "Confirm", + "description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.", + "invited": { + "description": "People you've invited in, and whether they've taken it up yet.", + "done": "Taken up", + "heading": "Invites you've sent" + }, + "invites": { + "custodians": { + "button": "Send invite", + "description": "Bring someone in to help keep the first node and answer for the network.", + "form_title": "Invite a custodian", + "heading": "Bring in a custodian", + "labels": { + "email": "Their email", + "name": "Their name" + } + }, + "owners": { + "button": "Send invite", + "description": "Bring someone in to work this desk alongside you.", + "form_title": "Invite an owner", + "heading": "Bring in another owner", + "labels": { + "email": "Their email", + "name": "Their name" + } + } + }, + "links": { + "prospect": { + "button": "Add prospect", + "description": "Write down an organization worth following up, and track it from first contact onward.", + "heading": "Track a new organization" + } + }, + "question": "What's waiting on me today?" + }, + "questions/owners/prospect-sent.yaml": { + "back": "Back to site", + "description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.", + "next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.", + "next_heading": "It's on the desk now", + "question": "What happens to this now?" + }, + "questions/owners/prospect.yaml": { + "button": "Add to prospects", + "description": "One line per organization worth watching, moved through the stages as things develop.", + "encouragement": "Takes a minute, and it's yours to update later.", + "form_description": "Name the organization and where things stand.", + "form_title": "New prospect", + "heading": "Keep an organization on your radar", + "hints": { + "contact": "met at the bakers' conference, [email protected]", + "name": "Nordvik Bakery", + "note": "wants a booking flow, follow up after harvest season" + }, + "icon": "briefcase", + "labels": { + "contact": "Contact", + "name": "Organization", + "note": "Note" + }, + "page_description": "Write down an organization worth following up, and move it through client and past client as things develop.", + "question": "Is there an organization I should be keeping track of?", + "road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.", + "road_icon": "route", + "road_title": "Moves as you update it", + "who_description": "Only you see this, so keep it wherever you check next.", + "who_icon": "user", + "who_title": "Just for you" + }, + "questions/received/collaborate.yaml": { + "back": "Back to site", + "description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.", + "next_description": "If it looks like a fit, we'll reach out to talk about where you could help.", + "next_heading": "We'll write if there's a fit", + "question": "What happens to what I just sent?" + }, + "questions/received/commission.yaml": { + "back": "Back to home", + "description": "Your brief is in. An owner reads every commission end to end before replying.", + "next_description": "Expect a reply within a few working days, either way, straight to your inbox.", + "next_heading": "A real reply from someone who read it", + "question": "What happens now that we've sent our brief?" + }, + "questions/received/custody.yaml": { + "back": "Back to the site", + "description": "A custodian reads every message about the redoal network and what it keeps.", + "next_description": "Expect a reply once your report has been looked at and the network checked.", + "next_heading": "A custodian is on it", + "question": "Who looks after what the network keeps?" + }, + "questions/received/propose.yaml": { + "back": "Back home", + "description": "Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.", + "next_description": "We'll write back once it's been read — approved and made live, or turned down with a reason.", + "next_heading": "A read, then a decision", + "question": "What happens to my proposal now?" + }, + "questions/received/subscribe.yaml": { + "back": "Back to site", + "description": "You'll hear from us when there's something worth saying, not on a schedule.", + "next_description": "You're on the list. Every note has an unsubscribe link if it stops being useful.", + "next_heading": "You're on the list", + "question": "What happens now that I've subscribed?" + }, + "questions/received/trial.yaml": { + "back": "Back to site", + "description": "We read every trial request ourselves before anything gets built.", + "next_description": "If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.", + "next_heading": "A first draft, built from your own words", + "question": "What happens now that you've sent this?" + } +} \ No newline at end of file diff --git a/runs/uhhm-2026-09-23/rated/rate.json b/runs/uhhm-2026-09-23/rated/rate.json index e61a44b..53f94b1 100644 --- a/runs/uhhm-2026-09-23/rated/rate.json +++ b/runs/uhhm-2026-09-23/rated/rate.json @@ -1,28 +1,6 @@ { "collaborate": { "pages": [ - { - "control": { - "asked": 0, - "next": null, - "where": 0, - "which": 0 - }, - "control_ok": true, - "followup_shown": false, - "lix": 29.517543859649123, - "options": 3, - "overloaded": false, - "page": "/", - "personas": 3, - "required_fields": 0, - "understanding": { - "asked": 3, - "next": null, - "where": 3, - "which": 2 - } - }, { "control": { "asked": 0, @@ -32,10 +10,10 @@ }, "control_ok": true, "followup_shown": true, - "lix": 19.40740740740741, - "options": 3, - "overloaded": false, - "page": "/join", + "lix": 25.81998092513114, + "options": 8, + "overloaded": true, + "page": "/", "personas": 3, "required_fields": 3, "understanding": { @@ -46,32 +24,10 @@ } } ], - "steps": 2 + "steps": 1 }, "commission": { "pages": [ - { - "control": { - "asked": 0, - "next": null, - "where": 0, - "which": 0 - }, - "control_ok": true, - "followup_shown": false, - "lix": 29.517543859649123, - "options": 3, - "overloaded": false, - "page": "/", - "personas": 3, - "required_fields": 0, - "understanding": { - "asked": 3, - "next": null, - "where": 2, - "which": 1 - } - }, { "control": { "asked": 0, @@ -81,10 +37,10 @@ }, "control_ok": true, "followup_shown": true, - "lix": 31.056192660550458, - "options": 2, - "overloaded": false, - "page": "/build", + "lix": 26.73015873015873, + "options": 8, + "overloaded": true, + "page": "/", "personas": 3, "required_fields": 4, "understanding": { @@ -95,7 +51,7 @@ } } ], - "steps": 2 + "steps": 1 }, "custody": { "pages": [ @@ -108,9 +64,9 @@ }, "control_ok": true, "followup_shown": true, - "lix": 30.00409836065574, - "options": 3, - "overloaded": false, + "lix": 27.915853336850432, + "options": 8, + "overloaded": true, "page": "/", "personas": 3, "required_fields": 4, @@ -126,28 +82,6 @@ }, "propose": { "pages": [ - { - "control": { - "asked": 0, - "next": null, - "where": 0, - "which": 0 - }, - "control_ok": true, - "followup_shown": false, - "lix": 29.517543859649123, - "options": 3, - "overloaded": false, - "page": "/", - "personas": 2, - "required_fields": 0, - "understanding": { - "asked": 2, - "next": null, - "where": 2, - "which": 1 - } - }, { "control": { "asked": 0, @@ -157,10 +91,10 @@ }, "control_ok": true, "followup_shown": true, - "lix": 23.11111111111111, - "options": 3, - "overloaded": false, - "page": "/join", + "lix": 27.536719122556033, + "options": 8, + "overloaded": true, + "page": "/", "personas": 2, "required_fields": 3, "understanding": { @@ -171,32 +105,10 @@ } } ], - "steps": 2 + "steps": 1 }, "subscribe": { "pages": [ - { - "control": { - "asked": 0, - "next": null, - "where": 0, - "which": 0 - }, - "control_ok": true, - "followup_shown": false, - "lix": 29.517543859649123, - "options": 3, - "overloaded": false, - "page": "/", - "personas": 2, - "required_fields": 0, - "understanding": { - "asked": 2, - "next": null, - "where": 2, - "which": 2 - } - }, { "control": { "asked": 0, @@ -206,46 +118,24 @@ }, "control_ok": true, "followup_shown": true, - "lix": 21.1010101010101, - "options": 3, - "overloaded": false, - "page": "/join", + "lix": 26.73015873015873, + "options": 8, + "overloaded": true, + "page": "/", "personas": 2, "required_fields": 2, "understanding": { "asked": 2, "next": 2, "where": 2, - "which": 2 + "which": 1 } } ], - "steps": 2 + "steps": 1 }, "trial": { "pages": [ - { - "control": { - "asked": 0, - "next": null, - "where": 0, - "which": 0 - }, - "control_ok": true, - "followup_shown": false, - "lix": 29.517543859649123, - "options": 3, - "overloaded": false, - "page": "/", - "personas": 2, - "required_fields": 0, - "understanding": { - "asked": 2, - "next": null, - "where": 2, - "which": 1 - } - }, { "control": { "asked": 0, @@ -255,20 +145,20 @@ }, "control_ok": true, "followup_shown": true, - "lix": 32.95073891625616, - "options": 2, + "lix": 27.441049146931498, + "options": 8, "overloaded": true, - "page": "/build", + "page": "/", "personas": 2, "required_fields": 6, "understanding": { "asked": 2, "next": 2, "where": 2, - "which": 2 + "which": 1 } } ], - "steps": 2 + "steps": 1 } } \ No newline at end of file diff --git a/runs/uhhm-2026-09-23/score.log b/runs/uhhm-2026-09-23/score.log index 6327a13..2ef6380 100644 --- a/runs/uhhm-2026-09-23/score.log +++ b/runs/uhhm-2026-09-23/score.log @@ -1,34 +1,22 @@ == answer full == answer skim == score full -MISROUTE: architecture-firm@/build: picked "See your own business as a site, before you buy anything" (0.95), the need is met by ["Have us build it: send the brief"] -MISROUTE: climbing-gym-founder@/build: picked "See your own business as a site, before you buy anything" (0.95), the need is met by ["Have us build it: send the brief"] -MISROUTE: exhibition-visitor@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] -MISROUTE: tech-journalist@/: picked "You run an organization that needs software built" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] -MISROUTE: interaction-designer@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] -MISROUTE: dance-school@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You run an organization that needs software built"] -MISROUTE: app-builder@/: picked "You run an organization that needs software built" (0.95), the need is met by ["You are on the redoal network: a node, an app, or a recording that concerns you"] -MISROUTE: rewrite@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (1.00), the need is met by ["You want to join us, follow us, or fix a page on this site"] -wording: 19/27 routed right (70%) +MISROUTE: interaction-designer@/: picked "See your own business as a site, before you buy anything" (0.95), the need is met by ["Work with us"] +MISROUTE: dance-school@/: picked "Work with us" (0.95), the need is met by ["See your own business as a site, before you buy anything"] +MISROUTE: app-builder@/: picked "Work with us" (0.95), the need is met by ["You are on the redoal network: a node, an app, or a recording that concerns you"] +MISROUTE: rewrite@/: picked "What UHHM does" (0.95), the need is met by ["Suggest a change to this website"] +wording: 11/15 routed right (73%) == score skim -MISROUTE: exhibition-visitor@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] -MISROUTE: tech-journalist@/: picked "You run an organization that needs software built" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] -MISROUTE: interaction-designer@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"] -MISROUTE: dance-school@/: picked "You want to join us, follow us, or fix a page on this site" (0.95), the need is met by ["You run an organization that needs software built"] -MISROUTE: dance-school@/build: picked "Have us build it: send the brief" (0.95), the need is met by ["See your own business as a site, before you buy anything"] -MISROUTE: wording-fix@/join: picked "Hear from us now and then" (0.95), the need is met by ["Suggest a change to this website"] -wording: 21/27 routed right (78%) +MISROUTE: architecture-firm@/: picked "Work with us" (0.85), the need is met by ["Have us build it: send the brief"] +MISROUTE: tech-journalist@/: picked "What UHHM does" (0.95), the need is met by ["Hear from us now and then"] +MISROUTE: wording-fix@/: picked "Hear from us now and then" (0.95), the need is met by ["Suggest a change to this website"] +wording: 12/15 routed right (80%) == rate need LIX which where asked next gutted twin says page load -commission @/ 30 very easy 1/3 2/3 3/3 - 0/0/0/- ok 3 options, 0 required -commission @/build 31 easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 2 options, 4 required -trial @/ 30 very easy 1/2 2/2 2/2 - 0/0/0/- ok 3 options, 0 required -trial @/build 33 easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 2 options, 6 required - SPLIT -collaborate @/ 30 very easy 2/3 3/3 3/3 - 0/0/0/- ok 3 options, 0 required -collaborate @/join 19 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 3 options, 3 required -subscribe @/ 30 very easy 2/2 2/2 2/2 - 0/0/0/- ok 3 options, 0 required -subscribe @/join 21 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 3 options, 2 required -propose @/ 30 very easy 1/2 2/2 2/2 - 0/0/0/- ok 3 options, 0 required -propose @/join 23 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 3 options, 3 required -custody 30 easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 3 options, 4 required +commission 27 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 8 options, 4 required - SPLIT +trial 27 very easy 1/2 2/2 2/2 2/2 0/0/0/0 ok 8 options, 6 required - SPLIT +collaborate 26 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 8 options, 3 required - SPLIT +subscribe 27 very easy 1/2 2/2 2/2 2/2 0/0/0/0 ok 8 options, 2 required - SPLIT +propose 28 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 8 options, 3 required - SPLIT +custody 28 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 8 options, 4 required - SPLIT == done diff --git a/runs/uhhm-2026-09-23/site/needs.yaml b/runs/uhhm-2026-09-23/site/needs.yaml index 39df5ec..4c8e7d3 100644 --- a/runs/uhhm-2026-09-23/site/needs.yaml +++ b/runs/uhhm-2026-09-23/site/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/runs/uhhm-2026-09-23/site/questions/decide/commission.yaml b/runs/uhhm-2026-09-23/site/questions/decide/commission.yaml new file mode 100644 index 0000000..4d2ac0c --- /dev/null +++ b/runs/uhhm-2026-09-23/site/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/runs/uhhm-2026-09-23/site/questions/decide/custody.yaml b/runs/uhhm-2026-09-23/site/questions/decide/custody.yaml new file mode 100644 index 0000000..4573513 --- /dev/null +++ b/runs/uhhm-2026-09-23/site/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/runs/uhhm-2026-09-23/site/questions/index.yaml b/runs/uhhm-2026-09-23/site/questions/index.yaml index 43b5b34..09f6cd1 100644 --- a/runs/uhhm-2026-09-23/site/questions/index.yaml +++ b/runs/uhhm-2026-09-23/site/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/runs/uhhm-2026-09-23/site/words.json b/runs/uhhm-2026-09-23/site/words.json index f694c0a..7da1eac 100644 --- a/runs/uhhm-2026-09-23/site/words.json +++ b/runs/uhhm-2026-09-23/site/words.json @@ -1,72 +1,4 @@ { - "questions/build/index.yaml": { - "description": "Have a problem software should solve, or want to see your own way of working as a site before you pay anyone?", - "needs": { - "commission": { - "button": "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.", - "encouragement": "Someone here reads every brief in full before writing back.", - "form_description": "The more of the problem you put in, the better the reply.", - "form_title": "Tell us the problem", - "heading": "Have us build it: send the brief", - "hints": { - "email": "sara@company.com", - "name": "Sara Nilsen", - "org_contact": "Sara Nilsen, ops manager", - "organization": "Nilsen Transport AS", - "project": "Our drivers log hours on paper and it takes a day to get them into payroll." - }, - "icon": "briefcase", - "labels": { - "email": "Your email", - "name": "Your name", - "org_contact": "Who we should talk to", - "organization": "Your organization", - "project": "The problem you want solved" - }, - "road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.", - "road_icon": "route", - "road_title": "What happens next", - "who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.", - "who_icon": "user-check", - "who_title": "Who reads this" - }, - "trial": { - "button": "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.", - "encouragement": "A person looks at what you send before anything gets built.", - "form_description": "Answer in your own words - there's no wrong way to describe your business.", - "form_title": "Describe your business", - "heading": "See your own business as a site, before you buy anything", - "hints": { - "business": "Nilsen Transport AS", - "email": "sara@company.com", - "what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.", - "what_we_do": "We move freight for local businesses and handle the paperwork for them.", - "what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.", - "who_comes_to_us": "Local businesses that need something moved on short notice.", - "who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery." - }, - "icon": "layers", - "labels": { - "business": "Your business", - "email": "Your email", - "what_slows_us_down": "What slows you down", - "what_we_do": "What you do", - "what_we_keep_track_of": "What you keep track of", - "who_comes_to_us": "Who comes to you", - "who_is_involved": "Who's involved" - }, - "road_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.", - "road_icon": "route", - "road_title": "What happens next", - "who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.", - "who_icon": "user-check", - "who_title": "Who reads this" - } - }, - "question": "Do you have a brief, or do you want to see your business as a site first?" - }, "questions/custodians/index.yaml": { "buckets": { "custody_requests": { @@ -102,6 +34,28 @@ "links": {}, "question": "What is waiting on the custodians?" }, + "questions/decide/commission.yaml": { + "description": "", + "moves": { + "declined": { + "button": "Declined", + "description": "", + "heading": "Declined" + } + }, + "question": "What would you like to do?" + }, + "questions/decide/custody.yaml": { + "description": "", + "moves": { + "resolved": { + "button": "Resolved", + "description": "", + "heading": "Resolved" + } + }, + "question": "What would you like to do?" + }, "questions/decide/subscribe.yaml": { "description": "You're on our list. Change your mind whenever you like.", "moves": { @@ -115,55 +69,7 @@ }, "questions/index.yaml": { "description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.", - "doors": { - "build": { - "button": "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.", - "for_whom": "For a business or an organization with a job for us", - "heading": "You run an organization that needs software built", - "icon": "hammer" - }, - "join": { - "button": "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.", - "for_whom": "For a person, on their own behalf", - "heading": "You want to join us, follow us, or fix a page on this site", - "icon": "handshake" - } - }, - "needs": { - "custody": { - "button": "Send to a custodian", - "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.", - "encouragement": "A custodian reads every message that comes in here.", - "form_description": "Say which of the four it is, and what you need, in a few lines.", - "form_title": "Reach a custodian", - "heading": "You are on the redoal network: a node, an app, or a recording that concerns you", - "hints": { - "about": "We run our order system on a relay node and it's been dropping messages since Tuesday", - "email": "you@yourcompany.com", - "name": "Your name", - "what": "A relay node is misbehaving" - }, - "icon": "shield", - "labels": { - "about": "What's going on", - "email": "Email", - "name": "Name", - "what": "In short" - }, - "road_description": "A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided.", - "road_icon": "route", - "road_title": "What happens next", - "who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.", - "who_icon": "user-check", - "who_title": "Who reads this" - } - }, - "question": "Who are you, and what do you need from UHHM?" - }, - "questions/join/index.yaml": { - "description": "Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.", + "doors": {}, "needs": { "collaborate": { "button": "Get in touch", @@ -192,6 +98,62 @@ "who_icon": "user-check", "who_title": "Who reads this" }, + "commission": { + "button": "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.", + "encouragement": "Someone here reads every brief in full before writing back.", + "form_description": "The more of the problem you put in, the better the reply.", + "form_title": "Tell us the problem", + "heading": "Have us build it: send the brief", + "hints": { + "email": "sara@company.com", + "name": "Sara Nilsen", + "org_contact": "Sara Nilsen, ops manager", + "organization": "Nilsen Transport AS", + "project": "Our drivers log hours on paper and it takes a day to get them into payroll." + }, + "icon": "briefcase", + "labels": { + "email": "Your email", + "name": "Your name", + "org_contact": "Who we should talk to", + "organization": "Your organization", + "project": "The problem you want solved" + }, + "road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "custody": { + "button": "Send to a custodian", + "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.", + "encouragement": "A custodian reads every message that comes in here.", + "form_description": "Say which of the four it is, and what you need, in a few lines.", + "form_title": "Reach a custodian", + "heading": "You are on the redoal network: a node, an app, or a recording that concerns you", + "hints": { + "about": "We run our order system on a relay node and it's been dropping messages since Tuesday", + "email": "you@yourcompany.com", + "name": "Your name", + "what": "A relay node is misbehaving" + }, + "icon": "shield", + "labels": { + "about": "What's going on", + "email": "Email", + "name": "Name", + "what": "In short" + }, + "road_description": "A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, "propose": { "button": "Send change", "description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how.", @@ -243,9 +205,74 @@ "who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.", "who_icon": "user-check", "who_title": "Who reads this" + }, + "trial": { + "button": "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.", + "encouragement": "A person looks at what you send before anything gets built.", + "form_description": "Answer in your own words - there's no wrong way to describe your business.", + "form_title": "Describe your business", + "heading": "See your own business as a site, before you buy anything", + "hints": { + "business": "Nilsen Transport AS", + "email": "sara@company.com", + "what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.", + "what_we_do": "We move freight for local businesses and handle the paperwork for them.", + "what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.", + "who_comes_to_us": "Local businesses that need something moved on short notice.", + "who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery." + }, + "icon": "layers", + "labels": { + "business": "Your business", + "email": "Your email", + "what_slows_us_down": "What slows you down", + "what_we_do": "What you do", + "what_we_keep_track_of": "What you keep track of", + "who_comes_to_us": "Who comes to you", + "who_is_involved": "Who's involved" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" } }, - "question": "How do you want to be part of this?" + "opener": { + "description": "Two things, both built here and both running.", + "features": { + "redoal": { + "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.", + "heading": "A network that answers to you", + "icon": "waypoints" + }, + "software": { + "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.", + "heading": "A considered reply to your brief, and software that fits the argument", + "icon": "layers" + } + }, + "heading": "What UHHM does" + }, + "question": "What is UHHM, and what can you get here?", + "shopping": { + "description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now.", + "heading": "Have a look around first", + "items": { + "built": { + "description": "A few things already out in the world.", + "heading": "What we have built", + "icon": "hammer" + }, + "voices": { + "description": "Straight from the relay, the first node of the network.", + "heading": "The redoal network, live", + "icon": "activity" + } + } + } }, "questions/owners/index.yaml": { "buckets": { diff --git a/runs/uhhm-2026-09-23/tasks-full.jsonl b/runs/uhhm-2026-09-23/tasks-full.jsonl index 9074f38..aa5e889 100644 --- a/runs/uhhm-2026-09-23/tasks-full.jsonl +++ b/runs/uhhm-2026-09-23/tasks-full.jsonl @@ -1,27 +1,15 @@ -{"id":"architecture-firm@/","persona":"architecture-firm","need":"commission","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You run an organization that needs software built"]} -{"id":"architecture-firm@/build","persona":"architecture-firm","need":"commission","page":"/build","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you have a brief, or do you want to see your business as a site first?\". Which alternative do they choose?","criteria":{"Have us build it: send the brief":"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.","See your own business as a site, before you buy anything":"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"]} -{"id":"climbing-gym-founder@/","persona":"climbing-gym-founder","need":"commission","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You run an organization that needs software built"]} -{"id":"climbing-gym-founder@/build","persona":"climbing-gym-founder","need":"commission","page":"/build","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you have a brief, or do you want to see your business as a site first?\". Which alternative do they choose?","criteria":{"Have us build it: send the brief":"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.","See your own business as a site, before you buy anything":"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"]} -{"id":"municipality-buyer@/","persona":"municipality-buyer","need":"commission","page":"/","state":{"body":"Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You run an organization that needs software built"]} -{"id":"municipality-buyer@/build","persona":"municipality-buyer","need":"commission","page":"/build","state":{"body":"Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you have a brief, or do you want to see your business as a site first?\". Which alternative do they choose?","criteria":{"Have us build it: send the brief":"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.","See your own business as a site, before you buy anything":"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"]} -{"id":"exhibition-visitor@/","persona":"exhibition-visitor","need":"subscribe","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"exhibition-visitor@/join","persona":"exhibition-visitor","need":"subscribe","page":"/join","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","Work with us":"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."}}},"expect":["Hear from us now and then"]} -{"id":"tech-journalist@/","persona":"tech-journalist","need":"subscribe","page":"/","state":{"body":"I write about Nordic technology. Keep me posted on what you release so I can cover it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"tech-journalist@/join","persona":"tech-journalist","need":"subscribe","page":"/join","state":{"body":"I write about Nordic technology. Keep me posted on what you release so I can cover it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","Work with us":"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."}}},"expect":["Hear from us now and then"]} -{"id":"rust-developer@/","persona":"rust-developer","need":"collaborate","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"rust-developer@/join","persona":"rust-developer","need":"collaborate","page":"/join","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","Work with us":"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."}}},"expect":["Work with us"]} -{"id":"interaction-designer@/","persona":"interaction-designer","need":"collaborate","page":"/","state":{"body":"I'm an interaction designer. I want to work with you on the drawing interface."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"interaction-designer@/join","persona":"interaction-designer","need":"collaborate","page":"/join","state":{"body":"I'm an interaction designer. I want to work with you on the drawing interface."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","Work with us":"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."}}},"expect":["Work with us"]} -{"id":"student-intern@/","persona":"student-intern","need":"collaborate","page":"/","state":{"body":"I'm a computer science student looking for a summer internship doing infrastructure work."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"student-intern@/join","persona":"student-intern","need":"collaborate","page":"/join","state":{"body":"I'm a computer science student looking for a summer internship doing infrastructure work."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","Work with us":"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."}}},"expect":["Work with us"]} -{"id":"plumber-owner@/","persona":"plumber-owner","need":"trial","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You run an organization that needs software built"]} -{"id":"plumber-owner@/build","persona":"plumber-owner","need":"trial","page":"/build","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you have a brief, or do you want to see your business as a site first?\". Which alternative do they choose?","criteria":{"Have us build it: send the brief":"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.","See your own business as a site, before you buy anything":"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"]} -{"id":"dance-school@/","persona":"dance-school","need":"trial","page":"/","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You run an organization that needs software built"]} -{"id":"dance-school@/build","persona":"dance-school","need":"trial","page":"/build","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you have a brief, or do you want to see your business as a site first?\". Which alternative do they choose?","criteria":{"Have us build it: send the brief":"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.","See your own business as a site, before you buy anything":"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"]} -{"id":"node-runner@/","persona":"node-runner","need":"custody","page":"/","state":{"body":"I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You are on the redoal network: a node, an app, or a recording that concerns you"]} -{"id":"recorded-name@/","persona":"recorded-name","need":"custody","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You are on the redoal network: a node, an app, or a recording that concerns you"]} -{"id":"app-builder@/","persona":"app-builder","need":"custody","page":"/","state":{"body":"I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You are on the redoal network: a node, an app, or a recording that concerns you"]} -{"id":"wording-fix@/","persona":"wording-fix","need":"propose","page":"/","state":{"body":"The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"wording-fix@/join","persona":"wording-fix","need":"propose","page":"/join","state":{"body":"The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","Work with us":"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."}}},"expect":["Suggest a change to this website"]} -{"id":"rewrite@/","persona":"rewrite","need":"propose","page":"/","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"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.","You run an organization that needs software built":"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.","You want to join us, follow us, or fix a page on this site":"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."}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"rewrite@/join","persona":"rewrite","need":"propose","page":"/join","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","Work with us":"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."}}},"expect":["Suggest a change to this website"]} +{"id":"architecture-firm@/","persona":"architecture-firm","need":"commission","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["Have us build it: send the brief"]} +{"id":"climbing-gym-founder@/","persona":"climbing-gym-founder","need":"commission","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["Have us build it: send the brief"]} +{"id":"municipality-buyer@/","persona":"municipality-buyer","need":"commission","page":"/","state":{"body":"Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["Have us build it: send the brief"]} +{"id":"exhibition-visitor@/","persona":"exhibition-visitor","need":"subscribe","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["Hear from us now and then"]} +{"id":"tech-journalist@/","persona":"tech-journalist","need":"subscribe","page":"/","state":{"body":"I write about Nordic technology. Keep me posted on what you release so I can cover it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["Hear from us now and then"]} +{"id":"rust-developer@/","persona":"rust-developer","need":"collaborate","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["Work with us"]} +{"id":"interaction-designer@/","persona":"interaction-designer","need":"collaborate","page":"/","state":{"body":"I'm an interaction designer. I want to work with you on the drawing interface."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["Work with us"]} +{"id":"student-intern@/","persona":"student-intern","need":"collaborate","page":"/","state":{"body":"I'm a computer science student looking for a summer internship doing infrastructure work."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["Work with us"]} +{"id":"plumber-owner@/","persona":"plumber-owner","need":"trial","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["See your own business as a site, before you buy anything"]} +{"id":"dance-school@/","persona":"dance-school","need":"trial","page":"/","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["See your own business as a site, before you buy anything"]} +{"id":"node-runner@/","persona":"node-runner","need":"custody","page":"/","state":{"body":"I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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"]} +{"id":"recorded-name@/","persona":"recorded-name","need":"custody","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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"]} +{"id":"app-builder@/","persona":"app-builder","need":"custody","page":"/","state":{"body":"I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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"]} +{"id":"wording-fix@/","persona":"wording-fix","need":"propose","page":"/","state":{"body":"The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["Suggest a change to this website"]} +{"id":"rewrite@/","persona":"rewrite","need":"propose","page":"/","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Nothing to fill in here. What is already out in the world, and the network as it runs right now.","Have us build it: send the brief":"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.","Hear from us now and then":"You'd rather hear from us now and then than check back on your own.","See your own business as a site, before you buy anything":"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.","Suggest a change to this website":"You have spotted a page on uhhm.no that should read differently, and you know roughly how.","What UHHM does":"Two things, both built here and both running.","Work with us":"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.","You are on the redoal network: a node, an app, or a recording that concerns you":"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":["Suggest a change to this website"]} diff --git a/runs/uhhm-2026-09-23/tasks-skim.jsonl b/runs/uhhm-2026-09-23/tasks-skim.jsonl index 3dff7ae..9e06519 100644 --- a/runs/uhhm-2026-09-23/tasks-skim.jsonl +++ b/runs/uhhm-2026-09-23/tasks-skim.jsonl @@ -1,27 +1,15 @@ -{"id":"architecture-firm@/","persona":"architecture-firm","need":"commission","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You run an organization that needs software built"]} -{"id":"architecture-firm@/build","persona":"architecture-firm","need":"commission","page":"/build","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you have a brief, or do you want to see your business as a site first?\". Which alternative do they choose?","criteria":{"Have us build it: send the brief":"Have us build it: send the brief","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything"}}},"expect":["Have us build it: send the brief"]} -{"id":"climbing-gym-founder@/","persona":"climbing-gym-founder","need":"commission","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You run an organization that needs software built"]} -{"id":"climbing-gym-founder@/build","persona":"climbing-gym-founder","need":"commission","page":"/build","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you have a brief, or do you want to see your business as a site first?\". Which alternative do they choose?","criteria":{"Have us build it: send the brief":"Have us build it: send the brief","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything"}}},"expect":["Have us build it: send the brief"]} -{"id":"municipality-buyer@/","persona":"municipality-buyer","need":"commission","page":"/","state":{"body":"Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You run an organization that needs software built"]} -{"id":"municipality-buyer@/build","persona":"municipality-buyer","need":"commission","page":"/build","state":{"body":"Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you have a brief, or do you want to see your business as a site first?\". Which alternative do they choose?","criteria":{"Have us build it: send the brief":"Have us build it: send the brief","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything"}}},"expect":["Have us build it: send the brief"]} -{"id":"exhibition-visitor@/","persona":"exhibition-visitor","need":"subscribe","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"exhibition-visitor@/join","persona":"exhibition-visitor","need":"subscribe","page":"/join","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"Hear from us now and then","Suggest a change to this website":"Suggest a change to this website","Work with us":"Work with us"}}},"expect":["Hear from us now and then"]} -{"id":"tech-journalist@/","persona":"tech-journalist","need":"subscribe","page":"/","state":{"body":"I write about Nordic technology. Keep me posted on what you release so I can cover it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"tech-journalist@/join","persona":"tech-journalist","need":"subscribe","page":"/join","state":{"body":"I write about Nordic technology. Keep me posted on what you release so I can cover it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"Hear from us now and then","Suggest a change to this website":"Suggest a change to this website","Work with us":"Work with us"}}},"expect":["Hear from us now and then"]} -{"id":"rust-developer@/","persona":"rust-developer","need":"collaborate","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"rust-developer@/join","persona":"rust-developer","need":"collaborate","page":"/join","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"Hear from us now and then","Suggest a change to this website":"Suggest a change to this website","Work with us":"Work with us"}}},"expect":["Work with us"]} -{"id":"interaction-designer@/","persona":"interaction-designer","need":"collaborate","page":"/","state":{"body":"I'm an interaction designer. I want to work with you on the drawing interface."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"interaction-designer@/join","persona":"interaction-designer","need":"collaborate","page":"/join","state":{"body":"I'm an interaction designer. I want to work with you on the drawing interface."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"Hear from us now and then","Suggest a change to this website":"Suggest a change to this website","Work with us":"Work with us"}}},"expect":["Work with us"]} -{"id":"student-intern@/","persona":"student-intern","need":"collaborate","page":"/","state":{"body":"I'm a computer science student looking for a summer internship doing infrastructure work."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"student-intern@/join","persona":"student-intern","need":"collaborate","page":"/join","state":{"body":"I'm a computer science student looking for a summer internship doing infrastructure work."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"Hear from us now and then","Suggest a change to this website":"Suggest a change to this website","Work with us":"Work with us"}}},"expect":["Work with us"]} -{"id":"plumber-owner@/","persona":"plumber-owner","need":"trial","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You run an organization that needs software built"]} -{"id":"plumber-owner@/build","persona":"plumber-owner","need":"trial","page":"/build","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you have a brief, or do you want to see your business as a site first?\". Which alternative do they choose?","criteria":{"Have us build it: send the brief":"Have us build it: send the brief","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything"}}},"expect":["See your own business as a site, before you buy anything"]} -{"id":"dance-school@/","persona":"dance-school","need":"trial","page":"/","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You run an organization that needs software built"]} -{"id":"dance-school@/build","persona":"dance-school","need":"trial","page":"/build","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you have a brief, or do you want to see your business as a site first?\". Which alternative do they choose?","criteria":{"Have us build it: send the brief":"Have us build it: send the brief","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything"}}},"expect":["See your own business as a site, before you buy anything"]} -{"id":"node-runner@/","persona":"node-runner","need":"custody","page":"/","state":{"body":"I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You are on the redoal network: a node, an app, or a recording that concerns you"]} -{"id":"recorded-name@/","persona":"recorded-name","need":"custody","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You are on the redoal network: a node, an app, or a recording that concerns you"]} -{"id":"app-builder@/","persona":"app-builder","need":"custody","page":"/","state":{"body":"I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You are on the redoal network: a node, an app, or a recording that concerns you"]} -{"id":"wording-fix@/","persona":"wording-fix","need":"propose","page":"/","state":{"body":"The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"wording-fix@/join","persona":"wording-fix","need":"propose","page":"/join","state":{"body":"The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"Hear from us now and then","Suggest a change to this website":"Suggest a change to this website","Work with us":"Work with us"}}},"expect":["Suggest a change to this website"]} -{"id":"rewrite@/","persona":"rewrite","need":"propose","page":"/","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Who are you, and what do you need from UHHM?\". Which alternative do they choose?","criteria":{"You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you","You run an organization that needs software built":"You run an organization that needs software built","You want to join us, follow us, or fix a page on this site":"You want to join us, follow us, or fix a page on this site"}}},"expect":["You want to join us, follow us, or fix a page on this site"]} -{"id":"rewrite@/join","persona":"rewrite","need":"propose","page":"/join","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Hear from us now and then":"Hear from us now and then","Suggest a change to this website":"Suggest a change to this website","Work with us":"Work with us"}}},"expect":["Suggest a change to this website"]} +{"id":"architecture-firm@/","persona":"architecture-firm","need":"commission","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["Have us build it: send the brief"]} +{"id":"climbing-gym-founder@/","persona":"climbing-gym-founder","need":"commission","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["Have us build it: send the brief"]} +{"id":"municipality-buyer@/","persona":"municipality-buyer","need":"commission","page":"/","state":{"body":"Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["Have us build it: send the brief"]} +{"id":"exhibition-visitor@/","persona":"exhibition-visitor","need":"subscribe","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["Hear from us now and then"]} +{"id":"tech-journalist@/","persona":"tech-journalist","need":"subscribe","page":"/","state":{"body":"I write about Nordic technology. Keep me posted on what you release so I can cover it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["Hear from us now and then"]} +{"id":"rust-developer@/","persona":"rust-developer","need":"collaborate","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["Work with us"]} +{"id":"interaction-designer@/","persona":"interaction-designer","need":"collaborate","page":"/","state":{"body":"I'm an interaction designer. I want to work with you on the drawing interface."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["Work with us"]} +{"id":"student-intern@/","persona":"student-intern","need":"collaborate","page":"/","state":{"body":"I'm a computer science student looking for a summer internship doing infrastructure work."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["Work with us"]} +{"id":"plumber-owner@/","persona":"plumber-owner","need":"trial","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["See your own business as a site, before you buy anything"]} +{"id":"dance-school@/","persona":"dance-school","need":"trial","page":"/","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["See your own business as a site, before you buy anything"]} +{"id":"node-runner@/","persona":"node-runner","need":"custody","page":"/","state":{"body":"I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["You are on the redoal network: a node, an app, or a recording that concerns you"]} +{"id":"recorded-name@/","persona":"recorded-name","need":"custody","page":"/","state":{"body":"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."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["You are on the redoal network: a node, an app, or a recording that concerns you"]} +{"id":"app-builder@/","persona":"app-builder","need":"custody","page":"/","state":{"body":"I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["You are on the redoal network: a node, an app, or a recording that concerns you"]} +{"id":"wording-fix@/","persona":"wording-fix","need":"propose","page":"/","state":{"body":"The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["Suggest a change to this website"]} +{"id":"rewrite@/","persona":"rewrite","need":"propose","page":"/","state":{"body":"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?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What is UHHM, and what can you get here?\". Which alternative do they choose?","criteria":{"Have a look around first":"Have a look around first","Have us build it: send the brief":"Have us build it: send the brief","Hear from us now and then":"Hear from us now and then","See your own business as a site, before you buy anything":"See your own business as a site, before you buy anything","Suggest a change to this website":"Suggest a change to this website","What UHHM does":"What UHHM does","Work with us":"Work with us","You are on the redoal network: a node, an app, or a recording that concerns you":"You are on the redoal network: a node, an app, or a recording that concerns you"}}},"expect":["Suggest a change to this website"]} diff --git a/runs/uhhm-2026-09-23/words-r4.json b/runs/uhhm-2026-09-23/words-r4.json new file mode 100644 index 0000000..863e568 --- /dev/null +++ b/runs/uhhm-2026-09-23/words-r4.json @@ -0,0 +1,430 @@ +{ + "questions/custodians/index.yaml": { + "buckets": { + "custody_requests": { + "description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.", + "heading": "Custody cases waiting on you", + "moves": { + "in_dialogue->declined": "Close, no action", + "in_dialogue->resolved": "Mark resolved", + "open->declined": "Decline case", + "open->in_dialogue": "Open dialogue" + } + } + }, + "confirm": "Confirm", + "description": "The desk for custodians: open custody cases, and the people invited to answer them.", + "invited": { + "description": "Custodians invited but not yet signed in.", + "done": "Signed in", + "heading": "Invited custodians" + }, + "invites": { + "custodians": { + "button": "Invite custodian", + "description": "Give someone an account and a one-time link to join as a custodian.", + "form_title": "Invite a custodian", + "heading": "Bring in another custodian", + "labels": { + "email": "Email", + "name": "Name" + } + } + }, + "links": {}, + "question": "What is waiting on the custodians?" + }, + "questions/decide/subscribe.yaml": { + "description": "You're on our list. Change your mind whenever you like.", + "moves": { + "unsubscribed": { + "button": "Unsubscribe", + "description": "You'll stop hearing from us. Nothing else changes.", + "heading": "Stop getting notes from us" + } + }, + "question": "Do you want to keep hearing from us?" + }, + "questions/index.yaml": { + "description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.", + "needs": { + "commission": { + "button": "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.", + "encouragement": "Someone here reads every brief in full before writing back.", + "form_description": "The more of the problem you put in, the better the reply.", + "form_title": "Tell us the problem", + "heading": "Have us build it: send the brief", + "hints": { + "email": "sara@company.com", + "name": "Sara Nilsen", + "org_contact": "Sara Nilsen, ops manager", + "organization": "Nilsen Transport AS", + "project": "Our drivers log hours on paper and it takes a day to get them into payroll." + }, + "icon": "briefcase", + "labels": { + "email": "Your email", + "name": "Your name", + "org_contact": "Who we should talk to", + "organization": "Your organization", + "project": "The problem you want solved" + }, + "road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "trial": { + "button": "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.", + "encouragement": "A person looks at what you send before anything gets built.", + "form_description": "Answer in your own words - there's no wrong way to describe your business.", + "form_title": "Describe your business", + "heading": "See your own business as a site, before you buy anything", + "hints": { + "business": "Nilsen Transport AS", + "email": "sara@company.com", + "what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.", + "what_we_do": "We move freight for local businesses and handle the paperwork for them.", + "what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.", + "who_comes_to_us": "Local businesses that need something moved on short notice.", + "who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery." + }, + "icon": "layers", + "labels": { + "business": "Your business", + "email": "Your email", + "what_slows_us_down": "What slows you down", + "what_we_do": "What you do", + "what_we_keep_track_of": "What you keep track of", + "who_comes_to_us": "Who comes to you", + "who_is_involved": "Who's involved" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "collaborate": { + "button": "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.", + "encouragement": "A person reads this, not a form filter — worth the ten minutes.", + "form_description": "Tell us who you are and what kind of work you're after.", + "form_title": "Say hello", + "heading": "Work with us", + "hints": { + "email": "you@example.com", + "interest": "Backend work, or something design-heavy", + "name": "Your name", + "note": "A bit about what you'd want to work on, or a link to your work" + }, + "icon": "handshake", + "labels": { + "email": "Email", + "interest": "What kind of work", + "name": "Name", + "note": "Tell us more" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "propose": { + "button": "Send change", + "description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how.", + "encouragement": "Even a rough version helps — we can tidy the wording ourselves.", + "form_description": "Point us to the page and show us the change.", + "form_title": "Propose a change", + "heading": "Suggest a change to this website", + "hints": { + "email": "you@example.com", + "page": "questions/join/index.yaml", + "proposed_yaml": "heading: \"A clearer way to say this\"", + "rationale": "The current heading doesn't say what you actually get", + "submitted_by": "Your name" + }, + "icon": "pencil", + "labels": { + "email": "Email", + "page": "Which page", + "proposed_yaml": "Your proposed text", + "rationale": "Why this is better", + "submitted_by": "Your name" + }, + "road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "subscribe": { + "button": "Sign up", + "description": "You'd rather hear from us now and then than check back on your own.", + "encouragement": "One click unsubscribes you later, no questions asked.", + "form_description": "Just your email, or your name too if you'd like.", + "form_title": "Stay in the loop", + "heading": "Hear from us now and then", + "hints": { + "email": "you@example.com", + "name": "Your name" + }, + "icon": "mail", + "labels": { + "email": "Email", + "name": "Name" + }, + "road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.", + "road_icon": "bell", + "road_title": "What happens next", + "who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "custody": { + "button": "Send to a custodian", + "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.", + "encouragement": "A custodian reads every message that comes in here.", + "form_description": "Say which of the four it is, and what you need, in a few lines.", + "form_title": "Reach a custodian", + "heading": "You are on the redoal network: a node, an app, or a recording that concerns you", + "hints": { + "about": "We run our order system on a relay node and it's been dropping messages since Tuesday", + "email": "you@yourcompany.com", + "name": "Your name", + "what": "A relay node is misbehaving" + }, + "icon": "shield", + "labels": { + "about": "What's going on", + "email": "Email", + "name": "Name", + "what": "In short" + }, + "road_description": "A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.", + "who_icon": "user-check", + "who_title": "Who reads this" + } + }, + "question": "What is UHHM, and what can you get here?", + "opener": { + "heading": "What UHHM does", + "description": "Two things, both built here and both running.", + "features": { + "software": { + "heading": "Software built around a clear argument", + "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.", + "icon": "layers" + }, + "redoal": { + "heading": "The redoal network, built and carried here", + "description": "The gesture math, the relay, the first node, and the portal this page runs on. UHHM answers for what that network keeps.", + "icon": "waypoints" + } + } + }, + "shopping": { + "heading": "Have a look around first", + "description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now.", + "items": { + "built": { + "heading": "What we have built", + "description": "A few things already out in the world.", + "icon": "hammer" + }, + "voices": { + "heading": "The redoal network, live", + "description": "Straight from the relay, the first node of the network.", + "icon": "activity" + } + } + } + }, + "questions/owners/index.yaml": { + "buckets": { + "applicants": { + "description": "People who've asked to build with us, waiting on a decision or already working alongside us.", + "heading": "People who want to build with us", + "moves": { + "active->declined": "End collaboration", + "active->departed": "Mark departed", + "invited->active": "Confirm active", + "invited->declined": "Withdraw invite", + "open->declined": "Decline applicant", + "open->invited": "Send invite" + } + }, + "custody_requests": { + "description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.", + "heading": "What's been raised with custodians", + "moves": {} + }, + "development_proposals": { + "description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.", + "heading": "Proposed changes to the site", + "moves": { + "open->approved": "Approve change", + "open->rejected": "Reject change" + } + }, + "organizations": { + "description": "Organizations you've met, tracked from first contact through to client and beyond.", + "heading": "Organizations you're tracking", + "moves": { + "client->past_client": "Mark past client", + "prospect->client": "Mark as client", + "prospect->past_client": "Mark not pursued" + } + }, + "projects": { + "description": "Briefs sent in by organizations with a problem they want solved.", + "heading": "Briefs waiting on a reply", + "moves": { + "open->accepted": "Accept brief", + "open->declined": "Decline brief" + } + }, + "subscribers": { + "description": "People who want to hear from you now and then.", + "heading": "Who's hearing from you", + "moves": { + "open->unsubscribed": "Unsubscribe them" + } + }, + "trials": { + "description": "Businesses who want to see their own workflow as a working site before committing to anything.", + "heading": "Trial sites in progress", + "moves": { + "approved->declined": "Decline trial", + "approved->previewed": "Mark previewed", + "open->approved": "Approve trial", + "open->declined": "Decline trial" + } + } + }, + "confirm": "Confirm", + "description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.", + "invited": { + "description": "People you've invited in, and whether they've taken it up yet.", + "done": "Taken up", + "heading": "Invites you've sent" + }, + "invites": { + "custodians": { + "button": "Send invite", + "description": "Bring someone in to help keep the first node and answer for the network.", + "form_title": "Invite a custodian", + "heading": "Bring in a custodian", + "labels": { + "email": "Their email", + "name": "Their name" + } + }, + "owners": { + "button": "Send invite", + "description": "Bring someone in to work this desk alongside you.", + "form_title": "Invite an owner", + "heading": "Bring in another owner", + "labels": { + "email": "Their email", + "name": "Their name" + } + } + }, + "links": { + "prospect": { + "button": "Add prospect", + "description": "Write down an organization worth following up, and track it from first contact onward.", + "heading": "Track a new organization" + } + }, + "question": "What's waiting on me today?" + }, + "questions/owners/prospect-sent.yaml": { + "back": "Back to site", + "description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.", + "next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.", + "next_heading": "It's on the desk now", + "question": "What happens to this now?" + }, + "questions/owners/prospect.yaml": { + "button": "Add to prospects", + "description": "One line per organization worth watching, moved through the stages as things develop.", + "encouragement": "Takes a minute, and it's yours to update later.", + "form_description": "Name the organization and where things stand.", + "form_title": "New prospect", + "heading": "Keep an organization on your radar", + "hints": { + "contact": "met at the bakers' conference, [email protected]", + "name": "Nordvik Bakery", + "note": "wants a booking flow, follow up after harvest season" + }, + "icon": "briefcase", + "labels": { + "contact": "Contact", + "name": "Organization", + "note": "Note" + }, + "page_description": "Write down an organization worth following up, and move it through client and past client as things develop.", + "question": "Is there an organization I should be keeping track of?", + "road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.", + "road_icon": "route", + "road_title": "Moves as you update it", + "who_description": "Only you see this, so keep it wherever you check next.", + "who_icon": "user", + "who_title": "Just for you" + }, + "questions/received/collaborate.yaml": { + "back": "Back to site", + "description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.", + "next_description": "If it looks like a fit, we'll reach out to talk about where you could help.", + "next_heading": "We'll write if there's a fit", + "question": "What happens to what I just sent?" + }, + "questions/received/commission.yaml": { + "back": "Back to home", + "description": "Your brief is in. An owner reads every commission end to end before replying.", + "next_description": "Expect a reply within a few working days, either way, straight to your inbox.", + "next_heading": "A real reply from someone who read it", + "question": "What happens now that we've sent our brief?" + }, + "questions/received/custody.yaml": { + "back": "Back to the site", + "description": "A custodian reads every message about the redoal network and what it keeps.", + "next_description": "Expect a reply once your report has been looked at and the network checked.", + "next_heading": "A custodian is on it", + "question": "Who looks after what the network keeps?" + }, + "questions/received/propose.yaml": { + "back": "Back home", + "description": "Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.", + "next_description": "We'll write back once it's been read — approved and made live, or turned down with a reason.", + "next_heading": "A read, then a decision", + "question": "What happens to my proposal now?" + }, + "questions/received/subscribe.yaml": { + "back": "Back to site", + "description": "You'll hear from us when there's something worth saying, not on a schedule.", + "next_description": "You're on the list. Every note has an unsubscribe link if it stops being useful.", + "next_heading": "You're on the list", + "question": "What happens now that I've subscribed?" + }, + "questions/received/trial.yaml": { + "back": "Back to site", + "description": "We read every trial request ourselves before anything gets built.", + "next_description": "If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.", + "next_heading": "A first draft, built from your own words", + "question": "What happens now that you've sent this?" + } +} diff --git a/runs/uhhm-2026-09-23/words-r5.json b/runs/uhhm-2026-09-23/words-r5.json new file mode 100644 index 0000000..806ee9f --- /dev/null +++ b/runs/uhhm-2026-09-23/words-r5.json @@ -0,0 +1,430 @@ +{ + "questions/custodians/index.yaml": { + "buckets": { + "custody_requests": { + "description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.", + "heading": "Custody cases waiting on you", + "moves": { + "in_dialogue->declined": "Close, no action", + "in_dialogue->resolved": "Mark resolved", + "open->declined": "Decline case", + "open->in_dialogue": "Open dialogue" + } + } + }, + "confirm": "Confirm", + "description": "The desk for custodians: open custody cases, and the people invited to answer them.", + "invited": { + "description": "Custodians invited but not yet signed in.", + "done": "Signed in", + "heading": "Invited custodians" + }, + "invites": { + "custodians": { + "button": "Invite custodian", + "description": "Give someone an account and a one-time link to join as a custodian.", + "form_title": "Invite a custodian", + "heading": "Bring in another custodian", + "labels": { + "email": "Email", + "name": "Name" + } + } + }, + "links": {}, + "question": "What is waiting on the custodians?" + }, + "questions/decide/subscribe.yaml": { + "description": "You're on our list. Change your mind whenever you like.", + "moves": { + "unsubscribed": { + "button": "Unsubscribe", + "description": "You'll stop hearing from us. Nothing else changes.", + "heading": "Stop getting notes from us" + } + }, + "question": "Do you want to keep hearing from us?" + }, + "questions/index.yaml": { + "description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.", + "needs": { + "commission": { + "button": "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.", + "encouragement": "Someone here reads every brief in full before writing back.", + "form_description": "The more of the problem you put in, the better the reply.", + "form_title": "Tell us the problem", + "heading": "Have us build it: send the brief", + "hints": { + "email": "sara@company.com", + "name": "Sara Nilsen", + "org_contact": "Sara Nilsen, ops manager", + "organization": "Nilsen Transport AS", + "project": "Our drivers log hours on paper and it takes a day to get them into payroll." + }, + "icon": "briefcase", + "labels": { + "email": "Your email", + "name": "Your name", + "org_contact": "Who we should talk to", + "organization": "Your organization", + "project": "The problem you want solved" + }, + "road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "trial": { + "button": "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.", + "encouragement": "A person looks at what you send before anything gets built.", + "form_description": "Answer in your own words - there's no wrong way to describe your business.", + "form_title": "Describe your business", + "heading": "See your own business as a site, before you buy anything", + "hints": { + "business": "Nilsen Transport AS", + "email": "sara@company.com", + "what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.", + "what_we_do": "We move freight for local businesses and handle the paperwork for them.", + "what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.", + "who_comes_to_us": "Local businesses that need something moved on short notice.", + "who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery." + }, + "icon": "layers", + "labels": { + "business": "Your business", + "email": "Your email", + "what_slows_us_down": "What slows you down", + "what_we_do": "What you do", + "what_we_keep_track_of": "What you keep track of", + "who_comes_to_us": "Who comes to you", + "who_is_involved": "Who's involved" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "collaborate": { + "button": "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.", + "encouragement": "A person reads this, not a form filter — worth the ten minutes.", + "form_description": "Tell us who you are and what kind of work you're after.", + "form_title": "Say hello", + "heading": "Work with us", + "hints": { + "email": "you@example.com", + "interest": "Backend work, or something design-heavy", + "name": "Your name", + "note": "A bit about what you'd want to work on, or a link to your work" + }, + "icon": "handshake", + "labels": { + "email": "Email", + "interest": "What kind of work", + "name": "Name", + "note": "Tell us more" + }, + "road_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.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "propose": { + "button": "Send change", + "description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how.", + "encouragement": "Even a rough version helps — we can tidy the wording ourselves.", + "form_description": "Point us to the page and show us the change.", + "form_title": "Propose a change", + "heading": "Suggest a change to this website", + "hints": { + "email": "you@example.com", + "page": "questions/join/index.yaml", + "proposed_yaml": "heading: \"A clearer way to say this\"", + "rationale": "The current heading doesn't say what you actually get", + "submitted_by": "Your name" + }, + "icon": "pencil", + "labels": { + "email": "Email", + "page": "Which page", + "proposed_yaml": "Your proposed text", + "rationale": "Why this is better", + "submitted_by": "Your name" + }, + "road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "subscribe": { + "button": "Sign up", + "description": "You'd rather hear from us now and then than check back on your own.", + "encouragement": "One click unsubscribes you later, no questions asked.", + "form_description": "Just your email, or your name too if you'd like.", + "form_title": "Stay in the loop", + "heading": "Hear from us now and then", + "hints": { + "email": "you@example.com", + "name": "Your name" + }, + "icon": "mail", + "labels": { + "email": "Email", + "name": "Name" + }, + "road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.", + "road_icon": "bell", + "road_title": "What happens next", + "who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.", + "who_icon": "user-check", + "who_title": "Who reads this" + }, + "custody": { + "button": "Send to a custodian", + "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.", + "encouragement": "A custodian reads every message that comes in here.", + "form_description": "Say which of the four it is, and what you need, in a few lines.", + "form_title": "Reach a custodian", + "heading": "You are on the redoal network: a node, an app, or a recording that concerns you", + "hints": { + "about": "We run our order system on a relay node and it's been dropping messages since Tuesday", + "email": "you@yourcompany.com", + "name": "Your name", + "what": "A relay node is misbehaving" + }, + "icon": "shield", + "labels": { + "about": "What's going on", + "email": "Email", + "name": "Name", + "what": "In short" + }, + "road_description": "A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided.", + "road_icon": "route", + "road_title": "What happens next", + "who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.", + "who_icon": "user-check", + "who_title": "Who reads this" + } + }, + "question": "What is UHHM, and what can you get here?", + "opener": { + "heading": "What UHHM does", + "description": "Two things, both built here and both running.", + "features": { + "software": { + "heading": "A considered reply to your brief, and software that fits the argument", + "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": "layers" + }, + "redoal": { + "heading": "A network that answers to you", + "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.", + "icon": "waypoints" + } + } + }, + "shopping": { + "heading": "Have a look around first", + "description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now.", + "items": { + "built": { + "heading": "What we have built", + "description": "A few things already out in the world.", + "icon": "hammer" + }, + "voices": { + "heading": "The redoal network, live", + "description": "Straight from the relay, the first node of the network.", + "icon": "activity" + } + } + } + }, + "questions/owners/index.yaml": { + "buckets": { + "applicants": { + "description": "People who've asked to build with us, waiting on a decision or already working alongside us.", + "heading": "People who want to build with us", + "moves": { + "active->declined": "End collaboration", + "active->departed": "Mark departed", + "invited->active": "Confirm active", + "invited->declined": "Withdraw invite", + "open->declined": "Decline applicant", + "open->invited": "Send invite" + } + }, + "custody_requests": { + "description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.", + "heading": "What's been raised with custodians", + "moves": {} + }, + "development_proposals": { + "description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.", + "heading": "Proposed changes to the site", + "moves": { + "open->approved": "Approve change", + "open->rejected": "Reject change" + } + }, + "organizations": { + "description": "Organizations you've met, tracked from first contact through to client and beyond.", + "heading": "Organizations you're tracking", + "moves": { + "client->past_client": "Mark past client", + "prospect->client": "Mark as client", + "prospect->past_client": "Mark not pursued" + } + }, + "projects": { + "description": "Briefs sent in by organizations with a problem they want solved.", + "heading": "Briefs waiting on a reply", + "moves": { + "open->accepted": "Accept brief", + "open->declined": "Decline brief" + } + }, + "subscribers": { + "description": "People who want to hear from you now and then.", + "heading": "Who's hearing from you", + "moves": { + "open->unsubscribed": "Unsubscribe them" + } + }, + "trials": { + "description": "Businesses who want to see their own workflow as a working site before committing to anything.", + "heading": "Trial sites in progress", + "moves": { + "approved->declined": "Decline trial", + "approved->previewed": "Mark previewed", + "open->approved": "Approve trial", + "open->declined": "Decline trial" + } + } + }, + "confirm": "Confirm", + "description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.", + "invited": { + "description": "People you've invited in, and whether they've taken it up yet.", + "done": "Taken up", + "heading": "Invites you've sent" + }, + "invites": { + "custodians": { + "button": "Send invite", + "description": "Bring someone in to help keep the first node and answer for the network.", + "form_title": "Invite a custodian", + "heading": "Bring in a custodian", + "labels": { + "email": "Their email", + "name": "Their name" + } + }, + "owners": { + "button": "Send invite", + "description": "Bring someone in to work this desk alongside you.", + "form_title": "Invite an owner", + "heading": "Bring in another owner", + "labels": { + "email": "Their email", + "name": "Their name" + } + } + }, + "links": { + "prospect": { + "button": "Add prospect", + "description": "Write down an organization worth following up, and track it from first contact onward.", + "heading": "Track a new organization" + } + }, + "question": "What's waiting on me today?" + }, + "questions/owners/prospect-sent.yaml": { + "back": "Back to site", + "description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.", + "next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.", + "next_heading": "It's on the desk now", + "question": "What happens to this now?" + }, + "questions/owners/prospect.yaml": { + "button": "Add to prospects", + "description": "One line per organization worth watching, moved through the stages as things develop.", + "encouragement": "Takes a minute, and it's yours to update later.", + "form_description": "Name the organization and where things stand.", + "form_title": "New prospect", + "heading": "Keep an organization on your radar", + "hints": { + "contact": "met at the bakers' conference, [email protected]", + "name": "Nordvik Bakery", + "note": "wants a booking flow, follow up after harvest season" + }, + "icon": "briefcase", + "labels": { + "contact": "Contact", + "name": "Organization", + "note": "Note" + }, + "page_description": "Write down an organization worth following up, and move it through client and past client as things develop.", + "question": "Is there an organization I should be keeping track of?", + "road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.", + "road_icon": "route", + "road_title": "Moves as you update it", + "who_description": "Only you see this, so keep it wherever you check next.", + "who_icon": "user", + "who_title": "Just for you" + }, + "questions/received/collaborate.yaml": { + "back": "Back to site", + "description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.", + "next_description": "If it looks like a fit, we'll reach out to talk about where you could help.", + "next_heading": "We'll write if there's a fit", + "question": "What happens to what I just sent?" + }, + "questions/received/commission.yaml": { + "back": "Back to home", + "description": "Your brief is in. An owner reads every commission end to end before replying.", + "next_description": "Expect a reply within a few working days, either way, straight to your inbox.", + "next_heading": "A real reply from someone who read it", + "question": "What happens now that we've sent our brief?" + }, + "questions/received/custody.yaml": { + "back": "Back to the site", + "description": "A custodian reads every message about the redoal network and what it keeps.", + "next_description": "Expect a reply once your report has been looked at and the network checked.", + "next_heading": "A custodian is on it", + "question": "Who looks after what the network keeps?" + }, + "questions/received/propose.yaml": { + "back": "Back home", + "description": "Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.", + "next_description": "We'll write back once it's been read — approved and made live, or turned down with a reason.", + "next_heading": "A read, then a decision", + "question": "What happens to my proposal now?" + }, + "questions/received/subscribe.yaml": { + "back": "Back to site", + "description": "You'll hear from us when there's something worth saying, not on a schedule.", + "next_description": "You're on the list. Every note has an unsubscribe link if it stops being useful.", + "next_heading": "You're on the list", + "question": "What happens now that I've subscribed?" + }, + "questions/received/trial.yaml": { + "back": "Back to site", + "description": "We read every trial request ourselves before anything gets built.", + "next_description": "If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.", + "next_heading": "A first draft, built from your own words", + "question": "What happens now that you've sent this?" + } +} diff --git a/src/build.rs b/src/build.rs index e75b0b5..9cc5e65 100644 --- a/src/build.rs +++ b/src/build.rs @@ -57,11 +57,53 @@ pub struct Plan { /// no admin session, a member of the business vouching for a person. #[serde(default)] pub invites_by: Vec, + /// What the business does, said plainly, one feature each: the + /// front door's first card, which asks for nothing. A stranger + /// reads it and decides whether to trust the place before any + /// button is offered. Empty means one feature per public need, + /// from its `wants`. + #[serde(default)] + pub does: Vec, + /// Things a visitor may look at before asking for anything - the + /// window shopping: a list of what has been built, releases, a + /// live count - each a portal resource block, passed through as + /// written. Public views of buckets (`watched_by: [public]`) are + /// listed here on their own. + #[serde(default)] + pub shows: Vec, pub needs: Vec, #[serde(default)] pub personas: Vec, } +#[derive(Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct Does { + pub id: String, + /// The fallback description, in the business's words. + pub text: String, + /// The need this feature speaks for: one role, so the opener is + /// one or two roles meeting, not a catalogue. + #[serde(default, rename = "for")] + pub for_need: Option, +} + +/// Features the opener may carry. One or two, each for a role: past +/// that the opener is a menu again, and a menu is what it is there +/// to spare the visitor. +const MAX_OPENER: usize = 2; + +#[derive(Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct Show { + pub id: String, + #[serde(default)] + pub text: String, + /// Portal's `resource:` block for a feature, verbatim (source, + /// jq, public, empty). The lint holds it to portal's schema. + pub resource: Value, +} + fn english() -> String { "en".to_string() } @@ -209,6 +251,27 @@ impl Plan { bail!("door {:?}: that path is taken by the builder's own pages", door.id); } } + let mut cards = BTreeSet::new(); + for id in self.does.iter().map(|d| &d.id).chain(self.shows.iter().map(|s| &s.id)) { + if !is_id(id) || !cards.insert(id) { + bail!("does/shows {id:?}: id must be unique ASCII lowercase with - or _"); + } + } + for show in &self.shows { + if !show.resource.is_object() || show.resource.get("source").is_none() { + bail!("shows {:?}: resource must be portal's resource block, with a source", show.id); + } + } + if self.does.len() > MAX_OPENER { + bail!("does: the opener advertises one or two features, one role each; {} is a menu", self.does.len()); + } + for d in &self.does { + if let Some(need) = &d.for_need { + if !self.needs.iter().any(|n| &n.id == need) { + bail!("does {:?}: `for` names {need:?}, which is not one of the needs", d.id); + } + } + } let mut labelled = BTreeSet::new(); for g in &self.groups { if !is_id(&g.id) || !labelled.insert(&g.id) || g.label.trim().is_empty() { @@ -334,6 +397,26 @@ impl Plan { Ok(()) } + /// The house and its players: a role the opener invites in has to + /// see its win, and the machine has to give it something to do + /// after it sits down - a move of its own (`moves_by: submitter`) + /// or at least a view of the table (`watched_by: [public]`). A + /// featured role with neither is a spectator, and the build says + /// so; it does not refuse, since the plan may mean it. + pub fn spectators(&self) -> Vec { + self.does + .iter() + .filter_map(|d| d.for_need.as_ref().and_then(|id| self.needs.iter().find(|n| &n.id == id))) + .filter(|n| !n.moves_by.values().any(|m| m.iter().any(|w| w == SUBMITTER)) && !n.watched_by.iter().any(|g| g == PUBLIC)) + .map(|n| { + format!( + "the opener invites {} in, and after sending they play nothing: give need {:?} a move of theirs (moves_by: {{: [submitter, ...]}}) or a public view (watched_by: [public])", + n.who, n.id + ) + }) + .collect() + } + /// What sits on the front door: each door, and each public need /// with no door. fn front_door_count(&self) -> usize { @@ -464,11 +547,52 @@ pub fn fallback_words(plan: &Plan) -> BTreeMap { }; let mut words = BTreeMap::new(); let direct: Vec<&PlanNeed> = plan.needs.iter().filter(|n| n.enters_as.is_none() && n.door.is_none()).collect(); + // The opener: what the business does, asking for nothing. From + // the plan's `does`, or one feature per public need. + let does: Map = if plan.does.is_empty() { + // One or two roles, the first the plan names: the visitor the + // business exists for, and the next one it serves. + plan.needs + .iter() + .filter(|n| n.enters_as.is_none()) + .take(MAX_OPENER) + .map(|n| (n.id.clone(), json!({ "heading": humanize(&n.wants), "description": format!("For {}.", n.who), "icon": "" }))) + .collect() + } else { + // A feature for a role is headed by that role's win: what + // the need says they want. + plan.does + .iter() + .map(|d| { + let heading = d + .for_need + .as_ref() + .and_then(|id| plan.needs.iter().find(|n| &n.id == id)) + .map(|n| humanize(&n.wants)) + .unwrap_or_else(|| humanize(&d.id)); + (d.id.clone(), json!({ "heading": heading, "description": d.text, "icon": "" })) + }) + .collect() + }; + let mut shopping: Map = + plan.shows.iter().map(|s| (s.id.clone(), json!({ "heading": humanize(&s.id), "description": s.text, "icon": "" }))).collect(); + for (bucket, needs) in public_buckets(plan) { + shopping.insert( + format!("status-{bucket}"), + json!({ + "heading": format!("See all {}", humanize(bucket).to_lowercase()), + "description": format!("Everything sent in by {}, and where each one stands.", needs.iter().map(|n| n.who.as_str()).collect::>().join(" or ")), + "icon": "list", + }), + ); + } words.insert( "questions/index.yaml".to_string(), json!({ "question": "What brings you here?", "description": plan.about, + "opener": { "heading": "What we do", "description": "", "features": does }, + "shopping": { "heading": "Have a look around", "description": "", "items": shopping }, "doors": plan.doors.iter().map(|d| (d.id.clone(), json!({ "heading": humanize(&d.id), "description": format!("For {}.", d.who), "button": "Continue", "icon": "", "for_whom": "", @@ -602,7 +726,7 @@ fn decide_path(need: &PlanNeed) -> String { const SUBMITTER: &str = "submitter"; /// Alternatives on one page before a visitor stops reading them. -const MAX_FRONT_DOOR: usize = 5; +const MAX_FRONT_DOOR: usize = 7; /// Who presses the button into `to`. fn movers<'a>(need: &'a PlanNeed, to: &str) -> Vec<&'a str> { @@ -829,10 +953,47 @@ pub fn render(plan: &Plan, words: &BTreeMap) -> anyhow::Result>() }), ); - // The front door: one alternative per door, then one per need the - // public brings straight to it. + // The front door opens modestly: first what the business does, + // in features and no button; then what a visitor may look at; + // and only then, further down, one alternative per door and one + // per need the public brings straight to it. A stranger decides + // to trust the place before being asked for anything. let front = &words["questions/index.yaml"]; - let mut alternatives: Vec = plan + let card = |w: &Value| { + let mut f = json!({ "name": s(&w["heading"]), "description": s(&w["description"]) }); + if let Some(icon) = icon_name(s(&w["icon"])) { + f["icon"] = json!(icon); + } + f + }; + let does: Vec = front["opener"]["features"].as_object().into_iter().flatten().map(|(_, w)| card(w)).collect(); + let mut alternatives: Vec = vec![json!({ + "name": s(&front["opener"]["heading"]), + "description": s(&front["opener"]["description"]), + "features": does, + })]; + let mut shopping: Vec = plan + .shows + .iter() + .map(|show| { + let mut f = card(&front["shopping"]["items"][&show.id]); + f["resource"] = show.resource.clone(); + f + }) + .collect(); + for (bucket, _) in public_buckets(plan) { + let mut f = card(&front["shopping"]["items"][&format!("status-{bucket}")]); + f["description"] = json!(format!("{} [{}](/status/{bucket})", s(&f["description"]).trim(), s(&front["shopping"]["items"][&format!("status-{bucket}")]["heading"]))); + shopping.push(f); + } + if !shopping.is_empty() { + alternatives.push(json!({ + "name": s(&front["shopping"]["heading"]), + "description": s(&front["shopping"]["description"]), + "features": shopping, + })); + } + alternatives.extend(plan .doors .iter() .map(|d| { @@ -853,8 +1014,7 @@ pub fn render(plan: &Plan, words: &BTreeMap) -> anyhow::Result) -> anyhow::Result MAX_FRONT_DOOR { eprintln!( - "build: the front door offers {} alternatives; past {MAX_FRONT_DOOR} a visitor stops reading. Put needs behind doors.", + "build: the front door offers {} alternatives after the opener; past {MAX_FRONT_DOOR} a visitor stops reading. Fewer offers, or needs that share one.", plan.front_door_count() ); } @@ -1099,7 +1259,7 @@ fn words_prompt(plan: &Plan, path: &str, fallback: &Value) -> String { let purpose = if path.contains("/decide/") { "a page the person who sent a form reaches later, through a private link, to make a decision that is theirs: under `moves`, each entry is one thing they can decide." } else if path == "questions/index.yaml" { - "the front door: the first page any visitor sees. `question` is the page's one question. Under `doors`, each entry is one alternative that leads to a page of its own for one kind of visitor: its heading must let that visitor recognise themselves from the heading alone. Under `needs`, each entry is one alternative with a form behind it." + "the front door: the first page any visitor sees. `question` is the page's one question. It opens modestly: `opener` is the first card, what the business does in several features and no button at all - a stranger reads it and decides whether to trust the place, so say what is true and useful, not what to press. `shopping` is the second card, things a visitor may look at before asking for anything. Only then come the offers: under `doors`, each entry is one alternative that leads to a page of its own for one kind of visitor, and its heading must let that visitor recognise themselves from the heading alone; under `needs`, each entry is one alternative with a form behind it." } else if path.starts_with("questions/status/") { "a public page anyone can open, listing everything sent in to one bucket and where each one stands, read-only. `question` is what this page asks; `heading` names the list." } else if plan.doors.iter().any(|d| door_path(d) == path) { @@ -1142,6 +1302,9 @@ pub fn run(argv: &[String]) -> anyhow::Result<()> { let plan: Plan = serde_yaml::from_str(&std::fs::read_to_string(&plan_path).with_context(|| format!("reading {plan_path}"))?) .with_context(|| format!("parsing {plan_path}"))?; plan.validate()?; + for warning in plan.spectators() { + eprintln!("build: {warning}"); + } // Words, in layers: the fallbacks; what an existing repo already // says (hand edits survive a rebuild); explicit overrides for new @@ -1269,7 +1432,7 @@ mod tests { front["needs"]["survey"]["hints"]["email"] = json!("you@example.no"); let files = render(&plan, &words).unwrap(); let page: Value = serde_yaml::from_str(&files["questions/index.yaml"]).unwrap(); - let alt = &page["alternatives"][0]; + let alt = &page["alternatives"][1]; assert_eq!(alt["consequence"][0], "Book a look"); assert_eq!(alt["encouragements"][0], "We call within two days."); // Two context sections from the plan come before the form. @@ -1357,18 +1520,53 @@ mod tests { assert!(plan.validate().unwrap_err().to_string().contains("required `email`")); } + #[test] + fn the_front_door_opens_with_what_we_do_and_a_look_around_before_any_button() { + let yaml = "business: B\ncontact: { name: I, email: i@b.example }\ndoes:\n - { id: fix, text: We fix roofs., for: leak }\n - { id: keep, text: We keep them fixed. }\nshows:\n - id: built\n text: Roofs we have done.\n resource: { public: true, source: { kind: url, url: https://b.example/roofs.json } }\nneeds:\n - id: leak\n who: owners\n wants: a dry house\n lands_in: leaks\n handled_by: roofers\n watched_by: [public]\n stages: [open, fixed]\n done_when: [fixed]\n max_fields: 1\n collects:\n - { name: where }\n - id: apply\n who: workers\n wants: a job\n lands_in: applicants\n handled_by: roofers\n stages: [open, hired]\n done_when: [hired]\n max_fields: 1\n collects:\n - { name: name }\n"; + let plan: Plan = serde_yaml::from_str(yaml).unwrap(); + plan.validate().unwrap(); + let files = render(&plan, &fallback_words(&plan)).unwrap(); + let front: Value = serde_yaml::from_str(&files["questions/index.yaml"]).unwrap(); + let alts = front["alternatives"].as_array().unwrap(); + // The opener: two features, no action, no form. + assert_eq!(alts[0]["name"], "What we do"); + assert!(alts[0].get("action").is_none()); + assert_eq!(alts[0]["features"].as_array().unwrap().len(), 2); + assert_eq!(alts[0]["features"][0]["description"], "We fix roofs."); + // The look around: the resource verbatim, and the public view linked. + assert_eq!(alts[1]["name"], "Have a look around"); + assert!(alts[1].get("action").is_none()); + assert_eq!(alts[1]["features"][0]["resource"]["source"]["kind"], "url"); + assert!(alts[1]["features"][1]["description"].as_str().unwrap().contains("](/status/leaks)")); + // Only then the offers. + assert_eq!(alts[2]["record_as"], "leaks"); + assert_eq!(alts[3]["record_as"], "applicants"); + // The role the opener invites in is headed by its win, and + // must have something to play: the owner watches the public + // list, so no warning; take that away and the build says so. + assert_eq!(alts[0]["features"][0]["name"], "A dry house"); + assert!(plan.spectators().is_empty()); + let spectator: Plan = serde_yaml::from_str(&yaml.replace(" watched_by: [public]\n", "")).unwrap(); + assert!(spectator.spectators()[0].contains("play nothing")); + // Three features is a menu; a `for` must name a need. + let three = yaml.replace(" - { id: keep, text: We keep them fixed. }\n", " - { id: keep, text: x }\n - { id: more, text: y }\n"); + assert!(serde_yaml::from_str::(&three).unwrap().validate().unwrap_err().to_string().contains("one or two")); + let bad = yaml.replace("for: leak", "for: nothing"); + assert!(serde_yaml::from_str::(&bad).unwrap().validate().unwrap_err().to_string().contains("nothing")); + } + #[test] fn a_door_is_a_first_question_with_its_needs_on_a_page_of_their_own() { let yaml = "business: B\ncontact: { name: I, email: i@b.example }\ndoors:\n - { id: your-building, who: an owner with a building }\nneeds:\n - id: survey\n who: owners\n wants: a look\n door: your-building\n lands_in: enquiries\n handled_by: pms\n stages: [open, won, lost]\n done_when: [won, lost]\n max_fields: 2\n collects:\n - { name: email, type: email }\n - id: build\n who: owners\n wants: a price\n door: your-building\n lands_in: enquiries\n handled_by: pms\n stages: [open, won, lost]\n done_when: [won, lost]\n max_fields: 2\n collects:\n - { name: email, type: email }\n - id: apply\n who: workers\n wants: a job\n lands_in: applicants\n handled_by: pms\n stages: [open, hired]\n done_when: [hired]\n max_fields: 1\n collects:\n - { name: name }\n"; let plan: Plan = serde_yaml::from_str(yaml).unwrap(); plan.validate().unwrap(); let files = render(&plan, &fallback_words(&plan)).unwrap(); - // The front door: the door, then the direct need. + // The front door: the opener, then the door, then the direct need. let front: Value = serde_yaml::from_str(&files["questions/index.yaml"]).unwrap(); let names: Vec<&str> = front["alternatives"].as_array().unwrap().iter().map(|a| a["name"].as_str().unwrap()).collect(); - assert_eq!(names, ["Your building", "a job"]); - assert_eq!(front["alternatives"][0]["action"], "/your-building"); - assert!(front["alternatives"][0].get("record_as").is_none()); + assert_eq!(names, ["What we do", "Your building", "a job"]); + assert_eq!(front["alternatives"][1]["action"], "/your-building"); + assert!(front["alternatives"][1].get("record_as").is_none()); // The door's page holds both forms and is not gated. let door: Value = serde_yaml::from_str(&files["questions/your-building/index.yaml"]).unwrap(); assert_eq!(door["alternatives"].as_array().unwrap().len(), 2); @@ -1398,7 +1596,7 @@ mod tests { plan.validate().unwrap(); let files = render(&plan, &fallback_words(&plan)).unwrap(); let page: Value = serde_yaml::from_str(&files["questions/index.yaml"]).unwrap(); - let field = &page["alternatives"][0]["features"][2]["requirements"][1]; + let field = &page["alternatives"][1]["features"][2]["requirements"][1]; assert_eq!(field["options"], json!(["Trafikkforhold", "Elvesti"])); assert_eq!(field["multiple"], true); // Without labelled groups there is nothing to draw from.