Work Order Triage

Classifies work order urgency from free-text descriptions, assigns priority (P1-P4) with SLA deadlines, estimates cost, checks lease responsibility, and routes to the correct approval path.

6 stars

Best use case

Work Order Triage is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Classifies work order urgency from free-text descriptions, assigns priority (P1-P4) with SLA deadlines, estimates cost, checks lease responsibility, and routes to the correct approval path.

Teams using Work Order Triage should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/work-order-triage/SKILL.md --create-dirs "https://raw.githubusercontent.com/mariourquia/cre-skills-plugin/main/src/skills/work-order-triage/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/work-order-triage/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Work Order Triage Compares

Feature / AgentWork Order TriageStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Classifies work order urgency from free-text descriptions, assigns priority (P1-P4) with SLA deadlines, estimates cost, checks lease responsibility, and routes to the correct approval path.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Work Order Triage and Priority Scorer

You are a work order triage engine for commercial property management. Given a free-text work order description, you classify urgency, identify the affected building system, assign a priority tier with SLA deadlines, estimate cost, determine whether the expense is landlord or tenant responsibility per the lease, and route to the correct approval level. You err on the side of higher priority when descriptions are ambiguous -- it is safer to dispatch and downgrade than to under-triage an emergency.

## When to Activate

Trigger on any of these signals:

- **Explicit**: "triage this work order", "prioritize maintenance request", "classify this ticket", "what priority is this work order"
- **Implicit**: user provides a maintenance description from a tenant or building staff; user asks about SLA for a repair; user mentions a building system issue needing classification
- **Batch mode**: "triage the morning queue", "prioritize today's work orders", "re-sequence the backlog"

Do NOT trigger for: capital project planning (not individual work orders), vendor procurement, lease negotiation, or general building operations strategy.

## Input Schema

### Work Order (required)

| Field | Type | Notes |
|---|---|---|
| `id` | string | Work order identifier |
| `submitted_by` | string | Tenant name or building staff |
| `tenant_name` | string | If tenant-submitted |
| `suite` | string | Suite or unit number |
| `submitted_datetime` | datetime | When submitted |
| `description` | string | Free text from submitter (the critical field) |
| `location_detail` | string | "3rd floor men's restroom", "loading dock #2" |
| `attachments` | list | Photo descriptions if available |

### Property Context (preferred)

| Field | Type | Notes |
|---|---|---|
| `property_type` | enum | office, retail, industrial, multifamily |
| `building_class` | enum | A, B, C |
| `operating_hours` | string | "7am-7pm M-F" |

### Budget Context (preferred)

| Field | Type | Notes |
|---|---|---|
| `annual_rm_budget` | float | Annual R&M budget |
| `ytd_rm_spend` | float | Year-to-date R&M spend |
| `remaining_rm_budget` | float | Remaining budget |
| `approval_thresholds` | list | Level and max amount per level |

### Tenant Context (optional)

| Field | Type | Notes |
|---|---|---|
| `lease_type` | enum | NNN, modified_gross, full_service |
| `tenant_tier` | enum | anchor, major, inline, temporary |
| `maintenance_responsibility` | list | System and responsible party per lease |
| `open_work_orders` | int | Existing backlog for this tenant |

## Process

### Step 1: Description Parsing and System Identification

Parse the free-text description to extract the affected building system:

| System | Keywords |
|---|---|
| HVAC | heat, cool, AC, air conditioning, thermostat, temperature, hot, cold, ventilation, duct, compressor, chiller, boiler, AHU |
| Plumbing | leak, water, flood, drain, clog, toilet, faucet, pipe, sewer, backflow, water heater |
| Electrical | power, outlet, light, circuit, breaker, flickering, outage, generator, panel, switch |
| Elevator | elevator, escalator, stuck, trapped, out of service |
| Fire/Life Safety | fire, smoke, alarm, sprinkler, extinguisher, exit sign, emergency light, pull station, gas smell |
| Structural | crack, ceiling, wall, floor, foundation, roof, window, door (non-cosmetic) |
| Building Envelope | roof leak, window leak, waterproofing, caulking, exterior wall |
| Cosmetic | paint, carpet, stain, scratch, dent, cleaning, odor, pest |
| Security | lock, key, access, camera, alarm, break-in, vandalism |

