Files
portal/runs/permits-plan-2026-09-30/llm/02-reply.md
T

419 lines
20 KiB
Markdown
Raw Normal View History

business: Vestmark kommune - Building and Planning
language: en
contact: { name: Solveig Hauge, email: byggesak@vestmark.example }
about: >
We are the building authority for a municipality of twenty-one
thousand people. Anyone who wants to build, demolish, divide a
property or change what a building is used for has to come to us
first. We check the drawings against the zoning map and the building
regulations, we let the neighbours and the other authorities have
their say, and then we approve or refuse. We also decide exemptions
from the zoning rules, we inspect what is actually built, we sign off
finished work, and we deal with building that was never applied for.
mail: { from: "Vestmark kommune Building and Planning <post@vestmark.example>", reply_to: byggesak@vestmark.example }
does:
- id: check-and-decide
for: application
text: >
We check your drawings against the zoning map and the building
regulations, let the neighbours and the other authorities have
their say, and then approve or refuse. Every case is on the list
here, so you and your neighbours can follow it the whole way,
and object to it or appeal it from its own row.
- id: firms-file-here
for: firm-application
text: >
Approved firms file applications for their clients here, see what
is missing and ask for the completion certificate when the work is done.
doors:
- id: build
who: You want to build, demolish, divide a property or change what a building is used for
- id: firm
who: You are an architect or an engineering firm filing on behalf of owners
invites_by: [head_of_section]
needs:
- id: pre-application-meeting
who: Anyone who wants to sit down with us before they spend money on drawings
wants: A meeting with a case officer, and a written note of what we told them
door: build
lands_in: pre_application_meetings
handled_by: case_officers
stages: [open, scheduled, met, written_up, cancelled]
done_when: [written_up, cancelled]
success: [written_up]
turned_down_from: [open, scheduled]
moves_by: { cancelled: [submitter, case_officers] }
watched_by: [front_desk]
mails: { open: submitter, scheduled: submitter, written_up: submitter, cancelled: submitter }
stages_text: { open: asked for, scheduled: time found, met: meeting held, written_up: written down and sent, cancelled: cancelled }
max_fields: 4
collects:
- { name: name }
- { name: email, type: email }
- { name: property_address }
- { name: what_you_plan, type: textarea }
- { name: phone, type: tel, optional: true }
- { name: place, type: location, optional: true }
- id: application
who: A homeowner who wants a garage, an extension, a new window or another change to their property
wants: Permission to build, demolish, divide a property or change what a building is used for
door: build
lands_in: applications
handled_by: case_officers
stages: [open, papers_missing, papers_received, complete, in_hearing, hearing_over, recommended, approved, approved_with_conditions, refused, withdrawn]
done_when: [approved, approved_with_conditions, refused, withdrawn]
success: [approved, approved_with_conditions]
skippable: [papers_missing, papers_received]
reached_from:
papers_missing: [open, papers_received, complete, in_hearing]
refused: [recommended]
moves_by:
papers_received: [submitter]
approved: [head_of_section]
approved_with_conditions: [head_of_section]
refused: [head_of_section]
withdrawn: [submitter, case_officers]
watched_by: [public, front_desk, inspectors]
public_states: [open, papers_missing, papers_received, complete, in_hearing, hearing_over, recommended, approved, approved_with_conditions, refused]
mails:
open: submitter
papers_missing: submitter
complete: submitter
in_hearing: submitter
approved: submitter
approved_with_conditions: submitter
refused: submitter
withdrawn: submitter
deadlines: { in_hearing: { days: 42, to: hearing_over } }
stages_text:
open: received
papers_missing: papers missing, clock stopped
papers_received: missing papers sent in
complete: complete, clock running
in_hearing: out to neighbours and agencies
hearing_over: hearing over
recommended: recommendation written
approved: approved
approved_with_conditions: approved with conditions
refused: refused
withdrawn: withdrawn
max_fields: 5
collects:
- { name: name, private: true }
- { name: email, type: email, private: true }
- { name: property_address }
- { name: kind_of_work, type: select, options: [New building, Extension, Garage or outbuilding, Window or facade change, Demolition, Dividing a property, Change of use] }
- { name: what_you_want_to_do, type: textarea }
- { name: enclosed, type: select, multiple: true, optional: true, options: [Site plan, Floor plans, Elevations, Section drawing, Neighbour notices sent, Statement from the owner] }
- { name: phone, type: tel, optional: true, private: true }
- { name: place, type: location, optional: true }
- id: firm-application
who: An approved architect or engineering firm filing on behalf of an owner
wants: To file a building application for a client and see what is missing
door: firm
enters_as: approved_firms
requires: Your firm must be on our list of approved firms before it may file anything.
lands_in: applications
handled_by: case_officers
stages: [open, papers_missing, papers_received, complete, in_hearing, hearing_over, recommended, approved, approved_with_conditions, refused, withdrawn]
done_when: [approved, approved_with_conditions, refused, withdrawn]
success: [approved, approved_with_conditions]
skippable: [papers_missing, papers_received]
reached_from:
papers_missing: [open, papers_received, complete, in_hearing]
refused: [recommended]
moves_by:
papers_received: [submitter]
approved: [head_of_section]
approved_with_conditions: [head_of_section]
refused: [head_of_section]
withdrawn: [submitter, case_officers]
watched_by: [public, front_desk, inspectors]
public_states: [open, papers_missing, papers_received, complete, in_hearing, hearing_over, recommended, approved, approved_with_conditions, refused]
mails:
open: submitter
papers_missing: submitter
complete: submitter
in_hearing: submitter
approved: submitter
approved_with_conditions: submitter
refused: submitter
withdrawn: submitter
deadlines: { in_hearing: { days: 42, to: hearing_over } }
stages_text:
open: received
papers_missing: papers missing, clock stopped
papers_received: missing papers sent in
complete: complete, clock running
in_hearing: out to neighbours and agencies
hearing_over: hearing over
recommended: recommendation written
approved: approved
approved_with_conditions: approved with conditions
refused: refused
withdrawn: withdrawn
max_fields: 6
collects:
- { name: name, private: true }
- { name: email, type: email, private: true }
- { name: property_address }
- { name: kind_of_work, type: select, options: [New building, Extension, Garage or outbuilding, Window or facade change, Demolition, Dividing a property, Change of use] }
- { name: what_you_want_to_do, type: textarea }
- { name: enclosed, type: select, multiple: true, options: [Site plan, Floor plans, Elevations, Section drawing, Neighbour notices sent, Statement from the owner] }
- { name: owner_name, optional: true, private: true }
- { name: phone, type: tel, optional: true, private: true }
- { name: place, type: location, optional: true }
- id: exemption
who: An applicant whose plans break the zoning rules
wants: An exemption from the zoning rules, decided alongside their application
about: application
requires: An application with us; the exemption rides along with it and is asked for from its row on the list of cases.
lands_in: exemptions
handled_by: case_officers
stages: [open, county_asked, county_heard, granted, refused]
done_when: [granted, refused]
success: [granted]
moves_by: { granted: [head_of_section], refused: [head_of_section] }
watched_by: [front_desk]
mails: { open: submitter, county_asked: submitter, granted: submitter, refused: submitter }
deadlines: { county_asked: { days: 42, to: county_heard } }
stages_text: { open: received, county_asked: county asked, county_heard: county has answered or its deadline has passed, granted: granted, refused: refused }
max_fields: 4
collects:
- { name: name }
- { name: email, type: email }
- { name: rule_it_breaks }
- { name: why_it_should_be_allowed, type: textarea }
- id: objection
who: A neighbour who got a notice in the post and does not agree with what is planned next door
wants: To object to an application and have the objection answered in the decision
about: application
requires: The application must still be out for hearing; objections are taken until the six weeks are up.
lands_in: objections
handled_by: case_officers
stages: [open, registered, answered, addressed]
done_when: [addressed]
success: [addressed]
skippable: [answered]
moves_by: { registered: [front_desk, case_officers], answered: [approved_firms, case_officers] }
watched_by: [front_desk, head_of_section]
mails: { open: submitter, registered: owner, addressed: submitter }
stages_text: { open: received, registered: registered on the case, answered: answered by the applicant, addressed: addressed in the decision }
max_fields: 4
collects:
- { name: name }
- { name: email, type: email }
- { name: your_property }
- { name: objection, type: textarea }
- { name: phone, type: tel, optional: true }
- id: logged-objection
who: The front desk, when an objection comes in on paper or over the counter
wants: To put the objection on the right case straight away, instead of stapling it to a folder
enters_as: front_desk
lands_in: paper_objections
handled_by: case_officers
stages: [open, registered, answered, addressed]
done_when: [addressed]
success: [addressed]
skippable: [answered]
moves_by: { registered: [front_desk, case_officers], answered: [approved_firms, case_officers] }
watched_by: [front_desk, head_of_section]
stages_text: { open: received, registered: registered on the case, answered: answered by the applicant, addressed: addressed in the decision }
max_fields: 5
collects:
- { name: application_reference }
- { name: name }
- { name: objection, type: textarea }
- { name: received_on, type: date }
- { name: your_property, optional: true }
- { name: phone, type: tel, optional: true }
- id: hearing-request
who: A case officer who is obliged to ask another authority about an application
wants: To ask the road authority, the fire service, the heritage office or the county, and go on when the deadline has passed
enters_as: case_officers
lands_in: hearing_answers
handled_by: case_officers
stages: [open, answered, no_answer]
done_when: [answered, no_answer]
success: [answered]
moves_by: { answered: [agencies, case_officers] }
watched_by: [agencies, front_desk]
deadlines: { open: { days: 42, to: no_answer } }
stages_text: { open: asked, answered: answered, no_answer: deadline passed without an answer }
max_fields: 4
collects:
- { name: application_reference }
- { name: agency, type: select, options: [Road authority, Fire service, Heritage office, County] }
- { name: what_we_ask, type: textarea }
- { name: answer_by, type: date, optional: true }
- id: appeal
who: Anyone with an interest in a decision, the applicant or a neighbour
wants: To appeal a decision we have made
about: application
requires: A decision on the application, made no more than three weeks ago.
lands_in: appeals
handled_by: case_officers
stages: [open, under_review, decision_changed, sent_to_board, upheld, overturned, dismissed]
done_when: [decision_changed, upheld, overturned, dismissed]
success: [decision_changed, upheld, overturned]
turned_down_from: [open, under_review]
reached_from: { decision_changed: [under_review] }
moves_by: { decision_changed: [head_of_section], upheld: [appeals_board], overturned: [appeals_board] }
watched_by: [appeals_board, head_of_section, front_desk]
mails: { open: submitter, decision_changed: submitter, sent_to_board: submitter, upheld: submitter, overturned: submitter, dismissed: submitter }
stages_text: { open: received, under_review: we are going through it ourselves, decision_changed: we changed our own decision, sent_to_board: sent to the appeals board, upheld: decision upheld by the board, overturned: decision overturned by the board, dismissed: dismissed }
max_fields: 4
collects:
- { name: name }
- { name: email, type: email }
- { name: your_interest, type: select, options: [I am the applicant, I am a neighbour, Other] }
- { name: grounds, type: textarea }
- { name: phone, type: tel, optional: true }
- id: illegal-building-report
who: Someone who sees something going up behind their fence without permission
wants: To tell us, so that we go and look
lands_in: illegal_building
handled_by: case_officers
stages: [open, inspected, owner_written_to, explained, fined, applied_for, taken_down, nothing_illegal]
done_when: [applied_for, taken_down, nothing_illegal]
success: [applied_for, taken_down]
skippable: [fined]
turned_down_from: [open, inspected, explained]
moves_by: { inspected: [inspectors], fined: [head_of_section] }
watched_by: [front_desk, inspectors]
stages_text: { open: reported, inspected: we have been and looked, owner_written_to: owner written to, explained: owner has explained, fined: weekly fine running, applied_for: applied for properly, taken_down: taken down, nothing_illegal: nothing illegal found }
max_fields: 3
collects:
- { name: where }
- { name: what_is_being_built, type: textarea }
- { name: place, type: location, optional: true }
- { name: name, optional: true, private: true }
- { name: phone, type: tel, optional: true, private: true }
- id: logged-report
who: The front desk, when someone rings or comes in about building without permission
wants: To log the report so an inspector goes and looks
enters_as: front_desk
lands_in: illegal_building
handled_by: case_officers
stages: [open, inspected, owner_written_to, explained, fined, applied_for, taken_down, nothing_illegal]
done_when: [applied_for, taken_down, nothing_illegal]
success: [applied_for, taken_down]
skippable: [fined]
turned_down_from: [open, inspected, explained]
moves_by: { inspected: [inspectors], fined: [head_of_section] }
watched_by: [front_desk, inspectors]
stages_text: { open: reported, inspected: we have been and looked, owner_written_to: owner written to, explained: owner has explained, fined: weekly fine running, applied_for: applied for properly, taken_down: taken down, nothing_illegal: nothing illegal found }
max_fields: 3
collects:
- { name: where }
- { name: what_is_being_built, type: textarea }
- { name: place, type: location, optional: true }
- { name: name, optional: true, private: true }
- { name: phone, type: tel, optional: true, private: true }
- id: inspection
who: An inspector on site, writing on a phone in a cold wind
wants: To write up what was found on a case and set a date for what must be put right
enters_as: inspectors
lands_in: inspections
handled_by: inspectors
stages: [open, to_put_right, as_approved]
done_when: [as_approved]
success: [as_approved]
skippable: [to_put_right]
watched_by: [case_officers, head_of_section]
stages_text: { open: inspected, to_put_right: to be put right, then we go back, as_approved: as approved }
max_fields: 3
collects:
- { name: application_reference }
- { name: finding, type: select, options: [As approved, Something is wrong] }
- { name: what_is_wrong, type: textarea, optional: true }
- { name: put_right_by, type: date, optional: true }
- { name: place, type: location, optional: true }
- id: completion-certificate
who: An approved firm whose work on a case is done
wants: A completion certificate for the finished work
door: firm
enters_as: approved_firms
requires: Your firm must be on our list of approved firms, and the application must be approved; have its reference ready.
lands_in: completion_certificates
handled_by: case_officers
stages: [open, checked, issued, refused]
done_when: [issued, refused]
success: [issued]
moves_by: { issued: [head_of_section], refused: [head_of_section] }
watched_by: [inspectors, front_desk]
mails: { open: submitter, issued: submitter, refused: submitter }
stages_text: { open: asked for, checked: inspections and outstanding work checked, issued: certificate signed, refused: refused }
max_fields: 5
collects:
- { name: name }
- { name: email, type: email }
- { name: application_reference }
- { name: finished_on, type: date }
- { name: what_was_built, type: textarea, optional: true }
- { name: still_outstanding, type: textarea, optional: true }
- id: temporary-permission
who: An approved firm whose client wants to move in before everything is done
wants: A temporary permission to use the building
door: firm
enters_as: approved_firms
requires: Your firm must be on our list of approved firms, and the application must be approved; have its reference ready.
lands_in: temporary_permissions
handled_by: case_officers
stages: [open, checked, issued, refused]
done_when: [issued, refused]
success: [issued]
moves_by: { issued: [head_of_section], refused: [head_of_section] }
watched_by: [inspectors, front_desk]
mails: { open: submitter, issued: submitter, refused: submitter }
stages_text: { open: asked for, checked: inspections and outstanding work checked, issued: temporary permission signed, refused: refused }
max_fields: 6
collects:
- { name: name }
- { name: email, type: email }
- { name: application_reference }
- { name: move_in_on, type: date }
- { name: still_outstanding, type: textarea }
- { name: finished_by, type: date, optional: true }
- id: firm-approval
who: An architect or engineering firm that wants to file applications for owners
wants: To be approved by us and put on the list of firms that may file
door: firm
lands_in: approved_firm_requests
handled_by: case_officers
stages: [open, checked, listed, refused]
done_when: [listed, refused]
success: [listed]
moves_by: { listed: [head_of_section], refused: [head_of_section] }
watched_by: [public, front_desk]
public_states: [listed]
mails: { open: submitter, listed: submitter, refused: submitter }
grants: { listed: approved_firms }
stages_text: { open: received, checked: registration, insurance and qualifications checked, listed: on the list, refused: refused }
max_fields: 6
collects:
- { name: firm }
- { name: name, private: true }
- { name: email, type: email, private: true }
- { name: registration_number }
- { name: insurance, private: true }
- { name: qualified_for, type: select, multiple: true, options: [Applying on behalf of owners, Architectural design, Structural engineering, Fire safety design, Geotechnical engineering, Carrying out the work, Independent control] }
- { name: phone, type: tel, optional: true, private: true }