Bring the trainer in (uhhm/portal-trainer main, history kept)

git-subtree-dir: vendor/trainer
git-subtree-mainline: c7c2956e15
git-subtree-split: a2a9f4edcf
This commit is contained in:
Bendik Aagaard Lynghaug
2026-09-30 15:23:15 +02:00
1713 changed files with 154105 additions and 0 deletions
@@ -0,0 +1,43 @@
aggregates:
- bucket: enquiries
initial: open
states:
open: { event: received }
quoted: { event: quoted }
won: { event: won }
lost: { event: lost }
transitions:
open: [quoted, lost]
quoted: [won, lost]
- bucket: subcontractors
initial: open
states:
open: { event: applied }
awaiting_papers: { event: papers_requested }
approved: { event: approved }
declined: { event: declined }
transitions:
open: [awaiting_papers, approved, declined]
awaiting_papers: [approved, declined]
- bucket: applicants
initial: open
states:
open: { event: applied }
interviewing: { event: invited }
hired: { event: hired }
declined: { event: declined }
transitions:
open: [interviewing, declined]
interviewing: [hired, declined]
- bucket: site_issues
initial: open
states:
open: { event: reported }
in_hand: { event: assessed }
closed: { event: closed }
transitions:
open: [in_hand]
in_hand: [closed]
@@ -0,0 +1,10 @@
{"id":"housing-board-cracks@/","choice":"Get someone to look at a building","confidence":0.93}
{"id":"homeowner-leaking-roof@/","choice":"Get someone to look at a building","confidence":0.92}
{"id":"homeowner-extension@/","choice":"Get a price for a build","confidence":0.72}
{"id":"owner-basement-conversion@/","choice":"Get a price for a build","confidence":0.72}
{"id":"electrician-more-work@/","choice":"Join our subcontractor list","confidence":0.9}
{"id":"scaffolding-firm@/","choice":"Join our subcontractor list","confidence":0.9}
{"id":"apprentice-asking@/","choice":"Ask about working with us","confidence":0.62}
{"id":"experienced-carpenter@/","choice":"Ask about working with us","confidence":0.62}
{"id":"crew-loose-scaffold@/","choice":"Report something from site","confidence":0.92}
{"id":"subcontractor-wrong-delivery@/","choice":"Report something from site","confidence":0.88}
@@ -0,0 +1,10 @@
{"id":"housing-board-cracks@/","choice":"Get someone to look at a building","confidence":0.97}
{"id":"homeowner-leaking-roof@/","choice":"Get someone to look at a building","confidence":0.96}
{"id":"homeowner-extension@/","choice":"Get a price for a build","confidence":0.95}
{"id":"owner-basement-conversion@/","choice":"Get a price for a build","confidence":0.95}
{"id":"electrician-more-work@/","choice":"Join our subcontractor list","confidence":0.97}
{"id":"scaffolding-firm@/","choice":"Join our subcontractor list","confidence":0.97}
{"id":"apprentice-asking@/","choice":"Ask about working with us","confidence":0.96}
{"id":"experienced-carpenter@/","choice":"Ask about working with us","confidence":0.95}
{"id":"crew-loose-scaffold@/","choice":"Report something from site","confidence":0.95}
{"id":"subcontractor-wrong-delivery@/","choice":"Report something from site","confidence":0.93}
@@ -0,0 +1,124 @@
needs:
- id: survey-enquiry
who: a housing board member or private owner with a problem in a building
wants: someone from Nordvik Bygg to come and look at the building and tell them what a fix would cost
via: Get someone to look at a building
lands_in: enquiries
handled_by: project_managers
done_when: [won, lost]
max_steps: 1
max_fields: 4
- id: build-price-enquiry
who: an owner who already knows what they want built
wants: drawings, a permit application and a price for the work
via: Get a price for a build
lands_in: enquiries
handled_by: project_managers
done_when: [won, lost]
max_steps: 1
max_fields: 5
- id: subcontractor-application
who: a trade firm doing electrical, plumbing or scaffolding work
wants: to get on Nordvik Bygg's list of subcontractors they call for work
lands_in: subcontractors
handled_by: project_managers
done_when: [approved, declined]
max_steps: 1
max_fields: 5
- id: job-application
who: a carpenter or apprentice looking for work
wants: to find out if Nordvik Bygg is hiring and put themselves forward
lands_in: applicants
handled_by: project_managers
done_when: [hired, declined]
max_steps: 1
max_fields: 4
- id: report-site-issue
who: a crew member on site, ours or a subcontractor's
wants: to flag a hazard, a near miss or wrong materials fast, from their phone
lands_in: site_issues
handled_by: safety_officer
done_when: [closed]
max_steps: 1
max_fields: 3
- id: log-phone-enquiry
who: a project manager who just took a call, email or text about a building
wants: to get the enquiry into the system before it gets lost
enters: /desk/phone-enquiry
enters_as: project_managers
lands_in: enquiries
handled_by: project_managers
done_when: [won, lost]
max_steps: 1
max_fields: 5
personas:
- id: housing-board-cracks
need: survey-enquiry
text: >
There are cracks running up the outside wall of our building and none
of us know if it's serious. We just want someone qualified to come
look at it and tell us what we're dealing with.
- id: homeowner-leaking-roof
need: survey-enquiry
text: >
Water's coming through the ceiling every time it rains. I don't know
if it's the roof or something else, I just want someone to come out
and have a look before it gets worse.
- id: homeowner-extension
need: build-price-enquiry
text: >
We want to add a room above the garage. We know roughly what we want,
we just need someone to draw it up, sort the paperwork with the
municipality, and tell us what it will cost.
- id: owner-basement-conversion
need: build-price-enquiry
text: >
I'd like to turn the basement into a flat. Need drawings, the permit
sorted, and a proper price before I commit to anything.
- id: electrician-more-work
need: subcontractor-application
text: >
We're a small electrical firm and we'd like to pick up more building
work. We're registered and insured, just need to know who to talk to
about getting on your books.
- id: scaffolding-firm
need: subcontractor-application
text: >
We put up and take down scaffolding for building sites. We'd like to
be one of the firms you call when a job needs it.
- id: apprentice-asking
need: job-application
text: >
I'm in my second year as an apprentice carpenter and looking for a
firm that'll keep me on after. Are you taking anyone on right now?
- id: experienced-carpenter
need: job-application
text: >
I've been doing carpentry for eight years, mostly older buildings.
Wondered if you had any openings on site.
- id: crew-loose-scaffold
need: report-site-issue
text: >
Noticed a scaffold board that's not sitting right, feels loose when
you step on it. Wanted to flag it straight away before someone gets
hurt, but I've got gloves on and no time for a long form.
- id: subcontractor-wrong-delivery
need: report-site-issue
text: >
The delivery this morning was the wrong type of insulation, not what
was on the drawings. Someone needs to know before it gets used.
@@ -0,0 +1,9 @@
name: What happens with your application now?
description: >
A project manager reads every application. If it looks like a good fit
we'll be in touch to arrange an interview.
alternatives:
- name: Back to the start
description: Return to the front page.
action: /
consequence: [Back]
@@ -0,0 +1 @@
qualifies: project_managers
@@ -0,0 +1,58 @@
name: What came in?
responsible: { name: Ingrid Nordvik, contact: ingrid@nordvikbygg.example }
alternatives:
- name: Enquiries
description: Move each enquiry on as you work it.
action: /desk
consequence: [Update]
features:
- name: ""
description: ""
resource:
source: { kind: kv, bucket: enquiries }
requires_group: project_managers
transitions:
- { to: quoted, label: Quote sent }
- { to: lost, label: Not for us }
- { from: quoted, to: won, label: Won }
- { from: quoted, to: lost, label: Lost }
- name: Subcontractors
description: Check papers and approve or decline each application.
action: /desk
consequence: [Update]
features:
- name: ""
description: ""
resource:
source: { kind: kv, bucket: subcontractors }
requires_group: project_managers
transitions:
- { to: awaiting_papers, label: Ask for missing papers }
- { to: approved, label: Approve }
- { to: declined, label: Decline }
- { from: awaiting_papers, to: approved, label: Approve }
- { from: awaiting_papers, to: declined, label: Decline }
- name: Applicants
description: Move each job application through interview to a decision.
action: /desk
consequence: [Update]
features:
- name: ""
description: ""
resource:
source: { kind: kv, bucket: applicants }
requires_group: project_managers
transitions:
- { to: interviewing, label: Invite to interview }
- { to: declined, label: Decline }
- { from: interviewing, to: hired, label: Hire }
- { from: interviewing, to: declined, label: Decline }
- name: Log a call, email or text
description: >
Get an enquiry that came in by phone, email or text into the system
before it's lost.
action: /desk/phone-enquiry
consequence: [Log it]
@@ -0,0 +1,9 @@
name: What happens with this enquiry now?
description: >
It's in with the rest of the enquiries on the desk, ready to work the
same way as one that came in through the front page.
alternatives:
- name: Back to the start
description: Return to the front page.
action: /
consequence: [Back]
@@ -0,0 +1,20 @@
name: What did they tell you?
description: >
Get it down before it gets lost. This creates the same kind of record
as one submitted through the front page.
responsible: { name: Ingrid Nordvik, contact: ingrid@nordvikbygg.example }
alternatives:
- name: Log this enquiry
description: ""
action: /desk/phone-enquiry-logged
consequence: [Save]
record_as: enquiries
features:
- name: About the caller and the building
description: ""
requirements:
- { name: caller_name, label: Their name, type: text }
- { name: contact, label: Phone or email, type: text }
- { name: address, label: Address of the building, type: text }
- { name: problem, label: What they told you, type: textarea }
- { name: urgency, label: How soon, type: select, options: [This week, This month, No rush] }
@@ -0,0 +1,11 @@
name: What happens with your enquiry now?
description: >
One of our two project managers reads every enquiry as it comes in.
We'll usually be in touch within a couple of working days to arrange a
look at the building, or to say plainly if it's not something we take
on.
alternatives:
- name: Back to the start
description: Return to the front page.
action: /
consequence: [Back]
@@ -0,0 +1,85 @@
name: What brings you here?
description: >
Pick what best matches why you're here today.
responsible: { name: Ingrid Nordvik, contact: ingrid@nordvikbygg.example }
alternatives:
- name: Get someone to look at a building
description: >
For housing boards and private owners with a problem in a building
who want us to come and take a look.
action: /enquiries/thanks
consequence: [Send]
record_as: enquiries
features:
- name: About you and the building
description: ""
requirements:
- { name: name, label: Your name, type: text }
- { name: email, label: Email, type: email }
- { name: address, label: Address of the building, type: text }
- { name: problem, label: What's wrong, type: textarea }
- name: Get a price for a build
description: >
For owners who already know what they want built and need drawings,
a permit application and a price.
action: /enquiries/thanks
consequence: [Send]
record_as: enquiries
features:
- name: About you and the build
description: ""
requirements:
- { name: name, label: Your name, type: text }
- { name: email, label: Email, type: email }
- { name: address, label: Address of the site, type: text }
- { name: project, label: What you want built, type: textarea }
- { name: timeframe, label: When you'd like to start, type: select, options: [As soon as possible, Within a year, Just exploring] }
- name: Join our subcontractor list
description: >
For electrical, plumbing and scaffolding firms who want to be one of
the firms we call when a job needs them.
action: /subcontractors/thanks
consequence: [Apply]
record_as: subcontractors
features:
- name: About your firm
description: ""
requirements:
- { name: company_name, label: Company name, type: text }
- { name: contact_email, label: Email, type: email }
- { name: trade, label: Trade, type: select, options: [Electrical, Plumbing, Scaffolding] }
- { name: registration_number, label: Company registration number, type: text }
- { name: insurance, label: Insurance policy details, type: text }
- { name: trade_approval, label: Trade approval reference, optional: true }
- name: Ask about working with us
description: >
For carpenters and apprentices who want to know if we're hiring.
action: /applicants/thanks
consequence: [Send]
record_as: applicants
features:
- name: About you
description: ""
requirements:
- { name: name, label: Your name, type: text }
- { name: email, label: Email, type: email }
- { name: role, label: What you do, type: select, options: [Carpenter, Apprentice carpenter, Other] }
- { name: message, label: Anything else we should know, type: textarea }
- name: Report something from site
description: >
For crew on site, ours or a subcontractor's, who've spotted a hazard,
a near miss or the wrong materials.
action: /site-issues/thanks
consequence: [Report it]
record_as: site_issues
features:
- name: What's happened
description: ""
requirements:
- { name: issue_type, label: What kind of issue, type: select, options: [Hazard, Near miss, Wrong materials delivered] }
- { name: location, label: Where on site, type: text }
- { name: details, label: What happened, type: textarea }
@@ -0,0 +1 @@
qualifies: safety_officer
@@ -0,0 +1,16 @@
name: What's been reported from site?
responsible: { name: Ingrid Nordvik, contact: ingrid@nordvikbygg.example }
alternatives:
- name: Site issues
description: Decide what needs doing, then close it out once it's fixed.
action: /safety
consequence: [Update]
features:
- name: ""
description: ""
resource:
source: { kind: kv, bucket: site_issues }
requires_group: safety_officer
transitions:
- { to: in_hand, label: Look into it }
- { from: in_hand, to: closed, label: Mark fixed }
@@ -0,0 +1,9 @@
name: What happens with your report now?
description: >
Our safety officer sees every report as it comes in and decides what
needs to be done. You'll see it marked fixed once it's sorted.
alternatives:
- name: Back to the start
description: Return to the front page.
action: /
consequence: [Back]
@@ -0,0 +1,10 @@
name: What happens with your application now?
description: >
A project manager checks your company registration, trade approval and
insurance. If anything's missing we'll come back to you for it before
we can put you on the list.
alternatives:
- name: Back to the start
description: Return to the front page.
action: /
consequence: [Back]
@@ -0,0 +1,3 @@
needs: parsed in round 1
structure round 1: ok=true fails=0
wording round 0: headings only: wording: 10/10 routed right (100%) | headings and descriptions: wording: 10/10 routed right (100%)
@@ -0,0 +1,2 @@
title: Nordvik Bygg
lang: en
@@ -0,0 +1,10 @@
{"id":"housing-board-cracks@/","persona":"housing-board-cracks","need":"survey-enquiry","page":"/","state":{"body":"There are cracks running up the outside wall of our building and none of us know if it's serious. We just want someone qualified to come look at it and tell us what we're dealing with."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Get someone to look at a building"]}
{"id":"homeowner-leaking-roof@/","persona":"homeowner-leaking-roof","need":"survey-enquiry","page":"/","state":{"body":"Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Get someone to look at a building"]}
{"id":"homeowner-extension@/","persona":"homeowner-extension","need":"build-price-enquiry","page":"/","state":{"body":"We want to add a room above the garage. We know roughly what we want, we just need someone to draw it up, sort the paperwork with the municipality, and tell us what it will cost."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Get a price for a build"]}
{"id":"owner-basement-conversion@/","persona":"owner-basement-conversion","need":"build-price-enquiry","page":"/","state":{"body":"I'd like to turn the basement into a flat. Need drawings, the permit sorted, and a proper price before I commit to anything."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Get a price for a build"]}
{"id":"electrician-more-work@/","persona":"electrician-more-work","need":"subcontractor-application","page":"/","state":{"body":"We're a small electrical firm and we'd like to pick up more building work. We're registered and insured, just need to know who to talk to about getting on your books."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Join our subcontractor list"]}
{"id":"scaffolding-firm@/","persona":"scaffolding-firm","need":"subcontractor-application","page":"/","state":{"body":"We put up and take down scaffolding for building sites. We'd like to be one of the firms you call when a job needs it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Join our subcontractor list"]}
{"id":"apprentice-asking@/","persona":"apprentice-asking","need":"job-application","page":"/","state":{"body":"I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after. Are you taking anyone on right now?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Ask about working with us"]}
{"id":"experienced-carpenter@/","persona":"experienced-carpenter","need":"job-application","page":"/","state":{"body":"I've been doing carpentry for eight years, mostly older buildings. Wondered if you had any openings on site."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Ask about working with us"]}
{"id":"crew-loose-scaffold@/","persona":"crew-loose-scaffold","need":"report-site-issue","page":"/","state":{"body":"Noticed a scaffold board that's not sitting right, feels loose when you step on it. Wanted to flag it straight away before someone gets hurt, but I've got gloves on and no time for a long form."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Report something from site"]}
{"id":"subcontractor-wrong-delivery@/","persona":"subcontractor-wrong-delivery","need":"report-site-issue","page":"/","state":{"body":"The delivery this morning was the wrong type of insulation, not what was on the drawings. Someone needs to know before it gets used."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Report something from site"]}
@@ -0,0 +1,10 @@
{"id":"housing-board-cracks@/","persona":"housing-board-cracks","need":"survey-enquiry","page":"/","state":{"body":"There are cracks running up the outside wall of our building and none of us know if it's serious. We just want someone qualified to come look at it and tell us what we're dealing with."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Get someone to look at a building"]}
{"id":"homeowner-leaking-roof@/","persona":"homeowner-leaking-roof","need":"survey-enquiry","page":"/","state":{"body":"Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Get someone to look at a building"]}
{"id":"homeowner-extension@/","persona":"homeowner-extension","need":"build-price-enquiry","page":"/","state":{"body":"We want to add a room above the garage. We know roughly what we want, we just need someone to draw it up, sort the paperwork with the municipality, and tell us what it will cost."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Get a price for a build"]}
{"id":"owner-basement-conversion@/","persona":"owner-basement-conversion","need":"build-price-enquiry","page":"/","state":{"body":"I'd like to turn the basement into a flat. Need drawings, the permit sorted, and a proper price before I commit to anything."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Get a price for a build"]}
{"id":"electrician-more-work@/","persona":"electrician-more-work","need":"subcontractor-application","page":"/","state":{"body":"We're a small electrical firm and we'd like to pick up more building work. We're registered and insured, just need to know who to talk to about getting on your books."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Join our subcontractor list"]}
{"id":"scaffolding-firm@/","persona":"scaffolding-firm","need":"subcontractor-application","page":"/","state":{"body":"We put up and take down scaffolding for building sites. We'd like to be one of the firms you call when a job needs it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Join our subcontractor list"]}
{"id":"apprentice-asking@/","persona":"apprentice-asking","need":"job-application","page":"/","state":{"body":"I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after. Are you taking anyone on right now?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Ask about working with us"]}
{"id":"experienced-carpenter@/","persona":"experienced-carpenter","need":"job-application","page":"/","state":{"body":"I've been doing carpentry for eight years, mostly older buildings. Wondered if you had any openings on site."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Ask about working with us"]}
{"id":"crew-loose-scaffold@/","persona":"crew-loose-scaffold","need":"report-site-issue","page":"/","state":{"body":"Noticed a scaffold board that's not sitting right, feels loose when you step on it. Wanted to flag it straight away before someone gets hurt, but I've got gloves on and no time for a long form."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Report something from site"]}
{"id":"subcontractor-wrong-delivery@/","persona":"subcontractor-wrong-delivery","need":"report-site-issue","page":"/","state":{"body":"The delivery this morning was the wrong type of insulation, not what was on the drawings. Someone needs to know before it gets used."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Report something from site"]}
@@ -0,0 +1,4 @@
needs round 1: needs.yaml parses, frozen
structure round 1: green
wording round 0: headings only: wording: 10/10 routed right (100%) | headings and descriptions: wording: 10/10 routed right (100%)
content repo written to /tmp/claude-1000/-home-bl-repos-portal/b7802cea-728f-42d2-a751-680a973ba17d/scratchpad/gen/repo
@@ -0,0 +1,10 @@
{"id":"housing-board-damp@/","choice":"Get someone to look at a building","confidence":0.99}
{"id":"buyer-before-purchase@/","choice":"Get someone to look at a building","confidence":0.99}
{"id":"attic-conversion@/","choice":"Get a price for a build","confidence":0.99}
{"id":"shop-to-flat@/","choice":"Get a price for a build","confidence":0.99}
{"id":"electrician-firm@/","choice":"Join our subcontractor list","confidence":0.99}
{"id":"scaffolder@/","choice":"Join our subcontractor list","confidence":0.99}
{"id":"carpenter-jobseeker@/","choice":"Ask about working with us","confidence":0.99}
{"id":"apprentice@/","choice":"Ask about working with us","confidence":0.99}
{"id":"loose-railing@/","choice":"Report something from site","confidence":0.99}
{"id":"wrong-membrane@/","choice":"Report something from site","confidence":0.99}
@@ -0,0 +1,10 @@
{"id":"housing-board-damp@/","choice":"Get someone to look at a building","confidence":0.95}
{"id":"buyer-before-purchase@/","choice":"Get someone to look at a building","confidence":0.95}
{"id":"attic-conversion@/","choice":"Get someone to look at a building","confidence":0.95}
{"id":"shop-to-flat@/","choice":"Get a price for a build","confidence":0.95}
{"id":"electrician-firm@/","choice":"Join our subcontractor list","confidence":0.95}
{"id":"scaffolder@/","choice":"Ask about working with us","confidence":0.95}
{"id":"carpenter-jobseeker@/","choice":"Ask about working with us","confidence":0.95}
{"id":"apprentice@/","choice":"Ask about working with us","confidence":0.95}
{"id":"loose-railing@/","choice":"Report something from site","confidence":0.95}
{"id":"wrong-membrane@/","choice":"Report something from site","confidence":0.95}
@@ -0,0 +1,10 @@
{"id":"housing-board-damp@/","persona":"housing-board-damp","need":"survey-enquiry","page":"/","state":{"body":"I chair the board of a housing cooperative from the seventies. Two ground-floor flats have damp in the walls and we don't know if it's drainage or the facade. We need someone to tell us."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Get someone to look at a building"]}
{"id":"buyer-before-purchase@/","persona":"buyer-before-purchase","need":"survey-enquiry","page":"/","state":{"body":"We are about to buy an old timber house. Before we sign we want a professional to go through it and tell us what is wrong with it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Get someone to look at a building"]}
{"id":"attic-conversion@/","persona":"attic-conversion","need":"build-price-enquiry","page":"/","state":{"body":"We want to turn our attic into two bedrooms and a bathroom. We need drawings and someone who handles the application to the municipality."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Get a price for a build"]}
{"id":"shop-to-flat@/","persona":"shop-to-flat","need":"build-price-enquiry","page":"/","state":{"body":"I own a former shop on the ground floor and want to make it a flat. I have no idea what is allowed. Can you sort that out and give me a price?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Get a price for a build"]}
{"id":"electrician-firm@/","persona":"electrician-firm","need":"subcontractor-application","page":"/","state":{"body":"We are a four-person electrical firm, fully certified. We would like to get on your list so you call us when you need electricians."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Join our subcontractor list"]}
{"id":"scaffolder@/","persona":"scaffolder","need":"subcontractor-application","page":"/","state":{"body":"I run a scaffolding company. How do I get to do jobs for you?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Join our subcontractor list"]}
{"id":"carpenter-jobseeker@/","persona":"carpenter-jobseeker","need":"job-application","page":"/","state":{"body":"I'm a certified carpenter with eight years on rehabilitation jobs. Are you hiring?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Ask about working with us"]}
{"id":"apprentice@/","persona":"apprentice","need":"job-application","page":"/","state":{"body":"I finish vocational school this spring and need an apprenticeship as a bricklayer."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Ask about working with us"]}
{"id":"loose-railing@/","persona":"loose-railing","need":"report-site-issue","page":"/","state":{"body":"The railing on the third level of the scaffold on the north side is loose. Nobody got hurt but someone will."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Report something from site"]}
{"id":"wrong-membrane@/","persona":"wrong-membrane","need":"report-site-issue","page":"/","state":{"body":"The bathroom membrane delivered today is not the one in the specification. We stopped work on it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"For carpenters and apprentices who want to know if we're hiring.","Get a price for a build":"For owners who already know what they want built and need drawings, a permit application and a price.","Get someone to look at a building":"For housing boards and private owners with a problem in a building who want us to come and take a look.","Join our subcontractor list":"For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.","Report something from site":"For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials."}}},"expect":["Report something from site"]}
@@ -0,0 +1,10 @@
{"id":"housing-board-damp@/","persona":"housing-board-damp","need":"survey-enquiry","page":"/","state":{"body":"I chair the board of a housing cooperative from the seventies. Two ground-floor flats have damp in the walls and we don't know if it's drainage or the facade. We need someone to tell us."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Get someone to look at a building"]}
{"id":"buyer-before-purchase@/","persona":"buyer-before-purchase","need":"survey-enquiry","page":"/","state":{"body":"We are about to buy an old timber house. Before we sign we want a professional to go through it and tell us what is wrong with it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Get someone to look at a building"]}
{"id":"attic-conversion@/","persona":"attic-conversion","need":"build-price-enquiry","page":"/","state":{"body":"We want to turn our attic into two bedrooms and a bathroom. We need drawings and someone who handles the application to the municipality."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Get a price for a build"]}
{"id":"shop-to-flat@/","persona":"shop-to-flat","need":"build-price-enquiry","page":"/","state":{"body":"I own a former shop on the ground floor and want to make it a flat. I have no idea what is allowed. Can you sort that out and give me a price?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Get a price for a build"]}
{"id":"electrician-firm@/","persona":"electrician-firm","need":"subcontractor-application","page":"/","state":{"body":"We are a four-person electrical firm, fully certified. We would like to get on your list so you call us when you need electricians."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Join our subcontractor list"]}
{"id":"scaffolder@/","persona":"scaffolder","need":"subcontractor-application","page":"/","state":{"body":"I run a scaffolding company. How do I get to do jobs for you?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Join our subcontractor list"]}
{"id":"carpenter-jobseeker@/","persona":"carpenter-jobseeker","need":"job-application","page":"/","state":{"body":"I'm a certified carpenter with eight years on rehabilitation jobs. Are you hiring?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Ask about working with us"]}
{"id":"apprentice@/","persona":"apprentice","need":"job-application","page":"/","state":{"body":"I finish vocational school this spring and need an apprenticeship as a bricklayer."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Ask about working with us"]}
{"id":"loose-railing@/","persona":"loose-railing","need":"report-site-issue","page":"/","state":{"body":"The railing on the third level of the scaffold on the north side is loose. Nobody got hurt but someone will."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Report something from site"]}
{"id":"wrong-membrane@/","persona":"wrong-membrane","need":"report-site-issue","page":"/","state":{"body":"The bathroom membrane delivered today is not the one in the specification. We stopped work on it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Ask about working with us":"Ask about working with us","Get a price for a build":"Get a price for a build","Get someone to look at a building":"Get someone to look at a building","Join our subcontractor list":"Join our subcontractor list","Report something from site":"Report something from site"}}},"expect":["Report something from site"]}
@@ -0,0 +1,720 @@
{
"buckets": {
"applicants": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Invite to interview",
"to": "interviewing"
},
{
"from": "open",
"label": "Decline",
"to": "declined"
},
{
"from": "interviewing",
"label": "Hire",
"to": "hired"
},
{
"from": "interviewing",
"label": "Decline",
"to": "declined"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"interviewing": [
"hired",
"declined"
],
"open": [
"interviewing",
"declined"
]
}
},
"enquiries": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Looked at the building",
"to": "surveyed"
},
{
"from": "surveyed",
"label": "Quote sent",
"to": "quoted"
},
{
"from": "surveyed",
"label": "Not worth quoting",
"to": "lost"
},
{
"from": "open",
"label": "Not for us",
"to": "lost"
},
{
"from": "quoted",
"label": "Won",
"to": "won"
},
{
"from": "quoted",
"label": "Lost",
"to": "lost"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"open": [
"surveyed",
"lost"
],
"quoted": [
"won",
"lost"
],
"surveyed": [
"quoted",
"lost"
]
}
},
"site_issues": {
"desks": [
{
"group": "safety_officer",
"moves": [
{
"from": "open",
"label": "Look into it",
"to": "in_hand"
},
{
"from": "in_hand",
"label": "Mark fixed",
"to": "closed"
}
],
"page": "/safety"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"in_hand": [
"closed"
],
"open": [
"in_hand"
]
}
},
"subcontractors": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Ask for missing papers",
"to": "awaiting_papers"
},
{
"from": "open",
"label": "Approve",
"to": "approved"
},
{
"from": "open",
"label": "Decline",
"to": "declined"
},
{
"from": "awaiting_papers",
"label": "Approve",
"to": "approved"
},
{
"from": "awaiting_papers",
"label": "Decline",
"to": "declined"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"awaiting_papers": [
"approved",
"declined"
],
"open": [
"awaiting_papers",
"approved",
"declined"
]
}
}
},
"needs": [
{
"done_when": [
"won",
"lost"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "survey-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Get someone to look at a building",
"expect": [
"Get someone to look at a building"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Address of the building",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What's wrong",
"name": "problem",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "Submission of requests pertaining to structural or condition-related evaluation of existing properties.",
"name": "Building condition assessment request"
},
{
"description": "Applicants must provide documentation of intended works for the purposes of cost estimation.",
"name": "Construction quotation request"
},
{
"description": "Registration of enterprises for prequalification subject to verification of mandatory documentation.",
"name": "Subcontractor prequalification"
},
{
"description": "Unsolicited applications are processed in accordance with applicable recruitment procedures.",
"name": "Employment enquiries"
},
{
"description": "Mandatory registration of nonconformities in accordance with internal control requirements.",
"name": "Deviation and incident reporting"
}
],
"page": "/",
"question": "Please select the applicable category for your submission"
}
],
"success": [
"won"
],
"wants": "someone from Nordvik Bygg to come and look at the building and tell them what a fix would cost",
"who": "a housing board member or private owner with a problem in a building"
},
{
"done_when": [
"won",
"lost"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "build-price-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Get a price for a build",
"expect": [
"Get a price for a build"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Address of the site",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What you want built",
"name": "project",
"optional": false,
"options": [],
"type": "textarea"
},
{
"label": "When you'd like to start",
"name": "timeframe",
"optional": false,
"options": [
"As soon as possible",
"Within a year",
"Just exploring"
],
"type": "select"
}
],
"options": [
{
"description": "Submission of requests pertaining to structural or condition-related evaluation of existing properties.",
"name": "Building condition assessment request"
},
{
"description": "Applicants must provide documentation of intended works for the purposes of cost estimation.",
"name": "Construction quotation request"
},
{
"description": "Registration of enterprises for prequalification subject to verification of mandatory documentation.",
"name": "Subcontractor prequalification"
},
{
"description": "Unsolicited applications are processed in accordance with applicable recruitment procedures.",
"name": "Employment enquiries"
},
{
"description": "Mandatory registration of nonconformities in accordance with internal control requirements.",
"name": "Deviation and incident reporting"
}
],
"page": "/",
"question": "Please select the applicable category for your submission"
}
],
"success": [
"won"
],
"wants": "drawings, a permit application and a price for the work",
"who": "an owner who already knows what they want built"
},
{
"done_when": [
"approved",
"declined"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "subcontractor-application",
"lands_in": "subcontractors",
"steps": [
{
"alternative": "Join our subcontractor list",
"expect": [
"Join our subcontractor list"
],
"fields": [
{
"label": "Company name",
"name": "company_name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "contact_email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Trade",
"name": "trade",
"optional": false,
"options": [
"Electrical",
"Plumbing",
"Scaffolding"
],
"type": "select"
},
{
"label": "Company registration number",
"name": "registration_number",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Insurance policy details",
"name": "insurance",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Trade approval reference",
"name": "trade_approval",
"optional": true,
"options": [],
"type": "text"
}
],
"options": [
{
"description": "Submission of requests pertaining to structural or condition-related evaluation of existing properties.",
"name": "Building condition assessment request"
},
{
"description": "Applicants must provide documentation of intended works for the purposes of cost estimation.",
"name": "Construction quotation request"
},
{
"description": "Registration of enterprises for prequalification subject to verification of mandatory documentation.",
"name": "Subcontractor prequalification"
},
{
"description": "Unsolicited applications are processed in accordance with applicable recruitment procedures.",
"name": "Employment enquiries"
},
{
"description": "Mandatory registration of nonconformities in accordance with internal control requirements.",
"name": "Deviation and incident reporting"
}
],
"page": "/",
"question": "Please select the applicable category for your submission"
}
],
"success": [
"approved"
],
"wants": "to get on Nordvik Bygg's list of subcontractors they call for work",
"who": "a trade firm doing electrical, plumbing or scaffolding work"
},
{
"done_when": [
"hired",
"declined"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "job-application",
"lands_in": "applicants",
"steps": [
{
"alternative": "Ask about working with us",
"expect": [
"Ask about working with us"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "What you do",
"name": "role",
"optional": false,
"options": [
"Carpenter",
"Apprentice carpenter",
"Other"
],
"type": "select"
},
{
"label": "Anything else we should know",
"name": "message",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "Submission of requests pertaining to structural or condition-related evaluation of existing properties.",
"name": "Building condition assessment request"
},
{
"description": "Applicants must provide documentation of intended works for the purposes of cost estimation.",
"name": "Construction quotation request"
},
{
"description": "Registration of enterprises for prequalification subject to verification of mandatory documentation.",
"name": "Subcontractor prequalification"
},
{
"description": "Unsolicited applications are processed in accordance with applicable recruitment procedures.",
"name": "Employment enquiries"
},
{
"description": "Mandatory registration of nonconformities in accordance with internal control requirements.",
"name": "Deviation and incident reporting"
}
],
"page": "/",
"question": "Please select the applicable category for your submission"
}
],
"success": [
"hired"
],
"wants": "to find out if Nordvik Bygg is hiring and put themselves forward",
"who": "a carpenter or apprentice looking for work"
},
{
"done_when": [
"closed"
],
"enters_as": null,
"handled_by": "safety_officer",
"id": "report-site-issue",
"lands_in": "site_issues",
"steps": [
{
"alternative": "Report something from site",
"expect": [
"Report something from site"
],
"fields": [
{
"label": "What kind of issue",
"name": "issue_type",
"optional": false,
"options": [
"Hazard",
"Near miss",
"Wrong materials delivered"
],
"type": "select"
},
{
"label": "Where on site",
"name": "location",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What happened",
"name": "details",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "Submission of requests pertaining to structural or condition-related evaluation of existing properties.",
"name": "Building condition assessment request"
},
{
"description": "Applicants must provide documentation of intended works for the purposes of cost estimation.",
"name": "Construction quotation request"
},
{
"description": "Registration of enterprises for prequalification subject to verification of mandatory documentation.",
"name": "Subcontractor prequalification"
},
{
"description": "Unsolicited applications are processed in accordance with applicable recruitment procedures.",
"name": "Employment enquiries"
},
{
"description": "Mandatory registration of nonconformities in accordance with internal control requirements.",
"name": "Deviation and incident reporting"
}
],
"page": "/",
"question": "Please select the applicable category for your submission"
}
],
"success": [
"closed"
],
"wants": "to flag a hazard, a near miss or wrong materials fast, from their phone",
"who": "a crew member on site, ours or a subcontractor's"
},
{
"done_when": [
"won",
"lost"
],
"enters_as": "project_managers",
"handled_by": "project_managers",
"id": "log-phone-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Log this enquiry",
"expect": [
"Log this enquiry"
],
"fields": [
{
"label": "Their name",
"name": "caller_name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Phone or email",
"name": "contact",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Address of the building",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What they told you",
"name": "problem",
"optional": false,
"options": [],
"type": "textarea"
},
{
"label": "How soon",
"name": "urgency",
"optional": false,
"options": [
"This week",
"This month",
"No rush"
],
"type": "select"
}
],
"options": [
{
"description": "",
"name": "Log this enquiry"
}
],
"page": "/desk/phone-enquiry",
"question": "Please select the applicable category for your submission"
}
],
"success": [
"won"
],
"wants": "to get the enquiry into the system before it gets lost",
"who": "a project manager who just took a call, email or text about a building"
}
],
"personas": [
{
"id": "housing-board-cracks",
"need": "survey-enquiry",
"text": "There are cracks running up the outside wall of our building and none of us know if it's serious. We just want someone qualified to come look at it and tell us what we're dealing with."
},
{
"id": "homeowner-leaking-roof",
"need": "survey-enquiry",
"text": "Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse."
},
{
"id": "homeowner-extension",
"need": "build-price-enquiry",
"text": "We want to add a room above the garage. We know roughly what we want, we just need someone to draw it up, sort the paperwork with the municipality, and tell us what it will cost."
},
{
"id": "owner-basement-conversion",
"need": "build-price-enquiry",
"text": "I'd like to turn the basement into a flat. Need drawings, the permit sorted, and a proper price before I commit to anything."
},
{
"id": "electrician-more-work",
"need": "subcontractor-application",
"text": "We're a small electrical firm and we'd like to pick up more building work. We're registered and insured, just need to know who to talk to about getting on your books."
},
{
"id": "scaffolding-firm",
"need": "subcontractor-application",
"text": "We put up and take down scaffolding for building sites. We'd like to be one of the firms you call when a job needs it."
},
{
"id": "apprentice-asking",
"need": "job-application",
"text": "I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after. Are you taking anyone on right now?"
},
{
"id": "experienced-carpenter",
"need": "job-application",
"text": "I've been doing carpentry for eight years, mostly older buildings. Wondered if you had any openings on site."
},
{
"id": "crew-loose-scaffold",
"need": "report-site-issue",
"text": "Noticed a scaffold board that's not sitting right, feels loose when you step on it. Wanted to flag it straight away before someone gets hurt, but I've got gloves on and no time for a long form."
},
{
"id": "subcontractor-wrong-delivery",
"need": "report-site-issue",
"text": "The delivery this morning was the wrong type of insulation, not what was on the drawings. Someone needs to know before it gets used."
}
]
}
@@ -0,0 +1,720 @@
{
"buckets": {
"applicants": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Invite to interview",
"to": "interviewing"
},
{
"from": "open",
"label": "Decline",
"to": "declined"
},
{
"from": "interviewing",
"label": "Hire",
"to": "hired"
},
{
"from": "interviewing",
"label": "Decline",
"to": "declined"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"interviewing": [
"hired",
"declined"
],
"open": [
"interviewing",
"declined"
]
}
},
"enquiries": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Looked at the building",
"to": "surveyed"
},
{
"from": "surveyed",
"label": "Quote sent",
"to": "quoted"
},
{
"from": "surveyed",
"label": "Not worth quoting",
"to": "lost"
},
{
"from": "open",
"label": "Not for us",
"to": "lost"
},
{
"from": "quoted",
"label": "Won",
"to": "won"
},
{
"from": "quoted",
"label": "Lost",
"to": "lost"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"open": [
"surveyed",
"lost"
],
"quoted": [
"won",
"lost"
],
"surveyed": [
"quoted",
"lost"
]
}
},
"site_issues": {
"desks": [
{
"group": "safety_officer",
"moves": [
{
"from": "open",
"label": "Look into it",
"to": "in_hand"
},
{
"from": "in_hand",
"label": "Mark fixed",
"to": "closed"
}
],
"page": "/safety"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"in_hand": [
"closed"
],
"open": [
"in_hand"
]
}
},
"subcontractors": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Ask for missing papers",
"to": "awaiting_papers"
},
{
"from": "open",
"label": "Approve",
"to": "approved"
},
{
"from": "open",
"label": "Decline",
"to": "declined"
},
{
"from": "awaiting_papers",
"label": "Approve",
"to": "approved"
},
{
"from": "awaiting_papers",
"label": "Decline",
"to": "declined"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"awaiting_papers": [
"approved",
"declined"
],
"open": [
"awaiting_papers",
"approved",
"declined"
]
}
}
},
"needs": [
{
"done_when": [
"won",
"lost"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "survey-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Get someone to look at a building",
"expect": [
"Get someone to look at a building"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Address of the building",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What's wrong",
"name": "problem",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look. A project manager reads it and calls you within two working days to agree a time to come.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price. A project manager reads it and replies within two working days.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them. A project manager checks your papers and answers within a week.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring. A project manager reads every one and answers within a week.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials. The safety officer sees it at once.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"won"
],
"wants": "someone from Nordvik Bygg to come and look at the building and tell them what a fix would cost",
"who": "a housing board member or private owner with a problem in a building"
},
{
"done_when": [
"won",
"lost"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "build-price-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Get a price for a build",
"expect": [
"Get a price for a build"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Address of the site",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What you want built",
"name": "project",
"optional": false,
"options": [],
"type": "textarea"
},
{
"label": "When you'd like to start",
"name": "timeframe",
"optional": false,
"options": [
"As soon as possible",
"Within a year",
"Just exploring"
],
"type": "select"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look. A project manager reads it and calls you within two working days to agree a time to come.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price. A project manager reads it and replies within two working days.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them. A project manager checks your papers and answers within a week.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring. A project manager reads every one and answers within a week.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials. The safety officer sees it at once.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"won"
],
"wants": "drawings, a permit application and a price for the work",
"who": "an owner who already knows what they want built"
},
{
"done_when": [
"approved",
"declined"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "subcontractor-application",
"lands_in": "subcontractors",
"steps": [
{
"alternative": "Join our subcontractor list",
"expect": [
"Join our subcontractor list"
],
"fields": [
{
"label": "Company name",
"name": "company_name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "contact_email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Trade",
"name": "trade",
"optional": false,
"options": [
"Electrical",
"Plumbing",
"Scaffolding"
],
"type": "select"
},
{
"label": "Company registration number",
"name": "registration_number",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Insurance policy details",
"name": "insurance",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Trade approval reference",
"name": "trade_approval",
"optional": true,
"options": [],
"type": "text"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look. A project manager reads it and calls you within two working days to agree a time to come.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price. A project manager reads it and replies within two working days.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them. A project manager checks your papers and answers within a week.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring. A project manager reads every one and answers within a week.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials. The safety officer sees it at once.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"approved"
],
"wants": "to get on Nordvik Bygg's list of subcontractors they call for work",
"who": "a trade firm doing electrical, plumbing or scaffolding work"
},
{
"done_when": [
"hired",
"declined"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "job-application",
"lands_in": "applicants",
"steps": [
{
"alternative": "Ask about working with us",
"expect": [
"Ask about working with us"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "What you do",
"name": "role",
"optional": false,
"options": [
"Carpenter",
"Apprentice carpenter",
"Other"
],
"type": "select"
},
{
"label": "Anything else we should know",
"name": "message",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look. A project manager reads it and calls you within two working days to agree a time to come.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price. A project manager reads it and replies within two working days.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them. A project manager checks your papers and answers within a week.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring. A project manager reads every one and answers within a week.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials. The safety officer sees it at once.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"hired"
],
"wants": "to find out if Nordvik Bygg is hiring and put themselves forward",
"who": "a carpenter or apprentice looking for work"
},
{
"done_when": [
"closed"
],
"enters_as": null,
"handled_by": "safety_officer",
"id": "report-site-issue",
"lands_in": "site_issues",
"steps": [
{
"alternative": "Report something from site",
"expect": [
"Report something from site"
],
"fields": [
{
"label": "What kind of issue",
"name": "issue_type",
"optional": false,
"options": [
"Hazard",
"Near miss",
"Wrong materials delivered"
],
"type": "select"
},
{
"label": "Where on site",
"name": "location",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What happened",
"name": "details",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look. A project manager reads it and calls you within two working days to agree a time to come.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price. A project manager reads it and replies within two working days.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them. A project manager checks your papers and answers within a week.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring. A project manager reads every one and answers within a week.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials. The safety officer sees it at once.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"closed"
],
"wants": "to flag a hazard, a near miss or wrong materials fast, from their phone",
"who": "a crew member on site, ours or a subcontractor's"
},
{
"done_when": [
"won",
"lost"
],
"enters_as": "project_managers",
"handled_by": "project_managers",
"id": "log-phone-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Log this enquiry",
"expect": [
"Log this enquiry"
],
"fields": [
{
"label": "Their name",
"name": "caller_name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Phone or email",
"name": "contact",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Address of the building",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What they told you",
"name": "problem",
"optional": false,
"options": [],
"type": "textarea"
},
{
"label": "How soon",
"name": "urgency",
"optional": false,
"options": [
"This week",
"This month",
"No rush"
],
"type": "select"
}
],
"options": [
{
"description": "",
"name": "Log this enquiry"
}
],
"page": "/desk/phone-enquiry",
"question": "What did they tell you?"
}
],
"success": [
"won"
],
"wants": "to get the enquiry into the system before it gets lost",
"who": "a project manager who just took a call, email or text about a building"
}
],
"personas": [
{
"id": "housing-board-cracks",
"need": "survey-enquiry",
"text": "There are cracks running up the outside wall of our building and none of us know if it's serious. We just want someone qualified to come look at it and tell us what we're dealing with."
},
{
"id": "homeowner-leaking-roof",
"need": "survey-enquiry",
"text": "Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse."
},
{
"id": "homeowner-extension",
"need": "build-price-enquiry",
"text": "We want to add a room above the garage. We know roughly what we want, we just need someone to draw it up, sort the paperwork with the municipality, and tell us what it will cost."
},
{
"id": "owner-basement-conversion",
"need": "build-price-enquiry",
"text": "I'd like to turn the basement into a flat. Need drawings, the permit sorted, and a proper price before I commit to anything."
},
{
"id": "electrician-more-work",
"need": "subcontractor-application",
"text": "We're a small electrical firm and we'd like to pick up more building work. We're registered and insured, just need to know who to talk to about getting on your books."
},
{
"id": "scaffolding-firm",
"need": "subcontractor-application",
"text": "We put up and take down scaffolding for building sites. We'd like to be one of the firms you call when a job needs it."
},
{
"id": "apprentice-asking",
"need": "job-application",
"text": "I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after. Are you taking anyone on right now?"
},
{
"id": "experienced-carpenter",
"need": "job-application",
"text": "I've been doing carpentry for eight years, mostly older buildings. Wondered if you had any openings on site."
},
{
"id": "crew-loose-scaffold",
"need": "report-site-issue",
"text": "Noticed a scaffold board that's not sitting right, feels loose when you step on it. Wanted to flag it straight away before someone gets hurt, but I've got gloves on and no time for a long form."
},
{
"id": "subcontractor-wrong-delivery",
"need": "report-site-issue",
"text": "The delivery this morning was the wrong type of insulation, not what was on the drawings. Someone needs to know before it gets used."
}
]
}
@@ -0,0 +1,77 @@
{
"build-price-enquiry": {
"control_ok": true,
"control_which": 0,
"lix": 25.593406593406595,
"options": 5,
"overloaded": false,
"personas": 2,
"required_fields": 5,
"steps": 1,
"understanding": {
"asked": 2,
"next": 0,
"which": 2
}
},
"job-application": {
"control_ok": true,
"control_which": 0,
"lix": 26.44899072558647,
"options": 5,
"overloaded": false,
"personas": 2,
"required_fields": 4,
"steps": 1,
"understanding": {
"asked": 2,
"next": 0,
"which": 2
}
},
"report-site-issue": {
"control_ok": true,
"control_which": 0,
"lix": 26.557413600891863,
"options": 5,
"overloaded": false,
"personas": 2,
"required_fields": 3,
"steps": 1,
"understanding": {
"asked": 2,
"next": 0,
"which": 2
}
},
"subcontractor-application": {
"control_ok": true,
"control_which": 0,
"lix": 30.64138678223185,
"options": 5,
"overloaded": false,
"personas": 2,
"required_fields": 5,
"steps": 1,
"understanding": {
"asked": 2,
"next": 0,
"which": 2
}
},
"survey-enquiry": {
"control_ok": true,
"control_which": 0,
"lix": 27.867430441898527,
"options": 5,
"overloaded": false,
"personas": 2,
"required_fields": 4,
"steps": 1,
"understanding": {
"asked": 2,
"next": 0,
"which": 2
}
}
}
@@ -0,0 +1,77 @@
{
"build-price-enquiry": {
"control_ok": true,
"control_which": 0,
"lix": 28.462059620596207,
"options": 5,
"overloaded": false,
"personas": 2,
"required_fields": 5,
"steps": 1,
"understanding": {
"asked": 2,
"next": 2,
"which": 2
}
},
"job-application": {
"control_ok": true,
"control_which": 0,
"lix": 29.146007816862088,
"options": 5,
"overloaded": false,
"personas": 2,
"required_fields": 4,
"steps": 1,
"understanding": {
"asked": 2,
"next": 2,
"which": 2
}
},
"report-site-issue": {
"control_ok": true,
"control_which": 0,
"lix": 29.2562358276644,
"options": 5,
"overloaded": false,
"personas": 2,
"required_fields": 3,
"steps": 1,
"understanding": {
"asked": 2,
"next": 2,
"which": 2
}
},
"subcontractor-application": {
"control_ok": true,
"control_which": 0,
"lix": 32.111111111111114,
"options": 5,
"overloaded": false,
"personas": 2,
"required_fields": 5,
"steps": 1,
"understanding": {
"asked": 2,
"next": 2,
"which": 2
}
},
"survey-enquiry": {
"control_ok": true,
"control_which": 0,
"lix": 30.151032942490225,
"options": 5,
"overloaded": false,
"personas": 2,
"required_fields": 4,
"steps": 1,
"understanding": {
"asked": 2,
"next": 2,
"which": 2
}
}
}
@@ -0,0 +1,44 @@
# Simulating the generated contractor site, 2026-09-21
Ten personas, three runs each, on ergo. Version A is the site as
generated (`enquiries: open -> quoted`). Version B adds the stage the
owner described and the generator dropped (`open -> surveyed -> quoted`).
## What held up
- **The simulation found a defect the verifier could not.** Reading
the first run's records next to the intake showed the generated
machine had skipped "we go and look at the building". That became
the `stages` field in needs.yaml, which the lint now enforces, so
the same omission fails deterministically from here on.
- **Routing and form-filling are stable.** 0 misroutes and 0 abandoned
forms in 60 cases, once choices were matched by heading (the first
run's "100% misrouted" was the model answering "Heading: description").
- **One recurring question is a real gap.** Handlers asked about
arranging a site visit seven times. The enquiry forms collect an
email address and nothing about access or when someone can come,
for a business whose first step is a visit.
## What did not
- **Letting a model decide outcomes is worthless.** In the first
design qwen3:8b sent every case to its success state; after one
sentence telling it that losing is normal, every enquiry was "lost"
in one touch (`first-design-qwen3-8b/`). Routes are now scripted and
who wins is left to the live bucket.
- **The ask-back rate does not discriminate yet.** With
nemotron-3.5-lightning:30b-a3b as handler, nearly every button drew
a question (4 of 4), including nonsense (a title deed; an email
address the form already requires). A measure stuck at its maximum
cannot rank version A against version B: the A -> B rise in
ask-backs per case (1.7 -> 2.3) is just B having one more button.
## What it needs before its numbers mean anything
A control for the instrument: run the handler on a record that is
deliberately complete and on one deliberately stripped. A usable judge
asks on the stripped record and stays quiet on the complete one. Until
a prompt and model pass that, read the questions, not the rates.
Speed: nemotron on both sides took about nine minutes per 30 cases;
qwen3:8b about two.
@@ -0,0 +1,30 @@
{"persona":"housing-board-cracks","need":"survey-enquiry","run":0,"target":"won","record":{"address":"1200 Maple Avenue, Unit 4B, Springfield","email":"alex.ramirez@email.com","follow_up_1":{"answered":"This is the first time a quote is being requested.","asked":"Has Nordvik Bygg already provided a formal quote for this specific issue, or is this the first time a quote is being requested?"},"follow_up_2":{"answered":"This is the first time a quote is being requested.","asked":"Has Nordvik Bygg already provided a formal quote for this specific issue, or is this the first time a quote is being requested?"},"name":"Alex Ramirez","problem":"There are cracks running up the outside wall of our building. None of us know if it's serious. We just want someone qualified to come look at it and tell us what we're dealing with."},"states":["open","quoted","won"],"pressed":["open -> Quote sent","quoted -> Won"],"touches":4,"ask_backs":[{"state":"open","button":"Quote sent","question":"Has Nordvik Bygg already provided a formal quote for this specific issue, or is this the first time a quote is being requested?","answerable":false},{"state":"quoted","button":"Won","question":"Has Nordvik Bygg already provided a formal quote for this specific issue, or is this the first time a quote is being requested?","answerable":false}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"housing-board-cracks","need":"survey-enquiry","run":1,"target":"lost","record":{"address":"Our building, but I don't know the exact address","follow_up_1":{"answered":"I don't have it.","asked":"What is the exact address of the building?"},"name":"Anon","problem":"Cracks running up the outside wall. Don't know if serious."},"states":["open","lost"],"pressed":["open -> Not for us"],"touches":2,"ask_backs":[{"state":"open","button":"Not for us","question":"What is the exact address of the building?","answerable":false}],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"housing-board-cracks","need":"survey-enquiry","run":2,"target":"won","record":{"address":"12 Maple Avenue, Apt 3B, Springfield","email":"mia.torres@email.com","follow_up_1":{"answered":"No, I haven't received a quote or price estimate from Nordvik Bygg yet. I'm just hoping someone can come take a look and tell us what's going on first.","asked":"Have you already received a quote or price estimate from Nordvik Bygg for this assessment?"},"follow_up_2":{"answered":"No, we've never had a Nordvik Bygg rep visit. We've been trying to get someone out here to look at the cracks for months.","asked":"Has a Nordvik Bygg representative already visited the site and provided a written assessment and cost estimate?"},"name":"Mia Torres","problem":"There are significant cracks running up the exterior wall of our building. The masonry appears to be deteriorating, and we are unsure if this indicates structural failure or something less serious. We need a qualified professional to assess the cause and provide a report on the severity and necessary repairs."},"states":["open","quoted","won"],"pressed":["open -> Quote sent","quoted -> Won"],"touches":4,"ask_backs":[{"state":"open","button":"Quote sent","question":"Have you already received a quote or price estimate from Nordvik Bygg for this assessment?","answerable":false},{"state":"quoted","button":"Won","question":"Has a Nordvik Bygg representative already visited the site and provided a written assessment and cost estimate?","answerable":true}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"homeowner-leaking-roof","need":"survey-enquiry","run":0,"target":"won","record":{"address":"1234 Pine Street, Apartment 5B, Atlanta, GA 30309","email":"spike@southernliving.com","follow_up_1":{"answered":"No, this is the first time anyone has inspected it.","asked":"Has Nordvik Bygg already inspected this property before, or is this the first time?"},"follow_up_2":{"answered":"No, this is the first time anyone has been called out to look at it.","asked":"Can you please confirm if Nordvik Bygg has already inspected this property before, or is this the first time?"},"name":"Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse.","problem":"Water is leaking through the ceiling every time it rains. I'm not sure if it's the roof or something else. Need someone to inspect it before the damage gets worse."},"states":["open","quoted","won"],"pressed":["open -> Quote sent","quoted -> Won"],"touches":4,"ask_backs":[{"state":"open","button":"Quote sent","question":"Has Nordvik Bygg already inspected this property before, or is this the first time?","answerable":false},{"state":"quoted","button":"Won","question":"Can you please confirm if Nordvik Bygg has already inspected this property before, or is this the first time?","answerable":false}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"homeowner-leaking-roof","need":"survey-enquiry","run":1,"target":"lost","record":{"address":"Unknown address","email":"unknown@domain.com","follow_up_1":{"answered":"I don't have that info.","asked":"What is the address of the building?"},"name":"Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse.","problem":"Water leaking through ceiling during rain. Need inspection to determine if roof or other issue."},"states":["open","lost"],"pressed":["open -> Not for us"],"touches":2,"ask_backs":[{"state":"open","button":"Not for us","question":"What is the address of the building?","answerable":false}],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"homeowner-leaking-roof","need":"survey-enquiry","run":2,"target":"won","record":{"address":"37 Orchard Lane, Apartment 4B, Southhill","email":"not_sharing@protonmail.com","follow_up_1":{"answered":"The building is occupied. I live here, so there's always someone around when the rain starts.","asked":"Is the building currently occupied or vacant?"},"follow_up_2":{"answered":"I don't know. I'm not there all the time, and the landlord never told me. I just know the water comes down whenever it rains, and I'm tired of buckets.","asked":"Is the building currently occupied or vacant?"},"name":"Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse.","problem":"Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse."},"states":["open","quoted","won"],"pressed":["open -> Quote sent","quoted -> Won"],"touches":4,"ask_backs":[{"state":"open","button":"Quote sent","question":"Is the building currently occupied or vacant?","answerable":true},{"state":"quoted","button":"Won","question":"Is the building currently occupied or vacant?","answerable":false}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"homeowner-extension","need":"build-price-enquiry","run":0,"target":"won","record":{"address":"42 Maple Street, Unit 3B, Portland, OR 97201","email":"sarah.chen@email.com","follow_up_1":{"answered":"I don't know if a site visit has been performed, but it's a necessary step to verify existing conditions and structural feasibility before drawing up plans.","asked":"Has a site visit been performed to verify the existing conditions and structural feasibility of the proposed addition?"},"follow_up_2":{"answered":"We require a site visit to verify existing conditions and structural feasibility before any design or cost estimation can proceed.","asked":"Has a site visit been performed to verify the existing conditions and structural feasibility of the proposed addition?"},"name":"Sarah Chen","project":"Addition of a 24' x 16' room above the existing garage. Two-story design with dormer windows. Open floor plan living area with master suite. Budget range: $250,000 - $350,000. Current garage to be converted to workshop/storage.","timeframe":"Within a year"},"states":["open","quoted","won"],"pressed":["open -> Quote sent","quoted -> Won"],"touches":4,"ask_backs":[{"state":"open","button":"Quote sent","question":"Has a site visit been performed to verify the existing conditions and structural feasibility of the proposed addition?","answerable":false},{"state":"quoted","button":"Won","question":"Has a site visit been performed to verify the existing conditions and structural feasibility of the proposed addition?","answerable":false}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"homeowner-extension","need":"build-price-enquiry","run":1,"target":"lost","record":{"address":"123 Maple St, Anytown","email":"quickquote@example.com","follow_up_1":{"answered":"Yes, we still want to do it.","asked":"Is this project still a possibility, or have you already decided not to proceed?"},"name":"Quick Quote Bot","project":"Room addition above garage","timeframe":"Just exploring"},"states":["open","lost"],"pressed":["open -> Not for us"],"touches":2,"ask_backs":[{"state":"open","button":"Not for us","question":"Is this project still a possibility, or have you already decided not to proceed?","answerable":true}],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"homeowner-extension","need":"build-price-enquiry","run":2,"target":"won","record":{"address":"123 Maple Street, Anytown, State, 12345","email":"jane.smith@email.com","follow_up_1":{"answered":"No, I'm a new client inquiry and haven't received any quote from you yet.","asked":"Can you confirm that the quote has been prepared and sent to Jane Smith?"},"follow_up_2":{"answered":"I don't know. I haven't prepared or sent a quote to Jane Smith, and I have no idea who she is.","asked":"Can you confirm that the quote has been prepared and sent to Jane Smith?"},"name":"Jane Smith","project":"Addition of a 20'x24' room above existing single-car garage. Client has conceptual sketches but requires full architectural drawings, municipal permit set, and cost estimation for structural and MEP integration.","timeframe":"Within a year"},"states":["open","quoted","won"],"pressed":["open -> Quote sent","quoted -> Won"],"touches":4,"ask_backs":[{"state":"open","button":"Quote sent","question":"Can you confirm that the quote has been prepared and sent to Jane Smith?","answerable":false},{"state":"quoted","button":"Won","question":"Can you confirm that the quote has been prepared and sent to Jane Smith?","answerable":true}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"owner-basement-conversion","need":"build-price-enquiry","run":0,"target":"won","record":{"address":"123 Maple Street, Apt 4B, Cityville, CA 90210","email":"info@basementflat.arch","follow_up_1":{"answered":"No, I haven't visited the site yet. I'll need to see the space in person before I can give you accurate drawings, permits, or pricing.","asked":"Has a site visit been conducted to verify the current condition of the basement and confirm the proposed layout is feasible?"},"follow_up_2":{"answered":"No site visit has been conducted yet.","asked":"Can you please confirm that a site visit has been conducted to verify the current condition of the basement?"},"name":"I. Architect","project":"Conversion of basement into a residential flat with separate entrance, kitchenette, bathroom, and bedroom. Requires architectural drawings, planning permit application, and detailed cost estimate for client approval prior to commencement.","timeframe":"Within a year"},"states":["open","quoted","won"],"pressed":["open -> Quote sent","quoted -> Won"],"touches":4,"ask_backs":[{"state":"open","button":"Quote sent","question":"Has a site visit been conducted to verify the current condition of the basement and confirm the proposed layout is feasible?","answerable":false},{"state":"quoted","button":"Won","question":"Can you please confirm that a site visit has been conducted to verify the current condition of the basement?","answerable":false}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"owner-basement-conversion","need":"build-price-enquiry","run":1,"target":"lost","record":{"address":"123 Basement Lane","email":"me@basement.com","follow_up_1":{"answered":"Still exploring. Let's get the ball rolling.","asked":"Has your project moved forward, or would you still like to explore options?"},"name":"Me","project":"Convert basement into a flat","timeframe":"Just exploring"},"states":["open","lost"],"pressed":["open -> Not for us"],"touches":2,"ask_backs":[{"state":"open","button":"Not for us","question":"Has your project moved forward, or would you still like to explore options?","answerable":true}],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"owner-basement-conversion","need":"build-price-enquiry","run":2,"target":"won","record":{"address":"42 Maple Crescent, Basingstoke, RG24 9JX","email":"sarah.jenkins@email.com","follow_up_1":{"answered":"No, I haven't had a site visit yet. I'm waiting to get the project started properly.","asked":"Has a site visit been conducted to verify the existing conditions of the basement and the feasibility of the conversion?"},"follow_up_2":{"answered":"No, I haven't had a site visit yet. The plans I'm working from are based on the original building drawings and a quick look around, but I need someone to actually measure the space, check the ceiling height, and look at the services before I can give you proper drawings or a fixed price.","asked":"Has a site visit been conducted to verify the existing conditions of the basement and the feasibility of the conversion?"},"name":"Sarah Jenkins","project":"Convert existing basement into a one-bedroom flat with kitchenette, bathroom, and living area. Requires full architectural drawings, building regulation approval, and planning permission. Need detailed cost breakdown for structural work, MEP services, and finishes.","timeframe":"Within a year"},"states":["open","quoted","won"],"pressed":["open -> Quote sent","quoted -> Won"],"touches":4,"ask_backs":[{"state":"open","button":"Quote sent","question":"Has a site visit been conducted to verify the existing conditions of the basement and the feasibility of the conversion?","answerable":false},{"state":"quoted","button":"Won","question":"Has a site visit been conducted to verify the existing conditions of the basement and the feasibility of the conversion?","answerable":true}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"electrician-more-work","need":"subcontractor-application","run":0,"target":"approved","record":{"company_name":"We're a small electrical firm","contact_email":"contact@weareaelectricalfirm.com","follow_up_1":{"answered":"We don't have a company registration number.","asked":"What is your company registration number?"},"insurance":"We have current public liability cover","registration_number":"We are registered but number not to hand right now","trade":"Electrical","trade_approval":""},"states":["open","approved"],"pressed":["open -> Approve"],"touches":2,"ask_backs":[{"state":"open","button":"Approve","question":"What is your company registration number?","answerable":false}],"outcome":{"outcome":"finished","detail":"approved"}}
{"persona":"electrician-more-work","need":"subcontractor-application","run":1,"target":"declined","record":{"company_name":"We're a small electrical firm and we'd like to pick up more building work. We're registered and insured, just need to know who to talk to about getting on your books.","contact_email":"email@example.com","follow_up_1":{"answered":"I don't know what you're talking about.","asked":"What is your company registration number and insurance provider details?"},"insurance":"Registered and insured, just need to know who to talk to about getting on your books.","registration_number":"Registered and insured, just need to know who to talk to about getting on your books.","trade":"Electrical","trade_approval":""},"states":["open","declined"],"pressed":["open -> Decline"],"touches":2,"ask_backs":[{"state":"open","button":"Decline","question":"What is your company registration number and insurance provider details?","answerable":false}],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"electrician-more-work","need":"subcontractor-application","run":2,"target":"approved","record":{"company_name":"C&W Electrical Services Ltd","contact_email":"info@cwelectricalservices.co.uk","follow_up_1":{"answered":"Yes, we have submitted all required insurance certificates and signed the standard subcontractor agreement. We're ready to go.","asked":"Has the company submitted the required insurance certificates and signed the standard subcontractor agreement?"},"insurance":"Public liability insurance held with Hiscox policy number HL-987654, cover limit £2,000,000. Electrical indemnity insurance with Allianz policy number AL-345321, cover limit £1,000,000.","registration_number":"OC345678","trade":"Electrical","trade_approval":"NICEIC approved contractor since 2015"},"states":["open","approved"],"pressed":["open -> Approve"],"touches":2,"ask_backs":[{"state":"open","button":"Approve","question":"Has the company submitted the required insurance certificates and signed the standard subcontractor agreement?","answerable":true}],"outcome":{"outcome":"finished","detail":"approved"}}
{"persona":"scaffolding-firm","need":"subcontractor-application","run":0,"target":"approved","record":{"company_name":"QuickSet Scaffolding Ltd","contact_email":"admin@quickset-scaffold.co.uk","follow_up_1":{"answered":"We are a scaffolding company, not a construction site with assigned operatives. We hire qualified scaffolders as needed, but we do not have CISRS cards for our own staff.","asked":"Do you have a valid and current CISRS card for the operatives assigned to Nordvik Bygg projects?"},"insurance":"Public Liability £5M / Employers Liability £10M","registration_number":"12345678","trade":"Scaffolding","trade_approval":"CISRS Registered - Ref: CIS/2024/001"},"states":["open","approved"],"pressed":["open -> Approve"],"touches":2,"ask_backs":[{"state":"open","button":"Approve","question":"Do you have a valid and current CISRS card for the operatives assigned to Nordvik Bygg projects?","answerable":false}],"outcome":{"outcome":"finished","detail":"approved"}}
{"persona":"scaffolding-firm","need":"subcontractor-application","run":1,"target":"declined","record":{"company_name":"We put up and take down scaffolding for building sites.","contact_email":"contact@scaffoldingco.uk","follow_up_1":{"answered":"I don't have the registration number.","asked":"What is the company's registration number?"},"insurance":"We have public liability cover, policy number available on request.","registration_number":"Would prefer not to share this publicly.","trade":"Scaffolding"},"states":["open","declined"],"pressed":["open -> Decline"],"touches":2,"ask_backs":[{"state":"open","button":"Decline","question":"What is the company's registration number?","answerable":false}],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"scaffolding-firm","need":"subcontractor-application","run":2,"target":"approved","record":{"company_name":"Rapid Response Scaffolding Ltd","contact_email":"admin@rapidresponse-scaffold.co.uk","follow_up_1":{"answered":"No, I'm just a person writing a message on your behalf. You'll need to check with the actual scaffolding company about their certifications.","asked":"Do you have a valid and current scaffolding-specific certification (e.g., PASMA, CISRS) or relevant trade accreditation for the work you perform?"},"insurance":"Public Liability £5M; Employers Liability £10M; Certificate current to 31/12/2025","registration_number":"OC327489","trade":"Scaffolding","trade_approval":"N/A"},"states":["open","approved"],"pressed":["open -> Approve"],"touches":2,"ask_backs":[{"state":"open","button":"Approve","question":"Do you have a valid and current scaffolding-specific certification (e.g., PASMA, CISRS) or relevant trade accreditation for the work you perform?","answerable":true}],"outcome":{"outcome":"finished","detail":"approved"}}
{"persona":"apprentice-asking","need":"job-application","run":0,"target":"hired","record":{"follow_up_1":{"answered":"206-555-0199","asked":"What is your phone number?"},"follow_up_2":{"answered":"I'm applying for an apprentice position.","asked":"Which specific carpentry role are you applying for (e.g., apprentice, journeyman, project lead)?"},"message":"I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after the apprenticeship. Are you taking anyone on right now?","name":"Jordan","role":"Apprentice carpenter"},"states":["open","interviewing","hired"],"pressed":["open -> Invite to interview","interviewing -> Hire"],"touches":4,"ask_backs":[{"state":"open","button":"Invite to interview","question":"What is your phone number?","answerable":true},{"state":"interviewing","button":"Hire","question":"Which specific carpentry role are you applying for (e.g., apprentice, journeyman, project lead)?","answerable":true}],"outcome":{"outcome":"finished","detail":"hired"}}
{"persona":"apprentice-asking","need":"job-application","run":1,"target":"declined","record":{"email":"","follow_up_1":{"answered":"I don't know it.","asked":"What is your email address?"},"message":"I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after.","name":"I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after.","role":"Apprentice carpenter"},"states":["open","declined"],"pressed":["open -> Decline"],"touches":2,"ask_backs":[{"state":"open","button":"Decline","question":"What is your email address?","answerable":false}],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"apprentice-asking","need":"job-application","run":2,"target":"hired","record":{"follow_up_1":{"answered":"it's me@email.com","asked":"What is your email address?"},"follow_up_2":{"answered":"I'm not taking anyone on right now. I'm finishing up a job and sorting out my own schedule for next season. I don't have the time to train a new apprentice while I'm trying to keep my own crew running. If you're serious, ask me again in a few months when things settle down.","asked":"Do you want to proceed with hiring this applicant?"},"message":"I'm currently in my second year of carpentry apprenticeship and looking for a firm that will take me on permanently after I complete my training. I have hands-on experience with framing, finish work, and tool maintenance, and I'm eager to find a workplace where I can grow long-term.","name":"I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after.","role":"Apprentice carpenter"},"states":["open","interviewing","hired"],"pressed":["open -> Invite to interview","interviewing -> Hire"],"touches":4,"ask_backs":[{"state":"open","button":"Invite to interview","question":"What is your email address?","answerable":true},{"state":"interviewing","button":"Hire","question":"Do you want to proceed with hiring this applicant?","answerable":false}],"outcome":{"outcome":"finished","detail":"hired"}}
{"persona":"experienced-carpenter","need":"job-application","run":0,"target":"hired","record":{"email":"alex.miller@example.com","follow_up_1":{"answered":"925-555-0198","asked":"What is your phone number?"},"follow_up_2":{"answered":"I'm available on the 15th, but I need to know the start time. I have a morning job that day, so I can only make it in after 10 AM.","asked":"Can you come in for an interview on [Date]?"},"message":"Eight years experience specializing in older buildings. I have hand tools for precise joinery and familiarity with period materials. Available for site work.","name":"Alex Miller","role":"Carpenter"},"states":["open","interviewing","hired"],"pressed":["open -> Invite to interview","interviewing -> Hire"],"touches":4,"ask_backs":[{"state":"open","button":"Invite to interview","question":"What is your phone number?","answerable":true},{"state":"interviewing","button":"Hire","question":"Can you come in for an interview on [Date]?","answerable":true}],"outcome":{"outcome":"finished","detail":"hired"}}
{"persona":"experienced-carpenter","need":"job-application","run":1,"target":"declined","record":{"email":"eli.carpenter8@protonmail.com","message":"Eight years in older buildings. Prefer hand tools, lime mortar, and keeping things standing.","name":"Eli","role":"Carpenter"},"states":["open","declined"],"pressed":["open -> Decline"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"experienced-carpenter","need":"job-application","run":2,"target":"hired","record":{"email":"james.miller@example.com","follow_up_1":{"answered":"I'm a carpenter, not a citizen. I just have a passport.","asked":"Do you have the legal right to work in the country where Nordvik Bygg operates?"},"message":"I'm James, an experienced carpenter with eight years specializing in older buildings. I have a strong background in structural restoration, period joinery, and working with reclaimed materials. I'm looking for a position where I can apply my skills to heritage projects and continue learning from experienced craftsmen.","name":"James Miller","role":"Carpenter"},"states":["open","interviewing","hired"],"pressed":["open -> Invite to interview","interviewing -> Hire"],"touches":3,"ask_backs":[{"state":"interviewing","button":"Hire","question":"Do you have the legal right to work in the country where Nordvik Bygg operates?","answerable":true}],"outcome":{"outcome":"finished","detail":"hired"}}
{"persona":"crew-loose-scaffold","need":"report-site-issue","run":0,"target":"closed","record":{"details":"Board feels loose under weight; gloves on, no time for detailed investigation","follow_up_1":{"answered":"First name's Mark, I'm a labourer on site. No time for faffing about.","asked":"What is your full name and role (e.g., employee or subcontractor) so I can assign the follow-up correctly?"},"follow_up_2":{"answered":"the crew member who flagged it","asked":"Which person marked this as fixed: the crew member who flagged it, or the subcontractor's worker?"},"issue_type":"Hazard","location":"Scaffold walkway near Zone 3"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":4,"ask_backs":[{"state":"open","button":"Look into it","question":"What is your full name and role (e.g., employee or subcontractor) so I can assign the follow-up correctly?","answerable":true},{"state":"in_hand","button":"Mark fixed","question":"Which person marked this as fixed: the crew member who flagged it, or the subcontractor's worker?","answerable":true}],"outcome":{"outcome":"finished","detail":"closed"}}
{"persona":"crew-loose-scaffold","need":"report-site-issue","run":1,"target":"closed","record":{"details":"Board feels loose under weight, gloves on, needs checking","follow_up_1":{"answered":"No, I was stepping on it.","asked":"Has a visual inspection of the scaffold board near main entrance been completed?"},"follow_up_2":{"answered":"No, I just noticed it.","asked":"Has a visual inspection of the scaffold board near main entrance been completed?"},"issue_type":"Hazard","location":"Scaffold board near main entrance"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":4,"ask_backs":[{"state":"open","button":"Look into it","question":"Has a visual inspection of the scaffold board near main entrance been completed?","answerable":false},{"state":"in_hand","button":"Mark fixed","question":"Has a visual inspection of the scaffold board near main entrance been completed?","answerable":false}],"outcome":{"outcome":"finished","detail":"closed"}}
{"persona":"crew-loose-scaffold","need":"report-site-issue","run":2,"target":"closed","record":{"details":"Scaffold board feels loose and unstable under foot. Gloves on, time limited. Board not sitting right, risk of slip or fall if stepped on. Flagging immediately to prevent injury.","follow_up_1":{"answered":"Scaffold bay 4, Level 3. The board is over the walkway. It's still in use, no cordon up yet. I just stepped on it and it dipped.","asked":"Can you confirm the exact location of the scaffold board issue? For example, which specific scaffold bay or level, and the current status of the area (e.g., is the scaffold still in use or has it been cordoned off)?"},"follow_up_2":{"answered":"Board is still up, no cordon up yet. I stepped on it to test it, wobbled a bit, then got off. Didn't tie it off or rope it off because I was in a rush and just wanted to warn the boss. Gonna go back with proper gear later to fix it for real.","asked":"Has the scaffold board been secured or removed, and has the area been cordoned off to prevent further use?"},"issue_type":"Hazard","location":"Scaffold area, near main entrance"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":4,"ask_backs":[{"state":"open","button":"Look into it","question":"Can you confirm the exact location of the scaffold board issue? For example, which specific scaffold bay or level, and the current status of the area (e.g., is the scaffold still in use or has it been cordoned off)?","answerable":true},{"state":"in_hand","button":"Mark fixed","question":"Has the scaffold board been secured or removed, and has the area been cordoned off to prevent further use?","answerable":true}],"outcome":{"outcome":"finished","detail":"closed"}}
{"persona":"subcontractor-wrong-delivery","need":"report-site-issue","run":0,"target":"closed","record":{"details":"Delivery this morning arrived with standard fiberglass batts instead of the specified mineral wool board. Packaging labels match the delivery note but not the structural drawings. Awaiting confirmation on whether to reject the shipment or hold for exchange.","follow_up_1":{"answered":"Counted 25 rolls of fiberglass batts against the spec for mineral wool. I only noticed because I cross-referenced the truck tag against the manifest before unloading.","asked":"What is the quantity of wrong materials delivered?"},"follow_up_2":{"answered":"Left on the truck. I haven't unloaded it yet, waiting for clarification before proceeding.","asked":"How has the wrong material been handled since delivery? (e.g., moved to quarantine, used in work, left in the storage area)"},"issue_type":"Wrong materials delivered","location":"Storage area, Zone B"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":4,"ask_backs":[{"state":"open","button":"Look into it","question":"What is the quantity of wrong materials delivered?","answerable":true},{"state":"in_hand","button":"Mark fixed","question":"How has the wrong material been handled since delivery? (e.g., moved to quarantine, used in work, left in the storage area)","answerable":true}],"outcome":{"outcome":"finished","detail":"closed"}}
{"persona":"subcontractor-wrong-delivery","need":"report-site-issue","run":1,"target":"closed","record":{"details":"Wrong type of insulation delivered this morning. Not what was on the drawings.","follow_up_1":{"answered":"No, the wrong insulation is still on site.","asked":"Has the wrong insulation been removed or replaced with the correct type?"},"issue_type":"Wrong materials delivered","location":"Main entrance staging area"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":3,"ask_backs":[{"state":"in_hand","button":"Mark fixed","question":"Has the wrong insulation been removed or replaced with the correct type?","answerable":false}],"outcome":{"outcome":"finished","detail":"closed"}}
{"persona":"subcontractor-wrong-delivery","need":"report-site-issue","run":2,"target":"closed","record":{"details":"The delivery arrived this morning. I was expecting the blue fiberglass batts shown on the project drawings, but the delivery contained mineral wool boards instead. The packaging was labeled for a different job number. I stopped the crew from offloading it. Someone needs to verify the correct material before it gets installed, as the R-value and fit are different from what's specified. I don't have the delivery ticket number handy, but the driver said it was a substitute from the supplier's stock.","follow_up_1":{"answered":"Yes, I have the delivery ticket number from the manifest on the pallet, but the supplier's contact details are just the generic office number on the invoice, not a specific representative. I can read the ticket number off the label if you need me to verify the substitution details.","asked":"Do you have the delivery ticket number or the supplier's contact details to verify the substitution?"},"follow_up_2":{"answered":"I don't have the delivery ticket or the label in front of me right now, so I can't read the number off the pallet. I need someone to physically check the pallet tag or look up the shipment record in the system to get that number and confirm what was actually delivered versus what was specified on the drawings.","asked":"Can you read the delivery ticket number from the label on the pallet to verify the substitution details?"},"issue_type":"Wrong materials delivered","location":"Warehouse staging area, Bay 4"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":4,"ask_backs":[{"state":"open","button":"Look into it","question":"Do you have the delivery ticket number or the supplier's contact details to verify the substitution?","answerable":true},{"state":"in_hand","button":"Mark fixed","question":"Can you read the delivery ticket number from the label on the pallet to verify the substitution details?","answerable":false}],"outcome":{"outcome":"finished","detail":"closed"}}
@@ -0,0 +1,706 @@
{
"buckets": {
"applicants": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Invite to interview",
"to": "interviewing"
},
{
"from": "open",
"label": "Decline",
"to": "declined"
},
{
"from": "interviewing",
"label": "Hire",
"to": "hired"
},
{
"from": "interviewing",
"label": "Decline",
"to": "declined"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"interviewing": [
"hired",
"declined"
],
"open": [
"interviewing",
"declined"
]
}
},
"enquiries": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Quote sent",
"to": "quoted"
},
{
"from": "open",
"label": "Not for us",
"to": "lost"
},
{
"from": "quoted",
"label": "Won",
"to": "won"
},
{
"from": "quoted",
"label": "Lost",
"to": "lost"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"open": [
"quoted",
"lost"
],
"quoted": [
"won",
"lost"
]
}
},
"site_issues": {
"desks": [
{
"group": "safety_officer",
"moves": [
{
"from": "open",
"label": "Look into it",
"to": "in_hand"
},
{
"from": "in_hand",
"label": "Mark fixed",
"to": "closed"
}
],
"page": "/safety"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"in_hand": [
"closed"
],
"open": [
"in_hand"
]
}
},
"subcontractors": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Ask for missing papers",
"to": "awaiting_papers"
},
{
"from": "open",
"label": "Approve",
"to": "approved"
},
{
"from": "open",
"label": "Decline",
"to": "declined"
},
{
"from": "awaiting_papers",
"label": "Approve",
"to": "approved"
},
{
"from": "awaiting_papers",
"label": "Decline",
"to": "declined"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"awaiting_papers": [
"approved",
"declined"
],
"open": [
"awaiting_papers",
"approved",
"declined"
]
}
}
},
"needs": [
{
"done_when": [
"won",
"lost"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "survey-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Get someone to look at a building",
"expect": [
"Get someone to look at a building"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Address of the building",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What's wrong",
"name": "problem",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"won"
],
"wants": "someone from Nordvik Bygg to come and look at the building and tell them what a fix would cost",
"who": "a housing board member or private owner with a problem in a building"
},
{
"done_when": [
"won",
"lost"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "build-price-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Get a price for a build",
"expect": [
"Get a price for a build"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Address of the site",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What you want built",
"name": "project",
"optional": false,
"options": [],
"type": "textarea"
},
{
"label": "When you'd like to start",
"name": "timeframe",
"optional": false,
"options": [
"As soon as possible",
"Within a year",
"Just exploring"
],
"type": "select"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"won"
],
"wants": "drawings, a permit application and a price for the work",
"who": "an owner who already knows what they want built"
},
{
"done_when": [
"approved",
"declined"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "subcontractor-application",
"lands_in": "subcontractors",
"steps": [
{
"alternative": "Join our subcontractor list",
"expect": [
"Join our subcontractor list"
],
"fields": [
{
"label": "Company name",
"name": "company_name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "contact_email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Trade",
"name": "trade",
"optional": false,
"options": [
"Electrical",
"Plumbing",
"Scaffolding"
],
"type": "select"
},
{
"label": "Company registration number",
"name": "registration_number",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Insurance policy details",
"name": "insurance",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Trade approval reference",
"name": "trade_approval",
"optional": true,
"options": [],
"type": "text"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"approved"
],
"wants": "to get on Nordvik Bygg's list of subcontractors they call for work",
"who": "a trade firm doing electrical, plumbing or scaffolding work"
},
{
"done_when": [
"hired",
"declined"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "job-application",
"lands_in": "applicants",
"steps": [
{
"alternative": "Ask about working with us",
"expect": [
"Ask about working with us"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "What you do",
"name": "role",
"optional": false,
"options": [
"Carpenter",
"Apprentice carpenter",
"Other"
],
"type": "select"
},
{
"label": "Anything else we should know",
"name": "message",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"hired"
],
"wants": "to find out if Nordvik Bygg is hiring and put themselves forward",
"who": "a carpenter or apprentice looking for work"
},
{
"done_when": [
"closed"
],
"enters_as": null,
"handled_by": "safety_officer",
"id": "report-site-issue",
"lands_in": "site_issues",
"steps": [
{
"alternative": "Report something from site",
"expect": [
"Report something from site"
],
"fields": [
{
"label": "What kind of issue",
"name": "issue_type",
"optional": false,
"options": [
"Hazard",
"Near miss",
"Wrong materials delivered"
],
"type": "select"
},
{
"label": "Where on site",
"name": "location",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What happened",
"name": "details",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"closed"
],
"wants": "to flag a hazard, a near miss or wrong materials fast, from their phone",
"who": "a crew member on site, ours or a subcontractor's"
},
{
"done_when": [
"won",
"lost"
],
"enters_as": "project_managers",
"handled_by": "project_managers",
"id": "log-phone-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Log this enquiry",
"expect": [
"Log this enquiry"
],
"fields": [
{
"label": "Their name",
"name": "caller_name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Phone or email",
"name": "contact",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Address of the building",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What they told you",
"name": "problem",
"optional": false,
"options": [],
"type": "textarea"
},
{
"label": "How soon",
"name": "urgency",
"optional": false,
"options": [
"This week",
"This month",
"No rush"
],
"type": "select"
}
],
"options": [
{
"description": "",
"name": "Log this enquiry"
}
],
"page": "/desk/phone-enquiry",
"question": "What did they tell you?"
}
],
"success": [
"won"
],
"wants": "to get the enquiry into the system before it gets lost",
"who": "a project manager who just took a call, email or text about a building"
}
],
"personas": [
{
"id": "housing-board-cracks",
"need": "survey-enquiry",
"text": "There are cracks running up the outside wall of our building and none of us know if it's serious. We just want someone qualified to come look at it and tell us what we're dealing with."
},
{
"id": "homeowner-leaking-roof",
"need": "survey-enquiry",
"text": "Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse."
},
{
"id": "homeowner-extension",
"need": "build-price-enquiry",
"text": "We want to add a room above the garage. We know roughly what we want, we just need someone to draw it up, sort the paperwork with the municipality, and tell us what it will cost."
},
{
"id": "owner-basement-conversion",
"need": "build-price-enquiry",
"text": "I'd like to turn the basement into a flat. Need drawings, the permit sorted, and a proper price before I commit to anything."
},
{
"id": "electrician-more-work",
"need": "subcontractor-application",
"text": "We're a small electrical firm and we'd like to pick up more building work. We're registered and insured, just need to know who to talk to about getting on your books."
},
{
"id": "scaffolding-firm",
"need": "subcontractor-application",
"text": "We put up and take down scaffolding for building sites. We'd like to be one of the firms you call when a job needs it."
},
{
"id": "apprentice-asking",
"need": "job-application",
"text": "I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after. Are you taking anyone on right now?"
},
{
"id": "experienced-carpenter",
"need": "job-application",
"text": "I've been doing carpentry for eight years, mostly older buildings. Wondered if you had any openings on site."
},
{
"id": "crew-loose-scaffold",
"need": "report-site-issue",
"text": "Noticed a scaffold board that's not sitting right, feels loose when you step on it. Wanted to flag it straight away before someone gets hurt, but I've got gloves on and no time for a long form."
},
{
"id": "subcontractor-wrong-delivery",
"need": "report-site-issue",
"text": "The delivery this morning was the wrong type of insulation, not what was on the drawings. Someone needs to know before it gets used."
}
]
}
@@ -0,0 +1,409 @@
{
"build-price-enquiry": {
"cases": 6,
"finished": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 20,
"ask_backs": 10,
"unanswerable": 6,
"asked": [
{
"state": "open",
"button": "Quote sent",
"question": "Has a site visit been performed to verify the existing conditions and structural feasibility of the proposed addition?",
"answerable": false
},
{
"state": "quoted",
"button": "Won",
"question": "Has a site visit been performed to verify the existing conditions and structural feasibility of the proposed addition?",
"answerable": false
},
{
"state": "open",
"button": "Not for us",
"question": "Is this project still a possibility, or have you already decided not to proceed?",
"answerable": true
},
{
"state": "open",
"button": "Quote sent",
"question": "Can you confirm that the quote has been prepared and sent to Jane Smith?",
"answerable": false
},
{
"state": "quoted",
"button": "Won",
"question": "Can you confirm that the quote has been prepared and sent to Jane Smith?",
"answerable": true
},
{
"state": "open",
"button": "Quote sent",
"question": "Has a site visit been conducted to verify the current condition of the basement and confirm the proposed layout is feasible?",
"answerable": false
},
{
"state": "quoted",
"button": "Won",
"question": "Can you please confirm that a site visit has been conducted to verify the current condition of the basement?",
"answerable": false
},
{
"state": "open",
"button": "Not for us",
"question": "Has your project moved forward, or would you still like to explore options?",
"answerable": true
},
{
"state": "open",
"button": "Quote sent",
"question": "Has a site visit been conducted to verify the existing conditions of the basement and the feasibility of the conversion?",
"answerable": false
},
{
"state": "quoted",
"button": "Won",
"question": "Has a site visit been conducted to verify the existing conditions of the basement and the feasibility of the conversion?",
"answerable": true
}
],
"buttons": {
"open -> Not for us": [
2,
2
],
"open -> Quote sent": [
4,
4
],
"quoted -> Won": [
4,
4
]
},
"stuck_at": [],
"misroutes": [],
"abandon_reasons": []
},
"job-application": {
"cases": 6,
"finished": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 18,
"ask_backs": 8,
"unanswerable": 2,
"asked": [
{
"state": "open",
"button": "Invite to interview",
"question": "What is your phone number?",
"answerable": true
},
{
"state": "interviewing",
"button": "Hire",
"question": "Which specific carpentry role are you applying for (e.g., apprentice, journeyman, project lead)?",
"answerable": true
},
{
"state": "open",
"button": "Decline",
"question": "What is your email address?",
"answerable": false
},
{
"state": "open",
"button": "Invite to interview",
"question": "What is your email address?",
"answerable": true
},
{
"state": "interviewing",
"button": "Hire",
"question": "Do you want to proceed with hiring this applicant?",
"answerable": false
},
{
"state": "open",
"button": "Invite to interview",
"question": "What is your phone number?",
"answerable": true
},
{
"state": "interviewing",
"button": "Hire",
"question": "Can you come in for an interview on [Date]?",
"answerable": true
},
{
"state": "interviewing",
"button": "Hire",
"question": "Do you have the legal right to work in the country where Nordvik Bygg operates?",
"answerable": true
}
],
"buttons": {
"interviewing -> Hire": [
4,
4
],
"open -> Decline": [
2,
1
],
"open -> Invite to interview": [
4,
3
]
},
"stuck_at": [],
"misroutes": [],
"abandon_reasons": []
},
"report-site-issue": {
"cases": 6,
"finished": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 23,
"ask_backs": 11,
"unanswerable": 4,
"asked": [
{
"state": "open",
"button": "Look into it",
"question": "What is your full name and role (e.g., employee or subcontractor) so I can assign the follow-up correctly?",
"answerable": true
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "Which person marked this as fixed: the crew member who flagged it, or the subcontractor's worker?",
"answerable": true
},
{
"state": "open",
"button": "Look into it",
"question": "Has a visual inspection of the scaffold board near main entrance been completed?",
"answerable": false
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "Has a visual inspection of the scaffold board near main entrance been completed?",
"answerable": false
},
{
"state": "open",
"button": "Look into it",
"question": "Can you confirm the exact location of the scaffold board issue? For example, which specific scaffold bay or level, and the current status of the area (e.g., is the scaffold still in use or has it been cordoned off)?",
"answerable": true
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "Has the scaffold board been secured or removed, and has the area been cordoned off to prevent further use?",
"answerable": true
},
{
"state": "open",
"button": "Look into it",
"question": "What is the quantity of wrong materials delivered?",
"answerable": true
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "How has the wrong material been handled since delivery? (e.g., moved to quarantine, used in work, left in the storage area)",
"answerable": true
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "Has the wrong insulation been removed or replaced with the correct type?",
"answerable": false
},
{
"state": "open",
"button": "Look into it",
"question": "Do you have the delivery ticket number or the supplier's contact details to verify the substitution?",
"answerable": true
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "Can you read the delivery ticket number from the label on the pallet to verify the substitution details?",
"answerable": false
}
],
"buttons": {
"in_hand -> Mark fixed": [
6,
6
],
"open -> Look into it": [
6,
5
]
},
"stuck_at": [],
"misroutes": [],
"abandon_reasons": []
},
"subcontractor-application": {
"cases": 6,
"finished": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 12,
"ask_backs": 6,
"unanswerable": 4,
"asked": [
{
"state": "open",
"button": "Approve",
"question": "What is your company registration number?",
"answerable": false
},
{
"state": "open",
"button": "Decline",
"question": "What is your company registration number and insurance provider details?",
"answerable": false
},
{
"state": "open",
"button": "Approve",
"question": "Has the company submitted the required insurance certificates and signed the standard subcontractor agreement?",
"answerable": true
},
{
"state": "open",
"button": "Approve",
"question": "Do you have a valid and current CISRS card for the operatives assigned to Nordvik Bygg projects?",
"answerable": false
},
{
"state": "open",
"button": "Decline",
"question": "What is the company's registration number?",
"answerable": false
},
{
"state": "open",
"button": "Approve",
"question": "Do you have a valid and current scaffolding-specific certification (e.g., PASMA, CISRS) or relevant trade accreditation for the work you perform?",
"answerable": true
}
],
"buttons": {
"open -> Approve": [
4,
4
],
"open -> Decline": [
2,
2
]
},
"stuck_at": [],
"misroutes": [],
"abandon_reasons": []
},
"survey-enquiry": {
"cases": 6,
"finished": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 20,
"ask_backs": 10,
"unanswerable": 8,
"asked": [
{
"state": "open",
"button": "Quote sent",
"question": "Has Nordvik Bygg already provided a formal quote for this specific issue, or is this the first time a quote is being requested?",
"answerable": false
},
{
"state": "quoted",
"button": "Won",
"question": "Has Nordvik Bygg already provided a formal quote for this specific issue, or is this the first time a quote is being requested?",
"answerable": false
},
{
"state": "open",
"button": "Not for us",
"question": "What is the exact address of the building?",
"answerable": false
},
{
"state": "open",
"button": "Quote sent",
"question": "Have you already received a quote or price estimate from Nordvik Bygg for this assessment?",
"answerable": false
},
{
"state": "quoted",
"button": "Won",
"question": "Has a Nordvik Bygg representative already visited the site and provided a written assessment and cost estimate?",
"answerable": true
},
{
"state": "open",
"button": "Quote sent",
"question": "Has Nordvik Bygg already inspected this property before, or is this the first time?",
"answerable": false
},
{
"state": "quoted",
"button": "Won",
"question": "Can you please confirm if Nordvik Bygg has already inspected this property before, or is this the first time?",
"answerable": false
},
{
"state": "open",
"button": "Not for us",
"question": "What is the address of the building?",
"answerable": false
},
{
"state": "open",
"button": "Quote sent",
"question": "Is the building currently occupied or vacant?",
"answerable": true
},
{
"state": "quoted",
"button": "Won",
"question": "Is the building currently occupied or vacant?",
"answerable": false
}
],
"buttons": {
"open -> Not for us": [
2,
2
],
"open -> Quote sent": [
4,
4
],
"quoted -> Won": [
4,
4
]
},
"stuck_at": [],
"misroutes": [],
"abandon_reasons": []
}
}
@@ -0,0 +1,30 @@
{"persona":"housing-board-cracks","need":"survey-enquiry","run":0,"target":"won","record":{"address":"1200 Maple Avenue, Unit 4B, Springfield","email":"alex.ramirez@email.com","follow_up_1":{"answered":"We have a master key in the office, but the current caretaker is on leave until Tuesday. I can arrange access then, or you can coordinate with the building manager for an earlier time.","asked":"Do you have access to the building right now, or can you arrange for someone to let me in?"},"follow_up_2":{"answered":"The property manager is available on weekdays between 9am and 4pm. Please coordinate a specific time slot.","asked":"Are you or the building manager available to grant access to the property for a site visit?"},"follow_up_3":{"answered":"I can send a specific time slot for the site visit once you provide your availability. I typically request the building manager's preferred date and time, then confirm with the structural engineer's schedule before finalizing. I can usually accommodate a visit within 3-5 business days, depending on urgency and engineer availability.","asked":"Can you coordinate a specific time for a site visit that works for the building manager or property manager?"},"name":"Alex Ramirez","problem":"There are cracks running up the outside wall of our building. None of us know if it's serious. We just want someone qualified to come look at it and tell us what we're dealing with."},"states":["open","surveyed","quoted","won"],"pressed":["open -> Looked at the building","surveyed -> Quote sent","quoted -> Won"],"touches":6,"ask_backs":[{"state":"open","button":"Looked at the building","question":"Do you have access to the building right now, or can you arrange for someone to let me in?","answerable":true},{"state":"surveyed","button":"Quote sent","question":"Are you or the building manager available to grant access to the property for a site visit?","answerable":true},{"state":"quoted","button":"Won","question":"Can you coordinate a specific time for a site visit that works for the building manager or property manager?","answerable":true}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"housing-board-cracks","need":"survey-enquiry","run":1,"target":"lost","record":{"address":"Our building, but I don't know the exact address","follow_up_1":{"answered":"I don't have it.","asked":"What is the exact address of the building?"},"name":"Anon","problem":"Cracks running up the outside wall. Don't know if serious."},"states":["open","lost"],"pressed":["open -> Not for us"],"touches":2,"ask_backs":[{"state":"open","button":"Not for us","question":"What is the exact address of the building?","answerable":false}],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"housing-board-cracks","need":"survey-enquiry","run":2,"target":"won","record":{"address":"12 Maple Avenue, Apt 3B, Springfield","email":"mia.torres@email.com","follow_up_1":{"answered":"We are occupied. It's a mixed-use building with retail on the ground floor and apartments above. Nobody has moved out, and we're all still here hoping this isn't something catastrophic.","asked":"Is the building currently occupied or vacant?"},"follow_up_2":{"answered":"I don't have a calendar or scheduling system. You'll need to check the voicemail or ask the office staff for available slots.","asked":"Can you provide a convenient time for a site visit?"},"follow_up_3":{"answered":"Yes, I have a convenient time tomorrow afternoon after 2 PM. Please send someone qualified to assess the structural integrity of the building.","asked":"Do you have a convenient time for a site visit?"},"name":"Mia Torres","problem":"There are significant cracks running up the exterior wall of our building. The masonry appears to be deteriorating, and we are unsure if this indicates structural failure or something less serious. We need a qualified professional to assess the cause and provide a report on the severity and necessary repairs."},"states":["open","surveyed","quoted","won"],"pressed":["open -> Looked at the building","surveyed -> Quote sent","quoted -> Won"],"touches":6,"ask_backs":[{"state":"open","button":"Looked at the building","question":"Is the building currently occupied or vacant?","answerable":true},{"state":"surveyed","button":"Quote sent","question":"Can you provide a convenient time for a site visit?","answerable":false},{"state":"quoted","button":"Won","question":"Do you have a convenient time for a site visit?","answerable":true}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"homeowner-leaking-roof","need":"survey-enquiry","run":0,"target":"won","record":{"address":"1234 Pine Street, Apartment 5B, Atlanta, GA 30309","email":"spike@southernliving.com","follow_up_1":{"answered":"No, I don't have access right now. I work full-time and the building is locked. I can do evenings or weekends if that works.","asked":"Do you have access to the building right now, or would you need to schedule an appointment?"},"follow_up_2":{"answered":"I'm at work during the day, so a morning appointment would be best.","asked":"Could you grant access to the building or schedule an appointment for us to inspect the leak?"},"follow_up_3":{"answered":"Yes, that works. I'll ensure someone is there.","asked":"Can you grant access to the building for an inspection during a morning appointment?"},"name":"Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse.","problem":"Water is leaking through the ceiling every time it rains. I'm not sure if it's the roof or something else. Need someone to inspect it before the damage gets worse."},"states":["open","surveyed","quoted","won"],"pressed":["open -> Looked at the building","surveyed -> Quote sent","quoted -> Won"],"touches":6,"ask_backs":[{"state":"open","button":"Looked at the building","question":"Do you have access to the building right now, or would you need to schedule an appointment?","answerable":true},{"state":"surveyed","button":"Quote sent","question":"Could you grant access to the building or schedule an appointment for us to inspect the leak?","answerable":true},{"state":"quoted","button":"Won","question":"Can you grant access to the building for an inspection during a morning appointment?","answerable":true}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"homeowner-leaking-roof","need":"survey-enquiry","run":1,"target":"lost","record":{"address":"Unknown address","email":"unknown@domain.com","follow_up_1":{"answered":"I don't have that info.","asked":"What is the address of the building?"},"name":"Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse.","problem":"Water leaking through ceiling during rain. Need inspection to determine if roof or other issue."},"states":["open","lost"],"pressed":["open -> Not for us"],"touches":2,"ask_backs":[{"state":"open","button":"Not for us","question":"What is the address of the building?","answerable":false}],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"homeowner-leaking-roof","need":"survey-enquiry","run":2,"target":"won","record":{"address":"37 Orchard Lane, Apartment 4B, Southhill","email":"not_sharing@protonmail.com","follow_up_1":{"answered":"212 Oakridge Avenue, Apartment 4B","asked":"Could you confirm the exact address of the building, including the street number and apartment/unit number?"},"follow_up_2":{"answered":"I don't have the exact address or unit number written down in front of me, but I know the building is on Maple Avenue and it's the third floor on the left side.","asked":"Can you confirm the exact address of the building, including the street number and apartment/unit number?"},"follow_up_3":{"answered":"123 Maple Avenue, Apt 4B","asked":"Can you provide the exact street number and apartment/unit number for the address?"},"name":"Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse.","problem":"Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse."},"states":["open","surveyed","quoted","won"],"pressed":["open -> Looked at the building","surveyed -> Quote sent","quoted -> Won"],"touches":6,"ask_backs":[{"state":"open","button":"Looked at the building","question":"Could you confirm the exact address of the building, including the street number and apartment/unit number?","answerable":true},{"state":"surveyed","button":"Quote sent","question":"Can you confirm the exact address of the building, including the street number and apartment/unit number?","answerable":false},{"state":"quoted","button":"Won","question":"Can you provide the exact street number and apartment/unit number for the address?","answerable":true}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"homeowner-extension","need":"build-price-enquiry","run":0,"target":"won","record":{"address":"42 Maple Street, Unit 3B, Portland, OR 97201","email":"sarah.chen@email.com","follow_up_1":{"answered":"Go ahead. I'm expecting you.","asked":"Can I have your permission to visit the property at 42 Maple Street, Unit 3B, Portland, OR 97201 to take measurements and assess the existing structure?"},"follow_up_2":{"answered":"Site visit is mandatory. I need to verify ceiling height, roof pitch, and load-bearing walls before drawing anything.","asked":"Is the owner available for a site visit to take measurements and assess the existing structure?"},"follow_up_3":{"answered":"No, they haven't signed the contract or submitted the deposit.","asked":"Has the owner signed the contract and submitted the deposit?"},"name":"Sarah Chen","project":"Addition of a 24' x 16' room above the existing garage. Two-story design with dormer windows. Open floor plan living area with master suite. Budget range: $250,000 - $350,000. Current garage to be converted to workshop/storage.","timeframe":"Within a year"},"states":["open","surveyed","quoted","won"],"pressed":["open -> Looked at the building","surveyed -> Quote sent","quoted -> Won"],"touches":6,"ask_backs":[{"state":"open","button":"Looked at the building","question":"Can I have your permission to visit the property at 42 Maple Street, Unit 3B, Portland, OR 97201 to take measurements and assess the existing structure?","answerable":true},{"state":"surveyed","button":"Quote sent","question":"Is the owner available for a site visit to take measurements and assess the existing structure?","answerable":true},{"state":"quoted","button":"Won","question":"Has the owner signed the contract and submitted the deposit?","answerable":false}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"homeowner-extension","need":"build-price-enquiry","run":1,"target":"lost","record":{"address":"123 Maple St, Anytown","email":"quickquote@example.com","follow_up_1":{"answered":"Yes, we still want to do it.","asked":"Is this project still a possibility, or have you already decided not to proceed?"},"name":"Quick Quote Bot","project":"Room addition above garage","timeframe":"Just exploring"},"states":["open","lost"],"pressed":["open -> Not for us"],"touches":2,"ask_backs":[{"state":"open","button":"Not for us","question":"Is this project still a possibility, or have you already decided not to proceed?","answerable":true}],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"homeowner-extension","need":"build-price-enquiry","run":2,"target":"won","record":{"address":"123 Maple Street, Anytown, State, 12345","email":"jane.smith@email.com","follow_up_1":{"answered":null,"asked":"What is the current condition of the existing garage structure and the site (soil, grade, access) that would need to be surveyed?"},"follow_up_2":{"answered":"I don't have access to your property or the garage. You'll need to hire a surveyor or structural engineer to document the existing conditions, soil, and grade before any drawings can be done.","asked":"Can you provide the current condition of the existing garage structure and the site (soil, grade, access) that would need to be surveyed?"},"follow_up_3":{"answered":"No, we haven't hired a surveyor or structural engineer yet. We were hoping you could handle the design and coordinate those as part of the project, or at least tell us who to call and what order things need to happen in.","asked":"Has the surveyor or structural engineer been hired and completed the documentation of the existing conditions, soil, and grade?"},"name":"Jane Smith","project":"Addition of a 20'x24' room above existing single-car garage. Client has conceptual sketches but requires full architectural drawings, municipal permit set, and cost estimation for structural and MEP integration.","timeframe":"Within a year"},"states":["open","surveyed","quoted","won"],"pressed":["open -> Looked at the building","surveyed -> Quote sent","quoted -> Won"],"touches":6,"ask_backs":[{"state":"open","button":"Looked at the building","question":"What is the current condition of the existing garage structure and the site (soil, grade, access) that would need to be surveyed?","answerable":true},{"state":"surveyed","button":"Quote sent","question":"Can you provide the current condition of the existing garage structure and the site (soil, grade, access) that would need to be surveyed?","answerable":false},{"state":"quoted","button":"Won","question":"Has the surveyor or structural engineer been hired and completed the documentation of the existing conditions, soil, and grade?","answerable":true}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"owner-basement-conversion","need":"build-price-enquiry","run":0,"target":"won","record":{"address":"123 Maple Street, Apt 4B, Cityville, CA 90210","email":"info@basementflat.arch","follow_up_1":{"answered":"Currently unoccupied, but the lock needs changing before access can be granted.","asked":"Can we proceed with a site visit, or is the basement currently occupied/locked?"},"follow_up_2":{"answered":"No site visit has been conducted yet.","asked":"Has the site been visited to assess the current condition and verify the lock status?"},"follow_up_3":{"answered":"No, but I have the original blueprints and a full condition report from the previous owner.","asked":"Has a site visit been conducted to verify the lock status and current condition of the basement?"},"name":"I. Architect","project":"Conversion of basement into a residential flat with separate entrance, kitchenette, bathroom, and bedroom. Requires architectural drawings, planning permit application, and detailed cost estimate for client approval prior to commencement.","timeframe":"Within a year"},"states":["open","surveyed","quoted","won"],"pressed":["open -> Looked at the building","surveyed -> Quote sent","quoted -> Won"],"touches":6,"ask_backs":[{"state":"open","button":"Looked at the building","question":"Can we proceed with a site visit, or is the basement currently occupied/locked?","answerable":true},{"state":"surveyed","button":"Quote sent","question":"Has the site been visited to assess the current condition and verify the lock status?","answerable":false},{"state":"quoted","button":"Won","question":"Has a site visit been conducted to verify the lock status and current condition of the basement?","answerable":false}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"owner-basement-conversion","need":"build-price-enquiry","run":1,"target":"lost","record":{"address":"123 Basement Lane","email":"me@basement.com","follow_up_1":{"answered":"Still exploring. Let's get the ball rolling.","asked":"Has your project moved forward, or would you still like to explore options?"},"name":"Me","project":"Convert basement into a flat","timeframe":"Just exploring"},"states":["open","lost"],"pressed":["open -> Not for us"],"touches":2,"ask_backs":[{"state":"open","button":"Not for us","question":"Has your project moved forward, or would you still like to explore options?","answerable":true}],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"owner-basement-conversion","need":"build-price-enquiry","run":2,"target":"won","record":{"address":"42 Maple Crescent, Basingstoke, RG24 9JX","email":"sarah.jenkins@email.com","follow_up_1":{"answered":"No, I don't have the title deed. I'm just looking to turn the basement into a flat, so I haven't sorted out the paperwork yet.","asked":"Do you have a valid title deed or proof of ownership for the property at 42 Maple Crescent, RG24 9JX?"},"follow_up_2":{"answered":"No, I do not have a valid title deed or proof of ownership for the property at 42 Maple Crescent, RG24 9JX. I'm currently renting the basement or looking to convert it, but I haven't secured the legal paperwork yet.","asked":"Do you have a valid title deed or proof of ownership for the property at 42 Maple Crescent, RG24 9JX?"},"follow_up_3":{"answered":"No, I don't have a valid title deed or proof of ownership for the property at 42 Maple Crescent, RG24 9JX. I'm hoping to get one sorted before I proceed with the basement conversion, but right now I'm just the person wanting to turn it into a flat. I need to sort out the legal paperwork first.","asked":"Do you have a valid title deed or proof of ownership for the property at 42 Maple Crescent, RG24 9JX?"},"name":"Sarah Jenkins","project":"Convert existing basement into a one-bedroom flat with kitchenette, bathroom, and living area. Requires full architectural drawings, building regulation approval, and planning permission. Need detailed cost breakdown for structural work, MEP services, and finishes.","timeframe":"Within a year"},"states":["open","surveyed","quoted","won"],"pressed":["open -> Looked at the building","surveyed -> Quote sent","quoted -> Won"],"touches":6,"ask_backs":[{"state":"open","button":"Looked at the building","question":"Do you have a valid title deed or proof of ownership for the property at 42 Maple Crescent, RG24 9JX?","answerable":false},{"state":"surveyed","button":"Quote sent","question":"Do you have a valid title deed or proof of ownership for the property at 42 Maple Crescent, RG24 9JX?","answerable":true},{"state":"quoted","button":"Won","question":"Do you have a valid title deed or proof of ownership for the property at 42 Maple Crescent, RG24 9JX?","answerable":true}],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"electrician-more-work","need":"subcontractor-application","run":0,"target":"approved","record":{"company_name":"We're a small electrical firm","contact_email":"contact@weareaelectricalfirm.com","follow_up_1":{"answered":"We don't have a company registration number.","asked":"What is your company registration number?"},"insurance":"We have current public liability cover","registration_number":"We are registered but number not to hand right now","trade":"Electrical","trade_approval":""},"states":["open","approved"],"pressed":["open -> Approve"],"touches":2,"ask_backs":[{"state":"open","button":"Approve","question":"What is your company registration number?","answerable":false}],"outcome":{"outcome":"finished","detail":"approved"}}
{"persona":"electrician-more-work","need":"subcontractor-application","run":1,"target":"declined","record":{"company_name":"We're a small electrical firm and we'd like to pick up more building work. We're registered and insured, just need to know who to talk to about getting on your books.","contact_email":"email@example.com","follow_up_1":{"answered":"I don't know what you're talking about.","asked":"What is your company registration number and insurance provider details?"},"insurance":"Registered and insured, just need to know who to talk to about getting on your books.","registration_number":"Registered and insured, just need to know who to talk to about getting on your books.","trade":"Electrical","trade_approval":""},"states":["open","declined"],"pressed":["open -> Decline"],"touches":2,"ask_backs":[{"state":"open","button":"Decline","question":"What is your company registration number and insurance provider details?","answerable":false}],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"electrician-more-work","need":"subcontractor-application","run":2,"target":"approved","record":{"company_name":"C&W Electrical Services Ltd","contact_email":"info@cwelectricalservices.co.uk","follow_up_1":{"answered":"Yes, we have submitted all required insurance certificates and signed the standard subcontractor agreement. We're ready to go.","asked":"Has the company submitted the required insurance certificates and signed the standard subcontractor agreement?"},"insurance":"Public liability insurance held with Hiscox policy number HL-987654, cover limit £2,000,000. Electrical indemnity insurance with Allianz policy number AL-345321, cover limit £1,000,000.","registration_number":"OC345678","trade":"Electrical","trade_approval":"NICEIC approved contractor since 2015"},"states":["open","approved"],"pressed":["open -> Approve"],"touches":2,"ask_backs":[{"state":"open","button":"Approve","question":"Has the company submitted the required insurance certificates and signed the standard subcontractor agreement?","answerable":true}],"outcome":{"outcome":"finished","detail":"approved"}}
{"persona":"scaffolding-firm","need":"subcontractor-application","run":0,"target":"approved","record":{"company_name":"QuickSet Scaffolding Ltd","contact_email":"admin@quickset-scaffold.co.uk","follow_up_1":{"answered":"We are a scaffolding company, not a construction site with assigned operatives. We hire qualified scaffolders as needed, but we do not have CISRS cards for our own staff.","asked":"Do you have a valid and current CISRS card for the operatives assigned to Nordvik Bygg projects?"},"insurance":"Public Liability £5M / Employers Liability £10M","registration_number":"12345678","trade":"Scaffolding","trade_approval":"CISRS Registered - Ref: CIS/2024/001"},"states":["open","approved"],"pressed":["open -> Approve"],"touches":2,"ask_backs":[{"state":"open","button":"Approve","question":"Do you have a valid and current CISRS card for the operatives assigned to Nordvik Bygg projects?","answerable":false}],"outcome":{"outcome":"finished","detail":"approved"}}
{"persona":"scaffolding-firm","need":"subcontractor-application","run":1,"target":"declined","record":{"company_name":"We put up and take down scaffolding for building sites.","contact_email":"contact@scaffoldingco.uk","follow_up_1":{"answered":"I don't have the registration number.","asked":"What is the company's registration number?"},"insurance":"We have public liability cover, policy number available on request.","registration_number":"Would prefer not to share this publicly.","trade":"Scaffolding"},"states":["open","declined"],"pressed":["open -> Decline"],"touches":2,"ask_backs":[{"state":"open","button":"Decline","question":"What is the company's registration number?","answerable":false}],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"scaffolding-firm","need":"subcontractor-application","run":2,"target":"approved","record":{"company_name":"Rapid Response Scaffolding Ltd","contact_email":"admin@rapidresponse-scaffold.co.uk","follow_up_1":{"answered":"No, I'm just a person writing a message on your behalf. You'll need to check with the actual scaffolding company about their certifications.","asked":"Do you have a valid and current scaffolding-specific certification (e.g., PASMA, CISRS) or relevant trade accreditation for the work you perform?"},"insurance":"Public Liability £5M; Employers Liability £10M; Certificate current to 31/12/2025","registration_number":"OC327489","trade":"Scaffolding","trade_approval":"N/A"},"states":["open","approved"],"pressed":["open -> Approve"],"touches":2,"ask_backs":[{"state":"open","button":"Approve","question":"Do you have a valid and current scaffolding-specific certification (e.g., PASMA, CISRS) or relevant trade accreditation for the work you perform?","answerable":true}],"outcome":{"outcome":"finished","detail":"approved"}}
{"persona":"apprentice-asking","need":"job-application","run":0,"target":"hired","record":{"follow_up_1":{"answered":"206-555-0199","asked":"What is your phone number?"},"follow_up_2":{"answered":"I'm applying for an apprentice position.","asked":"Which specific carpentry role are you applying for (e.g., apprentice, journeyman, project lead)?"},"message":"I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after the apprenticeship. Are you taking anyone on right now?","name":"Jordan","role":"Apprentice carpenter"},"states":["open","interviewing","hired"],"pressed":["open -> Invite to interview","interviewing -> Hire"],"touches":4,"ask_backs":[{"state":"open","button":"Invite to interview","question":"What is your phone number?","answerable":true},{"state":"interviewing","button":"Hire","question":"Which specific carpentry role are you applying for (e.g., apprentice, journeyman, project lead)?","answerable":true}],"outcome":{"outcome":"finished","detail":"hired"}}
{"persona":"apprentice-asking","need":"job-application","run":1,"target":"declined","record":{"email":"","follow_up_1":{"answered":"I don't know it.","asked":"What is your email address?"},"message":"I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after.","name":"I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after.","role":"Apprentice carpenter"},"states":["open","declined"],"pressed":["open -> Decline"],"touches":2,"ask_backs":[{"state":"open","button":"Decline","question":"What is your email address?","answerable":false}],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"apprentice-asking","need":"job-application","run":2,"target":"hired","record":{"follow_up_1":{"answered":"it's me@email.com","asked":"What is your email address?"},"follow_up_2":{"answered":"I'm not taking anyone on right now. I'm finishing up a job and sorting out my own schedule for next season. I don't have the time to train a new apprentice while I'm trying to keep my own crew running. If you're serious, ask me again in a few months when things settle down.","asked":"Do you want to proceed with hiring this applicant?"},"message":"I'm currently in my second year of carpentry apprenticeship and looking for a firm that will take me on permanently after I complete my training. I have hands-on experience with framing, finish work, and tool maintenance, and I'm eager to find a workplace where I can grow long-term.","name":"I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after.","role":"Apprentice carpenter"},"states":["open","interviewing","hired"],"pressed":["open -> Invite to interview","interviewing -> Hire"],"touches":4,"ask_backs":[{"state":"open","button":"Invite to interview","question":"What is your email address?","answerable":true},{"state":"interviewing","button":"Hire","question":"Do you want to proceed with hiring this applicant?","answerable":false}],"outcome":{"outcome":"finished","detail":"hired"}}
{"persona":"experienced-carpenter","need":"job-application","run":0,"target":"hired","record":{"email":"alex.miller@example.com","follow_up_1":{"answered":"925-555-0198","asked":"What is your phone number?"},"follow_up_2":{"answered":"I'm available on the 15th, but I need to know the start time. I have a morning job that day, so I can only make it in after 10 AM.","asked":"Can you come in for an interview on [Date]?"},"message":"Eight years experience specializing in older buildings. I have hand tools for precise joinery and familiarity with period materials. Available for site work.","name":"Alex Miller","role":"Carpenter"},"states":["open","interviewing","hired"],"pressed":["open -> Invite to interview","interviewing -> Hire"],"touches":4,"ask_backs":[{"state":"open","button":"Invite to interview","question":"What is your phone number?","answerable":true},{"state":"interviewing","button":"Hire","question":"Can you come in for an interview on [Date]?","answerable":true}],"outcome":{"outcome":"finished","detail":"hired"}}
{"persona":"experienced-carpenter","need":"job-application","run":1,"target":"declined","record":{"email":"eli.carpenter8@protonmail.com","message":"Eight years in older buildings. Prefer hand tools, lime mortar, and keeping things standing.","name":"Eli","role":"Carpenter"},"states":["open","declined"],"pressed":["open -> Decline"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"experienced-carpenter","need":"job-application","run":2,"target":"hired","record":{"email":"james.miller@example.com","follow_up_1":{"answered":"I'm a carpenter, not a citizen. I just have a passport.","asked":"Do you have the legal right to work in the country where Nordvik Bygg operates?"},"message":"I'm James, an experienced carpenter with eight years specializing in older buildings. I have a strong background in structural restoration, period joinery, and working with reclaimed materials. I'm looking for a position where I can apply my skills to heritage projects and continue learning from experienced craftsmen.","name":"James Miller","role":"Carpenter"},"states":["open","interviewing","hired"],"pressed":["open -> Invite to interview","interviewing -> Hire"],"touches":3,"ask_backs":[{"state":"interviewing","button":"Hire","question":"Do you have the legal right to work in the country where Nordvik Bygg operates?","answerable":true}],"outcome":{"outcome":"finished","detail":"hired"}}
{"persona":"crew-loose-scaffold","need":"report-site-issue","run":0,"target":"closed","record":{"details":"Board feels loose under weight; gloves on, no time for detailed investigation","follow_up_1":{"answered":"First name's Mark, I'm a labourer on site. No time for faffing about.","asked":"What is your full name and role (e.g., employee or subcontractor) so I can assign the follow-up correctly?"},"follow_up_2":{"answered":"the crew member who flagged it","asked":"Which person marked this as fixed: the crew member who flagged it, or the subcontractor's worker?"},"issue_type":"Hazard","location":"Scaffold walkway near Zone 3"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":4,"ask_backs":[{"state":"open","button":"Look into it","question":"What is your full name and role (e.g., employee or subcontractor) so I can assign the follow-up correctly?","answerable":true},{"state":"in_hand","button":"Mark fixed","question":"Which person marked this as fixed: the crew member who flagged it, or the subcontractor's worker?","answerable":true}],"outcome":{"outcome":"finished","detail":"closed"}}
{"persona":"crew-loose-scaffold","need":"report-site-issue","run":1,"target":"closed","record":{"details":"Board feels loose under weight, gloves on, needs checking","follow_up_1":{"answered":"No, I was stepping on it.","asked":"Has a visual inspection of the scaffold board near main entrance been completed?"},"follow_up_2":{"answered":"No, I just noticed it.","asked":"Has a visual inspection of the scaffold board near main entrance been completed?"},"issue_type":"Hazard","location":"Scaffold board near main entrance"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":4,"ask_backs":[{"state":"open","button":"Look into it","question":"Has a visual inspection of the scaffold board near main entrance been completed?","answerable":false},{"state":"in_hand","button":"Mark fixed","question":"Has a visual inspection of the scaffold board near main entrance been completed?","answerable":false}],"outcome":{"outcome":"finished","detail":"closed"}}
{"persona":"crew-loose-scaffold","need":"report-site-issue","run":2,"target":"closed","record":{"details":"Scaffold board feels loose and unstable under foot. Gloves on, time limited. Board not sitting right, risk of slip or fall if stepped on. Flagging immediately to prevent injury.","follow_up_1":{"answered":"Scaffold bay 4, Level 3. The board is over the walkway. It's still in use, no cordon up yet. I just stepped on it and it dipped.","asked":"Can you confirm the exact location of the scaffold board issue? For example, which specific scaffold bay or level, and the current status of the area (e.g., is the scaffold still in use or has it been cordoned off)?"},"follow_up_2":{"answered":"Board is still up, no cordon up yet. I stepped on it to test it, wobbled a bit, then got off. Didn't tie it off or rope it off because I was in a rush and just wanted to warn the boss. Gonna go back with proper gear later to fix it for real.","asked":"Has the scaffold board been secured or removed, and has the area been cordoned off to prevent further use?"},"issue_type":"Hazard","location":"Scaffold area, near main entrance"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":4,"ask_backs":[{"state":"open","button":"Look into it","question":"Can you confirm the exact location of the scaffold board issue? For example, which specific scaffold bay or level, and the current status of the area (e.g., is the scaffold still in use or has it been cordoned off)?","answerable":true},{"state":"in_hand","button":"Mark fixed","question":"Has the scaffold board been secured or removed, and has the area been cordoned off to prevent further use?","answerable":true}],"outcome":{"outcome":"finished","detail":"closed"}}
{"persona":"subcontractor-wrong-delivery","need":"report-site-issue","run":0,"target":"closed","record":{"details":"Delivery this morning arrived with standard fiberglass batts instead of the specified mineral wool board. Packaging labels match the delivery note but not the structural drawings. Awaiting confirmation on whether to reject the shipment or hold for exchange.","follow_up_1":{"answered":"Counted 25 rolls of fiberglass batts against the spec for mineral wool. I only noticed because I cross-referenced the truck tag against the manifest before unloading.","asked":"What is the quantity of wrong materials delivered?"},"follow_up_2":{"answered":"Left on the truck. I haven't unloaded it yet, waiting for clarification before proceeding.","asked":"How has the wrong material been handled since delivery? (e.g., moved to quarantine, used in work, left in the storage area)"},"issue_type":"Wrong materials delivered","location":"Storage area, Zone B"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":4,"ask_backs":[{"state":"open","button":"Look into it","question":"What is the quantity of wrong materials delivered?","answerable":true},{"state":"in_hand","button":"Mark fixed","question":"How has the wrong material been handled since delivery? (e.g., moved to quarantine, used in work, left in the storage area)","answerable":true}],"outcome":{"outcome":"finished","detail":"closed"}}
{"persona":"subcontractor-wrong-delivery","need":"report-site-issue","run":1,"target":"closed","record":{"details":"Wrong type of insulation delivered this morning. Not what was on the drawings.","follow_up_1":{"answered":"No, the wrong insulation is still on site.","asked":"Has the wrong insulation been removed or replaced with the correct type?"},"issue_type":"Wrong materials delivered","location":"Main entrance staging area"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":3,"ask_backs":[{"state":"in_hand","button":"Mark fixed","question":"Has the wrong insulation been removed or replaced with the correct type?","answerable":false}],"outcome":{"outcome":"finished","detail":"closed"}}
{"persona":"subcontractor-wrong-delivery","need":"report-site-issue","run":2,"target":"closed","record":{"details":"The delivery arrived this morning. I was expecting the blue fiberglass batts shown on the project drawings, but the delivery contained mineral wool boards instead. The packaging was labeled for a different job number. I stopped the crew from offloading it. Someone needs to verify the correct material before it gets installed, as the R-value and fit are different from what's specified. I don't have the delivery ticket number handy, but the driver said it was a substitute from the supplier's stock.","follow_up_1":{"answered":"Yes, I have the delivery ticket number from the manifest on the pallet, but the supplier's contact details are just the generic office number on the invoice, not a specific representative. I can read the ticket number off the label if you need me to verify the substitution details.","asked":"Do you have the delivery ticket number or the supplier's contact details to verify the substitution?"},"follow_up_2":{"answered":"I don't have the delivery ticket or the label in front of me right now, so I can't read the number off the pallet. I need someone to physically check the pallet tag or look up the shipment record in the system to get that number and confirm what was actually delivered versus what was specified on the drawings.","asked":"Can you read the delivery ticket number from the label on the pallet to verify the substitution details?"},"issue_type":"Wrong materials delivered","location":"Warehouse staging area, Bay 4"},"states":["open","in_hand","closed"],"pressed":["open -> Look into it","in_hand -> Mark fixed"],"touches":4,"ask_backs":[{"state":"open","button":"Look into it","question":"Do you have the delivery ticket number or the supplier's contact details to verify the substitution?","answerable":true},{"state":"in_hand","button":"Mark fixed","question":"Can you read the delivery ticket number from the label on the pallet to verify the substitution details?","answerable":false}],"outcome":{"outcome":"finished","detail":"closed"}}
@@ -0,0 +1,720 @@
{
"buckets": {
"applicants": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Invite to interview",
"to": "interviewing"
},
{
"from": "open",
"label": "Decline",
"to": "declined"
},
{
"from": "interviewing",
"label": "Hire",
"to": "hired"
},
{
"from": "interviewing",
"label": "Decline",
"to": "declined"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"interviewing": [
"hired",
"declined"
],
"open": [
"interviewing",
"declined"
]
}
},
"enquiries": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Looked at the building",
"to": "surveyed"
},
{
"from": "surveyed",
"label": "Quote sent",
"to": "quoted"
},
{
"from": "surveyed",
"label": "Not worth quoting",
"to": "lost"
},
{
"from": "open",
"label": "Not for us",
"to": "lost"
},
{
"from": "quoted",
"label": "Won",
"to": "won"
},
{
"from": "quoted",
"label": "Lost",
"to": "lost"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"open": [
"surveyed",
"lost"
],
"quoted": [
"won",
"lost"
],
"surveyed": [
"quoted",
"lost"
]
}
},
"site_issues": {
"desks": [
{
"group": "safety_officer",
"moves": [
{
"from": "open",
"label": "Look into it",
"to": "in_hand"
},
{
"from": "in_hand",
"label": "Mark fixed",
"to": "closed"
}
],
"page": "/safety"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"in_hand": [
"closed"
],
"open": [
"in_hand"
]
}
},
"subcontractors": {
"desks": [
{
"group": "project_managers",
"moves": [
{
"from": "open",
"label": "Ask for missing papers",
"to": "awaiting_papers"
},
{
"from": "open",
"label": "Approve",
"to": "approved"
},
{
"from": "open",
"label": "Decline",
"to": "declined"
},
{
"from": "awaiting_papers",
"label": "Approve",
"to": "approved"
},
{
"from": "awaiting_papers",
"label": "Decline",
"to": "declined"
}
],
"page": "/desk"
}
],
"initial": "open",
"self_moves": [],
"transitions": {
"awaiting_papers": [
"approved",
"declined"
],
"open": [
"awaiting_papers",
"approved",
"declined"
]
}
}
},
"needs": [
{
"done_when": [
"won",
"lost"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "survey-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Get someone to look at a building",
"expect": [
"Get someone to look at a building"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Address of the building",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What's wrong",
"name": "problem",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"won"
],
"wants": "someone from Nordvik Bygg to come and look at the building and tell them what a fix would cost",
"who": "a housing board member or private owner with a problem in a building"
},
{
"done_when": [
"won",
"lost"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "build-price-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Get a price for a build",
"expect": [
"Get a price for a build"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Address of the site",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What you want built",
"name": "project",
"optional": false,
"options": [],
"type": "textarea"
},
{
"label": "When you'd like to start",
"name": "timeframe",
"optional": false,
"options": [
"As soon as possible",
"Within a year",
"Just exploring"
],
"type": "select"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"won"
],
"wants": "drawings, a permit application and a price for the work",
"who": "an owner who already knows what they want built"
},
{
"done_when": [
"approved",
"declined"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "subcontractor-application",
"lands_in": "subcontractors",
"steps": [
{
"alternative": "Join our subcontractor list",
"expect": [
"Join our subcontractor list"
],
"fields": [
{
"label": "Company name",
"name": "company_name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "contact_email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "Trade",
"name": "trade",
"optional": false,
"options": [
"Electrical",
"Plumbing",
"Scaffolding"
],
"type": "select"
},
{
"label": "Company registration number",
"name": "registration_number",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Insurance policy details",
"name": "insurance",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Trade approval reference",
"name": "trade_approval",
"optional": true,
"options": [],
"type": "text"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"approved"
],
"wants": "to get on Nordvik Bygg's list of subcontractors they call for work",
"who": "a trade firm doing electrical, plumbing or scaffolding work"
},
{
"done_when": [
"hired",
"declined"
],
"enters_as": null,
"handled_by": "project_managers",
"id": "job-application",
"lands_in": "applicants",
"steps": [
{
"alternative": "Ask about working with us",
"expect": [
"Ask about working with us"
],
"fields": [
{
"label": "Your name",
"name": "name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Email",
"name": "email",
"optional": false,
"options": [],
"type": "email"
},
{
"label": "What you do",
"name": "role",
"optional": false,
"options": [
"Carpenter",
"Apprentice carpenter",
"Other"
],
"type": "select"
},
{
"label": "Anything else we should know",
"name": "message",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"hired"
],
"wants": "to find out if Nordvik Bygg is hiring and put themselves forward",
"who": "a carpenter or apprentice looking for work"
},
{
"done_when": [
"closed"
],
"enters_as": null,
"handled_by": "safety_officer",
"id": "report-site-issue",
"lands_in": "site_issues",
"steps": [
{
"alternative": "Report something from site",
"expect": [
"Report something from site"
],
"fields": [
{
"label": "What kind of issue",
"name": "issue_type",
"optional": false,
"options": [
"Hazard",
"Near miss",
"Wrong materials delivered"
],
"type": "select"
},
{
"label": "Where on site",
"name": "location",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What happened",
"name": "details",
"optional": false,
"options": [],
"type": "textarea"
}
],
"options": [
{
"description": "For housing boards and private owners with a problem in a building who want us to come and take a look.",
"name": "Get someone to look at a building"
},
{
"description": "For owners who already know what they want built and need drawings, a permit application and a price.",
"name": "Get a price for a build"
},
{
"description": "For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"name": "Join our subcontractor list"
},
{
"description": "For carpenters and apprentices who want to know if we're hiring.",
"name": "Ask about working with us"
},
{
"description": "For crew on site, ours or a subcontractor's, who've spotted a hazard, a near miss or the wrong materials.",
"name": "Report something from site"
}
],
"page": "/",
"question": "What brings you here?"
}
],
"success": [
"closed"
],
"wants": "to flag a hazard, a near miss or wrong materials fast, from their phone",
"who": "a crew member on site, ours or a subcontractor's"
},
{
"done_when": [
"won",
"lost"
],
"enters_as": "project_managers",
"handled_by": "project_managers",
"id": "log-phone-enquiry",
"lands_in": "enquiries",
"steps": [
{
"alternative": "Log this enquiry",
"expect": [
"Log this enquiry"
],
"fields": [
{
"label": "Their name",
"name": "caller_name",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Phone or email",
"name": "contact",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "Address of the building",
"name": "address",
"optional": false,
"options": [],
"type": "text"
},
{
"label": "What they told you",
"name": "problem",
"optional": false,
"options": [],
"type": "textarea"
},
{
"label": "How soon",
"name": "urgency",
"optional": false,
"options": [
"This week",
"This month",
"No rush"
],
"type": "select"
}
],
"options": [
{
"description": "",
"name": "Log this enquiry"
}
],
"page": "/desk/phone-enquiry",
"question": "What did they tell you?"
}
],
"success": [
"won"
],
"wants": "to get the enquiry into the system before it gets lost",
"who": "a project manager who just took a call, email or text about a building"
}
],
"personas": [
{
"id": "housing-board-cracks",
"need": "survey-enquiry",
"text": "There are cracks running up the outside wall of our building and none of us know if it's serious. We just want someone qualified to come look at it and tell us what we're dealing with."
},
{
"id": "homeowner-leaking-roof",
"need": "survey-enquiry",
"text": "Water's coming through the ceiling every time it rains. I don't know if it's the roof or something else, I just want someone to come out and have a look before it gets worse."
},
{
"id": "homeowner-extension",
"need": "build-price-enquiry",
"text": "We want to add a room above the garage. We know roughly what we want, we just need someone to draw it up, sort the paperwork with the municipality, and tell us what it will cost."
},
{
"id": "owner-basement-conversion",
"need": "build-price-enquiry",
"text": "I'd like to turn the basement into a flat. Need drawings, the permit sorted, and a proper price before I commit to anything."
},
{
"id": "electrician-more-work",
"need": "subcontractor-application",
"text": "We're a small electrical firm and we'd like to pick up more building work. We're registered and insured, just need to know who to talk to about getting on your books."
},
{
"id": "scaffolding-firm",
"need": "subcontractor-application",
"text": "We put up and take down scaffolding for building sites. We'd like to be one of the firms you call when a job needs it."
},
{
"id": "apprentice-asking",
"need": "job-application",
"text": "I'm in my second year as an apprentice carpenter and looking for a firm that'll keep me on after. Are you taking anyone on right now?"
},
{
"id": "experienced-carpenter",
"need": "job-application",
"text": "I've been doing carpentry for eight years, mostly older buildings. Wondered if you had any openings on site."
},
{
"id": "crew-loose-scaffold",
"need": "report-site-issue",
"text": "Noticed a scaffold board that's not sitting right, feels loose when you step on it. Wanted to flag it straight away before someone gets hurt, but I've got gloves on and no time for a long form."
},
{
"id": "subcontractor-wrong-delivery",
"need": "report-site-issue",
"text": "The delivery this morning was the wrong type of insulation, not what was on the drawings. Someone needs to know before it gets used."
}
]
}
@@ -0,0 +1,465 @@
{
"build-price-enquiry": {
"cases": 6,
"finished": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 28,
"ask_backs": 14,
"unanswerable": 5,
"asked": [
{
"state": "open",
"button": "Looked at the building",
"question": "Can I have your permission to visit the property at 42 Maple Street, Unit 3B, Portland, OR 97201 to take measurements and assess the existing structure?",
"answerable": true
},
{
"state": "surveyed",
"button": "Quote sent",
"question": "Is the owner available for a site visit to take measurements and assess the existing structure?",
"answerable": true
},
{
"state": "quoted",
"button": "Won",
"question": "Has the owner signed the contract and submitted the deposit?",
"answerable": false
},
{
"state": "open",
"button": "Not for us",
"question": "Is this project still a possibility, or have you already decided not to proceed?",
"answerable": true
},
{
"state": "open",
"button": "Looked at the building",
"question": "What is the current condition of the existing garage structure and the site (soil, grade, access) that would need to be surveyed?",
"answerable": true
},
{
"state": "surveyed",
"button": "Quote sent",
"question": "Can you provide the current condition of the existing garage structure and the site (soil, grade, access) that would need to be surveyed?",
"answerable": false
},
{
"state": "quoted",
"button": "Won",
"question": "Has the surveyor or structural engineer been hired and completed the documentation of the existing conditions, soil, and grade?",
"answerable": true
},
{
"state": "open",
"button": "Looked at the building",
"question": "Can we proceed with a site visit, or is the basement currently occupied/locked?",
"answerable": true
},
{
"state": "surveyed",
"button": "Quote sent",
"question": "Has the site been visited to assess the current condition and verify the lock status?",
"answerable": false
},
{
"state": "quoted",
"button": "Won",
"question": "Has a site visit been conducted to verify the lock status and current condition of the basement?",
"answerable": false
},
{
"state": "open",
"button": "Not for us",
"question": "Has your project moved forward, or would you still like to explore options?",
"answerable": true
},
{
"state": "open",
"button": "Looked at the building",
"question": "Do you have a valid title deed or proof of ownership for the property at 42 Maple Crescent, RG24 9JX?",
"answerable": false
},
{
"state": "surveyed",
"button": "Quote sent",
"question": "Do you have a valid title deed or proof of ownership for the property at 42 Maple Crescent, RG24 9JX?",
"answerable": true
},
{
"state": "quoted",
"button": "Won",
"question": "Do you have a valid title deed or proof of ownership for the property at 42 Maple Crescent, RG24 9JX?",
"answerable": true
}
],
"buttons": {
"open -> Looked at the building": [
4,
4
],
"open -> Not for us": [
2,
2
],
"quoted -> Won": [
4,
4
],
"surveyed -> Quote sent": [
4,
4
]
},
"stuck_at": [],
"misroutes": [],
"abandon_reasons": []
},
"job-application": {
"cases": 6,
"finished": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 18,
"ask_backs": 8,
"unanswerable": 2,
"asked": [
{
"state": "open",
"button": "Invite to interview",
"question": "What is your phone number?",
"answerable": true
},
{
"state": "interviewing",
"button": "Hire",
"question": "Which specific carpentry role are you applying for (e.g., apprentice, journeyman, project lead)?",
"answerable": true
},
{
"state": "open",
"button": "Decline",
"question": "What is your email address?",
"answerable": false
},
{
"state": "open",
"button": "Invite to interview",
"question": "What is your email address?",
"answerable": true
},
{
"state": "interviewing",
"button": "Hire",
"question": "Do you want to proceed with hiring this applicant?",
"answerable": false
},
{
"state": "open",
"button": "Invite to interview",
"question": "What is your phone number?",
"answerable": true
},
{
"state": "interviewing",
"button": "Hire",
"question": "Can you come in for an interview on [Date]?",
"answerable": true
},
{
"state": "interviewing",
"button": "Hire",
"question": "Do you have the legal right to work in the country where Nordvik Bygg operates?",
"answerable": true
}
],
"buttons": {
"interviewing -> Hire": [
4,
4
],
"open -> Decline": [
2,
1
],
"open -> Invite to interview": [
4,
3
]
},
"stuck_at": [],
"misroutes": [],
"abandon_reasons": []
},
"report-site-issue": {
"cases": 6,
"finished": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 23,
"ask_backs": 11,
"unanswerable": 4,
"asked": [
{
"state": "open",
"button": "Look into it",
"question": "What is your full name and role (e.g., employee or subcontractor) so I can assign the follow-up correctly?",
"answerable": true
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "Which person marked this as fixed: the crew member who flagged it, or the subcontractor's worker?",
"answerable": true
},
{
"state": "open",
"button": "Look into it",
"question": "Has a visual inspection of the scaffold board near main entrance been completed?",
"answerable": false
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "Has a visual inspection of the scaffold board near main entrance been completed?",
"answerable": false
},
{
"state": "open",
"button": "Look into it",
"question": "Can you confirm the exact location of the scaffold board issue? For example, which specific scaffold bay or level, and the current status of the area (e.g., is the scaffold still in use or has it been cordoned off)?",
"answerable": true
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "Has the scaffold board been secured or removed, and has the area been cordoned off to prevent further use?",
"answerable": true
},
{
"state": "open",
"button": "Look into it",
"question": "What is the quantity of wrong materials delivered?",
"answerable": true
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "How has the wrong material been handled since delivery? (e.g., moved to quarantine, used in work, left in the storage area)",
"answerable": true
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "Has the wrong insulation been removed or replaced with the correct type?",
"answerable": false
},
{
"state": "open",
"button": "Look into it",
"question": "Do you have the delivery ticket number or the supplier's contact details to verify the substitution?",
"answerable": true
},
{
"state": "in_hand",
"button": "Mark fixed",
"question": "Can you read the delivery ticket number from the label on the pallet to verify the substitution details?",
"answerable": false
}
],
"buttons": {
"in_hand -> Mark fixed": [
6,
6
],
"open -> Look into it": [
6,
5
]
},
"stuck_at": [],
"misroutes": [],
"abandon_reasons": []
},
"subcontractor-application": {
"cases": 6,
"finished": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 12,
"ask_backs": 6,
"unanswerable": 4,
"asked": [
{
"state": "open",
"button": "Approve",
"question": "What is your company registration number?",
"answerable": false
},
{
"state": "open",
"button": "Decline",
"question": "What is your company registration number and insurance provider details?",
"answerable": false
},
{
"state": "open",
"button": "Approve",
"question": "Has the company submitted the required insurance certificates and signed the standard subcontractor agreement?",
"answerable": true
},
{
"state": "open",
"button": "Approve",
"question": "Do you have a valid and current CISRS card for the operatives assigned to Nordvik Bygg projects?",
"answerable": false
},
{
"state": "open",
"button": "Decline",
"question": "What is the company's registration number?",
"answerable": false
},
{
"state": "open",
"button": "Approve",
"question": "Do you have a valid and current scaffolding-specific certification (e.g., PASMA, CISRS) or relevant trade accreditation for the work you perform?",
"answerable": true
}
],
"buttons": {
"open -> Approve": [
4,
4
],
"open -> Decline": [
2,
2
]
},
"stuck_at": [],
"misroutes": [],
"abandon_reasons": []
},
"survey-enquiry": {
"cases": 6,
"finished": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 28,
"ask_backs": 14,
"unanswerable": 4,
"asked": [
{
"state": "open",
"button": "Looked at the building",
"question": "Do you have access to the building right now, or can you arrange for someone to let me in?",
"answerable": true
},
{
"state": "surveyed",
"button": "Quote sent",
"question": "Are you or the building manager available to grant access to the property for a site visit?",
"answerable": true
},
{
"state": "quoted",
"button": "Won",
"question": "Can you coordinate a specific time for a site visit that works for the building manager or property manager?",
"answerable": true
},
{
"state": "open",
"button": "Not for us",
"question": "What is the exact address of the building?",
"answerable": false
},
{
"state": "open",
"button": "Looked at the building",
"question": "Is the building currently occupied or vacant?",
"answerable": true
},
{
"state": "surveyed",
"button": "Quote sent",
"question": "Can you provide a convenient time for a site visit?",
"answerable": false
},
{
"state": "quoted",
"button": "Won",
"question": "Do you have a convenient time for a site visit?",
"answerable": true
},
{
"state": "open",
"button": "Looked at the building",
"question": "Do you have access to the building right now, or would you need to schedule an appointment?",
"answerable": true
},
{
"state": "surveyed",
"button": "Quote sent",
"question": "Could you grant access to the building or schedule an appointment for us to inspect the leak?",
"answerable": true
},
{
"state": "quoted",
"button": "Won",
"question": "Can you grant access to the building for an inspection during a morning appointment?",
"answerable": true
},
{
"state": "open",
"button": "Not for us",
"question": "What is the address of the building?",
"answerable": false
},
{
"state": "open",
"button": "Looked at the building",
"question": "Could you confirm the exact address of the building, including the street number and apartment/unit number?",
"answerable": true
},
{
"state": "surveyed",
"button": "Quote sent",
"question": "Can you confirm the exact address of the building, including the street number and apartment/unit number?",
"answerable": false
},
{
"state": "quoted",
"button": "Won",
"question": "Can you provide the exact street number and apartment/unit number for the address?",
"answerable": true
}
],
"buttons": {
"open -> Looked at the building": [
4,
4
],
"open -> Not for us": [
2,
2
],
"quoted -> Won": [
4,
4
],
"surveyed -> Quote sent": [
4,
4
]
},
"stuck_at": [],
"misroutes": [],
"abandon_reasons": []
}
}
@@ -0,0 +1,93 @@
{
"build-price-enquiry": {
"cases": 10,
"finished": 10,
"success": 0,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 10,
"ask_backs": 0,
"asked": [],
"stuck_at": [],
"misroutes": [],
"abandon_reasons": [],
"ended_in": {
"lost": 10
}
},
"job-application": {
"cases": 10,
"finished": 10,
"success": 0,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 10,
"ask_backs": 0,
"asked": [],
"stuck_at": [],
"misroutes": [],
"abandon_reasons": [],
"ended_in": {
"declined": 10
}
},
"report-site-issue": {
"cases": 10,
"finished": 10,
"success": 10,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 21,
"ask_backs": 1,
"asked": [
[
"in_hand",
"Can you confirm if the wrong insulation was delivered to the Main site entrance and if it's still on site?"
]
],
"stuck_at": [],
"misroutes": [],
"abandon_reasons": [],
"ended_in": {
"closed": 10
}
},
"subcontractor-application": {
"cases": 10,
"finished": 10,
"success": 5,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 19,
"ask_backs": 0,
"asked": [],
"stuck_at": [],
"misroutes": [],
"abandon_reasons": [],
"ended_in": {
"approved": 5,
"declined": 5
}
},
"survey-enquiry": {
"cases": 10,
"finished": 10,
"success": 0,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 10,
"ask_backs": 0,
"asked": [],
"stuck_at": [],
"misroutes": [],
"abandon_reasons": [],
"ended_in": {
"lost": 10
}
}
}
@@ -0,0 +1,98 @@
{
"build-price-enquiry": {
"cases": 6,
"finished": 5,
"success": 5,
"stuck": 0,
"misrouted": 1,
"abandoned": 0,
"touches": 10,
"ask_backs": 0,
"asked": [],
"stuck_at": [],
"misroutes": [
"owner-basement-conversion: Get a price for a build: For owners who already know what they want built and need drawings, a permit application and a price."
],
"abandon_reasons": [],
"ended_in": {
"won": 5
}
},
"job-application": {
"cases": 6,
"finished": 0,
"success": 0,
"stuck": 0,
"misrouted": 6,
"abandoned": 0,
"touches": 0,
"ask_backs": 0,
"asked": [],
"stuck_at": [],
"misroutes": [
"apprentice-asking: Ask about working with us: For carpenters and apprentices who want to know if we're hiring.",
"apprentice-asking: Ask about working with us: For carpenters and apprentices who want to know if we're hiring.",
"apprentice-asking: Ask about working with us: For carpenters and apprentices who want to know if we're hiring.",
"experienced-carpenter: Ask about working with us: For carpenters and apprentices who want to know if we're hiring.",
"experienced-carpenter: Ask about working with us: For carpenters and apprentices who want to know if we're hiring.",
"experienced-carpenter: Ask about working with us: For carpenters and apprentices who want to know if we're hiring."
],
"abandon_reasons": [],
"ended_in": {}
},
"report-site-issue": {
"cases": 6,
"finished": 6,
"success": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 12,
"ask_backs": 0,
"asked": [],
"stuck_at": [],
"misroutes": [],
"abandon_reasons": [],
"ended_in": {
"closed": 6
}
},
"subcontractor-application": {
"cases": 6,
"finished": 3,
"success": 3,
"stuck": 0,
"misrouted": 3,
"abandoned": 0,
"touches": 6,
"ask_backs": 0,
"asked": [],
"stuck_at": [],
"misroutes": [
"scaffolding-firm: Join our subcontractor list: For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"scaffolding-firm: Join our subcontractor list: For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them.",
"scaffolding-firm: Join our subcontractor list: For electrical, plumbing and scaffolding firms who want to be one of the firms we call when a job needs them."
],
"abandon_reasons": [],
"ended_in": {
"approved": 3
}
},
"survey-enquiry": {
"cases": 6,
"finished": 6,
"success": 6,
"stuck": 0,
"misrouted": 0,
"abandoned": 0,
"touches": 12,
"ask_backs": 0,
"asked": [],
"stuck_at": [],
"misroutes": [],
"abandon_reasons": [],
"ended_in": {
"won": 6
}
}
}
@@ -0,0 +1,8 @@
{"id":"housing-board-damp@/","choice":"Get a professional building survey","confidence":0.95}
{"id":"buyer-before-purchase@/","choice":"Get a professional building survey","confidence":0.95}
{"id":"attic-conversion@/","choice":"Plan your building project with us","confidence":0.95}
{"id":"shop-to-flat@/","choice":"Plan your building project with us","confidence":0.95}
{"id":"electrician-firm@/","choice":"Become a trusted subcontractor","confidence":0.95}
{"id":"scaffolder@/","choice":"Become a trusted subcontractor","confidence":0.95}
{"id":"carpenter-jobseeker@/","choice":"Join our carpentry team","confidence":0.95}
{"id":"apprentice@/","choice":"Join our carpentry team","confidence":0.95}
@@ -0,0 +1,8 @@
{"id":"housing-board-damp@/","choice":"Get a professional building survey","confidence":0.95}
{"id":"buyer-before-purchase@/","choice":"Get a professional building survey","confidence":0.95}
{"id":"attic-conversion@/","choice":"Plan your building project with us","confidence":0.95}
{"id":"shop-to-flat@/","choice":"Plan your building project with us","confidence":0.95}
{"id":"electrician-firm@/","choice":"Become a trusted subcontractor","confidence":0.95}
{"id":"scaffolder@/","choice":"Become a trusted subcontractor","confidence":0.95}
{"id":"carpenter-jobseeker@/","choice":"Join our carpentry team","confidence":0.95}
{"id":"apprentice@/","choice":"Join our carpentry team","confidence":0.95}
@@ -0,0 +1,75 @@
aggregates:
- bucket: applicants
initial: open
states:
declined:
event: declined
hired:
event: hired
interviewing:
event: interviewing
open:
event: received
transitions:
interviewing:
- hired
- declined
open:
- interviewing
- declined
- bucket: enquiries
initial: open
states:
lost:
event: lost
open:
event: received
quoted:
event: quoted
surveyed:
event: surveyed
won:
event: won
transitions:
open:
- surveyed
- lost
quoted:
- won
- lost
surveyed:
- quoted
- lost
- bucket: site_issues
initial: open
states:
closed:
event: closed
in_hand:
event: in_hand
open:
event: received
transitions:
in_hand:
- closed
open:
- in_hand
- bucket: subcontractors
initial: open
states:
approved:
event: approved
awaiting_papers:
event: awaiting_papers
declined:
event: declined
open:
event: received
transitions:
awaiting_papers:
- approved
- declined
open:
- awaiting_papers
- approved
- declined
@@ -0,0 +1,149 @@
needs:
- done_when:
- won
- lost
enters: /
handled_by: project_managers
id: survey-enquiry
lands_in: enquiries
max_fields: 4
max_steps: 1
stages:
- open
- surveyed
- quoted
- won
- lost
success:
- won
via: Get a professional building survey
wants: someone qualified to come and look at it and say what it takes
who: a housing board or private owner with a problem in a building
- done_when:
- won
- lost
enters: /
handled_by: project_managers
id: build-enquiry
lands_in: enquiries
max_fields: 5
max_steps: 1
stages:
- open
- surveyed
- quoted
- won
- lost
success:
- won
via: Plan your building project with us
wants: drawings, a permit application and a price
who: an owner who already knows what they want built or changed
- done_when:
- won
- lost
enters: /project_managers/log-phone-enquiry
enters_as: project_managers
handled_by: project_managers
id: log-phone-enquiry
lands_in: enquiries
max_fields: 4
max_steps: 1
stages:
- open
- surveyed
- quoted
- won
- lost
success:
- won
via: Log a phone enquiry
wants: the enquiry written down before it gets lost
who: a project manager who just took a call or a text about a building
- done_when:
- approved
- declined
enters: /
handled_by: project_managers
id: subcontractor-application
lands_in: subcontractors
max_fields: 5
max_steps: 1
stages:
- open
- awaiting_papers
- approved
- declined
success:
- approved
via: Become a trusted subcontractor
wants: to be approved once, and then be called when a job needs them
who: a trade firm doing electrical, plumbing or scaffolding work
- done_when:
- hired
- declined
enters: /
handled_by: project_managers
id: job-application
lands_in: applicants
max_fields: 3
max_steps: 1
stages:
- open
- interviewing
- hired
- declined
success:
- hired
via: Join our carpentry team
wants: to be considered, without writing a letter
who: a carpenter, bricklayer or apprentice looking for work
- done_when:
- closed
enters: /crew/report-site-issue
enters_as: crew
handled_by: safety_officer
id: report-site-issue
lands_in: site_issues
max_fields: 3
max_steps: 1
stages:
- open
- in_hand
- closed
success:
- closed
via: Report a safety issue on site
wants: to report a hazard, a near miss or wrong materials before they forget
who: anyone on site, ours or a subcontractor's, on a phone with gloves on
personas:
- id: housing-board-damp
need: survey-enquiry
text: I chair the board of a housing cooperative from the seventies. Two ground-floor flats have damp in the walls and we don't know if it's drainage or the facade. We need someone to tell us.
- id: buyer-before-purchase
need: survey-enquiry
text: We are about to buy an old timber house. Before we sign we want a professional to go through it and tell us what is wrong with it.
- id: attic-conversion
need: build-enquiry
text: We want to turn our attic into two bedrooms and a bathroom. We need drawings and someone who handles the application to the municipality.
- id: shop-to-flat
need: build-enquiry
text: I own a former shop on the ground floor and want to make it a flat. I have no idea what is allowed. Can you sort that out and give me a price?
- id: electrician-firm
need: subcontractor-application
text: We are a four-person electrical firm, fully certified. We would like to get on your list so you call us when you need electricians.
- id: scaffolder
need: subcontractor-application
text: I run a scaffolding company. How do I get to do jobs for you?
- id: carpenter-jobseeker
need: job-application
text: I'm a certified carpenter with eight years on rehabilitation jobs. Are you hiring?
- id: apprentice
need: job-application
text: I finish vocational school this spring and need an apprenticeship as a bricklayer.
- id: loose-railing
need: report-site-issue
text: The railing on the third level of the scaffold on the north side is loose. Nobody got hurt but someone will.
- id: wrong-membrane
need: report-site-issue
text: The bathroom membrane delivered today is not the one in the specification. We stopped work on it.
@@ -0,0 +1 @@
qualifies: crew
@@ -0,0 +1,11 @@
alternatives:
- action: /crew/report-site-issue
consequence:
- Report issue
description: Write down a hazard, near miss or wrong materials from the site.
name: Report a site issue
description: A desk for the project managers and safety officer. Move cases through stages, approve subs, and log issues.
name: What do you need to do today?
responsible:
contact: ingrid@nordvikbygg.example
name: Ingrid Nordvik
@@ -0,0 +1,10 @@
alternatives:
- description: A safety officer will assess the issue and assign it to the right person.
name: What happens next
- action: /crew
consequence:
- Back to form
description: ''
name: Back to form
description: Your report has been received. We will review it and get back to you.
name: What type of issue did you report?
@@ -0,0 +1,30 @@
alternatives:
- action: /crew/report-site-issue-sent
consequence:
- Send report
description: Use this form to report a safety issue, near miss, or wrong materials while on site.
features:
- name: Report a site issue
requirements:
- label: Issue type
name: kind
options:
- Hazard
- Near miss
- Wrong materials
- Other
type: select
- label: Where on site
name: where
type: text
- label: What happened
name: what_happened
type: textarea
name: Report a safety issue on site
record_as: site_issues
description: Report hazards, near misses, or wrong materials so they can be fixed.
followup: false
name: What happened on site?
responsible:
contact: ingrid@nordvikbygg.example
name: Ingrid Nordvik
@@ -0,0 +1,123 @@
alternatives:
- action: /received/survey-enquiry
consequence:
- Book a survey
description: We visit, assess and give you a quote for the repair work.
features:
- name: Survey enquiry
requirements:
- label: Your name
name: name
type: text
- label: Phone number
name: phone
type: tel
- label: Building address
name: address
type: text
- label: Describe the problem
name: problem
type: textarea
- label: Site access
name: access
optional: true
type: text
name: Get a professional building survey
record_as: enquiries
- action: /received/build-enquiry
consequence:
- Start project
description: We handle drawings, permits and price for your building plans.
features:
- name: Building project
requirements:
- label: Your name
name: name
type: text
- label: Phone number
name: phone
type: tel
- label: Project address
name: address
type: text
- label: Project description
name: project
type: textarea
- label: When do you want it done
name: timeframe
options:
- This year
- Next year
- No fixed date
type: select
name: Plan your building project with us
record_as: enquiries
- action: /received/subcontractor-application
consequence:
- Apply now
description: Register your trade firm so we can call you for jobs.
features:
- name: Subcontractor sign-up
requirements:
- label: Company name
name: company
type: text
- label: Org number
name: registration_number
type: text
- label: Your trade
name: trade
options:
- Electrical
- Plumbing
- Scaffolding
- Sheet metal
- Other
type: select
- label: Contact email
name: contact_email
type: email
- label: Insurance confirmed
name: insurance_confirmed
options:
- Yes
- Not yet
type: select
- label: Trade approval
name: trade_approval
optional: true
type: text
name: Become a trusted subcontractor
record_as: subcontractors
- action: /received/job-application
consequence:
- Apply for work
description: Share your trade and skills so we can find you a job.
features:
- name: Job application
requirements:
- label: Your name
name: name
type: text
- label: Phone number
name: phone
type: tel
- label: Your trade
name: trade
options:
- Carpenter
- Bricklayer
- Apprentice
- Other
type: select
- label: Your experience
name: experience
optional: true
type: textarea
name: Join our carpentry team
record_as: applicants
description: 'Pick what you need: a building check, a new project, or joining the team.'
name: What brings you to Nordvik Bygg today?
responsible:
contact: ingrid@nordvikbygg.example
name: Ingrid Nordvik
@@ -0,0 +1 @@
qualifies: project_managers
@@ -0,0 +1,98 @@
alternatives:
- action: /project_managers
consequence:
- Continue
description: A carpenter, bricklayer or apprentice looking for their next job can be added here. The team reviews their skills and experience.
features:
- description: ''
name: ''
resource:
requires_group: project_managers
source:
bucket: applicants
kind: kv
transitions:
- from: interviewing
label: Hired
to: hired
- from: interviewing
label: Declined
to: declined
- from: open
label: Start interview
to: interviewing
- from: open
label: Declined
to: declined
name: Job applicants
- action: /project_managers
consequence:
- Continue
description: A housing board or private owner with a building problem, or an owner who wants something built or changed. Track the case from first contact to final result.
features:
- description: ''
name: ''
resource:
requires_group: project_managers
source:
bucket: enquiries
kind: kv
transitions:
- from: open
label: Start survey
to: surveyed
- from: open
label: Mark lost
to: lost
- from: quoted
label: Won
to: won
- from: quoted
label: Mark lost
to: lost
- from: surveyed
label: Make quote
to: quoted
- from: surveyed
label: Mark lost
to: lost
name: Building enquiries
- action: /project_managers
consequence:
- Continue
description: A trade firm doing electrical, plumbing or scaffolding work can be approved once and then called when a job needs them.
features:
- description: ''
name: ''
resource:
requires_group: project_managers
source:
bucket: subcontractors
kind: kv
transitions:
- from: awaiting_papers
label: Approve
to: approved
- from: awaiting_papers
label: Decline
to: declined
- from: open
label: Await papers
to: awaiting_papers
- from: open
label: Approve
to: approved
- from: open
label: Decline
to: declined
name: Subcontractors
- action: /project_managers/log-phone-enquiry
consequence:
- Log call
description: Write down a phone call or text about a building issue before it gets lost.
name: Log phone enquiry
description: Use the buckets below to move cases through their stages. Each bucket is a list of jobs waiting for action.
name: What needs doing today?
responsible:
contact: ingrid@nordvikbygg.example
name: Ingrid Nordvik
@@ -0,0 +1,10 @@
alternatives:
- description: Ingrid and the team will review the details and get back to you within one business day.
name: What happens next
- action: /project_managers
consequence:
- Back to form
description: ''
name: Back to form
description: Your phone call or text has been recorded. It will not be forgotten.
name: Did the message go through?
@@ -0,0 +1,28 @@
alternatives:
- action: /project_managers/log-phone-enquiry-sent
consequence:
- Log phone call
description: Write down the enquiry before it gets lost.
features:
- name: Log phone enquiry
requirements:
- label: Your name
name: caller
type: text
- label: Phone number
name: phone
type: tel
- label: Address
name: address
type: text
- label: What happened?
name: problem
type: textarea
name: Log a phone enquiry
record_as: enquiries
description: Quickly record a building enquiry from a phone call or text.
followup: false
name: What happened on the phone?
responsible:
contact: ingrid@nordvikbygg.example
name: Ingrid Nordvik
@@ -0,0 +1,10 @@
alternatives:
- description: We will contact you within two business days to discuss your project and send a quote.
name: 'Next steps: quote and timeline'
- action: /
consequence:
- Back to form
description: ''
name: Back to form
description: Your build enquiry has been received. A project manager will review it.
name: What happens next?
@@ -0,0 +1,10 @@
alternatives:
- description: Project managers will review your profile and contact you if they want to interview.
name: Next steps
- action: /
consequence:
- Back to form
description: ''
name: Back to form
description: Your job application has been received.
name: What are you looking for?
@@ -0,0 +1,10 @@
alternatives:
- description: Once approved, you will be added to our approved subcontractor list and contacted when relevant projects arise.
name: Approved and added to list
- action: /
consequence:
- Back to form
description: ''
name: Back to form
description: Subcontractor applications are reviewed by our project managers to verify credentials and suitability before approval.
name: What is your trade?
@@ -0,0 +1,10 @@
alternatives:
- description: A project manager will review the details and contact you to schedule a site visit.
name: 'Next: Site survey'
- action: /
consequence:
- Back to form
description: ''
name: Back to form
description: You sent a survey enquiry. This page tells you who will handle it and what happens next.
name: Who will handle your enquiry?
@@ -0,0 +1 @@
qualifies: safety_officer
@@ -0,0 +1,26 @@
alternatives:
- action: /safety_officer
consequence:
- Submit
description: Report hazards, near misses, or wrong materials before you forget them.
features:
- description: ''
name: ''
resource:
requires_group: safety_officer
source:
bucket: site_issues
kind: kv
transitions:
- from: in_hand
label: Mark as closed
to: closed
- from: open
label: Report issue
to: in_hand
name: Report a site issue
description: Log a safety concern or material issue from the site.
name: What issue do you need to report?
responsible:
contact: ingrid@nordvikbygg.example
name: Ingrid Nordvik
@@ -0,0 +1,77 @@
{
"build-enquiry": {
"control_ok": true,
"control_which": 0,
"lix": 27.477272727272727,
"options": 4,
"overloaded": false,
"personas": 2,
"required_fields": 5,
"steps": 1,
"understanding": {
"asked": 2,
"next": 0,
"which": 2
}
},
"job-application": {
"control_ok": true,
"control_which": 0,
"lix": 23.909090909090907,
"options": 4,
"overloaded": false,
"personas": 2,
"required_fields": 3,
"steps": 1,
"understanding": {
"asked": 2,
"next": 0,
"which": 2
}
},
"report-site-issue": {
"control_ok": true,
"control_which": 0,
"lix": 15.618181818181819,
"options": 1,
"overloaded": false,
"personas": 2,
"required_fields": 3,
"steps": 1,
"understanding": {
"asked": 2,
"next": 0,
"which": 1
}
},
"subcontractor-application": {
"control_ok": true,
"control_which": 0,
"lix": 29.01581027667984,
"options": 4,
"overloaded": false,
"personas": 2,
"required_fields": 5,
"steps": 1,
"understanding": {
"asked": 2,
"next": 0,
"which": 2
}
},
"survey-enquiry": {
"control_ok": true,
"control_which": 0,
"lix": 27.92885375494071,
"options": 4,
"overloaded": false,
"personas": 2,
"required_fields": 4,
"steps": 1,
"understanding": {
"asked": 2,
"next": 0,
"which": 2
}
}
}
@@ -0,0 +1,45 @@
# The same site, re-scored with the per-task answerer
The site is the one in the directory above, built 2026-09-21 and
untouched. Visitor: qwen3:8b on ergo's Ollama, one call per task,
options shuffled per task, seeded from the task id. question_lint
from portal at d7f60ea.
| Visitor could read | 2026-09-21, all tasks in one prompt | 2026-09-22, one task per call |
|---|---|---|
| Headings and descriptions | 8 of 8 | 8 of 8 |
| Headings only | 8 of 8 | 7 of 8 |
The one misroute: the apprentice ("I finish vocational school this
spring and need an apprenticeship as a bricklayer") reads the four
headings alone and picks "Get a professional building survey" at
0.85, over "Join our carpentry team". Read as a bricklayer would, the
heading names a trade that is not theirs, and nothing on the page
says the team hires bricklayers or apprentices. That is a heading
defect the batched answerer did not find, because with all eight
personas in one prompt the model had two obvious jobseekers and one
obvious jobs heading.
`rate`, on the same site, with the followup page shown and every
question controlled against the gutted twin:
| need | LIX | which | asked | next | twin says |
|---|---|---|---|---|---|
| survey-enquiry | 25 | 2/2 | 2/2 | 2/2 | 0/0/0 |
| build-enquiry | 26 | 2/2 | 2/2 | 2/2 | 0/0/0 |
| subcontractor-application | 35 | 2/2 | 2/2 | 2/2 | 0/0/0 |
| job-application | 27 | 1/2 | 2/2 | 2/2 | 0/0/0 |
| report-site-issue | 18 | 2/2 | 2/2 | 2/2 | 0/0/0 |
- "next" was 0 of 2 everywhere on 2026-09-21 because the front door
was rated without its followup page. With the followup read from
the repo it is 2 of 2, and 0 on the twin: the followup pages do say
what happens.
- "asked" was 2 of 2 on the twin as well, at first, when the twin
listed "Field 1, Field 2, Field 3": the count alone got a yes. The
twin now has no form line, and the control passes.
- LIX rose from 16-29 to 18-35 once headings and labels were left out
of the count; the subcontractor page is the one that reads "easy"
rather than "very easy".
- The 1 of 2 on job-application is the apprentice, the same persona
the answerer misroutes on headings alone.
@@ -0,0 +1,8 @@
{"choice":"Get a professional building survey","confidence":0.95,"id":"housing-board-damp@/"}
{"choice":"Get a professional building survey","confidence":0.95,"id":"buyer-before-purchase@/"}
{"choice":"Plan your building project with us","confidence":0.95,"id":"attic-conversion@/"}
{"choice":"Plan your building project with us","confidence":0.95,"id":"shop-to-flat@/"}
{"choice":"Become a trusted subcontractor","confidence":0.95,"id":"electrician-firm@/"}
{"choice":"Become a trusted subcontractor","confidence":0.95,"id":"scaffolder@/"}
{"choice":"Join our carpentry team","confidence":0.95,"id":"carpenter-jobseeker@/"}
{"choice":"Join our carpentry team","confidence":0.95,"id":"apprentice@/"}
@@ -0,0 +1,8 @@
{"choice":"Get a professional building survey","confidence":0.95,"id":"housing-board-damp@/"}
{"choice":"Get a professional building survey","confidence":0.95,"id":"buyer-before-purchase@/"}
{"choice":"Plan your building project with us","confidence":0.95,"id":"attic-conversion@/"}
{"choice":"Plan your building project with us","confidence":0.95,"id":"shop-to-flat@/"}
{"choice":"Become a trusted subcontractor","confidence":0.95,"id":"electrician-firm@/"}
{"choice":"Become a trusted subcontractor","confidence":0.95,"id":"scaffolder@/"}
{"choice":"Join our carpentry team","confidence":0.95,"id":"carpenter-jobseeker@/"}
{"choice":"Get a professional building survey","confidence":0.85,"id":"apprentice@/"}
@@ -0,0 +1,102 @@
{
"build-enquiry": {
"control": {
"asked": 0,
"next": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 26.25,
"options": 4,
"overloaded": false,
"personas": 2,
"required_fields": 5,
"steps": 1,
"understanding": {
"asked": 2,
"next": 2,
"which": 2
}
},
"job-application": {
"control": {
"asked": 0,
"next": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 26.952380952380956,
"options": 4,
"overloaded": false,
"personas": 2,
"required_fields": 3,
"steps": 1,
"understanding": {
"asked": 2,
"next": 2,
"which": 1
}
},
"report-site-issue": {
"control": {
"asked": 0,
"next": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 17.933333333333334,
"options": 1,
"overloaded": false,
"personas": 2,
"required_fields": 3,
"steps": 1,
"understanding": {
"asked": 2,
"next": 2,
"which": 2
}
},
"subcontractor-application": {
"control": {
"asked": 0,
"next": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 34.61904761904762,
"options": 4,
"overloaded": false,
"personas": 2,
"required_fields": 5,
"steps": 1,
"understanding": {
"asked": 2,
"next": 2,
"which": 2
}
},
"survey-enquiry": {
"control": {
"asked": 0,
"next": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 24.785714285714285,
"options": 4,
"overloaded": false,
"personas": 2,
"required_fields": 4,
"steps": 1,
"understanding": {
"asked": 2,
"next": 2,
"which": 2
}
}
}
+22
View File
@@ -0,0 +1,22 @@
content repo written to /tmp/claude-1000/-home-bl-repos-portal/b7802cea-728f-42d2-a751-680a973ba17d/scratchpad/det/nemotron2
OK: 12 question(s), 5 aggregate(s) valid
need "survey-enquiry": / [Get a professional building survey] -> "enquiries"
need "build-enquiry": / [Plan your building project with us] -> "enquiries"
need "log-phone-enquiry": /project_managers/log-phone-enquiry [Log a phone enquiry] -> "enquiries"
need "subcontractor-application": / [Become a trusted subcontractor] -> "subcontractors"
need "job-application": / [Join our carpentry team] -> "applicants"
need "report-site-issue": /crew/report-site-issue [Report a safety issue on site] -> "site_issues"
OK: 6 need(s) structurally met, 0 planned, 10 persona(s)
BUILD_EXIT=0 in 130s
=== held-out personas, qwen3:8b, full ===
wording: 8/8 routed right (100%)
=== held-out personas, qwen3:8b, skim ===
wording: 8/8 routed right (100%)
=== rate ===
need LIX which asked next gutted twin says page load
survey-enquiry 28 very easy 2/2 2/2 0/2 0/2 ok 4 options, 4 required
build-enquiry 27 very easy 2/2 2/2 0/2 0/2 ok 4 options, 5 required
subcontractor-application 29 very easy 2/2 2/2 0/2 0/2 ok 4 options, 5 required
job-application 24 very easy 2/2 2/2 0/2 0/2 ok 4 options, 3 required
report-site-issue 16 very easy 1/2 2/2 0/2 0/2 ok 1 options, 3 required
ALL_DONE
@@ -0,0 +1,2 @@
lang: en
title: Nordvik Bygg
@@ -0,0 +1,44 @@
# The whole operation: 13 needs, 6 roles, 10 aggregates, overlapping
Plan: `plans/contractor-full.yaml`. Built with no model, walked dry
(every route of every aggregate), and replayed through portal's real
aggregate engine on a throwaway NATS.
| | |
|---|---|
| Verifier | 13 of 13 needs met, 28 pages, by construction |
| Routes walked | 40, of which 6 are relays between roles |
| Real engine | 40 aggregates created, 78 transitions accepted, 0 refused, 118 events |
Who holds buttons on what, as built:
- `enquiries`: project managers (6), site managers (mark surveyed; otherwise watch)
- `claims`: site managers inspect and fix, project managers accept or reject
- `change_orders`: project managers price, **the client approves or
declines through their own link**, site managers complete
- `material_orders`: site managers order, the crew confirms delivery
- `site_issues`: site managers or the safety officer take in hand, only
the safety officer closes; project managers watch
- `job_requests`: project managers award; **subcontractors watch**,
which is how they see what there is to bid on
What this plan exposed, none of it fixed yet:
1. **The project managers' desk is one page with 9 aggregates and 32
buttons.** The builder puts every aggregate a role touches on one
desk page. Past a handful it has to tier: a hub that lists the
aggregates with what is waiting in each, and a page per aggregate.
2. **The front door offers 6 alternatives**, one over the page-load
limit. It wants a first question ("a building of yours", "work with
us", "a site of ours next door") and a second page under each.
3. **Aggregates do not know about each other.** A bid names its job in
a free-text field; a change request names its job by address.
Nothing says "a bid belongs to a job request" or "a change order
exists only while an enquiry is won". That is the tiering between
state machines still to be designed: a need that arises when a
record elsewhere reaches a state, and carries its id.
4. **A shared button is walked by one role only.** Where two roles both
hold `open -> surveyed`, the dry run presses it as the first of them.
5. **Anyone in `clients` opens the change-request form**, and portal
has no per-record ownership beyond the submitter's link, so a
client group sees nothing of its own cases afterwards.
@@ -0,0 +1,40 @@
{"persona":"route","need":"survey-enquiry","run":0,"target":"won","record":{"note":"dry run"},"states":["open","surveyed","quoted","won"],"pressed":["open -> Surveyed","surveyed -> Quoted","quoted -> Won"],"moved_by":["project_managers","project_managers","project_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"route","need":"survey-enquiry","run":1,"target":"lost","record":{"note":"dry run"},"states":["open","surveyed","quoted","lost"],"pressed":["open -> Surveyed","surveyed -> Quoted","quoted -> Lost"],"moved_by":["project_managers","project_managers","project_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"route","need":"survey-enquiry","run":2,"target":"lost","record":{"note":"dry run"},"states":["open","surveyed","lost"],"pressed":["open -> Surveyed","surveyed -> Lost"],"moved_by":["project_managers","project_managers"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"route","need":"survey-enquiry","run":3,"target":"lost","record":{"note":"dry run"},"states":["open","lost"],"pressed":["open -> Lost"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"route","need":"build-enquiry","run":0,"target":"won","record":{"note":"dry run"},"states":["open","surveyed","quoted","won"],"pressed":["open -> Surveyed","surveyed -> Quoted","quoted -> Won"],"moved_by":["project_managers","project_managers","project_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"route","need":"build-enquiry","run":1,"target":"lost","record":{"note":"dry run"},"states":["open","surveyed","quoted","lost"],"pressed":["open -> Surveyed","surveyed -> Quoted","quoted -> Lost"],"moved_by":["project_managers","project_managers","project_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"route","need":"build-enquiry","run":2,"target":"lost","record":{"note":"dry run"},"states":["open","surveyed","lost"],"pressed":["open -> Surveyed","surveyed -> Lost"],"moved_by":["project_managers","project_managers"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"route","need":"build-enquiry","run":3,"target":"lost","record":{"note":"dry run"},"states":["open","lost"],"pressed":["open -> Lost"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"route","need":"warranty-claim","run":0,"target":"rejected","record":{"note":"dry run"},"states":["open","rejected"],"pressed":["open -> Rejected"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"rejected"}}
{"persona":"route","need":"warranty-claim","run":1,"target":"rejected","record":{"note":"dry run"},"states":["open","inspected","accepted","rejected"],"pressed":["open -> Inspected","inspected -> Accepted","accepted -> Rejected"],"moved_by":["site_managers","project_managers","project_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"rejected"}}
{"persona":"route","need":"warranty-claim","run":2,"target":"fixed","record":{"note":"dry run"},"states":["open","inspected","accepted","fixed"],"pressed":["open -> Inspected","inspected -> Accepted","accepted -> Fixed"],"moved_by":["site_managers","project_managers","site_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"fixed"}}
{"persona":"route","need":"warranty-claim","run":3,"target":"rejected","record":{"note":"dry run"},"states":["open","inspected","rejected"],"pressed":["open -> Inspected","inspected -> Rejected"],"moved_by":["site_managers","project_managers"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"rejected"}}
{"persona":"route","need":"neighbour-complaint","run":0,"target":"answered","record":{"note":"dry run"},"states":["open","answered"],"pressed":["open -> Answered"],"moved_by":["site_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"answered"}}
{"persona":"route","need":"subcontractor-application","run":0,"target":"approved","record":{"note":"dry run"},"states":["open","awaiting_papers","approved"],"pressed":["open -> Awaiting papers","awaiting_papers -> Approved"],"moved_by":["project_managers","project_managers"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"approved"}}
{"persona":"route","need":"subcontractor-application","run":1,"target":"declined","record":{"note":"dry run"},"states":["open","awaiting_papers","declined"],"pressed":["open -> Awaiting papers","awaiting_papers -> Declined"],"moved_by":["project_managers","project_managers"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"route","need":"subcontractor-application","run":2,"target":"approved","record":{"note":"dry run"},"states":["open","approved"],"pressed":["open -> Approved"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"approved"}}
{"persona":"route","need":"subcontractor-application","run":3,"target":"declined","record":{"note":"dry run"},"states":["open","declined"],"pressed":["open -> Declined"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"route","need":"job-application","run":0,"target":"hired","record":{"note":"dry run"},"states":["open","interviewing","offered","hired"],"pressed":["open -> Interviewing","interviewing -> Offered","offered -> Hired"],"moved_by":["project_managers","project_managers","project_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"hired"}}
{"persona":"route","need":"job-application","run":1,"target":"declined","record":{"note":"dry run"},"states":["open","interviewing","offered","declined"],"pressed":["open -> Interviewing","interviewing -> Offered","offered -> Declined"],"moved_by":["project_managers","project_managers","project_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"route","need":"job-application","run":2,"target":"declined","record":{"note":"dry run"},"states":["open","interviewing","declined"],"pressed":["open -> Interviewing","interviewing -> Declined"],"moved_by":["project_managers","project_managers"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"route","need":"job-application","run":3,"target":"declined","record":{"note":"dry run"},"states":["open","declined"],"pressed":["open -> Declined"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"route","need":"change-request","run":0,"target":"declined","record":{"note":"dry run"},"states":["open","priced","declined"],"pressed":["open -> Priced","priced -> Declined"],"moved_by":["project_managers","project_managers"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"route","need":"change-request","run":1,"target":"declined","record":{"note":"dry run"},"states":["open","priced","approved","declined"],"pressed":["open -> Priced","priced -> their own link","approved -> Declined"],"moved_by":["project_managers","submitter","project_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"route","need":"change-request","run":2,"target":"completed","record":{"note":"dry run"},"states":["open","priced","approved","completed"],"pressed":["open -> Priced","priced -> their own link","approved -> Completed"],"moved_by":["project_managers","submitter","site_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"completed"}}
{"persona":"route","need":"change-request","run":3,"target":"declined","record":{"note":"dry run"},"states":["open","declined"],"pressed":["open -> Declined"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"route","need":"log-phone-enquiry","run":0,"target":"won","record":{"note":"dry run"},"states":["open","surveyed","quoted","won"],"pressed":["open -> Surveyed","surveyed -> Quoted","quoted -> Won"],"moved_by":["project_managers","project_managers","project_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"won"}}
{"persona":"route","need":"log-phone-enquiry","run":1,"target":"lost","record":{"note":"dry run"},"states":["open","surveyed","quoted","lost"],"pressed":["open -> Surveyed","surveyed -> Quoted","quoted -> Lost"],"moved_by":["project_managers","project_managers","project_managers"],"touches":3,"ask_backs":[],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"route","need":"log-phone-enquiry","run":2,"target":"lost","record":{"note":"dry run"},"states":["open","surveyed","lost"],"pressed":["open -> Surveyed","surveyed -> Lost"],"moved_by":["project_managers","project_managers"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"route","need":"log-phone-enquiry","run":3,"target":"lost","record":{"note":"dry run"},"states":["open","lost"],"pressed":["open -> Lost"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"lost"}}
{"persona":"route","need":"post-job-request","run":0,"target":"awarded","record":{"note":"dry run"},"states":["open","awarded"],"pressed":["open -> Awarded"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"awarded"}}
{"persona":"route","need":"post-job-request","run":1,"target":"withdrawn","record":{"note":"dry run"},"states":["open","withdrawn"],"pressed":["open -> Withdrawn"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"withdrawn"}}
{"persona":"route","need":"submit-bid","run":0,"target":"accepted","record":{"note":"dry run"},"states":["open","shortlisted","accepted"],"pressed":["open -> Shortlisted","shortlisted -> Accepted"],"moved_by":["project_managers","project_managers"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"accepted"}}
{"persona":"route","need":"submit-bid","run":1,"target":"declined","record":{"note":"dry run"},"states":["open","shortlisted","declined"],"pressed":["open -> Shortlisted","shortlisted -> Declined"],"moved_by":["project_managers","project_managers"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"route","need":"submit-bid","run":2,"target":"accepted","record":{"note":"dry run"},"states":["open","accepted"],"pressed":["open -> Accepted"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"accepted"}}
{"persona":"route","need":"submit-bid","run":3,"target":"declined","record":{"note":"dry run"},"states":["open","declined"],"pressed":["open -> Declined"],"moved_by":["project_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"declined"}}
{"persona":"route","need":"report-site-issue","run":0,"target":"closed","record":{"note":"dry run"},"states":["open","in_hand","closed"],"pressed":["open -> In hand","in_hand -> Closed"],"moved_by":["safety_officer","safety_officer"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"closed"}}
{"persona":"route","need":"order-materials","run":0,"target":"delivered","record":{"note":"dry run"},"states":["open","ordered","delivered"],"pressed":["open -> Ordered","ordered -> Delivered"],"moved_by":["site_managers","crew"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"delivered"}}
{"persona":"route","need":"order-materials","run":1,"target":"refused","record":{"note":"dry run"},"states":["open","ordered","refused"],"pressed":["open -> Ordered","ordered -> Refused"],"moved_by":["site_managers","site_managers"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"refused"}}
{"persona":"route","need":"order-materials","run":2,"target":"refused","record":{"note":"dry run"},"states":["open","refused"],"pressed":["open -> Refused"],"moved_by":["site_managers"],"touches":1,"ask_backs":[],"outcome":{"outcome":"finished","detail":"refused"}}
{"persona":"route","need":"safety-round-finding","run":0,"target":"closed","record":{"note":"dry run"},"states":["open","in_hand","closed"],"pressed":["open -> In hand","in_hand -> Closed"],"moved_by":["safety_officer","safety_officer"],"touches":2,"ask_backs":[],"outcome":{"outcome":"finished","detail":"closed"}}
@@ -0,0 +1,43 @@
# The whole contractor, tiered behind three doors, worded and scored
`plans/contractor-full.yaml` as restructured on 2026-09-22: the six
public needs behind `your-building` (survey, build, warranty claim)
and `work-with-us` (subcontractor, job), with the neighbour's
complaint straight on the front door. Thirteen needs, six roles,
thirty pages. Built with nemotron-3.5-lightning:30b-a3b writing the
words, all pages worded, verifier green by construction (the earlier
dry build of the same plan, before doors, is in
`../contractor-full-2026-09-21/`). Visitor: qwen3:8b, one task per
call. Twenty held-out personas, twenty-two tasks.
| Visitor could read | Routed right |
|---|---|
| Headings and descriptions | 18 of 22 |
| Headings only | 15 of 22 |
- **One page, two headings that mean the same thing.** Behind
`work-with-us` nemotron wrote "Apply to work with us" for the
subcontractor form and "Find a job with us" for the job form. All
four personas crossed over on headings alone: both firms chose
"Find a job", both jobseekers chose "Apply to work with us". Two of
the four still crossed with descriptions. This is the clearest case
of the copy rule in the whole set: two alternatives separable only by
a distinction the business makes (a firm on a contract, a person on
the payroll) and the visitor does not. The heading has to say
"firm" and "carpenter", not "apply" and "job".
- **"Your building project" does not cover a problem.** On headings
alone, the housing board with damp and the customer with a leaking
bathroom both chose "Neighbour complaint" over "Your building
project": neither has a project, both have a complaint about a
building. The door's description rescues them; the heading fails.
- **The electrical firm chose the building door** both times, from
"Your building project" reading as the general door.
- **A warranty claim and a building problem** are one thing to the
customer with cracked render, and the page offers both.
The two doors did their job: nobody was lost on the front door for
lack of a door. What went wrong is the wording on the pages behind
them, and the plan's own split of warranty from survey, which the
customer does not make.
`rate.txt` is the page-by-page rate; see `rate.json`.
@@ -0,0 +1,186 @@
aggregates:
- bucket: applicants
initial: open
states:
declined:
event: declined
hired:
event: hired
interviewing:
event: interviewing
offered:
event: offered
open:
event: received
transitions:
interviewing:
- offered
- declined
offered:
- hired
- declined
open:
- interviewing
- declined
- bucket: bids
initial: open
states:
accepted:
event: accepted
declined:
event: declined
open:
event: received
shortlisted:
event: shortlisted
transitions:
open:
- shortlisted
- accepted
- declined
shortlisted:
- accepted
- declined
- bucket: change_orders
initial: open
states:
approved:
event: approved
completed:
event: completed
declined:
event: declined
open:
event: received
priced:
event: priced
transitions:
approved:
- completed
- declined
open:
- priced
- declined
priced:
- approved
- declined
- bucket: claims
initial: open
states:
accepted:
event: accepted
fixed:
event: fixed
inspected:
event: inspected
open:
event: received
rejected:
event: rejected
transitions:
accepted:
- fixed
- rejected
inspected:
- accepted
- rejected
open:
- inspected
- rejected
- bucket: complaints
initial: open
states:
answered:
event: answered
open:
event: received
transitions:
open:
- answered
- bucket: enquiries
initial: open
states:
lost:
event: lost
open:
event: received
quoted:
event: quoted
surveyed:
event: surveyed
won:
event: won
transitions:
open:
- surveyed
- lost
quoted:
- won
- lost
surveyed:
- quoted
- lost
- bucket: job_requests
initial: open
states:
awarded:
event: awarded
open:
event: received
withdrawn:
event: withdrawn
transitions:
open:
- awarded
- withdrawn
- bucket: material_orders
initial: open
states:
delivered:
event: delivered
open:
event: received
ordered:
event: ordered
refused:
event: refused
transitions:
open:
- ordered
- refused
ordered:
- delivered
- refused
- bucket: site_issues
initial: open
states:
closed:
event: closed
in_hand:
event: in_hand
open:
event: received
transitions:
in_hand:
- closed
open:
- in_hand
- bucket: subcontractors
initial: open
states:
approved:
event: approved
awaiting_papers:
event: awaiting_papers
declined:
event: declined
open:
event: received
transitions:
awaiting_papers:
- approved
- declined
open:
- awaiting_papers
- approved
- declined
@@ -0,0 +1,22 @@
{"choice":"Your building project","confidence":0.95,"id":"housing-board-damp@/"}
{"choice":"Report a building problem","confidence":0.95,"id":"housing-board-damp@/your-building"}
{"choice":"Your building project","confidence":0.95,"id":"buyer-before-purchase@/"}
{"choice":"Report a building problem","confidence":0.95,"id":"buyer-before-purchase@/your-building"}
{"choice":"Your building project","confidence":0.95,"id":"attic-conversion@/"}
{"choice":"Tell us about your building project","confidence":0.95,"id":"attic-conversion@/your-building"}
{"choice":"Your building project","confidence":0.95,"id":"shop-to-flat@/"}
{"choice":"Tell us about your building project","confidence":0.95,"id":"shop-to-flat@/your-building"}
{"choice":"Your building project","confidence":0.95,"id":"leaking-bathroom@/"}
{"choice":"Report a fault in our work","confidence":0.95,"id":"leaking-bathroom@/your-building"}
{"choice":"Your building project","confidence":0.95,"id":"cracked-render@/"}
{"choice":"Report a building problem","confidence":0.95,"id":"cracked-render@/your-building"}
{"choice":"Neighbour complaint","confidence":0.95,"id":"noisy-mornings@/"}
{"choice":"Neighbour complaint","confidence":0.95,"id":"blocked-driveway@/"}
{"choice":"Your building project","confidence":0.95,"id":"electrician-firm@/"}
{"choice":"Find a job with us","confidence":0.95,"id":"electrician-firm@/work-with-us"}
{"choice":"Work with Nordvik Bygg","confidence":0.95,"id":"scaffolder@/"}
{"choice":"Find a job with us","confidence":0.95,"id":"scaffolder@/work-with-us"}
{"choice":"Work with Nordvik Bygg","confidence":0.95,"id":"carpenter-jobseeker@/"}
{"choice":"Find a job with us","confidence":0.95,"id":"carpenter-jobseeker@/work-with-us"}
{"choice":"Work with Nordvik Bygg","confidence":0.95,"id":"apprentice@/"}
{"choice":"Find a job with us","confidence":0.95,"id":"apprentice@/work-with-us"}
@@ -0,0 +1,22 @@
{"choice":"Neighbour complaint","confidence":0.95,"id":"housing-board-damp@/"}
{"choice":"Report a building problem","confidence":0.95,"id":"housing-board-damp@/your-building"}
{"choice":"Your building project","confidence":0.95,"id":"buyer-before-purchase@/"}
{"choice":"Report a building problem","confidence":0.95,"id":"buyer-before-purchase@/your-building"}
{"choice":"Your building project","confidence":0.95,"id":"attic-conversion@/"}
{"choice":"Tell us about your building project","confidence":0.95,"id":"attic-conversion@/your-building"}
{"choice":"Your building project","confidence":0.95,"id":"shop-to-flat@/"}
{"choice":"Tell us about your building project","confidence":0.95,"id":"shop-to-flat@/your-building"}
{"choice":"Neighbour complaint","confidence":0.95,"id":"leaking-bathroom@/"}
{"choice":"Report a fault in our work","confidence":0.95,"id":"leaking-bathroom@/your-building"}
{"choice":"Your building project","confidence":0.95,"id":"cracked-render@/"}
{"choice":"Report a fault in our work","confidence":0.95,"id":"cracked-render@/your-building"}
{"choice":"Neighbour complaint","confidence":0.95,"id":"noisy-mornings@/"}
{"choice":"Neighbour complaint","confidence":0.95,"id":"blocked-driveway@/"}
{"choice":"Your building project","confidence":0.95,"id":"electrician-firm@/"}
{"choice":"Find a job with us","confidence":0.95,"id":"electrician-firm@/work-with-us"}
{"choice":"Work with Nordvik Bygg","confidence":0.95,"id":"scaffolder@/"}
{"choice":"Find a job with us","confidence":0.95,"id":"scaffolder@/work-with-us"}
{"choice":"Work with Nordvik Bygg","confidence":0.95,"id":"carpenter-jobseeker@/"}
{"choice":"Apply to work with us","confidence":0.95,"id":"carpenter-jobseeker@/work-with-us"}
{"choice":"Work with Nordvik Bygg","confidence":0.95,"id":"apprentice@/"}
{"choice":"Apply to work with us","confidence":0.95,"id":"apprentice@/work-with-us"}
@@ -0,0 +1,46 @@
words: questions/clients/change-request-sent.yaml
words: questions/clients/change-request.yaml
words: questions/clients/index.yaml
words: questions/crew/index.yaml
words: questions/crew/order-materials-sent.yaml
words: questions/crew/order-materials.yaml
words: questions/crew/report-site-issue-sent.yaml
words: questions/crew/report-site-issue.yaml
words: questions/decide/change-request.yaml
words: questions/index.yaml
words: questions/project_managers/index.yaml
words: questions/project_managers/log-phone-enquiry-sent.yaml
words: questions/project_managers/log-phone-enquiry.yaml
words: questions/project_managers/post-job-request-sent.yaml
words: questions/project_managers/post-job-request.yaml
words: questions/received/build-enquiry.yaml
words: questions/received/job-application.yaml
words: questions/received/neighbour-complaint.yaml
words: questions/received/subcontractor-application.yaml
words: questions/received/survey-enquiry.yaml
words: questions/received/warranty-claim.yaml
words: questions/safety_officer/index.yaml
words: questions/safety_officer/safety-round-finding-sent.yaml
words: questions/safety_officer/safety-round-finding.yaml
words: questions/site_managers/index.yaml
words: questions/subcontractors/index.yaml
words: questions/subcontractors/submit-bid-sent.yaml
words: questions/subcontractors/submit-bid.yaml
words: questions/work-with-us/index.yaml
words: questions/your-building/index.yaml
content repo written to runs/contractor-full-2026-09-22
OK: 30 question(s), 11 aggregate(s) valid
need "survey-enquiry": / [Your building project] -> /your-building [Report a building problem] -> "enquiries"
need "build-enquiry": / [Your building project] -> /your-building [Report a building problem] -> "enquiries"
need "warranty-claim": / [Your building project] -> /your-building [Report a fault in our work] -> "claims"
need "neighbour-complaint": / [Neighbour complaint] -> "complaints"
need "subcontractor-application": / [Work with Nordvik Bygg] -> /work-with-us [Apply to work with us] -> "subcontractors"
need "job-application": / [Work with Nordvik Bygg] -> /work-with-us [Find a job with us] -> "applicants"
need "change-request": /clients/change-request [Request a change to your building work] -> "change_orders"
need "log-phone-enquiry": /project_managers/log-phone-enquiry [Log a phone enquiry] -> "enquiries"
need "post-job-request": /project_managers/post-job-request [Give subcontractors a job to price] -> "job_requests"
need "submit-bid": /subcontractors/submit-bid [Submit a bid on a job] -> "bids"
need "report-site-issue": /crew/report-site-issue [Report a safety finding on site] -> "site_issues"
need "order-materials": /crew/order-materials [Order materials for the site] -> "material_orders"
need "safety-round-finding": /safety_officer/safety-round-finding [Report what you find on site] -> "site_issues"
OK: 13 need(s) structurally met, 0 planned, 20 persona(s)
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/clients/change-request-sent.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to form",
"description": "We have received your change request. A project manager will review it shortly.",
"next_description": "We will get back to you with a price and next steps within 2 business days.",
"next_heading": "What happens next?",
"question": "What happens after I submit?"
}
@@ -0,0 +1,68 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/clients/change-request.yaml
It is a page only one role inside the business can open, holding one form.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"change": "<WRITE: a form label for the field `change`>",
"email": "<WRITE: a form label for the field `email`>",
"job_address": "<WRITE: a form label for the field `job_address`>",
"needed_by": "<WRITE: a form label for the field `needed_by`>"
},
"page_description": "<WRITE: one or two short sentences>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"button": "Submit change",
"description": "Tell us what you want changed so we can price it and get it done.",
"form_title": "Change request",
"heading": "Request a change to your building work",
"labels": {
"change": "What needs to change?",
"email": "Your email",
"job_address": "Building address",
"needed_by": "When do you need this?"
},
"page_description": "A client can ask for a change to an ongoing job. We price it and do it if you accept.",
"question": "What needs to change in your project?"
}
@@ -0,0 +1,205 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/clients/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"buckets": {},
"confirm": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"links": {
"change-request": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"buckets": {
"door your-building": [
{
"heading": "Survey enquiry",
"description": "A housing board or private owner with a problem in a building wants someone qualified to come and look at it and say what it takes.",
"moves": {
"open->surveyed": "Surveyed",
"surveyed->quoted": "Quoted",
"quoted->won": "Won",
"quoted->lost": "Lost"
}
},
{
"heading": "Build enquiry",
"description": "An owner who already knows what they want built or changed wants drawings, a permit application and a price.",
"moves": {
"open->surveyed": "Surveyed",
"surveyed->quoted": "Quoted",
"quoted->won": "Won",
"quoted->lost": "Lost"
}
},
{
"heading": "Warranty claim",
"description": "A past customer who has found a fault in work we handed over wants us to come back, look at it, and put it right.",
"moves": {
"open->inspected": "Inspected",
"inspected->accepted": "Accepted",
"accepted->fixed": "Fixed",
"accepted->rejected": "Rejected"
}
}
],
"door work-with-us": [
{
"heading": "Subcontractor application",
"description": "A trade firm doing electrical, plumbing or scaffolding work wants to be approved once, and then be called when a job needs them.",
"moves": {
"open->awaiting_papers": "Awaiting papers",
"awaiting_papers->approved": "Approved",
"approved->declined": "Declined"
}
},
{
"heading": "Job application",
"description": "A carpenter, bricklayer or apprentice looking for work wants to be considered, without writing a letter.",
"moves": {
"open->interviewing": "Interviewing",
"interviewing->offered": "Offered",
"offered->hired": "Hired",
"offered->declined": "Declined"
}
}
],
"log-phone-enquiry": [
{
"heading": "Phone enquiry",
"description": "A project manager who just took a call or a text about a building wants the enquiry written down before it gets lost.",
"moves": {
"open->surveyed": "Surveyed",
"surveyed->quoted": "Quoted",
"quoted->won": "Won",
"quoted->lost": "Lost"
}
}
],
"post-job-request": [
{
"heading": "Post job to subcontractor",
"description": "A project manager with work to hand to a subcontractor wants approved subcontractors to see the job and answer with a price.",
"moves": {
"open->awarded": "Awarded",
"awarded->withdrawn": "Withdrawn"
}
}
],
"submit-bid": [
{
"heading": "Submit bid",
"description": "An approved subcontractor who has seen a job they can take wants to say yes with a price and a start date.",
"moves": {
"open->shortlisted": "Shortlisted",
"shortlisted->accepted": "Accepted",
"shortlisted->declined": "Declined"
}
}
],
"change-request": [
{
"heading": "Change request",
"description": "A client whose job is under way and who wants something changed wants a price for the change, and the change done if they accept it.",
"moves": {
"open->priced": "Priced",
"priced->approved": "Approved",
"approved->completed": "Completed",
"approved->declined": "Declined"
}
}
],
"neighbour-complaint": [
{
"heading": "Neighbour complaint",
"description": "Someone living or working next to one of our building sites wants the noise, dust or blocked access dealt with, and an answer.",
"moves": {
"open->answered": "Answered"
}
}
],
"order-materials": [
{
"heading": "Order materials",
"description": "A carpenter or bricklayer who is about to run out of something wants it ordered and on site before work stops.",
"moves": {
"open->ordered": "Ordered",
"ordered->delivered": "Delivered",
"delivered->refused": "Refused"
}
}
],
"report-site-issue": [
{
"heading": "Report site issue",
"description": "Anyone on site, ours or a subcontractor's, on a phone with gloves on wants to report a hazard, a near miss or wrong materials before they forget.",
"moves": {
"open->in_hand": "In hand",
"in_hand->closed": "Closed"
}
}
],
"safety-round-finding": [
{
"heading": "Safety round finding",
"description": "The safety officer walking a site on the weekly round wants each thing found written down where the reported issues already are.",
"moves": {
"open->in_hand": "In hand",
"in_hand->closed": "Closed"
}
}
]
},
"confirm": "Continue",
"description": "Manage your cases and move them through their stages.",
"links": {
"change-request": {
"button": "Change request",
"description": "A client whose job is under way and who wants something changed wants a price for the change, and the change done if they accept it.",
"heading": "Change request"
}
},
"question": "What do you need to do today?"
}
@@ -0,0 +1,92 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/crew/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"buckets": {
"material_orders": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"ordered->delivered": "<WRITE: a button, two to four words, for a case going ordered->delivered>"
}
}
},
"confirm": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"links": {
"order-materials": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
},
"report-site-issue": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"buckets": {
"material_orders": {
"description": "Order materials for a job in progress. See what's on its way and what arrived.",
"heading": "Order materials for building",
"moves": {
"ordered->delivered": "Mark delivered"
}
}
},
"confirm": "Confirm",
"description": "Manage the flow of cases from enquiry to completion. See what stage each case is at and move it forward.",
"links": {
"order-materials": {
"button": "Order materials",
"description": "Order materials for the job you are working on. Track what has been delivered.",
"heading": "Order materials for building"
},
"report-site-issue": {
"button": "Report issue",
"description": "Log a hazard, near miss or wrong materials found on site. Keep the weekly safety round up to date.",
"heading": "Report a site issue"
}
},
"question": "What case do you need to move forward?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/crew/order-materials-sent.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to order-materials",
"description": "We have received your request. The site manager will process it shortly.",
"next_description": "You will receive a confirmation once the materials are on site.",
"next_heading": "Materials ordered",
"question": "Will the materials arrive on time?"
}
@@ -0,0 +1,66 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/crew/order-materials.yaml
It is a page only one role inside the business can open, holding one form.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"needed_by": "<WRITE: a form label for the field `needed_by`>",
"site_address": "<WRITE: a form label for the field `site_address`>",
"what": "<WRITE: a form label for the field `what`>"
},
"page_description": "<WRITE: one or two short sentences>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"button": "Order now",
"description": "Tell us what you need and where the site is so we can get it on its way.",
"form_title": "Order materials",
"heading": "Order materials for the site",
"labels": {
"needed_by": "Needed by",
"site_address": "Site address",
"what": "What do you need?"
},
"page_description": "Order materials before the site runs out.",
"question": "What do you need on site?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/crew/report-site-issue-sent.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to form",
"description": "Your report has been sent to our safety officer. They will review the issue and get back to you.",
"next_description": "We will review the reported issue and update its status. You will be notified when it is resolved.",
"next_heading": "What happens next",
"question": "What happens after I submit?"
}
@@ -0,0 +1,66 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/crew/report-site-issue.yaml
It is a page only one role inside the business can open, holding one form.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"kind": "<WRITE: a form label for the field `kind`>",
"what_happened": "<WRITE: a form label for the field `what_happened`>",
"where": "<WRITE: a form label for the field `where`>"
},
"page_description": "<WRITE: one or two short sentences>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"button": "Report issue",
"description": "Write down a hazard, near miss, or wrong materials from the site so the safety officer can fix it.",
"form_title": "Report a site issue",
"heading": "Report a safety finding on site",
"labels": {
"kind": "What kind of issue",
"what_happened": "What happened",
"where": "Where on site"
},
"page_description": "Report a hazard, near miss, or wrong materials found during a site visit.",
"question": "What safety issue did you find?"
}
@@ -0,0 +1,72 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/decide/change-request.yaml
It is a page the person who sent a form reaches later, through a private link, to make a decision that is theirs: under `moves`, each entry is one thing they can decide.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"moves": {
"approved": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
},
"declined": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"description": "You have submitted a change request for your ongoing project. Use this page to make your decision.",
"moves": {
"approved": {
"button": "Accept change",
"description": "The change will be added to the project scope and price. Work will proceed according to the new agreement.",
"heading": "Approve the change request"
},
"declined": {
"button": "Reject change",
"description": "The change will not be added to the project. The original scope and price remain unchanged.",
"heading": "Decline the change request"
}
},
"question": "What is your decision on this change request?"
}
@@ -0,0 +1,98 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/index.yaml
It is the front door: the first page any visitor sees. `question` is the page's one question. Under `doors`, each entry is one alternative that leads to a page of its own for one kind of visitor: its heading must let that visitor recognise themselves from the heading alone. Under `needs`, each entry is one alternative with a form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"doors": {
"work-with-us": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
},
"your-building": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"needs": {
"neighbour-complaint": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"reach_me_on": "<WRITE: a form label for the field `reach_me_on`>",
"site_address": "<WRITE: a form label for the field `site_address`>",
"what_is_wrong": "<WRITE: a form label for the field `what_is_wrong`>"
}
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"description": "Find the right path for your building or your career with Nordvik Bygg.",
"doors": {
"work-with-us": {
"button": "Join us",
"description": "Apply to work with us as a subcontractor or find a job as a carpenter or apprentice.",
"heading": "Work with Nordvik Bygg"
},
"your-building": {
"button": "Start here",
"description": "Report a problem, get a survey, or start a new build project.",
"heading": "Your building project"
}
},
"needs": {
"neighbour-complaint": {
"button": "Report issue",
"description": "Let us know about noise, dust, or access problems from a building site near you.",
"form_title": "Contact details",
"heading": "Neighbour complaint",
"labels": {
"reach_me_on": "Contact method",
"site_address": "Building address",
"what_is_wrong": "Describe the issue"
}
}
},
"question": "What brings you to Nordvik Bygg today?"
}
@@ -0,0 +1,246 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/project_managers/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"buckets": {
"applicants": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"interviewing->declined": "<WRITE: a button, two to four words, for a case going interviewing->declined>",
"interviewing->offered": "<WRITE: a button, two to four words, for a case going interviewing->offered>",
"offered->declined": "<WRITE: a button, two to four words, for a case going offered->declined>",
"offered->hired": "<WRITE: a button, two to four words, for a case going offered->hired>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>",
"open->interviewing": "<WRITE: a button, two to four words, for a case going open->interviewing>"
}
},
"bids": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->accepted": "<WRITE: a button, two to four words, for a case going open->accepted>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>",
"open->shortlisted": "<WRITE: a button, two to four words, for a case going open->shortlisted>",
"shortlisted->accepted": "<WRITE: a button, two to four words, for a case going shortlisted->accepted>",
"shortlisted->declined": "<WRITE: a button, two to four words, for a case going shortlisted->declined>"
}
},
"change_orders": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"approved->declined": "<WRITE: a button, two to four words, for a case going approved->declined>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>",
"open->priced": "<WRITE: a button, two to four words, for a case going open->priced>",
"priced->declined": "<WRITE: a button, two to four words, for a case going priced->declined>"
}
},
"claims": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"accepted->rejected": "<WRITE: a button, two to four words, for a case going accepted->rejected>",
"inspected->accepted": "<WRITE: a button, two to four words, for a case going inspected->accepted>",
"inspected->rejected": "<WRITE: a button, two to four words, for a case going inspected->rejected>",
"open->rejected": "<WRITE: a button, two to four words, for a case going open->rejected>"
}
},
"complaints": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {}
},
"enquiries": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->lost": "<WRITE: a button, two to four words, for a case going open->lost>",
"open->surveyed": "<WRITE: a button, two to four words, for a case going open->surveyed>",
"quoted->lost": "<WRITE: a button, two to four words, for a case going quoted->lost>",
"quoted->won": "<WRITE: a button, two to four words, for a case going quoted->won>",
"surveyed->lost": "<WRITE: a button, two to four words, for a case going surveyed->lost>",
"surveyed->quoted": "<WRITE: a button, two to four words, for a case going surveyed->quoted>"
}
},
"job_requests": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->awarded": "<WRITE: a button, two to four words, for a case going open->awarded>",
"open->withdrawn": "<WRITE: a button, two to four words, for a case going open->withdrawn>"
}
},
"site_issues": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {}
},
"subcontractors": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"awaiting_papers->approved": "<WRITE: a button, two to four words, for a case going awaiting_papers->approved>",
"awaiting_papers->declined": "<WRITE: a button, two to four words, for a case going awaiting_papers->declined>",
"open->approved": "<WRITE: a button, two to four words, for a case going open->approved>",
"open->awaiting_papers": "<WRITE: a button, two to four words, for a case going open->awaiting_papers>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>"
}
}
},
"confirm": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"links": {
"log-phone-enquiry": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
},
"post-job-request": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"buckets": {
"applicants": {
"description": "Track carpenter and apprentice applications from open to hired, with interview steps in between.",
"heading": "Applicant cases",
"moves": {
"interviewing->declined": "Mark declined",
"interviewing->offered": "Offer role",
"offered->declined": "Reject offer",
"offered->hired": "Confirm hire",
"open->declined": "Mark declined",
"open->interviewing": "Start interview"
}
},
"bids": {
"description": "Handle subcontractor bids from open submission to accepted or declined.",
"heading": "Bid management",
"moves": {
"open->accepted": "Accept bid",
"open->declined": "Reject bid",
"open->shortlisted": "Shortlist bid",
"shortlisted->accepted": "Accept shortlist",
"shortlisted->declined": "Reject shortlist"
}
},
"change_orders": {
"description": "Track client change requests from open inquiry through pricing and completion.",
"heading": "Change order cases",
"moves": {
"approved->declined": "Reject change",
"open->declined": "Reject request",
"open->priced": "Price the change",
"priced->declined": "Reject priced change"
}
},
"claims": {
"description": "Handle warranty claims from inspection through to acceptance or rejection of the fix.",
"heading": "Warranty claim cases",
"moves": {
"accepted->rejected": "Reject fix",
"inspected->accepted": "Accept fix",
"inspected->rejected": "Reject fix",
"open->rejected": "Reject claim"
}
},
"complaints": {
"description": "Record and resolve neighbour complaints about site noise, dust or access.",
"heading": "Neighbour complaints",
"moves": {}
},
"enquiries": {
"description": "Track building enquiries from initial contact through survey, quote and win/lose outcome.",
"heading": "Building enquiries",
"moves": {
"open->lost": "Mark lost",
"open->surveyed": "Book survey",
"quoted->lost": "Mark lost",
"quoted->won": "Win work",
"surveyed->lost": "Mark lost",
"surveyed->quoted": "Send quote"
}
},
"job_requests": {
"description": "Manage internal job assignments for subcontractors from open through to awarded or withdrawn.",
"heading": "Job requests",
"moves": {
"open->awarded": "Award job",
"open->withdrawn": "Withdraw job"
}
},
"site_issues": {
"description": "Log safety and quality issues reported from site, through to closure.",
"heading": "Site issue log",
"moves": {}
},
"subcontractors": {
"description": "Track trade firm applications from open through paper review to approved or declined status.",
"heading": "Subcontractor cases",
"moves": {
"awaiting_papers->approved": "Approve firm",
"awaiting_papers->declined": "Decline firm",
"open->approved": "Approve application",
"open->awaiting_papers": "Await papers",
"open->declined": "Decline application"
}
}
},
"confirm": "Confirm",
"description": "Manage and track all project enquiries, applications and site issues from one desk.",
"links": {
"log-phone-enquiry": {
"button": "Log call",
"description": "Record a new building enquiry or client call before details are lost.",
"heading": "Log phone enquiry"
},
"post-job-request": {
"button": "Post job",
"description": "Send an approved job to subcontractors for bidding.",
"heading": "Post job request"
}
},
"question": "What case do you want to work on?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/project_managers/log-phone-enquiry-sent.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to enquiry",
"description": "Your phone call has been recorded. We will review it and get back to you.",
"next_description": "We will call you to discuss the issue and decide on the next steps.",
"next_heading": "What happens next?",
"question": "Did we capture everything you needed?"
}
@@ -0,0 +1,68 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/project_managers/log-phone-enquiry.yaml
It is a page only one role inside the business can open, holding one form.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"address": "<WRITE: a form label for the field `address`>",
"caller": "<WRITE: a form label for the field `caller`>",
"phone": "<WRITE: a form label for the field `phone`>",
"problem": "<WRITE: a form label for the field `problem`>"
},
"page_description": "<WRITE: one or two short sentences>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"button": "Log call",
"description": "Write down the enquiry so it doesn't get lost. One call, one record.",
"form_title": "Phone enquiry log",
"heading": "Log a phone enquiry",
"labels": {
"address": "Address or site location",
"caller": "Your name",
"phone": "Phone number",
"problem": "What was said"
},
"page_description": "Record a building enquiry taken over the phone.",
"question": "What was said on the call?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/project_managers/post-job-request-sent.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to list",
"description": "Your post-job request has been sent to our project managers. They will review the details and reach out to approved subcontractors.",
"next_description": "Once a subcontractor accepts the job, the status will update and you’ll be able to track the progress.",
"next_heading": "Awaiting subcontractor response",
"question": "Who will take on this job?"
}
@@ -0,0 +1,68 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/project_managers/post-job-request.yaml
It is a page only one role inside the business can open, holding one form.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"site_address": "<WRITE: a form label for the field `site_address`>",
"start": "<WRITE: a form label for the field `start`>",
"trade": "<WRITE: a form label for the field `trade`>",
"work": "<WRITE: a form label for the field `work`>"
},
"page_description": "<WRITE: one or two short sentences>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"button": "Submit request",
"description": "Tell us about the job you have ready to hand to a subcontractor.",
"form_title": "Post a job for subcontractors",
"heading": "Give subcontractors a job to price",
"labels": {
"site_address": "Site address",
"start": "When work starts",
"trade": "Trade needed",
"work": "Work description"
},
"page_description": "Post a job so approved subcontractors can price it.",
"question": "What job do you have for a subcontractor?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/received/build-enquiry.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to form",
"description": "Your build-enquiry has been received. We will review the details and get back to you.",
"next_description": "A project manager will contact you to discuss the scope and arrange a site survey.",
"next_heading": "Next steps: survey and quote",
"question": "What happens after I submit?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/received/job-application.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to applications",
"description": "Your application has been received. We review carpenter and apprentice requests weekly.",
"next_description": "We will contact you if your profile matches an open position. No need to send a separate cover letter.",
"next_heading": "What happens next",
"question": "What happens after I apply?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/received/neighbour-complaint.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to site",
"description": "Your neighbour complaint has been received. We will look into it and get back to you.",
"next_description": "A site manager will review your report and find a solution.",
"next_heading": "What happens next?",
"question": "What issue are you reporting?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/received/subcontractor-application.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to form",
"description": "Your subcontractor application has been received. We will review it and contact you if we need more information.",
"next_description": "Project managers check approved subcontractors for new jobs. Once approved, you will receive job invitations with prices and start dates.",
"next_heading": "What happens next",
"question": "What happens after I submit?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/received/survey-enquiry.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to form",
"description": "Your survey request has been received. We will review the details and assign a project manager to assess the building.",
"next_description": "A project manager will contact you within 2 business days to schedule a site visit and provide a quotation.",
"next_heading": "Next steps: Survey and quote",
"question": "What happens after I submit?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/received/warranty-claim.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to enquiries",
"description": "Your warranty claim has been received. We will review the details and get back to you.",
"next_description": "A project manager will inspect the issue and decide on the next steps.",
"next_heading": "What happens next",
"question": "What seems to be the problem?"
}
@@ -0,0 +1,84 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/safety_officer/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"buckets": {
"site_issues": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"in_hand->closed": "<WRITE: a button, two to four words, for a case going in_hand->closed>",
"open->in_hand": "<WRITE: a button, two to four words, for a case going open->in_hand>"
}
}
},
"confirm": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"links": {
"safety-round-finding": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"buckets": {
"site_issues": {
"description": "Report and resolve safety issues, near misses, or material problems found during daily work.",
"heading": "Report site safety issues",
"moves": {
"in_hand->closed": "Mark as closed",
"open->in_hand": "Start reporting"
}
}
},
"confirm": "Continue",
"description": "A desk for the safety officer to track and resolve reported issues from building sites.",
"links": {
"safety-round-finding": {
"button": "View weekly round",
"description": "See all issues found during the site safety walkround.",
"heading": "Safety walkround findings"
}
},
"question": "What safety issues need reporting or closing today?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/safety_officer/safety-round-finding-sent.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to form",
"description": "The safety officer has received your report. They will review the issue during their next site walk.",
"next_description": "The issue will be marked as closed once the officer has verified the fix or the hazard has been removed.",
"next_heading": "Issue recorded and reviewed",
"question": "What happens after I submit a safety report?"
}
@@ -0,0 +1,66 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/safety_officer/safety-round-finding.yaml
It is a page only one role inside the business can open, holding one form.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"kind": "<WRITE: a form label for the field `kind`>",
"what_happened": "<WRITE: a form label for the field `what_happened`>",
"where": "<WRITE: a form label for the field `where`>"
},
"page_description": "<WRITE: one or two short sentences>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"button": "Log finding",
"description": "Report a hazard, near miss or wrong materials from the site. This helps keep everyone safe and the job on track.",
"form_title": "Safety round finding",
"heading": "Report what you find on site",
"labels": {
"kind": "Issue kind",
"what_happened": "What happened",
"where": "Where on site"
},
"page_description": "Use this form to record safety issues found during the weekly site round.",
"question": "What safety issue did you find?"
}
@@ -0,0 +1,181 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/site_managers/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"buckets": {
"bids": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {}
},
"change_orders": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"approved->completed": "<WRITE: a button, two to four words, for a case going approved->completed>"
}
},
"claims": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"accepted->fixed": "<WRITE: a button, two to four words, for a case going accepted->fixed>",
"open->inspected": "<WRITE: a button, two to four words, for a case going open->inspected>"
}
},
"complaints": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->answered": "<WRITE: a button, two to four words, for a case going open->answered>"
}
},
"enquiries": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->surveyed": "<WRITE: a button, two to four words, for a case going open->surveyed>"
}
},
"job_requests": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {}
},
"material_orders": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->ordered": "<WRITE: a button, two to four words, for a case going open->ordered>",
"open->refused": "<WRITE: a button, two to four words, for a case going open->refused>",
"ordered->delivered": "<WRITE: a button, two to four words, for a case going ordered->delivered>",
"ordered->refused": "<WRITE: a button, two to four words, for a case going ordered->refused>"
}
},
"site_issues": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->in_hand": "<WRITE: a button, two to four words, for a case going open->in_hand>"
}
},
"subcontractors": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {}
}
},
"confirm": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"links": {},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"buckets": {
"bids": {
"description": "Approved subcontractors review jobs and submit prices. Submit-bid stage moves to shortlisted or declined.",
"heading": "Subcontractor bids",
"moves": {}
},
"change_orders": {
"description": "Clients request changes to ongoing jobs. Prices are set and changes are completed or declined.",
"heading": "Change requests",
"moves": {
"approved->completed": "Mark done"
}
},
"claims": {
"description": "Past customers report faults. Issues are inspected and fixed or rejected.",
"heading": "Warranty claims",
"moves": {
"accepted->fixed": "Mark fixed",
"open->inspected": "Book inspection"
}
},
"complaints": {
"description": "Neighbour issues on site are logged and answered.",
"heading": "Neighbour complaints",
"moves": {
"open->answered": "Mark answered"
}
},
"enquiries": {
"description": "New building or survey requests are logged and moved through stages to a decision.",
"heading": "New enquiries",
"moves": {
"open->surveyed": "Mark surveyed"
}
},
"job_requests": {
"description": "Carpenters and apprentices apply for work. Stages track from interview to hire.",
"heading": "Job applications",
"moves": {}
},
"material_orders": {
"description": "Carpenters order materials to keep work running. Orders are tracked from request to delivery.",
"heading": "Material orders",
"moves": {
"open->ordered": "Order it",
"open->refused": "Cancel order",
"ordered->delivered": "Mark delivered",
"ordered->refused": "Cancel delivery"
}
},
"site_issues": {
"description": "Hazards and near misses are reported and closed off the weekly safety round.",
"heading": "Site safety issues",
"moves": {
"open->in_hand": "Log it"
}
},
"subcontractors": {
"description": "Approved trade firms are listed and jobs are awarded to them.",
"heading": "Approved subcontractors",
"moves": {}
}
},
"confirm": "Save changes",
"description": "Manage the cases assigned to the site manager role.",
"links": {
"project_managers": "Project managers",
"safety_officer": "Safety officer"
},
"question": "What case needs updating?"
}
@@ -0,0 +1,86 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/subcontractors/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"buckets": {
"job_requests": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {}
}
},
"confirm": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"links": {
"submit-bid": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"buckets": {
"job_requests": {
"description": "Cases from trade firms and carpenters looking for work or to become approved subcontractors.",
"heading": "Work with us",
"moves": {
"open->interviewing": "Invite to interview",
"interviewing->offered": "Offer job",
"offered->hired": "Hire",
"offered->declined": "Decline",
"open->awaiting_papers": "Await papers",
"awaiting_papers->approved": "Approve",
"awaiting_papers->declined": "Decline"
}
}
},
"confirm": "Save",
"description": "Manage enquiries from trade firms and job applicants. Move cases through stages to hire carpenters or approve subcontractors.",
"links": {
"submit-bid": {
"button": "Submit bid",
"description": "Approve subcontractors can see the job and reply with a price and start date.",
"heading": "Submit a bid"
}
},
"question": "What enquiry do you want to handle?"
}
@@ -0,0 +1,54 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/subcontractors/submit-bid-sent.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"back": "Back to form",
"description": "Your bid has been submitted. Awaiting review by our project managers.",
"next_description": "We will review your submission and get back to you within 3 business days.",
"next_heading": "What happens next?",
"question": "What happens after I submit?"
}
@@ -0,0 +1,66 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/subcontractors/submit-bid.yaml
It is a page only one role inside the business can open, holding one form.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"can_start": "<WRITE: a form label for the field `can_start`>",
"job": "<WRITE: a form label for the field `job`>",
"price": "<WRITE: a form label for the field `price`>"
},
"page_description": "<WRITE: one or two short sentences>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"button": "Submit bid",
"description": "Tell us your price and when you can start so we can review your offer.",
"form_title": "Submit a bid",
"heading": "Submit a bid on a job",
"labels": {
"can_start": "Can start",
"job": "Job reference",
"price": "Your price"
},
"page_description": "Approved subcontractors use this form to place a bid on an open job.",
"question": "Will you submit a bid on this job?"
}
@@ -0,0 +1,104 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/work-with-us/index.yaml
It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"needs": {
"job-application": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"experience": "<WRITE: a form label for the field `experience`>",
"name": "<WRITE: a form label for the field `name`>",
"phone": "<WRITE: a form label for the field `phone`>",
"trade": "<WRITE: a form label for the field `trade`>"
}
},
"subcontractor-application": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"company": "<WRITE: a form label for the field `company`>",
"contact_email": "<WRITE: a form label for the field `contact_email`>",
"insurance_confirmed": "<WRITE: a form label for the field `insurance_confirmed`>",
"registration_number": "<WRITE: a form label for the field `registration_number`>",
"trade": "<WRITE: a form label for the field `trade`>",
"trade_approval": "<WRITE: a form label for the field `trade_approval`>"
}
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"description": "We are a small team running rehabilitation and construction projects. We are looking for people who want to join us, or who need our help with a building.",
"needs": {
"job-application": {
"button": "Apply now",
"description": "Tell us who you are and what you can do. No letter needed.",
"form_title": "Job application",
"heading": "Find a job with us",
"labels": {
"experience": "Your experience",
"name": "Your name",
"phone": "Your phone",
"trade": "Your trade"
}
},
"subcontractor-application": {
"button": "Apply now",
"description": "Send us your details so we can check if you are a fit for our projects.",
"form_title": "Subcontractor application",
"heading": "Apply to work with us",
"labels": {
"company": "Company name",
"contact_email": "Contact email",
"insurance_confirmed": "Insurance confirmed",
"registration_number": "Registration number",
"trade": "Your trade",
"trade_approval": "Trade approval"
}
}
},
"question": "Do you want to work with us, or do you need our help with a building?"
}
@@ -0,0 +1,130 @@
You write the words for one page of a website for this business.
Business: Nordvik Bygg
About: Twelve people who survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with their own carpenters plus subcontractors for electrical, plumbing and scaffolding. Project managers win and run the jobs, site managers run each building site day to day, and one safety officer owns everything reported from site.
Contact: Ingrid Nordvik <ingrid@nordvikbygg.example>
Language to write in: en
Everyone the site serves:
- door your-building: for an owner, a housing board or a past customer with a building; behind it: survey-enquiry, build-enquiry, warranty-claim
- door work-with-us: for a trade firm, a carpenter or an apprentice who wants work from us; behind it: subcontractor-application, job-application
- survey-enquiry: a housing board or private owner with a problem in a building - wants: someone qualified to come and look at it and say what it takes. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- build-enquiry: an owner who already knows what they want built or changed - wants: drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- warranty-claim: a past customer who has found a fault in work we handed over - wants: us to come back, look at it, and put it right. Handled by project_managers. Stages: open -> inspected -> accepted -> fixed -> rejected.
- neighbour-complaint: someone living or working next to one of our building sites - wants: the noise, dust or blocked access dealt with, and an answer. Handled by site_managers. Stages: open -> answered.
- subcontractor-application: a trade firm doing electrical, plumbing or scaffolding work - wants: to be approved once, and then be called when a job needs them. Handled by project_managers. Stages: open -> awaiting_papers -> approved -> declined.
- job-application: a carpenter, bricklayer or apprentice looking for work - wants: to be considered, without writing a letter. Handled by project_managers. Stages: open -> interviewing -> offered -> hired -> declined.
- change-request: a client whose job is under way and who wants something changed - wants: a price for the change, and the change done if they accept it. Handled by project_managers. Stages: open -> priced -> approved -> completed -> declined.
- log-phone-enquiry: a project manager who just took a call or a text about a building - wants: the enquiry written down before it gets lost. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost.
- post-job-request: a project manager with work to hand to a subcontractor - wants: approved subcontractors to see the job and answer with a price. Handled by project_managers. Stages: open -> awarded -> withdrawn.
- submit-bid: an approved subcontractor who has seen a job they can take - wants: to say yes with a price and a start date. Handled by project_managers. Stages: open -> shortlisted -> accepted -> declined.
- report-site-issue: anyone on site, ours or a subcontractor's, on a phone with gloves on - wants: to report a hazard, a near miss or wrong materials before they forget. Handled by safety_officer. Stages: open -> in_hand -> closed.
- order-materials: a carpenter or bricklayer who is about to run out of something - wants: it ordered and on site before work stops. Handled by site_managers. Stages: open -> ordered -> delivered -> refused.
- safety-round-finding: the safety officer walking a site on the weekly round - wants: each thing found written down where the reported issues already are. Handled by safety_officer. Stages: open -> in_hand -> closed.
The page: questions/your-building/index.yaml
It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"needs": {
"build-enquiry": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"address": "<WRITE: a form label for the field `address`>",
"name": "<WRITE: a form label for the field `name`>",
"phone": "<WRITE: a form label for the field `phone`>",
"project": "<WRITE: a form label for the field `project`>",
"timeframe": "<WRITE: a form label for the field `timeframe`>"
}
},
"survey-enquiry": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"access": "<WRITE: a form label for the field `access`>",
"address": "<WRITE: a form label for the field `address`>",
"name": "<WRITE: a form label for the field `name`>",
"phone": "<WRITE: a form label for the field `phone`>",
"problem": "<WRITE: a form label for the field `problem`>"
}
},
"warranty-claim": {
"button": "<WRITE: a button, one to three words>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"address": "<WRITE: a form label for the field `address`>",
"fault": "<WRITE: a form label for the field `fault`>",
"handed_over": "<WRITE: a form label for the field `handed_over`>",
"name": "<WRITE: a form label for the field `name`>",
"phone": "<WRITE: a form label for the field `phone`>"
}
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"description": "What brings you to us today?",
"needs": {
"build-enquiry": {
"button": "Start build",
"description": "You know what you want changed or built. We’ll draw it, handle the permit, and price it for you.",
"form_title": "Your building project",
"heading": "Tell us about your building project",
"labels": {
"address": "Building address",
"name": "Your name",
"phone": "Phone number",
"project": "Project type",
"timeframe": "When you want it done"
}
},
"survey-enquiry": {
"button": "Get it surveyed",
"description": "You have a problem in your building. We’ll send someone qualified to look at it and tell you what it takes to fix it.",
"form_title": "Survey your building",
"heading": "Report a building problem",
"labels": {
"access": "How to get to the site",
"address": "Building address",
"name": "Your name",
"phone": "Phone number",
"problem": "What is the problem?"
}
},
"warranty-claim": {
"button": "Claim warranty",
"description": "You found a fault in work we did. We’ll come back, look at it, and put it right.",
"form_title": "Warranty claim",
"heading": "Report a fault in our work",
"labels": {
"address": "Building address",
"fault": "What is the fault?",
"handed_over": "When was it handed over?",
"name": "Your name",
"phone": "Phone number"
}
}
},
"question": "What are you looking for?"
}

Some files were not shown because too many files have changed in this diff Show More