Test / test (pull_request) Successful in 1m12s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt
313 lines
14 KiB
YAML
313 lines
14 KiB
YAML
# Klingenberg Bygg: tilstand, prosjektering og søknad for bygg, for
|
|
# kommuner, borettslag, bedrifter og private. Bygget på det gamle
|
|
# spørreskjemaet (klingenbergbygg/kundeportal, questions.ts) og et
|
|
# intervju 2026-09-30: alle fire kundegrupper, én pult (Fredrik), og
|
|
# hele oppdraget på siden - fra henvendelse over befaring og tilbud til
|
|
# levert, med kunden innlogget for å følge saken og hente dokumentene.
|
|
# Færre felt enn det gamle skjemaet: det som må til for å ta kontakt og
|
|
# komme på befaring, resten tar vi der.
|
|
business: Klingenberg Bygg
|
|
language: "no"
|
|
contact: { name: Fredrik Borch Lynghaug, email: fredrik@klingenbergbygg.no }
|
|
mail: { from: "Klingenberg Bygg <portal@klingenbergbygg.no>", reply_to: fredrik@klingenbergbygg.no }
|
|
about: >
|
|
Med vår erfaring får vi kartlagt **tilstand**, utarbeidet **prosjekt**
|
|
og godkjent **søknad** for ditt bygg.
|
|
|
|
# Kontoret er pulten; kundene får konto i det de takker ja til et
|
|
# tilbud, og ser da sine egne oppdrag og dokumentene vi leverer.
|
|
groups:
|
|
- { id: kontor, label: Kontoret }
|
|
- { id: kunder, label: Kunder }
|
|
invites_by: [kontor]
|
|
|
|
# Forsiden åpner med det vi gjør, uten knapp: to trekk.
|
|
does:
|
|
- id: tilstand
|
|
for: tilstand
|
|
text: >
|
|
Vi utarbeider tilstandsrapporter etter NS-EN 3424 og NS 3423, med
|
|
befaring, materialprøver og termofotografering. Skal bygget rives,
|
|
leverer vi miljøsaneringsrapport; energibruk og besparelser hører
|
|
med i vurderingen. Du får et tilbud og sier selv ja eller nei.
|
|
- id: soknad
|
|
for: soknad
|
|
text: >
|
|
Vi prosjekterer og søker: arbeidsbeskrivelse opp mot NS 3420,
|
|
fremdriftsplan, og byggesøknad med ansvarsrett. Vi har sentral
|
|
godkjenning innen flere fagområder. Når tilbudet er godtatt,
|
|
følger du oppdraget og henter dokumentene innlogget.
|
|
|
|
# Hvem vi er: en egen side med menneskene, erfaringene (oppdrag med
|
|
# bilder, lagt inn fra kontoret) og verdiene under. Verdiene er et
|
|
# utkast i husets tone; Fredrik bytter dem ut når han vil.
|
|
values:
|
|
- id: mal-to-ganger
|
|
text: Vi måler to ganger og skriver én gang. Det gjelder betong, og det gjelder rapporter.
|
|
- id: bygget-forst
|
|
text: Et bygg bryr seg ikke om hvem som har rett. Vi skriver det bygget trenger, ikke det som er lettest å si.
|
|
- id: ingen-overraskelser
|
|
text: Det vi finner, får du vite. Også sprekkene.
|
|
- id: vannet
|
|
text: Vannet finner alltid en vei. Derfor leter vi etter den først.
|
|
|
|
needs:
|
|
- id: tilstand
|
|
who: en eier eller forvalter som må vite hvilken forfatning bygget er i, for en kommune, et borettslag, en bedrift eller seg selv
|
|
wants: en tilstandsrapport å planlegge og beslutte ut fra
|
|
lands_in: tilstandsrapporter
|
|
handled_by: kontor
|
|
followed_by: [kunder]
|
|
stages: [open, befaring, tilbud, akseptert, i_arbeid, levert, avslatt]
|
|
stages_text: { open: "mottatt", befaring: "befaring avtalt", tilbud: "tilbud sendt", akseptert: "tilbud godtatt", i_arbeid: "i arbeid", levert: "levert", avslatt: "avsluttet uten oppdrag" }
|
|
done_when: [levert, avslatt]
|
|
success: [levert]
|
|
turned_down_from: [open, befaring, tilbud]
|
|
# Kunden sier selv ja eller nei til tilbudet, gjennom sin egen lenke.
|
|
moves_by: { akseptert: [submitter], avslatt: [submitter, kontor] }
|
|
mails: { open: submitter, befaring: submitter, tilbud: submitter, akseptert: fredrik@klingenbergbygg.no, levert: submitter }
|
|
# Et godtatt tilbud er kundeforholdet: konto og plass blant kundene.
|
|
grants: { akseptert: kunder }
|
|
max_fields: 4
|
|
collects:
|
|
- { name: name }
|
|
- { name: email, type: email }
|
|
- { name: telefon, type: tel, optional: true }
|
|
- { name: eiendom, type: select, options: [Skole eller annet offentlig bygg, Borettslag eller sameie, Næringsbygg, Enebolig, Leilighet, Fritidsbolig, Annet] }
|
|
- { name: adresse }
|
|
- { name: mangler, type: textarea, optional: true }
|
|
- { name: tegninger, type: file, optional: true }
|
|
|
|
- id: prosjekt
|
|
who: en byggherre som har planer for bygget og trenger dem prosjektert før noen kan bygge
|
|
wants: en arbeidsbeskrivelse og fremdriftsplan som gir det beste grunnlaget for utførelse
|
|
lands_in: prosjekteringer
|
|
handled_by: kontor
|
|
followed_by: [kunder]
|
|
stages: [open, befaring, tilbud, akseptert, i_arbeid, levert, avslatt]
|
|
stages_text: { open: "mottatt", befaring: "befaring avtalt", tilbud: "tilbud sendt", akseptert: "tilbud godtatt", i_arbeid: "i arbeid", levert: "levert", avslatt: "avsluttet uten oppdrag" }
|
|
done_when: [levert, avslatt]
|
|
success: [levert]
|
|
turned_down_from: [open, befaring, tilbud]
|
|
moves_by: { akseptert: [submitter], avslatt: [submitter, kontor] }
|
|
mails: { open: submitter, befaring: submitter, tilbud: submitter, akseptert: fredrik@klingenbergbygg.no, levert: submitter }
|
|
grants: { akseptert: kunder }
|
|
max_fields: 4
|
|
collects:
|
|
- { name: name }
|
|
- { name: email, type: email }
|
|
- { name: telefon, type: tel, optional: true }
|
|
- { name: adresse }
|
|
- { name: planer, type: textarea }
|
|
- { name: oppstart, type: date, optional: true }
|
|
- { name: skisser, type: file, optional: true }
|
|
|
|
# På pause: fullt hos oss. Ta linjen ut for å åpne igjen.
|
|
- id: soknad
|
|
paused: true
|
|
who: en byggherre med et ferdig prosjektert bygg som trenger offentlig godkjenning før første spadetak
|
|
wants: en godkjent byggesøknad, med ansvarsrett der det kreves
|
|
lands_in: soknader
|
|
handled_by: kontor
|
|
followed_by: [kunder]
|
|
stages: [open, befaring, tilbud, akseptert, i_arbeid, levert, avslatt]
|
|
stages_text: { open: "mottatt", befaring: "forhåndskonferanse eller befaring avtalt", tilbud: "tilbud sendt", akseptert: "tilbud godtatt", i_arbeid: "søknad under arbeid", levert: "søknad levert", avslatt: "avsluttet uten oppdrag" }
|
|
done_when: [levert, avslatt]
|
|
success: [levert]
|
|
turned_down_from: [open, befaring, tilbud]
|
|
moves_by: { akseptert: [submitter], avslatt: [submitter, kontor] }
|
|
mails: { open: submitter, befaring: submitter, tilbud: submitter, akseptert: fredrik@klingenbergbygg.no, levert: submitter }
|
|
grants: { akseptert: kunder }
|
|
max_fields: 4
|
|
collects:
|
|
- { name: name }
|
|
- { name: email, type: email }
|
|
- { name: telefon, type: tel, optional: true }
|
|
- { name: adresse }
|
|
- { name: tiltak, type: textarea }
|
|
- { name: tegninger, type: file, optional: true }
|
|
|
|
# Det kontoret leverer: rapporten, tegningene, vedtaket. Kunden får
|
|
# e-post og henter dokumentet innlogget, fra sin egen liste.
|
|
- id: leveranse
|
|
who: kontoret, når en rapport, tegninger eller et vedtak er klart til kunden
|
|
wants: at kunden får dokumentet og vet at det ligger der
|
|
enters_as: kontor
|
|
lands_in: leveranser
|
|
handled_by: kontor
|
|
followed_by: [kunder]
|
|
stages: [open, arkivert]
|
|
stages_text: { open: "levert", arkivert: "arkivert" }
|
|
done_when: [arkivert]
|
|
success: [arkivert]
|
|
mails: { open: submitter }
|
|
max_fields: 3
|
|
collects:
|
|
- { name: email, type: email }
|
|
- { name: hva }
|
|
- { name: dokument, type: file }
|
|
|
|
# Menneskene: hver ansatt har sitt eget kort på forsiden, med rolle,
|
|
# erfaring og portrett, og retter det selv. Kontoret kan ta et kort ned.
|
|
- id: ansatt
|
|
who: en av oss på kontoret, som vil vise hvem hen er og hva hen kan
|
|
wants: at den som vurderer oss ser hvem som gjør jobben
|
|
enters_as: kontor
|
|
one_per_person: true
|
|
# Et kort som er tatt ned, forsvinner fra kontorets liste etter ti minutter.
|
|
leaves_after: { sluttet: { minutes: 10 } }
|
|
lands_in: ansatte
|
|
handled_by: kontor
|
|
watched_by: [public]
|
|
presents: true
|
|
public_states: [open]
|
|
stages: [open, sluttet]
|
|
stages_text: { open: "vises på forsiden", sluttet: "sluttet" }
|
|
done_when: [sluttet]
|
|
success: [sluttet]
|
|
max_fields: 4
|
|
collects:
|
|
- { name: name }
|
|
- { name: rolle }
|
|
- { name: erfaring, type: textarea }
|
|
- { name: portrett, type: picture }
|
|
|
|
# Erfaringene: oppdrag vi vil vise fram, med bilde og noen løse ord.
|
|
- id: erfaring
|
|
who: en av oss på kontoret, når et oppdrag er verdt å vise fram
|
|
wants: at den som vurderer oss ser hva vi har gjort
|
|
enters_as: kontor
|
|
lands_in: erfaringer
|
|
handled_by: kontor
|
|
watched_by: [public]
|
|
presents: true
|
|
public_states: [open]
|
|
stages: [open, fjernet]
|
|
stages_text: { open: "vises", fjernet: "fjernet" }
|
|
done_when: [fjernet]
|
|
success: [fjernet]
|
|
leaves_after: { fjernet: { minutes: 10 } }
|
|
max_fields: 3
|
|
collects:
|
|
- { name: tittel }
|
|
- { name: bilde, type: picture }
|
|
- { name: om, type: textarea }
|
|
|
|
personas:
|
|
- { id: kommune-skole, need: tilstand, text: "Vi i kommunen skal legge fram en sak om rehabilitering av en barneskole fra 1972 og trenger en tilstandsanalyse politikerne kan beslutte ut fra." }
|
|
- { id: borettslag, need: tilstand, text: "Styret i borettslaget lurer på hva som haster mest av tak, fasade og rør. Vi trenger noen som kan gå over byggene og si hva det står til." }
|
|
- { id: sprekk, need: tilstand, text: "Det har kommet en sprekk midt på stueveggen og jeg vet ikke om det er farlig. Kan noen komme og se på det?" }
|
|
- { id: tilbygg, need: prosjekt, text: "Vi vil bygge på et tilbygg på lageret vårt og trenger noen som kan beskrive arbeidet så vi kan hente inn priser fra entreprenører." }
|
|
- { id: skole-i-drift, need: prosjekt, text: "Skolen skal utvides mens den er i drift. Vi trenger en beskrivelse og en fremdriftsplan med byggetrinn." }
|
|
- { id: soke-garasje, need: soknad, text: "Tegningene til garasjen er ferdige, men jeg aner ikke hvordan jeg søker kommunen. Kan dere ta søknaden?" }
|
|
- { id: ansvarsrett, need: soknad, text: "Vi har prosjektert ombyggingen selv, men mangler noen med ansvarsrett som kan stå for søknaden." }
|
|
# Innenfra: det kontoret selv fyller ut.
|
|
- { id: rapport-klar, need: leveranse, text: "Tilstandsrapporten til borettslaget er ferdig. Jeg vil at styreleder skal få den og vite at den ligger der." }
|
|
- { id: ny-hos-oss, need: ansatt, text: "Jeg har nettopp begynt hos Klingenberg Bygg og vil at kundene skal se hvem jeg er og hva jeg kan." }
|
|
- { id: nytt-portrett, need: ansatt, text: "Portrettet mitt på forsiden er fra da jeg begynte. Jeg vil bytte det uten å skrive alt det andre på nytt." }
|
|
- { id: brannstasjonen, need: erfaring, text: "Brannstasjonen i Ytre Enebakk står ferdig, og vi har gode bilder fra fundamenteringen. Den vil jeg vise fram." }
|
|
|
|
slideshow:
|
|
max_height: 60
|
|
slides:
|
|
- image: images/bildeserie/01.webp
|
|
width: 1867
|
|
height: 1400
|
|
caption: Tilstandsanalyse for politisk vurdering.
|
|
- image: images/bildeserie/02.webp
|
|
width: 2365
|
|
height: 1400
|
|
caption: Tilleggsisolert fasade uten fasadeendring. Tanum skole.
|
|
- image: images/bildeserie/03.webp
|
|
width: 1867
|
|
height: 1400
|
|
caption: Fundamenteringen av brannstasjonen i Ytre Enebakk
|
|
- image: images/bildeserie/04.webp
|
|
width: 1867
|
|
height: 1400
|
|
caption: Gammel stjernehimmel skal fornyes
|
|
- image: images/bildeserie/05.webp
|
|
width: 1050
|
|
height: 1400
|
|
caption: Sprekk midt på stuevegg
|
|
- image: images/bildeserie/06.webp
|
|
width: 1867
|
|
height: 1400
|
|
caption: Snart klart for overlevering! Løvenstad omsorgsboliger.
|
|
- image: images/bildeserie/07.webp
|
|
width: 1867
|
|
height: 1400
|
|
caption: Omlegging av vannforsyning før etablering av nye boliger
|
|
- image: images/bildeserie/08.webp
|
|
width: 1777
|
|
height: 1400
|
|
caption: Utbedring parkett i gymsal, sliping og lakking.
|
|
- image: images/bildeserie/09.webp
|
|
width: 3629
|
|
height: 1400
|
|
caption: Tilbygg på skole i drift, i Ås
|
|
- image: images/bildeserie/10.webp
|
|
width: 3207
|
|
height: 1400
|
|
caption: Fornying kantine Det Norske Teatret
|
|
- image: images/bildeserie/11.webp
|
|
width: 1050
|
|
height: 1400
|
|
caption: Solid veggprofil tilpasset lyd- og brannkrav
|
|
- image: images/bildeserie/12.webp
|
|
width: 1867
|
|
height: 1400
|
|
caption: Nye vinduer med tradisjonelt utseende «Restover»-glass som avslører utsikten fra Munkeramme på Hvitsten
|
|
- image: images/bildeserie/13.webp
|
|
width: 2571
|
|
height: 1400
|
|
caption: Kjerneved til verandaen og inngangspartiet til Muncheramme
|
|
- image: images/bildeserie/14.webp
|
|
width: 1050
|
|
height: 1400
|
|
caption: Drenering og riktige rammer før kunstgressbanen legges mesterfullt ned helt uten gummikuler
|
|
- image: images/bildeserie/15.webp
|
|
width: 2098
|
|
height: 1400
|
|
caption: Navnebror sprenger plass til ny brannstasjon
|
|
- image: images/bildeserie/16.webp
|
|
width: 1283
|
|
height: 1400
|
|
caption: Kontroll av betong før støping
|
|
- image: images/bildeserie/17.webp
|
|
width: 1050
|
|
height: 1400
|
|
caption: Etablering av ny byggekran
|
|
- image: images/bildeserie/18.webp
|
|
width: 1050
|
|
height: 1400
|
|
caption: Armeringskontroll før støping
|
|
- image: images/bildeserie/19.webp
|
|
width: 1867
|
|
height: 1400
|
|
caption: Brannstasjonens tårn under oppføring blir også klatrevegg
|
|
- image: images/bildeserie/20.webp
|
|
width: 1867
|
|
height: 1400
|
|
caption: Her heises Moelvens modulskole i Vestby på plass. Den blir stående i 10 år.
|
|
- image: images/bildeserie/21.webp
|
|
width: 1867
|
|
height: 1400
|
|
caption: Nyetablering av vei.
|
|
- image: images/bildeserie/22.webp
|
|
width: 838
|
|
height: 1400
|
|
caption: Støpefeil med frosset treverk i søyle fra 1960, avdekket og utbedret
|
|
- image: images/bildeserie/23.webp
|
|
width: 2095
|
|
height: 1400
|
|
caption: Nytt kunstgress med varme på Fredrikstad stasjon.
|
|
- image: images/bildeserie/24.webp
|
|
width: 1050
|
|
height: 1400
|
|
caption: Sydvendte fasader er utsatt for slagregn. Dette bygget er på byantikvarens gule liste.
|
|
- image: images/bildeserie/25.webp
|
|
width: 1487
|
|
height: 1400
|
|
caption: pH-test av borprøver i mur fra forskjellige dybder
|