AI Work-Order Scope Drafter
ClaudeWorkOrderScopeDrafter takes a triaged maintenance request and
returns a structured scope a tradie can actually work against, plus a
suggested cost ceiling.
Input
record Context(
String tenantReportText,
IssueCategory category,
UrgencyLevel urgency,
Address propertyAddress,
List<String> triageSuggestedActions
) {}
Only category + a compressed version of tenantReportText +
triageSuggestedActions are sent to Claude. Tenant name, email, mobile
are stripped. Property address is sent for context (tradie needs to
know which suburb for travel-time cost). Full address (unit + street) is
not included — suburb + state + postcode only.
Output
record DraftedScope(
String scope,
Long suggestedCostCeilingCents,
String modelVersion
) {}
Example:
{
"scope": "Issue: intermittent rattling from dishwasher, recurring over 2 weeks.\nAccess: tenant home after 4pm weekdays; Saturday all day.\nScope:\n1. Inspect dishwasher pump assembly — likely cause of rattle.\n2. Replace water filter if clogged.\n3. Test through a full wash cycle.\n4. If pump requires replacement, provide quote before proceeding beyond cost ceiling.\nExpected duration: 1–2 hours.",
"suggestedCostCeilingCents": 45000,
"modelVersion": "claude-haiku-4-5@prompt-v1"
}
Prompt version
prompt-v1 — shipped 2026-04. Structure: system prompt gives the category + urgency and asks for a tradie-facing scope with access notes, numbered steps, and a dollar estimate ceiling grounded in typical Australian metro rates (it's prompted, not RAG-retrieved).
Cost ceiling prompt hints:
- Plumbing call-out (diagnose only): $150–250
- Plumbing standard job (2h, no parts): $300–500
- Electrical minor: $200–350
- Gas fitter + cert: $400–700
- Appliance repair: $200–450
- Locksmith call-out: $250–400
Claude picks a number within or near these bands. The PM always gets to override.
Fallback
If Claude is unavailable:
scope = tenantReportText
suggestedCostCeilingCents = null // forces PM to set manually
modelVersion = "heuristic@fallback-v1"
The UI shows an amber chip: "Scope not AI-drafted — please review the raw tenant text before dispatching."
API
POST /api/v1/work-orders/draft-scope. Non-mutating. See
Convert to Work Order.
See also
- Convert to Work Order — user-facing flow
- Fallbacks & Privacy