diff --git a/runs/permits-2026-09-25/README.md b/runs/permits-2026-09-25/README.md index a83e24c..3e36e11 100644 --- a/runs/permits-2026-09-25/README.md +++ b/runs/permits-2026-09-25/README.md @@ -181,3 +181,60 @@ iris replay --path questions --nats nats://127.0.0.1:14222 --cases cases.jsonl trainer could produce it, kept as the proof that portal's engine was never the thing in the way. Point replay at a throwaway NATS, never a site's own: it writes. + +## Routing: one stable failure, and a leak that turned out not to cost anything + +Twenty-five routing tasks, three seeds, qwen3:8b as the visitor, with +the builder's own fallback wording and no model having touched the +prose: + + seed 1: 18/25 (72%) seed 2: 20/25 (80%) seed 3: 22/25 (88%) + +A sixteen-point spread is wider than this harness's usual floor, so the +misroutes were counted per task rather than per run. One fails in every +seed: + +- **`shop-to-flats@/want-to-build`** (3 of 3), and `garage-owner` the + same way (2 of 3): someone who wants to sit down with us before + paying an architect picks "permission to build it" instead. The + pre-application meeting does not read as distinguishable from + applying. A wording fault on the door page, and the kind a wording + round exists to fix. + +Everything else failed once - but the *shape* was not random. Of the +eight front-door misroutes across all three seeds, **six went to one +card**: a neighbour who got a notice, an owner asking for a completion +certificate and someone reporting a building behind a fence all picked +"the decision looked at again, by us and then by the board". + +The front door held two doors and two bare needs - "Want to build", +"Building near me", the appeal, and firm approval. A door is an +abstract category; a bare need is a concrete sentence, and the concrete +sentence was out-pulling the categories, collecting everyone with any +sort of grievance whatever it was about. + +So the obvious fix was measured: four doors, nothing bare, everything +on the front door at the same level (`runs/permits-doors-2026-09-25`). + +| | seed 1 | seed 2 | seed 3 | mean | +|---|---|---|---|---| +| two doors, two bare needs | 72% | 80% | 88% | **80.0%** | +| four doors | 76% | 72% | 84% | 77.3% | + +**The rewrite does not beat the spread, and is rejected.** The +diagnosis was right and the fix was still not worth making: with four +doors the appeal card stopped collecting misroutes completely - 0 of 10, +down from 6 of 8 - and the site got no better, because two offers went +from findable to hidden. `firm-insurance-lapsed` ("our certificate has +expired, we have renewed it, here it is") found "to be on the list, and +then to file without asking again" when it was a sentence on the front +door, and fails 3 of 3 once it is behind a door called "Work as a +firm". `owner-explains` got worse the same way. + +What that says, as a measurement rather than a taste: a concrete offer +standing among categories does leak, and hiding it costs more than the +leak. The earlier finding - four doors beat ten offers, six offers beat +doors - was about how many things a page holds. This one is about what +a door costs the person who was going to pick correctly: one more page +between them and the only thing they came for. The mixed front door +stays. diff --git a/runs/permits-2026-09-25/answers-full-seed2.jsonl b/runs/permits-2026-09-25/answers-full-seed2.jsonl index e69de29..3a2ec69 100644 --- a/runs/permits-2026-09-25/answers-full-seed2.jsonl +++ b/runs/permits-2026-09-25/answers-full-seed2.jsonl @@ -0,0 +1,25 @@ +{"id":"garage-owner@/","choice":"Want to build","confidence":0.95} +{"id":"garage-owner@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.85} +{"id":"shop-to-flats@/","choice":"Want to build","confidence":0.95} +{"id":"shop-to-flats@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.95} +{"id":"too-close-to-boundary@/","choice":"Want to build","confidence":0.95} +{"id":"too-close-to-boundary@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.95} +{"id":"neighbour-view@/","choice":"Building near me","confidence":0.95} +{"id":"neighbour-view@/building-near-me","choice":"what they think on the record, and answered in the decision","confidence":0.95} +{"id":"neighbour-parking@/","choice":"Building near me","confidence":0.95} +{"id":"neighbour-parking@/building-near-me","choice":"what they think on the record, and answered in the decision","confidence":0.95} +{"id":"refused-applicant@/","choice":"the decision looked at again, by us and then by the board","confidence":0.95} +{"id":"neighbour-appeals@/","choice":"the decision looked at again, by us and then by the board","confidence":0.95} +{"id":"board-member@/","choice":"the decision looked at again, by us and then by the board","confidence":1.0} +{"id":"firm-wants-certificate@/","choice":"Want to build","confidence":0.95} +{"id":"firm-wants-certificate@/want-to-build","choice":"the certificate that lets the building be used","confidence":0.95} +{"id":"wants-to-move-in@/","choice":"the decision looked at again, by us and then by the board","confidence":0.95} +{"id":"wants-to-move-in@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.85} +{"id":"something-behind-fence@/","choice":"Building near me","confidence":0.95} +{"id":"something-behind-fence@/building-near-me","choice":"us to go and look, and to hear that we did","confidence":0.95} +{"id":"owner-explains@/","choice":"Building near me","confidence":0.95} +{"id":"owner-explains@/building-near-me","choice":"us to go and look, and to hear that we did","confidence":0.95} +{"id":"new-firm@/","choice":"to be on the list, and then to file without asking again","confidence":1.0} +{"id":"firm-insurance-lapsed@/","choice":"to be on the list, and then to file without asking again","confidence":1.0} +{"id":"where-is-my-case@/","choice":"the decision looked at again, by us and then by the board","confidence":0.95} +{"id":"where-is-my-case@/building-near-me","choice":"to be told where it actually stands","confidence":0.95} diff --git a/runs/permits-2026-09-25/answers-full-seed3.jsonl b/runs/permits-2026-09-25/answers-full-seed3.jsonl new file mode 100644 index 0000000..0698247 --- /dev/null +++ b/runs/permits-2026-09-25/answers-full-seed3.jsonl @@ -0,0 +1,25 @@ +{"id":"garage-owner@/","choice":"Want to build","confidence":0.95} +{"id":"garage-owner@/want-to-build","choice":"to hear what we will allow before paying an architect","confidence":0.95} +{"id":"shop-to-flats@/","choice":"Want to build","confidence":0.95} +{"id":"shop-to-flats@/want-to-build","choice":"permission to build it, and to know where the case stands","confidence":0.95} +{"id":"too-close-to-boundary@/","choice":"Want to build","confidence":0.95} +{"id":"too-close-to-boundary@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.95} +{"id":"neighbour-view@/","choice":"Building near me","confidence":0.95} +{"id":"neighbour-view@/building-near-me","choice":"what they think on the record, and answered in the decision","confidence":0.95} +{"id":"neighbour-parking@/","choice":"Building near me","confidence":0.95} +{"id":"neighbour-parking@/building-near-me","choice":"what they think on the record, and answered in the decision","confidence":0.95} +{"id":"refused-applicant@/","choice":"the decision looked at again, by us and then by the board","confidence":0.95} +{"id":"neighbour-appeals@/","choice":"the decision looked at again, by us and then by the board","confidence":0.95} +{"id":"board-member@/","choice":"the decision looked at again, by us and then by the board","confidence":0.95} +{"id":"firm-wants-certificate@/","choice":"Want to build","confidence":0.95} +{"id":"firm-wants-certificate@/want-to-build","choice":"the certificate that lets the building be used","confidence":0.95} +{"id":"wants-to-move-in@/","choice":"the decision looked at again, by us and then by the board","confidence":0.95} +{"id":"wants-to-move-in@/want-to-build","choice":"the certificate that lets the building be used","confidence":0.95} +{"id":"something-behind-fence@/","choice":"Building near me","confidence":0.95} +{"id":"something-behind-fence@/building-near-me","choice":"us to go and look, and to hear that we did","confidence":0.95} +{"id":"owner-explains@/","choice":"Building near me","confidence":0.95} +{"id":"owner-explains@/building-near-me","choice":"to be told where it actually stands","confidence":0.95} +{"id":"new-firm@/","choice":"to be on the list, and then to file without asking again","confidence":1.0} +{"id":"firm-insurance-lapsed@/","choice":"to be on the list, and then to file without asking again","confidence":0.95} +{"id":"where-is-my-case@/","choice":"Building near me","confidence":0.95} +{"id":"where-is-my-case@/building-near-me","choice":"to be told where it actually stands","confidence":0.95} diff --git a/runs/permits-doors-2026-09-25/aggregates.yaml b/runs/permits-doors-2026-09-25/aggregates.yaml new file mode 100644 index 0000000..e65dd76 --- /dev/null +++ b/runs/permits-doors-2026-09-25/aggregates.yaml @@ -0,0 +1,653 @@ +aggregates: +- bucket: appeals + initial: open + states: + open: + event: received + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Open' + body: |- + Hello, + + We have received what you sent about the decision looked at again, by us and then by the board. + + What you can do next: {site}/decide/appeal?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + reconsidered: + event: reconsidered + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Reconsidered' + body: |- + Hello, + + What you sent about the decision looked at again, by us and then by the board is now we are looking at it again. + + What you can do next: {site}/decide/appeal?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + changed_by_us: + event: changed_by_us + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Changed by us' + body: |- + Hello, + + What you sent about the decision looked at again, by us and then by the board is now we changed our own decision. + + Solveig Hauge at byggesak@vestmark.example + before_the_board: + event: before_the_board + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Before the board' + body: |- + Hello, + + What you sent about the decision looked at again, by us and then by the board is now with the appeals board. + + What you can do next: {site}/decide/appeal?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + upheld: + event: upheld + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Upheld' + body: |- + Hello, + + What you sent about the decision looked at again, by us and then by the board is now the board kept our decision. + + Solveig Hauge at byggesak@vestmark.example + overturned: + event: overturned + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Overturned' + body: |- + Hello, + + What you sent about the decision looked at again, by us and then by the board is now the board overturned us. + + Solveig Hauge at byggesak@vestmark.example + withdrawn: + event: withdrawn + transitions: + before_the_board: + - withdrawn + - overturned + - upheld + open: + - reconsidered + - withdrawn + reconsidered: + - before_the_board + - withdrawn + - changed_by_us +- bucket: applications + initial: open + states: + open: + event: received + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Open' + body: |- + Hello, + + We have received what you sent about permission to build it, and to know where the case stands. + + What you can do next: {site}/decide/small-works-application?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + incomplete: + event: incomplete + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Incomplete' + body: |- + Hello, + + What you sent about permission to build it, and to know where the case stands is now papers missing. + + What you can do next: {site}/decide/small-works-application?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + complete: + event: complete + on_hearing: + event: on_hearing + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: On hearing' + body: |- + Hello, + + What you sent about permission to build it, and to know where the case stands is now out to the neighbours and the agencies. + + What you can do next: {site}/decide/small-works-application?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + recommended: + event: recommended + approved: + event: approved + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Approved' + body: |- + Hello, + + What you sent about permission to build it, and to know where the case stands is now approved. + + Solveig Hauge at byggesak@vestmark.example + approved_with_conditions: + event: approved_with_conditions + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Approved with conditions' + body: |- + Hello, + + What you sent about permission to build it, and to know where the case stands is now approved on conditions. + + Solveig Hauge at byggesak@vestmark.example + refused: + event: refused + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Refused' + body: |- + Hello, + + What you sent about permission to build it, and to know where the case stands is now refused. + + Solveig Hauge at byggesak@vestmark.example + withdrawn: + event: withdrawn + transitions: + complete: + - on_hearing + - withdrawn + - incomplete + - refused + incomplete: + - complete + - withdrawn + on_hearing: + - recommended + - withdrawn + - incomplete + - refused + open: + - complete + - withdrawn + - incomplete + recommended: + - approved + - approved_with_conditions + - withdrawn + - refused +- bucket: completions + initial: open + states: + open: + event: received + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Open' + body: |- + Hello, + + We have received what you sent about the certificate that lets the building be used. + + Solveig Hauge at byggesak@vestmark.example + checked: + event: checked + temporary_permission: + event: temporary_permission + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Temporary permission' + body: |- + Hello, + + What you sent about the certificate that lets the building be used is now temporary permission to use. + + Solveig Hauge at byggesak@vestmark.example + certificate_issued: + event: certificate_issued + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Certificate issued' + body: |- + Hello, + + What you sent about the certificate that lets the building be used is now certificate issued. + + Solveig Hauge at byggesak@vestmark.example + refused: + event: refused + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Refused' + body: |- + Hello, + + What you sent about the certificate that lets the building be used is now refused. + + Solveig Hauge at byggesak@vestmark.example + transitions: + checked: + - temporary_permission + - certificate_issued + - refused + open: + - checked + - refused + temporary_permission: + - certificate_issued +- bucket: enquiries + initial: open + states: + open: + event: received + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Open' + body: |- + Hello, + + We have received what you sent about to be told where it actually stands. + + Solveig Hauge at byggesak@vestmark.example + in_hand: + event: in_hand + answered: + event: answered + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Answered' + body: |- + Hello, + + What you sent about to be told where it actually stands is now answered. + + Solveig Hauge at byggesak@vestmark.example + transitions: + in_hand: + - answered + open: + - in_hand +- bucket: exemptions + initial: open + states: + open: + event: received + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Open' + body: |- + Hello, + + We have received what you sent about to be allowed it anyway, with reasons on the record. + + What you can do next: {site}/decide/exemption-request?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + county_asked: + event: county_asked + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: County asked' + body: |- + Hello, + + What you sent about to be allowed it anyway, with reasons on the record is now with the county. + + What you can do next: {site}/decide/exemption-request?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + county_answered: + event: county_answered + recommended: + event: recommended + granted: + event: granted + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Granted' + body: |- + Hello, + + What you sent about to be allowed it anyway, with reasons on the record is now granted. + + Solveig Hauge at byggesak@vestmark.example + denied: + event: denied + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Denied' + body: |- + Hello, + + What you sent about to be allowed it anyway, with reasons on the record is now denied. + + Solveig Hauge at byggesak@vestmark.example + withdrawn: + event: withdrawn + transitions: + county_answered: + - recommended + - denied + - withdrawn + county_asked: + - county_answered + - denied + - withdrawn + open: + - county_asked + - denied + - withdrawn + recommended: + - granted + - denied + - withdrawn +- bucket: firms + initial: open + states: + open: + event: received + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Open' + body: |- + Hello, + + We have received what you sent about to be on the list, and then to file without asking again. + + What you can do next: {site}/decide/firm-approval?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + papers_missing: + event: papers_missing + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Papers missing' + body: |- + Hello, + + What you sent about to be on the list, and then to file without asking again is now waiting on papers. + + What you can do next: {site}/decide/firm-approval?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + checked: + event: checked + approved: + event: approved + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Approved' + body: |- + Hello, + + What you sent about to be on the list, and then to file without asking again is now approved. + + Solveig Hauge at byggesak@vestmark.example + declined: + event: declined + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Declined' + body: |- + Hello, + + What you sent about to be on the list, and then to file without asking again is now declined. + + Solveig Hauge at byggesak@vestmark.example + transitions: + checked: + - approved + - declined + open: + - papers_missing + - checked + - declined + papers_missing: + - checked + - declined +- bucket: hearing_answers + initial: open + states: + open: + event: received + read: + event: read + followed: + event: followed + set_aside: + event: set_aside + transitions: + open: + - read + - set_aside + read: + - followed + - set_aside +- bucket: hearings + initial: open + states: + open: + event: received + answered: + event: answered + no_answer: + event: no_answer + cancelled: + event: cancelled + transitions: + open: + - answered + - no_answer + - cancelled + attended_by: | + the six-week deadline: when it passes with nothing from the agency the case goes to no_answer and the application goes on without one +- bucket: illegal_building + initial: open + states: + open: + event: received + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Open' + body: |- + Hello, + + We have received what you sent about us to go and look, and to hear that we did. + + Solveig Hauge at byggesak@vestmark.example + inspected: + event: inspected + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Inspected' + body: |- + Hello, + + What you sent about us to go and look, and to hear that we did is now inspected. + + Solveig Hauge at byggesak@vestmark.example + owner_asked: + event: owner_asked + explained: + event: explained + resolved: + event: resolved + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Resolved' + body: |- + Hello, + + What you sent about us to go and look, and to hear that we did is now resolved. + + Solveig Hauge at byggesak@vestmark.example + fined: + event: fined + dropped: + event: dropped + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Dropped' + body: |- + Hello, + + What you sent about us to go and look, and to hear that we did is now nothing to pursue. + + Solveig Hauge at byggesak@vestmark.example + transitions: + explained: + - resolved + - dropped + inspected: + - owner_asked + - fined + open: + - inspected + - fined + owner_asked: + - explained +- bucket: inspections + initial: open + states: + open: + event: received + as_approved: + event: as_approved + deviation: + event: deviation + put_right: + event: put_right + escalated: + event: escalated + transitions: + deviation: + - as_approved + - put_right + - escalated + open: + - deviation + - escalated +- bucket: meetings + initial: open + states: + open: + event: received + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Open' + body: |- + Hello {name}, + + We have received what you sent about to hear what we will allow before paying an architect. + + What you can do next: {site}/decide/pre-application-meeting?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + scheduled: + event: scheduled + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Scheduled' + body: |- + Hello {name}, + + What you sent about to hear what we will allow before paying an architect is now scheduled. + + What you can do next: {site}/decide/pre-application-meeting?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + met: + event: met + advised: + event: advised + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Advised' + body: |- + Hello {name}, + + What you sent about to hear what we will allow before paying an architect is now written advice sent. + + Solveig Hauge at byggesak@vestmark.example + cancelled: + event: cancelled + transitions: + met: + - advised + - cancelled + open: + - scheduled + - cancelled + scheduled: + - met + - cancelled +- bucket: objections + initial: open + states: + open: + event: received + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Open' + body: |- + Hello, + + We have received what you sent about what they think on the record, and answered in the decision. + + What you can do next: {site}/decide/objection?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + registered: + event: registered + answered_by_applicant: + event: answered_by_applicant + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Answered by applicant' + body: |- + Hello, + + What you sent about what they think on the record, and answered in the decision is now the applicant has answered. + + What you can do next: {site}/decide/objection?chain={chain}&email={email} + + Solveig Hauge at byggesak@vestmark.example + addressed: + event: addressed + mail: + to: submitter + subject: 'Vestmark kommune - Building and Planning: Addressed' + body: |- + Hello, + + What you sent about what they think on the record, and answered in the decision is now answered in the decision. + + Solveig Hauge at byggesak@vestmark.example + withdrawn: + event: withdrawn + transitions: + answered_by_applicant: + - addressed + - withdrawn + open: + - registered + - withdrawn + registered: + - answered_by_applicant + - withdrawn diff --git a/runs/permits-doors-2026-09-25/answers-full-seed1.jsonl b/runs/permits-doors-2026-09-25/answers-full-seed1.jsonl new file mode 100644 index 0000000..594d05f --- /dev/null +++ b/runs/permits-doors-2026-09-25/answers-full-seed1.jsonl @@ -0,0 +1,25 @@ +{"id":"garage-owner@/","choice":"Want to build","confidence":0.95} +{"id":"garage-owner@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.95} +{"id":"shop-to-flats@/","choice":"Want to build","confidence":0.95} +{"id":"shop-to-flats@/want-to-build","choice":"permission to build it, and to know where the case stands","confidence":0.95} +{"id":"too-close-to-boundary@/","choice":"Want to build","confidence":0.95} +{"id":"too-close-to-boundary@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.95} +{"id":"neighbour-view@/","choice":"Building near me","confidence":0.95} +{"id":"neighbour-view@/building-near-me","choice":"what they think on the record, and answered in the decision","confidence":0.95} +{"id":"neighbour-parking@/","choice":"Want to build","confidence":1.0} +{"id":"neighbour-parking@/building-near-me","choice":"what they think on the record, and answered in the decision","confidence":0.95} +{"id":"refused-applicant@/","choice":"After a decision","confidence":0.95} +{"id":"neighbour-appeals@/","choice":"After a decision","confidence":0.95} +{"id":"board-member@/","choice":"After a decision","confidence":0.95} +{"id":"firm-wants-certificate@/","choice":"Want to build","confidence":0.95} +{"id":"firm-wants-certificate@/want-to-build","choice":"the certificate that lets the building be used","confidence":0.95} +{"id":"wants-to-move-in@/","choice":"Want to build","confidence":0.95} +{"id":"wants-to-move-in@/want-to-build","choice":"the certificate that lets the building be used","confidence":0.95} +{"id":"something-behind-fence@/","choice":"Building near me","confidence":0.95} +{"id":"something-behind-fence@/building-near-me","choice":"us to go and look, and to hear that we did","confidence":0.95} +{"id":"owner-explains@/","choice":"Want to build","confidence":0.95} +{"id":"owner-explains@/building-near-me","choice":"us to go and look, and to hear that we did","confidence":0.95} +{"id":"new-firm@/","choice":"Work as a firm","confidence":1.0} +{"id":"firm-insurance-lapsed@/","choice":"Want to build","confidence":0.95} +{"id":"where-is-my-case@/","choice":"Want to build","confidence":0.95} +{"id":"where-is-my-case@/building-near-me","choice":"to be told where it actually stands","confidence":0.95} diff --git a/runs/permits-doors-2026-09-25/answers-full-seed2.jsonl b/runs/permits-doors-2026-09-25/answers-full-seed2.jsonl new file mode 100644 index 0000000..d97dbc2 --- /dev/null +++ b/runs/permits-doors-2026-09-25/answers-full-seed2.jsonl @@ -0,0 +1,25 @@ +{"id":"garage-owner@/","choice":"Want to build","confidence":0.95} +{"id":"garage-owner@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.95} +{"id":"shop-to-flats@/","choice":"Want to build","confidence":0.95} +{"id":"shop-to-flats@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.95} +{"id":"too-close-to-boundary@/","choice":"Want to build","confidence":0.95} +{"id":"too-close-to-boundary@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.95} +{"id":"neighbour-view@/","choice":"Building near me","confidence":0.95} +{"id":"neighbour-view@/building-near-me","choice":"what they think on the record, and answered in the decision","confidence":0.95} +{"id":"neighbour-parking@/","choice":"Building near me","confidence":1.0} +{"id":"neighbour-parking@/building-near-me","choice":"what they think on the record, and answered in the decision","confidence":0.95} +{"id":"refused-applicant@/","choice":"After a decision","confidence":0.95} +{"id":"neighbour-appeals@/","choice":"After a decision","confidence":0.95} +{"id":"board-member@/","choice":"After a decision","confidence":0.95} +{"id":"firm-wants-certificate@/","choice":"Want to build","confidence":0.95} +{"id":"firm-wants-certificate@/want-to-build","choice":"the certificate that lets the building be used","confidence":0.95} +{"id":"wants-to-move-in@/","choice":"Building near me","confidence":0.95} +{"id":"wants-to-move-in@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.85} +{"id":"something-behind-fence@/","choice":"Building near me","confidence":0.95} +{"id":"something-behind-fence@/building-near-me","choice":"us to go and look, and to hear that we did","confidence":0.95} +{"id":"owner-explains@/","choice":"Want to build","confidence":0.95} +{"id":"owner-explains@/building-near-me","choice":"us to go and look, and to hear that we did","confidence":0.95} +{"id":"new-firm@/","choice":"Work as a firm","confidence":1.0} +{"id":"firm-insurance-lapsed@/","choice":"Building near me","confidence":0.95} +{"id":"where-is-my-case@/","choice":"Want to build","confidence":0.95} +{"id":"where-is-my-case@/building-near-me","choice":"to be told where it actually stands","confidence":0.95} diff --git a/runs/permits-doors-2026-09-25/answers-full-seed3.jsonl b/runs/permits-doors-2026-09-25/answers-full-seed3.jsonl new file mode 100644 index 0000000..12cc0c4 --- /dev/null +++ b/runs/permits-doors-2026-09-25/answers-full-seed3.jsonl @@ -0,0 +1,25 @@ +{"id":"garage-owner@/","choice":"Want to build","confidence":0.95} +{"id":"garage-owner@/want-to-build","choice":"to hear what we will allow before paying an architect","confidence":0.95} +{"id":"shop-to-flats@/","choice":"Want to build","confidence":0.95} +{"id":"shop-to-flats@/want-to-build","choice":"permission to build it, and to know where the case stands","confidence":0.95} +{"id":"too-close-to-boundary@/","choice":"Want to build","confidence":0.95} +{"id":"too-close-to-boundary@/want-to-build","choice":"to be allowed it anyway, with reasons on the record","confidence":0.95} +{"id":"neighbour-view@/","choice":"Building near me","confidence":0.95} +{"id":"neighbour-view@/building-near-me","choice":"what they think on the record, and answered in the decision","confidence":0.95} +{"id":"neighbour-parking@/","choice":"Building near me","confidence":0.95} +{"id":"neighbour-parking@/building-near-me","choice":"what they think on the record, and answered in the decision","confidence":0.95} +{"id":"refused-applicant@/","choice":"After a decision","confidence":0.95} +{"id":"neighbour-appeals@/","choice":"After a decision","confidence":0.95} +{"id":"board-member@/","choice":"After a decision","confidence":0.95} +{"id":"firm-wants-certificate@/","choice":"Want to build","confidence":0.95} +{"id":"firm-wants-certificate@/want-to-build","choice":"the certificate that lets the building be used","confidence":0.95} +{"id":"wants-to-move-in@/","choice":"Want to build","confidence":0.95} +{"id":"wants-to-move-in@/want-to-build","choice":"the certificate that lets the building be used","confidence":0.95} +{"id":"something-behind-fence@/","choice":"Building near me","confidence":0.95} +{"id":"something-behind-fence@/building-near-me","choice":"us to go and look, and to hear that we did","confidence":0.95} +{"id":"owner-explains@/","choice":"Want to build","confidence":0.95} +{"id":"owner-explains@/building-near-me","choice":"to be told where it actually stands","confidence":0.95} +{"id":"new-firm@/","choice":"Work as a firm","confidence":1.0} +{"id":"firm-insurance-lapsed@/","choice":"Building near me","confidence":0.95} +{"id":"where-is-my-case@/","choice":"Building near me","confidence":0.95} +{"id":"where-is-my-case@/building-near-me","choice":"to be told where it actually stands","confidence":0.95} diff --git a/runs/permits-doors-2026-09-25/needs.yaml b/runs/permits-doors-2026-09-25/needs.yaml new file mode 100644 index 0000000..05d9a07 --- /dev/null +++ b/runs/permits-doors-2026-09-25/needs.yaml @@ -0,0 +1,499 @@ +needs: +- id: pre-application-meeting + who: someone with an idea for a building and no drawings yet + wants: to hear what we will allow before paying an architect + enters: / + via: Want to build + lands_in: meetings + handled_by: case_officers + stages: + - open + - scheduled + - met + - advised + - cancelled + done_when: + - advised + - cancelled + success: + - advised + max_steps: 2 + max_fields: 5 + stage_words: + open: open + scheduled: scheduled + met: we have met + advised: written advice sent + cancelled: cancelled + also_moved_by: + - front_desk +- id: small-works-application + who: an owner applying for something small enough to file themselves + wants: permission to build it, and to know where the case stands + enters: / + via: Want to build + lands_in: applications + handled_by: case_officers + stages: + - open + - incomplete + - complete + - on_hearing + - recommended + - approved + - approved_with_conditions + - refused + - withdrawn + done_when: + - approved + - approved_with_conditions + - refused + - withdrawn + success: + - approved + - approved_with_conditions + max_steps: 2 + max_fields: 6 + stage_words: + open: open + incomplete: papers missing + complete: papers complete + on_hearing: out to the neighbours and the agencies + recommended: recommendation written + approved: approved + approved_with_conditions: approved on conditions + refused: refused + withdrawn: withdrawn + also_moved_by: + - section_head +- id: exemption-request + who: someone whose plans break a rule in the zoning map + wants: to be allowed it anyway, with reasons on the record + enters: / + via: Want to build + lands_in: exemptions + handled_by: case_officers + stages: + - open + - county_asked + - county_answered + - recommended + - granted + - denied + - withdrawn + done_when: + - granted + - denied + - withdrawn + success: + - granted + max_steps: 2 + max_fields: 4 + stage_words: + open: open + county_asked: with the county + county_answered: the county has answered + recommended: recommended + granted: granted + denied: denied + withdrawn: withdrawn + also_moved_by: + - agencies + - section_head +- id: completion-request + who: an owner or firm whose building work is finished + wants: the certificate that lets the building be used + enters: / + via: Want to build + lands_in: completions + handled_by: case_officers + stages: + - open + - checked + - temporary_permission + - certificate_issued + - refused + done_when: + - certificate_issued + - refused + success: + - certificate_issued + max_steps: 2 + max_fields: 5 + stage_words: + open: open + checked: checked against the inspections + temporary_permission: temporary permission to use + certificate_issued: certificate issued + refused: refused + also_moved_by: + - section_head +- id: objection + who: a neighbour who got a notice about what is planned next door + wants: what they think on the record, and answered in the decision + enters: / + via: Building near me + lands_in: objections + handled_by: case_officers + stages: + - open + - registered + - answered_by_applicant + - addressed + - withdrawn + done_when: + - addressed + - withdrawn + success: + - addressed + max_steps: 2 + max_fields: 4 + stage_words: + open: open + registered: on the case file + answered_by_applicant: the applicant has answered + addressed: answered in the decision + withdrawn: withdrawn + also_moved_by: + - approved_firms +- id: case-status-enquiry + who: someone waiting on a case and getting nothing back + wants: to be told where it actually stands + enters: / + via: Building near me + lands_in: enquiries + handled_by: front_desk + stages: + - open + - in_hand + - answered + done_when: + - answered + success: + - answered + max_steps: 2 + max_fields: 3 + stage_words: + open: open + in_hand: in hand + answered: answered + also_moved_by: + - case_officers +- id: illegal-building-report + who: someone who can see building going up that nobody was told about + wants: us to go and look, and to hear that we did + enters: / + via: Building near me + lands_in: illegal_building + handled_by: inspectors + stages: + - open + - inspected + - owner_asked + - explained + - resolved + - fined + - dropped + done_when: + - resolved + - fined + - dropped + success: + - resolved + - dropped + max_steps: 2 + max_fields: 3 + stage_words: + open: open + inspected: inspected + owner_asked: the owner has been written to + explained: the owner has answered + resolved: resolved + fined: fined + dropped: nothing to pursue + also_moved_by: + - case_officers + - section_head +- id: appeal + who: anyone with an interest who will not accept a decision of ours + wants: the decision looked at again, by us and then by the board + enters: / + via: After a decision + lands_in: appeals + handled_by: case_officers + stages: + - open + - reconsidered + - changed_by_us + - before_the_board + - upheld + - overturned + - withdrawn + done_when: + - changed_by_us + - upheld + - overturned + - withdrawn + success: + - changed_by_us + - upheld + max_steps: 2 + max_fields: 5 + stage_words: + open: open + reconsidered: we are looking at it again + changed_by_us: we changed our own decision + before_the_board: with the appeals board + upheld: the board kept our decision + overturned: the board overturned us + withdrawn: withdrawn + also_moved_by: + - appeals_board + - section_head +- id: firm-approval + who: an architect or engineering firm that files for its clients + wants: to be on the list, and then to file without asking again + enters: / + via: Work as a firm + lands_in: firms + handled_by: case_officers + stages: + - open + - papers_missing + - checked + - approved + - declined + done_when: + - approved + - declined + success: + - approved + max_steps: 2 + max_fields: 6 + stage_words: + open: open + papers_missing: waiting on papers + checked: papers checked + approved: approved + declined: declined + also_moved_by: + - section_head +- id: permit-application + who: an approved firm filing on behalf of an owner + wants: a decision inside twelve weeks, and to know when the clock stops + enters: /approved_firms/permit-application + via: a decision inside twelve weeks, and to know when the clock stops + lands_in: applications + handled_by: case_officers + stages: + - open + - incomplete + - complete + - on_hearing + - recommended + - approved + - approved_with_conditions + - refused + - withdrawn + done_when: + - approved + - approved_with_conditions + - refused + - withdrawn + success: + - approved + - approved_with_conditions + max_steps: 1 + max_fields: 6 + stage_words: + open: open + incomplete: papers missing + complete: papers complete + on_hearing: out to the neighbours and the agencies + recommended: recommendation written + approved: approved + approved_with_conditions: approved on conditions + refused: refused + withdrawn: withdrawn + enters_as: approved_firms + also_moved_by: + - section_head +- id: log-counter-enquiry + who: whoever is on the counter with a queue and a caller on the line + wants: the question written down and sent to whoever has the case + enters: /front_desk/log-counter-enquiry + via: the question written down and sent to whoever has the case + lands_in: enquiries + handled_by: front_desk + stages: + - open + - in_hand + - answered + done_when: + - answered + success: + - answered + max_steps: 1 + max_fields: 3 + stage_words: + open: open + in_hand: in hand + answered: answered + enters_as: front_desk + also_moved_by: + - case_officers +- id: request-hearing + who: a case officer sending a case out to the authority that must see it + wants: an answer by the deadline, or a record that none came + enters: /case_officers/request-hearing + via: an answer by the deadline, or a record that none came + lands_in: hearings + handled_by: case_officers + stages: + - open + - answered + - no_answer + - cancelled + done_when: + - answered + - no_answer + - cancelled + success: + - answered + max_steps: 1 + max_fields: 4 + stage_words: + open: open + answered: answered + no_answer: the deadline passed with no answer + cancelled: cancelled + enters_as: case_officers + also_moved_by: + - agencies +- id: hearing-answer + who: a road, fire, heritage or county officer who has been asked about a case + wants: their answer on the file, in their own words + enters: /agencies/hearing-answer + via: their answer on the file, in their own words + lands_in: hearing_answers + handled_by: case_officers + stages: + - open + - read + - followed + - set_aside + done_when: + - followed + - set_aside + success: + - followed + max_steps: 1 + max_fields: 4 + stage_words: + open: open + read: read by the case officer + followed: followed in the decision + set_aside: set aside with reasons + enters_as: agencies +- id: inspection-finding + who: an inspector on a scaffold with gloves on and the wind blowing + wants: what they found logged before they climb down + enters: /inspectors/inspection-finding + via: what they found logged before they climb down + lands_in: inspections + handled_by: inspectors + stages: + - open + - as_approved + - deviation + - put_right + - escalated + done_when: + - as_approved + - put_right + - escalated + success: + - as_approved + - put_right + max_steps: 1 + max_fields: 3 + stage_words: + open: open + as_approved: built as approved + deviation: built differently + put_right: put right + escalated: handed to a case officer + enters_as: inspectors + also_moved_by: + - case_officers + - section_head +personas: +- id: garage-owner + need: pre-application-meeting + text: We want to put a double garage where the old shed is. Before I pay an architect I'd like to know whether you'll even allow it, because the neighbour says it's too close to the road. +- id: shop-to-flats + need: pre-application-meeting + text: I own the old grocery on Torget and want to make four flats out of it. There are a lot of questions - parking, fire, the facade is listed. Can we sit down with someone? +- id: firm-files-extension + need: permit-application + text: We are the responsible applicant for an extension at Bjorkeveien 14. Drawings, site plan and the neighbour notices are all ready. We file maybe forty of these a year. +- id: owner-small-window + need: permit-application + text: I want to put a dormer window in my roof. The man at the counter said I have to apply even though it's small. +- id: missing-drawings + need: permit-application + text: You wrote that our section drawing is missing and the case is on hold. I've got it here now, where do I send it so the clock starts again? +- id: too-close-to-boundary + need: exemption-request + text: The garage ends up one and a half metres from the boundary and the plan says four. We are asking you to allow it anyway - the ground falls away steeply everywhere else on the plot. +- id: neighbour-view + need: objection + text: I got a notice about the extension at number 14. It takes the afternoon sun off my entire terrace and I want that on the record before you decide anything. +- id: neighbour-parking + need: objection + text: The flats they want to build in the old grocery have four parking places for four flats and everyone here already parks on the street. I object. +- id: road-authority + need: hearing-answer + text: 'Regarding your case 2026/418: the access onto the county road is within the sight line and we cannot accept it as drawn. Our formal reply is attached.' +- id: fire-service + need: hearing-answer + text: We have looked at the conversion on Torget. We have no objection provided the stairwell is upgraded. Reference your case 2026/501. +- id: refused-applicant + need: appeal + text: You refused our exemption on the ninth. We don't accept the reasoning - you've allowed the same thing twice in the same street. We're appealing. +- id: neighbour-appeals + need: appeal + text: You approved the extension next door even though I objected. I'm appealing the decision. What do I need to send? +- id: board-member + need: appeal + text: I sit on the appeals board. I need the case, our own decision, and what the neighbours wrote, before Tuesday. +- id: inspector-on-roof + need: inspection-finding + text: I'm up on the scaffold at Bjorkeveien. The fire wall isn't built to the drawing at all. I've got gloves on and it's blowing. I want this logged before I climb down. +- id: inspector-all-good + need: inspection-finding + text: Been out at Torget. Everything is as approved. Nothing to report but I have to record that I was there. +- id: firm-wants-certificate + need: completion-request + text: The work at Bjorkeveien 14 is finished and inspected. We're asking for the completion certificate so the owners can get their mortgage released. +- id: wants-to-move-in + need: completion-request + text: The house is done apart from the outside steps, which we can't pour until spring. The family has sold their flat. Can we get a temporary permission to move in? +- id: something-behind-fence + need: illegal-building-report + text: There's a large structure going up behind the fence at Solbakken 7. Nobody has had a notice about it and it's been going on for two weeks. +- id: owner-explains + need: illegal-building-report + text: I got your letter about the terrace. I genuinely did not know it needed an application, it's been there since we moved in. What happens now? +- id: new-firm + need: firm-approval + text: We are a three-person architecture firm that has just started. We want to be approved so we can file applications for our clients in your municipality. +- id: firm-insurance-lapsed + need: firm-approval + text: You wrote that our liability insurance certificate has expired. We have renewed it, here it is. +- id: counter-phone-call + need: log-counter-enquiry + text: A woman rang about the case behind her house. Wants to know where it stands. I'm at the counter and there's a queue - I need to write it down and send it to whoever has that case. +- id: where-is-my-case + need: case-status-enquiry + text: I sent in my application five weeks ago and I've heard nothing. Is anyone looking at it? Is it in the six weeks with the neighbours or is it waiting on me? diff --git a/runs/permits-doors-2026-09-25/questions/after-a-decision/index.yaml b/runs/permits-doors-2026-09-25/questions/after-a-decision/index.yaml new file mode 100644 index 0000000..16260c1 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/after-a-decision/index.yaml @@ -0,0 +1,43 @@ +name: What do you need? +description: For someone who has had a decision from us and does not accept it. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: the decision looked at again, by us and then by the board + description: For anyone with an interest who will not accept a decision of ours. + action: /received/appeal + consequence: + - Send + record_as: appeals + features: + - name: What you need + description: A decision from us less than three weeks old, and its case number. + icon: lucide:key + - name: What happens next + description: It is open, then we are looking at it again, then with the appeals board, and ends we changed our own decision, the board kept our decision, the board overturned us or withdrawn. + icon: lucide:route + - name: Who reads it + description: Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: email + label: Email + type: email + - name: case_number + label: Case number + type: text + - name: property + label: Property + type: text + - name: what_you_disagree_with + label: What you disagree with + type: textarea + - name: your_interest + label: Your interest + type: select + options: + - I applied + - I am a neighbour + - Other diff --git a/runs/permits-doors-2026-09-25/questions/agencies/_section.yaml b/runs/permits-doors-2026-09-25/questions/agencies/_section.yaml new file mode 100644 index 0000000..71cfb91 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/agencies/_section.yaml @@ -0,0 +1 @@ +qualifies: agencies diff --git a/runs/permits-doors-2026-09-25/questions/agencies/hearing-answer-sent.yaml b/runs/permits-doors-2026-09-25/questions/agencies/hearing-answer-sent.yaml new file mode 100644 index 0000000..8bc747e --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/agencies/hearing-answer-sent.yaml @@ -0,0 +1,10 @@ +name: What happens now? +description: It has reached our case officers. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: Back + description: '' + action: /agencies + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/agencies/hearing-answer.yaml b/runs/permits-doors-2026-09-25/questions/agencies/hearing-answer.yaml new file mode 100644 index 0000000..23c7b7e --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/agencies/hearing-answer.yaml @@ -0,0 +1,46 @@ +followup: false +name: Hearing answer? +description: '' +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: their answer on the file, in their own words + description: For a road, fire, heritage or county officer who has been asked about a case. + action: /agencies/hearing-answer-sent + consequence: + - Send + record_as: hearing_answers + features: + - name: What you need + description: The hearing letter we sent you, which has the case number on it. + icon: lucide:key + - name: What happens next + description: It is open, then read by the case officer, and ends followed in the decision or set aside with reasons. + icon: lucide:route + - name: Who reads it + description: Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: case_number + label: Case number + type: text + - name: which_authority + label: Which authority + type: select + options: + - Road authority + - Fire service + - Heritage office + - The county + - name: our_answer + label: Our answer + type: select + options: + - No objection + - Objection + - Conditions required + - name: what_we_say + label: What we say + type: textarea diff --git a/runs/permits-doors-2026-09-25/questions/agencies/index.yaml b/runs/permits-doors-2026-09-25/questions/agencies/index.yaml new file mode 100644 index 0000000..485074a --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/agencies/index.yaml @@ -0,0 +1,78 @@ +name: What needs doing? +description: Everything hearing bodies looks after. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Exemptions + description: Sent in by someone whose plans break a rule in the zoning map. + action: /agencies + consequence: + - Confirm + features: + - name: Exemptions + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: exemptions + requires_group: agencies + transitions: + - from: county_asked + to: county_answered + label: The county has answered +- name: Hearings + description: Sent in by a case officer sending a case out to the authority that must see it. + action: /agencies + consequence: + - Confirm + features: + - name: Hearings + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: hearings + requires_group: agencies + transitions: + - from: open + to: answered + label: Answered +- name: their answer on the file, in their own words + description: For a road, fire, heritage or county officer who has been asked about a case. + action: /agencies/hearing-answer + consequence: + - Open +- name: Invite someone into Hearing bodies + description: They get an account, a place in Hearing bodies, and a one-time link to set their own password or passkey. + action: /agencies + consequence: + - Invite + invite: + group: agencies + features: + - name: Who + 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: Invitations sent + description: Each invite with the link it made. Mark it done when the person is in. + action: /agencies + 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: agencies + transitions: + - from: open + to: done + label: Is in diff --git a/runs/permits-doors-2026-09-25/questions/appeals_board/_section.yaml b/runs/permits-doors-2026-09-25/questions/appeals_board/_section.yaml new file mode 100644 index 0000000..a23502c --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/appeals_board/_section.yaml @@ -0,0 +1 @@ +qualifies: appeals_board diff --git a/runs/permits-doors-2026-09-25/questions/appeals_board/index.yaml b/runs/permits-doors-2026-09-25/questions/appeals_board/index.yaml new file mode 100644 index 0000000..fb84700 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/appeals_board/index.yaml @@ -0,0 +1,59 @@ +name: What needs doing? +description: Everything appeals board looks after. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Appeals + description: Sent in by anyone with an interest who will not accept a decision of ours. + action: /appeals_board + consequence: + - Confirm + features: + - name: Appeals + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: appeals + requires_group: appeals_board + transitions: + - from: before_the_board + to: overturned + label: The board overturned us + - from: before_the_board + to: upheld + label: The board kept our decision +- name: Invite someone into Appeals board + description: They get an account, a place in Appeals board, and a one-time link to set their own password or passkey. + action: /appeals_board + consequence: + - Invite + invite: + group: appeals_board + features: + - name: Who + 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: Invitations sent + description: Each invite with the link it made. Mark it done when the person is in. + action: /appeals_board + 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: appeals_board + transitions: + - from: open + to: done + label: Is in diff --git a/runs/permits-doors-2026-09-25/questions/approved_firms/_section.yaml b/runs/permits-doors-2026-09-25/questions/approved_firms/_section.yaml new file mode 100644 index 0000000..85f1f10 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/approved_firms/_section.yaml @@ -0,0 +1 @@ +qualifies: approved_firms diff --git a/runs/permits-doors-2026-09-25/questions/approved_firms/index.yaml b/runs/permits-doors-2026-09-25/questions/approved_firms/index.yaml new file mode 100644 index 0000000..bc823e4 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/approved_firms/index.yaml @@ -0,0 +1,61 @@ +name: What needs doing? +description: Everything approved firms looks after. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Objections + description: Sent in by a neighbour who got a notice about what is planned next door. + action: /approved_firms + consequence: + - Confirm + features: + - name: Objections + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: objections + requires_group: approved_firms + transitions: + - from: registered + to: answered_by_applicant + label: The applicant has answered +- name: a decision inside twelve weeks, and to know when the clock stops + description: For an approved firm filing on behalf of an owner. + action: /approved_firms/permit-application + consequence: + - Open +- name: Invite someone into Approved firms + description: They get an account, a place in Approved firms, and a one-time link to set their own password or passkey. + action: /approved_firms + consequence: + - Invite + invite: + group: approved_firms + features: + - name: Who + 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: Invitations sent + description: Each invite with the link it made. Mark it done when the person is in. + action: /approved_firms + 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: approved_firms + transitions: + - from: open + to: done + label: Is in diff --git a/runs/permits-doors-2026-09-25/questions/approved_firms/permit-application-sent.yaml b/runs/permits-doors-2026-09-25/questions/approved_firms/permit-application-sent.yaml new file mode 100644 index 0000000..6914aa3 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/approved_firms/permit-application-sent.yaml @@ -0,0 +1,15 @@ +name: What happens now? +description: It has reached our case officers. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: See all applications + description: '' + action: /status/applications + consequence: + - Open +- name: Back + description: '' + action: /approved_firms + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/approved_firms/permit-application.yaml b/runs/permits-doors-2026-09-25/questions/approved_firms/permit-application.yaml new file mode 100644 index 0000000..50d5e38 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/approved_firms/permit-application.yaml @@ -0,0 +1,48 @@ +followup: false +name: Permit application? +description: '' +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: a decision inside twelve weeks, and to know when the clock stops + description: For an approved firm filing on behalf of an owner. + action: /approved_firms/permit-application-sent + consequence: + - Send + record_as: applications + features: + - name: What happens next + description: It is open, then papers missing, then papers complete, then out to the neighbours and the agencies, then recommendation written, and ends approved, approved on conditions, refused or withdrawn. + icon: lucide:route + - name: Who reads it + description: Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: email + label: Email + type: email + - name: property_address + label: Property address + type: text + - name: property_number + label: Property number + type: text + - name: what_is_planned + label: What is planned + type: textarea + - name: neighbours_notified + label: Neighbours notified + type: select + options: + - Yes + - Not yet + - name: site + label: Site + type: location + optional: true + - name: drawings_url + label: Drawings url + type: text + optional: true diff --git a/runs/permits-doors-2026-09-25/questions/building-near-me/index.yaml b/runs/permits-doors-2026-09-25/questions/building-near-me/index.yaml new file mode 100644 index 0000000..caf6e50 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/building-near-me/index.yaml @@ -0,0 +1,88 @@ +name: What do you need? +description: For someone who lives next to what is being built. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: what they think on the record, and answered in the decision + description: For a neighbour who got a notice about what is planned next door. + action: /received/objection + consequence: + - Send + record_as: objections + features: + - name: What you need + description: The notice that came in the post, which has the case number on it. + icon: lucide:key + - name: What happens next + description: It is open, then on the case file, then the applicant has answered, and ends answered in the decision or withdrawn. + icon: lucide:route + - name: Who reads it + description: Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: email + label: Email + type: email + - name: case_number + label: Case number + type: text + - name: your_property + label: Your property + type: text + - name: your_objection + label: Your objection + type: textarea +- name: to be told where it actually stands + description: For someone waiting on a case and getting nothing back. + action: /received/case-status-enquiry + consequence: + - Send + record_as: enquiries + features: + - name: What happens next + description: It is open, then in hand, and ends answered. + icon: lucide:route + - name: Who reads it + description: Front desk. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: email + label: Email + type: email + - name: case_number_or_address + label: Case number or address + type: text + - name: what_you_want_to_know + label: What you want to know + type: textarea +- name: us to go and look, and to hear that we did + description: For someone who can see building going up that nobody was told about. + action: /received/illegal-building-report + consequence: + - Send + record_as: illegal_building + features: + - name: What happens next + description: It is open, then inspected, then the owner has been written to, then the owner has answered, and ends resolved, fined or nothing to pursue. + icon: lucide:route + - name: Who reads it + description: Inspectors. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: email + label: Email + type: email + - name: address + label: Address + type: text + - name: what_you_saw + label: What you saw + type: textarea + - name: where + label: Where + type: location + optional: true diff --git a/runs/permits-doors-2026-09-25/questions/case_officers/_section.yaml b/runs/permits-doors-2026-09-25/questions/case_officers/_section.yaml new file mode 100644 index 0000000..0eb3949 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/case_officers/_section.yaml @@ -0,0 +1 @@ +qualifies: case_officers diff --git a/runs/permits-doors-2026-09-25/questions/case_officers/index.yaml b/runs/permits-doors-2026-09-25/questions/case_officers/index.yaml new file mode 100644 index 0000000..d954b6c --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/case_officers/index.yaml @@ -0,0 +1,401 @@ +name: What needs doing? +description: Everything case officers looks after. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Appeals + description: Sent in by anyone with an interest who will not accept a decision of ours. + action: /case_officers + consequence: + - Confirm + features: + - name: Appeals + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: appeals + requires_group: case_officers + transitions: + - from: open + to: reconsidered + label: We are looking at it again +- name: Applications + description: Sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner. + action: /case_officers + consequence: + - Confirm + features: + - name: Applications + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: applications + requires_group: case_officers + transitions: + - from: complete + to: on_hearing + label: Out to the neighbours and the agencies + - from: complete + to: incomplete + label: Papers missing + - from: incomplete + to: complete + label: Papers complete + - from: on_hearing + to: recommended + label: Recommendation written + - from: on_hearing + to: incomplete + label: Papers missing + - from: open + to: complete + label: Papers complete + - from: open + to: incomplete + label: Papers missing +- name: Completions + description: Sent in by an owner or firm whose building work is finished. + action: /case_officers + consequence: + - Confirm + features: + - name: Completions + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: completions + requires_group: case_officers + transitions: + - from: open + to: checked + label: Checked against the inspections +- name: Enquiries + description: Sent in by someone waiting on a case and getting nothing back or whoever is on the counter with a queue and a caller on the line. + action: /case_officers + consequence: + - Confirm + features: + - name: Enquiries + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: enquiries + requires_group: case_officers + transitions: + - from: open + to: in_hand + label: In hand +- name: Exemptions + description: Sent in by someone whose plans break a rule in the zoning map. + action: /case_officers + consequence: + - Confirm + features: + - name: Exemptions + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: exemptions + requires_group: case_officers + transitions: + - from: county_answered + to: recommended + label: Recommended + - from: open + to: county_asked + label: With the county +- name: Firms + description: Sent in by an architect or engineering firm that files for its clients. + action: /case_officers + consequence: + - Confirm + features: + - name: Firms + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: firms + requires_group: case_officers + transitions: + - from: open + to: papers_missing + label: Waiting on papers + - from: open + to: checked + label: Papers checked + - from: papers_missing + to: checked + label: Papers checked +- name: Hearing answers + description: Sent in by a road, fire, heritage or county officer who has been asked about a case. + action: /case_officers + consequence: + - Confirm + features: + - name: Hearing answers + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: hearing_answers + requires_group: case_officers + transitions: + - from: open + to: read + label: Read by the case officer + - from: open + to: set_aside + label: Set aside with reasons + - from: read + to: followed + label: Followed in the decision + - from: read + to: set_aside + label: Set aside with reasons +- name: Hearings + description: Sent in by a case officer sending a case out to the authority that must see it. + action: /case_officers + consequence: + - Confirm + features: + - name: Hearings + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: hearings + requires_group: case_officers + transitions: + - from: open + to: no_answer + label: The deadline passed with no answer + - from: open + to: cancelled + label: Cancelled +- name: Illegal building + description: Sent in by someone who can see building going up that nobody was told about. + action: /case_officers + consequence: + - Confirm + features: + - name: Illegal building + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: illegal_building + requires_group: case_officers + transitions: + - from: inspected + to: owner_asked + label: The owner has been written to + - from: owner_asked + to: explained + label: The owner has answered +- name: Inspections + description: Sent in by an inspector on a scaffold with gloves on and the wind blowing. + action: /case_officers + consequence: + - Confirm + features: + - name: Inspections + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: inspections + requires_group: case_officers + transitions: + - from: deviation + to: escalated + label: Handed to a case officer + - from: open + to: escalated + label: Handed to a case officer +- name: Meetings + description: Sent in by someone with an idea for a building and no drawings yet. + action: /case_officers + consequence: + - Confirm + features: + - name: Meetings + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: meetings + requires_group: case_officers + transitions: + - from: met + to: advised + label: Written advice sent + - from: open + to: scheduled + label: Scheduled + - from: scheduled + to: met + label: We have met +- name: Objections + description: Sent in by a neighbour who got a notice about what is planned next door. + action: /case_officers + consequence: + - Confirm + features: + - name: Objections + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: objections + requires_group: case_officers + transitions: + - from: answered_by_applicant + to: addressed + label: Answered in the decision + - from: open + to: registered + label: On the case file + - from: registered + to: answered_by_applicant + label: The applicant has answered +- name: an answer by the deadline, or a record that none came + description: For a case officer sending a case out to the authority that must see it. + action: /case_officers/request-hearing + consequence: + - Open +- name: Invite someone into Hearing bodies + description: They get an account, a place in Hearing bodies, and a one-time link to set their own password or passkey. + action: /case_officers + consequence: + - Invite + invite: + group: agencies + features: + - name: Who + 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: Invite someone into Appeals board + description: They get an account, a place in Appeals board, and a one-time link to set their own password or passkey. + action: /case_officers + consequence: + - Invite + invite: + group: appeals_board + features: + - name: Who + 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: Invite someone into Approved firms + description: They get an account, a place in Approved firms, and a one-time link to set their own password or passkey. + action: /case_officers + consequence: + - Invite + invite: + group: approved_firms + features: + - name: Who + 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: Invite someone into Case officers + description: They get an account, a place in Case officers, and a one-time link to set their own password or passkey. + action: /case_officers + consequence: + - Invite + invite: + group: case_officers + features: + - name: Who + 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: Invite someone into Front desk + description: They get an account, a place in Front desk, and a one-time link to set their own password or passkey. + action: /case_officers + consequence: + - Invite + invite: + group: front_desk + features: + - name: Who + 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: Invite someone into Inspectors + description: They get an account, a place in Inspectors, and a one-time link to set their own password or passkey. + action: /case_officers + consequence: + - Invite + invite: + group: inspectors + features: + - name: Who + 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: Invite someone into Head of section + description: They get an account, a place in Head of section, and a one-time link to set their own password or passkey. + action: /case_officers + consequence: + - Invite + invite: + group: section_head + features: + - name: Who + 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: Invitations sent + description: Each invite with the link it made. Mark it done when the person is in. + action: /case_officers + 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: case_officers + transitions: + - from: open + to: done + label: Is in diff --git a/runs/permits-doors-2026-09-25/questions/case_officers/request-hearing-sent.yaml b/runs/permits-doors-2026-09-25/questions/case_officers/request-hearing-sent.yaml new file mode 100644 index 0000000..9a588a6 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/case_officers/request-hearing-sent.yaml @@ -0,0 +1,10 @@ +name: What happens now? +description: It has reached our case officers. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: Back + description: '' + action: /case_officers + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/case_officers/request-hearing.yaml b/runs/permits-doors-2026-09-25/questions/case_officers/request-hearing.yaml new file mode 100644 index 0000000..7bd9196 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/case_officers/request-hearing.yaml @@ -0,0 +1,43 @@ +followup: false +name: Request hearing? +description: '' +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: an answer by the deadline, or a record that none came + description: For a case officer sending a case out to the authority that must see it. + action: /case_officers/request-hearing-sent + consequence: + - Send + record_as: hearings + features: + - name: What happens next + description: It is open, and ends answered, the deadline passed with no answer or cancelled. + icon: lucide:route + - name: Who reads it + description: Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: case_number + label: Case number + type: text + - name: which_authority + label: Which authority + type: select + options: + - Road authority + - Fire service + - Heritage office + - The county + - name: what_we_ask + label: What we ask + type: textarea + - name: answer_by + label: Answer by + type: date + - name: site + label: Site + type: location + optional: true diff --git a/runs/permits-doors-2026-09-25/questions/decide/appeal.yaml b/runs/permits-doors-2026-09-25/questions/decide/appeal.yaml new file mode 100644 index 0000000..9b0f503 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/decide/appeal.yaml @@ -0,0 +1,9 @@ +name: What would you like to do? +description: '' +alternatives: +- name: Withdrawn + description: '' + self_transition: + bucket: appeals + to: withdrawn + label: Withdrawn diff --git a/runs/permits-doors-2026-09-25/questions/decide/exemption-request.yaml b/runs/permits-doors-2026-09-25/questions/decide/exemption-request.yaml new file mode 100644 index 0000000..647cfbc --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/decide/exemption-request.yaml @@ -0,0 +1,9 @@ +name: What would you like to do? +description: '' +alternatives: +- name: Withdrawn + description: '' + self_transition: + bucket: exemptions + to: withdrawn + label: Withdrawn diff --git a/runs/permits-doors-2026-09-25/questions/decide/firm-approval.yaml b/runs/permits-doors-2026-09-25/questions/decide/firm-approval.yaml new file mode 100644 index 0000000..c858427 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/decide/firm-approval.yaml @@ -0,0 +1,9 @@ +name: What would you like to do? +description: '' +alternatives: +- name: Checked + description: '' + self_transition: + bucket: firms + to: checked + label: Checked diff --git a/runs/permits-doors-2026-09-25/questions/decide/objection.yaml b/runs/permits-doors-2026-09-25/questions/decide/objection.yaml new file mode 100644 index 0000000..7ddb909 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/decide/objection.yaml @@ -0,0 +1,9 @@ +name: What would you like to do? +description: '' +alternatives: +- name: Withdrawn + description: '' + self_transition: + bucket: objections + to: withdrawn + label: Withdrawn diff --git a/runs/permits-doors-2026-09-25/questions/decide/permit-application.yaml b/runs/permits-doors-2026-09-25/questions/decide/permit-application.yaml new file mode 100644 index 0000000..b90eacf --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/decide/permit-application.yaml @@ -0,0 +1,15 @@ +name: What would you like to do? +description: '' +alternatives: +- name: Complete + description: '' + self_transition: + bucket: applications + to: complete + label: Complete +- name: Withdrawn + description: '' + self_transition: + bucket: applications + to: withdrawn + label: Withdrawn diff --git a/runs/permits-doors-2026-09-25/questions/decide/pre-application-meeting.yaml b/runs/permits-doors-2026-09-25/questions/decide/pre-application-meeting.yaml new file mode 100644 index 0000000..315bde5 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/decide/pre-application-meeting.yaml @@ -0,0 +1,9 @@ +name: What would you like to do? +description: '' +alternatives: +- name: Cancelled + description: '' + self_transition: + bucket: meetings + to: cancelled + label: Cancelled diff --git a/runs/permits-doors-2026-09-25/questions/decide/small-works-application.yaml b/runs/permits-doors-2026-09-25/questions/decide/small-works-application.yaml new file mode 100644 index 0000000..b90eacf --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/decide/small-works-application.yaml @@ -0,0 +1,15 @@ +name: What would you like to do? +description: '' +alternatives: +- name: Complete + description: '' + self_transition: + bucket: applications + to: complete + label: Complete +- name: Withdrawn + description: '' + self_transition: + bucket: applications + to: withdrawn + label: Withdrawn diff --git a/runs/permits-doors-2026-09-25/questions/front_desk/_section.yaml b/runs/permits-doors-2026-09-25/questions/front_desk/_section.yaml new file mode 100644 index 0000000..8b76bf9 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/front_desk/_section.yaml @@ -0,0 +1 @@ +qualifies: front_desk diff --git a/runs/permits-doors-2026-09-25/questions/front_desk/index.yaml b/runs/permits-doors-2026-09-25/questions/front_desk/index.yaml new file mode 100644 index 0000000..b36f594 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/front_desk/index.yaml @@ -0,0 +1,157 @@ +name: What needs doing? +description: Everything front desk looks after. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Appeals + description: Sent in by anyone with an interest who will not accept a decision of ours. + action: /front_desk + consequence: + - Confirm + features: + - name: Appeals + description: Each row is one case and the stage it has reached. Another desk moves these. + resource: + source: + kind: kv + bucket: appeals + requires_group: front_desk + transitions: [] +- name: Applications + description: Sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner. + action: /front_desk + consequence: + - Confirm + features: + - name: Applications + description: Each row is one case and the stage it has reached. Another desk moves these. + resource: + source: + kind: kv + bucket: applications + requires_group: front_desk + transitions: [] +- name: Enquiries + description: Sent in by someone waiting on a case and getting nothing back or whoever is on the counter with a queue and a caller on the line. + action: /front_desk + consequence: + - Confirm + features: + - name: Enquiries + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: enquiries + requires_group: front_desk + transitions: + - from: in_hand + to: answered + label: Answered + - from: open + to: in_hand + label: In hand +- name: Firms + description: Sent in by an architect or engineering firm that files for its clients. + action: /front_desk + consequence: + - Confirm + features: + - name: Firms + description: Each row is one case and the stage it has reached. Another desk moves these. + resource: + source: + kind: kv + bucket: firms + requires_group: front_desk + transitions: [] +- name: Hearing answers + description: Sent in by a road, fire, heritage or county officer who has been asked about a case. + action: /front_desk + consequence: + - Confirm + features: + - name: Hearing answers + description: Each row is one case and the stage it has reached. Another desk moves these. + resource: + source: + kind: kv + bucket: hearing_answers + requires_group: front_desk + transitions: [] +- name: Hearings + description: Sent in by a case officer sending a case out to the authority that must see it. + action: /front_desk + consequence: + - Confirm + features: + - name: Hearings + description: Each row is one case and the stage it has reached. Another desk moves these. + resource: + source: + kind: kv + bucket: hearings + requires_group: front_desk + transitions: [] +- name: Meetings + description: Sent in by someone with an idea for a building and no drawings yet. + action: /front_desk + consequence: + - Confirm + features: + - name: Meetings + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: meetings + requires_group: front_desk + transitions: + - from: met + to: cancelled + label: Cancelled + - from: open + to: cancelled + label: Cancelled + - from: scheduled + to: cancelled + label: Cancelled +- name: the question written down and sent to whoever has the case + description: For whoever is on the counter with a queue and a caller on the line. + action: /front_desk/log-counter-enquiry + consequence: + - Open +- name: Invite someone into Front desk + description: They get an account, a place in Front desk, and a one-time link to set their own password or passkey. + action: /front_desk + consequence: + - Invite + invite: + group: front_desk + features: + - name: Who + 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: Invitations sent + description: Each invite with the link it made. Mark it done when the person is in. + action: /front_desk + 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: front_desk + transitions: + - from: open + to: done + label: Is in diff --git a/runs/permits-doors-2026-09-25/questions/front_desk/log-counter-enquiry-sent.yaml b/runs/permits-doors-2026-09-25/questions/front_desk/log-counter-enquiry-sent.yaml new file mode 100644 index 0000000..26a8dba --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/front_desk/log-counter-enquiry-sent.yaml @@ -0,0 +1,10 @@ +name: What happens now? +description: It has reached our front desk. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: Back + description: '' + action: /front_desk + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/front_desk/log-counter-enquiry.yaml b/runs/permits-doors-2026-09-25/questions/front_desk/log-counter-enquiry.yaml new file mode 100644 index 0000000..fdab619 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/front_desk/log-counter-enquiry.yaml @@ -0,0 +1,31 @@ +followup: false +name: Log counter enquiry? +description: '' +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: the question written down and sent to whoever has the case + description: For whoever is on the counter with a queue and a caller on the line. + action: /front_desk/log-counter-enquiry-sent + consequence: + - Send + record_as: enquiries + features: + - name: What happens next + description: It is open, then in hand, and ends answered. + icon: lucide:route + - name: Who reads it + description: Front desk. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: email + label: Email + type: email + - name: case_number_or_address + label: Case number or address + type: text + - name: what_you_want_to_know + label: What you want to know + type: textarea diff --git a/runs/permits-doors-2026-09-25/questions/index.yaml b/runs/permits-doors-2026-09-25/questions/index.yaml new file mode 100644 index 0000000..073cbd8 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/index.yaml @@ -0,0 +1,66 @@ +name: What brings you here? +description: | + The building authority for twenty-one thousand people. Anything built, demolished, divided or changed in use is decided here: the drawings are checked against the zoning map, the neighbours and the other authorities have their say, and then the head of section signs. The same office inspects what is actually built, signs off finished work, and deals with building nobody applied for. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: What we do + description: '' + features: + - name: Permission to build it, and to know where the case stands + description: | + Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. + - name: What they think on the record, and answered in the decision + description: | + If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision. +- name: Have a look around + description: '' + features: + - name: See all appeals + description: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) + icon: lucide:list + - name: See all applications + description: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) + icon: lucide:list + - name: See all completions + description: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) + icon: lucide:list + - name: See all exemptions + description: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) + icon: lucide:list + - name: See all objections + description: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections) + icon: lucide:list +- name: Want to build + description: For an owner or a firm with something to build, divide or change. + action: /want-to-build + consequence: + - Continue + features: + - name: '' + description: To hear what we will allow before paying an architect, permission to build it, and to know where the case stands, to be allowed it anyway, with reasons on the record, the certificate that lets the building be used. +- name: After a decision + description: For someone who has had a decision from us and does not accept it. + action: /after-a-decision + consequence: + - Continue + features: + - name: '' + description: The decision looked at again, by us and then by the board. +- name: Work as a firm + description: For an architect or engineering firm that files for its clients. + action: /work-as-a-firm + consequence: + - Continue + features: + - name: '' + description: To be on the list, and then to file without asking again. +- name: Building near me + description: For someone who lives next to what is being built. + action: /building-near-me + consequence: + - Continue + features: + - name: '' + description: What they think on the record, and answered in the decision, to be told where it actually stands, us to go and look, and to hear that we did. diff --git a/runs/permits-doors-2026-09-25/questions/inspectors/_section.yaml b/runs/permits-doors-2026-09-25/questions/inspectors/_section.yaml new file mode 100644 index 0000000..d41d53f --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/inspectors/_section.yaml @@ -0,0 +1 @@ +qualifies: inspectors diff --git a/runs/permits-doors-2026-09-25/questions/inspectors/index.yaml b/runs/permits-doors-2026-09-25/questions/inspectors/index.yaml new file mode 100644 index 0000000..f6a397a --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/inspectors/index.yaml @@ -0,0 +1,118 @@ +name: What needs doing? +description: Everything inspectors looks after. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Applications + description: Sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner. + action: /inspectors + consequence: + - Confirm + features: + - name: Applications + description: Each row is one case and the stage it has reached. Another desk moves these. + resource: + source: + kind: kv + bucket: applications + requires_group: inspectors + transitions: [] +- name: Completions + description: Sent in by an owner or firm whose building work is finished. + action: /inspectors + consequence: + - Confirm + features: + - name: Completions + description: Each row is one case and the stage it has reached. Another desk moves these. + resource: + source: + kind: kv + bucket: completions + requires_group: inspectors + transitions: [] +- name: Illegal building + description: Sent in by someone who can see building going up that nobody was told about. + action: /inspectors + consequence: + - Confirm + features: + - name: Illegal building + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: illegal_building + requires_group: inspectors + transitions: + - from: explained + to: resolved + label: Resolved + - from: explained + to: dropped + label: Nothing to pursue + - from: open + to: inspected + label: Inspected +- name: Inspections + description: Sent in by an inspector on a scaffold with gloves on and the wind blowing. + action: /inspectors + consequence: + - Confirm + features: + - name: Inspections + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: inspections + requires_group: inspectors + transitions: + - from: deviation + to: as_approved + label: Built as approved + - from: deviation + to: put_right + label: Put right + - from: open + to: deviation + label: Built differently +- name: what they found logged before they climb down + description: For an inspector on a scaffold with gloves on and the wind blowing. + action: /inspectors/inspection-finding + consequence: + - Open +- name: Invite someone into Inspectors + description: They get an account, a place in Inspectors, and a one-time link to set their own password or passkey. + action: /inspectors + consequence: + - Invite + invite: + group: inspectors + features: + - name: Who + 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: Invitations sent + description: Each invite with the link it made. Mark it done when the person is in. + action: /inspectors + 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: inspectors + transitions: + - from: open + to: done + label: Is in diff --git a/runs/permits-doors-2026-09-25/questions/inspectors/inspection-finding-sent.yaml b/runs/permits-doors-2026-09-25/questions/inspectors/inspection-finding-sent.yaml new file mode 100644 index 0000000..ac8e8b2 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/inspectors/inspection-finding-sent.yaml @@ -0,0 +1,10 @@ +name: What happens now? +description: It has reached our inspectors. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: Back + description: '' + action: /inspectors + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/inspectors/inspection-finding.yaml b/runs/permits-doors-2026-09-25/questions/inspectors/inspection-finding.yaml new file mode 100644 index 0000000..18b5d32 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/inspectors/inspection-finding.yaml @@ -0,0 +1,35 @@ +followup: false +name: Inspection finding? +description: '' +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: what they found logged before they climb down + description: For an inspector on a scaffold with gloves on and the wind blowing. + action: /inspectors/inspection-finding-sent + consequence: + - Send + record_as: inspections + features: + - name: What happens next + description: It is open, then built differently, and ends built as approved, put right or handed to a case officer. + icon: lucide:route + - name: Who reads it + description: Inspectors. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: case_number + label: Case number + type: text + - name: site_address + label: Site address + type: text + - name: what_i_found + label: What i found + type: textarea + - name: where + label: Where + type: location + optional: true diff --git a/runs/permits-doors-2026-09-25/questions/received/appeal.yaml b/runs/permits-doors-2026-09-25/questions/received/appeal.yaml new file mode 100644 index 0000000..6148787 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/received/appeal.yaml @@ -0,0 +1,15 @@ +name: What happens now? +description: It has reached our case officers. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: See all appeals + description: '' + action: /status/appeals + consequence: + - Open +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/received/case-status-enquiry.yaml b/runs/permits-doors-2026-09-25/questions/received/case-status-enquiry.yaml new file mode 100644 index 0000000..7150e83 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/received/case-status-enquiry.yaml @@ -0,0 +1,10 @@ +name: What happens now? +description: It has reached our front desk. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/received/completion-request.yaml b/runs/permits-doors-2026-09-25/questions/received/completion-request.yaml new file mode 100644 index 0000000..93e37f8 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/received/completion-request.yaml @@ -0,0 +1,15 @@ +name: What happens now? +description: It has reached our case officers. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: See all completions + description: '' + action: /status/completions + consequence: + - Open +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/received/exemption-request.yaml b/runs/permits-doors-2026-09-25/questions/received/exemption-request.yaml new file mode 100644 index 0000000..04c3fe3 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/received/exemption-request.yaml @@ -0,0 +1,15 @@ +name: What happens now? +description: It has reached our case officers. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: See all exemptions + description: '' + action: /status/exemptions + consequence: + - Open +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/received/firm-approval.yaml b/runs/permits-doors-2026-09-25/questions/received/firm-approval.yaml new file mode 100644 index 0000000..71486fa --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/received/firm-approval.yaml @@ -0,0 +1,10 @@ +name: What happens now? +description: It has reached our case officers. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/received/illegal-building-report.yaml b/runs/permits-doors-2026-09-25/questions/received/illegal-building-report.yaml new file mode 100644 index 0000000..1dad0c2 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/received/illegal-building-report.yaml @@ -0,0 +1,10 @@ +name: What happens now? +description: It has reached our inspectors. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/received/objection.yaml b/runs/permits-doors-2026-09-25/questions/received/objection.yaml new file mode 100644 index 0000000..c75f760 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/received/objection.yaml @@ -0,0 +1,15 @@ +name: What happens now? +description: It has reached our case officers. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: See all objections + description: '' + action: /status/objections + consequence: + - Open +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/received/pre-application-meeting.yaml b/runs/permits-doors-2026-09-25/questions/received/pre-application-meeting.yaml new file mode 100644 index 0000000..71486fa --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/received/pre-application-meeting.yaml @@ -0,0 +1,10 @@ +name: What happens now? +description: It has reached our case officers. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/received/small-works-application.yaml b/runs/permits-doors-2026-09-25/questions/received/small-works-application.yaml new file mode 100644 index 0000000..6e621eb --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/received/small-works-application.yaml @@ -0,0 +1,15 @@ +name: What happens now? +description: It has reached our case officers. +alternatives: +- name: We read it and come back to you + description: Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example. +- name: See all applications + description: '' + action: /status/applications + consequence: + - Open +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/section_head/_section.yaml b/runs/permits-doors-2026-09-25/questions/section_head/_section.yaml new file mode 100644 index 0000000..569137f --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/section_head/_section.yaml @@ -0,0 +1 @@ +qualifies: section_head diff --git a/runs/permits-doors-2026-09-25/questions/section_head/index.yaml b/runs/permits-doors-2026-09-25/questions/section_head/index.yaml new file mode 100644 index 0000000..deed9ce --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/section_head/index.yaml @@ -0,0 +1,350 @@ +name: What needs doing? +description: Everything head of section looks after. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Appeals + description: Sent in by anyone with an interest who will not accept a decision of ours. + action: /section_head + consequence: + - Confirm + features: + - name: Appeals + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: appeals + requires_group: section_head + transitions: + - from: reconsidered + to: before_the_board + label: With the appeals board + - from: reconsidered + to: changed_by_us + label: We changed our own decision +- name: Applications + description: Sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner. + action: /section_head + consequence: + - Confirm + features: + - name: Applications + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: applications + requires_group: section_head + transitions: + - from: complete + to: refused + label: Refused + - from: on_hearing + to: refused + label: Refused + - from: recommended + to: approved + label: Approved + - from: recommended + to: approved_with_conditions + label: Approved on conditions + - from: recommended + to: refused + label: Refused +- name: Completions + description: Sent in by an owner or firm whose building work is finished. + action: /section_head + consequence: + - Confirm + features: + - name: Completions + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: completions + requires_group: section_head + transitions: + - from: checked + to: temporary_permission + label: Temporary permission to use + - from: checked + to: certificate_issued + label: Certificate issued + - from: checked + to: refused + label: Refused + - from: open + to: refused + label: Refused + - from: temporary_permission + to: certificate_issued + label: Certificate issued +- name: Exemptions + description: Sent in by someone whose plans break a rule in the zoning map. + action: /section_head + consequence: + - Confirm + features: + - name: Exemptions + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: exemptions + requires_group: section_head + transitions: + - from: county_answered + to: denied + label: Denied + - from: county_asked + to: denied + label: Denied + - from: open + to: denied + label: Denied + - from: recommended + to: granted + label: Granted + - from: recommended + to: denied + label: Denied +- name: Firms + description: Sent in by an architect or engineering firm that files for its clients. + action: /section_head + consequence: + - Confirm + features: + - name: Firms + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: firms + requires_group: section_head + transitions: + - from: checked + to: approved + label: Approved + - from: checked + to: declined + label: Declined + - from: open + to: declined + label: Declined + - from: papers_missing + to: declined + label: Declined +- name: Hearing answers + description: Sent in by a road, fire, heritage or county officer who has been asked about a case. + action: /section_head + consequence: + - Confirm + features: + - name: Hearing answers + description: Each row is one case and the stage it has reached. Another desk moves these. + resource: + source: + kind: kv + bucket: hearing_answers + requires_group: section_head + transitions: [] +- name: Hearings + description: Sent in by a case officer sending a case out to the authority that must see it. + action: /section_head + consequence: + - Confirm + features: + - name: Hearings + description: Each row is one case and the stage it has reached. Another desk moves these. + resource: + source: + kind: kv + bucket: hearings + requires_group: section_head + transitions: [] +- name: Illegal building + description: Sent in by someone who can see building going up that nobody was told about. + action: /section_head + consequence: + - Confirm + features: + - name: Illegal building + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: illegal_building + requires_group: section_head + transitions: + - from: inspected + to: fined + label: Fined + - from: open + to: fined + label: Fined +- name: Inspections + description: Sent in by an inspector on a scaffold with gloves on and the wind blowing. + action: /section_head + consequence: + - Confirm + features: + - name: Inspections + description: Each row is one case. The buttons record what you have just done with it. + resource: + source: + kind: kv + bucket: inspections + requires_group: section_head + transitions: + - from: deviation + to: escalated + label: Handed to a case officer + - from: open + to: escalated + label: Handed to a case officer +- name: Objections + description: Sent in by a neighbour who got a notice about what is planned next door. + action: /section_head + consequence: + - Confirm + features: + - name: Objections + description: Each row is one case and the stage it has reached. Another desk moves these. + resource: + source: + kind: kv + bucket: objections + requires_group: section_head + transitions: [] +- name: Invite someone into Hearing bodies + description: They get an account, a place in Hearing bodies, and a one-time link to set their own password or passkey. + action: /section_head + consequence: + - Invite + invite: + group: agencies + features: + - name: Who + 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: Invite someone into Appeals board + description: They get an account, a place in Appeals board, and a one-time link to set their own password or passkey. + action: /section_head + consequence: + - Invite + invite: + group: appeals_board + features: + - name: Who + 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: Invite someone into Approved firms + description: They get an account, a place in Approved firms, and a one-time link to set their own password or passkey. + action: /section_head + consequence: + - Invite + invite: + group: approved_firms + features: + - name: Who + 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: Invite someone into Case officers + description: They get an account, a place in Case officers, and a one-time link to set their own password or passkey. + action: /section_head + consequence: + - Invite + invite: + group: case_officers + features: + - name: Who + 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: Invite someone into Front desk + description: They get an account, a place in Front desk, and a one-time link to set their own password or passkey. + action: /section_head + consequence: + - Invite + invite: + group: front_desk + features: + - name: Who + 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: Invite someone into Inspectors + description: They get an account, a place in Inspectors, and a one-time link to set their own password or passkey. + action: /section_head + consequence: + - Invite + invite: + group: inspectors + features: + - name: Who + 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: Invite someone into Head of section + description: They get an account, a place in Head of section, and a one-time link to set their own password or passkey. + action: /section_head + consequence: + - Invite + invite: + group: section_head + features: + - name: Who + 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: Invitations sent + description: Each invite with the link it made. Mark it done when the person is in. + action: /section_head + 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: section_head + transitions: + - from: open + to: done + label: Is in diff --git a/runs/permits-doors-2026-09-25/questions/status/appeals/index.yaml b/runs/permits-doors-2026-09-25/questions/status/appeals/index.yaml new file mode 100644 index 0000000..662ae18 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/status/appeals/index.yaml @@ -0,0 +1,22 @@ +name: What has been sent in about appeals? +description: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Appeals + description: '' + features: + - name: Appeals + 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: appeals + public: true + jq: '.[] | .responses |= {case_number: .case_number, property: .property, what_you_disagree_with: .what_you_disagree_with, your_interest: .your_interest}' +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/status/applications/index.yaml b/runs/permits-doors-2026-09-25/questions/status/applications/index.yaml new file mode 100644 index 0000000..3146555 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/status/applications/index.yaml @@ -0,0 +1,22 @@ +name: What has been sent in about applications? +description: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Applications + description: '' + features: + - name: Applications + 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: applications + public: true + jq: '.[] | .responses |= {drawings_url: .drawings_url, neighbours_notified: .neighbours_notified, property_address: .property_address, property_number: .property_number, site: .site, what_is_planned: .what_is_planned}' +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/status/completions/index.yaml b/runs/permits-doors-2026-09-25/questions/status/completions/index.yaml new file mode 100644 index 0000000..c635e35 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/status/completions/index.yaml @@ -0,0 +1,22 @@ +name: What has been sent in about completions? +description: Everything sent in by an owner or firm whose building work is finished, and where each one stands. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Completions + description: '' + features: + - name: Completions + 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: completions + public: true + jq: '.[] | .responses |= {asking_for: .asking_for, case_number: .case_number, property_address: .property_address, what_is_outstanding: .what_is_outstanding, work_finished: .work_finished}' +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/status/exemptions/index.yaml b/runs/permits-doors-2026-09-25/questions/status/exemptions/index.yaml new file mode 100644 index 0000000..7bc890c --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/status/exemptions/index.yaml @@ -0,0 +1,22 @@ +name: What has been sent in about exemptions? +description: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Exemptions + description: '' + features: + - name: Exemptions + 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: exemptions + public: true + jq: '.[] | .responses |= {case_number: .case_number, site: .site, which_rule: .which_rule, why_it_should_be_allowed: .why_it_should_be_allowed}' +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/status/objections/index.yaml b/runs/permits-doors-2026-09-25/questions/status/objections/index.yaml new file mode 100644 index 0000000..416efb6 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/status/objections/index.yaml @@ -0,0 +1,22 @@ +name: What has been sent in about objections? +description: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: Objections + description: '' + features: + - name: Objections + 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: objections + public: true + jq: '.[] | .responses |= {case_number: .case_number, your_objection: .your_objection, your_property: .your_property}' +- name: Back + description: '' + action: / + consequence: + - Back diff --git a/runs/permits-doors-2026-09-25/questions/want-to-build/index.yaml b/runs/permits-doors-2026-09-25/questions/want-to-build/index.yaml new file mode 100644 index 0000000..4b3e350 --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/want-to-build/index.yaml @@ -0,0 +1,156 @@ +name: What do you need? +description: For an owner or a firm with something to build, divide or change. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: to hear what we will allow before paying an architect + description: For someone with an idea for a building and no drawings yet. + action: /received/pre-application-meeting + consequence: + - Send + record_as: meetings + features: + - name: What happens next + description: It is open, then scheduled, then we have met, and ends written advice sent or cancelled. + icon: lucide:route + - name: Who reads it + description: Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: name + label: Name + type: text + - name: email + label: Email + type: email + - name: property_address + label: Property address + type: text + - name: what_you_want + label: What you want + type: textarea + - name: phone + label: Phone + type: tel + optional: true + - name: site + label: Site + type: location + optional: true +- name: permission to build it, and to know where the case stands + description: For an owner applying for something small enough to file themselves. + action: /received/small-works-application + consequence: + - Send + record_as: applications + features: + - name: What happens next + description: It is open, then papers missing, then papers complete, then out to the neighbours and the agencies, then recommendation written, and ends approved, approved on conditions, refused or withdrawn. + icon: lucide:route + - name: Who reads it + description: Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: email + label: Email + type: email + - name: property_address + label: Property address + type: text + - name: property_number + label: Property number + type: text + - name: what_is_planned + label: What is planned + type: textarea + - name: neighbours_notified + label: Neighbours notified + type: select + options: + - Yes + - Not yet + - name: site + label: Site + type: location + optional: true + - name: drawings_url + label: Drawings url + type: text + optional: true +- name: to be allowed it anyway, with reasons on the record + description: For someone whose plans break a rule in the zoning map. + action: /received/exemption-request + consequence: + - Send + record_as: exemptions + features: + - name: What you need + description: An application already with us, and the case number from its receipt. + icon: lucide:key + - name: What happens next + description: It is open, then with the county, then the county has answered, then recommended, and ends granted, denied or withdrawn. + icon: lucide:route + - name: Who reads it + description: Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: email + label: Email + type: email + - name: case_number + label: Case number + type: text + - name: which_rule + label: Which rule + type: text + - name: why_it_should_be_allowed + label: Why it should be allowed + type: textarea + - name: site + label: Site + type: location + optional: true +- name: the certificate that lets the building be used + description: For an owner or firm whose building work is finished. + action: /received/completion-request + consequence: + - Send + record_as: completions + features: + - name: What you need + description: A case number, and the work finished or close enough to move in. + icon: lucide:key + - name: What happens next + description: It is open, then checked against the inspections, then temporary permission to use, and ends certificate issued or refused. + icon: lucide:route + - name: Who reads it + description: Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: email + label: Email + type: email + - name: case_number + label: Case number + type: text + - name: property_address + label: Property address + type: text + - name: work_finished + label: Work finished + type: date + - name: asking_for + label: Asking for + type: select + options: + - Completion certificate + - Temporary permission to move in + - name: what_is_outstanding + label: What is outstanding + type: textarea + optional: true diff --git a/runs/permits-doors-2026-09-25/questions/work-as-a-firm/index.yaml b/runs/permits-doors-2026-09-25/questions/work-as-a-firm/index.yaml new file mode 100644 index 0000000..b960c8c --- /dev/null +++ b/runs/permits-doors-2026-09-25/questions/work-as-a-firm/index.yaml @@ -0,0 +1,46 @@ +name: What do you need? +description: For an architect or engineering firm that files for its clients. +responsible: + name: Solveig Hauge + contact: byggesak@vestmark.example +alternatives: +- name: to be on the list, and then to file without asking again + description: For an architect or engineering firm that files for its clients. + action: /received/firm-approval + consequence: + - Send + record_as: firms + features: + - name: What happens next + description: It is open, then waiting on papers, then papers checked, and ends approved or declined. + icon: lucide:route + - name: Who reads it + description: Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example. + icon: lucide:users + - name: Details + requirements: + - name: firm_name + label: Firm name + type: text + - name: org_number + label: Org number + type: text + - name: email + label: Email + type: email + - name: qualified_for + label: Qualified for + type: select + options: + - Design + - Execution + - Independent control + - Site management + multiple: true + - name: insurance_expires + label: Insurance expires + type: date + - name: insurance_document + label: Insurance document + type: text + optional: true diff --git a/runs/permits-doors-2026-09-25/site.yaml b/runs/permits-doors-2026-09-25/site.yaml new file mode 100644 index 0000000..9d30842 --- /dev/null +++ b/runs/permits-doors-2026-09-25/site.yaml @@ -0,0 +1,5 @@ +title: Vestmark kommune - Building and Planning +lang: en +mail: + from: Vestmark Building and Planning + reply_to: byggesak@vestmark.example diff --git a/runs/permits-doors-2026-09-25/tasks-full.jsonl b/runs/permits-doors-2026-09-25/tasks-full.jsonl new file mode 100644 index 0000000..44dbb45 --- /dev/null +++ b/runs/permits-doors-2026-09-25/tasks-full.jsonl @@ -0,0 +1,25 @@ +{"id":"garage-owner@/","persona":"garage-owner","need":"pre-application-meeting","page":"/","state":{"body":"We want to put a double garage where the old shed is. Before I pay an architect I'd like to know whether you'll even allow it, because the neighbour says it's too close to the road.","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Want to build"]} +{"id":"garage-owner@/want-to-build","persona":"garage-owner","need":"pre-application-meeting","page":"/want-to-build","state":{"body":"We want to put a double garage where the old shed is. Before I pay an architect I'd like to know whether you'll even allow it, because the neighbour says it's too close to the road."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What do you need?\". Which alternative do they choose?","criteria":{"permission to build it, and to know where the case stands":"For an owner applying for something small enough to file themselves.","the certificate that lets the building be used":"For an owner or firm whose building work is finished.","to be allowed it anyway, with reasons on the record":"For someone whose plans break a rule in the zoning map.","to hear what we will allow before paying an architect":"For someone with an idea for a building and no drawings yet."}}},"expect":["to hear what we will allow before paying an architect"]} +{"id":"shop-to-flats@/","persona":"shop-to-flats","need":"pre-application-meeting","page":"/","state":{"body":"I own the old grocery on Torget and want to make four flats out of it. There are a lot of questions - parking, fire, the facade is listed. Can we sit down with someone?","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Want to build"]} +{"id":"shop-to-flats@/want-to-build","persona":"shop-to-flats","need":"pre-application-meeting","page":"/want-to-build","state":{"body":"I own the old grocery on Torget and want to make four flats out of it. There are a lot of questions - parking, fire, the facade is listed. Can we sit down with someone?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What do you need?\". Which alternative do they choose?","criteria":{"permission to build it, and to know where the case stands":"For an owner applying for something small enough to file themselves.","the certificate that lets the building be used":"For an owner or firm whose building work is finished.","to be allowed it anyway, with reasons on the record":"For someone whose plans break a rule in the zoning map.","to hear what we will allow before paying an architect":"For someone with an idea for a building and no drawings yet."}}},"expect":["to hear what we will allow before paying an architect"]} +{"id":"too-close-to-boundary@/","persona":"too-close-to-boundary","need":"exemption-request","page":"/","state":{"body":"The garage ends up one and a half metres from the boundary and the plan says four. We are asking you to allow it anyway - the ground falls away steeply everywhere else on the plot.","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Want to build"]} +{"id":"too-close-to-boundary@/want-to-build","persona":"too-close-to-boundary","need":"exemption-request","page":"/want-to-build","state":{"body":"The garage ends up one and a half metres from the boundary and the plan says four. We are asking you to allow it anyway - the ground falls away steeply everywhere else on the plot."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What do you need?\". Which alternative do they choose?","criteria":{"permission to build it, and to know where the case stands":"For an owner applying for something small enough to file themselves.","the certificate that lets the building be used":"For an owner or firm whose building work is finished.","to be allowed it anyway, with reasons on the record":"For someone whose plans break a rule in the zoning map.","to hear what we will allow before paying an architect":"For someone with an idea for a building and no drawings yet."}}},"expect":["to be allowed it anyway, with reasons on the record"]} +{"id":"neighbour-view@/","persona":"neighbour-view","need":"objection","page":"/","state":{"body":"I got a notice about the extension at number 14. It takes the afternoon sun off my entire terrace and I want that on the record before you decide anything.","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Building near me"]} +{"id":"neighbour-view@/building-near-me","persona":"neighbour-view","need":"objection","page":"/building-near-me","state":{"body":"I got a notice about the extension at number 14. It takes the afternoon sun off my entire terrace and I want that on the record before you decide anything."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What do you need?\". Which alternative do they choose?","criteria":{"to be told where it actually stands":"For someone waiting on a case and getting nothing back.","us to go and look, and to hear that we did":"For someone who can see building going up that nobody was told about.","what they think on the record, and answered in the decision":"For a neighbour who got a notice about what is planned next door."}}},"expect":["what they think on the record, and answered in the decision"]} +{"id":"neighbour-parking@/","persona":"neighbour-parking","need":"objection","page":"/","state":{"body":"The flats they want to build in the old grocery have four parking places for four flats and everyone here already parks on the street. I object.","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Building near me"]} +{"id":"neighbour-parking@/building-near-me","persona":"neighbour-parking","need":"objection","page":"/building-near-me","state":{"body":"The flats they want to build in the old grocery have four parking places for four flats and everyone here already parks on the street. I object."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What do you need?\". Which alternative do they choose?","criteria":{"to be told where it actually stands":"For someone waiting on a case and getting nothing back.","us to go and look, and to hear that we did":"For someone who can see building going up that nobody was told about.","what they think on the record, and answered in the decision":"For a neighbour who got a notice about what is planned next door."}}},"expect":["what they think on the record, and answered in the decision"]} +{"id":"refused-applicant@/","persona":"refused-applicant","need":"appeal","page":"/","state":{"body":"You refused our exemption on the ninth. We don't accept the reasoning - you've allowed the same thing twice in the same street. We're appealing.","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["After a decision"]} +{"id":"neighbour-appeals@/","persona":"neighbour-appeals","need":"appeal","page":"/","state":{"body":"You approved the extension next door even though I objected. I'm appealing the decision. What do I need to send?","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["After a decision"]} +{"id":"board-member@/","persona":"board-member","need":"appeal","page":"/","state":{"body":"I sit on the appeals board. I need the case, our own decision, and what the neighbours wrote, before Tuesday.","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["After a decision"]} +{"id":"firm-wants-certificate@/","persona":"firm-wants-certificate","need":"completion-request","page":"/","state":{"body":"The work at Bjorkeveien 14 is finished and inspected. We're asking for the completion certificate so the owners can get their mortgage released.","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Want to build"]} +{"id":"firm-wants-certificate@/want-to-build","persona":"firm-wants-certificate","need":"completion-request","page":"/want-to-build","state":{"body":"The work at Bjorkeveien 14 is finished and inspected. We're asking for the completion certificate so the owners can get their mortgage released."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What do you need?\". Which alternative do they choose?","criteria":{"permission to build it, and to know where the case stands":"For an owner applying for something small enough to file themselves.","the certificate that lets the building be used":"For an owner or firm whose building work is finished.","to be allowed it anyway, with reasons on the record":"For someone whose plans break a rule in the zoning map.","to hear what we will allow before paying an architect":"For someone with an idea for a building and no drawings yet."}}},"expect":["the certificate that lets the building be used"]} +{"id":"wants-to-move-in@/","persona":"wants-to-move-in","need":"completion-request","page":"/","state":{"body":"The house is done apart from the outside steps, which we can't pour until spring. The family has sold their flat. Can we get a temporary permission to move in?","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Want to build"]} +{"id":"wants-to-move-in@/want-to-build","persona":"wants-to-move-in","need":"completion-request","page":"/want-to-build","state":{"body":"The house is done apart from the outside steps, which we can't pour until spring. The family has sold their flat. Can we get a temporary permission to move in?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What do you need?\". Which alternative do they choose?","criteria":{"permission to build it, and to know where the case stands":"For an owner applying for something small enough to file themselves.","the certificate that lets the building be used":"For an owner or firm whose building work is finished.","to be allowed it anyway, with reasons on the record":"For someone whose plans break a rule in the zoning map.","to hear what we will allow before paying an architect":"For someone with an idea for a building and no drawings yet."}}},"expect":["the certificate that lets the building be used"]} +{"id":"something-behind-fence@/","persona":"something-behind-fence","need":"illegal-building-report","page":"/","state":{"body":"There's a large structure going up behind the fence at Solbakken 7. Nobody has had a notice about it and it's been going on for two weeks.","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Building near me"]} +{"id":"something-behind-fence@/building-near-me","persona":"something-behind-fence","need":"illegal-building-report","page":"/building-near-me","state":{"body":"There's a large structure going up behind the fence at Solbakken 7. Nobody has had a notice about it and it's been going on for two weeks."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What do you need?\". Which alternative do they choose?","criteria":{"to be told where it actually stands":"For someone waiting on a case and getting nothing back.","us to go and look, and to hear that we did":"For someone who can see building going up that nobody was told about.","what they think on the record, and answered in the decision":"For a neighbour who got a notice about what is planned next door."}}},"expect":["us to go and look, and to hear that we did"]} +{"id":"owner-explains@/","persona":"owner-explains","need":"illegal-building-report","page":"/","state":{"body":"I got your letter about the terrace. I genuinely did not know it needed an application, it's been there since we moved in. What happens now?","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Building near me"]} +{"id":"owner-explains@/building-near-me","persona":"owner-explains","need":"illegal-building-report","page":"/building-near-me","state":{"body":"I got your letter about the terrace. I genuinely did not know it needed an application, it's been there since we moved in. What happens now?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What do you need?\". Which alternative do they choose?","criteria":{"to be told where it actually stands":"For someone waiting on a case and getting nothing back.","us to go and look, and to hear that we did":"For someone who can see building going up that nobody was told about.","what they think on the record, and answered in the decision":"For a neighbour who got a notice about what is planned next door."}}},"expect":["us to go and look, and to hear that we did"]} +{"id":"new-firm@/","persona":"new-firm","need":"firm-approval","page":"/","state":{"body":"We are a three-person architecture firm that has just started. We want to be approved so we can file applications for our clients in your municipality.","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Work as a firm"]} +{"id":"firm-insurance-lapsed@/","persona":"firm-insurance-lapsed","need":"firm-approval","page":"/","state":{"body":"You wrote that our liability insurance certificate has expired. We have renewed it, here it is.","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Work as a firm"]} +{"id":"where-is-my-case@/","persona":"where-is-my-case","need":"case-status-enquiry","page":"/","state":{"body":"I sent in my application five weeks ago and I've heard nothing. Is anyone looking at it? Is it in the six weeks with the neighbours or is it waiting on me?","page":"What we do Permission to build it, and to know where the case stands: Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to. What they think on the record, and answered in the decision: If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\nHave a look around See all appeals: Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands. [See all appeals](/status/appeals) See all applications: Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands. [See all applications](/status/applications) See all completions: Everything sent in by an owner or firm whose building work is finished, and where each one stands. [See all completions](/status/completions) See all exemptions: Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands. [See all exemptions](/status/exemptions) See all objections: Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands. [See all objections](/status/objections)"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"After a decision":"For someone who has had a decision from us and does not accept it.","Building near me":"For someone who lives next to what is being built.","Want to build":"For an owner or a firm with something to build, divide or change.","Work as a firm":"For an architect or engineering firm that files for its clients."}}},"expect":["Building near me"]} +{"id":"where-is-my-case@/building-near-me","persona":"where-is-my-case","need":"case-status-enquiry","page":"/building-near-me","state":{"body":"I sent in my application five weeks ago and I've heard nothing. Is anyone looking at it? Is it in the six weeks with the neighbours or is it waiting on me?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What do you need?\". Which alternative do they choose?","criteria":{"to be told where it actually stands":"For someone waiting on a case and getting nothing back.","us to go and look, and to hear that we did":"For someone who can see building going up that nobody was told about.","what they think on the record, and answered in the decision":"For a neighbour who got a notice about what is planned next door."}}},"expect":["to be told where it actually stands"]} diff --git a/runs/permits-doors-2026-09-25/words.json b/runs/permits-doors-2026-09-25/words.json new file mode 100644 index 0000000..28a670b --- /dev/null +++ b/runs/permits-doors-2026-09-25/words.json @@ -0,0 +1,1708 @@ +{ + "aggregates.yaml": { + "appeals": { + "before_the_board": { + "subject": "Vestmark kommune - Building and Planning: Before the board", + "body": "Hello,\n\nWhat you sent about the decision looked at again, by us and then by the board is now with the appeals board.\n\nWhat you can do next: {site}/decide/appeal?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "changed_by_us": { + "subject": "Vestmark kommune - Building and Planning: Changed by us", + "body": "Hello,\n\nWhat you sent about the decision looked at again, by us and then by the board is now we changed our own decision.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "open": { + "subject": "Vestmark kommune - Building and Planning: Open", + "body": "Hello,\n\nWe have received what you sent about the decision looked at again, by us and then by the board.\n\nWhat you can do next: {site}/decide/appeal?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "overturned": { + "subject": "Vestmark kommune - Building and Planning: Overturned", + "body": "Hello,\n\nWhat you sent about the decision looked at again, by us and then by the board is now the board overturned us.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "reconsidered": { + "subject": "Vestmark kommune - Building and Planning: Reconsidered", + "body": "Hello,\n\nWhat you sent about the decision looked at again, by us and then by the board is now we are looking at it again.\n\nWhat you can do next: {site}/decide/appeal?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "upheld": { + "subject": "Vestmark kommune - Building and Planning: Upheld", + "body": "Hello,\n\nWhat you sent about the decision looked at again, by us and then by the board is now the board kept our decision.\n\nSolveig Hauge at byggesak@vestmark.example" + } + }, + "applications": { + "approved": { + "subject": "Vestmark kommune - Building and Planning: Approved", + "body": "Hello,\n\nWhat you sent about permission to build it, and to know where the case stands is now approved.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "approved_with_conditions": { + "subject": "Vestmark kommune - Building and Planning: Approved with conditions", + "body": "Hello,\n\nWhat you sent about permission to build it, and to know where the case stands is now approved on conditions.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "incomplete": { + "subject": "Vestmark kommune - Building and Planning: Incomplete", + "body": "Hello,\n\nWhat you sent about permission to build it, and to know where the case stands is now papers missing.\n\nWhat you can do next: {site}/decide/small-works-application?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "on_hearing": { + "subject": "Vestmark kommune - Building and Planning: On hearing", + "body": "Hello,\n\nWhat you sent about permission to build it, and to know where the case stands is now out to the neighbours and the agencies.\n\nWhat you can do next: {site}/decide/small-works-application?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "open": { + "subject": "Vestmark kommune - Building and Planning: Open", + "body": "Hello,\n\nWe have received what you sent about permission to build it, and to know where the case stands.\n\nWhat you can do next: {site}/decide/small-works-application?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "refused": { + "subject": "Vestmark kommune - Building and Planning: Refused", + "body": "Hello,\n\nWhat you sent about permission to build it, and to know where the case stands is now refused.\n\nSolveig Hauge at byggesak@vestmark.example" + } + }, + "completions": { + "certificate_issued": { + "subject": "Vestmark kommune - Building and Planning: Certificate issued", + "body": "Hello,\n\nWhat you sent about the certificate that lets the building be used is now certificate issued.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "open": { + "subject": "Vestmark kommune - Building and Planning: Open", + "body": "Hello,\n\nWe have received what you sent about the certificate that lets the building be used.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "refused": { + "subject": "Vestmark kommune - Building and Planning: Refused", + "body": "Hello,\n\nWhat you sent about the certificate that lets the building be used is now refused.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "temporary_permission": { + "subject": "Vestmark kommune - Building and Planning: Temporary permission", + "body": "Hello,\n\nWhat you sent about the certificate that lets the building be used is now temporary permission to use.\n\nSolveig Hauge at byggesak@vestmark.example" + } + }, + "enquiries": { + "answered": { + "subject": "Vestmark kommune - Building and Planning: Answered", + "body": "Hello,\n\nWhat you sent about to be told where it actually stands is now answered.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "open": { + "subject": "Vestmark kommune - Building and Planning: Open", + "body": "Hello,\n\nWe have received what you sent about to be told where it actually stands.\n\nSolveig Hauge at byggesak@vestmark.example" + } + }, + "exemptions": { + "county_asked": { + "subject": "Vestmark kommune - Building and Planning: County asked", + "body": "Hello,\n\nWhat you sent about to be allowed it anyway, with reasons on the record is now with the county.\n\nWhat you can do next: {site}/decide/exemption-request?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "denied": { + "subject": "Vestmark kommune - Building and Planning: Denied", + "body": "Hello,\n\nWhat you sent about to be allowed it anyway, with reasons on the record is now denied.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "granted": { + "subject": "Vestmark kommune - Building and Planning: Granted", + "body": "Hello,\n\nWhat you sent about to be allowed it anyway, with reasons on the record is now granted.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "open": { + "subject": "Vestmark kommune - Building and Planning: Open", + "body": "Hello,\n\nWe have received what you sent about to be allowed it anyway, with reasons on the record.\n\nWhat you can do next: {site}/decide/exemption-request?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + } + }, + "firms": { + "approved": { + "subject": "Vestmark kommune - Building and Planning: Approved", + "body": "Hello,\n\nWhat you sent about to be on the list, and then to file without asking again is now approved.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "declined": { + "subject": "Vestmark kommune - Building and Planning: Declined", + "body": "Hello,\n\nWhat you sent about to be on the list, and then to file without asking again is now declined.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "open": { + "subject": "Vestmark kommune - Building and Planning: Open", + "body": "Hello,\n\nWe have received what you sent about to be on the list, and then to file without asking again.\n\nWhat you can do next: {site}/decide/firm-approval?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "papers_missing": { + "subject": "Vestmark kommune - Building and Planning: Papers missing", + "body": "Hello,\n\nWhat you sent about to be on the list, and then to file without asking again is now waiting on papers.\n\nWhat you can do next: {site}/decide/firm-approval?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + } + }, + "illegal_building": { + "dropped": { + "subject": "Vestmark kommune - Building and Planning: Dropped", + "body": "Hello,\n\nWhat you sent about us to go and look, and to hear that we did is now nothing to pursue.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "inspected": { + "subject": "Vestmark kommune - Building and Planning: Inspected", + "body": "Hello,\n\nWhat you sent about us to go and look, and to hear that we did is now inspected.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "open": { + "subject": "Vestmark kommune - Building and Planning: Open", + "body": "Hello,\n\nWe have received what you sent about us to go and look, and to hear that we did.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "resolved": { + "subject": "Vestmark kommune - Building and Planning: Resolved", + "body": "Hello,\n\nWhat you sent about us to go and look, and to hear that we did is now resolved.\n\nSolveig Hauge at byggesak@vestmark.example" + } + }, + "meetings": { + "advised": { + "subject": "Vestmark kommune - Building and Planning: Advised", + "body": "Hello {name},\n\nWhat you sent about to hear what we will allow before paying an architect is now written advice sent.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "open": { + "subject": "Vestmark kommune - Building and Planning: Open", + "body": "Hello {name},\n\nWe have received what you sent about to hear what we will allow before paying an architect.\n\nWhat you can do next: {site}/decide/pre-application-meeting?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "scheduled": { + "subject": "Vestmark kommune - Building and Planning: Scheduled", + "body": "Hello {name},\n\nWhat you sent about to hear what we will allow before paying an architect is now scheduled.\n\nWhat you can do next: {site}/decide/pre-application-meeting?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + } + }, + "objections": { + "addressed": { + "subject": "Vestmark kommune - Building and Planning: Addressed", + "body": "Hello,\n\nWhat you sent about what they think on the record, and answered in the decision is now answered in the decision.\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "answered_by_applicant": { + "subject": "Vestmark kommune - Building and Planning: Answered by applicant", + "body": "Hello,\n\nWhat you sent about what they think on the record, and answered in the decision is now the applicant has answered.\n\nWhat you can do next: {site}/decide/objection?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + }, + "open": { + "subject": "Vestmark kommune - Building and Planning: Open", + "body": "Hello,\n\nWe have received what you sent about what they think on the record, and answered in the decision.\n\nWhat you can do next: {site}/decide/objection?chain={chain}&email={email}\n\nSolveig Hauge at byggesak@vestmark.example" + } + } + }, + "questions/after-a-decision/index.yaml": { + "question": "What do you need?", + "description": "For someone who has had a decision from us and does not accept it.", + "needs": { + "appeal": { + "heading": "the decision looked at again, by us and then by the board", + "description": "For anyone with an interest who will not accept a decision of ours.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "What you need", + "requires_description": "A decision from us less than three weeks old, and its case number.", + "requires_icon": "key", + "road_title": "What happens next", + "road_description": "It is open, then we are looking at it again, then with the appeals board, and ends we changed our own decision, the board kept our decision, the board overturned us or withdrawn.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "email": "Email", + "case_number": "Case number", + "property": "Property", + "what_you_disagree_with": "What you disagree with", + "your_interest": "Your interest" + }, + "hints": { + "email": "", + "case_number": "", + "property": "", + "what_you_disagree_with": "", + "your_interest": "" + } + } + } + }, + "questions/agencies/hearing-answer-sent.yaml": { + "question": "What happens now?", + "description": "It has reached our case officers.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back" + }, + "questions/agencies/hearing-answer.yaml": { + "heading": "their answer on the file, in their own words", + "description": "For a road, fire, heritage or county officer who has been asked about a case.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "What you need", + "requires_description": "The hearing letter we sent you, which has the case number on it.", + "requires_icon": "key", + "road_title": "What happens next", + "road_description": "It is open, then read by the case officer, and ends followed in the decision or set aside with reasons.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "case_number": "Case number", + "which_authority": "Which authority", + "our_answer": "Our answer", + "what_we_say": "What we say" + }, + "hints": { + "case_number": "", + "which_authority": "", + "our_answer": "", + "what_we_say": "" + }, + "question": "Hearing answer?", + "page_description": "" + }, + "questions/agencies/index.yaml": { + "question": "What needs doing?", + "description": "Everything hearing bodies looks after.", + "confirm": "Confirm", + "buckets": { + "exemptions": { + "heading": "Exemptions", + "description": "Sent in by someone whose plans break a rule in the zoning map.", + "moves": { + "county_asked->county_answered": "The county has answered" + }, + "list_title": "Exemptions", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "hearings": { + "heading": "Hearings", + "description": "Sent in by a case officer sending a case out to the authority that must see it.", + "moves": { + "open->answered": "Answered" + }, + "list_title": "Hearings", + "list_note": "Each row is one case. The buttons record what you have just done with it." + } + }, + "links": { + "hearing-answer": { + "heading": "their answer on the file, in their own words", + "description": "For a road, fire, heritage or county officer who has been asked about a case.", + "button": "Open" + } + }, + "invites": { + "agencies": { + "heading": "Invite someone into Hearing bodies", + "description": "They get an account, a place in Hearing bodies, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + } + }, + "invited": { + "heading": "Invitations sent", + "description": "Each invite with the link it made. Mark it done when the person is in.", + "done": "Is in", + "list_title": "Who has been invited", + "list_note": "Each row is one invitation, with the one-time link while it is unused." + } + }, + "questions/appeals_board/index.yaml": { + "question": "What needs doing?", + "description": "Everything appeals board looks after.", + "confirm": "Confirm", + "buckets": { + "appeals": { + "heading": "Appeals", + "description": "Sent in by anyone with an interest who will not accept a decision of ours.", + "moves": { + "before_the_board->overturned": "The board overturned us", + "before_the_board->upheld": "The board kept our decision" + }, + "list_title": "Appeals", + "list_note": "Each row is one case. The buttons record what you have just done with it." + } + }, + "links": {}, + "invites": { + "appeals_board": { + "heading": "Invite someone into Appeals board", + "description": "They get an account, a place in Appeals board, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + } + }, + "invited": { + "heading": "Invitations sent", + "description": "Each invite with the link it made. Mark it done when the person is in.", + "done": "Is in", + "list_title": "Who has been invited", + "list_note": "Each row is one invitation, with the one-time link while it is unused." + } + }, + "questions/approved_firms/index.yaml": { + "question": "What needs doing?", + "description": "Everything approved firms looks after.", + "confirm": "Confirm", + "buckets": { + "objections": { + "heading": "Objections", + "description": "Sent in by a neighbour who got a notice about what is planned next door.", + "moves": { + "registered->answered_by_applicant": "The applicant has answered" + }, + "list_title": "Objections", + "list_note": "Each row is one case. The buttons record what you have just done with it." + } + }, + "links": { + "permit-application": { + "heading": "a decision inside twelve weeks, and to know when the clock stops", + "description": "For an approved firm filing on behalf of an owner.", + "button": "Open" + } + }, + "invites": { + "approved_firms": { + "heading": "Invite someone into Approved firms", + "description": "They get an account, a place in Approved firms, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + } + }, + "invited": { + "heading": "Invitations sent", + "description": "Each invite with the link it made. Mark it done when the person is in.", + "done": "Is in", + "list_title": "Who has been invited", + "list_note": "Each row is one invitation, with the one-time link while it is unused." + } + }, + "questions/approved_firms/permit-application-sent.yaml": { + "question": "What happens now?", + "description": "It has reached our case officers.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back", + "see_all": { + "heading": "See all applications", + "description": "", + "button": "Open" + } + }, + "questions/approved_firms/permit-application.yaml": { + "heading": "a decision inside twelve weeks, and to know when the clock stops", + "description": "For an approved firm filing on behalf of an owner.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "What happens next", + "road_description": "It is open, then papers missing, then papers complete, then out to the neighbours and the agencies, then recommendation written, and ends approved, approved on conditions, refused or withdrawn.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "email": "Email", + "property_address": "Property address", + "property_number": "Property number", + "what_is_planned": "What is planned", + "neighbours_notified": "Neighbours notified", + "site": "Site", + "drawings_url": "Drawings url" + }, + "hints": { + "email": "", + "property_address": "", + "property_number": "", + "what_is_planned": "", + "neighbours_notified": "", + "site": "", + "drawings_url": "" + }, + "question": "Permit application?", + "page_description": "" + }, + "questions/building-near-me/index.yaml": { + "question": "What do you need?", + "description": "For someone who lives next to what is being built.", + "needs": { + "objection": { + "heading": "what they think on the record, and answered in the decision", + "description": "For a neighbour who got a notice about what is planned next door.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "What you need", + "requires_description": "The notice that came in the post, which has the case number on it.", + "requires_icon": "key", + "road_title": "What happens next", + "road_description": "It is open, then on the case file, then the applicant has answered, and ends answered in the decision or withdrawn.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "email": "Email", + "case_number": "Case number", + "your_property": "Your property", + "your_objection": "Your objection" + }, + "hints": { + "email": "", + "case_number": "", + "your_property": "", + "your_objection": "" + } + }, + "case-status-enquiry": { + "heading": "to be told where it actually stands", + "description": "For someone waiting on a case and getting nothing back.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "What happens next", + "road_description": "It is open, then in hand, and ends answered.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Front desk. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "email": "Email", + "case_number_or_address": "Case number or address", + "what_you_want_to_know": "What you want to know" + }, + "hints": { + "email": "", + "case_number_or_address": "", + "what_you_want_to_know": "" + } + }, + "illegal-building-report": { + "heading": "us to go and look, and to hear that we did", + "description": "For someone who can see building going up that nobody was told about.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "What happens next", + "road_description": "It is open, then inspected, then the owner has been written to, then the owner has answered, and ends resolved, fined or nothing to pursue.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Inspectors. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "email": "Email", + "address": "Address", + "what_you_saw": "What you saw", + "where": "Where" + }, + "hints": { + "email": "", + "address": "", + "what_you_saw": "", + "where": "" + } + } + } + }, + "questions/case_officers/index.yaml": { + "question": "What needs doing?", + "description": "Everything case officers looks after.", + "confirm": "Confirm", + "buckets": { + "appeals": { + "heading": "Appeals", + "description": "Sent in by anyone with an interest who will not accept a decision of ours.", + "moves": { + "open->reconsidered": "We are looking at it again" + }, + "list_title": "Appeals", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "applications": { + "heading": "Applications", + "description": "Sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner.", + "moves": { + "complete->on_hearing": "Out to the neighbours and the agencies", + "complete->incomplete": "Papers missing", + "incomplete->complete": "Papers complete", + "on_hearing->recommended": "Recommendation written", + "on_hearing->incomplete": "Papers missing", + "open->complete": "Papers complete", + "open->incomplete": "Papers missing" + }, + "list_title": "Applications", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "completions": { + "heading": "Completions", + "description": "Sent in by an owner or firm whose building work is finished.", + "moves": { + "open->checked": "Checked against the inspections" + }, + "list_title": "Completions", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "enquiries": { + "heading": "Enquiries", + "description": "Sent in by someone waiting on a case and getting nothing back or whoever is on the counter with a queue and a caller on the line.", + "moves": { + "open->in_hand": "In hand" + }, + "list_title": "Enquiries", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "exemptions": { + "heading": "Exemptions", + "description": "Sent in by someone whose plans break a rule in the zoning map.", + "moves": { + "county_answered->recommended": "Recommended", + "open->county_asked": "With the county" + }, + "list_title": "Exemptions", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "firms": { + "heading": "Firms", + "description": "Sent in by an architect or engineering firm that files for its clients.", + "moves": { + "open->papers_missing": "Waiting on papers", + "open->checked": "Papers checked", + "papers_missing->checked": "Papers checked" + }, + "list_title": "Firms", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "hearing_answers": { + "heading": "Hearing answers", + "description": "Sent in by a road, fire, heritage or county officer who has been asked about a case.", + "moves": { + "open->read": "Read by the case officer", + "open->set_aside": "Set aside with reasons", + "read->followed": "Followed in the decision", + "read->set_aside": "Set aside with reasons" + }, + "list_title": "Hearing answers", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "hearings": { + "heading": "Hearings", + "description": "Sent in by a case officer sending a case out to the authority that must see it.", + "moves": { + "open->no_answer": "The deadline passed with no answer", + "open->cancelled": "Cancelled" + }, + "list_title": "Hearings", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "illegal_building": { + "heading": "Illegal building", + "description": "Sent in by someone who can see building going up that nobody was told about.", + "moves": { + "inspected->owner_asked": "The owner has been written to", + "owner_asked->explained": "The owner has answered" + }, + "list_title": "Illegal building", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "inspections": { + "heading": "Inspections", + "description": "Sent in by an inspector on a scaffold with gloves on and the wind blowing.", + "moves": { + "deviation->escalated": "Handed to a case officer", + "open->escalated": "Handed to a case officer" + }, + "list_title": "Inspections", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "meetings": { + "heading": "Meetings", + "description": "Sent in by someone with an idea for a building and no drawings yet.", + "moves": { + "met->advised": "Written advice sent", + "open->scheduled": "Scheduled", + "scheduled->met": "We have met" + }, + "list_title": "Meetings", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "objections": { + "heading": "Objections", + "description": "Sent in by a neighbour who got a notice about what is planned next door.", + "moves": { + "answered_by_applicant->addressed": "Answered in the decision", + "open->registered": "On the case file", + "registered->answered_by_applicant": "The applicant has answered" + }, + "list_title": "Objections", + "list_note": "Each row is one case. The buttons record what you have just done with it." + } + }, + "links": { + "request-hearing": { + "heading": "an answer by the deadline, or a record that none came", + "description": "For a case officer sending a case out to the authority that must see it.", + "button": "Open" + } + }, + "invites": { + "agencies": { + "heading": "Invite someone into Hearing bodies", + "description": "They get an account, a place in Hearing bodies, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "appeals_board": { + "heading": "Invite someone into Appeals board", + "description": "They get an account, a place in Appeals board, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "approved_firms": { + "heading": "Invite someone into Approved firms", + "description": "They get an account, a place in Approved firms, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "case_officers": { + "heading": "Invite someone into Case officers", + "description": "They get an account, a place in Case officers, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "front_desk": { + "heading": "Invite someone into Front desk", + "description": "They get an account, a place in Front desk, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "inspectors": { + "heading": "Invite someone into Inspectors", + "description": "They get an account, a place in Inspectors, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "section_head": { + "heading": "Invite someone into Head of section", + "description": "They get an account, a place in Head of section, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + } + }, + "invited": { + "heading": "Invitations sent", + "description": "Each invite with the link it made. Mark it done when the person is in.", + "done": "Is in", + "list_title": "Who has been invited", + "list_note": "Each row is one invitation, with the one-time link while it is unused." + } + }, + "questions/case_officers/request-hearing-sent.yaml": { + "question": "What happens now?", + "description": "It has reached our case officers.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back" + }, + "questions/case_officers/request-hearing.yaml": { + "heading": "an answer by the deadline, or a record that none came", + "description": "For a case officer sending a case out to the authority that must see it.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "What happens next", + "road_description": "It is open, and ends answered, the deadline passed with no answer or cancelled.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "case_number": "Case number", + "which_authority": "Which authority", + "what_we_ask": "What we ask", + "answer_by": "Answer by", + "site": "Site" + }, + "hints": { + "case_number": "", + "which_authority": "", + "what_we_ask": "", + "answer_by": "", + "site": "" + }, + "question": "Request hearing?", + "page_description": "" + }, + "questions/decide/appeal.yaml": { + "question": "What would you like to do?", + "description": "", + "moves": { + "withdrawn": { + "heading": "Withdrawn", + "description": "", + "button": "Withdrawn" + } + } + }, + "questions/decide/exemption-request.yaml": { + "question": "What would you like to do?", + "description": "", + "moves": { + "withdrawn": { + "heading": "Withdrawn", + "description": "", + "button": "Withdrawn" + } + } + }, + "questions/decide/firm-approval.yaml": { + "question": "What would you like to do?", + "description": "", + "moves": { + "checked": { + "heading": "Checked", + "description": "", + "button": "Checked" + } + } + }, + "questions/decide/objection.yaml": { + "question": "What would you like to do?", + "description": "", + "moves": { + "withdrawn": { + "heading": "Withdrawn", + "description": "", + "button": "Withdrawn" + } + } + }, + "questions/decide/permit-application.yaml": { + "question": "What would you like to do?", + "description": "", + "moves": { + "complete": { + "heading": "Complete", + "description": "", + "button": "Complete" + }, + "withdrawn": { + "heading": "Withdrawn", + "description": "", + "button": "Withdrawn" + } + } + }, + "questions/decide/pre-application-meeting.yaml": { + "question": "What would you like to do?", + "description": "", + "moves": { + "cancelled": { + "heading": "Cancelled", + "description": "", + "button": "Cancelled" + } + } + }, + "questions/decide/small-works-application.yaml": { + "question": "What would you like to do?", + "description": "", + "moves": { + "complete": { + "heading": "Complete", + "description": "", + "button": "Complete" + }, + "withdrawn": { + "heading": "Withdrawn", + "description": "", + "button": "Withdrawn" + } + } + }, + "questions/front_desk/index.yaml": { + "question": "What needs doing?", + "description": "Everything front desk looks after.", + "confirm": "Confirm", + "buckets": { + "appeals": { + "heading": "Appeals", + "description": "Sent in by anyone with an interest who will not accept a decision of ours.", + "moves": {}, + "list_title": "Appeals", + "list_note": "Each row is one case and the stage it has reached. Another desk moves these." + }, + "applications": { + "heading": "Applications", + "description": "Sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner.", + "moves": {}, + "list_title": "Applications", + "list_note": "Each row is one case and the stage it has reached. Another desk moves these." + }, + "enquiries": { + "heading": "Enquiries", + "description": "Sent in by someone waiting on a case and getting nothing back or whoever is on the counter with a queue and a caller on the line.", + "moves": { + "in_hand->answered": "Answered", + "open->in_hand": "In hand" + }, + "list_title": "Enquiries", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "firms": { + "heading": "Firms", + "description": "Sent in by an architect or engineering firm that files for its clients.", + "moves": {}, + "list_title": "Firms", + "list_note": "Each row is one case and the stage it has reached. Another desk moves these." + }, + "hearing_answers": { + "heading": "Hearing answers", + "description": "Sent in by a road, fire, heritage or county officer who has been asked about a case.", + "moves": {}, + "list_title": "Hearing answers", + "list_note": "Each row is one case and the stage it has reached. Another desk moves these." + }, + "hearings": { + "heading": "Hearings", + "description": "Sent in by a case officer sending a case out to the authority that must see it.", + "moves": {}, + "list_title": "Hearings", + "list_note": "Each row is one case and the stage it has reached. Another desk moves these." + }, + "meetings": { + "heading": "Meetings", + "description": "Sent in by someone with an idea for a building and no drawings yet.", + "moves": { + "met->cancelled": "Cancelled", + "open->cancelled": "Cancelled", + "scheduled->cancelled": "Cancelled" + }, + "list_title": "Meetings", + "list_note": "Each row is one case. The buttons record what you have just done with it." + } + }, + "links": { + "log-counter-enquiry": { + "heading": "the question written down and sent to whoever has the case", + "description": "For whoever is on the counter with a queue and a caller on the line.", + "button": "Open" + } + }, + "invites": { + "front_desk": { + "heading": "Invite someone into Front desk", + "description": "They get an account, a place in Front desk, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + } + }, + "invited": { + "heading": "Invitations sent", + "description": "Each invite with the link it made. Mark it done when the person is in.", + "done": "Is in", + "list_title": "Who has been invited", + "list_note": "Each row is one invitation, with the one-time link while it is unused." + } + }, + "questions/front_desk/log-counter-enquiry-sent.yaml": { + "question": "What happens now?", + "description": "It has reached our front desk.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back" + }, + "questions/front_desk/log-counter-enquiry.yaml": { + "heading": "the question written down and sent to whoever has the case", + "description": "For whoever is on the counter with a queue and a caller on the line.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "What happens next", + "road_description": "It is open, then in hand, and ends answered.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Front desk. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "email": "Email", + "case_number_or_address": "Case number or address", + "what_you_want_to_know": "What you want to know" + }, + "hints": { + "email": "", + "case_number_or_address": "", + "what_you_want_to_know": "" + }, + "question": "Log counter enquiry?", + "page_description": "" + }, + "questions/index.yaml": { + "question": "What brings you here?", + "description": "The building authority for twenty-one thousand people. Anything built, demolished, divided or changed in use is decided here: the drawings are checked against the zoning map, the neighbours and the other authorities have their say, and then the head of section signs. The same office inspects what is actually built, signs off finished work, and deals with building nobody applied for.\n", + "opener": { + "heading": "What we do", + "description": "", + "features": { + "we-decide-what-may-be-built": { + "heading": "Permission to build it, and to know where the case stands", + "description": "Everything built in Vestmark is decided here. You send the drawings, the neighbours and the road, fire and heritage authorities are heard, and you get a written decision you can hold us to.\n", + "icon": "" + }, + "your-neighbours-case-is-readable": { + "heading": "What they think on the record, and answered in the decision", + "description": "If a notice landed in your postbox, the case behind it is open to read here, and what you write to us has to be answered by name in the decision.\n", + "icon": "" + } + } + }, + "shopping": { + "heading": "Have a look around", + "description": "", + "items": { + "status-appeals": { + "heading": "See all appeals", + "description": "Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands.", + "icon": "list" + }, + "status-applications": { + "heading": "See all applications", + "description": "Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands.", + "icon": "list" + }, + "status-completions": { + "heading": "See all completions", + "description": "Everything sent in by an owner or firm whose building work is finished, and where each one stands.", + "icon": "list" + }, + "status-exemptions": { + "heading": "See all exemptions", + "description": "Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands.", + "icon": "list" + }, + "status-objections": { + "heading": "See all objections", + "description": "Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands.", + "icon": "list" + } + } + }, + "doors": { + "want-to-build": { + "heading": "Want to build", + "description": "For an owner or a firm with something to build, divide or change.", + "button": "Continue", + "icon": "", + "for_whom": "", + "behind": "To hear what we will allow before paying an architect, permission to build it, and to know where the case stands, to be allowed it anyway, with reasons on the record, the certificate that lets the building be used." + }, + "after-a-decision": { + "heading": "After a decision", + "description": "For someone who has had a decision from us and does not accept it.", + "button": "Continue", + "icon": "", + "for_whom": "", + "behind": "The decision looked at again, by us and then by the board." + }, + "work-as-a-firm": { + "heading": "Work as a firm", + "description": "For an architect or engineering firm that files for its clients.", + "button": "Continue", + "icon": "", + "for_whom": "", + "behind": "To be on the list, and then to file without asking again." + }, + "building-near-me": { + "heading": "Building near me", + "description": "For someone who lives next to what is being built.", + "button": "Continue", + "icon": "", + "for_whom": "", + "behind": "What they think on the record, and answered in the decision, to be told where it actually stands, us to go and look, and to hear that we did." + } + }, + "needs": {} + }, + "questions/inspectors/index.yaml": { + "question": "What needs doing?", + "description": "Everything inspectors looks after.", + "confirm": "Confirm", + "buckets": { + "applications": { + "heading": "Applications", + "description": "Sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner.", + "moves": {}, + "list_title": "Applications", + "list_note": "Each row is one case and the stage it has reached. Another desk moves these." + }, + "completions": { + "heading": "Completions", + "description": "Sent in by an owner or firm whose building work is finished.", + "moves": {}, + "list_title": "Completions", + "list_note": "Each row is one case and the stage it has reached. Another desk moves these." + }, + "illegal_building": { + "heading": "Illegal building", + "description": "Sent in by someone who can see building going up that nobody was told about.", + "moves": { + "explained->resolved": "Resolved", + "explained->dropped": "Nothing to pursue", + "open->inspected": "Inspected" + }, + "list_title": "Illegal building", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "inspections": { + "heading": "Inspections", + "description": "Sent in by an inspector on a scaffold with gloves on and the wind blowing.", + "moves": { + "deviation->as_approved": "Built as approved", + "deviation->put_right": "Put right", + "open->deviation": "Built differently" + }, + "list_title": "Inspections", + "list_note": "Each row is one case. The buttons record what you have just done with it." + } + }, + "links": { + "inspection-finding": { + "heading": "what they found logged before they climb down", + "description": "For an inspector on a scaffold with gloves on and the wind blowing.", + "button": "Open" + } + }, + "invites": { + "inspectors": { + "heading": "Invite someone into Inspectors", + "description": "They get an account, a place in Inspectors, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + } + }, + "invited": { + "heading": "Invitations sent", + "description": "Each invite with the link it made. Mark it done when the person is in.", + "done": "Is in", + "list_title": "Who has been invited", + "list_note": "Each row is one invitation, with the one-time link while it is unused." + } + }, + "questions/inspectors/inspection-finding-sent.yaml": { + "question": "What happens now?", + "description": "It has reached our inspectors.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back" + }, + "questions/inspectors/inspection-finding.yaml": { + "heading": "what they found logged before they climb down", + "description": "For an inspector on a scaffold with gloves on and the wind blowing.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "What happens next", + "road_description": "It is open, then built differently, and ends built as approved, put right or handed to a case officer.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Inspectors. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "case_number": "Case number", + "site_address": "Site address", + "what_i_found": "What i found", + "where": "Where" + }, + "hints": { + "case_number": "", + "site_address": "", + "what_i_found": "", + "where": "" + }, + "question": "Inspection finding?", + "page_description": "" + }, + "questions/received/appeal.yaml": { + "question": "What happens now?", + "description": "It has reached our case officers.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back", + "see_all": { + "heading": "See all appeals", + "description": "", + "button": "Open" + } + }, + "questions/received/case-status-enquiry.yaml": { + "question": "What happens now?", + "description": "It has reached our front desk.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back" + }, + "questions/received/completion-request.yaml": { + "question": "What happens now?", + "description": "It has reached our case officers.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back", + "see_all": { + "heading": "See all completions", + "description": "", + "button": "Open" + } + }, + "questions/received/exemption-request.yaml": { + "question": "What happens now?", + "description": "It has reached our case officers.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back", + "see_all": { + "heading": "See all exemptions", + "description": "", + "button": "Open" + } + }, + "questions/received/firm-approval.yaml": { + "question": "What happens now?", + "description": "It has reached our case officers.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back" + }, + "questions/received/illegal-building-report.yaml": { + "question": "What happens now?", + "description": "It has reached our inspectors.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back" + }, + "questions/received/objection.yaml": { + "question": "What happens now?", + "description": "It has reached our case officers.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back", + "see_all": { + "heading": "See all objections", + "description": "", + "button": "Open" + } + }, + "questions/received/pre-application-meeting.yaml": { + "question": "What happens now?", + "description": "It has reached our case officers.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back" + }, + "questions/received/small-works-application.yaml": { + "question": "What happens now?", + "description": "It has reached our case officers.", + "next_heading": "We read it and come back to you", + "next_description": "Questions in the meantime go to Solveig Hauge at byggesak@vestmark.example.", + "back": "Back", + "see_all": { + "heading": "See all applications", + "description": "", + "button": "Open" + } + }, + "questions/section_head/index.yaml": { + "question": "What needs doing?", + "description": "Everything head of section looks after.", + "confirm": "Confirm", + "buckets": { + "appeals": { + "heading": "Appeals", + "description": "Sent in by anyone with an interest who will not accept a decision of ours.", + "moves": { + "reconsidered->before_the_board": "With the appeals board", + "reconsidered->changed_by_us": "We changed our own decision" + }, + "list_title": "Appeals", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "applications": { + "heading": "Applications", + "description": "Sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner.", + "moves": { + "complete->refused": "Refused", + "on_hearing->refused": "Refused", + "recommended->approved": "Approved", + "recommended->approved_with_conditions": "Approved on conditions", + "recommended->refused": "Refused" + }, + "list_title": "Applications", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "completions": { + "heading": "Completions", + "description": "Sent in by an owner or firm whose building work is finished.", + "moves": { + "checked->temporary_permission": "Temporary permission to use", + "checked->certificate_issued": "Certificate issued", + "checked->refused": "Refused", + "open->refused": "Refused", + "temporary_permission->certificate_issued": "Certificate issued" + }, + "list_title": "Completions", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "exemptions": { + "heading": "Exemptions", + "description": "Sent in by someone whose plans break a rule in the zoning map.", + "moves": { + "county_answered->denied": "Denied", + "county_asked->denied": "Denied", + "open->denied": "Denied", + "recommended->granted": "Granted", + "recommended->denied": "Denied" + }, + "list_title": "Exemptions", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "firms": { + "heading": "Firms", + "description": "Sent in by an architect or engineering firm that files for its clients.", + "moves": { + "checked->approved": "Approved", + "checked->declined": "Declined", + "open->declined": "Declined", + "papers_missing->declined": "Declined" + }, + "list_title": "Firms", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "hearing_answers": { + "heading": "Hearing answers", + "description": "Sent in by a road, fire, heritage or county officer who has been asked about a case.", + "moves": {}, + "list_title": "Hearing answers", + "list_note": "Each row is one case and the stage it has reached. Another desk moves these." + }, + "hearings": { + "heading": "Hearings", + "description": "Sent in by a case officer sending a case out to the authority that must see it.", + "moves": {}, + "list_title": "Hearings", + "list_note": "Each row is one case and the stage it has reached. Another desk moves these." + }, + "illegal_building": { + "heading": "Illegal building", + "description": "Sent in by someone who can see building going up that nobody was told about.", + "moves": { + "inspected->fined": "Fined", + "open->fined": "Fined" + }, + "list_title": "Illegal building", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "inspections": { + "heading": "Inspections", + "description": "Sent in by an inspector on a scaffold with gloves on and the wind blowing.", + "moves": { + "deviation->escalated": "Handed to a case officer", + "open->escalated": "Handed to a case officer" + }, + "list_title": "Inspections", + "list_note": "Each row is one case. The buttons record what you have just done with it." + }, + "objections": { + "heading": "Objections", + "description": "Sent in by a neighbour who got a notice about what is planned next door.", + "moves": {}, + "list_title": "Objections", + "list_note": "Each row is one case and the stage it has reached. Another desk moves these." + } + }, + "links": {}, + "invites": { + "agencies": { + "heading": "Invite someone into Hearing bodies", + "description": "They get an account, a place in Hearing bodies, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "appeals_board": { + "heading": "Invite someone into Appeals board", + "description": "They get an account, a place in Appeals board, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "approved_firms": { + "heading": "Invite someone into Approved firms", + "description": "They get an account, a place in Approved firms, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "case_officers": { + "heading": "Invite someone into Case officers", + "description": "They get an account, a place in Case officers, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "front_desk": { + "heading": "Invite someone into Front desk", + "description": "They get an account, a place in Front desk, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "inspectors": { + "heading": "Invite someone into Inspectors", + "description": "They get an account, a place in Inspectors, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + }, + "section_head": { + "heading": "Invite someone into Head of section", + "description": "They get an account, a place in Head of section, and a one-time link to set their own password or passkey.", + "button": "Invite", + "form_title": "Who", + "form_description": "Their name, and the address the account and its one-time link go to.", + "labels": { + "name": "Name", + "email": "Email" + } + } + }, + "invited": { + "heading": "Invitations sent", + "description": "Each invite with the link it made. Mark it done when the person is in.", + "done": "Is in", + "list_title": "Who has been invited", + "list_note": "Each row is one invitation, with the one-time link while it is unused." + } + }, + "questions/status/appeals/index.yaml": { + "question": "What has been sent in about appeals?", + "description": "Everything sent in by anyone with an interest who will not accept a decision of ours, and where each one stands.", + "heading": "Appeals", + "list_description": "", + "list_title": "Appeals", + "list_note": "Each row is one case and the stage it has reached. Names and contact details are not shown here.", + "back": "Back" + }, + "questions/status/applications/index.yaml": { + "question": "What has been sent in about applications?", + "description": "Everything sent in by an owner applying for something small enough to file themselves or an approved firm filing on behalf of an owner, and where each one stands.", + "heading": "Applications", + "list_description": "", + "list_title": "Applications", + "list_note": "Each row is one case and the stage it has reached. Names and contact details are not shown here.", + "back": "Back" + }, + "questions/status/completions/index.yaml": { + "question": "What has been sent in about completions?", + "description": "Everything sent in by an owner or firm whose building work is finished, and where each one stands.", + "heading": "Completions", + "list_description": "", + "list_title": "Completions", + "list_note": "Each row is one case and the stage it has reached. Names and contact details are not shown here.", + "back": "Back" + }, + "questions/status/exemptions/index.yaml": { + "question": "What has been sent in about exemptions?", + "description": "Everything sent in by someone whose plans break a rule in the zoning map, and where each one stands.", + "heading": "Exemptions", + "list_description": "", + "list_title": "Exemptions", + "list_note": "Each row is one case and the stage it has reached. Names and contact details are not shown here.", + "back": "Back" + }, + "questions/status/objections/index.yaml": { + "question": "What has been sent in about objections?", + "description": "Everything sent in by a neighbour who got a notice about what is planned next door, and where each one stands.", + "heading": "Objections", + "list_description": "", + "list_title": "Objections", + "list_note": "Each row is one case and the stage it has reached. Names and contact details are not shown here.", + "back": "Back" + }, + "questions/want-to-build/index.yaml": { + "question": "What do you need?", + "description": "For an owner or a firm with something to build, divide or change.", + "needs": { + "pre-application-meeting": { + "heading": "to hear what we will allow before paying an architect", + "description": "For someone with an idea for a building and no drawings yet.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "What happens next", + "road_description": "It is open, then scheduled, then we have met, and ends written advice sent or cancelled.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "name": "Name", + "email": "Email", + "property_address": "Property address", + "what_you_want": "What you want", + "phone": "Phone", + "site": "Site" + }, + "hints": { + "name": "", + "email": "", + "property_address": "", + "what_you_want": "", + "phone": "", + "site": "" + } + }, + "small-works-application": { + "heading": "permission to build it, and to know where the case stands", + "description": "For an owner applying for something small enough to file themselves.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "What happens next", + "road_description": "It is open, then papers missing, then papers complete, then out to the neighbours and the agencies, then recommendation written, and ends approved, approved on conditions, refused or withdrawn.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "email": "Email", + "property_address": "Property address", + "property_number": "Property number", + "what_is_planned": "What is planned", + "neighbours_notified": "Neighbours notified", + "site": "Site", + "drawings_url": "Drawings url" + }, + "hints": { + "email": "", + "property_address": "", + "property_number": "", + "what_is_planned": "", + "neighbours_notified": "", + "site": "", + "drawings_url": "" + } + }, + "exemption-request": { + "heading": "to be allowed it anyway, with reasons on the record", + "description": "For someone whose plans break a rule in the zoning map.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "What you need", + "requires_description": "An application already with us, and the case number from its receipt.", + "requires_icon": "key", + "road_title": "What happens next", + "road_description": "It is open, then with the county, then the county has answered, then recommended, and ends granted, denied or withdrawn.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "email": "Email", + "case_number": "Case number", + "which_rule": "Which rule", + "why_it_should_be_allowed": "Why it should be allowed", + "site": "Site" + }, + "hints": { + "email": "", + "case_number": "", + "which_rule": "", + "why_it_should_be_allowed": "", + "site": "" + } + }, + "completion-request": { + "heading": "the certificate that lets the building be used", + "description": "For an owner or firm whose building work is finished.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "What you need", + "requires_description": "A case number, and the work finished or close enough to move in.", + "requires_icon": "key", + "road_title": "What happens next", + "road_description": "It is open, then checked against the inspections, then temporary permission to use, and ends certificate issued or refused.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "email": "Email", + "case_number": "Case number", + "property_address": "Property address", + "work_finished": "Work finished", + "asking_for": "Asking for", + "what_is_outstanding": "What is outstanding" + }, + "hints": { + "email": "", + "case_number": "", + "property_address": "", + "work_finished": "", + "asking_for": "", + "what_is_outstanding": "" + } + } + } + }, + "questions/work-as-a-firm/index.yaml": { + "question": "What do you need?", + "description": "For an architect or engineering firm that files for its clients.", + "needs": { + "firm-approval": { + "heading": "to be on the list, and then to file without asking again", + "description": "For an architect or engineering firm that files for its clients.", + "button": "Send", + "encouragement": "", + "icon": "", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "What happens next", + "road_description": "It is open, then waiting on papers, then papers checked, and ends approved or declined.", + "road_icon": "route", + "who_title": "Who reads it", + "who_description": "Case officers. Questions go to Solveig Hauge at byggesak@vestmark.example.", + "who_icon": "users", + "form_title": "Details", + "form_description": "", + "labels": { + "firm_name": "Firm name", + "org_number": "Org number", + "email": "Email", + "qualified_for": "Qualified for", + "insurance_expires": "Insurance expires", + "insurance_document": "Insurance document" + }, + "hints": { + "firm_name": "", + "org_number": "", + "email": "", + "qualified_for": "", + "insurance_expires": "", + "insurance_document": "" + } + } + } + } +} \ No newline at end of file