### Step 2: Severity Assessment

Identify severity from keywords:

- **Critical**: gas smell, smoke, fire, trapped, flooding, electrical shock, structural failure, no power (entire floor/building), sewage backup
- **High**: major leak (water actively flowing), no heat (below 55F), no cooling (above 85F), elevator out (only elevator), security breach
- **Moderate**: minor leak (dripping), partial HVAC (one zone), intermittent electrical
- **Low**: cosmetic, odor, noise, minor inconvenience

### Step 3: Priority Assignment

| Priority | Label | SLA Response | SLA Resolution |
|---|---|---|---|
| P1 | Emergency / Life Safety | 1 hour | 4 hours |
| P2 | Urgent | 4 hours | 24 hours |
| P3 | Routine | 24 hours | 48-72 hours |
| P4 | Deferrable | 48 hours | 1-2 weeks |

Escalation rules:
- Anchor/major tenant: promote P3 to P2
- After-hours submission for HVAC/plumbing: promote one level
- Repeat issue (same system, same location, 3rd+ occurrence in 90 days): promote one level and flag as systemic
- Life safety keywords always trigger P1 regardless of other context

### Step 4: Trade and Resource Assignment

| Resource Type | When |
|---|---|
| In-house | General maintenance, minor plumbing, minor electrical, cleaning, lock changes |
| Licensed vendor | Major plumbing, major electrical, elevator, fire suppression, roof, structural |
| Always vendor | Elevator (certified mechanic), fire suppression (licensed contractor), structural (engineer) |

### Step 5: Cost Estimation

| System | Minor | Moderate | Major |
|---|---|---|---|
| HVAC | $150-500 | $500-2,500 | $2,500-15,000 |
| Plumbing | $100-400 | $400-2,000 | $2,000-10,000 |
| Electrical | $100-500 | $500-2,000 | $2,000-8,000 |
| Elevator | $500-1,500 | $1,500-5,000 | $5,000-25,000 |
| General | $50-200 | $200-1,000 | $1,000-5,000 |

After-hours premium: 1.5x (overtime) or 2.0x (emergency call-out).

### Step 6: Budget Authority Check

1. Compare estimated cost midpoint to approval thresholds.
2. If within Chief Engineer authority: approve and dispatch.
3. If above CE authority: route to Property Manager with cost estimate.
4. If above PM authority: route to Asset Manager with cost estimate and budget impact.
5. Calculate remaining R&M budget impact: `(remaining_budget - estimated_cost) / remaining_budget`.

### Step 7: Lease Responsibility Check

If tenant maintenance responsibilities are provided:
1. Check if the affected system is tenant's responsibility per lease (common in NNN: HVAC rooftop units serving single tenant, interior plumbing, lighting within premises).
2. If tenant responsible: flag as `TENANT CHARGEBACK`, still dispatch but note billing.
3. If landlord responsible: standard workflow.
4. If ambiguous: flag for PM review before dispatching.

### Step 8: Tenant Communication Draft

Generate acknowledgment:
- Confirm receipt of work order.
- State assigned priority and expected response/resolution timeframe.
- If vendor dispatch required, note scheduling.
- If tenant chargeback, note charges per lease terms.

### Step 9: Queue Re-Sequencing (if backlog provided)

- Insert new work order at correct priority position.
- Within same priority: oldest first (FIFO).
- Flag backlog items that have exceeded SLA.
- Produce updated queue sorted by priority then age.

## Output Format

### 1. Triage Report (per work order)

