Files
portal/runs/contractor-planned-2026-09-24/r2/model.json
T
Bendik Aagaard LynghaugandClaude Fable 5.1 4d22f4cb44 plan: a spectator role goes back to the model once; bare-word movers and unlabelled groups parse
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>
2026-09-24 06:42:05 +02:00

675 lines
21 KiB
JSON

{
"needs": [
{
"id": "building-problem",
"who": "housing boards and private owners with a problem with a building",
"wants": "someone to come and look at the building and tell them what can be done",
"enters_as": null,
"lands_in": "enquiries",
"handled_by": "project_managers",
"done_when": [
"won",
"lost"
],
"success": [
"won"
],
"steps": [
{
"page": "/",
"question": "What do you need done to a building?",
"context": "Building work you can trust from start to finish: Twelve of us, surveying buildings, drawing up plans, getting the permits sorted, and doing the work ourselves alongside trusted subcontractors. Know what's wrong before you spend a krone: We come look at the building, tell you honestly what's wrong and what it'll take to fix. See your project through from drawing to done: We draw up the plans, apply for the permit, and build it with our own carpenters and trusted subcontractors.",
"options": [
{
"name": "Find out what's wrong with your building",
"description": "Tell us what's wrong with the building and we'll come take a look."
},
{
"name": "Get your project drawn, permitted and priced",
"description": "Tell us what you want built and we'll draw it up, handle the permit, and give you a price."
},
{
"name": "Get work as one of our subcontractors",
"description": "Electrical, plumbing or scaffolding firms, get on our list and we'll bring you in on jobs."
},
{
"name": "Work with our carpenters",
"description": "Carpenters and apprentices, tell us a bit about yourself and we'll see where you'd fit."
}
],
"expect": [
"Find out what's wrong with your building"
],
"alternative": "Find out what's wrong with your building",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "phone",
"label": "Phone",
"type": "tel",
"optional": false,
"options": []
},
{
"name": "problem",
"label": "What's the problem?",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "address",
"label": "Address",
"type": "text",
"optional": true,
"options": []
}
]
}
]
},
{
"id": "new-build-project",
"who": "owners who already know what they want built",
"wants": "drawings, a permit and a price",
"enters_as": null,
"lands_in": "enquiries",
"handled_by": "project_managers",
"done_when": [
"won",
"lost"
],
"success": [
"won"
],
"steps": [
{
"page": "/",
"question": "What do you need done to a building?",
"context": "Building work you can trust from start to finish: Twelve of us, surveying buildings, drawing up plans, getting the permits sorted, and doing the work ourselves alongside trusted subcontractors. Know what's wrong before you spend a krone: We come look at the building, tell you honestly what's wrong and what it'll take to fix. See your project through from drawing to done: We draw up the plans, apply for the permit, and build it with our own carpenters and trusted subcontractors.",
"options": [
{
"name": "Find out what's wrong with your building",
"description": "Tell us what's wrong with the building and we'll come take a look."
},
{
"name": "Get your project drawn, permitted and priced",
"description": "Tell us what you want built and we'll draw it up, handle the permit, and give you a price."
},
{
"name": "Get work as one of our subcontractors",
"description": "Electrical, plumbing or scaffolding firms, get on our list and we'll bring you in on jobs."
},
{
"name": "Work with our carpenters",
"description": "Carpenters and apprentices, tell us a bit about yourself and we'll see where you'd fit."
}
],
"expect": [
"Get your project drawn, permitted and priced"
],
"alternative": "Get your project drawn, permitted and priced",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "phone",
"label": "Phone",
"type": "tel",
"optional": false,
"options": []
},
{
"name": "project_description",
"label": "What do you want to build?",
"type": "textarea",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "subcontractor-application",
"who": "trade firms who want to be on the list of subcontractors",
"wants": "to be approved as a subcontractor",
"enters_as": null,
"lands_in": "subcontractors",
"handled_by": "project_managers",
"done_when": [
"approved",
"declined"
],
"success": [
"approved"
],
"steps": [
{
"page": "/",
"question": "What do you need done to a building?",
"context": "Building work you can trust from start to finish: Twelve of us, surveying buildings, drawing up plans, getting the permits sorted, and doing the work ourselves alongside trusted subcontractors. Know what's wrong before you spend a krone: We come look at the building, tell you honestly what's wrong and what it'll take to fix. See your project through from drawing to done: We draw up the plans, apply for the permit, and build it with our own carpenters and trusted subcontractors.",
"options": [
{
"name": "Find out what's wrong with your building",
"description": "Tell us what's wrong with the building and we'll come take a look."
},
{
"name": "Get your project drawn, permitted and priced",
"description": "Tell us what you want built and we'll draw it up, handle the permit, and give you a price."
},
{
"name": "Get work as one of our subcontractors",
"description": "Electrical, plumbing or scaffolding firms, get on our list and we'll bring you in on jobs."
},
{
"name": "Work with our carpenters",
"description": "Carpenters and apprentices, tell us a bit about yourself and we'll see where you'd fit."
}
],
"expect": [
"Get work as one of our subcontractors"
],
"alternative": "Get work as one of our subcontractors",
"fields": [
{
"name": "company_name",
"label": "Company name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "phone",
"label": "Phone",
"type": "tel",
"optional": false,
"options": []
},
{
"name": "trade",
"label": "Trade",
"type": "select",
"optional": false,
"options": [
"Electrical",
"Plumbing",
"Scaffolding",
"Other"
]
},
{
"name": "registration_number",
"label": "Registration number",
"type": "text",
"optional": false,
"options": []
},
{
"name": "insurance_info",
"label": "Insurance details",
"type": "textarea",
"optional": true,
"options": []
}
]
}
]
},
{
"id": "job-application",
"who": "carpenters and apprentices asking if we are hiring",
"wants": "a job with us",
"enters_as": null,
"lands_in": "job_applications",
"handled_by": "project_managers",
"done_when": [
"hired",
"declined"
],
"success": [
"hired"
],
"steps": [
{
"page": "/",
"question": "What do you need done to a building?",
"context": "Building work you can trust from start to finish: Twelve of us, surveying buildings, drawing up plans, getting the permits sorted, and doing the work ourselves alongside trusted subcontractors. Know what's wrong before you spend a krone: We come look at the building, tell you honestly what's wrong and what it'll take to fix. See your project through from drawing to done: We draw up the plans, apply for the permit, and build it with our own carpenters and trusted subcontractors.",
"options": [
{
"name": "Find out what's wrong with your building",
"description": "Tell us what's wrong with the building and we'll come take a look."
},
{
"name": "Get your project drawn, permitted and priced",
"description": "Tell us what you want built and we'll draw it up, handle the permit, and give you a price."
},
{
"name": "Get work as one of our subcontractors",
"description": "Electrical, plumbing or scaffolding firms, get on our list and we'll bring you in on jobs."
},
{
"name": "Work with our carpenters",
"description": "Carpenters and apprentices, tell us a bit about yourself and we'll see where you'd fit."
}
],
"expect": [
"Work with our carpenters"
],
"alternative": "Work with our carpenters",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "phone",
"label": "Phone",
"type": "tel",
"optional": false,
"options": []
},
{
"name": "message",
"label": "Tell us about yourself",
"type": "textarea",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "report-site-issue",
"who": "crew, ours and the subcontractors' people, on site",
"wants": "to report a hazard, near miss or wrong delivery",
"enters_as": "crew",
"lands_in": "site_issues",
"handled_by": "safety_officer",
"done_when": [
"closed"
],
"success": [
"closed"
],
"steps": [
{
"page": "/crew/report-site-issue",
"question": "Has something happened on site that needs attention?",
"context": "",
"options": [
{
"name": "Flag something wrong on site",
"description": "Tell the safety officer about a hazard, near miss or wrong delivery on site."
}
],
"expect": [
"Flag something wrong on site"
],
"alternative": "Flag something wrong on site",
"fields": [
{
"name": "issue_type",
"label": "Type of issue",
"type": "select",
"optional": false,
"options": [
"Hazard",
"Near miss",
"Wrong materials",
"Other"
]
},
{
"name": "location",
"label": "Where on site",
"type": "text",
"optional": false,
"options": []
},
{
"name": "details",
"label": "What happened",
"type": "textarea",
"optional": true,
"options": []
}
]
}
]
}
],
"buckets": {
"enquiries": {
"initial": "open",
"transitions": {
"open": [
"surveyed",
"quoted",
"won",
"lost"
],
"quoted": [
"won",
"lost"
],
"surveyed": [
"quoted",
"won",
"lost"
]
},
"words": {
"lost": "lost",
"open": "open",
"quoted": "quoted",
"surveyed": "surveyed",
"won": "won"
},
"desks": [
{
"page": "/project_managers",
"group": "project_managers",
"moves": [
{
"from": "open",
"to": "surveyed",
"label": "Mark as surveyed"
},
{
"from": "open",
"to": "quoted",
"label": "Send straight to quoted"
},
{
"from": "open",
"to": "won",
"label": "Mark as won"
},
{
"from": "open",
"to": "lost",
"label": "Mark as lost"
},
{
"from": "quoted",
"to": "won",
"label": "Mark as won"
},
{
"from": "quoted",
"to": "lost",
"label": "Mark as lost"
},
{
"from": "surveyed",
"to": "quoted",
"label": "Quote sent"
},
{
"from": "surveyed",
"to": "won",
"label": "Mark as won"
},
{
"from": "surveyed",
"to": "lost",
"label": "Mark as lost"
}
]
}
],
"self_moves": []
},
"subcontractors": {
"initial": "open",
"transitions": {
"checking": [
"papers_requested",
"approved",
"declined"
],
"open": [
"checking",
"declined"
],
"papers_requested": [
"approved",
"declined"
]
},
"words": {
"approved": "approved",
"checking": "checking",
"declined": "declined",
"open": "open",
"papers_requested": "papers requested"
},
"desks": [
{
"page": "/project_managers",
"group": "project_managers",
"moves": [
{
"from": "checking",
"to": "papers_requested",
"label": "Ask for their papers"
},
{
"from": "checking",
"to": "approved",
"label": "Approve them"
},
{
"from": "checking",
"to": "declined",
"label": "Turn them down"
},
{
"from": "open",
"to": "declined",
"label": "Turn them down"
},
{
"from": "papers_requested",
"to": "approved",
"label": "Approve them"
},
{
"from": "papers_requested",
"to": "declined",
"label": "Turn them down"
}
]
}
],
"self_moves": [
"checking"
]
},
"job_applications": {
"initial": "open",
"transitions": {
"interviewing": [
"hired",
"declined"
],
"open": [
"interviewing",
"hired",
"declined"
]
},
"words": {
"declined": "declined",
"hired": "hired",
"interviewing": "interviewing",
"open": "open"
},
"desks": [
{
"page": "/project_managers",
"group": "project_managers",
"moves": [
{
"from": "interviewing",
"to": "hired",
"label": "Offer the job"
},
{
"from": "interviewing",
"to": "declined",
"label": "Not taking them on"
},
{
"from": "open",
"to": "interviewing",
"label": "Call in for interview"
},
{
"from": "open",
"to": "hired",
"label": "Offer the job"
},
{
"from": "open",
"to": "declined",
"label": "Not taking them on"
}
]
}
],
"self_moves": []
},
"site_issues": {
"initial": "open",
"transitions": {
"action_decided": [
"closed"
],
"open": [
"action_decided"
]
},
"words": {
"action_decided": "action decided",
"closed": "closed",
"open": "open"
},
"desks": [
{
"page": "/safety_officer",
"group": "safety_officer",
"moves": [
{
"from": "action_decided",
"to": "closed",
"label": "Mark sorted"
},
{
"from": "open",
"to": "action_decided",
"label": "Log what we're doing"
}
]
}
],
"self_moves": []
}
},
"personas": [
{
"id": "housing-board-damp",
"need": "building-problem",
"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": "building-problem",
"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": "new-build-project",
"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": "new-build-project",
"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."
}
]
}