Re-planning the contractor showed three wasted rounds: `moves_by: {
checking: submitter }` written as a bare word, a group without a
label, and the two featured owner roles left with nothing to play,
which the builder only warned about after the fact. The bare word and
the missing label now parse (a label defaults to the id), and a plan
that parses with spectator roles is sent back once with the finding;
on the contractor, round three fixed both.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
391 lines
18 KiB
JSON
391 lines
18 KiB
JSON
{
|
|
"aggregates.yaml": {
|
|
"enquiries": {
|
|
"lost": {
|
|
"body": "Thanks for the chance to look at this - not one we're able to take on. If plans change or you want a second opinion down the line, get in touch.",
|
|
"subject": "Not one we can take on this time"
|
|
},
|
|
"open": {
|
|
"body": "We've had your enquiry land. A project manager will come back to you shortly about a visit.",
|
|
"subject": "Got your enquiry"
|
|
},
|
|
"won": {
|
|
"body": "Good news - we're going ahead with your job. Your project manager will be in touch about next steps.",
|
|
"subject": "You're booked in"
|
|
}
|
|
},
|
|
"job_applications": {
|
|
"declined": {
|
|
"body": "Thanks for applying - we've filled the position for now. We'll keep your details on file if that changes.",
|
|
"subject": "No opening right now"
|
|
},
|
|
"hired": {
|
|
"body": "Welcome aboard - we'd like to bring you on. We'll be in touch about start dates and paperwork.",
|
|
"subject": "Welcome to the team"
|
|
},
|
|
"open": {
|
|
"body": "Thanks for reaching out about work with us. We'll look over what you've sent and get back to you.",
|
|
"subject": "Got your application"
|
|
}
|
|
},
|
|
"subcontractors": {
|
|
"approved": {
|
|
"body": "You're on our list of subcontractors now. We'll be in touch when a job comes up that fits.",
|
|
"subject": "You're on our list"
|
|
},
|
|
"declined": {
|
|
"body": "Thanks for applying - we won't be adding you to our list at this time.",
|
|
"subject": "Not adding you to our list"
|
|
},
|
|
"open": {
|
|
"body": "We've had your application to become a subcontractor. We'll look it over and be in touch.\n\nWhat you can do next: {site}/decide/subcontractor-application?chain={chain}&email={email}",
|
|
"subject": "Got your application"
|
|
},
|
|
"papers_requested": {
|
|
"body": "We need a few papers from you before we can approve you - see the link below for what's missing.",
|
|
"subject": "We need some paperwork from you"
|
|
}
|
|
}
|
|
},
|
|
"questions/crew/index.yaml": {
|
|
"buckets": {},
|
|
"confirm": "Confirm",
|
|
"description": "Everything on your desk right now: enquiries, quotes, subcontractors and job applications, all in one place.",
|
|
"invited": {
|
|
"description": "People you've invited who haven't taken up their invite yet, and those who have.",
|
|
"done": "Signed up",
|
|
"heading": "Who's joined so far"
|
|
},
|
|
"invites": {
|
|
"crew": {
|
|
"button": "Send invite",
|
|
"description": "Give a colleague their own login so they can work cases with you.",
|
|
"form_title": "Invite a colleague",
|
|
"heading": "Bring a colleague onto the desk",
|
|
"labels": {
|
|
"email": "Their email",
|
|
"name": "Their name"
|
|
}
|
|
}
|
|
},
|
|
"links": {
|
|
"report-site-issue": {
|
|
"button": "Open site issues",
|
|
"description": "See what's been reported from site and decide what to do about it.",
|
|
"heading": "Handle hazards and near misses reported from site"
|
|
}
|
|
},
|
|
"question": "What needs your attention right now?"
|
|
},
|
|
"questions/crew/report-site-issue-sent.yaml": {
|
|
"back": "Back to site",
|
|
"description": "Thanks for flagging this. It's gone straight to our safety officer.",
|
|
"next_description": "Our safety officer looks at every report the same day and decides what needs doing.",
|
|
"next_heading": "Safety officer reviews it today",
|
|
"question": "What happens now that I've sent this in?"
|
|
},
|
|
"questions/crew/report-site-issue.yaml": {
|
|
"button": "Report issue",
|
|
"description": "Tell the safety officer about a hazard, near miss or wrong delivery on site.",
|
|
"encouragement": "Takes a minute — even a rough description helps.",
|
|
"form_description": "Say where and what's happened, as plainly as you can.",
|
|
"form_title": "Report the issue",
|
|
"heading": "Flag something wrong on site",
|
|
"hints": {
|
|
"details": "Scaffold missing a guardrail on the second lift, someone could fall.",
|
|
"issue_type": "Near miss",
|
|
"location": "Storgata 14, east scaffold"
|
|
},
|
|
"icon": "alert-triangle",
|
|
"labels": {
|
|
"details": "What happened",
|
|
"issue_type": "Type of issue",
|
|
"location": "Where on site"
|
|
},
|
|
"page_description": "See a hazard, a near miss or the wrong delivery turn up? Let us know before it becomes a problem.",
|
|
"question": "Has something happened on site that needs attention?",
|
|
"road_description": "Your report goes to the safety officer, who decides what to do about it, then closes it once it's sorted.",
|
|
"road_icon": "clipboard-list",
|
|
"road_title": "What happens next",
|
|
"who_description": "The safety officer reads this directly — if it's urgent, call Ingrid Nordvik on ingrid@nordvikbygg.example in the meantime.",
|
|
"who_icon": "shield",
|
|
"who_title": "Who sees this"
|
|
},
|
|
"questions/decide/subcontractor-application.yaml": {
|
|
"description": "We've had a look and want to move forward. Let us know if you're ready to send over your paperwork.",
|
|
"moves": {
|
|
"checking": {
|
|
"button": "Continue review",
|
|
"description": "We're still checking you over and will be in touch shortly about next steps.",
|
|
"heading": "Keep your application under review"
|
|
}
|
|
},
|
|
"question": "Are you ready to move this application forward?"
|
|
},
|
|
"questions/index.yaml": {
|
|
"description": "We look after old buildings and new ones, from the first survey to the last coat of paint, with our own carpenters and trusted subcontractors for the rest.",
|
|
"doors": {},
|
|
"needs": {
|
|
"building-problem": {
|
|
"button": "Get a survey",
|
|
"description": "Tell us what's wrong with the building and we'll come take a look.",
|
|
"encouragement": "A project manager reads every message and gets back to you, usually within a couple of days.",
|
|
"form_description": "A few lines about what you're seeing is enough to start.",
|
|
"form_title": "Describe the building",
|
|
"heading": "Find out what's wrong with your building",
|
|
"hints": {
|
|
"address": "Storgata 14, 0155 Oslo",
|
|
"email": "kari@example.com",
|
|
"name": "Kari Hansen",
|
|
"phone": "912 34 567",
|
|
"problem": "Damp patches on the ceiling in two flats, worse after rain"
|
|
},
|
|
"icon": "search",
|
|
"labels": {
|
|
"address": "Address",
|
|
"email": "Email",
|
|
"name": "Name",
|
|
"phone": "Phone",
|
|
"problem": "What's the problem?"
|
|
},
|
|
"road_description": "We look at what you've sent and book a site visit to survey the building. From there we quote the work, and if you go ahead, the job is won and we get started.",
|
|
"road_icon": "route",
|
|
"road_title": "What happens next",
|
|
"who_description": "A project manager handles this from start to finish, and you can call or email us any time in between.",
|
|
"who_icon": "user-check",
|
|
"who_title": "Who you'll hear from"
|
|
},
|
|
"job-application": {
|
|
"button": "Send application",
|
|
"description": "Carpenters and apprentices, tell us a bit about yourself and we'll see where you'd fit.",
|
|
"encouragement": "No CV needed to get started, just tell us who you are.",
|
|
"form_description": "A short message about your experience is all we need to begin.",
|
|
"form_title": "Tell us about yourself",
|
|
"heading": "Work with our carpenters",
|
|
"hints": {
|
|
"email": "ola@example.com",
|
|
"message": "Trained carpenter, three years on renovation sites, looking for full-time work",
|
|
"name": "Ola Berg",
|
|
"phone": "901 23 456"
|
|
},
|
|
"icon": "hammer",
|
|
"labels": {
|
|
"email": "Email",
|
|
"message": "Tell us about yourself",
|
|
"name": "Name",
|
|
"phone": "Phone"
|
|
},
|
|
"road_description": "We read your message and if it looks like a fit, we call you in for a chat. If that goes well, we'll offer you a start.",
|
|
"road_icon": "route",
|
|
"road_title": "What happens next",
|
|
"who_description": "A project manager reads applications and can answer questions by phone or email while you wait.",
|
|
"who_icon": "user-check",
|
|
"who_title": "Who you'll hear from"
|
|
},
|
|
"new-build-project": {
|
|
"button": "Start my project",
|
|
"description": "Tell us what you want built and we'll draw it up, handle the permit, and give you a price.",
|
|
"encouragement": "A project manager looks at every project and comes back to you with next steps.",
|
|
"form_description": "Sketches or plans help, but a description is enough to start.",
|
|
"form_title": "Describe your project",
|
|
"heading": "Get your project drawn, permitted and priced",
|
|
"hints": {
|
|
"email": "per@example.com",
|
|
"name": "Per Olsen",
|
|
"phone": "923 45 678",
|
|
"project_description": "Extending the kitchen with a 20m2 addition and a new terrace"
|
|
},
|
|
"icon": "ruler",
|
|
"labels": {
|
|
"email": "Email",
|
|
"name": "Name",
|
|
"phone": "Phone",
|
|
"project_description": "What do you want to build?"
|
|
},
|
|
"road_description": "We survey the site, draw up plans and quote the job. Once you accept, we apply for the permit and get building.",
|
|
"road_icon": "route",
|
|
"road_title": "What happens next",
|
|
"who_description": "A project manager owns your project and is your point of contact by phone or email throughout.",
|
|
"who_icon": "user-check",
|
|
"who_title": "Who you'll hear from"
|
|
},
|
|
"subcontractor-application": {
|
|
"button": "Apply now",
|
|
"description": "Electrical, plumbing or scaffolding firms, get on our list and we'll bring you in on jobs.",
|
|
"encouragement": "Send what you have now, we'll ask for anything more we need.",
|
|
"form_description": "Have your registration number and insurance details to hand.",
|
|
"form_title": "Apply as a subcontractor",
|
|
"heading": "Get work as one of our subcontractors",
|
|
"hints": {
|
|
"company_name": "Berg Elektro AS",
|
|
"email": "post@bergelektro.example",
|
|
"insurance_info": "Liability insurance with If, policy 123456",
|
|
"phone": "934 56 789",
|
|
"registration_number": "918 234 567",
|
|
"trade": "Electrical"
|
|
},
|
|
"icon": "handshake",
|
|
"labels": {
|
|
"company_name": "Company name",
|
|
"email": "Email",
|
|
"insurance_info": "Insurance details",
|
|
"phone": "Phone",
|
|
"registration_number": "Registration number",
|
|
"trade": "Trade"
|
|
},
|
|
"road_description": "We check your papers, and may ask for more documents. Once everything's in order, you're approved and on our list.",
|
|
"road_icon": "route",
|
|
"road_title": "What happens next",
|
|
"who_description": "A project manager checks applications and can be reached by phone or email if you have questions.",
|
|
"who_icon": "user-check",
|
|
"who_title": "Who you'll hear from"
|
|
}
|
|
},
|
|
"opener": {
|
|
"description": "Twelve of us, surveying buildings, drawing up plans, getting the permits sorted, and doing the work ourselves alongside trusted subcontractors.",
|
|
"features": {
|
|
"assess-your-building": {
|
|
"description": "We come look at the building, tell you honestly what's wrong and what it'll take to fix.",
|
|
"heading": "Know what's wrong before you spend a krone",
|
|
"icon": "search"
|
|
},
|
|
"build-your-project": {
|
|
"description": "We draw up the plans, apply for the permit, and build it with our own carpenters and trusted subcontractors.",
|
|
"heading": "See your project through from drawing to done",
|
|
"icon": "ruler"
|
|
}
|
|
},
|
|
"heading": "Building work you can trust from start to finish"
|
|
},
|
|
"question": "What do you need done to a building?",
|
|
"shopping": {
|
|
"description": "Not ready to send anything yet? Have a look at how we work and what we've done before.",
|
|
"heading": "See how we work before you get in touch",
|
|
"items": {}
|
|
}
|
|
},
|
|
"questions/project_managers/index.yaml": {
|
|
"buckets": {
|
|
"enquiries": {
|
|
"description": "Every building problem and new-build request that has come in, from first contact to won or lost.",
|
|
"heading": "New enquiries and where they stand",
|
|
"moves": {
|
|
"open->lost": "Mark as lost",
|
|
"open->quoted": "Send straight to quoted",
|
|
"open->surveyed": "Mark as surveyed",
|
|
"open->won": "Mark as won",
|
|
"quoted->lost": "Mark as lost",
|
|
"quoted->won": "Mark as won",
|
|
"surveyed->lost": "Mark as lost",
|
|
"surveyed->quoted": "Quote sent",
|
|
"surveyed->won": "Mark as won"
|
|
}
|
|
},
|
|
"job_applications": {
|
|
"description": "Carpenters and apprentices who have asked if we're hiring.",
|
|
"heading": "People asking for work",
|
|
"moves": {
|
|
"interviewing->declined": "Not taking them on",
|
|
"interviewing->hired": "Offer the job",
|
|
"open->declined": "Not taking them on",
|
|
"open->hired": "Offer the job",
|
|
"open->interviewing": "Call in for interview"
|
|
}
|
|
},
|
|
"subcontractors": {
|
|
"description": "Trade firms asking to get on our subcontractor list, and where each one is in the vetting.",
|
|
"heading": "Firms wanting to be a subcontractor",
|
|
"moves": {
|
|
"checking->approved": "Approve them",
|
|
"checking->declined": "Turn them down",
|
|
"checking->papers_requested": "Ask for their papers",
|
|
"open->declined": "Turn them down",
|
|
"papers_requested->approved": "Approve them",
|
|
"papers_requested->declined": "Turn them down"
|
|
}
|
|
}
|
|
},
|
|
"confirm": "Confirm",
|
|
"description": "Your desk for enquiries, job applications and subcontractors waiting on you.",
|
|
"invited": {
|
|
"description": "Project managers you've invited who haven't signed in yet.",
|
|
"done": "Signed in",
|
|
"heading": "Invites waiting to be taken up"
|
|
},
|
|
"invites": {
|
|
"project_managers": {
|
|
"button": "Send invite",
|
|
"description": "Bring another project manager onto the desk, with their own login.",
|
|
"form_title": "Invite a project manager",
|
|
"heading": "Add another project manager",
|
|
"labels": {
|
|
"email": "Their email address",
|
|
"name": "Their name"
|
|
}
|
|
}
|
|
},
|
|
"links": {},
|
|
"question": "What's waiting on me today?"
|
|
},
|
|
"questions/received/building-problem.yaml": {
|
|
"back": "Back to home",
|
|
"description": "Thanks for telling us about the building. We've logged your report and will take it from here.",
|
|
"next_description": "A project manager will go through what you've sent and get in touch to arrange a look at the building.",
|
|
"next_heading": "A project manager gets in touch",
|
|
"question": "What happens now that we've sent this in?"
|
|
},
|
|
"questions/received/job-application.yaml": {
|
|
"back": "Back to home",
|
|
"description": "Thanks for reaching out. Ingrid or one of the project managers will read it and get back to you.",
|
|
"next_description": "We'll go through your application and be in touch, whether that's to set up a chat or let you know where things stand.",
|
|
"next_heading": "We'll be in touch about work with us",
|
|
"question": "What happens now that I've sent my application?"
|
|
},
|
|
"questions/received/new-build-project.yaml": {
|
|
"back": "Back to homepage",
|
|
"description": "Thanks for sending us your project. A project manager will look it over and get back to you with next steps.",
|
|
"next_description": "We'll book a site visit to see the building and talk through what you have in mind before we draw anything up.",
|
|
"next_heading": "We'll arrange a survey",
|
|
"question": "What happens now that we've sent this?"
|
|
},
|
|
"questions/received/subcontractor-application.yaml": {
|
|
"back": "Back to home",
|
|
"description": "Thanks for applying to join our subcontractor list. A project manager will check your details and papers before you're added.",
|
|
"next_description": "We'll look over your firm's details and get back to you about what's needed to be approved.",
|
|
"next_heading": "We'll review your application",
|
|
"question": "What happens now that we've applied?"
|
|
},
|
|
"questions/safety_officer/index.yaml": {
|
|
"buckets": {
|
|
"site_issues": {
|
|
"description": "Hazards, near misses and delivery mix-ups reported from site, waiting on a decision or a close-out.",
|
|
"heading": "What's been reported from site",
|
|
"moves": {
|
|
"action_decided->closed": "Mark sorted",
|
|
"open->action_decided": "Log what we're doing"
|
|
}
|
|
}
|
|
},
|
|
"confirm": "Confirm",
|
|
"description": "Everything reported from site, so you can decide what to do and close it out.",
|
|
"invited": {
|
|
"description": "Safety officers you've invited and whether they've signed up yet.",
|
|
"done": "Signed up",
|
|
"heading": "Safety officers you've invited"
|
|
},
|
|
"invites": {
|
|
"safety_officer": {
|
|
"button": "Send invite",
|
|
"description": "Give another safety officer their own account and a one-time link to sign up.",
|
|
"form_title": "Invite a safety officer",
|
|
"heading": "Bring in another safety officer",
|
|
"labels": {
|
|
"email": "Email address",
|
|
"name": "Full name"
|
|
}
|
|
}
|
|
},
|
|
"links": {},
|
|
"question": "What's been reported from site that still needs sorting?"
|
|
}
|
|
} |