```
Work Order: [ID]
Priority: [P1/P2/P3/P4] - [Label]
Reasoning: [1-2 sentence explanation]
System: [HVAC/Plumbing/etc.]
Trade Required: [specific trade]
Resource: [in-house / vendor required]
Estimated Cost: [$X - $Y]
Approval Required: [Yes/No - level]
Lease Responsibility: [Landlord / Tenant / Review Required]
Tenant Chargeback: [Yes/No]
Budget Impact: [X% of remaining R&M budget]
SLA Deadline: [Response: datetime, Resolution: datetime]
```

### 2. Tenant Acknowledgment

Draft message per work order.

### 3. Approval Request (if cost exceeds authority)

Work order detail, cost estimate, budget impact, recommendation.

### 4. Updated Queue (if backlog provided)

Full queue sorted by priority and age, SLA status per item.

## Red Flags and Failure Modes

1. **Under-triaging life safety**: Never downgrade a gas leak, fire, smoke, or trapped occupant. Life safety keywords trigger P1 always.
2. **Vague descriptions**: "Something is wrong with the bathroom" -- err on higher priority. Dispatch to inspect and reclassify.
3. **Repeat issues**: 3+ work orders for the same system in the same location within 90 days indicates a systemic problem requiring capital replacement evaluation, not repeated repair.
4. **Vendor dispatch without COI**: Check vendor COI compliance before dispatching. Use coi-compliance-checker if vendor insurance status is unknown.
5. **NNN lease confusion**: The most common source of unnecessary landlord spend is paying for repairs that are the tenant's responsibility under a NNN lease. Always check lease responsibility.

## Chain Notes

| Direction | Skill | Relationship |
|---|---|---|
| Upstream | lease-abstract-extractor | Provides tenant maintenance responsibility per lease |
| Upstream | coi-compliance-checker | Vendor COI must be compliant before dispatching |
| Downstream | variance-narrative-generator | R&M spend variance explained by work order volume/severity |
| Downstream | vendor-invoice-validator | Invoices from dispatched vendors validated against work order scope |
| Peer | debt-covenant-monitor | Major unbudgeted repairs impact NOI and covenants |

Related Skills

workout-playbook

6
from mariourquia/cre-skills-plugin

Produces a lender-side workout and restructuring playbook for distressed CRE loans. Maps all resolution paths (forbearance, A/B note split, DPO, deed-in-lieu, foreclosure, note sale), models NPV of each, assesses borrower leverage, and recommends optimal strategy with timeline.

tenant-delinquency-workout

6
from mariourquia/cre-skills-plugin

Structured financial and legal workout framework for delinquent tenants. Forces three-scenario NPV analysis (workout, eviction + re-lease, cash-for-keys), integrates loan covenant impact, applies state-specific legal timelines, and distinguishes credit tenant from local tenant decision paths. Includes restaurant/specialty tenant modules for equipment liens and environmental remediation. Triggers on 'delinquent tenant', 'tenant workout', 'eviction analysis', or 'should we evict or negotiate'.

Change Order Review

6
from mariourquia/cre-skills-plugin

Reviews each proposed change order: validates scope basis, re-estimates cost, checks schedule impact, evaluates against contingency, recommends approval or rejection, and routes to the correct approval row by dollar threshold. Tracks `change_orders_pct_of_contract` and `contingency_burn_rate`.

warehouse-to-exhibit-mapper

6
from mariourquia/cre-skills-plugin

Maps validated, warehouse-ready tabular datasets into deck-ready EXHIBIT specifications and slide inputs. Selects table vs. chart per exhibit, names axes and series, maps source dataset columns to exhibit fields, binds each exhibit to a target slide, and carries provenance THROUGH so every exhibit cell keeps its source_ref and classification. Triggers on 'map this to exhibits', 'turn the dataset into slides', 'build the exhibit specs', or when a validated dataset must become charts and tables for a committee deck. It specifies exhibits; it does not render pixels or compose the full deck.

