Skip to main content

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