runs: uhhm on portal 0.5.1 (scrapped after preview), its mail rounds, and Tomter Vel's front door
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d4d4c7cba3
commit
5e736668e4
@@ -0,0 +1,21 @@
|
|||||||
|
# Tomter Vel's front door, showing rather than inviting (local only)
|
||||||
|
|
||||||
|
Built from `plans/tomtervel.yaml` with the words of
|
||||||
|
`runs/tomtervel-opener-2026-09-23`, the front door reworded by Sonnet
|
||||||
|
after two builder changes. Not deployed: vel.klingenbergbygg.no is
|
||||||
|
what goes to the board.
|
||||||
|
|
||||||
|
- **Public lists are shown, not pointed at.** Each bucket the public
|
||||||
|
may read (traffic reports, playground and path faults, the
|
||||||
|
noticeboard) is a feature on the front door carrying its newest
|
||||||
|
three records inline (`sort_by(.submitted_ms) | reverse | .[:3]`,
|
||||||
|
same pruning and `public_states` as the full list) and a markdown
|
||||||
|
link to the full list at `/status/<bucket>`.
|
||||||
|
- **The card names what it shows.** The old "Have a look around
|
||||||
|
first / Nothing to fill in here" framing is gone from the fallback
|
||||||
|
and from the words guidance: the card is "Siste fra bygda", "Nye
|
||||||
|
meldinger og oppslag, slik de står akkurat nå".
|
||||||
|
|
||||||
|
Lints green with the iris mail checks (uhhm/iris PR 1); the two
|
||||||
|
warnings are real (a neighbour whose request was not solved is not
|
||||||
|
told; a member removed from the list is not told).
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
words: questions/index.yaml
|
||||||
|
content repo written to runs/tomtervel-frontdoor-2026-09-28/site
|
||||||
|
OK: 32 question(s), 13 aggregate(s) valid
|
||||||
|
OK: access policy, 116 rule(s), validates
|
||||||
|
OK: 7 mail(s): every placeholder fills, every link lands
|
||||||
|
need "bli-medlem": / [Bli medlem eller endre medlemskapet] -> /medlem [Bli medlem av Tomter Vel] -> "husstander"
|
||||||
|
need "endre-medlemskap": / [Bli medlem eller endre medlemskapet] -> /medlem [Oppdater eller avslutt medlemskapet] -> "medlemsendringer"
|
||||||
|
need "trafikkfare": / [Si fra om noe farlig eller ødelagt] -> /melde-fra [Meld fra om en trafikkfare] -> "trafikkmeldinger"
|
||||||
|
need "anleggsfeil": / [Si fra om noe farlig eller ødelagt] -> /melde-fra [Meld fra om noe ødelagt] -> "anleggsfeil"
|
||||||
|
need "horingsinnspill": / [Si din mening i en høringssak] -> "innspill"
|
||||||
|
need "hjelpe-til": / [Stille opp på 17. mai, dugnad eller i komité] -> /bidra [Bli med på dugnad eller arrangement] -> "frivillige"
|
||||||
|
need "komite": / [Stille opp på 17. mai, dugnad eller i komité] -> /bidra [Sitt i en komité som betyr noe for deg] -> "komitesoknader"
|
||||||
|
need "trenger-hjelp": / [Hjelp fra naboen, eller hjelp naboen] -> /naboer [Få en nabo til å stille opp] -> "hjelpebehov"
|
||||||
|
need "kan-hjelpe": / [Hjelp fra naboen, eller hjelp naboen] -> /naboer [Bli spurt når en nabo trenger en hånd] -> "hjelpere"
|
||||||
|
need "dele-utstyr": / [Hjelp fra naboen, eller hjelp naboen] -> /naboer [Lån ut eller lån av naboen] -> "oppslag"
|
||||||
|
need "utlegg": /komiteer/utlegg [Få pengene tilbake] -> "utlegg"
|
||||||
|
OK: 11 need(s) structurally met, 0 planned, 21 persona(s)
|
||||||
|
WARN: hjelpebehov: the person is mailed at "open" and not told when their case ends at ["ikke_lost"]
|
||||||
|
WARN: husstander: the person is mailed at "open" and not told when their case ends at ["utmeldt"]
|
||||||
@@ -0,0 +1,192 @@
|
|||||||
|
aggregates:
|
||||||
|
- bucket: anleggsfeil
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
tatt_tak_i:
|
||||||
|
event: tatt_tak_i
|
||||||
|
utbedret:
|
||||||
|
event: utbedret
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- tatt_tak_i
|
||||||
|
tatt_tak_i:
|
||||||
|
- utbedret
|
||||||
|
- bucket: frivillige
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
kontaktet:
|
||||||
|
event: kontaktet
|
||||||
|
satt_opp:
|
||||||
|
event: satt_opp
|
||||||
|
takket_nei:
|
||||||
|
event: takket_nei
|
||||||
|
transitions:
|
||||||
|
kontaktet:
|
||||||
|
- satt_opp
|
||||||
|
- takket_nei
|
||||||
|
open:
|
||||||
|
- kontaktet
|
||||||
|
- takket_nei
|
||||||
|
- bucket: hjelpebehov
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: Vi leter etter en nabo til deg
|
||||||
|
body: Vi har mottatt det du trenger hjelp til, og ser etter en nabo som kan stille opp. Du hører fra oss så snart vi har funnet noen.
|
||||||
|
formidlet:
|
||||||
|
event: formidlet
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: En nabo er koblet på
|
||||||
|
body: |-
|
||||||
|
Vi har funnet en nabo som kan hjelpe. De tar kontakt med deg direkte.
|
||||||
|
|
||||||
|
Det du kan gjøre nå: {site}/decide/trenger-hjelp?chain={chain}&email={email}
|
||||||
|
ordnet:
|
||||||
|
event: ordnet
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: Bra det løste seg
|
||||||
|
body: Godt å høre at det ordnet seg. Takk for at du sa fra, og lykke til videre.
|
||||||
|
ikke_lost:
|
||||||
|
event: ikke_lost
|
||||||
|
transitions:
|
||||||
|
formidlet:
|
||||||
|
- ordnet
|
||||||
|
- ikke_lost
|
||||||
|
open:
|
||||||
|
- formidlet
|
||||||
|
- ikke_lost
|
||||||
|
- bucket: hjelpere
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
registrert:
|
||||||
|
event: registrert
|
||||||
|
trukket:
|
||||||
|
event: trukket
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- registrert
|
||||||
|
- trukket
|
||||||
|
- bucket: husstander
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: Nesten i mål som medlem
|
||||||
|
body: |-
|
||||||
|
Takk for at du vil bli medlem. Du får en betalingsoppfordring med kontonummer og beløp så snart kasserer har sett på saken.
|
||||||
|
|
||||||
|
Det du kan gjøre nå: {site}/decide/bli-medlem?chain={chain}&email={email}
|
||||||
|
betalt:
|
||||||
|
event: betalt
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: Medlemskapet er i orden
|
||||||
|
body: Kontingenten er registrert betalt. Du er nå medlem av Tomter Vel - velkommen med!
|
||||||
|
utmeldt:
|
||||||
|
event: utmeldt
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- betalt
|
||||||
|
- utmeldt
|
||||||
|
- bucket: innspill
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
tatt_med:
|
||||||
|
event: tatt_med
|
||||||
|
ikke_tatt_med:
|
||||||
|
event: ikke_tatt_med
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- tatt_med
|
||||||
|
- ikke_tatt_med
|
||||||
|
- bucket: komitesoknader
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
plassert:
|
||||||
|
event: plassert
|
||||||
|
avslatt:
|
||||||
|
event: avslatt
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- plassert
|
||||||
|
- avslatt
|
||||||
|
- bucket: medlemsendringer
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
oppdatert:
|
||||||
|
event: oppdatert
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- oppdatert
|
||||||
|
- bucket: oppslag
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
lagt_ut:
|
||||||
|
event: lagt_ut
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: Oppslaget er synlig for naboene
|
||||||
|
body: Oppslaget ditt er lagt ut, og naboene kan nå se det.
|
||||||
|
tatt_ned:
|
||||||
|
event: tatt_ned
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- lagt_ut
|
||||||
|
- tatt_ned
|
||||||
|
- bucket: trafikkmeldinger
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
tatt_opp:
|
||||||
|
event: tatt_opp
|
||||||
|
ordnet:
|
||||||
|
event: ordnet
|
||||||
|
avvist:
|
||||||
|
event: avvist
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- tatt_opp
|
||||||
|
- avvist
|
||||||
|
tatt_opp:
|
||||||
|
- ordnet
|
||||||
|
- avvist
|
||||||
|
- bucket: utlegg
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
godkjent:
|
||||||
|
event: godkjent
|
||||||
|
utbetalt:
|
||||||
|
event: utbetalt
|
||||||
|
avvist:
|
||||||
|
event: avvist
|
||||||
|
transitions:
|
||||||
|
godkjent:
|
||||||
|
- utbetalt
|
||||||
|
- avvist
|
||||||
|
open:
|
||||||
|
- godkjent
|
||||||
|
- avvist
|
||||||
@@ -0,0 +1,264 @@
|
|||||||
|
You write the words for one page of a website for this business.
|
||||||
|
|
||||||
|
Business: Tomter Vel
|
||||||
|
About: Velforeningen for Tomter, stiftet i 1947. Sju komiteer drevet på fritida: arrangementer, elvestien, lekeplassene, høringssvar, miljøgata, pendlerforhold og trafikk. 157 husstander er medlemmer.
|
||||||
|
Contact: Styret i Tomter Vel <post@tomtervel.no>
|
||||||
|
Language to write in: no
|
||||||
|
|
||||||
|
Everyone the site serves:
|
||||||
|
- door medlem: for en husstand i Tomter som vil bli medlem, betale kontingent, eller melde flytting, ny e-post eller utmelding; behind it: bli-medlem, endre-medlemskap
|
||||||
|
- door melde-fra: for noen som har sett noe farlig i trafikken, eller noe ødelagt på lekeplassen eller stien; behind it: trafikkfare, anleggsfeil
|
||||||
|
- door bidra: for noen som vil stille opp på 17. mai, dugnad eller et arrangement, eller sitte i en komité; behind it: hjelpe-til, komite
|
||||||
|
- door naboer: for en nabo som trenger en hånd med snømåking, handling eller skyss, kan gi en, eller har noe å låne ut; behind it: trenger-hjelp, kan-hjelpe, dele-utstyr
|
||||||
|
- bli-medlem: en husstand i Tomter - wants: å bli medlem og få betalt kontingenten. Handled by kasserer. Stages: open -> betalt -> utmeldt. Lands in `husstander`; its form collects: {navn}, {adresse}, {email}, {telefon} (optional).
|
||||||
|
- endre-medlemskap: et medlem som har flyttet, byttet e-post eller vil melde seg ut - wants: at velet har riktige opplysninger om dem. Handled by kasserer. Stages: open -> oppdatert. Lands in `medlemsendringer`; its form collects: {navn}, {adresse}, {hva_er_nytt} (long).
|
||||||
|
- trafikkfare: en som har sett et farlig sted i trafikken - wants: at velet tar det opp med kommunen eller den som eier veien. Handled by trafikk. Stages: open -> tatt_opp -> ordnet -> avvist. Lands in `trafikkmeldinger`; its form collects: {hvor}, {hva} (long), {epost} (optional).
|
||||||
|
- anleggsfeil: en som ser at noe på lekeplassen eller stien er ødelagt - wants: at det blir fikset før noen skader seg. Handled by lekeplasser. Stages: open -> tatt_tak_i -> utbedret. Lands in `anleggsfeil`; its form collects: {hvor}, {hva} (long).
|
||||||
|
- horingsinnspill: en beboer som har en mening om en sak kommunen har på høring - wants: at velet tar det med i sitt svar. Handled by horingsinstans. Stages: open -> tatt_med -> ikke_tatt_med. Lands in `innspill`; its form collects: {navn}, {sak}, {innspill} (long).
|
||||||
|
- hjelpe-til: en som vil hjelpe til på et arrangement eller en dugnad - wants: å bli satt opp på noe som passer dem. Handled by arrangementer. Stages: open -> kontaktet -> satt_opp -> takket_nei. Lands in `frivillige`; its form collects: {navn}, {telefon}, {hva}.
|
||||||
|
- komite: en som vil sitte i en komité - wants: en plass i den komiteen som driver med det de bryr seg om. Handled by styret. Stages: open -> plassert -> avslatt. Lands in `komitesoknader`; its form collects: {navn}, {epost}, {komite}.
|
||||||
|
- trenger-hjelp: en beboer som ikke får til noe selv for tiden, som snømåking, handling eller en skyss - wants: at en nabo stiller opp. Handled by nabohjelp. Stages: open -> formidlet -> ordnet -> ikke_lost. Lands in `hjelpebehov`; its form collects: {navn}, {email}, {adresse}, {hva} (long), {telefon} (optional).
|
||||||
|
- kan-hjelpe: en nabo som kan stille opp når noen trenger det - wants: å bli spurt når det passer. Handled by nabohjelp. Stages: open -> registrert -> trukket. Lands in `hjelpere`; its form collects: {navn}, {email}, {telefon}, {kan}.
|
||||||
|
- dele-utstyr: en nabo som har noe å låne ut, eller trenger å låne noe - wants: et oppslag som naboene ser. Handled by styret. Stages: open -> lagt_ut -> tatt_ned. Lands in `oppslag`; its form collects: {navn}, {email}, {har_eller_trenger}, {hva} (long).
|
||||||
|
- utlegg: en i en komité som har lagt ut for noe - wants: pengene tilbake. Handled by kasserer. Stages: open -> godkjent -> utbetalt -> avvist. Lands in `utlegg`; its form collects: {navn}, {belop}, {hva} (long).
|
||||||
|
|
||||||
|
The page: questions/index.yaml
|
||||||
|
It is the front door: the first page any visitor sees. `question` is the page's one question. It opens modestly: `opener` is the first card, what the business does in several features and no button at all - a stranger reads it and decides whether to trust the place, so say what is true and useful, not what to press. `shopping` is the second card: the site's live content, presented as it is - the latest records, a figure that matters, what has been built. It works best presented plainly: a heading that names what it shows ('Latest from the noticeboard', 'What we have built'), each item headed by its own content, `link` naming the full list. The content does the persuading; the card only has to label it, so it needs no invitation to look around and no word about forms. Only then come the offers: under `doors`, each entry is one alternative that leads to a page of its own for one kind of visitor, and its heading must let that visitor recognise themselves from the heading alone; under `needs`, each entry is one alternative with a form behind it.
|
||||||
|
|
||||||
|
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
|
||||||
|
|
||||||
|
Rules for the words:
|
||||||
|
- `question` is a question the reader could ask themselves.
|
||||||
|
- A heading says what the reader gets, in the reader's own words, and must work without its description.
|
||||||
|
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
|
||||||
|
- Descriptions are one or two short sentences. Labels and buttons are a few words.
|
||||||
|
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
|
||||||
|
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
|
||||||
|
- Write the way people in this trade and country actually speak.
|
||||||
|
|
||||||
|
{
|
||||||
|
"question": "<WRITE: the one question this page asks its reader>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"opener": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"features": {
|
||||||
|
"medlem": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>"
|
||||||
|
},
|
||||||
|
"nabo": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"shopping": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"items": {
|
||||||
|
"status-anleggsfeil": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"link": "<WRITE: the words of a link to the whole list, two to four words, naming it>",
|
||||||
|
"empty": "<WRITE: one short sentence shown when the list has nothing in it yet, inviting rather than apologising>",
|
||||||
|
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>"
|
||||||
|
},
|
||||||
|
"status-oppslag": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"link": "<WRITE: the words of a link to the whole list, two to four words, naming it>",
|
||||||
|
"empty": "<WRITE: one short sentence shown when the list has nothing in it yet, inviting rather than apologising>",
|
||||||
|
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>"
|
||||||
|
},
|
||||||
|
"status-trafikkmeldinger": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"link": "<WRITE: the words of a link to the whole list, two to four words, naming it>",
|
||||||
|
"empty": "<WRITE: one short sentence shown when the list has nothing in it yet, inviting rather than apologising>",
|
||||||
|
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"doors": {
|
||||||
|
"medlem": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
|
||||||
|
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
|
||||||
|
"for_whom": "<WRITE: a few words naming who this is for, addressed to them; or empty>",
|
||||||
|
"behind": "<WRITE: one sentence naming what a reader can do behind this door, in their words>"
|
||||||
|
},
|
||||||
|
"melde-fra": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
|
||||||
|
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
|
||||||
|
"for_whom": "<WRITE: a few words naming who this is for, addressed to them; or empty>",
|
||||||
|
"behind": "<WRITE: one sentence naming what a reader can do behind this door, in their words>"
|
||||||
|
},
|
||||||
|
"bidra": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
|
||||||
|
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
|
||||||
|
"for_whom": "<WRITE: a few words naming who this is for, addressed to them; or empty>",
|
||||||
|
"behind": "<WRITE: one sentence naming what a reader can do behind this door, in their words>"
|
||||||
|
},
|
||||||
|
"naboer": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
|
||||||
|
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
|
||||||
|
"for_whom": "<WRITE: a few words naming who this is for, addressed to them; or empty>",
|
||||||
|
"behind": "<WRITE: one sentence naming what a reader can do behind this door, in their words>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"needs": {
|
||||||
|
"horingsinnspill": {
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
|
||||||
|
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
|
||||||
|
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
|
||||||
|
"requires_title": "<WRITE: a form label for the field `requires_title`>",
|
||||||
|
"requires_description": "<WRITE: a form label for the field `requires_description`>",
|
||||||
|
"requires_icon": "<WRITE: a form label for the field `requires_icon`>",
|
||||||
|
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
|
||||||
|
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
|
||||||
|
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
|
||||||
|
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>",
|
||||||
|
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
|
||||||
|
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
|
||||||
|
"form_title": "<WRITE: a title for the form, two to four words>",
|
||||||
|
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
|
||||||
|
"labels": {
|
||||||
|
"navn": "<WRITE: a form label for the field `navn`>",
|
||||||
|
"sak": "<WRITE: a form label for the field `sak`>",
|
||||||
|
"innspill": "<WRITE: a form label for the field `innspill`>"
|
||||||
|
},
|
||||||
|
"hints": {
|
||||||
|
"navn": "<WRITE: an example answer for the field `navn`, as a placeholder; or empty>",
|
||||||
|
"sak": "<WRITE: an example answer for the field `sak`, as a placeholder; or empty>",
|
||||||
|
"innspill": "<WRITE: an example answer for the field `innspill`, as a placeholder; or empty>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Reply with the JSON object only.
|
||||||
|
|
||||||
|
=== REPLY ===
|
||||||
|
{
|
||||||
|
"question": "Hva trenger du hjelp med i Tomter?",
|
||||||
|
"description": "Tomter Vel er for alle som bor her. Velg det som passer deg, så finner du veien videre.",
|
||||||
|
"opener": {
|
||||||
|
"heading": "Velforeningen for Tomter siden 1947",
|
||||||
|
"description": "Vi er sju komiteer som jobber på fritida for bygda vår. 157 husstander er med.",
|
||||||
|
"features": {
|
||||||
|
"medlem": {
|
||||||
|
"heading": "157 husstander er medlemmer",
|
||||||
|
"description": "Kontingenten går til arrangementer, lekeplasser, elvestien og arbeidet for tryggere trafikk.",
|
||||||
|
"icon": "users"
|
||||||
|
},
|
||||||
|
"nabo": {
|
||||||
|
"heading": "Naboer som stiller opp for hverandre",
|
||||||
|
"description": "Trenger du hjelp med snømåking, handling eller skyss, finner vi en nabo som kan. Du kan også låne og låne ut utstyr.",
|
||||||
|
"icon": "heart-handshake"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"shopping": {
|
||||||
|
"heading": "Siste fra bygda",
|
||||||
|
"description": "Nye meldinger og oppslag, slik de står akkurat nå.",
|
||||||
|
"items": {
|
||||||
|
"status-anleggsfeil": {
|
||||||
|
"heading": "Feil på lekeplasser og sti",
|
||||||
|
"description": "Det som er meldt inn, og hvor langt vi har kommet med å fikse det.",
|
||||||
|
"link": "Alle feilmeldinger",
|
||||||
|
"empty": "Ingenting er meldt ødelagt akkurat nå. Ser du noe, si fra.",
|
||||||
|
"icon": "construction"
|
||||||
|
},
|
||||||
|
"status-oppslag": {
|
||||||
|
"heading": "Oppslagstavla for naboer",
|
||||||
|
"description": "Utstyr som er til låns, og det naboene leter etter.",
|
||||||
|
"link": "Hele oppslagstavla",
|
||||||
|
"empty": "Tavla er tom nå. Legg gjerne ut det første oppslaget.",
|
||||||
|
"icon": "list"
|
||||||
|
},
|
||||||
|
"status-trafikkmeldinger": {
|
||||||
|
"heading": "Farlige steder i trafikken",
|
||||||
|
"description": "Det naboer har meldt fra om, og hva velet har gjort med det.",
|
||||||
|
"link": "Alle trafikkmeldinger",
|
||||||
|
"empty": "Ingen farlige steder er meldt inn nå. Har du sett et, fortell oss.",
|
||||||
|
"icon": "car"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"doors": {
|
||||||
|
"medlem": {
|
||||||
|
"heading": "Bli medlem eller endre medlemskapet",
|
||||||
|
"description": "Meld deg inn, betal kontingent, eller si fra om flytting, ny e-post eller utmelding.",
|
||||||
|
"button": "Til medlemskap",
|
||||||
|
"icon": "user-plus",
|
||||||
|
"for_whom": "For deg som bor i Tomter",
|
||||||
|
"behind": "Du kan bli medlem og betale kontingent, eller melde flytting, ny e-post eller utmelding."
|
||||||
|
},
|
||||||
|
"melde-fra": {
|
||||||
|
"heading": "Si fra om noe farlig eller ødelagt",
|
||||||
|
"description": "Har du sett et farlig sted i trafikken eller noe i stykker på lekeplassen eller stien? Da vet velet det.",
|
||||||
|
"button": "Meld fra",
|
||||||
|
"icon": "alert-triangle",
|
||||||
|
"for_whom": "For deg som har sett noe",
|
||||||
|
"behind": "Du kan melde fra om et farlig sted i trafikken eller om noe som er ødelagt på lekeplassen eller stien."
|
||||||
|
},
|
||||||
|
"bidra": {
|
||||||
|
"heading": "Stille opp på 17. mai, dugnad eller i komité",
|
||||||
|
"description": "Velet drives av folk som bidrar litt. Finn noe som passer deg.",
|
||||||
|
"button": "Vil bidra",
|
||||||
|
"icon": "hand-helping",
|
||||||
|
"for_whom": "For deg som vil være med",
|
||||||
|
"behind": "Du kan melde deg til hjelp på 17. mai, dugnad eller et arrangement, eller søke plass i en komité."
|
||||||
|
},
|
||||||
|
"naboer": {
|
||||||
|
"heading": "Hjelp fra naboen, eller hjelp naboen",
|
||||||
|
"description": "Snømåking, handling, skyss og utlån av utstyr, naboer imellom.",
|
||||||
|
"button": "Til nabohjelp",
|
||||||
|
"icon": "heart-handshake",
|
||||||
|
"for_whom": "For deg og naboene dine",
|
||||||
|
"behind": "Du kan be om hjelp, tilby hjelp eller legge ut noe du har å låne ut."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"needs": {
|
||||||
|
"horingsinnspill": {
|
||||||
|
"heading": "Si din mening i en høringssak",
|
||||||
|
"description": "Har kommunen en sak på høring som du har tanker om? Send oss innspillet ditt.",
|
||||||
|
"button": "Send innspill",
|
||||||
|
"encouragement": "Innspillet ditt leses av høringsgruppa før velet skriver sitt svar.",
|
||||||
|
"icon": "megaphone",
|
||||||
|
"requires_title": "Dette trenger vi fra deg",
|
||||||
|
"requires_description": "Navnet ditt, hvilken sak det gjelder og hva du mener.",
|
||||||
|
"requires_icon": "clipboard-list",
|
||||||
|
"road_title": "Slik går det videre",
|
||||||
|
"road_description": "Innspillet kommer inn til høringsgruppa. Så avgjør de om det blir tatt med i velets svar, og du får vite om det ble med eller ikke.",
|
||||||
|
"road_icon": "route",
|
||||||
|
"who_title": "Hvem leser det",
|
||||||
|
"who_description": "Høringsgruppa i Tomter Vel leser det du sender. Du når styret på post@tomtervel.no.",
|
||||||
|
"who_icon": "users",
|
||||||
|
"form_title": "Ditt innspill",
|
||||||
|
"form_description": "Ha saken og det du vil si klart før du begynner.",
|
||||||
|
"labels": {
|
||||||
|
"navn": "Navn",
|
||||||
|
"sak": "Hvilken sak gjelder det?",
|
||||||
|
"innspill": "Hva mener du?"
|
||||||
|
},
|
||||||
|
"hints": {
|
||||||
|
"navn": "Kari Nordmann",
|
||||||
|
"sak": "Reguleringsplan for Tomtervegen",
|
||||||
|
"innspill": "Jeg mener gangfeltet bør flyttes nærmere skolen, fordi barna krysser der."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,312 @@
|
|||||||
|
needs:
|
||||||
|
- id: bli-medlem
|
||||||
|
who: en husstand i Tomter
|
||||||
|
wants: å bli medlem og få betalt kontingenten
|
||||||
|
enters: /
|
||||||
|
via: Bli medlem eller endre medlemskapet
|
||||||
|
lands_in: husstander
|
||||||
|
handled_by: kasserer
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- betalt
|
||||||
|
- utmeldt
|
||||||
|
done_when:
|
||||||
|
- betalt
|
||||||
|
- utmeldt
|
||||||
|
success:
|
||||||
|
- betalt
|
||||||
|
max_steps: 2
|
||||||
|
max_fields: 3
|
||||||
|
stage_words:
|
||||||
|
open: mottatt
|
||||||
|
betalt: betalt
|
||||||
|
utmeldt: meldt ut
|
||||||
|
- id: endre-medlemskap
|
||||||
|
who: et medlem som har flyttet, byttet e-post eller vil melde seg ut
|
||||||
|
wants: at velet har riktige opplysninger om dem
|
||||||
|
enters: /
|
||||||
|
via: Bli medlem eller endre medlemskapet
|
||||||
|
lands_in: medlemsendringer
|
||||||
|
handled_by: kasserer
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- oppdatert
|
||||||
|
done_when:
|
||||||
|
- oppdatert
|
||||||
|
success:
|
||||||
|
- oppdatert
|
||||||
|
max_steps: 2
|
||||||
|
max_fields: 3
|
||||||
|
stage_words:
|
||||||
|
open: mottatt
|
||||||
|
oppdatert: oppdatert
|
||||||
|
- id: trafikkfare
|
||||||
|
who: en som har sett et farlig sted i trafikken
|
||||||
|
wants: at velet tar det opp med kommunen eller den som eier veien
|
||||||
|
enters: /
|
||||||
|
via: Si fra om noe farlig eller ødelagt
|
||||||
|
lands_in: trafikkmeldinger
|
||||||
|
handled_by: trafikk
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- tatt_opp
|
||||||
|
- ordnet
|
||||||
|
- avvist
|
||||||
|
done_when:
|
||||||
|
- ordnet
|
||||||
|
- avvist
|
||||||
|
success:
|
||||||
|
- ordnet
|
||||||
|
max_steps: 2
|
||||||
|
max_fields: 2
|
||||||
|
stage_words:
|
||||||
|
open: mottatt
|
||||||
|
tatt_opp: tatt opp med kommunen
|
||||||
|
ordnet: ordnet
|
||||||
|
avvist: avvist
|
||||||
|
- id: anleggsfeil
|
||||||
|
who: en som ser at noe på lekeplassen eller stien er ødelagt
|
||||||
|
wants: at det blir fikset før noen skader seg
|
||||||
|
enters: /
|
||||||
|
via: Si fra om noe farlig eller ødelagt
|
||||||
|
lands_in: anleggsfeil
|
||||||
|
handled_by: lekeplasser
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- tatt_tak_i
|
||||||
|
- utbedret
|
||||||
|
done_when:
|
||||||
|
- utbedret
|
||||||
|
success:
|
||||||
|
- utbedret
|
||||||
|
max_steps: 2
|
||||||
|
max_fields: 2
|
||||||
|
stage_words:
|
||||||
|
open: mottatt
|
||||||
|
tatt_tak_i: tatt tak i
|
||||||
|
utbedret: utbedret
|
||||||
|
- id: horingsinnspill
|
||||||
|
who: en beboer som har en mening om en sak kommunen har på høring
|
||||||
|
wants: at velet tar det med i sitt svar
|
||||||
|
enters: /
|
||||||
|
via: Si din mening i en høringssak
|
||||||
|
lands_in: innspill
|
||||||
|
handled_by: horingsinstans
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- tatt_med
|
||||||
|
- ikke_tatt_med
|
||||||
|
done_when:
|
||||||
|
- tatt_med
|
||||||
|
- ikke_tatt_med
|
||||||
|
success:
|
||||||
|
- tatt_med
|
||||||
|
max_steps: 1
|
||||||
|
max_fields: 3
|
||||||
|
stage_words:
|
||||||
|
open: mottatt
|
||||||
|
tatt_med: tatt med i høringssvaret
|
||||||
|
ikke_tatt_med: ikke tatt med
|
||||||
|
- id: hjelpe-til
|
||||||
|
who: en som vil hjelpe til på et arrangement eller en dugnad
|
||||||
|
wants: å bli satt opp på noe som passer dem
|
||||||
|
enters: /
|
||||||
|
via: Stille opp på 17. mai, dugnad eller i komité
|
||||||
|
lands_in: frivillige
|
||||||
|
handled_by: arrangementer
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- kontaktet
|
||||||
|
- satt_opp
|
||||||
|
- takket_nei
|
||||||
|
done_when:
|
||||||
|
- satt_opp
|
||||||
|
- takket_nei
|
||||||
|
success:
|
||||||
|
- satt_opp
|
||||||
|
max_steps: 2
|
||||||
|
max_fields: 3
|
||||||
|
stage_words:
|
||||||
|
open: mottatt
|
||||||
|
kontaktet: kontaktet
|
||||||
|
satt_opp: satt opp
|
||||||
|
takket_nei: takket nei
|
||||||
|
- id: komite
|
||||||
|
who: en som vil sitte i en komité
|
||||||
|
wants: en plass i den komiteen som driver med det de bryr seg om
|
||||||
|
enters: /
|
||||||
|
via: Stille opp på 17. mai, dugnad eller i komité
|
||||||
|
lands_in: komitesoknader
|
||||||
|
handled_by: styret
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- plassert
|
||||||
|
- avslatt
|
||||||
|
done_when:
|
||||||
|
- plassert
|
||||||
|
- avslatt
|
||||||
|
success:
|
||||||
|
- plassert
|
||||||
|
max_steps: 2
|
||||||
|
max_fields: 3
|
||||||
|
stage_words:
|
||||||
|
open: mottatt
|
||||||
|
plassert: plassert i en komité
|
||||||
|
avslatt: avslått
|
||||||
|
- id: trenger-hjelp
|
||||||
|
who: en beboer som ikke får til noe selv for tiden, som snømåking, handling eller en skyss
|
||||||
|
wants: at en nabo stiller opp
|
||||||
|
enters: /
|
||||||
|
via: Hjelp fra naboen, eller hjelp naboen
|
||||||
|
lands_in: hjelpebehov
|
||||||
|
handled_by: nabohjelp
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- formidlet
|
||||||
|
- ordnet
|
||||||
|
- ikke_lost
|
||||||
|
done_when:
|
||||||
|
- ordnet
|
||||||
|
- ikke_lost
|
||||||
|
success:
|
||||||
|
- ordnet
|
||||||
|
max_steps: 2
|
||||||
|
max_fields: 4
|
||||||
|
stage_words:
|
||||||
|
open: mottatt
|
||||||
|
formidlet: formidlet til en nabo
|
||||||
|
ordnet: ordnet
|
||||||
|
ikke_lost: ikke løst
|
||||||
|
- id: kan-hjelpe
|
||||||
|
who: en nabo som kan stille opp når noen trenger det
|
||||||
|
wants: å bli spurt når det passer
|
||||||
|
enters: /
|
||||||
|
via: Hjelp fra naboen, eller hjelp naboen
|
||||||
|
lands_in: hjelpere
|
||||||
|
handled_by: nabohjelp
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- registrert
|
||||||
|
- trukket
|
||||||
|
done_when:
|
||||||
|
- registrert
|
||||||
|
- trukket
|
||||||
|
success:
|
||||||
|
- registrert
|
||||||
|
max_steps: 2
|
||||||
|
max_fields: 4
|
||||||
|
stage_words:
|
||||||
|
open: mottatt
|
||||||
|
registrert: registrert som hjelper
|
||||||
|
trukket: trukket
|
||||||
|
- id: dele-utstyr
|
||||||
|
who: en nabo som har noe å låne ut, eller trenger å låne noe
|
||||||
|
wants: et oppslag som naboene ser
|
||||||
|
enters: /
|
||||||
|
via: Hjelp fra naboen, eller hjelp naboen
|
||||||
|
lands_in: oppslag
|
||||||
|
handled_by: styret
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- lagt_ut
|
||||||
|
- tatt_ned
|
||||||
|
done_when:
|
||||||
|
- lagt_ut
|
||||||
|
- tatt_ned
|
||||||
|
success:
|
||||||
|
- lagt_ut
|
||||||
|
max_steps: 2
|
||||||
|
max_fields: 4
|
||||||
|
stage_words:
|
||||||
|
open: mottatt
|
||||||
|
lagt_ut: lagt ut
|
||||||
|
tatt_ned: tatt ned
|
||||||
|
- id: utlegg
|
||||||
|
who: en i en komité som har lagt ut for noe
|
||||||
|
wants: pengene tilbake
|
||||||
|
enters: /komiteer/utlegg
|
||||||
|
via: Få pengene tilbake
|
||||||
|
lands_in: utlegg
|
||||||
|
handled_by: kasserer
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- godkjent
|
||||||
|
- utbetalt
|
||||||
|
- avvist
|
||||||
|
done_when:
|
||||||
|
- utbetalt
|
||||||
|
- avvist
|
||||||
|
success:
|
||||||
|
- utbetalt
|
||||||
|
max_steps: 1
|
||||||
|
max_fields: 3
|
||||||
|
stage_words:
|
||||||
|
open: mottatt
|
||||||
|
godkjent: godkjent
|
||||||
|
utbetalt: utbetalt
|
||||||
|
avvist: avvist
|
||||||
|
enters_as: komiteer
|
||||||
|
personas:
|
||||||
|
- id: nyinnflyttet
|
||||||
|
need: bli-medlem
|
||||||
|
text: Vi flyttet til Tomter i mars og har hørt at det finnes et vel. Hvordan blir vi med, og hva koster det?
|
||||||
|
- id: glemte-a-betale
|
||||||
|
need: bli-medlem
|
||||||
|
text: Jeg har vært medlem før men fikk ikke betalt i fjor. Kan jeg bare vippse, og til hvem?
|
||||||
|
- id: ny-epost
|
||||||
|
need: endre-medlemskap
|
||||||
|
text: Vi har byttet e-postadresse og får ikke lenger noe fra dere.
|
||||||
|
- id: flytter
|
||||||
|
need: endre-medlemskap
|
||||||
|
text: Vi selger huset og flytter til Ski i august, så vi må ut av medlemslista.
|
||||||
|
- id: skolevei
|
||||||
|
need: trafikkfare
|
||||||
|
text: Bilene kjører altfor fort i svingen ved skolen om morgenen, og det er ikke fortau der ungene går.
|
||||||
|
- id: busslomme
|
||||||
|
need: trafikkfare
|
||||||
|
text: Det er umulig å se om det kommer noen når man skal ut fra busslomma ved butikken, hekken har blitt kjempehøy.
|
||||||
|
- id: huske
|
||||||
|
need: anleggsfeil
|
||||||
|
text: Huska på lekeplassen henger i én kjetting. Sønnen min dro i den i går og den holdt så vidt.
|
||||||
|
- id: bru
|
||||||
|
need: anleggsfeil
|
||||||
|
text: Planken på den lille brua på stien langs elva er råtten, jeg gikk nesten gjennom.
|
||||||
|
- id: blokker
|
||||||
|
need: horingsinnspill
|
||||||
|
text: Kommunen skal bygge blokker på jordet bak stasjonen, og jeg synes det er alt for høyt. Kan velet si ifra?
|
||||||
|
- id: togtider
|
||||||
|
need: horingsinnspill
|
||||||
|
text: Ruter vil kutte det tidlige toget. Jeg pendler til Oslo hver dag og vil at velet skriver til dem om det.
|
||||||
|
- id: vafler
|
||||||
|
need: hjelpe-til
|
||||||
|
text: Jeg kan steke vafler på 17. mai-frokosten hvis dere trenger folk.
|
||||||
|
- id: motorsag
|
||||||
|
need: hjelpe-til
|
||||||
|
text: Har motorsag og ledig helg, kan ta trær langs elvestien hvis det er en dugnad.
|
||||||
|
- id: pendler
|
||||||
|
need: komite
|
||||||
|
text: Jeg pendler og er lei av at ingen snakker med Ruter. Jeg vil gjerne være med i gjengen som jobber med det.
|
||||||
|
- id: planlegger
|
||||||
|
need: komite
|
||||||
|
text: Jeg er arealplanlegger av yrke og kunne bidratt når kommunen sender saker på høring.
|
||||||
|
- id: tilhenger
|
||||||
|
need: dele-utstyr
|
||||||
|
text: Jeg har en tilhenger som står ubrukt mesteparten av året, naboer kan gjerne låne den for en hundrelapp.
|
||||||
|
- id: stige
|
||||||
|
need: dele-utstyr
|
||||||
|
text: Trenger en lang stige en dag i helga for å rense takrenna, er det noen i nærheten som har?
|
||||||
|
- id: snomaking
|
||||||
|
need: trenger-hjelp
|
||||||
|
text: Jeg er 84 og klarer ikke å måke innkjørselen lenger. Er det noen som kan hjelpe meg når det snør?
|
||||||
|
- id: nyoperert
|
||||||
|
need: trenger-hjelp
|
||||||
|
text: Jeg er nyoperert i hofta og kommer meg ikke til butikken på noen uker. Kunne noen handlet for meg?
|
||||||
|
- id: hjemmekontor
|
||||||
|
need: kan-hjelpe
|
||||||
|
text: Jeg jobber hjemmefra og kan godt måke eller handle for noen som ikke får det til selv.
|
||||||
|
- id: pensjonert-elektriker
|
||||||
|
need: kan-hjelpe
|
||||||
|
text: Pensjonert elektriker, har bil og god tid. Si fra om noen trenger skyss eller en hånd med småting.
|
||||||
|
- id: kvittering
|
||||||
|
need: utlegg
|
||||||
|
text: Jeg kjøpte pølser og kakao til skøytedagen for 1 840 kroner, her er kvitteringa, vil ha det igjen.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
qualifies: arrangementer
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
name: Hvem har meldt seg, og hvor langt har jeg kommet med å sette dem opp?
|
||||||
|
description: Oversikt over folk som vil hjelpe til, slik at du kan følge opp og sette dem opp på noe som passer.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Frivillige til arrangementer og dugnad
|
||||||
|
description: Her ser du hvem som har meldt seg til dugnad, 17. mai eller andre arrangementer, og hvor langt du har kommet med hver av dem.
|
||||||
|
action: /arrangementer
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Frivillige
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: frivillige
|
||||||
|
requires_group: arrangementer
|
||||||
|
transitions:
|
||||||
|
- from: kontaktet
|
||||||
|
to: satt_opp
|
||||||
|
label: Sett opp
|
||||||
|
- from: kontaktet
|
||||||
|
to: takket_nei
|
||||||
|
label: Takket nei
|
||||||
|
- from: open
|
||||||
|
to: kontaktet
|
||||||
|
label: Merk som kontaktet
|
||||||
|
- from: open
|
||||||
|
to: takket_nei
|
||||||
|
label: Takket nei
|
||||||
|
- name: Inviter noen inn i Arrangementer
|
||||||
|
description: De får en konto, plass i Arrangementer, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /arrangementer
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: arrangementer
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Sendte invitasjoner
|
||||||
|
description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.
|
||||||
|
action: /arrangementer
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Who has been invited
|
||||||
|
description: Each row is one invitation, with the one-time link while it is unused.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: portal_invites
|
||||||
|
requires_group: arrangementer
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: done
|
||||||
|
label: Er inne
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
name: Vil du hjelpe til i nabolaget?
|
||||||
|
description: Vil du stille opp for nabolaget? Her melder du deg til dugnad og arrangementer, eller til en av komiteene.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Bli med på dugnad eller arrangement
|
||||||
|
description: 17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.
|
||||||
|
action: /received/hjelpe-til
|
||||||
|
consequence:
|
||||||
|
- Meld meg på
|
||||||
|
record_as: frivillige
|
||||||
|
features:
|
||||||
|
- name: Hva skjer videre
|
||||||
|
description: Arrangementskomiteen tar kontakt og finner ut hva som passer for deg. Sier du ja, blir du satt opp på en oppgave – sier du nei takk, er det helt greit.
|
||||||
|
icon: lucide:clipboard-list
|
||||||
|
- name: Hvem leser dette
|
||||||
|
description: Arrangementskomiteen leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden.
|
||||||
|
icon: lucide:users
|
||||||
|
- name: Meld deg som hjelper
|
||||||
|
requirements:
|
||||||
|
- name: navn
|
||||||
|
label: Navn
|
||||||
|
type: text
|
||||||
|
placeholder: Kari Nordmann
|
||||||
|
- name: telefon
|
||||||
|
label: Telefon
|
||||||
|
type: tel
|
||||||
|
placeholder: 912 34 567
|
||||||
|
- name: hva
|
||||||
|
label: Hva kan du hjelpe til med?
|
||||||
|
type: select
|
||||||
|
options:
|
||||||
|
- 17. mai
|
||||||
|
- Juletregranstenning
|
||||||
|
- Skøytedag
|
||||||
|
- Dugnad på elvestien
|
||||||
|
- Det som trengs
|
||||||
|
multiple: true
|
||||||
|
description: Fortell kort hva du kan hjelpe til med.
|
||||||
|
icon: lucide:hand-helping
|
||||||
|
encouragements:
|
||||||
|
- Det holder med noen ord om hva du kan tenke deg – vi tar kontakt når det nærmer seg.
|
||||||
|
- name: Sitt i en komité som betyr noe for deg
|
||||||
|
description: Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i.
|
||||||
|
action: /received/komite
|
||||||
|
consequence:
|
||||||
|
- Meld interesse
|
||||||
|
record_as: komitesoknader
|
||||||
|
features:
|
||||||
|
- name: Hva skjer videre
|
||||||
|
description: Styret ser på ønsket ditt og finner en plass i komiteen du har meldt deg til, eller sier fra hvis det ikke er rom akkurat nå.
|
||||||
|
icon: lucide:clipboard-list
|
||||||
|
- name: Hvem leser dette
|
||||||
|
description: Styret leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden.
|
||||||
|
icon: lucide:handshake
|
||||||
|
- name: Meld deg til en komité
|
||||||
|
requirements:
|
||||||
|
- name: navn
|
||||||
|
label: Navn
|
||||||
|
type: text
|
||||||
|
placeholder: Kari Nordmann
|
||||||
|
- name: epost
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
placeholder: kari@eksempel.no
|
||||||
|
- name: komite
|
||||||
|
label: Hvilken komité?
|
||||||
|
type: select
|
||||||
|
options:
|
||||||
|
- Arrangementer
|
||||||
|
- Elvesti
|
||||||
|
- Høringsinstans
|
||||||
|
- Leke- og møteplasser
|
||||||
|
- Miljøgate
|
||||||
|
- Pendlerforhold
|
||||||
|
- Trafikkforhold
|
||||||
|
multiple: true
|
||||||
|
description: Skriv hvilken komité du er interessert i.
|
||||||
|
icon: lucide:users
|
||||||
|
encouragements:
|
||||||
|
- Det tar bare et minutt, og noen fra styret svarer deg.
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
name: What would you like to do?
|
||||||
|
description: ''
|
||||||
|
alternatives:
|
||||||
|
- name: Utmeldt
|
||||||
|
description: ''
|
||||||
|
self_transition:
|
||||||
|
bucket: husstander
|
||||||
|
to: utmeldt
|
||||||
|
from:
|
||||||
|
- open
|
||||||
|
label: Utmeldt
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
name: Skal oppslaget om utstyret fortsatt stå ute?
|
||||||
|
description: Her sier du fra at utstyret er hentet eller ikke lenger tilgjengelig for utlån.
|
||||||
|
alternatives:
|
||||||
|
- name: Meld at utstyret er tatt ned
|
||||||
|
description: Oppslaget fjernes fra siden, så ingen flere spør om å låne det.
|
||||||
|
self_transition:
|
||||||
|
bucket: oppslag
|
||||||
|
to: tatt_ned
|
||||||
|
from:
|
||||||
|
- open
|
||||||
|
label: Ta ned oppslaget
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
name: Vil du fortsatt kunne bli spurt om å hjelpe en nabo?
|
||||||
|
description: Her ser du naboer som har bedt om en hånd, og kan velge om du fortsatt kan bidra eller trekke deg for nå.
|
||||||
|
alternatives:
|
||||||
|
- name: Ta en pause fra nabohjelpen
|
||||||
|
description: Du blir tatt av lista over naboer som kan spørres, men kan melde deg på igjen når det passer bedre.
|
||||||
|
self_transition:
|
||||||
|
bucket: hjelpere
|
||||||
|
to: trukket
|
||||||
|
from:
|
||||||
|
- open
|
||||||
|
label: Trekk meg
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
name: Har naboen fått hjelpen de trengte?
|
||||||
|
description: Her ser du henvendelsen fra naboen som trengte en hånd, og kan si fra når det er ordnet.
|
||||||
|
alternatives:
|
||||||
|
- name: Meld fra at hjelpen er gitt
|
||||||
|
description: Da vet vi at naboen har fått hjelpen sin, og saken lukkes.
|
||||||
|
self_transition:
|
||||||
|
bucket: hjelpebehov
|
||||||
|
to: ordnet
|
||||||
|
from:
|
||||||
|
- formidlet
|
||||||
|
label: Merk som ordnet
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
qualifies: horingsinstans
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
name: Hva sier vi i høringssvaret?
|
||||||
|
description: Her samler du innspillene og ser hva som er tatt med i velets høringssvar.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Innspill til høringssvar
|
||||||
|
description: Her ligger innspill fra beboere til saker kommunen har på høring.
|
||||||
|
action: /horingsinstans
|
||||||
|
consequence:
|
||||||
|
- Send svar
|
||||||
|
features:
|
||||||
|
- name: Innspill
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: innspill
|
||||||
|
requires_group: horingsinstans
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: tatt_med
|
||||||
|
label: Tatt med i svaret
|
||||||
|
- from: open
|
||||||
|
to: ikke_tatt_med
|
||||||
|
label: Ikke tatt med
|
||||||
|
- name: Inviter noen inn i Høringsinstans
|
||||||
|
description: De får en konto, plass i Høringsinstans, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /horingsinstans
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: horingsinstans
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Sendte invitasjoner
|
||||||
|
description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.
|
||||||
|
action: /horingsinstans
|
||||||
|
consequence:
|
||||||
|
- Send svar
|
||||||
|
features:
|
||||||
|
- name: Who has been invited
|
||||||
|
description: Each row is one invitation, with the one-time link while it is unused.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: portal_invites
|
||||||
|
requires_group: horingsinstans
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: done
|
||||||
|
label: Er inne
|
||||||
@@ -0,0 +1,118 @@
|
|||||||
|
name: Hva trenger du hjelp med i Tomter?
|
||||||
|
description: Tomter Vel er for alle som bor her. Velg det som passer deg, så finner du veien videre.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Velforeningen for Tomter siden 1947
|
||||||
|
description: Vi er sju komiteer som jobber på fritida for bygda vår. 157 husstander er med.
|
||||||
|
features:
|
||||||
|
- name: 157 husstander er medlemmer
|
||||||
|
description: Kontingenten går til arrangementer, lekeplasser, elvestien og arbeidet for tryggere trafikk.
|
||||||
|
icon: lucide:users
|
||||||
|
- name: Naboer som stiller opp for hverandre
|
||||||
|
description: Trenger du hjelp med snømåking, handling eller skyss, finner vi en nabo som kan. Du kan også låne og låne ut utstyr.
|
||||||
|
icon: lucide:heart-handshake
|
||||||
|
- name: Siste fra bygda
|
||||||
|
description: Nye meldinger og oppslag, slik de står akkurat nå.
|
||||||
|
features:
|
||||||
|
- name: Feil på lekeplasser og sti
|
||||||
|
description: Det som er meldt inn, og hvor langt vi har kommet med å fikse det. [Alle feilmeldinger](/status/anleggsfeil)
|
||||||
|
icon: lucide:construction
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: anleggsfeil
|
||||||
|
public: true
|
||||||
|
states: []
|
||||||
|
empty: Ingenting er meldt ødelagt akkurat nå. Ser du noe, si fra.
|
||||||
|
jq: 'sort_by(.submitted_ms) | reverse | .[:3] | .[] | .responses |= {hva: .hva, hvor: .hvor}'
|
||||||
|
- name: Oppslagstavla for naboer
|
||||||
|
description: Utstyr som er til låns, og det naboene leter etter. [Hele oppslagstavla](/status/oppslag)
|
||||||
|
icon: lucide:list
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: oppslag
|
||||||
|
public: true
|
||||||
|
states: []
|
||||||
|
empty: Tavla er tom nå. Legg gjerne ut det første oppslaget.
|
||||||
|
jq: 'sort_by(.submitted_ms) | reverse | .[:3] | .[] | .responses |= {har_eller_trenger: .har_eller_trenger, hva: .hva}'
|
||||||
|
- name: Farlige steder i trafikken
|
||||||
|
description: Det naboer har meldt fra om, og hva velet har gjort med det. [Alle trafikkmeldinger](/status/trafikkmeldinger)
|
||||||
|
icon: lucide:car
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: trafikkmeldinger
|
||||||
|
public: true
|
||||||
|
states: []
|
||||||
|
empty: Ingen farlige steder er meldt inn nå. Har du sett et, fortell oss.
|
||||||
|
jq: 'sort_by(.submitted_ms) | reverse | .[:3] | .[] | .responses |= {hva: .hva, hvor: .hvor}'
|
||||||
|
- name: Bli medlem eller endre medlemskapet
|
||||||
|
description: Meld deg inn, betal kontingent, eller si fra om flytting, ny e-post eller utmelding.
|
||||||
|
action: /medlem
|
||||||
|
consequence:
|
||||||
|
- Til medlemskap
|
||||||
|
features:
|
||||||
|
- name: For deg som bor i Tomter
|
||||||
|
description: Du kan bli medlem og betale kontingent, eller melde flytting, ny e-post eller utmelding.
|
||||||
|
icon: lucide:user-plus
|
||||||
|
- name: Si fra om noe farlig eller ødelagt
|
||||||
|
description: Har du sett et farlig sted i trafikken eller noe i stykker på lekeplassen eller stien? Da vet velet det.
|
||||||
|
action: /melde-fra
|
||||||
|
consequence:
|
||||||
|
- Meld fra
|
||||||
|
features:
|
||||||
|
- name: For deg som har sett noe
|
||||||
|
description: Du kan melde fra om et farlig sted i trafikken eller om noe som er ødelagt på lekeplassen eller stien.
|
||||||
|
icon: lucide:alert-triangle
|
||||||
|
- name: Stille opp på 17. mai, dugnad eller i komité
|
||||||
|
description: Velet drives av folk som bidrar litt. Finn noe som passer deg.
|
||||||
|
action: /bidra
|
||||||
|
consequence:
|
||||||
|
- Vil bidra
|
||||||
|
features:
|
||||||
|
- name: For deg som vil være med
|
||||||
|
description: Du kan melde deg til hjelp på 17. mai, dugnad eller et arrangement, eller søke plass i en komité.
|
||||||
|
icon: lucide:hand-helping
|
||||||
|
- name: Hjelp fra naboen, eller hjelp naboen
|
||||||
|
description: Snømåking, handling, skyss og utlån av utstyr, naboer imellom.
|
||||||
|
action: /naboer
|
||||||
|
consequence:
|
||||||
|
- Til nabohjelp
|
||||||
|
features:
|
||||||
|
- name: For deg og naboene dine
|
||||||
|
description: Du kan be om hjelp, tilby hjelp eller legge ut noe du har å låne ut.
|
||||||
|
icon: lucide:heart-handshake
|
||||||
|
- name: Si din mening i en høringssak
|
||||||
|
description: Har kommunen en sak på høring som du har tanker om? Send oss innspillet ditt.
|
||||||
|
action: /received/horingsinnspill
|
||||||
|
consequence:
|
||||||
|
- Send innspill
|
||||||
|
record_as: innspill
|
||||||
|
features:
|
||||||
|
- name: Slik går det videre
|
||||||
|
description: Innspillet kommer inn til høringsgruppa. Så avgjør de om det blir tatt med i velets svar, og du får vite om det ble med eller ikke.
|
||||||
|
icon: lucide:route
|
||||||
|
- name: Hvem leser det
|
||||||
|
description: Høringsgruppa i Tomter Vel leser det du sender. Du når styret på post@tomtervel.no.
|
||||||
|
icon: lucide:users
|
||||||
|
- name: Ditt innspill
|
||||||
|
requirements:
|
||||||
|
- name: navn
|
||||||
|
label: Navn
|
||||||
|
type: text
|
||||||
|
placeholder: Kari Nordmann
|
||||||
|
- name: sak
|
||||||
|
label: Hvilken sak gjelder det?
|
||||||
|
type: text
|
||||||
|
placeholder: Reguleringsplan for Tomtervegen
|
||||||
|
- name: innspill
|
||||||
|
label: Hva mener du?
|
||||||
|
type: textarea
|
||||||
|
placeholder: Jeg mener gangfeltet bør flyttes nærmere skolen, fordi barna krysser der.
|
||||||
|
description: Ha saken og det du vil si klart før du begynner.
|
||||||
|
icon: lucide:megaphone
|
||||||
|
encouragements:
|
||||||
|
- Innspillet ditt leses av høringsgruppa før velet skriver sitt svar.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
qualifies: kasserer
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
name: Hva venter på meg som kasserer akkurat nå?
|
||||||
|
description: Her har du oversikt over medlemmer, endringer og utlegg som venter på deg som kasserer.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Nye medlemmer som venter på registrering
|
||||||
|
description: Husstander som har meldt seg inn og venter på å bli registrert som betalende medlem.
|
||||||
|
action: /kasserer
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Husstander
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: husstander
|
||||||
|
requires_group: kasserer
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: betalt
|
||||||
|
label: Registrer betaling
|
||||||
|
- from: open
|
||||||
|
to: utmeldt
|
||||||
|
label: Meld ut
|
||||||
|
- name: Endringer som venter på å bli registrert
|
||||||
|
description: Medlemmer som har flyttet, byttet e-post eller vil melde seg ut, og venter på at opplysningene blir oppdatert.
|
||||||
|
action: /kasserer
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Medlemsendringer
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: medlemsendringer
|
||||||
|
requires_group: kasserer
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: oppdatert
|
||||||
|
label: Registrer endring
|
||||||
|
- name: Utlegg som venter på deg
|
||||||
|
description: Utlegg fra komitémedlemmer som venter på godkjenning eller utbetaling.
|
||||||
|
action: /kasserer
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Utlegg
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: utlegg
|
||||||
|
requires_group: kasserer
|
||||||
|
transitions:
|
||||||
|
- from: godkjent
|
||||||
|
to: utbetalt
|
||||||
|
label: Merk som utbetalt
|
||||||
|
- from: godkjent
|
||||||
|
to: avvist
|
||||||
|
label: Avvis likevel
|
||||||
|
- from: open
|
||||||
|
to: godkjent
|
||||||
|
label: Godkjenn utlegg
|
||||||
|
- from: open
|
||||||
|
to: avvist
|
||||||
|
label: Avvis utlegg
|
||||||
|
- name: Inviter noen inn i kassereren
|
||||||
|
description: De får en konto, plass i kassereren, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /kasserer
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: kasserer
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Sendte invitasjoner
|
||||||
|
description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.
|
||||||
|
action: /kasserer
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Who has been invited
|
||||||
|
description: Each row is one invitation, with the one-time link while it is unused.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: portal_invites
|
||||||
|
requires_group: kasserer
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: done
|
||||||
|
label: Er inne
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
qualifies: komiteer
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
name: Hva står ubehandlet i komiteen din nå?
|
||||||
|
description: Her holder du oversikt over sakene komiteen din har ansvar for, og flytter dem videre etter hvert som de blir fulgt opp.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Få tilbake det du har lagt ut
|
||||||
|
description: Har du lagt ut for noe til komiteen? Send det inn så kasserer kan betale deg tilbake.
|
||||||
|
action: /komiteer/utlegg
|
||||||
|
consequence:
|
||||||
|
- Send utlegg
|
||||||
|
- name: Inviter noen inn i komiteene
|
||||||
|
description: De får en konto, plass i komiteene, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /komiteer
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: komiteer
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Sendte invitasjoner
|
||||||
|
description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.
|
||||||
|
action: /komiteer
|
||||||
|
consequence:
|
||||||
|
- Confirm
|
||||||
|
features:
|
||||||
|
- name: Who has been invited
|
||||||
|
description: Each row is one invitation, with the one-time link while it is unused.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: portal_invites
|
||||||
|
requires_group: komiteer
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: done
|
||||||
|
label: Er inne
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: Hva skjer med utlegget mitt nå?
|
||||||
|
description: Utlegget er sendt til kasserer. Du får beskjed når det er sjekket.
|
||||||
|
alternatives:
|
||||||
|
- name: Pengene kommer på konto
|
||||||
|
description: Kasserer ser gjennom kvitteringen og overfører pengene til kontoen du oppga.
|
||||||
|
- name: Til forsiden
|
||||||
|
description: ''
|
||||||
|
action: /komiteer
|
||||||
|
consequence:
|
||||||
|
- Til forsiden
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
followup: false
|
||||||
|
name: Har du lagt ut penger for komiteen og vil ha dem tilbake?
|
||||||
|
description: Har du betalt for noe på vegne av en komité? Send inn utlegget, så får du pengene tilbake.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Få pengene tilbake
|
||||||
|
description: Har du lagt ut for noe til komiteen? Send det inn, så ordner kasserer resten.
|
||||||
|
action: /komiteer/utlegg-sent
|
||||||
|
consequence:
|
||||||
|
- Send inn
|
||||||
|
record_as: utlegg
|
||||||
|
features:
|
||||||
|
- name: Fra krav til utbetaling
|
||||||
|
description: Kasserer ser gjennom kravet og godkjenner det, og deretter blir pengene utbetalt til deg. Blir det avvist, hører du hvorfor.
|
||||||
|
icon: lucide:wallet
|
||||||
|
- name: Kasserer ser dette
|
||||||
|
description: Kasserer i styret leser kravet ditt, og kan nås på post@tomtervel.no om det haster.
|
||||||
|
icon: lucide:coins
|
||||||
|
- name: Krav om refusjon
|
||||||
|
requirements:
|
||||||
|
- name: navn
|
||||||
|
label: Navn
|
||||||
|
type: text
|
||||||
|
placeholder: Kari Nordmann
|
||||||
|
- name: belop
|
||||||
|
label: Beløp
|
||||||
|
type: text
|
||||||
|
placeholder: 450 kr
|
||||||
|
- name: hva
|
||||||
|
label: Hva gjaldt det
|
||||||
|
type: textarea
|
||||||
|
placeholder: Kaffe og kjeks til dugnaden
|
||||||
|
description: Ha kvittering eller bilag klart før du fyller ut.
|
||||||
|
icon: lucide:receipt
|
||||||
|
encouragements:
|
||||||
|
- Legg ved bilag om du har det, så går det raskere.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
qualifies: lekeplasser
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
name: Hva må fikses på lekeplassene og stien nå?
|
||||||
|
description: Her følger komiteen for lekeplassene opp det som er meldt inn av skader, til det er fikset.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Det som er meldt inn av skader
|
||||||
|
description: Meldinger om noe som er ødelagt på lekeplassen eller langs stien, og som bør fikses.
|
||||||
|
action: /lekeplasser
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Anleggsfeil
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: anleggsfeil
|
||||||
|
requires_group: lekeplasser
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: tatt_tak_i
|
||||||
|
label: Ta tak i saken
|
||||||
|
- from: tatt_tak_i
|
||||||
|
to: utbedret
|
||||||
|
label: Merk som utbedret
|
||||||
|
- name: Inviter noen inn i Leke- og møteplasser
|
||||||
|
description: De får en konto, plass i Leke- og møteplasser, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /lekeplasser
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: lekeplasser
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Sendte invitasjoner
|
||||||
|
description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.
|
||||||
|
action: /lekeplasser
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Who has been invited
|
||||||
|
description: Each row is one invitation, with the one-time link while it is unused.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: portal_invites
|
||||||
|
requires_group: lekeplasser
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: done
|
||||||
|
label: Er inne
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
name: Vil du bli medlem, eller endre medlemskapet ditt?
|
||||||
|
description: Bli medlem av Tomter Vel, eller oppdater opplysningene dine hvis du allerede er medlem.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Bli medlem av Tomter Vel
|
||||||
|
description: Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.
|
||||||
|
action: /received/bli-medlem
|
||||||
|
consequence:
|
||||||
|
- Bli medlem
|
||||||
|
record_as: husstander
|
||||||
|
features:
|
||||||
|
- name: Etter innmelding
|
||||||
|
description: Meldingen går til kasserer, som registrerer deg og sender deg kontingenten på e-post. Når den er betalt er du medlem.
|
||||||
|
icon: lucide:coins
|
||||||
|
- name: Hvem svarer deg
|
||||||
|
description: Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden.
|
||||||
|
icon: lucide:user
|
||||||
|
- name: Meld deg inn
|
||||||
|
requirements:
|
||||||
|
- name: navn
|
||||||
|
label: Navn
|
||||||
|
type: text
|
||||||
|
placeholder: Ola Nordmann
|
||||||
|
- name: adresse
|
||||||
|
label: Adresse
|
||||||
|
type: text
|
||||||
|
placeholder: Tomterveien 12
|
||||||
|
- name: email
|
||||||
|
label: Email
|
||||||
|
type: email
|
||||||
|
- name: telefon
|
||||||
|
label: Telefon
|
||||||
|
type: tel
|
||||||
|
optional: true
|
||||||
|
placeholder: 123 45 678
|
||||||
|
description: Ha adressen i Tomter og en e-post du bruker klar.
|
||||||
|
icon: lucide:user-plus
|
||||||
|
encouragements:
|
||||||
|
- Kasserer sender deg kontingenten på e-post rett etterpå.
|
||||||
|
- name: Oppdater eller avslutt medlemskapet
|
||||||
|
description: Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.
|
||||||
|
action: /received/endre-medlemskap
|
||||||
|
consequence:
|
||||||
|
- Send endring
|
||||||
|
record_as: medlemsendringer
|
||||||
|
features:
|
||||||
|
- name: Etter du sender inn
|
||||||
|
description: Kasserer får beskjeden og oppdaterer medlemslisten, eller melder deg ut om det er det du ber om.
|
||||||
|
icon: lucide:refresh-cw
|
||||||
|
- name: Hvem svarer deg
|
||||||
|
description: Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden.
|
||||||
|
icon: lucide:user
|
||||||
|
- name: Endre medlemskap
|
||||||
|
requirements:
|
||||||
|
- name: navn
|
||||||
|
label: Navn
|
||||||
|
type: text
|
||||||
|
placeholder: Ola Nordmann
|
||||||
|
- name: adresse
|
||||||
|
label: Adresse
|
||||||
|
type: text
|
||||||
|
placeholder: Ny adresse i Tomter
|
||||||
|
- name: hva_er_nytt
|
||||||
|
label: Hva vil du endre?
|
||||||
|
type: textarea
|
||||||
|
placeholder: Ny e-post, ny adresse, eller ønske om utmelding
|
||||||
|
description: Skriv navnet ditt og hva som er nytt.
|
||||||
|
icon: lucide:pencil
|
||||||
|
encouragements:
|
||||||
|
- Det tar bare et par minutter, og kasserer ordner resten.
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
name: Hva vil du melde fra om?
|
||||||
|
description: Har du sett noe farlig i trafikken, eller noe ødelagt på lekeplassen eller stien? Her sier du fra til velet.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Meld fra om en trafikkfare
|
||||||
|
description: Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.
|
||||||
|
action: /received/trafikkfare
|
||||||
|
consequence:
|
||||||
|
- Send inn
|
||||||
|
record_as: trafikkmeldinger
|
||||||
|
features:
|
||||||
|
- name: Hva skjer videre
|
||||||
|
description: Trafikkomiteen tar meldingen din opp med kommunen eller den som eier veien. Du får vite om saken blir ordnet eller avvist.
|
||||||
|
icon: lucide:route
|
||||||
|
- name: Hvem leser dette
|
||||||
|
description: Trafikkomiteen leser meldingen din; haster det, kan du nå styret på post@tomtervel.no.
|
||||||
|
icon: lucide:car
|
||||||
|
- name: Meld trafikkfare
|
||||||
|
requirements:
|
||||||
|
- name: hvor
|
||||||
|
label: Hvor var det
|
||||||
|
type: text
|
||||||
|
placeholder: Krysset Tomterveien / Elvestien
|
||||||
|
- name: hva
|
||||||
|
label: Hva så du
|
||||||
|
type: textarea
|
||||||
|
placeholder: Dårlig sikt i krysset, biler kjører fort
|
||||||
|
- name: epost
|
||||||
|
label: E-post (valgfritt)
|
||||||
|
type: email
|
||||||
|
optional: true
|
||||||
|
placeholder: ola.nordmann@epost.no
|
||||||
|
description: Fortell hva du så, hvor det var, og legg gjerne igjen e-posten din hvis vi trenger å spørre mer.
|
||||||
|
icon: lucide:alert-triangle
|
||||||
|
encouragements:
|
||||||
|
- Bare noen linjer om hva og hvor er nok til at vi kan følge opp.
|
||||||
|
- name: Meld fra om noe ødelagt
|
||||||
|
description: Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.
|
||||||
|
action: /received/anleggsfeil
|
||||||
|
consequence:
|
||||||
|
- Send inn
|
||||||
|
record_as: anleggsfeil
|
||||||
|
features:
|
||||||
|
- name: Hva skjer videre
|
||||||
|
description: Meldingen går til lekeplasskomiteen, som ser på den og tar tak i saken. Når feilen er utbedret, er saken avsluttet.
|
||||||
|
icon: lucide:wrench
|
||||||
|
- name: Hvem leser dette
|
||||||
|
description: Lekeplasskomiteen leser meldingen din; til det haster kan du nå styret på post@tomtervel.no.
|
||||||
|
icon: lucide:hammer
|
||||||
|
- name: Meld anleggsfeil
|
||||||
|
requirements:
|
||||||
|
- name: hvor
|
||||||
|
label: Hvor er det
|
||||||
|
type: select
|
||||||
|
options:
|
||||||
|
- Lekeplassen
|
||||||
|
- Elvestien
|
||||||
|
- Skøytebanen
|
||||||
|
- Et annet sted
|
||||||
|
- name: hva
|
||||||
|
label: Hva er ødelagt
|
||||||
|
type: textarea
|
||||||
|
placeholder: Løs planke på gjerdet ved husken
|
||||||
|
description: Fortell hva som er ødelagt og omtrent hvor det er.
|
||||||
|
icon: lucide:construction
|
||||||
|
encouragements:
|
||||||
|
- Det holder med noen ord om hva du så og hvor.
|
||||||
@@ -0,0 +1,125 @@
|
|||||||
|
name: Trenger du en hånd, eller kan du gi en?
|
||||||
|
description: Godt naboskap gjør hverdagen lettere. Trenger du en hånd, kan gi en, eller har noe å låne bort?
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Få en nabo til å stille opp
|
||||||
|
description: Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.
|
||||||
|
action: /received/trenger-hjelp
|
||||||
|
consequence:
|
||||||
|
- Be om hjelp
|
||||||
|
record_as: hjelpebehov
|
||||||
|
features:
|
||||||
|
- name: Fra melding til hjelp
|
||||||
|
description: Nabohjelpen finner en nabo som kan stille opp. Er det ordnet, eller om det ikke lot seg løse, får du beskjed.
|
||||||
|
icon: lucide:hand-helping
|
||||||
|
- name: Hvem ser dette
|
||||||
|
description: Nabohjelpen tar imot og finner noen til deg, eller ring post@tomtervel.no i mellomtiden.
|
||||||
|
icon: lucide:users
|
||||||
|
- name: Be om en hånd
|
||||||
|
requirements:
|
||||||
|
- name: navn
|
||||||
|
label: Navn
|
||||||
|
type: text
|
||||||
|
placeholder: Kari Nordmann
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
placeholder: kari@eksempel.no
|
||||||
|
- name: adresse
|
||||||
|
label: Adresse
|
||||||
|
type: text
|
||||||
|
placeholder: Tomterveien 12
|
||||||
|
- name: hva
|
||||||
|
label: Hva trenger du hjelp til
|
||||||
|
type: textarea
|
||||||
|
placeholder: Måke snø på trappa, handle inn litt mat
|
||||||
|
- name: telefon
|
||||||
|
label: Telefon
|
||||||
|
type: tel
|
||||||
|
optional: true
|
||||||
|
placeholder: 123 45 678
|
||||||
|
description: Skriv kort hva du trenger hjelp til.
|
||||||
|
icon: lucide:heart-handshake
|
||||||
|
encouragements:
|
||||||
|
- Vi finner en nabo som kan stille opp så fort som mulig.
|
||||||
|
- name: Bli spurt når en nabo trenger en hånd
|
||||||
|
description: Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.
|
||||||
|
action: /received/kan-hjelpe
|
||||||
|
consequence:
|
||||||
|
- Meld deg
|
||||||
|
record_as: hjelpere
|
||||||
|
features:
|
||||||
|
- name: Fra påmelding til spørsmål
|
||||||
|
description: Du blir registrert som hjelper. Trekker du deg tilbake senere, er det bare å si fra.
|
||||||
|
icon: lucide:user-check
|
||||||
|
- name: Hvem ser dette
|
||||||
|
description: Nabohjelpen har oversikten og ringer deg direkte når det er noe, eller nås på post@tomtervel.no.
|
||||||
|
icon: lucide:heart-handshake
|
||||||
|
- name: Meld deg som hjelper
|
||||||
|
requirements:
|
||||||
|
- name: navn
|
||||||
|
label: Navn
|
||||||
|
type: text
|
||||||
|
placeholder: Kari Nordmann
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
placeholder: kari@eksempel.no
|
||||||
|
- name: telefon
|
||||||
|
label: Telefon
|
||||||
|
type: tel
|
||||||
|
placeholder: 123 45 678
|
||||||
|
- name: kan
|
||||||
|
label: Hva kan du hjelpe med
|
||||||
|
type: select
|
||||||
|
options:
|
||||||
|
- Snømåking
|
||||||
|
- Handling
|
||||||
|
- Kjøring
|
||||||
|
- Småfiks i huset
|
||||||
|
- En prat og litt selskap
|
||||||
|
- Det som trengs
|
||||||
|
multiple: true
|
||||||
|
description: Fortell kort hva du kan bidra med.
|
||||||
|
icon: lucide:hand-helping
|
||||||
|
encouragements:
|
||||||
|
- Du blir bare kontaktet når noe passer for deg.
|
||||||
|
- name: Lån ut eller lån av naboen
|
||||||
|
description: Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.
|
||||||
|
action: /received/dele-utstyr
|
||||||
|
consequence:
|
||||||
|
- Legg ut oppslag
|
||||||
|
record_as: oppslag
|
||||||
|
features:
|
||||||
|
- name: Fra oppslag til avtale
|
||||||
|
description: Oppslaget legges ut for naboene å se. Når det er ordnet eller ikke lenger aktuelt, tas det ned igjen.
|
||||||
|
icon: lucide:clipboard-list
|
||||||
|
- name: Hvem ser dette
|
||||||
|
description: Styret legger ut oppslaget og kan nås på post@tomtervel.no i mellomtiden.
|
||||||
|
icon: lucide:users
|
||||||
|
- name: Lån eller utlån
|
||||||
|
requirements:
|
||||||
|
- name: navn
|
||||||
|
label: Navn
|
||||||
|
type: text
|
||||||
|
placeholder: Ola Nordmann
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
placeholder: ola@eksempel.no
|
||||||
|
- name: har_eller_trenger
|
||||||
|
label: Har du eller trenger du
|
||||||
|
type: select
|
||||||
|
options:
|
||||||
|
- Jeg har noe å låne ut
|
||||||
|
- Jeg trenger å låne noe
|
||||||
|
- name: hva
|
||||||
|
label: Hva gjelder det
|
||||||
|
type: textarea
|
||||||
|
placeholder: Hengerfeste til bil, tilhenger, stige
|
||||||
|
description: Skriv kort hva det gjelder, så folk skjønner det med en gang.
|
||||||
|
icon: lucide:package
|
||||||
|
encouragements:
|
||||||
|
- Vi legger det ut så naboene kan se det.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
qualifies: nabohjelp
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
name: Hvem trenger hjelp, og hvem kan stille opp?
|
||||||
|
description: Her kobler du naboer som trenger hjelp med dem som kan stille opp.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Naboer som trenger en hånd
|
||||||
|
description: Naboer som trenger en hånd med snømåking, handling eller skyss – klare til å bli koblet med noen som kan hjelpe.
|
||||||
|
action: /nabohjelp
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Hjelpebehov
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: hjelpebehov
|
||||||
|
requires_group: nabohjelp
|
||||||
|
transitions:
|
||||||
|
- from: formidlet
|
||||||
|
to: ordnet
|
||||||
|
label: Meld ordnet
|
||||||
|
- from: formidlet
|
||||||
|
to: ikke_lost
|
||||||
|
label: Meld ikke løst
|
||||||
|
- from: open
|
||||||
|
to: formidlet
|
||||||
|
label: Koble til nabo
|
||||||
|
- from: open
|
||||||
|
to: ikke_lost
|
||||||
|
label: Meld ikke løst
|
||||||
|
- name: Naboer som kan stille opp
|
||||||
|
description: Naboer som har sagt de kan stille opp – klare til å bli spurt når noen trenger dem.
|
||||||
|
action: /nabohjelp
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Hjelpere
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: hjelpere
|
||||||
|
requires_group: nabohjelp
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: registrert
|
||||||
|
label: Registrer som hjelper
|
||||||
|
- from: open
|
||||||
|
to: trukket
|
||||||
|
label: Meld trukket
|
||||||
|
- name: Inviter noen inn i nabohjelpen
|
||||||
|
description: De får en konto, plass i nabohjelpen, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /nabohjelp
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: nabohjelp
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Sendte invitasjoner
|
||||||
|
description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.
|
||||||
|
action: /nabohjelp
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Who has been invited
|
||||||
|
description: Each row is one invitation, with the one-time link while it is unused.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: portal_invites
|
||||||
|
requires_group: nabohjelp
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: done
|
||||||
|
label: Er inne
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
name: Hva skjer med meldingen min nå?
|
||||||
|
description: Meldingen din om skaden er sendt til lekeplasskomiteen. De ser over det du har sendt.
|
||||||
|
alternatives:
|
||||||
|
- name: Komiteen tar tak i det
|
||||||
|
description: Lekeplasskomiteen ser på meldingen og tar tak i det som må fikses før noen skader seg.
|
||||||
|
- name: Se andre meldte feil
|
||||||
|
description: Se hva andre har meldt inn av skader på lekeplassene og stien, og hvor langt det har kommet.
|
||||||
|
action: /status/anleggsfeil
|
||||||
|
consequence:
|
||||||
|
- Se meldte feil
|
||||||
|
- name: Tilbake til forsiden
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake til forsiden
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: Hva skjer etter at jeg har meldt meg inn?
|
||||||
|
description: Vi har mottatt innmeldingen din. Kasserer tar kontakt med betalingsinfo så snart medlemskapet er registrert.
|
||||||
|
alternatives:
|
||||||
|
- name: Kasserer sender deg betalingsinfo
|
||||||
|
description: Kasserer går gjennom nye innmeldinger og sender deg kontonummer og beløp for kontingenten.
|
||||||
|
- name: Tilbake til forsiden
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake til forsiden
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
name: Hva skjer med det jeg har lagt ut?
|
||||||
|
description: Takk for at du la ut noe naboene kan låne. Vi legger det ut på oppslaget så snart vi kan.
|
||||||
|
alternatives:
|
||||||
|
- name: Styret legger det ut for deg
|
||||||
|
description: En i styret legger utstyret ut på naboenes oppslag, så andre kan se det og spørre om å låne.
|
||||||
|
- name: Se alt naboene deler
|
||||||
|
description: Se hva andre i Tomter har lagt ut til utlån akkurat nå.
|
||||||
|
action: /status/oppslag
|
||||||
|
consequence:
|
||||||
|
- Se hva naboer deler
|
||||||
|
- name: Tilbake til forsiden
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake til forsiden
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: Hva skjer nå med det jeg meldte inn?
|
||||||
|
description: Vi har mottatt beskjeden om at du har flyttet, byttet e-post eller vil melde deg ut.
|
||||||
|
alternatives:
|
||||||
|
- name: Kasserer retter opp opplysningene
|
||||||
|
description: Kasserer oppdaterer medlemslista og gir deg beskjed hvis det er noe mer vi trenger fra deg.
|
||||||
|
- name: Tilbake til forsiden
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake til forsiden
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: Hva skjer nå som jeg har meldt meg?
|
||||||
|
description: Takk for at du vil hjelpe til. Arrangementskomiteen har fått beskjed og tar kontakt med deg.
|
||||||
|
alternatives:
|
||||||
|
- name: Komiteen tar kontakt
|
||||||
|
description: Du hører fra noen i komiteen når de vet hva de trenger hjelp til, gjerne noen dager før arrangementet eller dugnaden.
|
||||||
|
- name: Tilbake til forsiden
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake til forsiden
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: Hva skjer med det jeg har sagt om saken?
|
||||||
|
description: Innspillet ditt er sendt til høringsinstansen i velet.
|
||||||
|
alternatives:
|
||||||
|
- name: Innspillet ditt inn i vurderingen
|
||||||
|
description: De ser på om det kan tas med i velets høringssvar til kommunen, og gir beskjed om det blir med.
|
||||||
|
- name: Tilbake til forsiden
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake til forsiden
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: Hva skjer nå som jeg har registrert meg?
|
||||||
|
description: Takk for at du sier fra at du kan stille opp. Nabohjelp-komiteen tar imot meldingen og legger deg inn på lista over naboer som kan hjelpe.
|
||||||
|
alternatives:
|
||||||
|
- name: Du blir kontaktet ved behov
|
||||||
|
description: Når en nabo trenger hjelp med noe du har sagt du kan bidra med, tar komiteen kontakt med deg direkte.
|
||||||
|
- name: Tilbake til forsiden
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake til forsiden
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: Hva skjer nå som jeg har meldt interesse for en komité?
|
||||||
|
description: Takk for at du vil bidra! Styret har fått beskjed og ser på hvilken komité som passer best for deg.
|
||||||
|
alternatives:
|
||||||
|
- name: Vi finner riktig komité til deg
|
||||||
|
description: Noen fra styret tar kontakt for å høre mer om hva du liker å drive med, og finner en komité som passer.
|
||||||
|
- name: Tilbake til forsiden
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake til forsiden
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
name: Hva skjer med meldingen min nå?
|
||||||
|
description: Meldingen din om trafikkfaren er sendt til komiteen for trafikk.
|
||||||
|
alternatives:
|
||||||
|
- name: Trafikkomiteen tar den videre
|
||||||
|
description: Trafikkomiteen ser gjennom meldinger jevnlig og tar det videre med kommunen eller den som eier veien der det trengs.
|
||||||
|
- name: Andre meldte trafikkfarer
|
||||||
|
description: Se hva andre har meldt inn, og status på sakene.
|
||||||
|
action: /status/trafikkmeldinger
|
||||||
|
consequence:
|
||||||
|
- Se andre trafikkfarer
|
||||||
|
- name: Tilbake til forsiden
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake til forsiden
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: Hva skjer nå som jeg har bedt om hjelp?
|
||||||
|
description: Meldingen din er sendt til nabohjelpa. Vi ser etter en nabo som kan stille opp.
|
||||||
|
alternatives:
|
||||||
|
- name: Vi finner en nabo til deg
|
||||||
|
description: Vi tar kontakt med noen som kan hjelpe, så snart vi finner en som passer.
|
||||||
|
- name: Til forsiden
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Til forsiden
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
name: Hva skjer med det jeg har meldt fra om?
|
||||||
|
description: Her ser du meldinger om ødelagt lekeutstyr og skader på elvestien, og hvor langt hver sak har kommet.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Status på meldte anleggsfeil
|
||||||
|
description: Alle meldinger er åpne for alle å se.
|
||||||
|
features:
|
||||||
|
- name: Anleggsfeil
|
||||||
|
description: Each row is one case and the stage it has reached. Names and contact details are not shown here.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: anleggsfeil
|
||||||
|
public: true
|
||||||
|
states: []
|
||||||
|
empty: Nothing here yet.
|
||||||
|
jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {hva: .hva, hvor: .hvor}'
|
||||||
|
- name: Tilbake til meldinger
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake til meldinger
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
name: Hva er sendt inn, og hvor langt har det kommet?
|
||||||
|
description: Her ser du alt som er sendt inn og hvor langt hvert oppslag har kommet.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Oversikt over det som er meldt inn
|
||||||
|
description: Åpen liste – navn og detaljer vises ikke.
|
||||||
|
features:
|
||||||
|
- name: Oppslag
|
||||||
|
description: Each row is one case and the stage it has reached. Names and contact details are not shown here.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: oppslag
|
||||||
|
public: true
|
||||||
|
states: []
|
||||||
|
empty: Nothing here yet.
|
||||||
|
jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {har_eller_trenger: .har_eller_trenger, hva: .hva}'
|
||||||
|
- name: Tilbake
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
name: Er det meldt fra om noe farlig i trafikken der jeg bor?
|
||||||
|
description: Her ser du farlige steder i trafikken som er meldt inn, og hvor langt saken har kommet.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Trafikkmeldinger og status
|
||||||
|
description: Alle meldinger som er sendt inn, og hvor de står nå.
|
||||||
|
features:
|
||||||
|
- name: Trafikkmeldinger
|
||||||
|
description: Each row is one case and the stage it has reached. Names and contact details are not shown here.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: trafikkmeldinger
|
||||||
|
public: true
|
||||||
|
states: []
|
||||||
|
empty: Nothing here yet.
|
||||||
|
jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {hva: .hva, hvor: .hvor}'
|
||||||
|
- name: Tilbake
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Tilbake
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
qualifies: styret
|
||||||
@@ -0,0 +1,219 @@
|
|||||||
|
name: Hva venter på styret akkurat nå?
|
||||||
|
description: 'Herfra følger styret opp det som ikke hører under en enkelt komité: høringssvar, komitéplasser og oppslag fra naboer.'
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Høringsinnspill fra beboerne
|
||||||
|
description: Her samles meninger fra beboerne om saker kommunen har på høring, klare til å tas med i velets svar.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Innspill
|
||||||
|
description: Each row is one case and the stage it has reached. Another desk moves these.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: innspill
|
||||||
|
requires_group: styret
|
||||||
|
transitions: []
|
||||||
|
- name: Søknader til komiteene
|
||||||
|
description: Her ligger alle som har meldt seg til en komité og venter på en plass.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Komitesoknader
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: komitesoknader
|
||||||
|
requires_group: styret
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: plassert
|
||||||
|
label: Sett i komité
|
||||||
|
- from: open
|
||||||
|
to: avslatt
|
||||||
|
label: Avslå søknaden
|
||||||
|
- name: Utstyr til utlån blant naboer
|
||||||
|
description: Her ligger det naboer har å låne ut eller trenger å låne, klart til å legges ut.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Oppslag
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: oppslag
|
||||||
|
requires_group: styret
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: lagt_ut
|
||||||
|
label: Legg ut oppslaget
|
||||||
|
- from: open
|
||||||
|
to: tatt_ned
|
||||||
|
label: Ta ned oppslaget
|
||||||
|
- name: Meldinger om trafikkfarer
|
||||||
|
description: Her samles meldinger om farlige steder i trafikken, klare til å tas videre med kommunen eller veieier.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Trafikkmeldinger
|
||||||
|
description: Each row is one case and the stage it has reached. Another desk moves these.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: trafikkmeldinger
|
||||||
|
requires_group: styret
|
||||||
|
transitions: []
|
||||||
|
- name: Inviter noen inn i Arrangementer
|
||||||
|
description: De får en konto, plass i Arrangementer, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: arrangementer
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Inviter noen inn i Høringsinstans
|
||||||
|
description: De får en konto, plass i Høringsinstans, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: horingsinstans
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Inviter noen inn i kassereren
|
||||||
|
description: De får en konto, plass i kassereren, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: kasserer
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Inviter noen inn i komiteene
|
||||||
|
description: De får en konto, plass i komiteene, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: komiteer
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Inviter noen inn i Leke- og møteplasser
|
||||||
|
description: De får en konto, plass i Leke- og møteplasser, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: lekeplasser
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Inviter noen inn i nabohjelpen
|
||||||
|
description: De får en konto, plass i nabohjelpen, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: nabohjelp
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Inviter noen inn i styret
|
||||||
|
description: De får en konto, plass i styret, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: styret
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Inviter noen inn i Trafikkforhold
|
||||||
|
description: De får en konto, plass i Trafikkforhold, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: trafikk
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Sendte invitasjoner
|
||||||
|
description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.
|
||||||
|
action: /styret
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Who has been invited
|
||||||
|
description: Each row is one invitation, with the one-time link while it is unused.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: portal_invites
|
||||||
|
requires_group: styret
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: done
|
||||||
|
label: Er inne
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
qualifies: trafikk
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
name: Hvilke trafikkfarer må følges opp?
|
||||||
|
description: Her ser du meldinger om farlige steder i trafikken og følger dem opp overfor kommunen eller veieier.
|
||||||
|
responsible:
|
||||||
|
name: Styret i Tomter Vel
|
||||||
|
contact: post@tomtervel.no
|
||||||
|
alternatives:
|
||||||
|
- name: Farlige steder i trafikken
|
||||||
|
description: Farlige steder i trafikken som naboer har meldt inn.
|
||||||
|
action: /trafikk
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Trafikkmeldinger
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: trafikkmeldinger
|
||||||
|
requires_group: trafikk
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: tatt_opp
|
||||||
|
label: Ta opp med kommunen
|
||||||
|
- from: open
|
||||||
|
to: avvist
|
||||||
|
label: Avvis meldingen
|
||||||
|
- from: tatt_opp
|
||||||
|
to: ordnet
|
||||||
|
label: Meld ordnet
|
||||||
|
- from: tatt_opp
|
||||||
|
to: avvist
|
||||||
|
label: Avvis meldingen
|
||||||
|
- name: Inviter noen inn i Trafikkforhold
|
||||||
|
description: De får en konto, plass i Trafikkforhold, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem.
|
||||||
|
action: /trafikk
|
||||||
|
consequence:
|
||||||
|
- Inviter
|
||||||
|
invite:
|
||||||
|
group: trafikk
|
||||||
|
features:
|
||||||
|
- name: Hvem
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Navn
|
||||||
|
- name: email
|
||||||
|
label: E-post
|
||||||
|
type: email
|
||||||
|
- name: Sendte invitasjoner
|
||||||
|
description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne.
|
||||||
|
action: /trafikk
|
||||||
|
consequence:
|
||||||
|
- Lagre
|
||||||
|
features:
|
||||||
|
- name: Who has been invited
|
||||||
|
description: Each row is one invitation, with the one-time link while it is unused.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: portal_invites
|
||||||
|
requires_group: trafikk
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: done
|
||||||
|
label: Er inne
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
title: Tomter Vel
|
||||||
|
lang: no
|
||||||
|
mail:
|
||||||
|
from: Tomter Vel <tomtervel@klingenbergbygg.no>
|
||||||
|
reply_to: post@tomtervel.no
|
||||||
|
invite:
|
||||||
|
subject: Din konto hos {site_name}
|
||||||
|
body: |-
|
||||||
|
Hei {name},
|
||||||
|
|
||||||
|
{site_name} har laget en konto til deg og lagt deg til i {group}. Brukernavnet ditt er {username}.
|
||||||
|
|
||||||
|
Velg passord her før {expires}:
|
||||||
|
{link}
|
||||||
|
|
||||||
|
Etterpå logger du inn på {site}.
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,101 @@
|
|||||||
|
# uhhm.no, rebuilt for portal 0.5.1 and previewed from a branch
|
||||||
|
|
||||||
|
**Scrapped 2026-09-28** after the preview: the original reads better.
|
||||||
|
The branch, the instance, its NATS and its Caddy route are removed;
|
||||||
|
the `preview.uhhm.no` DNS record remains in uhhm/infrastructure. What
|
||||||
|
carried over to the trainer: the 0.5 schema, the mail scoring, and the
|
||||||
|
iris mail checks.
|
||||||
|
|
||||||
|
`plans/uhhm.yaml` (the 2026-09-23 plan) built with round 8's words
|
||||||
|
(`runs/uhhm-2026-09-23/words-r8.json`), after the builder learned
|
||||||
|
portal 0.5's content schema. Lints green with iris v0.5.1: 15 pages,
|
||||||
|
9 aggregates, 58 access rules, 7 needs met.
|
||||||
|
|
||||||
|
What is new against round 8:
|
||||||
|
|
||||||
|
- **A submitter's own moves say where they may be made from.**
|
||||||
|
Portal 0.5 reads a `self_transition` without `from` as the initial
|
||||||
|
state alone; the builder writes `from:` for every one. (The
|
||||||
|
Tomter Vel content deployed on 2026-09-23 fails the 0.5 lint for
|
||||||
|
this reason: its "hjelpen er gitt" link moves from `formidlet`.)
|
||||||
|
- **The approved changes to this site are public.** `propose` gets
|
||||||
|
`watched_by: [public]` and `public_states: [approved]`, so
|
||||||
|
`/status/development_proposals` lists what was approved, without
|
||||||
|
who proposed it (`submitted_by` is `private`). The page's words are
|
||||||
|
Sonnet's, told that the list shows only approved changes
|
||||||
|
(`words-status.json`); the front door's card for it is worded by
|
||||||
|
hand (`overrides.json`).
|
||||||
|
|
||||||
|
Build, reproducibly, without a model:
|
||||||
|
|
||||||
|
```
|
||||||
|
portal-trainer build --plan plans/uhhm.yaml --out runs/uhhm-2026-09-28/site \
|
||||||
|
--words runs/uhhm-2026-09-23/words-r8.json \
|
||||||
|
--words runs/uhhm-2026-09-28/words-status.json \
|
||||||
|
--words runs/uhhm-2026-09-28/overrides.json --lint iris
|
||||||
|
```
|
||||||
|
|
||||||
|
## The preview
|
||||||
|
|
||||||
|
uhhm/questions branch `preview/trainer` carries this build, and
|
||||||
|
`.gitea/workflows/preview.yml` serves any `preview/*` branch as
|
||||||
|
`app@uhhm-preview` on ergo (:3012, `preview.uhhm.no`):
|
||||||
|
|
||||||
|
- its own NATS container (`uhhm-preview-nats`, 127.0.0.1:4232), so a
|
||||||
|
preview never writes into uhhm.no's buckets, and gdo, which reads
|
||||||
|
the real NATS, never delivers its mail;
|
||||||
|
- no sign-in, so the owners' and custodians' desks are not reachable
|
||||||
|
in a preview;
|
||||||
|
- the pushed commit, not the branch name, as `CONTENT_BRANCH`:
|
||||||
|
portal puts the ref into Gitea's `git/trees/<ref>` path, and the
|
||||||
|
slash in `preview/trainer` 404s there. A portal fix would let a
|
||||||
|
preview follow its branch with the normal reload.
|
||||||
|
|
||||||
|
`preview.uhhm.no` needs a DNS record (uhhm/infrastructure pull
|
||||||
|
request 4, then a manual terraform apply) before Caddy can get it a
|
||||||
|
certificate. Until then the preview answers on the host:
|
||||||
|
`curl -H 'X-Forwarded-For: 127.0.0.1' http://127.0.0.1:3012/`.
|
||||||
|
|
||||||
|
Not in this build: `grants`, deadlines (`after`) and `type: record`.
|
||||||
|
Nothing in the uhhm plan is an approval that means membership of a
|
||||||
|
group that exists, nor a stage a clock should end, and `type: record`
|
||||||
|
needs dynamic pages the builder does not make yet.
|
||||||
|
|
||||||
|
## The mails, scored as a person reads them
|
||||||
|
|
||||||
|
`rate --repo` now rates every mail the site sends, the invite mail
|
||||||
|
included (site.yaml `mail.invite`, written by the builder whenever a
|
||||||
|
plan onboards people and has a sender). Besides LIX, each mail is put
|
||||||
|
to its reader - someone who sent a form, or someone just brought in -
|
||||||
|
with three questions: what happened and to what, what can I do now,
|
||||||
|
who wrote and how do I answer. Each is also put to a gutted twin
|
||||||
|
("News. There is news."); a yes the twin also gets fails the control.
|
||||||
|
The mail is read as it arrives, placeholders filled with plausible
|
||||||
|
values.
|
||||||
|
|
||||||
|
| Round | Mails | All three answered | iris mail warnings |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 1 (`rate-round1.txt`) | round 8's, plus the invite | 7 of 11 | 0 |
|
||||||
|
| 2 (not rated) | reworded: name the case and the sender | - | 5 |
|
||||||
|
| 3 (`rate.txt`) | reworded again with every rule below | 11 of 11 | 0 |
|
||||||
|
|
||||||
|
Round 1's four misses never named their case ("We'd like to take this
|
||||||
|
on", "your message", "your draft" for what was a description) or who
|
||||||
|
wrote; the rule became: every mail names the case by a field the
|
||||||
|
person filled in and ends with the business's name. Following it,
|
||||||
|
round 2 found new ways to go wrong, each now a rule too:
|
||||||
|
|
||||||
|
- `{project}`, a whole brief, in a subject line, and `{org_contact}`,
|
||||||
|
usually empty, in a greeting (the five warnings): the prompt marks
|
||||||
|
fields `(long)` and `(optional)` and keeps both out;
|
||||||
|
- "the custodian has written why in the reply", which no desk can
|
||||||
|
do: a decision's mail offers a reply instead, since a reply reaches
|
||||||
|
the people who decided as a note.
|
||||||
|
|
||||||
|
The deterministic half of that went into iris (uhhm/iris PR 1): a
|
||||||
|
placeholder nothing fills, a link to a page that does not exist, a
|
||||||
|
grant on a site that mails no one, an invite without `{link}` fail;
|
||||||
|
a placeholder only some forms collect or all mark optional, a long
|
||||||
|
answer in a subject, a dialogue that never says how it ended, and a
|
||||||
|
mail about a case the person may act on without their link, warn.
|
||||||
|
The preview branch carries round 3's mails.
|
||||||
@@ -0,0 +1,155 @@
|
|||||||
|
aggregates:
|
||||||
|
- bucket: applicants
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: applied
|
||||||
|
invited:
|
||||||
|
event: invited
|
||||||
|
active:
|
||||||
|
event: onboarded
|
||||||
|
departed:
|
||||||
|
event: departed
|
||||||
|
declined:
|
||||||
|
event: declined
|
||||||
|
transitions:
|
||||||
|
active:
|
||||||
|
- departed
|
||||||
|
invited:
|
||||||
|
- active
|
||||||
|
- declined
|
||||||
|
open:
|
||||||
|
- invited
|
||||||
|
- declined
|
||||||
|
- bucket: custody_requests
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: We have your message
|
||||||
|
body: Your message reached the custodians of the first node. We read everything that comes in - expect a real reply, not an autoresponder.
|
||||||
|
in_dialogue:
|
||||||
|
event: in_dialogue
|
||||||
|
resolved:
|
||||||
|
event: resolved
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: Your case is resolved
|
||||||
|
body: This is resolved. Here's what we found and what we did about it - write back if it isn't settled from where you sit.
|
||||||
|
declined:
|
||||||
|
event: declined
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: On your message to the custodians
|
||||||
|
body: We've read your message and decided this isn't something we can take on as custodians. If you think we've missed something, write back and tell us.
|
||||||
|
transitions:
|
||||||
|
in_dialogue:
|
||||||
|
- resolved
|
||||||
|
- declined
|
||||||
|
open:
|
||||||
|
- in_dialogue
|
||||||
|
- declined
|
||||||
|
- bucket: development_proposals
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: proposed
|
||||||
|
approved:
|
||||||
|
event: approved
|
||||||
|
rejected:
|
||||||
|
event: rejected
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- approved
|
||||||
|
- rejected
|
||||||
|
- bucket: organizations
|
||||||
|
initial: prospect
|
||||||
|
states:
|
||||||
|
prospect:
|
||||||
|
event: identified
|
||||||
|
client:
|
||||||
|
event: became_client
|
||||||
|
past_client:
|
||||||
|
event: churned
|
||||||
|
transitions:
|
||||||
|
client:
|
||||||
|
- past_client
|
||||||
|
prospect:
|
||||||
|
- client
|
||||||
|
- past_client
|
||||||
|
- bucket: projects
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: submitted
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: We have your brief
|
||||||
|
body: |-
|
||||||
|
Your brief is in front of us. We read the whole thing before we reply, so it may take a few days - you'll hear from us either way.
|
||||||
|
|
||||||
|
What you can do next: {site}/decide/commission?chain={chain}&email={email}
|
||||||
|
accepted:
|
||||||
|
event: accepted
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: We'd like to take this on
|
||||||
|
body: We want to take this on. Next we'll be in touch to talk through scope, timing and how we'll work together.
|
||||||
|
declined:
|
||||||
|
event: declined
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: On your brief
|
||||||
|
body: We've read your brief and this isn't one we're taking on. It isn't a judgment on the problem - just not a fit for us right now.
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- accepted
|
||||||
|
- declined
|
||||||
|
- bucket: subscribers
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: subscribed
|
||||||
|
unsubscribed:
|
||||||
|
event: unsubscribed
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- unsubscribed
|
||||||
|
- bucket: trials
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: We're looking at your draft
|
||||||
|
body: We have what you sent. A person will read it and build your draft, or tell you why not - you'll hear from us either way.
|
||||||
|
approved:
|
||||||
|
event: approved
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: Your draft is approved
|
||||||
|
body: Your draft is approved and on its way. We built it from your own words - have a look when it's ready and tell us what to change.
|
||||||
|
previewed:
|
||||||
|
event: previewed
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: Your draft is ready to view
|
||||||
|
body: Your draft is ready to look at. It's built from your own words - the link below takes you straight to it.
|
||||||
|
declined:
|
||||||
|
event: declined
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: On your draft
|
||||||
|
body: We've decided not to build this draft. If the situation changes, get back in touch and we'll take another look.
|
||||||
|
transitions:
|
||||||
|
approved:
|
||||||
|
- previewed
|
||||||
|
- declined
|
||||||
|
open:
|
||||||
|
- approved
|
||||||
|
- declined
|
||||||
|
attended_by: |
|
||||||
|
approved -> previewed: the n8n workflow that builds the draft site from an approved intake (docker, rauthy, portal content) and sends the preview link. Until it exists, owners run portal-trainer by hand and press the button.
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
words: site.yaml
|
||||||
|
content repo written to runs/uhhm-2026-09-28/site
|
||||||
|
OK: 15 question(s), 9 aggregate(s) valid
|
||||||
|
OK: access policy, 58 rule(s), validates
|
||||||
|
OK: 11 mail(s): every placeholder fills, every link lands
|
||||||
|
need "commission": / [Have us build it: send the brief] -> "projects"
|
||||||
|
need "trial": / [See your own business as a site, before you buy anything] -> "trials"
|
||||||
|
need "collaborate": / [Work with us] -> "applicants"
|
||||||
|
need "subscribe": / [Hear from us now and then] -> "subscribers"
|
||||||
|
need "propose": / [Suggest a change to this website] -> "development_proposals"
|
||||||
|
need "custody": / [You are on the redoal network: a node, an app, or a recording that concerns you] -> "custody_requests"
|
||||||
|
need "prospect": /owners/prospect [Keep an organization on your radar] -> "organizations"
|
||||||
|
OK: 7 need(s) structurally met, 0 planned, 15 persona(s)
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
words: aggregates.yaml
|
||||||
|
content repo written to runs/uhhm-2026-09-28/site
|
||||||
|
OK: 15 question(s), 9 aggregate(s) valid
|
||||||
|
OK: access policy, 58 rule(s), validates
|
||||||
|
OK: 11 mail(s): every placeholder fills, every link lands
|
||||||
|
need "commission": / [Have us build it: send the brief] -> "projects"
|
||||||
|
need "trial": / [See your own business as a site, before you buy anything] -> "trials"
|
||||||
|
need "collaborate": / [Work with us] -> "applicants"
|
||||||
|
need "subscribe": / [Hear from us now and then] -> "subscribers"
|
||||||
|
need "propose": / [Suggest a change to this website] -> "development_proposals"
|
||||||
|
need "custody": / [You are on the redoal network: a node, an app, or a recording that concerns you] -> "custody_requests"
|
||||||
|
need "prospect": /owners/prospect [Keep an organization on your radar] -> "organizations"
|
||||||
|
OK: 7 need(s) structurally met, 0 planned, 15 persona(s)
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
words: questions/status/development_proposals/index.yaml
|
||||||
|
content repo written to runs/uhhm-2026-09-28/site
|
||||||
|
OK: 15 question(s), 9 aggregate(s) valid
|
||||||
|
OK: access policy, 58 rule(s), validates
|
||||||
|
need "commission": / [Have us build it: send the brief] -> "projects"
|
||||||
|
need "trial": / [See your own business as a site, before you buy anything] -> "trials"
|
||||||
|
need "collaborate": / [Work with us] -> "applicants"
|
||||||
|
need "subscribe": / [Hear from us now and then] -> "subscribers"
|
||||||
|
need "propose": / [Suggest a change to this website] -> "development_proposals"
|
||||||
|
need "custody": / [You are on the redoal network: a node, an app, or a recording that concerns you] -> "custody_requests"
|
||||||
|
need "prospect": /owners/prospect [Keep an organization on your radar] -> "organizations"
|
||||||
|
OK: 7 need(s) structurally met, 0 planned, 15 persona(s)
|
||||||
@@ -0,0 +1,952 @@
|
|||||||
|
{
|
||||||
|
"needs": [
|
||||||
|
{
|
||||||
|
"id": "commission",
|
||||||
|
"who": "an organization with a problem it wants software to solve",
|
||||||
|
"wants": "a considered reply to a brief, from people who read the whole thing",
|
||||||
|
"enters_as": null,
|
||||||
|
"lands_in": "projects",
|
||||||
|
"handled_by": "owners",
|
||||||
|
"done_when": [
|
||||||
|
"accepted",
|
||||||
|
"declined"
|
||||||
|
],
|
||||||
|
"success": [
|
||||||
|
"accepted"
|
||||||
|
],
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"question": "What is UHHM, and what can you get here?",
|
||||||
|
"context": "What UHHM does: Two things, both built here and both running. A considered reply to your brief, and software that fits the argument: Infrastructure, tools and products for organizations that can say what problem they have. Bring the brief, or first see your own way of working as a working site, before you pay for anything. The brief stays yours: you can withdraw it yourself. A network that answers to you: UHHM builds and carries the redoal network: the gesture math, the relay, the first node, and the portal this page runs on. Run a node, build on it, or have a recording removed, and you say when it is resolved.\nHave a look around first: Nothing to fill in here. What is already out in the world, and the network as it runs right now. What we have built: A few things already out in the world. The redoal network, live: Straight from the relay, the first node of the network. Changes to this site we have approved: Suggestions from visitors that a person here has read and approved, open for anyone to read. [Changes to this site we have approved](/status/development_proposals)",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"name": "Have us build it: send the brief",
|
||||||
|
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "See your own business as a site, before you buy anything",
|
||||||
|
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Work with us",
|
||||||
|
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hear from us now and then",
|
||||||
|
"description": "You'd rather hear from us now and then than check back on your own."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Suggest a change to this website",
|
||||||
|
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
|
||||||
|
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"expect": [
|
||||||
|
"Have us build it: send the brief"
|
||||||
|
],
|
||||||
|
"alternative": "Have us build it: send the brief",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"label": "Your name",
|
||||||
|
"type": "text",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "email",
|
||||||
|
"label": "Your email",
|
||||||
|
"type": "email",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "project",
|
||||||
|
"label": "The problem you want solved",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "organization",
|
||||||
|
"label": "Your organization",
|
||||||
|
"type": "text",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "org_contact",
|
||||||
|
"label": "Who we should talk to",
|
||||||
|
"type": "text",
|
||||||
|
"optional": true,
|
||||||
|
"options": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "trial",
|
||||||
|
"who": "someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything",
|
||||||
|
"wants": "a first draft of a site for their own roles, built from their own words and approved by a person first",
|
||||||
|
"enters_as": null,
|
||||||
|
"lands_in": "trials",
|
||||||
|
"handled_by": "owners",
|
||||||
|
"done_when": [
|
||||||
|
"previewed",
|
||||||
|
"declined"
|
||||||
|
],
|
||||||
|
"success": [
|
||||||
|
"previewed"
|
||||||
|
],
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"question": "What is UHHM, and what can you get here?",
|
||||||
|
"context": "What UHHM does: Two things, both built here and both running. A considered reply to your brief, and software that fits the argument: Infrastructure, tools and products for organizations that can say what problem they have. Bring the brief, or first see your own way of working as a working site, before you pay for anything. The brief stays yours: you can withdraw it yourself. A network that answers to you: UHHM builds and carries the redoal network: the gesture math, the relay, the first node, and the portal this page runs on. Run a node, build on it, or have a recording removed, and you say when it is resolved.\nHave a look around first: Nothing to fill in here. What is already out in the world, and the network as it runs right now. What we have built: A few things already out in the world. The redoal network, live: Straight from the relay, the first node of the network. Changes to this site we have approved: Suggestions from visitors that a person here has read and approved, open for anyone to read. [Changes to this site we have approved](/status/development_proposals)",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"name": "Have us build it: send the brief",
|
||||||
|
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "See your own business as a site, before you buy anything",
|
||||||
|
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Work with us",
|
||||||
|
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hear from us now and then",
|
||||||
|
"description": "You'd rather hear from us now and then than check back on your own."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Suggest a change to this website",
|
||||||
|
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
|
||||||
|
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"expect": [
|
||||||
|
"See your own business as a site, before you buy anything"
|
||||||
|
],
|
||||||
|
"alternative": "See your own business as a site, before you buy anything",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "business",
|
||||||
|
"label": "Your business",
|
||||||
|
"type": "text",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "email",
|
||||||
|
"label": "Your email",
|
||||||
|
"type": "email",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "what_we_do",
|
||||||
|
"label": "What you do",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "who_comes_to_us",
|
||||||
|
"label": "Who comes to you",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "what_we_keep_track_of",
|
||||||
|
"label": "What you keep track of",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "who_is_involved",
|
||||||
|
"label": "Who's involved",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "what_slows_us_down",
|
||||||
|
"label": "What slows you down",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": true,
|
||||||
|
"options": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "collaborate",
|
||||||
|
"who": "someone who wants to work with us on what we build",
|
||||||
|
"wants": "to be read as a person, and invited in if there is a fit",
|
||||||
|
"enters_as": null,
|
||||||
|
"lands_in": "applicants",
|
||||||
|
"handled_by": "owners",
|
||||||
|
"done_when": [
|
||||||
|
"departed",
|
||||||
|
"declined"
|
||||||
|
],
|
||||||
|
"success": [
|
||||||
|
"departed"
|
||||||
|
],
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"question": "What is UHHM, and what can you get here?",
|
||||||
|
"context": "What UHHM does: Two things, both built here and both running. A considered reply to your brief, and software that fits the argument: Infrastructure, tools and products for organizations that can say what problem they have. Bring the brief, or first see your own way of working as a working site, before you pay for anything. The brief stays yours: you can withdraw it yourself. A network that answers to you: UHHM builds and carries the redoal network: the gesture math, the relay, the first node, and the portal this page runs on. Run a node, build on it, or have a recording removed, and you say when it is resolved.\nHave a look around first: Nothing to fill in here. What is already out in the world, and the network as it runs right now. What we have built: A few things already out in the world. The redoal network, live: Straight from the relay, the first node of the network. Changes to this site we have approved: Suggestions from visitors that a person here has read and approved, open for anyone to read. [Changes to this site we have approved](/status/development_proposals)",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"name": "Have us build it: send the brief",
|
||||||
|
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "See your own business as a site, before you buy anything",
|
||||||
|
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Work with us",
|
||||||
|
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hear from us now and then",
|
||||||
|
"description": "You'd rather hear from us now and then than check back on your own."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Suggest a change to this website",
|
||||||
|
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
|
||||||
|
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"expect": [
|
||||||
|
"Work with us"
|
||||||
|
],
|
||||||
|
"alternative": "Work with us",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"label": "Name",
|
||||||
|
"type": "text",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "email",
|
||||||
|
"label": "Email",
|
||||||
|
"type": "email",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "interest",
|
||||||
|
"label": "What kind of work",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "note",
|
||||||
|
"label": "Tell us more",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": true,
|
||||||
|
"options": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "subscribe",
|
||||||
|
"who": "someone who wants to hear from us when there is something to say",
|
||||||
|
"wants": "a note now and then, and an easy way out",
|
||||||
|
"enters_as": null,
|
||||||
|
"lands_in": "subscribers",
|
||||||
|
"handled_by": "owners",
|
||||||
|
"done_when": [
|
||||||
|
"unsubscribed"
|
||||||
|
],
|
||||||
|
"success": [],
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"question": "What is UHHM, and what can you get here?",
|
||||||
|
"context": "What UHHM does: Two things, both built here and both running. A considered reply to your brief, and software that fits the argument: Infrastructure, tools and products for organizations that can say what problem they have. Bring the brief, or first see your own way of working as a working site, before you pay for anything. The brief stays yours: you can withdraw it yourself. A network that answers to you: UHHM builds and carries the redoal network: the gesture math, the relay, the first node, and the portal this page runs on. Run a node, build on it, or have a recording removed, and you say when it is resolved.\nHave a look around first: Nothing to fill in here. What is already out in the world, and the network as it runs right now. What we have built: A few things already out in the world. The redoal network, live: Straight from the relay, the first node of the network. Changes to this site we have approved: Suggestions from visitors that a person here has read and approved, open for anyone to read. [Changes to this site we have approved](/status/development_proposals)",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"name": "Have us build it: send the brief",
|
||||||
|
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "See your own business as a site, before you buy anything",
|
||||||
|
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Work with us",
|
||||||
|
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hear from us now and then",
|
||||||
|
"description": "You'd rather hear from us now and then than check back on your own."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Suggest a change to this website",
|
||||||
|
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
|
||||||
|
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"expect": [
|
||||||
|
"Hear from us now and then"
|
||||||
|
],
|
||||||
|
"alternative": "Hear from us now and then",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"label": "Name",
|
||||||
|
"type": "text",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "email",
|
||||||
|
"label": "Email",
|
||||||
|
"type": "email",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "propose",
|
||||||
|
"who": "a visitor who sees how a page on this site should change",
|
||||||
|
"wants": "the change read by a person and, if approved, made",
|
||||||
|
"enters_as": null,
|
||||||
|
"lands_in": "development_proposals",
|
||||||
|
"handled_by": "owners",
|
||||||
|
"done_when": [
|
||||||
|
"approved",
|
||||||
|
"rejected"
|
||||||
|
],
|
||||||
|
"success": [
|
||||||
|
"approved"
|
||||||
|
],
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"question": "What is UHHM, and what can you get here?",
|
||||||
|
"context": "What UHHM does: Two things, both built here and both running. A considered reply to your brief, and software that fits the argument: Infrastructure, tools and products for organizations that can say what problem they have. Bring the brief, or first see your own way of working as a working site, before you pay for anything. The brief stays yours: you can withdraw it yourself. A network that answers to you: UHHM builds and carries the redoal network: the gesture math, the relay, the first node, and the portal this page runs on. Run a node, build on it, or have a recording removed, and you say when it is resolved.\nHave a look around first: Nothing to fill in here. What is already out in the world, and the network as it runs right now. What we have built: A few things already out in the world. The redoal network, live: Straight from the relay, the first node of the network. Changes to this site we have approved: Suggestions from visitors that a person here has read and approved, open for anyone to read. [Changes to this site we have approved](/status/development_proposals)",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"name": "Have us build it: send the brief",
|
||||||
|
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "See your own business as a site, before you buy anything",
|
||||||
|
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Work with us",
|
||||||
|
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hear from us now and then",
|
||||||
|
"description": "You'd rather hear from us now and then than check back on your own."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Suggest a change to this website",
|
||||||
|
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
|
||||||
|
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"expect": [
|
||||||
|
"Suggest a change to this website"
|
||||||
|
],
|
||||||
|
"alternative": "Suggest a change to this website",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "submitted_by",
|
||||||
|
"label": "Your name",
|
||||||
|
"type": "text",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "email",
|
||||||
|
"label": "Email",
|
||||||
|
"type": "email",
|
||||||
|
"optional": true,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "page",
|
||||||
|
"label": "Which page",
|
||||||
|
"type": "text",
|
||||||
|
"optional": true,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "rationale",
|
||||||
|
"label": "Why this is better",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "proposed_yaml",
|
||||||
|
"label": "Your proposed text",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "custody",
|
||||||
|
"who": "someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node",
|
||||||
|
"wants": "an answer from a custodian, and action where the network keeps something it should not",
|
||||||
|
"enters_as": null,
|
||||||
|
"lands_in": "custody_requests",
|
||||||
|
"handled_by": "custodians",
|
||||||
|
"done_when": [
|
||||||
|
"resolved",
|
||||||
|
"declined"
|
||||||
|
],
|
||||||
|
"success": [
|
||||||
|
"resolved"
|
||||||
|
],
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"question": "What is UHHM, and what can you get here?",
|
||||||
|
"context": "What UHHM does: Two things, both built here and both running. A considered reply to your brief, and software that fits the argument: Infrastructure, tools and products for organizations that can say what problem they have. Bring the brief, or first see your own way of working as a working site, before you pay for anything. The brief stays yours: you can withdraw it yourself. A network that answers to you: UHHM builds and carries the redoal network: the gesture math, the relay, the first node, and the portal this page runs on. Run a node, build on it, or have a recording removed, and you say when it is resolved.\nHave a look around first: Nothing to fill in here. What is already out in the world, and the network as it runs right now. What we have built: A few things already out in the world. The redoal network, live: Straight from the relay, the first node of the network. Changes to this site we have approved: Suggestions from visitors that a person here has read and approved, open for anyone to read. [Changes to this site we have approved](/status/development_proposals)",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"name": "Have us build it: send the brief",
|
||||||
|
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "See your own business as a site, before you buy anything",
|
||||||
|
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Work with us",
|
||||||
|
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hear from us now and then",
|
||||||
|
"description": "You'd rather hear from us now and then than check back on your own."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Suggest a change to this website",
|
||||||
|
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
|
||||||
|
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"expect": [
|
||||||
|
"You are on the redoal network: a node, an app, or a recording that concerns you"
|
||||||
|
],
|
||||||
|
"alternative": "You are on the redoal network: a node, an app, or a recording that concerns you",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"label": "Name",
|
||||||
|
"type": "text",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "email",
|
||||||
|
"label": "Email",
|
||||||
|
"type": "email",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "about",
|
||||||
|
"label": "What's going on",
|
||||||
|
"type": "select",
|
||||||
|
"optional": false,
|
||||||
|
"options": [
|
||||||
|
"Running a node of my own",
|
||||||
|
"Building on the network",
|
||||||
|
"Something the network keeps about me",
|
||||||
|
"Something else"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "what",
|
||||||
|
"label": "In short",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "prospect",
|
||||||
|
"who": "an owner who has met an organization worth following up",
|
||||||
|
"wants": "it written down and walked through its states from the desk",
|
||||||
|
"enters_as": "owners",
|
||||||
|
"lands_in": "organizations",
|
||||||
|
"handled_by": "owners",
|
||||||
|
"done_when": [
|
||||||
|
"past_client"
|
||||||
|
],
|
||||||
|
"success": [],
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"page": "/owners/prospect",
|
||||||
|
"question": "Is there an organization I should be keeping track of?",
|
||||||
|
"context": "",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"name": "Keep an organization on your radar",
|
||||||
|
"description": "One line per organization worth watching, moved through the stages as things develop."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"expect": [
|
||||||
|
"Keep an organization on your radar"
|
||||||
|
],
|
||||||
|
"alternative": "Keep an organization on your radar",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"label": "Organization",
|
||||||
|
"type": "text",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "contact",
|
||||||
|
"label": "Contact",
|
||||||
|
"type": "text",
|
||||||
|
"optional": false,
|
||||||
|
"options": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "note",
|
||||||
|
"label": "Note",
|
||||||
|
"type": "textarea",
|
||||||
|
"optional": true,
|
||||||
|
"options": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"buckets": {
|
||||||
|
"projects": {
|
||||||
|
"initial": "open",
|
||||||
|
"transitions": {
|
||||||
|
"open": [
|
||||||
|
"accepted",
|
||||||
|
"declined"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"words": {
|
||||||
|
"accepted": "taken on",
|
||||||
|
"declined": "not a fit for us",
|
||||||
|
"open": "received"
|
||||||
|
},
|
||||||
|
"desks": [
|
||||||
|
{
|
||||||
|
"page": "/owners",
|
||||||
|
"group": "owners",
|
||||||
|
"moves": [
|
||||||
|
{
|
||||||
|
"from": "open",
|
||||||
|
"to": "accepted",
|
||||||
|
"label": "Accept brief"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "open",
|
||||||
|
"to": "declined",
|
||||||
|
"label": "Decline brief"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"self_moves": [
|
||||||
|
"declined"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trials": {
|
||||||
|
"initial": "open",
|
||||||
|
"transitions": {
|
||||||
|
"approved": [
|
||||||
|
"previewed",
|
||||||
|
"declined"
|
||||||
|
],
|
||||||
|
"open": [
|
||||||
|
"approved",
|
||||||
|
"declined"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"words": {
|
||||||
|
"approved": "approved for a draft",
|
||||||
|
"declined": "not a fit for us",
|
||||||
|
"open": "received",
|
||||||
|
"previewed": "a preview is ready"
|
||||||
|
},
|
||||||
|
"desks": [
|
||||||
|
{
|
||||||
|
"page": "/owners",
|
||||||
|
"group": "owners",
|
||||||
|
"moves": [
|
||||||
|
{
|
||||||
|
"from": "approved",
|
||||||
|
"to": "previewed",
|
||||||
|
"label": "Mark previewed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "approved",
|
||||||
|
"to": "declined",
|
||||||
|
"label": "Decline trial"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "open",
|
||||||
|
"to": "approved",
|
||||||
|
"label": "Approve trial"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "open",
|
||||||
|
"to": "declined",
|
||||||
|
"label": "Decline trial"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"self_moves": []
|
||||||
|
},
|
||||||
|
"applicants": {
|
||||||
|
"initial": "open",
|
||||||
|
"transitions": {
|
||||||
|
"active": [
|
||||||
|
"departed"
|
||||||
|
],
|
||||||
|
"open": [
|
||||||
|
"invited",
|
||||||
|
"declined"
|
||||||
|
],
|
||||||
|
"invited": [
|
||||||
|
"active",
|
||||||
|
"declined"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"words": {
|
||||||
|
"active": "working with us",
|
||||||
|
"declined": "not a fit for us",
|
||||||
|
"departed": "moved on",
|
||||||
|
"invited": "invited in",
|
||||||
|
"open": "received"
|
||||||
|
},
|
||||||
|
"desks": [
|
||||||
|
{
|
||||||
|
"page": "/owners",
|
||||||
|
"group": "owners",
|
||||||
|
"moves": [
|
||||||
|
{
|
||||||
|
"from": "active",
|
||||||
|
"to": "departed",
|
||||||
|
"label": "Mark departed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "invited",
|
||||||
|
"to": "active",
|
||||||
|
"label": "Confirm active"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "invited",
|
||||||
|
"to": "declined",
|
||||||
|
"label": "Withdraw the invite"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "open",
|
||||||
|
"to": "invited",
|
||||||
|
"label": "Send invite"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "open",
|
||||||
|
"to": "declined",
|
||||||
|
"label": "Decline applicant"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"self_moves": []
|
||||||
|
},
|
||||||
|
"subscribers": {
|
||||||
|
"initial": "open",
|
||||||
|
"transitions": {
|
||||||
|
"open": [
|
||||||
|
"unsubscribed"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"words": {
|
||||||
|
"open": "on the list",
|
||||||
|
"unsubscribed": "off the list"
|
||||||
|
},
|
||||||
|
"desks": [
|
||||||
|
{
|
||||||
|
"page": "/owners",
|
||||||
|
"group": "owners",
|
||||||
|
"moves": [
|
||||||
|
{
|
||||||
|
"from": "open",
|
||||||
|
"to": "unsubscribed",
|
||||||
|
"label": "Unsubscribe them"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"self_moves": [
|
||||||
|
"unsubscribed"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"development_proposals": {
|
||||||
|
"initial": "open",
|
||||||
|
"transitions": {
|
||||||
|
"open": [
|
||||||
|
"approved",
|
||||||
|
"rejected"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"words": {
|
||||||
|
"approved": "approved",
|
||||||
|
"open": "received",
|
||||||
|
"rejected": "turned down"
|
||||||
|
},
|
||||||
|
"desks": [
|
||||||
|
{
|
||||||
|
"page": "/owners",
|
||||||
|
"group": "owners",
|
||||||
|
"moves": [
|
||||||
|
{
|
||||||
|
"from": "open",
|
||||||
|
"to": "approved",
|
||||||
|
"label": "Approve change"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "open",
|
||||||
|
"to": "rejected",
|
||||||
|
"label": "Reject change"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/status/development_proposals",
|
||||||
|
"group": null,
|
||||||
|
"moves": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"self_moves": []
|
||||||
|
},
|
||||||
|
"custody_requests": {
|
||||||
|
"initial": "open",
|
||||||
|
"transitions": {
|
||||||
|
"in_dialogue": [
|
||||||
|
"resolved",
|
||||||
|
"declined"
|
||||||
|
],
|
||||||
|
"open": [
|
||||||
|
"in_dialogue",
|
||||||
|
"declined"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"words": {
|
||||||
|
"declined": "closed without action",
|
||||||
|
"in_dialogue": "in dialogue with a custodian",
|
||||||
|
"open": "received",
|
||||||
|
"resolved": "resolved"
|
||||||
|
},
|
||||||
|
"desks": [
|
||||||
|
{
|
||||||
|
"page": "/custodians",
|
||||||
|
"group": "custodians",
|
||||||
|
"moves": [
|
||||||
|
{
|
||||||
|
"from": "in_dialogue",
|
||||||
|
"to": "resolved",
|
||||||
|
"label": "Mark resolved"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "in_dialogue",
|
||||||
|
"to": "declined",
|
||||||
|
"label": "Close, no action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "open",
|
||||||
|
"to": "in_dialogue",
|
||||||
|
"label": "Open dialogue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "open",
|
||||||
|
"to": "declined",
|
||||||
|
"label": "Decline case"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/owners",
|
||||||
|
"group": "owners",
|
||||||
|
"moves": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"self_moves": [
|
||||||
|
"resolved"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"organizations": {
|
||||||
|
"initial": "prospect",
|
||||||
|
"transitions": {
|
||||||
|
"client": [
|
||||||
|
"past_client"
|
||||||
|
],
|
||||||
|
"prospect": [
|
||||||
|
"client",
|
||||||
|
"past_client"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"words": {
|
||||||
|
"client": "a client",
|
||||||
|
"past_client": "a past client",
|
||||||
|
"prospect": "a prospect"
|
||||||
|
},
|
||||||
|
"desks": [
|
||||||
|
{
|
||||||
|
"page": "/owners",
|
||||||
|
"group": "owners",
|
||||||
|
"moves": [
|
||||||
|
{
|
||||||
|
"from": "client",
|
||||||
|
"to": "past_client",
|
||||||
|
"label": "Mark past client"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "prospect",
|
||||||
|
"to": "client",
|
||||||
|
"label": "Mark as client"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "prospect",
|
||||||
|
"to": "past_client",
|
||||||
|
"label": "Archive as past client"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"self_moves": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"personas": [
|
||||||
|
{
|
||||||
|
"id": "architecture-firm",
|
||||||
|
"need": "commission",
|
||||||
|
"text": "We run a small architecture firm and our project files are scattered across three cloud drives. We want to pay someone to set up proper storage and backups we control ourselves."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "climbing-gym-founder",
|
||||||
|
"need": "commission",
|
||||||
|
"text": "I have an idea for a booking app for climbing gyms and I'm looking for a team that can build the first version with me."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "municipality-buyer",
|
||||||
|
"need": "commission",
|
||||||
|
"text": "Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "exhibition-visitor",
|
||||||
|
"need": "subscribe",
|
||||||
|
"text": "I saw your drawing network at an exhibition and liked it. I don't want to get involved, I'd just like to know when there is news."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "tech-journalist",
|
||||||
|
"need": "subscribe",
|
||||||
|
"text": "I write about Nordic technology. Keep me posted on what you release so I can cover it."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "rust-developer",
|
||||||
|
"need": "collaborate",
|
||||||
|
"text": "I'm a Rust developer between jobs and I like that you build in the open. I would love to contribute, and maybe join you."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "interaction-designer",
|
||||||
|
"need": "collaborate",
|
||||||
|
"text": "I'm an interaction designer. I want to work with you on the drawing interface."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "student-intern",
|
||||||
|
"need": "collaborate",
|
||||||
|
"text": "I'm a computer science student looking for a summer internship doing infrastructure work."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "plumber-owner",
|
||||||
|
"need": "trial",
|
||||||
|
"text": "I run a plumbing company with four vans. Jobs come in by phone and text and some get lost. I'd like to see how this would look for us before I spend any money."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "dance-school",
|
||||||
|
"need": "trial",
|
||||||
|
"text": "We are a dance school. Enrolments, cancellations and invoices all go through one email inbox that only I understand. Can you show me a version made for us?"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "node-runner",
|
||||||
|
"need": "custody",
|
||||||
|
"text": "I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "recorded-name",
|
||||||
|
"need": "custody",
|
||||||
|
"text": "Someone left a recording on redoal that says my full name and where I live. I want it gone, and I want to know who is responsible for that network."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "app-builder",
|
||||||
|
"need": "custody",
|
||||||
|
"text": "I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "wording-fix",
|
||||||
|
"need": "propose",
|
||||||
|
"text": "The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "rewrite",
|
||||||
|
"need": "propose",
|
||||||
|
"text": "One page on this site reads wrong to me and I know exactly how I'd rewrite it. Where do I send the new text?"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"questions/index.yaml": {
|
||||||
|
"shopping": {
|
||||||
|
"items": {
|
||||||
|
"status-development_proposals": {
|
||||||
|
"heading": "Changes to this site we have approved",
|
||||||
|
"description": "Suggestions from visitors that a person here has read and approved, open for anyone to read."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
desk bucket buttons mistaken for
|
||||||
|
/custodians custody_requests 4 of 4
|
||||||
|
/owners applicants 4 of 4
|
||||||
|
/owners development_proposals 2 of 2
|
||||||
|
/owners organizations 2 of 2
|
||||||
|
/owners projects 2 of 2
|
||||||
|
/owners trials 4 of 4
|
||||||
|
|
||||||
|
mail LIX words happened now who gutted twin says
|
||||||
|
custody_requests:open 32 easy 27 no no no ok
|
||||||
|
custody_requests:resolved 20 very easy 28 yes yes yes ok
|
||||||
|
custody_requests:declined 33 easy 32 no no no ok
|
||||||
|
projects:open 9 very easy 39 yes yes yes ok
|
||||||
|
projects:accepted 16 very easy 27 no no yes ok
|
||||||
|
projects:declined 17 very easy 30 yes yes yes ok
|
||||||
|
trials:open 13 very easy 31 no no yes ok
|
||||||
|
trials:approved 17 very easy 32 yes yes yes ok
|
||||||
|
trials:previewed 13 very easy 28 yes yes yes ok
|
||||||
|
trials:declined 25 very easy 23 yes yes yes ok
|
||||||
|
invite 24 very easy 83 yes yes yes ok
|
||||||
|
|
||||||
|
need LIX which where asked next gutted twin says page load
|
||||||
|
commission 27 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 6 options, 4 required - SPLIT
|
||||||
|
trial 28 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 6 options, 6 required - SPLIT
|
||||||
|
collaborate 26 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 6 options, 3 required - SPLIT
|
||||||
|
subscribe 27 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 6 options, 2 required - SPLIT
|
||||||
|
propose 28 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 6 options, 3 required - SPLIT
|
||||||
|
custody 29 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 6 options, 4 required - SPLIT
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
desk bucket buttons mistaken for
|
||||||
|
/custodians custody_requests 4 of 4
|
||||||
|
/owners applicants 4 of 4
|
||||||
|
/owners development_proposals 2 of 2
|
||||||
|
/owners organizations 2 of 2
|
||||||
|
/owners projects 2 of 2
|
||||||
|
/owners trials 4 of 4
|
||||||
|
|
||||||
|
mail LIX words happened now who gutted twin says
|
||||||
|
custody_requests:open 32 easy 25 yes yes yes ok
|
||||||
|
custody_requests:resolved 32 easy 30 yes yes yes ok
|
||||||
|
custody_requests:declined 29 very easy 33 yes yes yes ok
|
||||||
|
projects:open 14 very easy 34 yes yes yes ok
|
||||||
|
projects:accepted 14 very easy 37 yes yes yes ok
|
||||||
|
projects:declined 20 very easy 39 yes yes yes ok
|
||||||
|
trials:open 23 very easy 34 yes yes yes ok
|
||||||
|
trials:approved 17 very easy 41 yes yes yes ok
|
||||||
|
trials:previewed 8 very easy 34 yes yes yes ok
|
||||||
|
trials:declined 18 very easy 32 yes yes yes ok
|
||||||
|
invite 24 very easy 83 yes yes yes ok
|
||||||
|
|
||||||
|
need LIX which where asked next gutted twin says page load
|
||||||
|
commission 27 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 6 options, 4 required - SPLIT
|
||||||
|
trial 28 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 6 options, 6 required - SPLIT
|
||||||
|
collaborate 26 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 6 options, 3 required - SPLIT
|
||||||
|
subscribe 27 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 6 options, 2 required - SPLIT
|
||||||
|
propose 28 very easy 0/2 2/2 2/2 2/2 0/0/0/0 ok 6 options, 3 required - SPLIT
|
||||||
|
custody 29 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 6 options, 4 required - SPLIT
|
||||||
@@ -0,0 +1,304 @@
|
|||||||
|
{
|
||||||
|
"collaborate": {
|
||||||
|
"steps": 1,
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"lix": 26.34959349593496,
|
||||||
|
"personas": 3,
|
||||||
|
"options": 6,
|
||||||
|
"required_fields": 3,
|
||||||
|
"overloaded": true,
|
||||||
|
"followup_shown": true,
|
||||||
|
"understanding": {
|
||||||
|
"which": 3,
|
||||||
|
"where": 3,
|
||||||
|
"asked": 3,
|
||||||
|
"next": 3
|
||||||
|
},
|
||||||
|
"control": {
|
||||||
|
"which": 0,
|
||||||
|
"where": 0,
|
||||||
|
"asked": 0,
|
||||||
|
"next": 0
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commission": {
|
||||||
|
"steps": 1,
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"lix": 27.352380952380955,
|
||||||
|
"personas": 3,
|
||||||
|
"options": 6,
|
||||||
|
"required_fields": 4,
|
||||||
|
"overloaded": true,
|
||||||
|
"followup_shown": true,
|
||||||
|
"understanding": {
|
||||||
|
"which": 3,
|
||||||
|
"where": 3,
|
||||||
|
"asked": 3,
|
||||||
|
"next": 3
|
||||||
|
},
|
||||||
|
"control": {
|
||||||
|
"which": 0,
|
||||||
|
"where": 0,
|
||||||
|
"asked": 0,
|
||||||
|
"next": 0
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"custody": {
|
||||||
|
"steps": 1,
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"lix": 28.8003663003663,
|
||||||
|
"personas": 3,
|
||||||
|
"options": 6,
|
||||||
|
"required_fields": 4,
|
||||||
|
"overloaded": true,
|
||||||
|
"followup_shown": true,
|
||||||
|
"understanding": {
|
||||||
|
"which": 3,
|
||||||
|
"where": 3,
|
||||||
|
"asked": 3,
|
||||||
|
"next": 3
|
||||||
|
},
|
||||||
|
"control": {
|
||||||
|
"which": 0,
|
||||||
|
"where": 0,
|
||||||
|
"asked": 0,
|
||||||
|
"next": 0
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"desk /custodians custody_requests": {
|
||||||
|
"right": 4,
|
||||||
|
"of": 4,
|
||||||
|
"mistaken": []
|
||||||
|
},
|
||||||
|
"desk /owners applicants": {
|
||||||
|
"right": 4,
|
||||||
|
"of": 4,
|
||||||
|
"mistaken": []
|
||||||
|
},
|
||||||
|
"desk /owners development_proposals": {
|
||||||
|
"right": 2,
|
||||||
|
"of": 2,
|
||||||
|
"mistaken": []
|
||||||
|
},
|
||||||
|
"desk /owners organizations": {
|
||||||
|
"right": 2,
|
||||||
|
"of": 2,
|
||||||
|
"mistaken": []
|
||||||
|
},
|
||||||
|
"desk /owners projects": {
|
||||||
|
"right": 2,
|
||||||
|
"of": 2,
|
||||||
|
"mistaken": []
|
||||||
|
},
|
||||||
|
"desk /owners trials": {
|
||||||
|
"right": 4,
|
||||||
|
"of": 4,
|
||||||
|
"mistaken": []
|
||||||
|
},
|
||||||
|
"mail custody_requests:declined": {
|
||||||
|
"lix": 29.333333333333332,
|
||||||
|
"words": 33,
|
||||||
|
"understanding": {
|
||||||
|
"happened": true,
|
||||||
|
"now": true,
|
||||||
|
"who": true
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
},
|
||||||
|
"mail custody_requests:open": {
|
||||||
|
"lix": 31.83695652173913,
|
||||||
|
"words": 25,
|
||||||
|
"understanding": {
|
||||||
|
"happened": true,
|
||||||
|
"now": true,
|
||||||
|
"who": true
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
},
|
||||||
|
"mail custody_requests:resolved": {
|
||||||
|
"lix": 32.0,
|
||||||
|
"words": 30,
|
||||||
|
"understanding": {
|
||||||
|
"happened": true,
|
||||||
|
"now": true,
|
||||||
|
"who": true
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
},
|
||||||
|
"mail invite": {
|
||||||
|
"lix": 24.05128205128205,
|
||||||
|
"words": 83,
|
||||||
|
"understanding": {
|
||||||
|
"happened": true,
|
||||||
|
"now": true,
|
||||||
|
"who": true
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
},
|
||||||
|
"mail projects:accepted": {
|
||||||
|
"lix": 14.464285714285715,
|
||||||
|
"words": 37,
|
||||||
|
"understanding": {
|
||||||
|
"happened": true,
|
||||||
|
"now": true,
|
||||||
|
"who": true
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
},
|
||||||
|
"mail projects:declined": {
|
||||||
|
"lix": 20.06081081081081,
|
||||||
|
"words": 39,
|
||||||
|
"understanding": {
|
||||||
|
"happened": true,
|
||||||
|
"now": true,
|
||||||
|
"who": true
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
},
|
||||||
|
"mail projects:open": {
|
||||||
|
"lix": 14.404761904761905,
|
||||||
|
"words": 34,
|
||||||
|
"understanding": {
|
||||||
|
"happened": true,
|
||||||
|
"now": true,
|
||||||
|
"who": true
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
},
|
||||||
|
"mail trials:approved": {
|
||||||
|
"lix": 17.442307692307693,
|
||||||
|
"words": 41,
|
||||||
|
"understanding": {
|
||||||
|
"happened": true,
|
||||||
|
"now": true,
|
||||||
|
"who": true
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
},
|
||||||
|
"mail trials:declined": {
|
||||||
|
"lix": 17.5,
|
||||||
|
"words": 32,
|
||||||
|
"understanding": {
|
||||||
|
"happened": true,
|
||||||
|
"now": true,
|
||||||
|
"who": true
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
},
|
||||||
|
"mail trials:open": {
|
||||||
|
"lix": 23.205882352941174,
|
||||||
|
"words": 34,
|
||||||
|
"understanding": {
|
||||||
|
"happened": true,
|
||||||
|
"now": true,
|
||||||
|
"who": true
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
},
|
||||||
|
"mail trials:previewed": {
|
||||||
|
"lix": 8.25,
|
||||||
|
"words": 34,
|
||||||
|
"understanding": {
|
||||||
|
"happened": true,
|
||||||
|
"now": true,
|
||||||
|
"who": true
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
},
|
||||||
|
"propose": {
|
||||||
|
"steps": 1,
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"lix": 28.30081300813008,
|
||||||
|
"personas": 2,
|
||||||
|
"options": 6,
|
||||||
|
"required_fields": 3,
|
||||||
|
"overloaded": true,
|
||||||
|
"followup_shown": true,
|
||||||
|
"understanding": {
|
||||||
|
"which": 0,
|
||||||
|
"where": 2,
|
||||||
|
"asked": 2,
|
||||||
|
"next": 2
|
||||||
|
},
|
||||||
|
"control": {
|
||||||
|
"which": 0,
|
||||||
|
"where": 0,
|
||||||
|
"asked": 0,
|
||||||
|
"next": 0
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subscribe": {
|
||||||
|
"steps": 1,
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"lix": 27.352380952380955,
|
||||||
|
"personas": 2,
|
||||||
|
"options": 6,
|
||||||
|
"required_fields": 2,
|
||||||
|
"overloaded": true,
|
||||||
|
"followup_shown": true,
|
||||||
|
"understanding": {
|
||||||
|
"which": 2,
|
||||||
|
"where": 2,
|
||||||
|
"asked": 2,
|
||||||
|
"next": 2
|
||||||
|
},
|
||||||
|
"control": {
|
||||||
|
"which": 0,
|
||||||
|
"where": 0,
|
||||||
|
"asked": 0,
|
||||||
|
"next": 0
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trial": {
|
||||||
|
"steps": 1,
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"lix": 28.29310344827586,
|
||||||
|
"personas": 2,
|
||||||
|
"options": 6,
|
||||||
|
"required_fields": 6,
|
||||||
|
"overloaded": true,
|
||||||
|
"followup_shown": true,
|
||||||
|
"understanding": {
|
||||||
|
"which": 2,
|
||||||
|
"where": 2,
|
||||||
|
"asked": 2,
|
||||||
|
"next": 2
|
||||||
|
},
|
||||||
|
"control": {
|
||||||
|
"which": 0,
|
||||||
|
"where": 0,
|
||||||
|
"asked": 0,
|
||||||
|
"next": 0
|
||||||
|
},
|
||||||
|
"control_ok": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,184 @@
|
|||||||
|
aggregates:
|
||||||
|
- bucket: applicants
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: applied
|
||||||
|
invited:
|
||||||
|
event: invited
|
||||||
|
active:
|
||||||
|
event: onboarded
|
||||||
|
departed:
|
||||||
|
event: departed
|
||||||
|
declined:
|
||||||
|
event: declined
|
||||||
|
transitions:
|
||||||
|
active:
|
||||||
|
- departed
|
||||||
|
invited:
|
||||||
|
- active
|
||||||
|
- declined
|
||||||
|
open:
|
||||||
|
- invited
|
||||||
|
- declined
|
||||||
|
- bucket: custody_requests
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: We have your request about {about}
|
||||||
|
body: |-
|
||||||
|
{name}, your request about {about} has reached the custodians of the redoal network. A custodian will answer you at {email}.
|
||||||
|
{site}
|
||||||
|
UHHM
|
||||||
|
in_dialogue:
|
||||||
|
event: in_dialogue
|
||||||
|
resolved:
|
||||||
|
event: resolved
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: Your request about {about} is resolved
|
||||||
|
body: |-
|
||||||
|
{name}, the custodians have resolved your request about {about}. If something is still wrong, reply to this mail and a custodian will read it.
|
||||||
|
{site}
|
||||||
|
UHHM
|
||||||
|
declined:
|
||||||
|
event: declined
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: 'Your request about {about}: declined'
|
||||||
|
body: |-
|
||||||
|
{name}, the custodians have declined your request about {about}. You can reply to this mail to ask about it, and a reply reaches the people who decided.
|
||||||
|
{site}
|
||||||
|
UHHM
|
||||||
|
transitions:
|
||||||
|
in_dialogue:
|
||||||
|
- resolved
|
||||||
|
- declined
|
||||||
|
open:
|
||||||
|
- in_dialogue
|
||||||
|
- declined
|
||||||
|
- bucket: development_proposals
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: proposed
|
||||||
|
approved:
|
||||||
|
event: approved
|
||||||
|
rejected:
|
||||||
|
event: rejected
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- approved
|
||||||
|
- rejected
|
||||||
|
- bucket: organizations
|
||||||
|
initial: prospect
|
||||||
|
states:
|
||||||
|
prospect:
|
||||||
|
event: identified
|
||||||
|
client:
|
||||||
|
event: became_client
|
||||||
|
past_client:
|
||||||
|
event: churned
|
||||||
|
transitions:
|
||||||
|
client:
|
||||||
|
- past_client
|
||||||
|
prospect:
|
||||||
|
- client
|
||||||
|
- past_client
|
||||||
|
- bucket: projects
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: submitted
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: We have the brief from {organization}
|
||||||
|
body: |-
|
||||||
|
{name}, the brief from {organization} has reached us, and we will read all of it. You will get a considered reply at {email}.
|
||||||
|
{site}
|
||||||
|
UHHM
|
||||||
|
|
||||||
|
What you can do next: {site}/decide/commission?chain={chain}&email={email}
|
||||||
|
accepted:
|
||||||
|
event: accepted
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: '{organization}: we would like to take your project on'
|
||||||
|
body: |-
|
||||||
|
{name}, we have read the brief from {organization} and would like to take the project on. Reply to this mail and we will agree on the next step.
|
||||||
|
{site}
|
||||||
|
UHHM
|
||||||
|
declined:
|
||||||
|
event: declined
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: '{organization}: we cannot take your project on'
|
||||||
|
body: |-
|
||||||
|
{name}, we have read the brief from {organization} and cannot take the project on. You can reply to this mail to ask about it, and a reply reaches the people who decided.
|
||||||
|
{site}
|
||||||
|
UHHM
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- accepted
|
||||||
|
- declined
|
||||||
|
- bucket: subscribers
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: subscribed
|
||||||
|
unsubscribed:
|
||||||
|
event: unsubscribed
|
||||||
|
transitions:
|
||||||
|
open:
|
||||||
|
- unsubscribed
|
||||||
|
- bucket: trials
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open:
|
||||||
|
event: received
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: We have your trial request for {business}
|
||||||
|
body: |-
|
||||||
|
Your request for {business} has reached us, and a person will read it before anything is built. You will hear from us at {email} once it has been decided.
|
||||||
|
{site}
|
||||||
|
UHHM
|
||||||
|
approved:
|
||||||
|
event: approved
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: '{business}: your trial is approved'
|
||||||
|
body: |-
|
||||||
|
We have approved the trial for {business}, and we are now building a first draft of a site from your own words. You will get a mail at {email} when it is ready to look at.
|
||||||
|
{site}
|
||||||
|
UHHM
|
||||||
|
previewed:
|
||||||
|
event: previewed
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: '{business}: your first draft is ready'
|
||||||
|
body: |-
|
||||||
|
The first draft of a site for {business} is ready for you to look at. Reply to this mail and tell us what fits and what does not.
|
||||||
|
{site}
|
||||||
|
UHHM
|
||||||
|
declined:
|
||||||
|
event: declined
|
||||||
|
mail:
|
||||||
|
to: submitter
|
||||||
|
subject: '{business}: we cannot build your trial'
|
||||||
|
body: |-
|
||||||
|
We have declined the trial for {business}. You can reply to this mail to ask about it, and a reply reaches the people who decided.
|
||||||
|
{site}
|
||||||
|
UHHM
|
||||||
|
transitions:
|
||||||
|
approved:
|
||||||
|
- previewed
|
||||||
|
- declined
|
||||||
|
open:
|
||||||
|
- approved
|
||||||
|
- declined
|
||||||
|
attended_by: |
|
||||||
|
approved -> previewed: the n8n workflow that builds the draft site from an approved intake (docker, rauthy, portal content) and sends the preview link. Until it exists, owners run portal-trainer by hand and press the button.
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
You write the words for one page of a website for this business.
|
||||||
|
|
||||||
|
Business: UHHM
|
||||||
|
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
|
||||||
|
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
|
||||||
|
Language to write in: en
|
||||||
|
|
||||||
|
Everyone the site serves:
|
||||||
|
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined. Lands in `projects`; its form collects: {name}, {email}, {project} (long), {organization}, {org_contact} (optional).
|
||||||
|
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined. Lands in `trials`; its form collects: {business}, {email}, {what_we_do} (long), {who_comes_to_us} (long), {what_we_keep_track_of} (long), {who_is_involved} (long), {what_slows_us_down} (long) (optional).
|
||||||
|
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined. Lands in `applicants`; its form collects: {name}, {email}, {interest} (long), {note} (long) (optional).
|
||||||
|
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed. Lands in `subscribers`; its form collects: {name}, {email}.
|
||||||
|
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected. Lands in `development_proposals`; its form collects: {submitted_by}, {email} (optional), {page} (optional), {rationale} (long), {proposed_yaml} (long).
|
||||||
|
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined. Lands in `custody_requests`; its form collects: {name}, {email}, {about}, {what} (long).
|
||||||
|
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client. Lands in `organizations`; its form collects: {name}, {contact}, {note} (long) (optional).
|
||||||
|
|
||||||
|
The page: aggregates.yaml
|
||||||
|
It is the mails the site sends. Under each bucket, each stage that sends one has a `subject` and a `body`: the mail a person gets the moment their case enters that stage, saying what happened and what, if anything, they can do now. Plain text, at most three short sentences plus the link line, no greeting longer than one word, in the business's voice. Keep every `{...}` placeholder exactly as it is - `{site}`, `{chain}`, `{email}` and any field name are filled in by the site - and keep any line with a link in it. The person reads the mail alone, days later, maybe among others: every mail says what it is about in their terms, using a field they filled in as a `{placeholder}` where one names it (the fields each bucket's forms collect are listed under the needs above), never `this` or `your message` alone and never the business's own words for things; and every mail ends with the business's name on its own line, so they know who wrote. A subject names the case by a short field (a name, a place, a choice), never a long one marked `(long)`, which would put a whole answer in the inbox list. Never use a field marked `(optional)`: whoever skipped it gets a blank where it was. Promise only what the site does: a desk's decision carries no written reason, so a mail about a decision never says one was written - it says they can reply to this mail to ask, and a reply reaches the people who decided.
|
||||||
|
|
||||||
|
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
|
||||||
|
|
||||||
|
Rules for the words:
|
||||||
|
- `question` is a question the reader could ask themselves.
|
||||||
|
- A heading says what the reader gets, in the reader's own words, and must work without its description.
|
||||||
|
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
|
||||||
|
- Descriptions are one or two short sentences. Labels and buttons are a few words.
|
||||||
|
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
|
||||||
|
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
|
||||||
|
- Write the way people in this trade and country actually speak.
|
||||||
|
|
||||||
|
{
|
||||||
|
"custody_requests": {
|
||||||
|
"declined": {
|
||||||
|
"subject": "<WRITE: a form label for the field `subject`>",
|
||||||
|
"body": "<WRITE: a form label for the field `body`>"
|
||||||
|
},
|
||||||
|
"open": {
|
||||||
|
"subject": "<WRITE: a form label for the field `subject`>",
|
||||||
|
"body": "<WRITE: a form label for the field `body`>"
|
||||||
|
},
|
||||||
|
"resolved": {
|
||||||
|
"subject": "<WRITE: a form label for the field `subject`>",
|
||||||
|
"body": "<WRITE: a form label for the field `body`>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"projects": {
|
||||||
|
"accepted": {
|
||||||
|
"subject": "<WRITE: a form label for the field `subject`>",
|
||||||
|
"body": "<WRITE: a form label for the field `body`>"
|
||||||
|
},
|
||||||
|
"declined": {
|
||||||
|
"subject": "<WRITE: a form label for the field `subject`>",
|
||||||
|
"body": "<WRITE: a form label for the field `body`>"
|
||||||
|
},
|
||||||
|
"open": {
|
||||||
|
"subject": "<WRITE: a form label for the field `subject`>",
|
||||||
|
"body": "<WRITE: a form label for the field `body`>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trials": {
|
||||||
|
"approved": {
|
||||||
|
"subject": "<WRITE: a form label for the field `subject`>",
|
||||||
|
"body": "<WRITE: a form label for the field `body`>"
|
||||||
|
},
|
||||||
|
"declined": {
|
||||||
|
"subject": "<WRITE: a form label for the field `subject`>",
|
||||||
|
"body": "<WRITE: a form label for the field `body`>"
|
||||||
|
},
|
||||||
|
"open": {
|
||||||
|
"subject": "<WRITE: a form label for the field `subject`>",
|
||||||
|
"body": "<WRITE: a form label for the field `body`>"
|
||||||
|
},
|
||||||
|
"previewed": {
|
||||||
|
"subject": "<WRITE: a form label for the field `subject`>",
|
||||||
|
"body": "<WRITE: a form label for the field `body`>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Reply with the JSON object only.
|
||||||
|
|
||||||
|
=== REPLY ===
|
||||||
|
{
|
||||||
|
"custody_requests": {
|
||||||
|
"declined": {
|
||||||
|
"subject": "Your request about {about}: declined",
|
||||||
|
"body": "{name}, the custodians have declined your request about {about}. You can reply to this mail to ask about it, and a reply reaches the people who decided.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"open": {
|
||||||
|
"subject": "We have your request about {about}",
|
||||||
|
"body": "{name}, your request about {about} has reached the custodians of the redoal network. A custodian will answer you at {email}.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"resolved": {
|
||||||
|
"subject": "Your request about {about} is resolved",
|
||||||
|
"body": "{name}, the custodians have resolved your request about {about}. If something is still wrong, reply to this mail and a custodian will read it.\n{site}\nUHHM"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"projects": {
|
||||||
|
"accepted": {
|
||||||
|
"subject": "{organization}: we would like to take your project on",
|
||||||
|
"body": "{name}, we have read the brief from {organization} and would like to take the project on. Reply to this mail and we will agree on the next step.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"declined": {
|
||||||
|
"subject": "{organization}: we cannot take your project on",
|
||||||
|
"body": "{name}, we have read the brief from {organization} and cannot take the project on. You can reply to this mail to ask about it, and a reply reaches the people who decided.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"open": {
|
||||||
|
"subject": "We have the brief from {organization}",
|
||||||
|
"body": "{name}, the brief from {organization} has reached us, and we will read all of it. You will get a considered reply at {email}.\n{site}\nUHHM"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trials": {
|
||||||
|
"approved": {
|
||||||
|
"subject": "{business}: your trial is approved",
|
||||||
|
"body": "We have approved the trial for {business}, and we are now building a first draft of a site from your own words. You will get a mail at {email} when it is ready to look at.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"declined": {
|
||||||
|
"subject": "{business}: we cannot build your trial",
|
||||||
|
"body": "We have declined the trial for {business}. You can reply to this mail to ask about it, and a reply reaches the people who decided.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"open": {
|
||||||
|
"subject": "We have your trial request for {business}",
|
||||||
|
"body": "Your request for {business} has reached us, and a person will read it before anything is built. You will hear from us at {email} once it has been decided.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"previewed": {
|
||||||
|
"subject": "{business}: your first draft is ready",
|
||||||
|
"body": "The first draft of a site for {business} is ready for you to look at. Reply to this mail and tell us what fits and what does not.\n{site}\nUHHM"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
You write the words for one page of a website for this business.
|
||||||
|
|
||||||
|
Business: UHHM
|
||||||
|
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
|
||||||
|
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
|
||||||
|
Language to write in: en
|
||||||
|
|
||||||
|
Everyone the site serves:
|
||||||
|
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
|
||||||
|
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
|
||||||
|
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
|
||||||
|
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
|
||||||
|
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
|
||||||
|
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
|
||||||
|
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
|
||||||
|
|
||||||
|
The page: questions/status/development_proposals/index.yaml
|
||||||
|
It is a public page anyone can open, read-only, listing ONLY the cases that have reached: approved. Nothing else is shown - do not promise the reader anything waiting or turned down. `question` is what this page asks; `heading` names the list.
|
||||||
|
|
||||||
|
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
|
||||||
|
|
||||||
|
Rules for the words:
|
||||||
|
- `question` is a question the reader could ask themselves.
|
||||||
|
- A heading says what the reader gets, in the reader's own words, and must work without its description.
|
||||||
|
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
|
||||||
|
- Descriptions are one or two short sentences. Labels and buttons are a few words.
|
||||||
|
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
|
||||||
|
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
|
||||||
|
- Write the way people in this trade and country actually speak.
|
||||||
|
|
||||||
|
{
|
||||||
|
"question": "<WRITE: the one question this page asks its reader>",
|
||||||
|
"description": "<WRITE: one or two short sentences>",
|
||||||
|
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
|
||||||
|
"list_description": "<WRITE: one line over a public list of what people have sent in, or empty>",
|
||||||
|
"list_title": "<WRITE: a short title, two to four words, naming the list itself>",
|
||||||
|
"list_note": "<WRITE: one sentence saying what a single row is, and what the buttons under it do or what the list leaves out>",
|
||||||
|
"empty": "<WRITE: one short sentence shown when the list has nothing in it yet, inviting rather than apologising>",
|
||||||
|
"back": "<WRITE: a button, one to three words, saying what pressing it does>"
|
||||||
|
}
|
||||||
|
|
||||||
|
Reply with the JSON object only.
|
||||||
|
|
||||||
|
=== REPLY ===
|
||||||
|
{"question":"Which changes to this site have already been approved?","description":"These are the suggested page changes a person here has read and approved. Each one is being made or has been made.","heading":"See the changes we've approved","list_description":"Suggestions from visitors that we've read and agreed to make.","list_title":"Approved changes","list_note":"Each row is one suggested change to a page on this site that has been approved; the list shows nothing else.","empty":"No changes have been approved yet. If you see something on a page that should be different, send us your suggestion.","back":"Suggest a change"}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
You write the words for one page of a website for this business.
|
||||||
|
|
||||||
|
Business: UHHM
|
||||||
|
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
|
||||||
|
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
|
||||||
|
Language to write in: en
|
||||||
|
|
||||||
|
Everyone the site serves:
|
||||||
|
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
|
||||||
|
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
|
||||||
|
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
|
||||||
|
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
|
||||||
|
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
|
||||||
|
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
|
||||||
|
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
|
||||||
|
|
||||||
|
The page: site.yaml
|
||||||
|
It is the invite mail: the first mail a person gets when a member of the business brings them in to help (onto a desk, into a committee), carrying the one-time link that lets them set a password. `subject` and `body` under `invite`. They did not ask for it, so say who brought them in and to what, then the link and when it runs out, then where they sign in afterwards. Plain text, short lines. Keep every `{...}` placeholder exactly as it is: `{name}`, `{username}`, `{group}`, `{link}`, `{expires}`, `{site}`, `{site_name}` are filled in by the site, and `{link}` must stay on a line of its own.
|
||||||
|
|
||||||
|
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
|
||||||
|
|
||||||
|
Rules for the words:
|
||||||
|
- `question` is a question the reader could ask themselves.
|
||||||
|
- A heading says what the reader gets, in the reader's own words, and must work without its description.
|
||||||
|
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
|
||||||
|
- Descriptions are one or two short sentences. Labels and buttons are a few words.
|
||||||
|
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
|
||||||
|
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
|
||||||
|
- Write the way people in this trade and country actually speak.
|
||||||
|
|
||||||
|
{
|
||||||
|
"invite": {
|
||||||
|
"subject": "<WRITE: a form label for the field `subject`>",
|
||||||
|
"body": "<WRITE: a form label for the field `body`>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Reply with the JSON object only.
|
||||||
|
|
||||||
|
=== REPLY ===
|
||||||
|
{"invite": {"subject": "{name}, you have been invited to {group} on {site_name}", "body": "Hello {name},\n\nA member of {site_name} has brought you in to help\non {group}.\n\nYour username is {username}.\n\nUse this one-time link to set a password:\n\n{link}\n\nThe link runs out {expires}.\nIf it has run out, ask the person who invited you\nfor a new one.\n\nAfterwards you sign in at {site}\nwith your username and the password you chose.\n\nIf you were not expecting this, you can ignore\nthis mail. Nothing happens until the link is used.\n\n{site_name}"}}
|
||||||
@@ -0,0 +1,204 @@
|
|||||||
|
needs:
|
||||||
|
- id: commission
|
||||||
|
who: an organization with a problem it wants software to solve
|
||||||
|
wants: a considered reply to a brief, from people who read the whole thing
|
||||||
|
enters: /
|
||||||
|
via: 'Have us build it: send the brief'
|
||||||
|
lands_in: projects
|
||||||
|
handled_by: owners
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- accepted
|
||||||
|
- declined
|
||||||
|
done_when:
|
||||||
|
- accepted
|
||||||
|
- declined
|
||||||
|
success:
|
||||||
|
- accepted
|
||||||
|
max_steps: 1
|
||||||
|
max_fields: 4
|
||||||
|
stage_words:
|
||||||
|
open: received
|
||||||
|
accepted: taken on
|
||||||
|
declined: not a fit for us
|
||||||
|
- id: trial
|
||||||
|
who: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything
|
||||||
|
wants: a first draft of a site for their own roles, built from their own words and approved by a person first
|
||||||
|
enters: /
|
||||||
|
via: See your own business as a site, before you buy anything
|
||||||
|
lands_in: trials
|
||||||
|
handled_by: owners
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- approved
|
||||||
|
- previewed
|
||||||
|
- declined
|
||||||
|
done_when:
|
||||||
|
- previewed
|
||||||
|
- declined
|
||||||
|
success:
|
||||||
|
- previewed
|
||||||
|
max_steps: 1
|
||||||
|
max_fields: 6
|
||||||
|
stage_words:
|
||||||
|
open: received
|
||||||
|
approved: approved for a draft
|
||||||
|
previewed: a preview is ready
|
||||||
|
declined: not a fit for us
|
||||||
|
- id: collaborate
|
||||||
|
who: someone who wants to work with us on what we build
|
||||||
|
wants: to be read as a person, and invited in if there is a fit
|
||||||
|
enters: /
|
||||||
|
via: Work with us
|
||||||
|
lands_in: applicants
|
||||||
|
handled_by: owners
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- invited
|
||||||
|
- active
|
||||||
|
- departed
|
||||||
|
- declined
|
||||||
|
done_when:
|
||||||
|
- departed
|
||||||
|
- declined
|
||||||
|
success:
|
||||||
|
- departed
|
||||||
|
max_steps: 1
|
||||||
|
max_fields: 3
|
||||||
|
stage_words:
|
||||||
|
open: received
|
||||||
|
invited: invited in
|
||||||
|
active: working with us
|
||||||
|
departed: moved on
|
||||||
|
declined: not a fit for us
|
||||||
|
- id: subscribe
|
||||||
|
who: someone who wants to hear from us when there is something to say
|
||||||
|
wants: a note now and then, and an easy way out
|
||||||
|
enters: /
|
||||||
|
via: Hear from us now and then
|
||||||
|
lands_in: subscribers
|
||||||
|
handled_by: owners
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- unsubscribed
|
||||||
|
done_when:
|
||||||
|
- unsubscribed
|
||||||
|
success: []
|
||||||
|
max_steps: 1
|
||||||
|
max_fields: 2
|
||||||
|
stage_words:
|
||||||
|
open: on the list
|
||||||
|
unsubscribed: off the list
|
||||||
|
- id: propose
|
||||||
|
who: a visitor who sees how a page on this site should change
|
||||||
|
wants: the change read by a person and, if approved, made
|
||||||
|
enters: /
|
||||||
|
via: Suggest a change to this website
|
||||||
|
lands_in: development_proposals
|
||||||
|
handled_by: owners
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- approved
|
||||||
|
- rejected
|
||||||
|
done_when:
|
||||||
|
- approved
|
||||||
|
- rejected
|
||||||
|
success:
|
||||||
|
- approved
|
||||||
|
max_steps: 1
|
||||||
|
max_fields: 3
|
||||||
|
stage_words:
|
||||||
|
open: received
|
||||||
|
approved: approved
|
||||||
|
rejected: turned down
|
||||||
|
- id: custody
|
||||||
|
who: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node
|
||||||
|
wants: an answer from a custodian, and action where the network keeps something it should not
|
||||||
|
enters: /
|
||||||
|
via: 'You are on the redoal network: a node, an app, or a recording that concerns you'
|
||||||
|
lands_in: custody_requests
|
||||||
|
handled_by: custodians
|
||||||
|
stages:
|
||||||
|
- open
|
||||||
|
- in_dialogue
|
||||||
|
- resolved
|
||||||
|
- declined
|
||||||
|
done_when:
|
||||||
|
- resolved
|
||||||
|
- declined
|
||||||
|
success:
|
||||||
|
- resolved
|
||||||
|
max_steps: 1
|
||||||
|
max_fields: 4
|
||||||
|
stage_words:
|
||||||
|
open: received
|
||||||
|
in_dialogue: in dialogue with a custodian
|
||||||
|
resolved: resolved
|
||||||
|
declined: closed without action
|
||||||
|
- id: prospect
|
||||||
|
who: an owner who has met an organization worth following up
|
||||||
|
wants: it written down and walked through its states from the desk
|
||||||
|
enters: /owners/prospect
|
||||||
|
via: Keep an organization on your radar
|
||||||
|
lands_in: organizations
|
||||||
|
handled_by: owners
|
||||||
|
stages:
|
||||||
|
- prospect
|
||||||
|
- client
|
||||||
|
- past_client
|
||||||
|
done_when:
|
||||||
|
- past_client
|
||||||
|
success: []
|
||||||
|
max_steps: 1
|
||||||
|
max_fields: 2
|
||||||
|
stage_words:
|
||||||
|
prospect: a prospect
|
||||||
|
client: a client
|
||||||
|
past_client: a past client
|
||||||
|
enters_as: owners
|
||||||
|
personas:
|
||||||
|
- id: architecture-firm
|
||||||
|
need: commission
|
||||||
|
text: We run a small architecture firm and our project files are scattered across three cloud drives. We want to pay someone to set up proper storage and backups we control ourselves.
|
||||||
|
- id: climbing-gym-founder
|
||||||
|
need: commission
|
||||||
|
text: I have an idea for a booking app for climbing gyms and I'm looking for a team that can build the first version with me.
|
||||||
|
- id: municipality-buyer
|
||||||
|
need: commission
|
||||||
|
text: Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it.
|
||||||
|
- id: exhibition-visitor
|
||||||
|
need: subscribe
|
||||||
|
text: I saw your drawing network at an exhibition and liked it. I don't want to get involved, I'd just like to know when there is news.
|
||||||
|
- id: tech-journalist
|
||||||
|
need: subscribe
|
||||||
|
text: I write about Nordic technology. Keep me posted on what you release so I can cover it.
|
||||||
|
- id: rust-developer
|
||||||
|
need: collaborate
|
||||||
|
text: I'm a Rust developer between jobs and I like that you build in the open. I would love to contribute, and maybe join you.
|
||||||
|
- id: interaction-designer
|
||||||
|
need: collaborate
|
||||||
|
text: I'm an interaction designer. I want to work with you on the drawing interface.
|
||||||
|
- id: student-intern
|
||||||
|
need: collaborate
|
||||||
|
text: I'm a computer science student looking for a summer internship doing infrastructure work.
|
||||||
|
- id: plumber-owner
|
||||||
|
need: trial
|
||||||
|
text: I run a plumbing company with four vans. Jobs come in by phone and text and some get lost. I'd like to see how this would look for us before I spend any money.
|
||||||
|
- id: dance-school
|
||||||
|
need: trial
|
||||||
|
text: We are a dance school. Enrolments, cancellations and invoices all go through one email inbox that only I understand. Can you show me a version made for us?
|
||||||
|
- id: node-runner
|
||||||
|
need: custody
|
||||||
|
text: I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?
|
||||||
|
- id: recorded-name
|
||||||
|
need: custody
|
||||||
|
text: Someone left a recording on redoal that says my full name and where I live. I want it gone, and I want to know who is responsible for that network.
|
||||||
|
- id: app-builder
|
||||||
|
need: custody
|
||||||
|
text: I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?
|
||||||
|
- id: wording-fix
|
||||||
|
need: propose
|
||||||
|
text: The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page.
|
||||||
|
- id: rewrite
|
||||||
|
need: propose
|
||||||
|
text: One page on this site reads wrong to me and I know exactly how I'd rewrite it. Where do I send the new text?
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
qualifies: custodians
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
name: What is waiting on the custodians?
|
||||||
|
description: 'The desk for custodians: open custody cases, and the people invited to answer them.'
|
||||||
|
responsible:
|
||||||
|
name: Bendik Aagaard Lynghaug
|
||||||
|
contact: bl@uhhm.no
|
||||||
|
alternatives:
|
||||||
|
- name: Custody cases waiting on you
|
||||||
|
description: Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.
|
||||||
|
action: /custodians
|
||||||
|
consequence:
|
||||||
|
- Confirm
|
||||||
|
features:
|
||||||
|
- name: Custody requests
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: custody_requests
|
||||||
|
requires_group: custodians
|
||||||
|
transitions:
|
||||||
|
- from: in_dialogue
|
||||||
|
to: resolved
|
||||||
|
label: Mark resolved
|
||||||
|
- from: in_dialogue
|
||||||
|
to: declined
|
||||||
|
label: Close, no action
|
||||||
|
- from: open
|
||||||
|
to: in_dialogue
|
||||||
|
label: Open dialogue
|
||||||
|
- from: open
|
||||||
|
to: declined
|
||||||
|
label: Decline case
|
||||||
|
- name: Bring in another custodian
|
||||||
|
description: Give someone an account and a one-time link to join as a custodian.
|
||||||
|
action: /custodians
|
||||||
|
consequence:
|
||||||
|
- Invite custodian
|
||||||
|
invite:
|
||||||
|
group: custodians
|
||||||
|
features:
|
||||||
|
- name: Invite a custodian
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Name
|
||||||
|
- name: email
|
||||||
|
label: Email
|
||||||
|
type: email
|
||||||
|
- name: Invited custodians
|
||||||
|
description: Custodians invited but not yet signed in.
|
||||||
|
action: /custodians
|
||||||
|
consequence:
|
||||||
|
- Confirm
|
||||||
|
features:
|
||||||
|
- name: Who has been invited
|
||||||
|
description: Each row is one invitation, with the one-time link while it is unused.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: portal_invites
|
||||||
|
requires_group: custodians
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: done
|
||||||
|
label: Signed in
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
name: What would you like to do?
|
||||||
|
description: ''
|
||||||
|
alternatives:
|
||||||
|
- name: Declined
|
||||||
|
description: ''
|
||||||
|
self_transition:
|
||||||
|
bucket: projects
|
||||||
|
to: declined
|
||||||
|
from:
|
||||||
|
- open
|
||||||
|
label: Declined
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
name: What would you like to do?
|
||||||
|
description: ''
|
||||||
|
alternatives:
|
||||||
|
- name: Resolved
|
||||||
|
description: ''
|
||||||
|
self_transition:
|
||||||
|
bucket: custody_requests
|
||||||
|
to: resolved
|
||||||
|
from:
|
||||||
|
- in_dialogue
|
||||||
|
label: Resolved
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
name: Do you want to keep hearing from us?
|
||||||
|
description: You're on our list. Change your mind whenever you like.
|
||||||
|
alternatives:
|
||||||
|
- name: Stop getting notes from us
|
||||||
|
description: You'll stop hearing from us. Nothing else changes.
|
||||||
|
self_transition:
|
||||||
|
bucket: subscribers
|
||||||
|
to: unsubscribed
|
||||||
|
from:
|
||||||
|
- open
|
||||||
|
label: Unsubscribe
|
||||||
@@ -0,0 +1,273 @@
|
|||||||
|
name: What is UHHM, and what can you get here?
|
||||||
|
description: UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.
|
||||||
|
responsible:
|
||||||
|
name: Bendik Aagaard Lynghaug
|
||||||
|
contact: bl@uhhm.no
|
||||||
|
alternatives:
|
||||||
|
- name: What UHHM does
|
||||||
|
description: Two things, both built here and both running.
|
||||||
|
features:
|
||||||
|
- name: A considered reply to your brief, and software that fits the argument
|
||||||
|
description: 'Infrastructure, tools and products for organizations that can say what problem they have. Bring the brief, or first see your own way of working as a working site, before you pay for anything. The brief stays yours: you can withdraw it yourself.'
|
||||||
|
icon: lucide:layers
|
||||||
|
- name: A network that answers to you
|
||||||
|
description: 'UHHM builds and carries the redoal network: the gesture math, the relay, the first node, and the portal this page runs on. Run a node, build on it, or have a recording removed, and you say when it is resolved.'
|
||||||
|
- name: Have a look around first
|
||||||
|
description: Nothing to fill in here. What is already out in the world, and the network as it runs right now.
|
||||||
|
features:
|
||||||
|
- name: What we have built
|
||||||
|
description: A few things already out in the world.
|
||||||
|
icon: lucide:hammer
|
||||||
|
resource:
|
||||||
|
public: true
|
||||||
|
source:
|
||||||
|
kind: gitea_starred
|
||||||
|
username: bl
|
||||||
|
jq: |
|
||||||
|
.[] | {name: .name, description: .description, url: (if .website != null and .website != "" then .website elif .private then null else .html_url end)}
|
||||||
|
- name: The redoal network, live
|
||||||
|
description: Straight from the relay, the first node of the network.
|
||||||
|
icon: lucide:activity
|
||||||
|
resource:
|
||||||
|
public: true
|
||||||
|
source:
|
||||||
|
kind: url
|
||||||
|
url: https://relay.redoal.com/pulse
|
||||||
|
jq: |
|
||||||
|
{ "name": (.voices_echoed | tostring),
|
||||||
|
"description": "voices echoed so far" }
|
||||||
|
empty: The first voice has not echoed yet.
|
||||||
|
- name: Changes to this site we have approved
|
||||||
|
description: Suggestions from visitors that a person here has read and approved, open for anyone to read. [Changes to this site we have approved](/status/development_proposals)
|
||||||
|
icon: lucide:list
|
||||||
|
- name: 'Have us build it: send the brief'
|
||||||
|
description: You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing.
|
||||||
|
action: /received/commission
|
||||||
|
consequence:
|
||||||
|
- Send the brief
|
||||||
|
record_as: projects
|
||||||
|
features:
|
||||||
|
- name: What happens next
|
||||||
|
description: We read your brief and either take it on or tell you honestly if it's not a fit.
|
||||||
|
icon: lucide:route
|
||||||
|
- name: Who reads this
|
||||||
|
description: One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.
|
||||||
|
icon: lucide:user-check
|
||||||
|
- name: Tell us the problem
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Your name
|
||||||
|
type: text
|
||||||
|
placeholder: Sara Nilsen
|
||||||
|
- name: email
|
||||||
|
label: Your email
|
||||||
|
type: email
|
||||||
|
placeholder: sara@company.com
|
||||||
|
- name: project
|
||||||
|
label: The problem you want solved
|
||||||
|
type: textarea
|
||||||
|
placeholder: Our drivers log hours on paper and it takes a day to get them into payroll.
|
||||||
|
- name: organization
|
||||||
|
label: Your organization
|
||||||
|
type: text
|
||||||
|
placeholder: Nilsen Transport AS
|
||||||
|
- name: org_contact
|
||||||
|
label: Who we should talk to
|
||||||
|
type: text
|
||||||
|
optional: true
|
||||||
|
placeholder: Sara Nilsen, ops manager
|
||||||
|
description: The more of the problem you put in, the better the reply.
|
||||||
|
icon: lucide:briefcase
|
||||||
|
encouragements:
|
||||||
|
- Someone here reads every brief in full before writing back.
|
||||||
|
- name: See your own business as a site, before you buy anything
|
||||||
|
description: Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through.
|
||||||
|
action: /received/trial
|
||||||
|
consequence:
|
||||||
|
- Start the draft
|
||||||
|
record_as: trials
|
||||||
|
features:
|
||||||
|
- name: What happens next
|
||||||
|
description: We look at what you sent and, if it's a fit, build a draft from your own roles and words for you to see before anything moves further.
|
||||||
|
icon: lucide:route
|
||||||
|
- name: Who reads this
|
||||||
|
description: An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.
|
||||||
|
icon: lucide:user-check
|
||||||
|
- name: Describe your business
|
||||||
|
requirements:
|
||||||
|
- name: business
|
||||||
|
label: Your business
|
||||||
|
type: text
|
||||||
|
placeholder: Nilsen Transport AS
|
||||||
|
- name: email
|
||||||
|
label: Your email
|
||||||
|
type: email
|
||||||
|
placeholder: sara@company.com
|
||||||
|
- name: what_we_do
|
||||||
|
label: What you do
|
||||||
|
type: textarea
|
||||||
|
placeholder: We move freight for local businesses and handle the paperwork for them.
|
||||||
|
- name: who_comes_to_us
|
||||||
|
label: Who comes to you
|
||||||
|
type: textarea
|
||||||
|
placeholder: Local businesses that need something moved on short notice.
|
||||||
|
- name: what_we_keep_track_of
|
||||||
|
label: What you keep track of
|
||||||
|
type: textarea
|
||||||
|
placeholder: Bookings, driver hours, and which loads are still waiting on a signature.
|
||||||
|
- name: who_is_involved
|
||||||
|
label: Who's involved
|
||||||
|
type: textarea
|
||||||
|
placeholder: Drivers, dispatchers, and the customers waiting on their delivery.
|
||||||
|
- name: what_slows_us_down
|
||||||
|
label: What slows you down
|
||||||
|
type: textarea
|
||||||
|
optional: true
|
||||||
|
placeholder: Approvals sit in someone's inbox for days before anyone acts on them.
|
||||||
|
description: Answer in your own words - there's no wrong way to describe your business.
|
||||||
|
icon: lucide:layers
|
||||||
|
encouragements:
|
||||||
|
- A person looks at what you send before anything gets built.
|
||||||
|
- name: Work with us
|
||||||
|
description: 'A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit.'
|
||||||
|
action: /received/collaborate
|
||||||
|
consequence:
|
||||||
|
- Get in touch
|
||||||
|
record_as: applicants
|
||||||
|
features:
|
||||||
|
- name: What happens next
|
||||||
|
description: We read what you send and get back to you. If there's a fit, we invite you in and you start working with us — and if things ever change, that's fine too.
|
||||||
|
icon: lucide:route
|
||||||
|
- name: Who reads this
|
||||||
|
description: One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.
|
||||||
|
icon: lucide:user-check
|
||||||
|
- name: Say hello
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Name
|
||||||
|
type: text
|
||||||
|
placeholder: Your name
|
||||||
|
- name: email
|
||||||
|
label: Email
|
||||||
|
type: email
|
||||||
|
placeholder: you@example.com
|
||||||
|
- name: interest
|
||||||
|
label: What kind of work
|
||||||
|
type: textarea
|
||||||
|
placeholder: Backend work, or something design-heavy
|
||||||
|
- name: note
|
||||||
|
label: Tell us more
|
||||||
|
type: textarea
|
||||||
|
optional: true
|
||||||
|
placeholder: A bit about what you'd want to work on, or a link to your work
|
||||||
|
description: Tell us who you are and what kind of work you're after.
|
||||||
|
icon: lucide:handshake
|
||||||
|
encouragements:
|
||||||
|
- A person reads this, not a form filter — worth the ten minutes.
|
||||||
|
- name: Hear from us now and then
|
||||||
|
description: You'd rather hear from us now and then than check back on your own.
|
||||||
|
action: /received/subscribe
|
||||||
|
consequence:
|
||||||
|
- Sign up
|
||||||
|
record_as: subscribers
|
||||||
|
features:
|
||||||
|
- name: What happens next
|
||||||
|
description: You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.
|
||||||
|
icon: lucide:bell
|
||||||
|
- name: Who reads this
|
||||||
|
description: An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.
|
||||||
|
icon: lucide:user-check
|
||||||
|
- name: Stay in the loop
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Name
|
||||||
|
type: text
|
||||||
|
placeholder: Your name
|
||||||
|
- name: email
|
||||||
|
label: Email
|
||||||
|
type: email
|
||||||
|
placeholder: you@example.com
|
||||||
|
description: Just your email, or your name too if you'd like.
|
||||||
|
icon: lucide:mail
|
||||||
|
encouragements:
|
||||||
|
- One click unsubscribes you later, no questions asked.
|
||||||
|
- name: Suggest a change to this website
|
||||||
|
description: You have spotted a page on uhhm.no that should read differently, and you know roughly how.
|
||||||
|
action: /received/propose
|
||||||
|
consequence:
|
||||||
|
- Send change
|
||||||
|
record_as: development_proposals
|
||||||
|
features:
|
||||||
|
- name: What happens next
|
||||||
|
description: Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.
|
||||||
|
icon: lucide:route
|
||||||
|
- name: Who reads this
|
||||||
|
description: An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.
|
||||||
|
icon: lucide:user-check
|
||||||
|
- name: Propose a change
|
||||||
|
requirements:
|
||||||
|
- name: submitted_by
|
||||||
|
label: Your name
|
||||||
|
type: text
|
||||||
|
placeholder: Your name
|
||||||
|
- name: email
|
||||||
|
label: Email
|
||||||
|
type: email
|
||||||
|
optional: true
|
||||||
|
placeholder: you@example.com
|
||||||
|
- name: page
|
||||||
|
label: Which page
|
||||||
|
type: text
|
||||||
|
optional: true
|
||||||
|
placeholder: questions/join/index.yaml
|
||||||
|
- name: rationale
|
||||||
|
label: Why this is better
|
||||||
|
type: textarea
|
||||||
|
placeholder: The current heading doesn't say what you actually get
|
||||||
|
- name: proposed_yaml
|
||||||
|
label: Your proposed text
|
||||||
|
type: textarea
|
||||||
|
placeholder: 'heading: "A clearer way to say this"'
|
||||||
|
description: Point us to the page and show us the change.
|
||||||
|
icon: lucide:pencil
|
||||||
|
encouragements:
|
||||||
|
- Even a rough version helps — we can tidy the wording ourselves.
|
||||||
|
- name: 'You are on the redoal network: a node, an app, or a recording that concerns you'
|
||||||
|
description: UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at.
|
||||||
|
action: /received/custody
|
||||||
|
consequence:
|
||||||
|
- Send to a custodian
|
||||||
|
record_as: custody_requests
|
||||||
|
features:
|
||||||
|
- name: What happens next
|
||||||
|
description: A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided.
|
||||||
|
icon: lucide:route
|
||||||
|
- name: Who reads this
|
||||||
|
description: A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.
|
||||||
|
icon: lucide:user-check
|
||||||
|
- name: Reach a custodian
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Name
|
||||||
|
type: text
|
||||||
|
placeholder: Your name
|
||||||
|
- name: email
|
||||||
|
label: Email
|
||||||
|
type: email
|
||||||
|
placeholder: you@yourcompany.com
|
||||||
|
- name: about
|
||||||
|
label: What's going on
|
||||||
|
type: select
|
||||||
|
options:
|
||||||
|
- Running a node of my own
|
||||||
|
- Building on the network
|
||||||
|
- Something the network keeps about me
|
||||||
|
- Something else
|
||||||
|
- name: what
|
||||||
|
label: In short
|
||||||
|
type: textarea
|
||||||
|
placeholder: A relay node is misbehaving
|
||||||
|
description: Say which of the four it is, and what you need, in a few lines.
|
||||||
|
icon: lucide:shield
|
||||||
|
encouragements:
|
||||||
|
- A custodian reads every message that comes in here.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
qualifies: owners
|
||||||
@@ -0,0 +1,209 @@
|
|||||||
|
name: What's waiting on me today?
|
||||||
|
description: 'Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.'
|
||||||
|
responsible:
|
||||||
|
name: Bendik Aagaard Lynghaug
|
||||||
|
contact: bl@uhhm.no
|
||||||
|
alternatives:
|
||||||
|
- name: People who want to build with us
|
||||||
|
description: People who've asked to build with us, waiting on a decision or already working alongside us.
|
||||||
|
action: /owners
|
||||||
|
consequence:
|
||||||
|
- Confirm
|
||||||
|
features:
|
||||||
|
- name: Applicants
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: applicants
|
||||||
|
requires_group: owners
|
||||||
|
transitions:
|
||||||
|
- from: active
|
||||||
|
to: departed
|
||||||
|
label: Mark departed
|
||||||
|
- from: invited
|
||||||
|
to: active
|
||||||
|
label: Confirm active
|
||||||
|
- from: invited
|
||||||
|
to: declined
|
||||||
|
label: Withdraw the invite
|
||||||
|
- from: open
|
||||||
|
to: invited
|
||||||
|
label: Send invite
|
||||||
|
- from: open
|
||||||
|
to: declined
|
||||||
|
label: Decline applicant
|
||||||
|
- name: What's been raised with custodians
|
||||||
|
description: Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.
|
||||||
|
action: /owners
|
||||||
|
consequence:
|
||||||
|
- Confirm
|
||||||
|
features:
|
||||||
|
- name: Custody requests
|
||||||
|
description: Each row is one case and the stage it has reached. Another desk moves these.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: custody_requests
|
||||||
|
requires_group: owners
|
||||||
|
transitions: []
|
||||||
|
- name: Proposed changes to the site
|
||||||
|
description: Changes visitors have proposed for pages on this site, waiting on a yes or no.
|
||||||
|
action: /owners
|
||||||
|
consequence:
|
||||||
|
- Confirm
|
||||||
|
features:
|
||||||
|
- name: Development proposals
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: development_proposals
|
||||||
|
requires_group: owners
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: approved
|
||||||
|
label: Approve change
|
||||||
|
- from: open
|
||||||
|
to: rejected
|
||||||
|
label: Reject change
|
||||||
|
- name: Organizations you're tracking
|
||||||
|
description: Organizations you've met, tracked from first contact through to client and beyond.
|
||||||
|
action: /owners
|
||||||
|
consequence:
|
||||||
|
- Confirm
|
||||||
|
features:
|
||||||
|
- name: Organizations
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: organizations
|
||||||
|
requires_group: owners
|
||||||
|
transitions:
|
||||||
|
- from: client
|
||||||
|
to: past_client
|
||||||
|
label: Mark past client
|
||||||
|
- from: prospect
|
||||||
|
to: client
|
||||||
|
label: Mark as client
|
||||||
|
- from: prospect
|
||||||
|
to: past_client
|
||||||
|
label: Archive as past client
|
||||||
|
- name: Briefs waiting on a reply
|
||||||
|
description: Briefs sent in by organizations with a problem they want solved.
|
||||||
|
action: /owners
|
||||||
|
consequence:
|
||||||
|
- Confirm
|
||||||
|
features:
|
||||||
|
- name: Projects
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: projects
|
||||||
|
requires_group: owners
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: accepted
|
||||||
|
label: Accept brief
|
||||||
|
- from: open
|
||||||
|
to: declined
|
||||||
|
label: Decline brief
|
||||||
|
- name: Who's hearing from you
|
||||||
|
description: People who want to hear from you now and then.
|
||||||
|
action: /owners
|
||||||
|
consequence:
|
||||||
|
- Confirm
|
||||||
|
features:
|
||||||
|
- name: Subscribers
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: subscribers
|
||||||
|
requires_group: owners
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: unsubscribed
|
||||||
|
label: Unsubscribe them
|
||||||
|
- name: Trial sites in progress
|
||||||
|
description: Businesses who want to see their own workflow as a working site before committing to anything.
|
||||||
|
action: /owners
|
||||||
|
consequence:
|
||||||
|
- Confirm
|
||||||
|
features:
|
||||||
|
- name: Trials
|
||||||
|
description: Each row is one case. The buttons record what you have just done with it.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: trials
|
||||||
|
requires_group: owners
|
||||||
|
transitions:
|
||||||
|
- from: approved
|
||||||
|
to: previewed
|
||||||
|
label: Mark previewed
|
||||||
|
- from: approved
|
||||||
|
to: declined
|
||||||
|
label: Decline trial
|
||||||
|
- from: open
|
||||||
|
to: approved
|
||||||
|
label: Approve trial
|
||||||
|
- from: open
|
||||||
|
to: declined
|
||||||
|
label: Decline trial
|
||||||
|
- name: Track a new organization
|
||||||
|
description: Write down an organization worth following up, and track it from first contact onward.
|
||||||
|
action: /owners/prospect
|
||||||
|
consequence:
|
||||||
|
- Add prospect
|
||||||
|
- name: Bring in a custodian
|
||||||
|
description: Bring someone in to help keep the first node and answer for the network.
|
||||||
|
action: /owners
|
||||||
|
consequence:
|
||||||
|
- Send invite
|
||||||
|
invite:
|
||||||
|
group: custodians
|
||||||
|
features:
|
||||||
|
- name: Invite a custodian
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Their name
|
||||||
|
- name: email
|
||||||
|
label: Their email
|
||||||
|
type: email
|
||||||
|
- name: Bring in another owner
|
||||||
|
description: Bring someone in to work this desk alongside you.
|
||||||
|
action: /owners
|
||||||
|
consequence:
|
||||||
|
- Send invite
|
||||||
|
invite:
|
||||||
|
group: owners
|
||||||
|
features:
|
||||||
|
- name: Invite an owner
|
||||||
|
description: Their name, and the address the account and its one-time link go to.
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Their name
|
||||||
|
- name: email
|
||||||
|
label: Their email
|
||||||
|
type: email
|
||||||
|
- name: Invites you've sent
|
||||||
|
description: People you've invited in, and whether they've taken it up yet.
|
||||||
|
action: /owners
|
||||||
|
consequence:
|
||||||
|
- Confirm
|
||||||
|
features:
|
||||||
|
- name: Who has been invited
|
||||||
|
description: Each row is one invitation, with the one-time link while it is unused.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: portal_invites
|
||||||
|
requires_group: owners
|
||||||
|
transitions:
|
||||||
|
- from: open
|
||||||
|
to: done
|
||||||
|
label: Taken up
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: What happens to this now?
|
||||||
|
description: Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.
|
||||||
|
alternatives:
|
||||||
|
- name: It's on the desk now
|
||||||
|
description: An owner walks it from prospect to client, and on to past client, as the relationship moves.
|
||||||
|
- name: Back to site
|
||||||
|
description: ''
|
||||||
|
action: /owners
|
||||||
|
consequence:
|
||||||
|
- Back to site
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
followup: false
|
||||||
|
name: Is there an organization I should be keeping track of?
|
||||||
|
description: Write down an organization worth following up, and move it through client and past client as things develop.
|
||||||
|
responsible:
|
||||||
|
name: Bendik Aagaard Lynghaug
|
||||||
|
contact: bl@uhhm.no
|
||||||
|
alternatives:
|
||||||
|
- name: Keep an organization on your radar
|
||||||
|
description: One line per organization worth watching, moved through the stages as things develop.
|
||||||
|
action: /owners/prospect-sent
|
||||||
|
consequence:
|
||||||
|
- Add to prospects
|
||||||
|
record_as: organizations
|
||||||
|
features:
|
||||||
|
- name: Moves as you update it
|
||||||
|
description: It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.
|
||||||
|
icon: lucide:route
|
||||||
|
- name: Just for you
|
||||||
|
description: Only you see this, so keep it wherever you check next.
|
||||||
|
icon: lucide:user
|
||||||
|
- name: New prospect
|
||||||
|
requirements:
|
||||||
|
- name: name
|
||||||
|
label: Organization
|
||||||
|
type: text
|
||||||
|
placeholder: Nordvik Bakery
|
||||||
|
- name: contact
|
||||||
|
label: Contact
|
||||||
|
type: text
|
||||||
|
placeholder: met at the bakers' conference, [email protected]
|
||||||
|
- name: note
|
||||||
|
label: Note
|
||||||
|
type: textarea
|
||||||
|
optional: true
|
||||||
|
placeholder: wants a booking flow, follow up after harvest season
|
||||||
|
description: Name the organization and where things stand.
|
||||||
|
icon: lucide:briefcase
|
||||||
|
encouragements:
|
||||||
|
- Takes a minute, and it's yours to update later.
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: What happens to what I just sent?
|
||||||
|
description: Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.
|
||||||
|
alternatives:
|
||||||
|
- name: We'll write if there's a fit
|
||||||
|
description: If it looks like a fit, we'll reach out to talk about where you could help.
|
||||||
|
- name: Back to site
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Back to site
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: What happens now that we've sent our brief?
|
||||||
|
description: Your brief is in. An owner reads every commission end to end before replying.
|
||||||
|
alternatives:
|
||||||
|
- name: A real reply from someone who read it
|
||||||
|
description: Expect a reply within a few working days, either way, straight to your inbox.
|
||||||
|
- name: Back to home
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Back to home
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: Who looks after what the network keeps?
|
||||||
|
description: A custodian reads every message about the redoal network and what it keeps.
|
||||||
|
alternatives:
|
||||||
|
- name: A custodian is on it
|
||||||
|
description: Expect a reply once your report has been looked at and the network checked.
|
||||||
|
- name: Back to the site
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Back to the site
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
name: What happens to my proposal now?
|
||||||
|
description: Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.
|
||||||
|
alternatives:
|
||||||
|
- name: A read, then a decision
|
||||||
|
description: We'll write back once it's been read — approved and made live, or turned down with a reason.
|
||||||
|
- name: See all development proposals
|
||||||
|
description: ''
|
||||||
|
action: /status/development_proposals
|
||||||
|
consequence:
|
||||||
|
- Open
|
||||||
|
- name: Back home
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Back home
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: What happens now that I've subscribed?
|
||||||
|
description: You'll hear from us when there's something worth saying, not on a schedule.
|
||||||
|
alternatives:
|
||||||
|
- name: You're on the list
|
||||||
|
description: You're on the list. Every note has an unsubscribe link if it stops being useful.
|
||||||
|
- name: Back to site
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Back to site
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
name: What happens now that you've sent this?
|
||||||
|
description: We read every trial request ourselves before anything gets built.
|
||||||
|
alternatives:
|
||||||
|
- name: A first draft, built from your own words
|
||||||
|
description: If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.
|
||||||
|
- name: Back to site
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Back to site
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
name: Which changes to this site have already been approved?
|
||||||
|
description: These are the suggested page changes a person here has read and approved. Each one is being made or has been made.
|
||||||
|
responsible:
|
||||||
|
name: Bendik Aagaard Lynghaug
|
||||||
|
contact: bl@uhhm.no
|
||||||
|
alternatives:
|
||||||
|
- name: See the changes we've approved
|
||||||
|
description: Suggestions from visitors that we've read and agreed to make.
|
||||||
|
features:
|
||||||
|
- name: Approved changes
|
||||||
|
description: Each row is one suggested change to a page on this site that has been approved; the list shows nothing else.
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: development_proposals
|
||||||
|
public: true
|
||||||
|
states:
|
||||||
|
- approved
|
||||||
|
empty: No changes have been approved yet. If you see something on a page that should be different, send us your suggestion.
|
||||||
|
jq: '.[] | .responses |= {page: .page, proposed_yaml: .proposed_yaml, rationale: .rationale}'
|
||||||
|
- name: Suggest a change
|
||||||
|
description: ''
|
||||||
|
action: /
|
||||||
|
consequence:
|
||||||
|
- Suggest a change
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
title: UHHM
|
||||||
|
lang: en
|
||||||
|
mail:
|
||||||
|
from: UHHM <portal@uhhm.no>
|
||||||
|
reply_to: bl@uhhm.no
|
||||||
|
invite:
|
||||||
|
subject: '{name}, you have been invited to {group} on {site_name}'
|
||||||
|
body: |-
|
||||||
|
Hello {name},
|
||||||
|
|
||||||
|
A member of {site_name} has brought you in to help
|
||||||
|
on {group}.
|
||||||
|
|
||||||
|
Your username is {username}.
|
||||||
|
|
||||||
|
Use this one-time link to set a password:
|
||||||
|
|
||||||
|
{link}
|
||||||
|
|
||||||
|
The link runs out {expires}.
|
||||||
|
If it has run out, ask the person who invited you
|
||||||
|
for a new one.
|
||||||
|
|
||||||
|
Afterwards you sign in at {site}
|
||||||
|
with your username and the password you chose.
|
||||||
|
|
||||||
|
If you were not expecting this, you can ignore
|
||||||
|
this mail. Nothing happens until the link is used.
|
||||||
|
|
||||||
|
{site_name}
|
||||||
@@ -0,0 +1,570 @@
|
|||||||
|
{
|
||||||
|
"aggregates.yaml": {
|
||||||
|
"custody_requests": {
|
||||||
|
"declined": {
|
||||||
|
"subject": "Your request about {about}: declined",
|
||||||
|
"body": "{name}, the custodians have declined your request about {about}. You can reply to this mail to ask about it, and a reply reaches the people who decided.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"open": {
|
||||||
|
"subject": "We have your request about {about}",
|
||||||
|
"body": "{name}, your request about {about} has reached the custodians of the redoal network. A custodian will answer you at {email}.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"resolved": {
|
||||||
|
"subject": "Your request about {about} is resolved",
|
||||||
|
"body": "{name}, the custodians have resolved your request about {about}. If something is still wrong, reply to this mail and a custodian will read it.\n{site}\nUHHM"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"projects": {
|
||||||
|
"accepted": {
|
||||||
|
"subject": "{organization}: we would like to take your project on",
|
||||||
|
"body": "{name}, we have read the brief from {organization} and would like to take the project on. Reply to this mail and we will agree on the next step.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"declined": {
|
||||||
|
"subject": "{organization}: we cannot take your project on",
|
||||||
|
"body": "{name}, we have read the brief from {organization} and cannot take the project on. You can reply to this mail to ask about it, and a reply reaches the people who decided.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"open": {
|
||||||
|
"subject": "We have the brief from {organization}",
|
||||||
|
"body": "{name}, the brief from {organization} has reached us, and we will read all of it. You will get a considered reply at {email}.\n{site}\nUHHM\n\nWhat you can do next: {site}/decide/commission?chain={chain}&email={email}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trials": {
|
||||||
|
"approved": {
|
||||||
|
"subject": "{business}: your trial is approved",
|
||||||
|
"body": "We have approved the trial for {business}, and we are now building a first draft of a site from your own words. You will get a mail at {email} when it is ready to look at.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"declined": {
|
||||||
|
"subject": "{business}: we cannot build your trial",
|
||||||
|
"body": "We have declined the trial for {business}. You can reply to this mail to ask about it, and a reply reaches the people who decided.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"open": {
|
||||||
|
"subject": "We have your trial request for {business}",
|
||||||
|
"body": "Your request for {business} has reached us, and a person will read it before anything is built. You will hear from us at {email} once it has been decided.\n{site}\nUHHM"
|
||||||
|
},
|
||||||
|
"previewed": {
|
||||||
|
"subject": "{business}: your first draft is ready",
|
||||||
|
"body": "The first draft of a site for {business} is ready for you to look at. Reply to this mail and tell us what fits and what does not.\n{site}\nUHHM"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"questions/custodians/index.yaml": {
|
||||||
|
"question": "What is waiting on the custodians?",
|
||||||
|
"description": "The desk for custodians: open custody cases, and the people invited to answer them.",
|
||||||
|
"confirm": "Confirm",
|
||||||
|
"buckets": {
|
||||||
|
"custody_requests": {
|
||||||
|
"heading": "Custody cases waiting on you",
|
||||||
|
"description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.",
|
||||||
|
"moves": {
|
||||||
|
"in_dialogue->resolved": "Mark resolved",
|
||||||
|
"in_dialogue->declined": "Close, no action",
|
||||||
|
"open->in_dialogue": "Open dialogue",
|
||||||
|
"open->declined": "Decline case"
|
||||||
|
},
|
||||||
|
"list_title": "Custody requests",
|
||||||
|
"list_note": "Each row is one case. The buttons record what you have just done with it."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"links": {},
|
||||||
|
"invites": {
|
||||||
|
"custodians": {
|
||||||
|
"heading": "Bring in another custodian",
|
||||||
|
"description": "Give someone an account and a one-time link to join as a custodian.",
|
||||||
|
"button": "Invite custodian",
|
||||||
|
"form_title": "Invite a custodian",
|
||||||
|
"form_description": "Their name, and the address the account and its one-time link go to.",
|
||||||
|
"labels": {
|
||||||
|
"name": "Name",
|
||||||
|
"email": "Email"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"invited": {
|
||||||
|
"heading": "Invited custodians",
|
||||||
|
"description": "Custodians invited but not yet signed in.",
|
||||||
|
"done": "Signed in",
|
||||||
|
"list_title": "Who has been invited",
|
||||||
|
"list_note": "Each row is one invitation, with the one-time link while it is unused."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"questions/decide/commission.yaml": {
|
||||||
|
"question": "What would you like to do?",
|
||||||
|
"description": "",
|
||||||
|
"moves": {
|
||||||
|
"declined": {
|
||||||
|
"heading": "Declined",
|
||||||
|
"description": "",
|
||||||
|
"button": "Declined"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"questions/decide/custody.yaml": {
|
||||||
|
"question": "What would you like to do?",
|
||||||
|
"description": "",
|
||||||
|
"moves": {
|
||||||
|
"resolved": {
|
||||||
|
"heading": "Resolved",
|
||||||
|
"description": "",
|
||||||
|
"button": "Resolved"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"questions/decide/subscribe.yaml": {
|
||||||
|
"question": "Do you want to keep hearing from us?",
|
||||||
|
"description": "You're on our list. Change your mind whenever you like.",
|
||||||
|
"moves": {
|
||||||
|
"unsubscribed": {
|
||||||
|
"heading": "Stop getting notes from us",
|
||||||
|
"description": "You'll stop hearing from us. Nothing else changes.",
|
||||||
|
"button": "Unsubscribe"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"questions/index.yaml": {
|
||||||
|
"question": "What is UHHM, and what can you get here?",
|
||||||
|
"description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.",
|
||||||
|
"opener": {
|
||||||
|
"heading": "What UHHM does",
|
||||||
|
"description": "Two things, both built here and both running.",
|
||||||
|
"features": {
|
||||||
|
"software": {
|
||||||
|
"heading": "A considered reply to your brief, and software that fits the argument",
|
||||||
|
"description": "Infrastructure, tools and products for organizations that can say what problem they have. Bring the brief, or first see your own way of working as a working site, before you pay for anything. The brief stays yours: you can withdraw it yourself.",
|
||||||
|
"icon": "layers"
|
||||||
|
},
|
||||||
|
"redoal": {
|
||||||
|
"heading": "A network that answers to you",
|
||||||
|
"description": "UHHM builds and carries the redoal network: the gesture math, the relay, the first node, and the portal this page runs on. Run a node, build on it, or have a recording removed, and you say when it is resolved.",
|
||||||
|
"icon": "waypoints"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"shopping": {
|
||||||
|
"heading": "Have a look around first",
|
||||||
|
"description": "Nothing to fill in here. What is already out in the world, and the network as it runs right now.",
|
||||||
|
"items": {
|
||||||
|
"built": {
|
||||||
|
"heading": "What we have built",
|
||||||
|
"description": "A few things already out in the world.",
|
||||||
|
"icon": "hammer"
|
||||||
|
},
|
||||||
|
"voices": {
|
||||||
|
"heading": "The redoal network, live",
|
||||||
|
"description": "Straight from the relay, the first node of the network.",
|
||||||
|
"icon": "activity"
|
||||||
|
},
|
||||||
|
"status-development_proposals": {
|
||||||
|
"heading": "Changes to this site we have approved",
|
||||||
|
"description": "Suggestions from visitors that a person here has read and approved, open for anyone to read.",
|
||||||
|
"icon": "list"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"doors": {},
|
||||||
|
"needs": {
|
||||||
|
"commission": {
|
||||||
|
"heading": "Have us build it: send the brief",
|
||||||
|
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing.",
|
||||||
|
"button": "Send the brief",
|
||||||
|
"encouragement": "Someone here reads every brief in full before writing back.",
|
||||||
|
"icon": "briefcase",
|
||||||
|
"requires_title": "",
|
||||||
|
"requires_description": "",
|
||||||
|
"requires_icon": "",
|
||||||
|
"road_title": "What happens next",
|
||||||
|
"road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.",
|
||||||
|
"road_icon": "route",
|
||||||
|
"who_title": "Who reads this",
|
||||||
|
"who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.",
|
||||||
|
"who_icon": "user-check",
|
||||||
|
"form_title": "Tell us the problem",
|
||||||
|
"form_description": "The more of the problem you put in, the better the reply.",
|
||||||
|
"labels": {
|
||||||
|
"name": "Your name",
|
||||||
|
"email": "Your email",
|
||||||
|
"project": "The problem you want solved",
|
||||||
|
"organization": "Your organization",
|
||||||
|
"org_contact": "Who we should talk to"
|
||||||
|
},
|
||||||
|
"hints": {
|
||||||
|
"name": "Sara Nilsen",
|
||||||
|
"email": "sara@company.com",
|
||||||
|
"project": "Our drivers log hours on paper and it takes a day to get them into payroll.",
|
||||||
|
"organization": "Nilsen Transport AS",
|
||||||
|
"org_contact": "Sara Nilsen, ops manager"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trial": {
|
||||||
|
"heading": "See your own business as a site, before you buy anything",
|
||||||
|
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through.",
|
||||||
|
"button": "Start the draft",
|
||||||
|
"encouragement": "A person looks at what you send before anything gets built.",
|
||||||
|
"icon": "layers",
|
||||||
|
"requires_title": "",
|
||||||
|
"requires_description": "",
|
||||||
|
"requires_icon": "",
|
||||||
|
"road_title": "What happens next",
|
||||||
|
"road_description": "We look at what you sent and, if it's a fit, build a draft from your own roles and words for you to see before anything moves further.",
|
||||||
|
"road_icon": "route",
|
||||||
|
"who_title": "Who reads this",
|
||||||
|
"who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.",
|
||||||
|
"who_icon": "user-check",
|
||||||
|
"form_title": "Describe your business",
|
||||||
|
"form_description": "Answer in your own words - there's no wrong way to describe your business.",
|
||||||
|
"labels": {
|
||||||
|
"business": "Your business",
|
||||||
|
"email": "Your email",
|
||||||
|
"what_we_do": "What you do",
|
||||||
|
"who_comes_to_us": "Who comes to you",
|
||||||
|
"what_we_keep_track_of": "What you keep track of",
|
||||||
|
"who_is_involved": "Who's involved",
|
||||||
|
"what_slows_us_down": "What slows you down"
|
||||||
|
},
|
||||||
|
"hints": {
|
||||||
|
"business": "Nilsen Transport AS",
|
||||||
|
"email": "sara@company.com",
|
||||||
|
"what_we_do": "We move freight for local businesses and handle the paperwork for them.",
|
||||||
|
"who_comes_to_us": "Local businesses that need something moved on short notice.",
|
||||||
|
"what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.",
|
||||||
|
"who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery.",
|
||||||
|
"what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collaborate": {
|
||||||
|
"heading": "Work with us",
|
||||||
|
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit.",
|
||||||
|
"button": "Get in touch",
|
||||||
|
"encouragement": "A person reads this, not a form filter — worth the ten minutes.",
|
||||||
|
"icon": "handshake",
|
||||||
|
"requires_title": "",
|
||||||
|
"requires_description": "",
|
||||||
|
"requires_icon": "",
|
||||||
|
"road_title": "What happens next",
|
||||||
|
"road_description": "We read what you send and get back to you. If there's a fit, we invite you in and you start working with us — and if things ever change, that's fine too.",
|
||||||
|
"road_icon": "route",
|
||||||
|
"who_title": "Who reads this",
|
||||||
|
"who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.",
|
||||||
|
"who_icon": "user-check",
|
||||||
|
"form_title": "Say hello",
|
||||||
|
"form_description": "Tell us who you are and what kind of work you're after.",
|
||||||
|
"labels": {
|
||||||
|
"name": "Name",
|
||||||
|
"email": "Email",
|
||||||
|
"interest": "What kind of work",
|
||||||
|
"note": "Tell us more"
|
||||||
|
},
|
||||||
|
"hints": {
|
||||||
|
"name": "Your name",
|
||||||
|
"email": "you@example.com",
|
||||||
|
"interest": "Backend work, or something design-heavy",
|
||||||
|
"note": "A bit about what you'd want to work on, or a link to your work"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"subscribe": {
|
||||||
|
"heading": "Hear from us now and then",
|
||||||
|
"description": "You'd rather hear from us now and then than check back on your own.",
|
||||||
|
"button": "Sign up",
|
||||||
|
"encouragement": "One click unsubscribes you later, no questions asked.",
|
||||||
|
"icon": "mail",
|
||||||
|
"requires_title": "",
|
||||||
|
"requires_description": "",
|
||||||
|
"requires_icon": "",
|
||||||
|
"road_title": "What happens next",
|
||||||
|
"road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.",
|
||||||
|
"road_icon": "bell",
|
||||||
|
"who_title": "Who reads this",
|
||||||
|
"who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.",
|
||||||
|
"who_icon": "user-check",
|
||||||
|
"form_title": "Stay in the loop",
|
||||||
|
"form_description": "Just your email, or your name too if you'd like.",
|
||||||
|
"labels": {
|
||||||
|
"name": "Name",
|
||||||
|
"email": "Email"
|
||||||
|
},
|
||||||
|
"hints": {
|
||||||
|
"name": "Your name",
|
||||||
|
"email": "you@example.com"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"propose": {
|
||||||
|
"heading": "Suggest a change to this website",
|
||||||
|
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how.",
|
||||||
|
"button": "Send change",
|
||||||
|
"encouragement": "Even a rough version helps — we can tidy the wording ourselves.",
|
||||||
|
"icon": "pencil",
|
||||||
|
"requires_title": "",
|
||||||
|
"requires_description": "",
|
||||||
|
"requires_icon": "",
|
||||||
|
"road_title": "What happens next",
|
||||||
|
"road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.",
|
||||||
|
"road_icon": "route",
|
||||||
|
"who_title": "Who reads this",
|
||||||
|
"who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.",
|
||||||
|
"who_icon": "user-check",
|
||||||
|
"form_title": "Propose a change",
|
||||||
|
"form_description": "Point us to the page and show us the change.",
|
||||||
|
"labels": {
|
||||||
|
"submitted_by": "Your name",
|
||||||
|
"email": "Email",
|
||||||
|
"page": "Which page",
|
||||||
|
"rationale": "Why this is better",
|
||||||
|
"proposed_yaml": "Your proposed text"
|
||||||
|
},
|
||||||
|
"hints": {
|
||||||
|
"submitted_by": "Your name",
|
||||||
|
"email": "you@example.com",
|
||||||
|
"page": "questions/join/index.yaml",
|
||||||
|
"rationale": "The current heading doesn't say what you actually get",
|
||||||
|
"proposed_yaml": "heading: \"A clearer way to say this\""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"custody": {
|
||||||
|
"heading": "You are on the redoal network: a node, an app, or a recording that concerns you",
|
||||||
|
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at.",
|
||||||
|
"button": "Send to a custodian",
|
||||||
|
"encouragement": "A custodian reads every message that comes in here.",
|
||||||
|
"icon": "shield",
|
||||||
|
"requires_title": "",
|
||||||
|
"requires_description": "",
|
||||||
|
"requires_icon": "",
|
||||||
|
"road_title": "What happens next",
|
||||||
|
"road_description": "A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided.",
|
||||||
|
"road_icon": "route",
|
||||||
|
"who_title": "Who reads this",
|
||||||
|
"who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.",
|
||||||
|
"who_icon": "user-check",
|
||||||
|
"form_title": "Reach a custodian",
|
||||||
|
"form_description": "Say which of the four it is, and what you need, in a few lines.",
|
||||||
|
"labels": {
|
||||||
|
"name": "Name",
|
||||||
|
"email": "Email",
|
||||||
|
"about": "What's going on",
|
||||||
|
"what": "In short"
|
||||||
|
},
|
||||||
|
"hints": {
|
||||||
|
"name": "Your name",
|
||||||
|
"email": "you@yourcompany.com",
|
||||||
|
"about": "We run our order system on a relay node and it's been dropping messages since Tuesday",
|
||||||
|
"what": "A relay node is misbehaving"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"questions/owners/index.yaml": {
|
||||||
|
"question": "What's waiting on me today?",
|
||||||
|
"description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.",
|
||||||
|
"confirm": "Confirm",
|
||||||
|
"buckets": {
|
||||||
|
"applicants": {
|
||||||
|
"heading": "People who want to build with us",
|
||||||
|
"description": "People who've asked to build with us, waiting on a decision or already working alongside us.",
|
||||||
|
"moves": {
|
||||||
|
"active->departed": "Mark departed",
|
||||||
|
"invited->active": "Confirm active",
|
||||||
|
"invited->declined": "Withdraw the invite",
|
||||||
|
"open->invited": "Send invite",
|
||||||
|
"open->declined": "Decline applicant"
|
||||||
|
},
|
||||||
|
"list_title": "Applicants",
|
||||||
|
"list_note": "Each row is one case. The buttons record what you have just done with it."
|
||||||
|
},
|
||||||
|
"custody_requests": {
|
||||||
|
"heading": "What's been raised with custodians",
|
||||||
|
"description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.",
|
||||||
|
"moves": {},
|
||||||
|
"list_title": "Custody requests",
|
||||||
|
"list_note": "Each row is one case and the stage it has reached. Another desk moves these."
|
||||||
|
},
|
||||||
|
"development_proposals": {
|
||||||
|
"heading": "Proposed changes to the site",
|
||||||
|
"description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.",
|
||||||
|
"moves": {
|
||||||
|
"open->approved": "Approve change",
|
||||||
|
"open->rejected": "Reject change"
|
||||||
|
},
|
||||||
|
"list_title": "Development proposals",
|
||||||
|
"list_note": "Each row is one case. The buttons record what you have just done with it."
|
||||||
|
},
|
||||||
|
"organizations": {
|
||||||
|
"heading": "Organizations you're tracking",
|
||||||
|
"description": "Organizations you've met, tracked from first contact through to client and beyond.",
|
||||||
|
"moves": {
|
||||||
|
"client->past_client": "Mark past client",
|
||||||
|
"prospect->client": "Mark as client",
|
||||||
|
"prospect->past_client": "Archive as past client"
|
||||||
|
},
|
||||||
|
"list_title": "Organizations",
|
||||||
|
"list_note": "Each row is one case. The buttons record what you have just done with it."
|
||||||
|
},
|
||||||
|
"projects": {
|
||||||
|
"heading": "Briefs waiting on a reply",
|
||||||
|
"description": "Briefs sent in by organizations with a problem they want solved.",
|
||||||
|
"moves": {
|
||||||
|
"open->accepted": "Accept brief",
|
||||||
|
"open->declined": "Decline brief"
|
||||||
|
},
|
||||||
|
"list_title": "Projects",
|
||||||
|
"list_note": "Each row is one case. The buttons record what you have just done with it."
|
||||||
|
},
|
||||||
|
"subscribers": {
|
||||||
|
"heading": "Who's hearing from you",
|
||||||
|
"description": "People who want to hear from you now and then.",
|
||||||
|
"moves": {
|
||||||
|
"open->unsubscribed": "Unsubscribe them"
|
||||||
|
},
|
||||||
|
"list_title": "Subscribers",
|
||||||
|
"list_note": "Each row is one case. The buttons record what you have just done with it."
|
||||||
|
},
|
||||||
|
"trials": {
|
||||||
|
"heading": "Trial sites in progress",
|
||||||
|
"description": "Businesses who want to see their own workflow as a working site before committing to anything.",
|
||||||
|
"moves": {
|
||||||
|
"approved->previewed": "Mark previewed",
|
||||||
|
"approved->declined": "Decline trial",
|
||||||
|
"open->approved": "Approve trial",
|
||||||
|
"open->declined": "Decline trial"
|
||||||
|
},
|
||||||
|
"list_title": "Trials",
|
||||||
|
"list_note": "Each row is one case. The buttons record what you have just done with it."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"links": {
|
||||||
|
"prospect": {
|
||||||
|
"heading": "Track a new organization",
|
||||||
|
"description": "Write down an organization worth following up, and track it from first contact onward.",
|
||||||
|
"button": "Add prospect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"invites": {
|
||||||
|
"custodians": {
|
||||||
|
"heading": "Bring in a custodian",
|
||||||
|
"description": "Bring someone in to help keep the first node and answer for the network.",
|
||||||
|
"button": "Send invite",
|
||||||
|
"form_title": "Invite a custodian",
|
||||||
|
"form_description": "Their name, and the address the account and its one-time link go to.",
|
||||||
|
"labels": {
|
||||||
|
"name": "Their name",
|
||||||
|
"email": "Their email"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"owners": {
|
||||||
|
"heading": "Bring in another owner",
|
||||||
|
"description": "Bring someone in to work this desk alongside you.",
|
||||||
|
"button": "Send invite",
|
||||||
|
"form_title": "Invite an owner",
|
||||||
|
"form_description": "Their name, and the address the account and its one-time link go to.",
|
||||||
|
"labels": {
|
||||||
|
"name": "Their name",
|
||||||
|
"email": "Their email"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"invited": {
|
||||||
|
"heading": "Invites you've sent",
|
||||||
|
"description": "People you've invited in, and whether they've taken it up yet.",
|
||||||
|
"done": "Taken up",
|
||||||
|
"list_title": "Who has been invited",
|
||||||
|
"list_note": "Each row is one invitation, with the one-time link while it is unused."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"questions/owners/prospect-sent.yaml": {
|
||||||
|
"question": "What happens to this now?",
|
||||||
|
"description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.",
|
||||||
|
"next_heading": "It's on the desk now",
|
||||||
|
"next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.",
|
||||||
|
"back": "Back to site"
|
||||||
|
},
|
||||||
|
"questions/owners/prospect.yaml": {
|
||||||
|
"heading": "Keep an organization on your radar",
|
||||||
|
"description": "One line per organization worth watching, moved through the stages as things develop.",
|
||||||
|
"button": "Add to prospects",
|
||||||
|
"encouragement": "Takes a minute, and it's yours to update later.",
|
||||||
|
"icon": "briefcase",
|
||||||
|
"requires_title": "",
|
||||||
|
"requires_description": "",
|
||||||
|
"requires_icon": "",
|
||||||
|
"road_title": "Moves as you update it",
|
||||||
|
"road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.",
|
||||||
|
"road_icon": "route",
|
||||||
|
"who_title": "Just for you",
|
||||||
|
"who_description": "Only you see this, so keep it wherever you check next.",
|
||||||
|
"who_icon": "user",
|
||||||
|
"form_title": "New prospect",
|
||||||
|
"form_description": "Name the organization and where things stand.",
|
||||||
|
"labels": {
|
||||||
|
"name": "Organization",
|
||||||
|
"contact": "Contact",
|
||||||
|
"note": "Note"
|
||||||
|
},
|
||||||
|
"hints": {
|
||||||
|
"name": "Nordvik Bakery",
|
||||||
|
"contact": "met at the bakers' conference, [email protected]",
|
||||||
|
"note": "wants a booking flow, follow up after harvest season"
|
||||||
|
},
|
||||||
|
"question": "Is there an organization I should be keeping track of?",
|
||||||
|
"page_description": "Write down an organization worth following up, and move it through client and past client as things develop."
|
||||||
|
},
|
||||||
|
"questions/received/collaborate.yaml": {
|
||||||
|
"question": "What happens to what I just sent?",
|
||||||
|
"description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.",
|
||||||
|
"next_heading": "We'll write if there's a fit",
|
||||||
|
"next_description": "If it looks like a fit, we'll reach out to talk about where you could help.",
|
||||||
|
"back": "Back to site"
|
||||||
|
},
|
||||||
|
"questions/received/commission.yaml": {
|
||||||
|
"question": "What happens now that we've sent our brief?",
|
||||||
|
"description": "Your brief is in. An owner reads every commission end to end before replying.",
|
||||||
|
"next_heading": "A real reply from someone who read it",
|
||||||
|
"next_description": "Expect a reply within a few working days, either way, straight to your inbox.",
|
||||||
|
"back": "Back to home"
|
||||||
|
},
|
||||||
|
"questions/received/custody.yaml": {
|
||||||
|
"question": "Who looks after what the network keeps?",
|
||||||
|
"description": "A custodian reads every message about the redoal network and what it keeps.",
|
||||||
|
"next_heading": "A custodian is on it",
|
||||||
|
"next_description": "Expect a reply once your report has been looked at and the network checked.",
|
||||||
|
"back": "Back to the site"
|
||||||
|
},
|
||||||
|
"questions/received/propose.yaml": {
|
||||||
|
"question": "What happens to my proposal now?",
|
||||||
|
"description": "Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.",
|
||||||
|
"next_heading": "A read, then a decision",
|
||||||
|
"next_description": "We'll write back once it's been read — approved and made live, or turned down with a reason.",
|
||||||
|
"back": "Back home",
|
||||||
|
"see_all": {
|
||||||
|
"heading": "See all development proposals",
|
||||||
|
"description": "",
|
||||||
|
"button": "Open"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"questions/received/subscribe.yaml": {
|
||||||
|
"question": "What happens now that I've subscribed?",
|
||||||
|
"description": "You'll hear from us when there's something worth saying, not on a schedule.",
|
||||||
|
"next_heading": "You're on the list",
|
||||||
|
"next_description": "You're on the list. Every note has an unsubscribe link if it stops being useful.",
|
||||||
|
"back": "Back to site"
|
||||||
|
},
|
||||||
|
"questions/received/trial.yaml": {
|
||||||
|
"question": "What happens now that you've sent this?",
|
||||||
|
"description": "We read every trial request ourselves before anything gets built.",
|
||||||
|
"next_heading": "A first draft, built from your own words",
|
||||||
|
"next_description": "If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.",
|
||||||
|
"back": "Back to site"
|
||||||
|
},
|
||||||
|
"questions/status/development_proposals/index.yaml": {
|
||||||
|
"question": "Which changes to this site have already been approved?",
|
||||||
|
"description": "These are the suggested page changes a person here has read and approved. Each one is being made or has been made.",
|
||||||
|
"heading": "See the changes we've approved",
|
||||||
|
"list_description": "Suggestions from visitors that we've read and agreed to make.",
|
||||||
|
"list_title": "Approved changes",
|
||||||
|
"list_note": "Each row is one suggested change to a page on this site that has been approved; the list shows nothing else.",
|
||||||
|
"empty": "No changes have been approved yet. If you see something on a page that should be different, send us your suggestion.",
|
||||||
|
"back": "Suggest a change"
|
||||||
|
},
|
||||||
|
"site.yaml": {
|
||||||
|
"invite": {
|
||||||
|
"subject": "{name}, you have been invited to {group} on {site_name}",
|
||||||
|
"body": "Hello {name},\n\nA member of {site_name} has brought you in to help\non {group}.\n\nYour username is {username}.\n\nUse this one-time link to set a password:\n\n{link}\n\nThe link runs out {expires}.\nIf it has run out, ask the person who invited you\nfor a new one.\n\nAfterwards you sign in at {site}\nwith your username and the password you chose.\n\nIf you were not expecting this, you can ignore\nthis mail. Nothing happens until the link is used.\n\n{site_name}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"questions/status/development_proposals/index.yaml": {
|
||||||
|
"question": "Which changes to this site have already been approved?",
|
||||||
|
"description": "These are the suggested page changes a person here has read and approved. Each one is being made or has been made.",
|
||||||
|
"heading": "See the changes we've approved",
|
||||||
|
"list_description": "Suggestions from visitors that we've read and agreed to make.",
|
||||||
|
"list_title": "Approved changes",
|
||||||
|
"list_note": "Each row is one suggested change to a page on this site that has been approved; the list shows nothing else.",
|
||||||
|
"empty": "No changes have been approved yet. If you see something on a page that should be different, send us your suggestion.",
|
||||||
|
"back": "Suggest a change"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user