From 6f2f7e271cd709f6a0d773e413dd4e7a84249eb9 Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Thu, 24 Sep 2026 08:28:26 +0200 Subject: [PATCH] runs: the football club with a sender, stage words and mails The second Norwegian case: level with its earlier build on routing inside the spread, desks 13 of 14 with outcomes in words, Norwegian mails from Sonnet in one pass. Co-Authored-By: Claude Fable 5.1 --- plans/fotballklubb.yaml | 9 +- runs/fotballklubb-2026-09-24/README.md | 22 + .../answers-full-seed0.jsonl | 16 + .../answers-full-seed1.jsonl | 16 + .../answers-full-seed2.jsonl | 16 + runs/fotballklubb-2026-09-24/model.json | 702 ++++++++++++++++++ runs/fotballklubb-2026-09-24/rated/rate.json | 259 +++++++ .../site/aggregates.yaml | 118 +++ runs/fotballklubb-2026-09-24/site/needs.yaml | 149 ++++ .../site/questions/bidra/index.yaml | 78 ++ .../site/questions/foresatte/index.yaml | 97 +++ .../site/questions/index.yaml | 33 + .../site/questions/kasserer/_section.yaml | 1 + .../site/questions/kasserer/index.yaml | 56 ++ .../site/questions/received/avgiftssak.yaml | 10 + .../site/questions/received/frivillig.yaml | 10 + .../site/questions/received/innmelding.yaml | 10 + .../site/questions/received/sponsor.yaml | 10 + .../site/questions/styret/_section.yaml | 1 + .../site/questions/styret/index.yaml | 137 ++++ .../site/questions/trenere/_section.yaml | 1 + .../questions/trenere/baneproblem-sent.yaml | 10 + .../site/questions/trenere/baneproblem.yaml | 34 + .../site/questions/trenere/index.yaml | 67 ++ runs/fotballklubb-2026-09-24/site/site.yaml | 5 + runs/fotballklubb-2026-09-24/site/words.json | 377 ++++++++++ runs/fotballklubb-2026-09-24/spread.sh | 19 + runs/fotballklubb-2026-09-24/tasks-full.jsonl | 16 + 28 files changed, 2278 insertions(+), 1 deletion(-) create mode 100644 runs/fotballklubb-2026-09-24/README.md create mode 100644 runs/fotballklubb-2026-09-24/answers-full-seed0.jsonl create mode 100644 runs/fotballklubb-2026-09-24/answers-full-seed1.jsonl create mode 100644 runs/fotballklubb-2026-09-24/answers-full-seed2.jsonl create mode 100644 runs/fotballklubb-2026-09-24/model.json create mode 100644 runs/fotballklubb-2026-09-24/rated/rate.json create mode 100644 runs/fotballklubb-2026-09-24/site/aggregates.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/needs.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/bidra/index.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/foresatte/index.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/index.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/kasserer/_section.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/kasserer/index.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/received/avgiftssak.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/received/frivillig.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/received/innmelding.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/received/sponsor.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/styret/_section.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/styret/index.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/trenere/_section.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/trenere/baneproblem-sent.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/trenere/baneproblem.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/questions/trenere/index.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/site.yaml create mode 100644 runs/fotballklubb-2026-09-24/site/words.json create mode 100755 runs/fotballklubb-2026-09-24/spread.sh create mode 100644 runs/fotballklubb-2026-09-24/tasks-full.jsonl diff --git a/plans/fotballklubb.yaml b/plans/fotballklubb.yaml index 95591ac..6f55263 100644 --- a/plans/fotballklubb.yaml +++ b/plans/fotballklubb.yaml @@ -5,6 +5,7 @@ business: Lia IL Fotball language: no contact: { name: Kari Lien, email: kari@liail.example } +mail: { from: "Liail IL ", reply_to: kari@liail.example } about: > Fotballgruppa i et idrettslag på bygda. Rundt hundre og tjue unger fra seks til seksten år, fordelt på lag etter årskull, drevet av @@ -24,6 +25,8 @@ needs: lands_in: innmeldinger handled_by: trenere stages: [open, godkjent, betalt, trukket] + stages_text: { open: "mottatt", godkjent: "godkjent av treneren", betalt: "betalt", trukket: "trukket" } + mails: { open: submitter, godkjent: submitter, betalt: submitter } done_when: [betalt, trukket] success: [betalt] # Treneren godkjenner plassen, kassereren ser at det er betalt. @@ -35,7 +38,7 @@ needs: - { name: fodselsar, type: select, options: ["2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020"] } - { name: foresatt } - { name: telefon, type: tel } - - { name: epost, type: email } + - { name: email, type: email } - { name: spilt_for, optional: true } - id: avgiftssak @@ -45,6 +48,7 @@ needs: lands_in: avgiftssaker handled_by: styret stages: [open, vurdert, innvilget, avslatt] + stages_text: { open: "mottatt", vurdert: "vurdert", innvilget: "innvilget", avslatt: "avslått" } done_when: [innvilget, avslatt] success: [innvilget] max_fields: 3 @@ -61,6 +65,7 @@ needs: lands_in: frivillige handled_by: styret stages: [open, kontaktet, plassert, avslatt] + stages_text: { open: "mottatt", kontaktet: "kontaktet", plassert: "satt opp", avslatt: "takket nei" } done_when: [plassert, avslatt] success: [plassert] max_fields: 3 @@ -76,6 +81,7 @@ needs: lands_in: sponsorer handled_by: styret stages: [open, i_dialog, avtalt, avslatt] + stages_text: { open: "mottatt", i_dialog: "i dialog", avtalt: "avtalt", avslatt: "avslått" } done_when: [avtalt, avslatt] success: [avtalt] max_fields: 3 @@ -92,6 +98,7 @@ needs: lands_in: baneproblemer handled_by: styret stages: [open, tatt_tak_i, ordnet] + stages_text: { open: "mottatt", tatt_tak_i: "tatt tak i", ordnet: "ordnet" } done_when: [ordnet] success: [ordnet] max_fields: 2 diff --git a/runs/fotballklubb-2026-09-24/README.md b/runs/fotballklubb-2026-09-24/README.md new file mode 100644 index 0000000..af54011 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/README.md @@ -0,0 +1,22 @@ +# Liail IL, the football club, with this week's keys, 2026-09-24 + +The Norwegian football club plan given what the vel got: a sender, +`stages_text` on every need, and mails to the household on the three +stages of an enrolment; the email field renamed to `email` so the +mails can go to it. Words by Sonnet in one pass, in Norwegian (the +language guard raised nothing), iris green. + +| Score | Result | +|---|---| +| Routing with descriptions, seeds 0, 1, 2 | 14, 11, 13 of 16 | +| Same plan, 2026-09-22, Sonnet words, one seed | 13 of 16 | +| Desks (buttons a row shows, outcome in words) | 13 of 14 | +| Mails, LIX | 30 to 39, easy; 33 to 40 words | + +Level with the earlier build inside a spread of three, which on +sixteen tasks is the noise floor. The one desk miss is a rejection +from `open` read as "contacted". The mails are on the long side for +a club; a `--llm-for aggregates.yaml` pass asking for shorter would +be the next thing to try, and the second Norwegian site where every +Norwegian-specific fix of the last day held: stage words in the desk +score, Norwegian mails, the language guard. diff --git a/runs/fotballklubb-2026-09-24/answers-full-seed0.jsonl b/runs/fotballklubb-2026-09-24/answers-full-seed0.jsonl new file mode 100644 index 0000000..b555057 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/answers-full-seed0.jsonl @@ -0,0 +1,16 @@ +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"ny-i-bygda@/"} +{"choice":"Meld ungen din på laget","confidence":0.95,"id":"ny-i-bygda@/foresatte"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"tvillinger@/"} +{"choice":"Meld ungen din på laget","confidence":0.95,"id":"tvillinger@/foresatte"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"alenefar@/"} +{"choice":"Få hjelp med treningsavgiften","confidence":0.95,"id":"alenefar@/foresatte"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"permittert@/"} +{"choice":"Få hjelp med treningsavgiften","confidence":0.95,"id":"permittert@/foresatte"} +{"choice":"Hjelp til eller støtt klubben","confidence":0.85,"id":"pensjonist@/"} +{"choice":"Bidra med det du kan","confidence":0.95,"id":"pensjonist@/bidra"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"stor-bil@/"} +{"choice":"Bidra med det du kan","confidence":0.95,"id":"stor-bil@/bidra"} +{"choice":"Hjelp til eller støtt klubben","confidence":0.85,"id":"rorlegger@/"} +{"choice":"Støtt fotballen på bygda","confidence":0.95,"id":"rorlegger@/bidra"} +{"choice":"Hjelp til eller støtt klubben","confidence":0.95,"id":"kafeen@/"} +{"choice":"Bidra med det du kan","confidence":0.95,"id":"kafeen@/bidra"} diff --git a/runs/fotballklubb-2026-09-24/answers-full-seed1.jsonl b/runs/fotballklubb-2026-09-24/answers-full-seed1.jsonl new file mode 100644 index 0000000..bec3bae --- /dev/null +++ b/runs/fotballklubb-2026-09-24/answers-full-seed1.jsonl @@ -0,0 +1,16 @@ +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"ny-i-bygda@/"} +{"choice":"Meld ungen din på laget","confidence":0.95,"id":"ny-i-bygda@/foresatte"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"tvillinger@/"} +{"choice":"Få hjelp med treningsavgiften","confidence":0.95,"id":"tvillinger@/foresatte"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"alenefar@/"} +{"choice":"Få hjelp med treningsavgiften","confidence":0.95,"id":"alenefar@/foresatte"} +{"choice":"Få barnet ditt med på laget","confidence":0.85,"id":"permittert@/"} +{"choice":"Få hjelp med treningsavgiften","confidence":0.85,"id":"permittert@/foresatte"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"pensjonist@/"} +{"choice":"Bidra med det du kan","confidence":0.85,"id":"pensjonist@/bidra"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"stor-bil@/"} +{"choice":"Bidra med det du kan","confidence":0.95,"id":"stor-bil@/bidra"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"rorlegger@/"} +{"choice":"Støtt fotballen på bygda","confidence":0.95,"id":"rorlegger@/bidra"} +{"choice":"Hjelp til eller støtt klubben","confidence":0.85,"id":"kafeen@/"} +{"choice":"Bidra med det du kan","confidence":0.95,"id":"kafeen@/bidra"} diff --git a/runs/fotballklubb-2026-09-24/answers-full-seed2.jsonl b/runs/fotballklubb-2026-09-24/answers-full-seed2.jsonl new file mode 100644 index 0000000..ebb3b01 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/answers-full-seed2.jsonl @@ -0,0 +1,16 @@ +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"ny-i-bygda@/"} +{"choice":"Meld ungen din på laget","confidence":0.95,"id":"ny-i-bygda@/foresatte"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"tvillinger@/"} +{"choice":"Få hjelp med treningsavgiften","confidence":0.95,"id":"tvillinger@/foresatte"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"alenefar@/"} +{"choice":"Få hjelp med treningsavgiften","confidence":0.95,"id":"alenefar@/foresatte"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"permittert@/"} +{"choice":"Få hjelp med treningsavgiften","confidence":0.85,"id":"permittert@/foresatte"} +{"choice":"Hjelp til eller støtt klubben","confidence":0.85,"id":"pensjonist@/"} +{"choice":"Bidra med det du kan","confidence":0.95,"id":"pensjonist@/bidra"} +{"choice":"Hjelp til eller støtt klubben","confidence":0.85,"id":"stor-bil@/"} +{"choice":"Bidra med det du kan","confidence":0.95,"id":"stor-bil@/bidra"} +{"choice":"Få barnet ditt med på laget","confidence":0.95,"id":"rorlegger@/"} +{"choice":"Støtt fotballen på bygda","confidence":0.95,"id":"rorlegger@/bidra"} +{"choice":"Hjelp til eller støtt klubben","confidence":0.95,"id":"kafeen@/"} +{"choice":"Bidra med det du kan","confidence":0.95,"id":"kafeen@/bidra"} diff --git a/runs/fotballklubb-2026-09-24/model.json b/runs/fotballklubb-2026-09-24/model.json new file mode 100644 index 0000000..1cb9218 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/model.json @@ -0,0 +1,702 @@ +{ + "needs": [ + { + "id": "innmelding", + "who": "en forelder som vil ha ungen med på et lag", + "wants": "at barnet får plass på laget for sitt årskull", + "enters_as": null, + "lands_in": "innmeldinger", + "handled_by": "trenere", + "done_when": [ + "betalt", + "trukket" + ], + "success": [ + "betalt" + ], + "steps": [ + { + "page": "/", + "question": "Hva vil du gjøre hos oss?", + "context": "Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull.", + "options": [ + { + "name": "Få barnet ditt med på laget", + "description": "Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen." + }, + { + "name": "Hjelp til eller støtt klubben", + "description": "Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget." + } + ], + "expect": [ + "Få barnet ditt med på laget" + ], + "alternative": "Få barnet ditt med på laget", + "fields": [] + }, + { + "page": "/foresatte", + "question": "Vil du melde på ungen din, eller trenger dere hjelp med avgiften?", + "context": "", + "options": [ + { + "name": "Meld ungen din på laget", + "description": "Meld ungen din på laget for sitt årskull, så tar trenerne det derfra." + }, + { + "name": "Få hjelp med treningsavgiften", + "description": "Vi finner en løsning sammen, enten det er å dele opp betalingen eller søke om støtte. Ingen unger skal stå utenfor på grunn av avgiften." + } + ], + "expect": [ + "Meld ungen din på laget" + ], + "alternative": "Meld ungen din på laget", + "fields": [ + { + "name": "barnets_navn", + "label": "Barnets navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "fodselsar", + "label": "Fødselsår", + "type": "select", + "optional": false, + "options": [ + "2010", + "2011", + "2012", + "2013", + "2014", + "2015", + "2016", + "2017", + "2018", + "2019", + "2020" + ] + }, + { + "name": "foresatt", + "label": "Ditt navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "telefon", + "label": "Telefon", + "type": "tel", + "optional": false, + "options": [] + }, + { + "name": "email", + "label": "E-post", + "type": "email", + "optional": false, + "options": [] + }, + { + "name": "spilt_for", + "label": "Spilt for tidligere", + "type": "text", + "optional": true, + "options": [] + } + ] + } + ] + }, + { + "id": "avgiftssak", + "who": "en forelder som sliter med treningsavgiften", + "wants": "å dele den opp, eller slippe den", + "enters_as": null, + "lands_in": "avgiftssaker", + "handled_by": "styret", + "done_when": [ + "innvilget", + "avslatt" + ], + "success": [ + "innvilget" + ], + "steps": [ + { + "page": "/", + "question": "Hva vil du gjøre hos oss?", + "context": "Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull.", + "options": [ + { + "name": "Få barnet ditt med på laget", + "description": "Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen." + }, + { + "name": "Hjelp til eller støtt klubben", + "description": "Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget." + } + ], + "expect": [ + "Få barnet ditt med på laget" + ], + "alternative": "Få barnet ditt med på laget", + "fields": [] + }, + { + "page": "/foresatte", + "question": "Vil du melde på ungen din, eller trenger dere hjelp med avgiften?", + "context": "", + "options": [ + { + "name": "Meld ungen din på laget", + "description": "Meld ungen din på laget for sitt årskull, så tar trenerne det derfra." + }, + { + "name": "Få hjelp med treningsavgiften", + "description": "Vi finner en løsning sammen, enten det er å dele opp betalingen eller søke om støtte. Ingen unger skal stå utenfor på grunn av avgiften." + } + ], + "expect": [ + "Få hjelp med treningsavgiften" + ], + "alternative": "Få hjelp med treningsavgiften", + "fields": [ + { + "name": "barnets_navn", + "label": "Barnets navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "foresatt", + "label": "Ditt navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "hva_gjelder_det", + "label": "Hva gjelder det", + "type": "textarea", + "optional": false, + "options": [] + }, + { + "name": "telefon", + "label": "Telefon", + "type": "tel", + "optional": true, + "options": [] + } + ] + } + ] + }, + { + "id": "frivillig", + "who": "en som vil hjelpe til, som trener, lagleder, sjåfør eller på dugnad", + "wants": "å bli brukt der det trengs", + "enters_as": null, + "lands_in": "frivillige", + "handled_by": "styret", + "done_when": [ + "plassert", + "avslatt" + ], + "success": [ + "plassert" + ], + "steps": [ + { + "page": "/", + "question": "Hva vil du gjøre hos oss?", + "context": "Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull.", + "options": [ + { + "name": "Få barnet ditt med på laget", + "description": "Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen." + }, + { + "name": "Hjelp til eller støtt klubben", + "description": "Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget." + } + ], + "expect": [ + "Hjelp til eller støtt klubben" + ], + "alternative": "Hjelp til eller støtt klubben", + "fields": [] + }, + { + "page": "/bidra", + "question": "Vil du hjelpe til eller støtte klubben?", + "context": "", + "options": [ + { + "name": "Bidra med det du kan", + "description": "Trenere, lagledere, sjåfører og folk på dugnad - vi trenger alltid flere hender." + }, + { + "name": "Støtt fotballen på bygda", + "description": "Er du fra en bedrift i bygda som vil støtte fotballgruppa? Vi tar gjerne en prat om hva dere kan bidra med." + } + ], + "expect": [ + "Bidra med det du kan" + ], + "alternative": "Bidra med det du kan", + "fields": [ + { + "name": "navn", + "label": "Navn", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "telefon", + "label": "Telefon", + "type": "tel", + "optional": false, + "options": [] + }, + { + "name": "hva_kan_du", + "label": "Hva kan du bidra med?", + "type": "select", + "optional": false, + "options": [ + "Trene et lag", + "Være lagleder", + "Kjøre til kamper", + "Dugnad", + "Annet" + ] + } + ] + } + ] + }, + { + "id": "sponsor", + "who": "en bedrift i bygda som vil støtte klubben", + "wants": "en prat om hva de kan bidra med, og en avtale", + "enters_as": null, + "lands_in": "sponsorer", + "handled_by": "styret", + "done_when": [ + "avtalt", + "avslatt" + ], + "success": [ + "avtalt" + ], + "steps": [ + { + "page": "/", + "question": "Hva vil du gjøre hos oss?", + "context": "Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull.", + "options": [ + { + "name": "Få barnet ditt med på laget", + "description": "Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen." + }, + { + "name": "Hjelp til eller støtt klubben", + "description": "Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget." + } + ], + "expect": [ + "Hjelp til eller støtt klubben" + ], + "alternative": "Hjelp til eller støtt klubben", + "fields": [] + }, + { + "page": "/bidra", + "question": "Vil du hjelpe til eller støtte klubben?", + "context": "", + "options": [ + { + "name": "Bidra med det du kan", + "description": "Trenere, lagledere, sjåfører og folk på dugnad - vi trenger alltid flere hender." + }, + { + "name": "Støtt fotballen på bygda", + "description": "Er du fra en bedrift i bygda som vil støtte fotballgruppa? Vi tar gjerne en prat om hva dere kan bidra med." + } + ], + "expect": [ + "Støtt fotballen på bygda" + ], + "alternative": "Støtt fotballen på bygda", + "fields": [ + { + "name": "bedrift", + "label": "Bedrift", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "kontaktperson", + "label": "Kontaktperson", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "telefon", + "label": "Telefon", + "type": "tel", + "optional": false, + "options": [] + }, + { + "name": "hva_tenker_dere", + "label": "Hva tenker dere å bidra med?", + "type": "textarea", + "optional": true, + "options": [] + } + ] + } + ] + }, + { + "id": "baneproblem", + "who": "en trener som ser at noe på anlegget ikke er i orden", + "wants": "at styret får vite det og ordner det", + "enters_as": "trenere", + "lands_in": "baneproblemer", + "handled_by": "styret", + "done_when": [ + "ordnet" + ], + "success": [ + "ordnet" + ], + "steps": [ + { + "page": "/trenere/baneproblem", + "question": "Har du sett noe på anlegget som bør ordnes?", + "context": "", + "options": [ + { + "name": "Meld fra om noe som ikke er i orden", + "description": "Ser du noe på banen eller anlegget som ikke er i orden? Gi beskjed til styret, så tar de tak i det." + } + ], + "expect": [ + "Meld fra om noe som ikke er i orden" + ], + "alternative": "Meld fra om noe som ikke er i orden", + "fields": [ + { + "name": "hvor", + "label": "Hvor på anlegget?", + "type": "text", + "optional": false, + "options": [] + }, + { + "name": "hva", + "label": "Hva gjelder det?", + "type": "textarea", + "optional": false, + "options": [] + } + ] + } + ] + } + ], + "buckets": { + "innmeldinger": { + "initial": "open", + "transitions": { + "godkjent": [ + "betalt", + "trukket" + ], + "open": [ + "godkjent", + "trukket" + ] + }, + "words": { + "betalt": "betalt", + "godkjent": "godkjent av treneren", + "open": "mottatt", + "trukket": "trukket" + }, + "desks": [ + { + "page": "/kasserer", + "group": "kasserer", + "moves": [ + { + "from": "godkjent", + "to": "betalt", + "label": "Merk som betalt" + } + ] + }, + { + "page": "/trenere", + "group": "trenere", + "moves": [ + { + "from": "godkjent", + "to": "trukket", + "label": "Trekk påmeldingen" + }, + { + "from": "open", + "to": "godkjent", + "label": "Godkjenn plass" + }, + { + "from": "open", + "to": "trukket", + "label": "Avvis påmeldingen" + } + ] + } + ], + "self_moves": [] + }, + "avgiftssaker": { + "initial": "open", + "transitions": { + "vurdert": [ + "innvilget", + "avslatt" + ], + "open": [ + "vurdert", + "avslatt" + ] + }, + "words": { + "avslatt": "avslått", + "innvilget": "innvilget", + "open": "mottatt", + "vurdert": "vurdert" + }, + "desks": [ + { + "page": "/styret", + "group": "styret", + "moves": [ + { + "from": "open", + "to": "vurdert", + "label": "Merk som vurdert" + }, + { + "from": "open", + "to": "avslatt", + "label": "Avslå søknaden" + }, + { + "from": "vurdert", + "to": "innvilget", + "label": "Innvilg søknaden" + }, + { + "from": "vurdert", + "to": "avslatt", + "label": "Avslå søknaden" + } + ] + } + ], + "self_moves": [] + }, + "frivillige": { + "initial": "open", + "transitions": { + "kontaktet": [ + "plassert", + "avslatt" + ], + "open": [ + "kontaktet", + "avslatt" + ] + }, + "words": { + "avslatt": "takket nei", + "kontaktet": "kontaktet", + "open": "mottatt", + "plassert": "satt opp" + }, + "desks": [ + { + "page": "/styret", + "group": "styret", + "moves": [ + { + "from": "kontaktet", + "to": "plassert", + "label": "Merk som plassert" + }, + { + "from": "kontaktet", + "to": "avslatt", + "label": "Avslå henvendelsen" + }, + { + "from": "open", + "to": "kontaktet", + "label": "Merk som kontaktet" + }, + { + "from": "open", + "to": "avslatt", + "label": "Avslå henvendelsen" + } + ] + } + ], + "self_moves": [] + }, + "sponsorer": { + "initial": "open", + "transitions": { + "open": [ + "i_dialog", + "avslatt" + ], + "i_dialog": [ + "avtalt", + "avslatt" + ] + }, + "words": { + "avslatt": "avslått", + "avtalt": "avtalt", + "i_dialog": "i dialog", + "open": "mottatt" + }, + "desks": [ + { + "page": "/styret", + "group": "styret", + "moves": [ + { + "from": "i_dialog", + "to": "avtalt", + "label": "Merk som avtalt" + }, + { + "from": "i_dialog", + "to": "avslatt", + "label": "Avslå henvendelsen" + }, + { + "from": "open", + "to": "i_dialog", + "label": "Start dialog" + }, + { + "from": "open", + "to": "avslatt", + "label": "Avslå henvendelsen" + } + ] + } + ], + "self_moves": [] + }, + "baneproblemer": { + "initial": "open", + "transitions": { + "open": [ + "tatt_tak_i" + ], + "tatt_tak_i": [ + "ordnet" + ] + }, + "words": { + "open": "mottatt", + "ordnet": "ordnet", + "tatt_tak_i": "tatt tak i" + }, + "desks": [ + { + "page": "/styret", + "group": "styret", + "moves": [ + { + "from": "open", + "to": "tatt_tak_i", + "label": "Ta tak i saken" + }, + { + "from": "tatt_tak_i", + "to": "ordnet", + "label": "Merk som ordnet" + } + ] + } + ], + "self_moves": [] + } + }, + "personas": [ + { + "id": "ny-i-bygda", + "need": "innmelding", + "text": "Vi flyttet hit i sommer og sønnen vår på ni har spilt fotball før. Hvordan får vi ham med på et lag her?" + }, + { + "id": "tvillinger", + "need": "innmelding", + "text": "Jeg har tvillingjenter på sju som maser om å begynne. Er det plass, og hva koster det?" + }, + { + "id": "alenefar", + "need": "avgiftssak", + "text": "Jeg er alene med tre unger og treningsavgiften for alle tre blir for mye på en gang. Går det an å dele den opp?" + }, + { + "id": "permittert", + "need": "avgiftssak", + "text": "Jeg ble permittert i vinter. Kan dattera mi fortsette å spille selv om vi ikke klarer avgiften akkurat nå?" + }, + { + "id": "pensjonist", + "need": "frivillig", + "text": "Jeg er pensjonert og spilte selv i mange år. Har dere bruk for en som kan ta de minste et par kvelder i uka?" + }, + { + "id": "stor-bil", + "need": "frivillig", + "text": "Jeg kan ikke trene noen, men jeg har stor bil og kan kjøre til bortekamper." + }, + { + "id": "rorlegger", + "need": "sponsor", + "text": "Jeg driver rørleggerfirma her i bygda og vil gjerne ha logoen vår på draktene til et lag. Hvem snakker jeg med?" + }, + { + "id": "kafeen", + "need": "sponsor", + "text": "Vi har kafé i sentrum og kan bidra med noe til cupen i mai, kanskje vafler eller litt penger." + }, + { + "id": "lyset-slukker", + "need": "baneproblem", + "text": "Lyset på kunstgresset slår seg av halv åtte og vi trener til åtte. Ungene løper i mørket." + } + ] +} \ No newline at end of file diff --git a/runs/fotballklubb-2026-09-24/rated/rate.json b/runs/fotballklubb-2026-09-24/rated/rate.json new file mode 100644 index 0000000..e09ff96 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/rated/rate.json @@ -0,0 +1,259 @@ +{ + "avgiftssak": { + "pages": [ + { + "control": { + "asked": 0, + "next": null, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": false, + "lix": 28.98039215686275, + "options": 2, + "overloaded": false, + "page": "/", + "personas": 2, + "required_fields": 0, + "understanding": { + "asked": 2, + "next": null, + "where": 2, + "which": 2 + } + }, + { + "control": { + "asked": 0, + "next": 0, + "where": 1, + "which": 0 + }, + "control_ok": false, + "followup_shown": true, + "lix": 29.669950738916256, + "options": 2, + "overloaded": false, + "page": "/foresatte", + "personas": 2, + "required_fields": 3, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 1 + } + } + ], + "steps": 2 + }, + "baneproblem": { + "pages": [ + { + "control": { + "asked": 0, + "next": 0, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": true, + "lix": 20.090909090909093, + "options": 1, + "overloaded": false, + "page": "/trenere/baneproblem", + "personas": 1, + "required_fields": 2, + "understanding": { + "asked": 1, + "next": 1, + "where": 1, + "which": 1 + } + } + ], + "steps": 1 + }, + "desk /styret avgiftssaker": { + "mistaken": [], + "of": 4, + "right": 4 + }, + "desk /styret frivillige": { + "mistaken": [ + "open>avslatt as \"Merk som kontaktet\"" + ], + "of": 4, + "right": 3 + }, + "desk /styret sponsorer": { + "mistaken": [], + "of": 4, + "right": 4 + }, + "desk /trenere innmeldinger": { + "mistaken": [], + "of": 2, + "right": 2 + }, + "frivillig": { + "pages": [ + { + "control": { + "asked": 0, + "next": null, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": false, + "lix": 28.98039215686275, + "options": 2, + "overloaded": false, + "page": "/", + "personas": 2, + "required_fields": 0, + "understanding": { + "asked": 2, + "next": null, + "where": 2, + "which": 2 + } + }, + { + "control": { + "asked": 0, + "next": 0, + "where": 2, + "which": 0 + }, + "control_ok": false, + "followup_shown": true, + "lix": 29.606653620352247, + "options": 2, + "overloaded": false, + "page": "/bidra", + "personas": 2, + "required_fields": 3, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 2 + }, + "innmelding": { + "pages": [ + { + "control": { + "asked": 0, + "next": null, + "where": 1, + "which": 0 + }, + "control_ok": false, + "followup_shown": false, + "lix": 28.98039215686275, + "options": 2, + "overloaded": false, + "page": "/", + "personas": 2, + "required_fields": 0, + "understanding": { + "asked": 2, + "next": null, + "where": 2, + "which": 2 + } + }, + { + "control": { + "asked": 0, + "next": 0, + "where": 1, + "which": 0 + }, + "control_ok": false, + "followup_shown": true, + "lix": 31.454545454545453, + "options": 2, + "overloaded": false, + "page": "/foresatte", + "personas": 2, + "required_fields": 5, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 2 + }, + "mail innmeldinger:betalt": { + "lix": 30.017543859649123, + "words": 40 + }, + "mail innmeldinger:godkjent": { + "lix": 39.333333333333336, + "words": 37 + }, + "mail innmeldinger:open": { + "lix": 31.4, + "words": 33 + }, + "sponsor": { + "pages": [ + { + "control": { + "asked": 0, + "next": null, + "where": 0, + "which": 0 + }, + "control_ok": true, + "followup_shown": false, + "lix": 28.98039215686275, + "options": 2, + "overloaded": false, + "page": "/", + "personas": 2, + "required_fields": 0, + "understanding": { + "asked": 2, + "next": null, + "where": 2, + "which": 2 + } + }, + { + "control": { + "asked": 0, + "next": 0, + "where": 1, + "which": 0 + }, + "control_ok": false, + "followup_shown": true, + "lix": 26.20779220779221, + "options": 2, + "overloaded": false, + "page": "/bidra", + "personas": 2, + "required_fields": 3, + "understanding": { + "asked": 2, + "next": 2, + "where": 2, + "which": 2 + } + } + ], + "steps": 2 + } +} \ No newline at end of file diff --git a/runs/fotballklubb-2026-09-24/site/aggregates.yaml b/runs/fotballklubb-2026-09-24/site/aggregates.yaml new file mode 100644 index 0000000..cc98d1c --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/aggregates.yaml @@ -0,0 +1,118 @@ +aggregates: +- bucket: avgiftssaker + initial: open + states: + avslatt: + event: avslatt + innvilget: + event: innvilget + open: + event: received + vurdert: + event: vurdert + transitions: + open: + - vurdert + - avslatt + vurdert: + - innvilget + - avslatt +- bucket: baneproblemer + initial: open + states: + open: + event: received + ordnet: + event: ordnet + tatt_tak_i: + event: tatt_tak_i + transitions: + open: + - tatt_tak_i + tatt_tak_i: + - ordnet +- bucket: frivillige + initial: open + states: + avslatt: + event: avslatt + kontaktet: + event: kontaktet + open: + event: received + plassert: + event: plassert + transitions: + kontaktet: + - plassert + - avslatt + open: + - kontaktet + - avslatt +- bucket: innmeldinger + initial: open + states: + betalt: + event: betalt + mail: + body: |- + Hei! + + Vi har mottatt betalingen for {chain}. Da er alt i orden, og barnet er klart for sesongen. + + Takk for at dere er med i Lia IL Fotball! + + Hilsen Lia IL Fotball + subject: Betaling mottatt - velkommen til Lia IL Fotball + to: submitter + godkjent: + event: godkjent + mail: + body: |- + Hei! + + Barnet er godkjent på laget for sitt årskull. Nå gjenstår kun betaling av treningsavgiften, så er plassen sikret. + + Dere hører fra trenerne om oppstart og praktiske detaljer. + + Hilsen Lia IL Fotball + subject: Godkjent - klar for laget + to: submitter + open: + event: received + mail: + body: |- + Hei! + + Vi har mottatt påmeldingen for {chain}. Trenerne ser på den og gir beskjed så snart barnet har fått plass på laget for sitt årskull. + + Hilsen Lia IL Fotball + subject: Vi har mottatt påmeldingen + to: submitter + trukket: + event: trukket + transitions: + godkjent: + - betalt + - trukket + open: + - godkjent + - trukket +- bucket: sponsorer + initial: open + states: + avslatt: + event: avslatt + avtalt: + event: avtalt + i_dialog: + event: i_dialog + open: + event: received + transitions: + i_dialog: + - avtalt + - avslatt + open: + - i_dialog + - avslatt diff --git a/runs/fotballklubb-2026-09-24/site/needs.yaml b/runs/fotballklubb-2026-09-24/site/needs.yaml new file mode 100644 index 0000000..f832fbc --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/needs.yaml @@ -0,0 +1,149 @@ +needs: +- also_moved_by: + - kasserer + done_when: + - betalt + - trukket + enters: / + handled_by: trenere + id: innmelding + lands_in: innmeldinger + max_fields: 5 + max_steps: 2 + stage_words: + betalt: betalt + godkjent: godkjent av treneren + open: mottatt + trukket: trukket + stages: + - open + - godkjent + - betalt + - trukket + success: + - betalt + via: Få barnet ditt med på laget + wants: at barnet får plass på laget for sitt årskull + who: en forelder som vil ha ungen med på et lag +- done_when: + - innvilget + - avslatt + enters: / + handled_by: styret + id: avgiftssak + lands_in: avgiftssaker + max_fields: 3 + max_steps: 2 + stage_words: + avslatt: avslått + innvilget: innvilget + open: mottatt + vurdert: vurdert + stages: + - open + - vurdert + - innvilget + - avslatt + success: + - innvilget + via: Få barnet ditt med på laget + wants: å dele den opp, eller slippe den + who: en forelder som sliter med treningsavgiften +- done_when: + - plassert + - avslatt + enters: / + handled_by: styret + id: frivillig + lands_in: frivillige + max_fields: 3 + max_steps: 2 + stage_words: + avslatt: takket nei + kontaktet: kontaktet + open: mottatt + plassert: satt opp + stages: + - open + - kontaktet + - plassert + - avslatt + success: + - plassert + via: Hjelp til eller støtt klubben + wants: å bli brukt der det trengs + who: en som vil hjelpe til, som trener, lagleder, sjåfør eller på dugnad +- done_when: + - avtalt + - avslatt + enters: / + handled_by: styret + id: sponsor + lands_in: sponsorer + max_fields: 3 + max_steps: 2 + stage_words: + avslatt: avslått + avtalt: avtalt + i_dialog: i dialog + open: mottatt + stages: + - open + - i_dialog + - avtalt + - avslatt + success: + - avtalt + via: Hjelp til eller støtt klubben + wants: en prat om hva de kan bidra med, og en avtale + who: en bedrift i bygda som vil støtte klubben +- done_when: + - ordnet + enters: /trenere/baneproblem + enters_as: trenere + handled_by: styret + id: baneproblem + lands_in: baneproblemer + max_fields: 2 + max_steps: 1 + stage_words: + open: mottatt + ordnet: ordnet + tatt_tak_i: tatt tak i + stages: + - open + - tatt_tak_i + - ordnet + success: + - ordnet + via: Meld fra om noe som ikke er i orden + wants: at styret får vite det og ordner det + who: en trener som ser at noe på anlegget ikke er i orden +personas: +- id: ny-i-bygda + need: innmelding + text: Vi flyttet hit i sommer og sønnen vår på ni har spilt fotball før. Hvordan får vi ham med på et lag her? +- id: tvillinger + need: innmelding + text: Jeg har tvillingjenter på sju som maser om å begynne. Er det plass, og hva koster det? +- id: alenefar + need: avgiftssak + text: Jeg er alene med tre unger og treningsavgiften for alle tre blir for mye på en gang. Går det an å dele den opp? +- id: permittert + need: avgiftssak + text: Jeg ble permittert i vinter. Kan dattera mi fortsette å spille selv om vi ikke klarer avgiften akkurat nå? +- id: pensjonist + need: frivillig + text: Jeg er pensjonert og spilte selv i mange år. Har dere bruk for en som kan ta de minste et par kvelder i uka? +- id: stor-bil + need: frivillig + text: Jeg kan ikke trene noen, men jeg har stor bil og kan kjøre til bortekamper. +- id: rorlegger + need: sponsor + text: Jeg driver rørleggerfirma her i bygda og vil gjerne ha logoen vår på draktene til et lag. Hvem snakker jeg med? +- id: kafeen + need: sponsor + text: Vi har kafé i sentrum og kan bidra med noe til cupen i mai, kanskje vafler eller litt penger. +- id: lyset-slukker + need: baneproblem + text: Lyset på kunstgresset slår seg av halv åtte og vi trener til åtte. Ungene løper i mørket. diff --git a/runs/fotballklubb-2026-09-24/site/questions/bidra/index.yaml b/runs/fotballklubb-2026-09-24/site/questions/bidra/index.yaml new file mode 100644 index 0000000..b3df1cb --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/bidra/index.yaml @@ -0,0 +1,78 @@ +alternatives: +- action: /received/frivillig + consequence: + - Meld deg + description: Trenere, lagledere, sjåfører og folk på dugnad - vi trenger alltid flere hender. + encouragements: + - Du binder deg ikke til noe ved å sende dette - vi tar en prat om hva som passer. + features: + - description: Styret tar kontakt med deg, og sammen finner dere hvor du passer inn - som trener, lagleder, sjåfør eller på dugnad. + icon: lucide:route + name: Hva skjer videre + - description: Styret leser meldingen din - du kan også ringe Kari på kari@liail.example i mellomtiden. + icon: lucide:users + name: Hvem leser dette + - description: Fortell litt om deg selv, så finner vi ut hvor du trengs mest. + icon: lucide:hand-helping + name: Bli frivillig + requirements: + - label: Navn + name: navn + placeholder: Ola Nordmann + type: text + - label: Telefon + name: telefon + placeholder: 123 45 678 + type: tel + - label: Hva kan du bidra med? + name: hva_kan_du + options: + - Trene et lag + - Være lagleder + - Kjøre til kamper + - Dugnad + - Annet + type: select + name: Bidra med det du kan + record_as: frivillige +- action: /received/sponsor + consequence: + - Ta kontakt + description: Er du fra en bedrift i bygda som vil støtte fotballgruppa? Vi tar gjerne en prat om hva dere kan bidra med. + encouragements: + - Det koster ingenting å spørre - vi finner en løsning som passer dere. + features: + - description: Styret tar kontakt for en prat om hva som passer, og dere blir enige om en avtale. + icon: lucide:route + name: Hva skjer videre + - description: Styret leser henvendelsen - du kan også ringe Kari på kari@liail.example i mellomtiden. + icon: lucide:users + name: Hvem leser dette + - description: Skriv litt om hva dere ser for dere, så tar vi kontakt. + icon: lucide:handshake + name: Bli sponsor + requirements: + - label: Bedrift + name: bedrift + placeholder: Bygdas Byggvarer AS + type: text + - label: Kontaktperson + name: kontaktperson + placeholder: Kari Nordmann + type: text + - label: Telefon + name: telefon + placeholder: 123 45 678 + type: tel + - label: Hva tenker dere å bidra med? + name: hva_tenker_dere + optional: true + placeholder: Vil gjerne sponse draktene, eller bidra med noe annet + type: textarea + name: Støtt fotballen på bygda + record_as: sponsorer +description: Klubben går rundt fordi foreldre og lokale bedrifter stiller opp. Her kan du melde deg som frivillig eller som sponsor. +name: Vil du hjelpe til eller støtte klubben? +responsible: + contact: kari@liail.example + name: Kari Lien diff --git a/runs/fotballklubb-2026-09-24/site/questions/foresatte/index.yaml b/runs/fotballklubb-2026-09-24/site/questions/foresatte/index.yaml new file mode 100644 index 0000000..7acd594 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/foresatte/index.yaml @@ -0,0 +1,97 @@ +alternatives: +- action: /received/innmelding + consequence: + - Meld inn + description: Meld ungen din på laget for sitt årskull, så tar trenerne det derfra. + encouragements: + - Det tar bare et par minutter, og du hører fra treneren så snart plassen er klar. + features: + - description: Trenerne godkjenner påmeldingen og setter barnet på riktig lag. Når det er gjort, betaler du avgiften, og ungen er klar til å spille. + icon: lucide:check-circle + name: Hva skjer videre + - description: Trenerne for årskullet leser påmeldingen, og du kan ringe Kari om du lurer på noe underveis. + icon: lucide:user-check + name: Hvem leser dette + - description: Ha gjerne fødselsår og eventuell tidligere klubb klart. + icon: lucide:footprints + name: Meld på ungen + requirements: + - label: Barnets navn + name: barnets_navn + placeholder: Ola Nordmann + type: text + - label: Fødselsår + name: fodselsar + options: + - '2010' + - '2011' + - '2012' + - '2013' + - '2014' + - '2015' + - '2016' + - '2017' + - '2018' + - '2019' + - '2020' + type: select + - label: Ditt navn + name: foresatt + placeholder: Kari Nordmann + type: text + - label: Telefon + name: telefon + placeholder: 912 34 567 + type: tel + - label: E-post + name: email + placeholder: kari@epost.no + type: email + - label: Spilt for tidligere + name: spilt_for + optional: true + placeholder: Har ikke spilt fotball før + type: text + name: Meld ungen din på laget + record_as: innmeldinger +- action: /received/avgiftssak + consequence: + - Send inn + description: Vi finner en løsning sammen, enten det er å dele opp betalingen eller søke om støtte. Ingen unger skal stå utenfor på grunn av avgiften. + encouragements: + - Dette blir behandlet fortrolig, og du hører fra oss så fort styret har sett på saken. + features: + - description: Saken din blir sett på, og du får svar på om dere kan få en ordning eller ikke. Vi gir beskjed uansett hva svaret blir. + icon: lucide:clipboard-list + name: Hva skjer videre + - description: Styret leser dette selv, og du kan alltids ta direkte kontakt med Kari i mellomtiden. + icon: lucide:users + name: Hvem leser dette + - description: Fortell kort hva saken gjelder, så tar vi kontakt. + icon: lucide:wallet + name: Om avgiften + requirements: + - label: Barnets navn + name: barnets_navn + placeholder: Ola Nordmann + type: text + - label: Ditt navn + name: foresatt + placeholder: Kari Nordmann + type: text + - label: Hva gjelder det + name: hva_gjelder_det + placeholder: Vi ønsker å dele opp avgiften over flere måneder + type: textarea + - label: Telefon + name: telefon + optional: true + placeholder: 912 34 567 + type: tel + name: Få hjelp med treningsavgiften + record_as: avgiftssaker +description: Skal ungen din spille fotball hos oss, eller sliter dere med å få treningsavgiften til å gå opp? Her finner du fram. +name: Vil du melde på ungen din, eller trenger dere hjelp med avgiften? +responsible: + contact: kari@liail.example + name: Kari Lien diff --git a/runs/fotballklubb-2026-09-24/site/questions/index.yaml b/runs/fotballklubb-2026-09-24/site/questions/index.yaml new file mode 100644 index 0000000..5d6b695 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/index.yaml @@ -0,0 +1,33 @@ +alternatives: +- description: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. + features: + - description: Sliter du med treningsavgiften, kan vi se på en avtale. + icon: lucide:wallet + name: Få hjelp med treningsavgiften + - description: Meld ungen på laget for sitt årskull. + icon: lucide:user-plus + name: Meld barnet på et lag + name: Fotball for ungene i bygda +- action: /foresatte + consequence: + - Meld på barnet + description: Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen. + features: + - description: '' + icon: lucide:baby + name: Deg som har en unge som spiller, eller vil begynne + name: Få barnet ditt med på laget +- action: /bidra + consequence: + - Meld interesse + description: Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget. + features: + - description: '' + icon: lucide:hand-helping + name: Deg som vil bidra, eller din bedrift + name: Hjelp til eller støtt klubben +description: Vi er fotballgruppa til Lia IL – et sted der ungene får spille på lag med jevnaldrende, trent av foreldre fra bygda. +name: Hva vil du gjøre hos oss? +responsible: + contact: kari@liail.example + name: Kari Lien diff --git a/runs/fotballklubb-2026-09-24/site/questions/kasserer/_section.yaml b/runs/fotballklubb-2026-09-24/site/questions/kasserer/_section.yaml new file mode 100644 index 0000000..2f8af2f --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/kasserer/_section.yaml @@ -0,0 +1 @@ +qualifies: kasserer diff --git a/runs/fotballklubb-2026-09-24/site/questions/kasserer/index.yaml b/runs/fotballklubb-2026-09-24/site/questions/kasserer/index.yaml new file mode 100644 index 0000000..1e23113 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/kasserer/index.yaml @@ -0,0 +1,56 @@ +alternatives: +- action: /kasserer + consequence: + - Bekreft + description: Alle påmeldinger til lagene, sortert etter hvor de står i løpet. + features: + - description: '' + name: '' + resource: + requires_group: kasserer + source: + bucket: innmeldinger + kind: kv + transitions: + - from: godkjent + label: Merk som betalt + to: betalt + name: Se hvem som vil spille +- action: /kasserer + consequence: + - Send invitasjon + description: Gi noen tilgang til å hjelpe deg med kassererarbeidet, som avgifter og innbetalinger. + features: + - description: '' + name: Inviter en kasserer + requirements: + - label: Navn + name: name + - label: E-postadresse + name: email + type: email + invite: + group: kasserer + name: Få hjelp med kassa +- action: /kasserer + consequence: + - Bekreft + description: Folk du har bedt om å hjelpe til med kassereroppgaver, og om de har tatt imot invitasjonen ennå. + features: + - description: '' + name: '' + resource: + requires_group: kasserer + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Tatt imot + to: done + name: Følg med på invitasjonene dine +description: Her har du oversikt over innmeldinger, avgiftssaker og folk du har invitert til å hjelpe med kassa. +name: Hva trenger kassa hjelp med akkurat nå? +responsible: + contact: kari@liail.example + name: Kari Lien diff --git a/runs/fotballklubb-2026-09-24/site/questions/received/avgiftssak.yaml b/runs/fotballklubb-2026-09-24/site/questions/received/avgiftssak.yaml new file mode 100644 index 0000000..72f026f --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/received/avgiftssak.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Styret behandler saker fortløpende og gir deg beskjed på e-post eller telefon når de har landet på en løsning. + name: Styret tar kontakt med et svar +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Vi har fått søknaden din om treningsavgiften. Styret ser på den og svarer deg så snart de kan. +name: Hva skjer nå med søknaden min? diff --git a/runs/fotballklubb-2026-09-24/site/questions/received/frivillig.yaml b/runs/fotballklubb-2026-09-24/site/questions/received/frivillig.yaml new file mode 100644 index 0000000..3e87f11 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/received/frivillig.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Styret ser gjennom hva klubben trenger akkurat nå, og finner en oppgave som passer for deg. + name: Styret finner riktig oppgave til deg +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Meldingen din har gått til styret. De tar kontakt for å høre hvor du passer inn. +name: Hva skjer nå som jeg har meldt meg? diff --git a/runs/fotballklubb-2026-09-24/site/questions/received/innmelding.yaml b/runs/fotballklubb-2026-09-24/site/questions/received/innmelding.yaml new file mode 100644 index 0000000..1d12097 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/received/innmelding.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Trenerne går gjennom påmeldingen og gir barnet plass på laget for sitt årskull. Dere hører fra dem når det er avklart. + name: Trenerne ser på påmeldingen +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Meldingen er sendt til trenerne for laget. De tar kontakt så snart de har sett gjennom påmeldingen. +name: Hva skjer nå som jeg har meldt på barnet? diff --git a/runs/fotballklubb-2026-09-24/site/questions/received/sponsor.yaml b/runs/fotballklubb-2026-09-24/site/questions/received/sponsor.yaml new file mode 100644 index 0000000..f601cb8 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/received/sponsor.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Styret svarer så fort de kan, som regel i løpet av noen dager, og avtaler et sted å prate videre. + name: Styret tar kontakt for en prat +- action: / + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Takk for at dere vil støtte Lia IL Fotball. Noen fra styret ser gjennom henvendelsen og tar kontakt for en prat om hva dere kan bidra med. +name: Har henvendelsen vår kommet fram? diff --git a/runs/fotballklubb-2026-09-24/site/questions/styret/_section.yaml b/runs/fotballklubb-2026-09-24/site/questions/styret/_section.yaml new file mode 100644 index 0000000..5a34160 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/styret/_section.yaml @@ -0,0 +1 @@ +qualifies: styret diff --git a/runs/fotballklubb-2026-09-24/site/questions/styret/index.yaml b/runs/fotballklubb-2026-09-24/site/questions/styret/index.yaml new file mode 100644 index 0000000..32d2711 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/styret/index.yaml @@ -0,0 +1,137 @@ +alternatives: +- action: /styret + consequence: + - Bekreft + description: Familier som sliter med å betale treningsavgiften, og trenger en avtale om betaling. + features: + - description: '' + name: '' + resource: + requires_group: styret + source: + bucket: avgiftssaker + kind: kv + transitions: + - from: open + label: Merk som vurdert + to: vurdert + - from: open + label: Avslå søknaden + to: avslatt + - from: vurdert + label: Innvilg søknaden + to: innvilget + - from: vurdert + label: Avslå søknaden + to: avslatt + name: Søknader om redusert eller delt avgift +- action: /styret + consequence: + - Bekreft + description: Ting trenere har meldt fra om på anlegget, som styret må ta tak i. + features: + - description: '' + name: '' + resource: + requires_group: styret + source: + bucket: baneproblemer + kind: kv + transitions: + - from: open + label: Ta tak i saken + to: tatt_tak_i + - from: tatt_tak_i + label: Merk som ordnet + to: ordnet + name: Meldinger om anlegget +- action: /styret + consequence: + - Bekreft + description: Foreldre og andre som har meldt seg til å hjelpe til, klare for å bli satt i sving. + features: + - description: '' + name: '' + resource: + requires_group: styret + source: + bucket: frivillige + kind: kv + transitions: + - from: kontaktet + label: Merk som plassert + to: plassert + - from: kontaktet + label: Avslå henvendelsen + to: avslatt + - from: open + label: Merk som kontaktet + to: kontaktet + - from: open + label: Avslå henvendelsen + to: avslatt + name: Folk som vil bidra +- action: /styret + consequence: + - Bekreft + description: Bedrifter på bygda som vil støtte klubben, og som venter på en prat om avtale. + features: + - description: '' + name: '' + resource: + requires_group: styret + source: + bucket: sponsorer + kind: kv + transitions: + - from: i_dialog + label: Merk som avtalt + to: avtalt + - from: i_dialog + label: Avslå henvendelsen + to: avslatt + - from: open + label: Start dialog + to: i_dialog + - from: open + label: Avslå henvendelsen + to: avslatt + name: Bedrifter som vil sponse +- action: /styret + consequence: + - Send invitasjon + description: Gi et nytt styremedlem tilgang til denne siden med en engangslenke. + features: + - description: '' + name: Inviter til styret + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: styret + name: Inviter noen inn i styret +- action: /styret + consequence: + - Bekreft + description: Styremedlemmer som har fått invitasjon, og om de har tatt den i bruk. + features: + - description: '' + name: '' + resource: + requires_group: styret + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Tatt i bruk + to: done + name: Inviterte styremedlemmer +description: Her holder styret oversikt over avgiftssaker, baneproblemer, frivillige og sponsorer. +name: Hva trenger styret å følge opp nå? +responsible: + contact: kari@liail.example + name: Kari Lien diff --git a/runs/fotballklubb-2026-09-24/site/questions/trenere/_section.yaml b/runs/fotballklubb-2026-09-24/site/questions/trenere/_section.yaml new file mode 100644 index 0000000..03a1f29 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/trenere/_section.yaml @@ -0,0 +1 @@ +qualifies: trenere diff --git a/runs/fotballklubb-2026-09-24/site/questions/trenere/baneproblem-sent.yaml b/runs/fotballklubb-2026-09-24/site/questions/trenere/baneproblem-sent.yaml new file mode 100644 index 0000000..5fb2811 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/trenere/baneproblem-sent.yaml @@ -0,0 +1,10 @@ +alternatives: +- description: Styret tar tak i saken og fikser det som trengs, eller sier fra hvis det tar tid. + name: Styret følger opp saken +- action: /trenere + consequence: + - Tilbake til forsiden + description: '' + name: Tilbake til forsiden +description: Meldingen om baneproblemet er sendt til styret. +name: Hva skjer nå? diff --git a/runs/fotballklubb-2026-09-24/site/questions/trenere/baneproblem.yaml b/runs/fotballklubb-2026-09-24/site/questions/trenere/baneproblem.yaml new file mode 100644 index 0000000..cce5805 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/trenere/baneproblem.yaml @@ -0,0 +1,34 @@ +alternatives: +- action: /trenere/baneproblem-sent + consequence: + - Meld fra om feil + description: Ser du noe på banen eller anlegget som ikke er i orden? Gi beskjed til styret, så tar de tak i det. + encouragements: + - Du hører fra styret så snart de har sett på saken. + features: + - description: Meldingen går til styret, som tar tak i saken og ordner det som trengs. + icon: lucide:wrench + name: Slik følges det opp + - description: Styret leser meldingen og følger opp; haster det, ring Kari Lien i mellomtiden. + icon: lucide:users + name: Hvem leser dette + - description: Beskriv hva du så, og hvor det var. + icon: lucide:alert-triangle + name: Meld baneproblem + requirements: + - label: Hvor på anlegget? + name: hvor + placeholder: Bane 2, ved siden av klubbhuset + type: text + - label: Hva gjelder det? + name: hva + placeholder: Løs plate på tribunen, hull i nettet på mål A + type: textarea + name: Meld fra om noe som ikke er i orden + record_as: baneproblemer +description: Se du noe på treningsfeltet, banen eller anlegget som bør fikses? Send en kort melding, så følger styret det opp. +followup: false +name: Har du sett noe på anlegget som bør ordnes? +responsible: + contact: kari@liail.example + name: Kari Lien diff --git a/runs/fotballklubb-2026-09-24/site/questions/trenere/index.yaml b/runs/fotballklubb-2026-09-24/site/questions/trenere/index.yaml new file mode 100644 index 0000000..daa5553 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/questions/trenere/index.yaml @@ -0,0 +1,67 @@ +alternatives: +- action: /trenere + consequence: + - Bekreft + description: Meldinger fra foreldre som vil ha ungen sin med på et lag. + features: + - description: '' + name: '' + resource: + requires_group: trenere + source: + bucket: innmeldinger + kind: kv + transitions: + - from: godkjent + label: Trekk påmeldingen + to: trukket + - from: open + label: Godkjenn plass + to: godkjent + - from: open + label: Avvis påmeldingen + to: trukket + name: Nye påmeldinger til laget +- action: /trenere/baneproblem + consequence: + - Meld fra + description: Si ifra til styret om noe på anlegget ikke er i orden. + name: Meld fra om noe på anlegget +- action: /trenere + consequence: + - Send invitasjon + description: Inviter en ny trener til å få tilgang som trener på laget. + features: + - description: '' + name: Inviter trener + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: trenere + name: Få inn en ny trener +- action: /trenere + consequence: + - Bekreft + description: Trenere du har invitert, og om de har tatt imot invitasjonen. + features: + - description: '' + name: '' + resource: + requires_group: trenere + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Har startet + to: done + name: Trenere du har invitert +description: Her ser du påmeldinger til lagene, sender invitasjon til nye trenere og melder fra om baneproblem. +name: Hva trenger jeg å følge opp for laget mitt? +responsible: + contact: kari@liail.example + name: Kari Lien diff --git a/runs/fotballklubb-2026-09-24/site/site.yaml b/runs/fotballklubb-2026-09-24/site/site.yaml new file mode 100644 index 0000000..ac2ba78 --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/site.yaml @@ -0,0 +1,5 @@ +lang: no +mail: + from: Liail IL + reply_to: kari@liail.example +title: Lia IL Fotball diff --git a/runs/fotballklubb-2026-09-24/site/words.json b/runs/fotballklubb-2026-09-24/site/words.json new file mode 100644 index 0000000..99e432a --- /dev/null +++ b/runs/fotballklubb-2026-09-24/site/words.json @@ -0,0 +1,377 @@ +{ + "aggregates.yaml": { + "innmeldinger": { + "betalt": { + "body": "Hei!\n\nVi har mottatt betalingen for {chain}. Da er alt i orden, og barnet er klart for sesongen.\n\nTakk for at dere er med i Lia IL Fotball!\n\nHilsen Lia IL Fotball", + "subject": "Betaling mottatt - velkommen til Lia IL Fotball" + }, + "godkjent": { + "body": "Hei!\n\nBarnet er godkjent på laget for sitt årskull. Nå gjenstår kun betaling av treningsavgiften, så er plassen sikret.\n\nDere hører fra trenerne om oppstart og praktiske detaljer.\n\nHilsen Lia IL Fotball", + "subject": "Godkjent - klar for laget" + }, + "open": { + "body": "Hei!\n\nVi har mottatt påmeldingen for {chain}. Trenerne ser på den og gir beskjed så snart barnet har fått plass på laget for sitt årskull.\n\nHilsen Lia IL Fotball", + "subject": "Vi har mottatt påmeldingen" + } + } + }, + "questions/bidra/index.yaml": { + "description": "Klubben går rundt fordi foreldre og lokale bedrifter stiller opp. Her kan du melde deg som frivillig eller som sponsor.", + "needs": { + "frivillig": { + "button": "Meld deg", + "description": "Trenere, lagledere, sjåfører og folk på dugnad - vi trenger alltid flere hender.", + "encouragement": "Du binder deg ikke til noe ved å sende dette - vi tar en prat om hva som passer.", + "form_description": "Fortell litt om deg selv, så finner vi ut hvor du trengs mest.", + "form_title": "Bli frivillig", + "heading": "Bidra med det du kan", + "hints": { + "hva_kan_du": "Kan trene, kjøre til bortekamper, eller stille på dugnad", + "navn": "Ola Nordmann", + "telefon": "123 45 678" + }, + "icon": "hand-helping", + "labels": { + "hva_kan_du": "Hva kan du bidra med?", + "navn": "Navn", + "telefon": "Telefon" + }, + "road_description": "Styret tar kontakt med deg, og sammen finner dere hvor du passer inn - som trener, lagleder, sjåfør eller på dugnad.", + "road_icon": "route", + "road_title": "Hva skjer videre", + "who_description": "Styret leser meldingen din - du kan også ringe Kari på kari@liail.example i mellomtiden.", + "who_icon": "users", + "who_title": "Hvem leser dette" + }, + "sponsor": { + "button": "Ta kontakt", + "description": "Er du fra en bedrift i bygda som vil støtte fotballgruppa? Vi tar gjerne en prat om hva dere kan bidra med.", + "encouragement": "Det koster ingenting å spørre - vi finner en løsning som passer dere.", + "form_description": "Skriv litt om hva dere ser for dere, så tar vi kontakt.", + "form_title": "Bli sponsor", + "heading": "Støtt fotballen på bygda", + "hints": { + "bedrift": "Bygdas Byggvarer AS", + "hva_tenker_dere": "Vil gjerne sponse draktene, eller bidra med noe annet", + "kontaktperson": "Kari Nordmann", + "telefon": "123 45 678" + }, + "icon": "handshake", + "labels": { + "bedrift": "Bedrift", + "hva_tenker_dere": "Hva tenker dere å bidra med?", + "kontaktperson": "Kontaktperson", + "telefon": "Telefon" + }, + "road_description": "Styret tar kontakt for en prat om hva som passer, og dere blir enige om en avtale.", + "road_icon": "route", + "road_title": "Hva skjer videre", + "who_description": "Styret leser henvendelsen - du kan også ringe Kari på kari@liail.example i mellomtiden.", + "who_icon": "users", + "who_title": "Hvem leser dette" + } + }, + "question": "Vil du hjelpe til eller støtte klubben?" + }, + "questions/foresatte/index.yaml": { + "description": "Skal ungen din spille fotball hos oss, eller sliter dere med å få treningsavgiften til å gå opp? Her finner du fram.", + "needs": { + "avgiftssak": { + "button": "Send inn", + "description": "Vi finner en løsning sammen, enten det er å dele opp betalingen eller søke om støtte. Ingen unger skal stå utenfor på grunn av avgiften.", + "encouragement": "Dette blir behandlet fortrolig, og du hører fra oss så fort styret har sett på saken.", + "form_description": "Fortell kort hva saken gjelder, så tar vi kontakt.", + "form_title": "Om avgiften", + "heading": "Få hjelp med treningsavgiften", + "hints": { + "barnets_navn": "Ola Nordmann", + "foresatt": "Kari Nordmann", + "hva_gjelder_det": "Vi ønsker å dele opp avgiften over flere måneder", + "telefon": "912 34 567" + }, + "icon": "wallet", + "labels": { + "barnets_navn": "Barnets navn", + "foresatt": "Ditt navn", + "hva_gjelder_det": "Hva gjelder det", + "telefon": "Telefon" + }, + "road_description": "Saken din blir sett på, og du får svar på om dere kan få en ordning eller ikke. Vi gir beskjed uansett hva svaret blir.", + "road_icon": "clipboard-list", + "road_title": "Hva skjer videre", + "who_description": "Styret leser dette selv, og du kan alltids ta direkte kontakt med Kari i mellomtiden.", + "who_icon": "users", + "who_title": "Hvem leser dette" + }, + "innmelding": { + "button": "Meld inn", + "description": "Meld ungen din på laget for sitt årskull, så tar trenerne det derfra.", + "encouragement": "Det tar bare et par minutter, og du hører fra treneren så snart plassen er klar.", + "form_description": "Ha gjerne fødselsår og eventuell tidligere klubb klart.", + "form_title": "Meld på ungen", + "heading": "Meld ungen din på laget", + "hints": { + "barnets_navn": "Ola Nordmann", + "email": "kari@epost.no", + "fodselsar": "2016", + "foresatt": "Kari Nordmann", + "spilt_for": "Har ikke spilt fotball før", + "telefon": "912 34 567" + }, + "icon": "footprints", + "labels": { + "barnets_navn": "Barnets navn", + "email": "E-post", + "fodselsar": "Fødselsår", + "foresatt": "Ditt navn", + "spilt_for": "Spilt for tidligere", + "telefon": "Telefon" + }, + "road_description": "Trenerne godkjenner påmeldingen og setter barnet på riktig lag. Når det er gjort, betaler du avgiften, og ungen er klar til å spille.", + "road_icon": "check-circle", + "road_title": "Hva skjer videre", + "who_description": "Trenerne for årskullet leser påmeldingen, og du kan ringe Kari om du lurer på noe underveis.", + "who_icon": "user-check", + "who_title": "Hvem leser dette" + } + }, + "question": "Vil du melde på ungen din, eller trenger dere hjelp med avgiften?" + }, + "questions/index.yaml": { + "description": "Vi er fotballgruppa til Lia IL – et sted der ungene får spille på lag med jevnaldrende, trent av foreldre fra bygda.", + "doors": { + "bidra": { + "button": "Meld interesse", + "description": "Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget.", + "for_whom": "Deg som vil bidra, eller din bedrift", + "heading": "Hjelp til eller støtt klubben", + "icon": "hand-helping" + }, + "foresatte": { + "button": "Meld på barnet", + "description": "Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen.", + "for_whom": "Deg som har en unge som spiller, eller vil begynne", + "heading": "Få barnet ditt med på laget", + "icon": "baby" + } + }, + "needs": {}, + "opener": { + "description": "Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull.", + "features": { + "avgiftssak": { + "description": "Sliter du med treningsavgiften, kan vi se på en avtale.", + "heading": "Få hjelp med treningsavgiften", + "icon": "wallet" + }, + "innmelding": { + "description": "Meld ungen på laget for sitt årskull.", + "heading": "Meld barnet på et lag", + "icon": "user-plus" + } + }, + "heading": "Fotball for ungene i bygda" + }, + "question": "Hva vil du gjøre hos oss?", + "shopping": { + "description": "Se hvilke lag vi har, og hvordan årskullene er delt inn.", + "heading": "Se lagene våre", + "items": {} + } + }, + "questions/kasserer/index.yaml": { + "buckets": { + "innmeldinger": { + "description": "Alle påmeldinger til lagene, sortert etter hvor de står i løpet.", + "heading": "Se hvem som vil spille", + "moves": { + "godkjent->betalt": "Merk som betalt" + } + } + }, + "confirm": "Bekreft", + "description": "Her har du oversikt over innmeldinger, avgiftssaker og folk du har invitert til å hjelpe med kassa.", + "invited": { + "description": "Folk du har bedt om å hjelpe til med kassereroppgaver, og om de har tatt imot invitasjonen ennå.", + "done": "Tatt imot", + "heading": "Følg med på invitasjonene dine" + }, + "invites": { + "kasserer": { + "button": "Send invitasjon", + "description": "Gi noen tilgang til å hjelpe deg med kassererarbeidet, som avgifter og innbetalinger.", + "form_title": "Inviter en kasserer", + "heading": "Få hjelp med kassa", + "labels": { + "email": "E-postadresse", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hva trenger kassa hjelp med akkurat nå?" + }, + "questions/received/avgiftssak.yaml": { + "back": "Tilbake til forsiden", + "description": "Vi har fått søknaden din om treningsavgiften. Styret ser på den og svarer deg så snart de kan.", + "next_description": "Styret behandler saker fortløpende og gir deg beskjed på e-post eller telefon når de har landet på en løsning.", + "next_heading": "Styret tar kontakt med et svar", + "question": "Hva skjer nå med søknaden min?" + }, + "questions/received/frivillig.yaml": { + "back": "Tilbake til forsiden", + "description": "Meldingen din har gått til styret. De tar kontakt for å høre hvor du passer inn.", + "next_description": "Styret ser gjennom hva klubben trenger akkurat nå, og finner en oppgave som passer for deg.", + "next_heading": "Styret finner riktig oppgave til deg", + "question": "Hva skjer nå som jeg har meldt meg?" + }, + "questions/received/innmelding.yaml": { + "back": "Tilbake til forsiden", + "description": "Meldingen er sendt til trenerne for laget. De tar kontakt så snart de har sett gjennom påmeldingen.", + "next_description": "Trenerne går gjennom påmeldingen og gir barnet plass på laget for sitt årskull. Dere hører fra dem når det er avklart.", + "next_heading": "Trenerne ser på påmeldingen", + "question": "Hva skjer nå som jeg har meldt på barnet?" + }, + "questions/received/sponsor.yaml": { + "back": "Tilbake til forsiden", + "description": "Takk for at dere vil støtte Lia IL Fotball. Noen fra styret ser gjennom henvendelsen og tar kontakt for en prat om hva dere kan bidra med.", + "next_description": "Styret svarer så fort de kan, som regel i løpet av noen dager, og avtaler et sted å prate videre.", + "next_heading": "Styret tar kontakt for en prat", + "question": "Har henvendelsen vår kommet fram?" + }, + "questions/styret/index.yaml": { + "buckets": { + "avgiftssaker": { + "description": "Familier som sliter med å betale treningsavgiften, og trenger en avtale om betaling.", + "heading": "Søknader om redusert eller delt avgift", + "moves": { + "open->avslatt": "Avslå søknaden", + "open->vurdert": "Merk som vurdert", + "vurdert->avslatt": "Avslå søknaden", + "vurdert->innvilget": "Innvilg søknaden" + } + }, + "baneproblemer": { + "description": "Ting trenere har meldt fra om på anlegget, som styret må ta tak i.", + "heading": "Meldinger om anlegget", + "moves": { + "open->tatt_tak_i": "Ta tak i saken", + "tatt_tak_i->ordnet": "Merk som ordnet" + } + }, + "frivillige": { + "description": "Foreldre og andre som har meldt seg til å hjelpe til, klare for å bli satt i sving.", + "heading": "Folk som vil bidra", + "moves": { + "kontaktet->avslatt": "Avslå henvendelsen", + "kontaktet->plassert": "Merk som plassert", + "open->avslatt": "Avslå henvendelsen", + "open->kontaktet": "Merk som kontaktet" + } + }, + "sponsorer": { + "description": "Bedrifter på bygda som vil støtte klubben, og som venter på en prat om avtale.", + "heading": "Bedrifter som vil sponse", + "moves": { + "i_dialog->avslatt": "Avslå henvendelsen", + "i_dialog->avtalt": "Merk som avtalt", + "open->avslatt": "Avslå henvendelsen", + "open->i_dialog": "Start dialog" + } + } + }, + "confirm": "Bekreft", + "description": "Her holder styret oversikt over avgiftssaker, baneproblemer, frivillige og sponsorer.", + "invited": { + "description": "Styremedlemmer som har fått invitasjon, og om de har tatt den i bruk.", + "done": "Tatt i bruk", + "heading": "Inviterte styremedlemmer" + }, + "invites": { + "styret": { + "button": "Send invitasjon", + "description": "Gi et nytt styremedlem tilgang til denne siden med en engangslenke.", + "form_title": "Inviter til styret", + "heading": "Inviter noen inn i styret", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": {}, + "question": "Hva trenger styret å følge opp nå?" + }, + "questions/trenere/baneproblem-sent.yaml": { + "back": "Tilbake til forsiden", + "description": "Meldingen om baneproblemet er sendt til styret.", + "next_description": "Styret tar tak i saken og fikser det som trengs, eller sier fra hvis det tar tid.", + "next_heading": "Styret følger opp saken", + "question": "Hva skjer nå?" + }, + "questions/trenere/baneproblem.yaml": { + "button": "Meld fra om feil", + "description": "Ser du noe på banen eller anlegget som ikke er i orden? Gi beskjed til styret, så tar de tak i det.", + "encouragement": "Du hører fra styret så snart de har sett på saken.", + "form_description": "Beskriv hva du så, og hvor det var.", + "form_title": "Meld baneproblem", + "heading": "Meld fra om noe som ikke er i orden", + "hints": { + "hva": "Løs plate på tribunen, hull i nettet på mål A", + "hvor": "Bane 2, ved siden av klubbhuset" + }, + "icon": "alert-triangle", + "labels": { + "hva": "Hva gjelder det?", + "hvor": "Hvor på anlegget?" + }, + "page_description": "Se du noe på treningsfeltet, banen eller anlegget som bør fikses? Send en kort melding, så følger styret det opp.", + "question": "Har du sett noe på anlegget som bør ordnes?", + "road_description": "Meldingen går til styret, som tar tak i saken og ordner det som trengs.", + "road_icon": "wrench", + "road_title": "Slik følges det opp", + "who_description": "Styret leser meldingen og følger opp; haster det, ring Kari Lien i mellomtiden.", + "who_icon": "users", + "who_title": "Hvem leser dette" + }, + "questions/trenere/index.yaml": { + "buckets": { + "innmeldinger": { + "description": "Meldinger fra foreldre som vil ha ungen sin med på et lag.", + "heading": "Nye påmeldinger til laget", + "moves": { + "godkjent->trukket": "Trekk påmeldingen", + "open->godkjent": "Godkjenn plass", + "open->trukket": "Avvis påmeldingen" + } + } + }, + "confirm": "Bekreft", + "description": "Her ser du påmeldinger til lagene, sender invitasjon til nye trenere og melder fra om baneproblem.", + "invited": { + "description": "Trenere du har invitert, og om de har tatt imot invitasjonen.", + "done": "Har startet", + "heading": "Trenere du har invitert" + }, + "invites": { + "trenere": { + "button": "Send invitasjon", + "description": "Inviter en ny trener til å få tilgang som trener på laget.", + "form_title": "Inviter trener", + "heading": "Få inn en ny trener", + "labels": { + "email": "E-post", + "name": "Navn" + } + } + }, + "links": { + "baneproblem": { + "button": "Meld fra", + "description": "Si ifra til styret om noe på anlegget ikke er i orden.", + "heading": "Meld fra om noe på anlegget" + } + }, + "question": "Hva trenger jeg å følge opp for laget mitt?" + } +} \ No newline at end of file diff --git a/runs/fotballklubb-2026-09-24/spread.sh b/runs/fotballklubb-2026-09-24/spread.sh new file mode 100755 index 0000000..c43dc8c --- /dev/null +++ b/runs/fotballklubb-2026-09-24/spread.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# The noise floor: answer one run's tasks with several seeds and print +# each seed's score, so a change can be told from the visitor's mood. +# runs/spread.sh runs/ [seeds...] (default seeds: 1 2 3) +set -eu +run=${1:?usage: spread.sh runs/ [seeds...]}; shift +seeds=${*:-1 2 3} +IRIS=/var/local/cargo-target/release/iris +T=/var/local/cargo-target/release/portal-trainer +LLM="MODEL=qwen3:8b $(cd "$(dirname "$0")/.." && pwd)/engines/ollama.sh" +cd "$run" +for mode in full skim; do + skim=""; [ "$mode" = skim ] && skim="--skim" + for s in $seeds; do + $T answer --tasks tasks-$mode.jsonl --repo site --llm "$LLM" --seed "$s" > answers-$mode-seed$s.jsonl + printf "%s seed %s: " "$mode" "$s" + $IRIS check --path site/questions --needs-tasks tasks-$mode.jsonl $skim --needs-score answers-$mode-seed$s.jsonl 2>&1 | grep -E "^wording:" + done +done diff --git a/runs/fotballklubb-2026-09-24/tasks-full.jsonl b/runs/fotballklubb-2026-09-24/tasks-full.jsonl new file mode 100644 index 0000000..863363f --- /dev/null +++ b/runs/fotballklubb-2026-09-24/tasks-full.jsonl @@ -0,0 +1,16 @@ +{"id":"ny-i-bygda@/","persona":"ny-i-bygda","need":"innmelding","page":"/","state":{"body":"Vi flyttet hit i sommer og sønnen vår på ni har spilt fotball før. Hvordan får vi ham med på et lag her?","page":"Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva vil du gjøre hos oss?\". Which alternative do they choose?","criteria":{"Få barnet ditt med på laget":"Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen.","Hjelp til eller støtt klubben":"Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget."}}},"expect":["Få barnet ditt med på laget"]} +{"id":"ny-i-bygda@/foresatte","persona":"ny-i-bygda","need":"innmelding","page":"/foresatte","state":{"body":"Vi flyttet hit i sommer og sønnen vår på ni har spilt fotball før. Hvordan får vi ham med på et lag her?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Vil du melde på ungen din, eller trenger dere hjelp med avgiften?\". Which alternative do they choose?","criteria":{"Få hjelp med treningsavgiften":"Vi finner en løsning sammen, enten det er å dele opp betalingen eller søke om støtte. Ingen unger skal stå utenfor på grunn av avgiften.","Meld ungen din på laget":"Meld ungen din på laget for sitt årskull, så tar trenerne det derfra."}}},"expect":["Meld ungen din på laget"]} +{"id":"tvillinger@/","persona":"tvillinger","need":"innmelding","page":"/","state":{"body":"Jeg har tvillingjenter på sju som maser om å begynne. Er det plass, og hva koster det?","page":"Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva vil du gjøre hos oss?\". Which alternative do they choose?","criteria":{"Få barnet ditt med på laget":"Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen.","Hjelp til eller støtt klubben":"Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget."}}},"expect":["Få barnet ditt med på laget"]} +{"id":"tvillinger@/foresatte","persona":"tvillinger","need":"innmelding","page":"/foresatte","state":{"body":"Jeg har tvillingjenter på sju som maser om å begynne. Er det plass, og hva koster det?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Vil du melde på ungen din, eller trenger dere hjelp med avgiften?\". Which alternative do they choose?","criteria":{"Få hjelp med treningsavgiften":"Vi finner en løsning sammen, enten det er å dele opp betalingen eller søke om støtte. Ingen unger skal stå utenfor på grunn av avgiften.","Meld ungen din på laget":"Meld ungen din på laget for sitt årskull, så tar trenerne det derfra."}}},"expect":["Meld ungen din på laget"]} +{"id":"alenefar@/","persona":"alenefar","need":"avgiftssak","page":"/","state":{"body":"Jeg er alene med tre unger og treningsavgiften for alle tre blir for mye på en gang. Går det an å dele den opp?","page":"Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva vil du gjøre hos oss?\". Which alternative do they choose?","criteria":{"Få barnet ditt med på laget":"Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen.","Hjelp til eller støtt klubben":"Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget."}}},"expect":["Få barnet ditt med på laget"]} +{"id":"alenefar@/foresatte","persona":"alenefar","need":"avgiftssak","page":"/foresatte","state":{"body":"Jeg er alene med tre unger og treningsavgiften for alle tre blir for mye på en gang. Går det an å dele den opp?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Vil du melde på ungen din, eller trenger dere hjelp med avgiften?\". Which alternative do they choose?","criteria":{"Få hjelp med treningsavgiften":"Vi finner en løsning sammen, enten det er å dele opp betalingen eller søke om støtte. Ingen unger skal stå utenfor på grunn av avgiften.","Meld ungen din på laget":"Meld ungen din på laget for sitt årskull, så tar trenerne det derfra."}}},"expect":["Få hjelp med treningsavgiften"]} +{"id":"permittert@/","persona":"permittert","need":"avgiftssak","page":"/","state":{"body":"Jeg ble permittert i vinter. Kan dattera mi fortsette å spille selv om vi ikke klarer avgiften akkurat nå?","page":"Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva vil du gjøre hos oss?\". Which alternative do they choose?","criteria":{"Få barnet ditt med på laget":"Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen.","Hjelp til eller støtt klubben":"Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget."}}},"expect":["Få barnet ditt med på laget"]} +{"id":"permittert@/foresatte","persona":"permittert","need":"avgiftssak","page":"/foresatte","state":{"body":"Jeg ble permittert i vinter. Kan dattera mi fortsette å spille selv om vi ikke klarer avgiften akkurat nå?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Vil du melde på ungen din, eller trenger dere hjelp med avgiften?\". Which alternative do they choose?","criteria":{"Få hjelp med treningsavgiften":"Vi finner en løsning sammen, enten det er å dele opp betalingen eller søke om støtte. Ingen unger skal stå utenfor på grunn av avgiften.","Meld ungen din på laget":"Meld ungen din på laget for sitt årskull, så tar trenerne det derfra."}}},"expect":["Få hjelp med treningsavgiften"]} +{"id":"pensjonist@/","persona":"pensjonist","need":"frivillig","page":"/","state":{"body":"Jeg er pensjonert og spilte selv i mange år. Har dere bruk for en som kan ta de minste et par kvelder i uka?","page":"Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva vil du gjøre hos oss?\". Which alternative do they choose?","criteria":{"Få barnet ditt med på laget":"Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen.","Hjelp til eller støtt klubben":"Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget."}}},"expect":["Hjelp til eller støtt klubben"]} +{"id":"pensjonist@/bidra","persona":"pensjonist","need":"frivillig","page":"/bidra","state":{"body":"Jeg er pensjonert og spilte selv i mange år. Har dere bruk for en som kan ta de minste et par kvelder i uka?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Vil du hjelpe til eller støtte klubben?\". Which alternative do they choose?","criteria":{"Bidra med det du kan":"Trenere, lagledere, sjåfører og folk på dugnad - vi trenger alltid flere hender.","Støtt fotballen på bygda":"Er du fra en bedrift i bygda som vil støtte fotballgruppa? Vi tar gjerne en prat om hva dere kan bidra med."}}},"expect":["Bidra med det du kan"]} +{"id":"stor-bil@/","persona":"stor-bil","need":"frivillig","page":"/","state":{"body":"Jeg kan ikke trene noen, men jeg har stor bil og kan kjøre til bortekamper.","page":"Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva vil du gjøre hos oss?\". Which alternative do they choose?","criteria":{"Få barnet ditt med på laget":"Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen.","Hjelp til eller støtt klubben":"Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget."}}},"expect":["Hjelp til eller støtt klubben"]} +{"id":"stor-bil@/bidra","persona":"stor-bil","need":"frivillig","page":"/bidra","state":{"body":"Jeg kan ikke trene noen, men jeg har stor bil og kan kjøre til bortekamper."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Vil du hjelpe til eller støtte klubben?\". Which alternative do they choose?","criteria":{"Bidra med det du kan":"Trenere, lagledere, sjåfører og folk på dugnad - vi trenger alltid flere hender.","Støtt fotballen på bygda":"Er du fra en bedrift i bygda som vil støtte fotballgruppa? Vi tar gjerne en prat om hva dere kan bidra med."}}},"expect":["Bidra med det du kan"]} +{"id":"rorlegger@/","persona":"rorlegger","need":"sponsor","page":"/","state":{"body":"Jeg driver rørleggerfirma her i bygda og vil gjerne ha logoen vår på draktene til et lag. Hvem snakker jeg med?","page":"Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva vil du gjøre hos oss?\". Which alternative do they choose?","criteria":{"Få barnet ditt med på laget":"Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen.","Hjelp til eller støtt klubben":"Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget."}}},"expect":["Hjelp til eller støtt klubben"]} +{"id":"rorlegger@/bidra","persona":"rorlegger","need":"sponsor","page":"/bidra","state":{"body":"Jeg driver rørleggerfirma her i bygda og vil gjerne ha logoen vår på draktene til et lag. Hvem snakker jeg med?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Vil du hjelpe til eller støtte klubben?\". Which alternative do they choose?","criteria":{"Bidra med det du kan":"Trenere, lagledere, sjåfører og folk på dugnad - vi trenger alltid flere hender.","Støtt fotballen på bygda":"Er du fra en bedrift i bygda som vil støtte fotballgruppa? Vi tar gjerne en prat om hva dere kan bidra med."}}},"expect":["Støtt fotballen på bygda"]} +{"id":"kafeen@/","persona":"kafeen","need":"sponsor","page":"/","state":{"body":"Vi har kafé i sentrum og kan bidra med noe til cupen i mai, kanskje vafler eller litt penger.","page":"Fotball for ungene i bygda: Rundt hundre og tjue unger fra seks til seksten år spiller fotball hos oss, fordelt på lag etter årskull. Få hjelp med treningsavgiften: Sliter du med treningsavgiften, kan vi se på en avtale. Meld barnet på et lag: Meld ungen på laget for sitt årskull."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Hva vil du gjøre hos oss?\". Which alternative do they choose?","criteria":{"Få barnet ditt med på laget":"Meld på ungen, spør om treningsavgiften, eller si fra om noe på banen.","Hjelp til eller støtt klubben":"Vi trenger trenere, lagledere, sjåfører og folk på dugnad – og bedrifter som vil støtte laget."}}},"expect":["Hjelp til eller støtt klubben"]} +{"id":"kafeen@/bidra","persona":"kafeen","need":"sponsor","page":"/bidra","state":{"body":"Vi har kafé i sentrum og kan bidra med noe til cupen i mai, kanskje vafler eller litt penger."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Vil du hjelpe til eller støtte klubben?\". Which alternative do they choose?","criteria":{"Bidra med det du kan":"Trenere, lagledere, sjåfører og folk på dugnad - vi trenger alltid flere hender.","Støtt fotballen på bygda":"Er du fra en bedrift i bygda som vil støtte fotballgruppa? Vi tar gjerne en prat om hva dere kan bidra med."}}},"expect":["Støtt fotballen på bygda"]}