plan: intake to plan by a model; doors, labelled groups, the whole card

Work from another session, committed as found (tests green):

- `plan` reads an intake into a plan.yaml (a model decides needs,
  stages, forms and budgets; a person reads the result before build).
- Plans gain `doors` (a first question before the forms, when a front
  door would carry more than five needs), `groups` with labels that a
  select may draw its options from (`options_from: groups`), `private`
  fields kept off public pages, `multiple` selects, and `max_fields`
  as what the intake said the person will tolerate.
- `card.rs`: an alternative as the visitor meets it, in text, so the
  answering visitor and `rate` read the served card, not the heading.
- `rate` reads followup pages from the repo and reports "what happens
  next" as not measured rather than zero when it cannot.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
This commit is contained in:
Bendik Aagaard Lynghaug
2026-09-23 12:31:51 +02:00
co-authored by Claude Fable 5.1
parent baf36319b7
commit 255aeb4f4b
570 changed files with 40795 additions and 181 deletions
+38
View File
@@ -0,0 +1,38 @@
# Slik lederen i en fotballgruppe ville fylt det ut.
business: Lia IL Fotball
contact: { name: Kari Lien, email: kari@liail.example }
language: no
what_we_do: >
Fotballgruppa i et idrettslag på bygda. Rundt hundre og tjue unger
fra seks til sekstenår, fordelt på lag etter årskull. Alt drives av
foreldre på fritida: trenere, lagledere, en kasserer og et styre.
who_comes_to_us: >
Foreldre som vil ha ungen med på et lag. Foreldre som sliter med
treningsavgiften og vil dele den opp eller slippe. Folk som vil
hjelpe til, som trener, lagleder, sjåfør eller på dugnad. Bedrifter
i bygda som vil sponse.
what_we_keep_track_of: >
Innmeldinger: en forelder melder inn, treneren på årskullet
godkjenner at det er plass, kassereren ser at avgiften er betalt.
Noen trekker seg underveis.
Avgiftssaker: noen ber om å dele opp eller slippe avgiften; styret
vurderer og sier ja eller nei.
Frivillige: noen tilbyr seg, styret tar kontakt og plasserer dem der
det trengs, eller takker nei.
Sponsorer: en bedrift melder interesse, vi tar en prat, og det blir
en avtale eller ikke.
Ting på banen: lys som ikke virker, mål som er ødelagt, drakter som
mangler. Trenerne melder fra, styret tar tak i det og ordner det.
who_is_involved: >
Trenerne godkjenner innmeldinger på sitt årskull og melder fra om
banen. Kassereren følger opp betaling. Styret tar frivillige,
sponsorer, avgiftssaker og alt som gjelder anlegget.
what_slows_us_down: >
Alt går i en gruppechat og et regneark. Trenerne vet ikke hvem som
har betalt, kassereren vet ikke hvem som er godkjent, og en som
tilbød seg å kjøre i høst fikk aldri svar.
+38
View File
@@ -0,0 +1,38 @@
# An intake as the owner of a machine hire yard would fill it in.
business: Fjellstad Hire
contact: { name: Ola Fjellstad, email: ola@fjellstadhire.example }
language: en
what_we_do: >
We hire out machines: mini diggers, lifts, compactors, generators,
that kind of thing. A counter with two people, a yard with three who
deliver, collect and fix, and me in the office doing accounts and
the business customers.
who_comes_to_us: >
Private people who need a machine for a weekend and have often never
driven one. Building and landscaping firms who need something on a
site from a date for a period. Anyone whose hired machine has
stopped working while they have it. Firms who hire often and want
an account so they can send anyone to collect and get one invoice a
month.
what_we_keep_track_of: >
Hires: someone asks, the counter reserves it, the yard hands it out
or delivers it, and the yard takes it back. Some are cancelled
before they go out.
Breakdowns: a machine stops during a hire; the yard takes it on and
either fixes it on site or swaps it.
Account applications: a firm applies, I check the company and its
credit, and it is approved or turned down.
Damage on return: the yard finds damage when a machine comes back; I
either invoice the customer or write it off.
who_is_involved: >
The counter handles hires. The yard handles breakdowns and the
handing out and taking back. The office does accounts and damage.
what_slows_us_down: >
The yard finds out about breakdowns from whoever picks up the phone.
Damage found on return is written on a whiteboard and half of it is
never invoiced.
+42
View File
@@ -0,0 +1,42 @@
# An intake as the manager of a physiotherapy clinic would fill it in.
business: Bakken Fysioterapi
contact: { name: Marit Bakken, email: marit@bakkenfysio.example }
language: en
what_we_do: >
Six physiotherapists and a receptionist. People come to us with
pain, injuries and after operations; we assess them and treat them
over a course of sessions. Some come on their own, some are sent by
a GP or a hospital, and some have insurance that pays if the insurer
approves the course first.
who_comes_to_us: >
People with something that hurts who want to see the right
therapist. Patients who already have a time and need to move or
drop it. GPs and hospital wards sending us someone, who want to
hear how it went. Insurers, through us, when a course has to be
approved before it starts.
what_we_keep_track_of: >
Requests for a first appointment: they come in, we offer a time with
a therapist who suits, and it is either booked or they go elsewhere.
Cancellations: someone can't come; we either find them a new time or
give the slot to someone waiting.
Referrals: a doctor sends someone, we accept it, book them in, treat
them, and send the doctor a report at the end. Sometimes we send it
back because it isn't something we treat.
Insurance approvals: for some patients we have to ask the insurer
before we start; we send the request and it comes back approved or
refused.
No-shows: someone doesn't turn up and doesn't call. The receptionist
rings them and either rebooks or, after a couple of times, closes it.
who_is_involved: >
The receptionist handles every request, cancellation, referral and
approval. The therapists treat and write the report back to the
doctor, and they are the ones who notice a no-show.
what_slows_us_down: >
Referrals, cancellations and insurance approvals all go through one
inbox that only the receptionist understands. Therapists tell her
about no-shows in the corridor and they get forgotten.
+62
View File
@@ -0,0 +1,62 @@
# Tomter Vel, slik en i styret ville fylt det ut. Det som står om
# velet er hentet fra tomtervel.no (komiteer, kontingent, medlemstall,
# arrangementer); det som står om deling av utstyr er et forslag til
# en ny tjeneste.
business: Tomter Vel
contact: { name: Styret i Tomter Vel, email: post@tomtervel.no }
language: no
what_we_do: >
Velforeningen for Tomter, stiftet i 1947. Vi er et styre på sju og
sju komiteer som alle drives av folk på fritida: arrangementer
(17. mai-frokost, juletregranstenning, skøytedag), elvestien langs
Hobølelva, to lekeplasser vi holder i stand og får kontrollert hvert
år, høringssvar til kommunen, miljøgata i sentrum, pendlerforhold
mot Ruter, og trafikkforhold. 157 husstander betaler kontingent på
250 kroner i året.
who_comes_to_us: >
Husstander som vil bli medlem, eller som har flyttet eller byttet
e-post og vil at vi skal ha det riktig. Folk som har sett noe i
nabolaget som ikke er som det skal: en farlig sving, en huske som
henger i én kjetting, en råtten planke på stien. Beboere som vil
si sin mening om en sak kommunen har på høring. Folk som vil hjelpe
til på et arrangement eller en dugnad, eller sitte i en komité.
Og naboer som har en tilhenger, en stige eller en hekksaks som står
ubrukt, og naboer som trenger å låne en. Eldre og nyopererte som
trenger en hånd med snømåking, handling eller en skyss, og naboer
som gjerne stiller opp hvis noen spør.
what_we_keep_track_of: >
Medlemskap: en husstand melder seg inn, kassereren ser at
kontingenten er betalt, og noen melder seg ut når de flytter.
Meldinger om trafikk: noen melder fra, trafikkomiteen tar det opp
med kommunen eller veieier, og det blir ordnet eller avvist.
Feil på lekeplass og sti: noen melder fra, komiteen tar tak i det
og utbedrer det.
Høringsinnspill: en beboer sender inn, styret tar det med i svaret
eller lar være.
Frivillige: noen tilbyr seg, arrangementskomiteen tar kontakt og
setter dem opp, eller takker nei.
Komitésøknader: noen vil være med, styret plasserer dem eller sier
nei.
Utlegg: en i en komité har lagt ut for noe, kassereren godkjenner og
betaler ut, eller avviser.
Nabohjelp: noen ber om en hånd, nabohjelpsgruppa finner en som kan,
og den som fikk hjelp sier fra når det er ordnet. Naboer som vil
hjelpe melder seg, og kan trekke seg igjen.
Deling av utstyr: en nabo melder at de har noe å låne ut, eller
trenger å låne noe; styret legger det ut på oppslagstavla og tar
det ned når det er gjort.
who_is_involved: >
Kassereren har medlemskap og utlegg. Trafikkomiteen har
trafikkmeldinger, lekeplasskomiteen har feil på anlegg,
arrangementskomiteen har frivillige. Styret har høringsinnspill,
komitésøknader og oppslagstavla. Nabohjelpsgruppa kobler dem som
trenger hjelp med dem som kan. Komiteene leverer utlegg.
what_slows_us_down: >
Medlemslista er en bankutskrift og et regneark. Ting som meldes på
Facebook eller i butikken blir husket av den som hørte det. Folk
som tilbyr seg å hjelpe får svar sent eller aldri.