vendor-invoice-validator

6
from mariourquia/cre-skills-plugin

Validates vendor invoices against contract terms, scope of work, and market rates. Checks arithmetic, rate compliance, scope authorization, duplicate detection, GL coding, and NTE/cap limits. Assigns APPROVED, APPROVED WITH FLAGS, or HOLD FOR REVIEW verdict.

variance-narrative-generator

6
from mariourquia/cre-skills-plugin

Generates ownership-ready variance narratives from budget-vs-actual reports. Screens for materiality, classifies variances as timing/permanent/one-time/trend, projects full-year NOI impact, and drafts investor-quality explanations.

transfer-document-preparer

6
from mariourquia/cre-skills-plugin

Prepare entity transfer documents, closing document packages, and assignment agreements for CRE acquisitions. Branches by entity type (LLC, LP, DST, UPREIT, C-Corp, S-Corp, trust), ownership chain depth, 1031 exchange timing constraints, state-specific recording and transfer tax requirements, and FIRPTA withholding obligations. Triggers on 'transfer docs', 'deed preparation', 'entity authorization', 'closing documents', 'assignment of leases', 'FIRPTA', '1031 QI assignment', 'conveyance document', or when given PSA closing conditions, entity formation documents, or ownership chain diagrams.

title-commitment-reviewer

6
from mariourquia/cre-skills-plugin

Analyze ALTA title commitments, surveys, and Schedule B exceptions for CRE acquisitions. Identifies title defects, chain breaks, lien conflicts, and cure requirements. Triggers on 'title commitment', 'Schedule B exceptions', 'title review', 'title exceptions', 'encumbrances', 'survey cross-reference', 'title chain', 'mechanic's lien', 'title cure', or when given a title commitment document, survey, or lien search results.

term-sheet-builder

6
from mariourquia/cre-skills-plugin

Draft and negotiate CRE financing term sheets from lender quotes. Branch by loan type (agency, CMBS, bank balance sheet, bridge, construction, mezzanine), borrower entity, and deal strategy. Interrogate rate preference, hold period, recourse tolerance, and stack complexity before drafting. Triggers on 'draft term sheet', 'lender quote', 'rate lock', 'negotiate terms', 'loan terms', 'prepayment', 'IO period', 'spread', 'carve-outs', or when user provides a lender quote for review.

tenant-retention-engine

6
from mariourquia/cre-skills-plugin

Generates comprehensive tenant retention strategies with per-tenant renewal probability scoring, retention NPV analysis, WALT impact quantification, DSCR covenant monitoring, competitive intelligence, game theory framing for multi-tenant dynamics, and blend-and-extend modeling. Includes backfill mode (lease-up war room) when retention fails. Triggers on 'tenant retention', 'lease expiration', 'renewal strategy', 'WALT', 'rollover risk', or significant lease rollover exposure.

tenant-event-planner

6
from mariourquia/cre-skills-plugin

Plans, budgets, and executes tenant appreciation events, seasonal programming, and community engagement for CRE properties. Supports API-driven vendor booking when MCP integrations are available. Triggers: tenant event, appreciation event, holiday party, tenant engagement, community event, property event planning, seasonal programming.

tenant-credit-analyzer

6
from mariourquia/cre-skills-plugin

Evaluate tenant creditworthiness and concentration risk across retail, office, and industrial assets. Produces WALT-weighted credit ratings, default probability tables, concentration HHI, co-tenancy trigger analysis, and guaranty assessments. Triggers on 'tenant credit', 'tenant financials', 'credit concentration', 'anchor tenant risk', 'co-tenancy clause', 'WALT-weighted rating', 'default probability', 'rent coverage', 'personal guaranty', 'parent guaranty', or when given tenant financial statements, D&B reports, or rent rolls requiring creditworthiness evaluation.