Engineering queue routing

Route engineering reports to the right team using diagnostic evidence, ownership, and actual impact.

Step 01

Define and Align

Review engineering examples and annotate the judgments or routing fields that need to change. Explain the evidence behind the correction.

Output schema
QueueChoose one

Team that owns the evidenced cause or requested engineering work.

  • frontend
  • backend
  • infrastructure
  • needs_triage
Issue typeChoose one

Whether the report describes a defect, active incident, or enhancement request.

  • bug
  • incident
  • feature_request
PriorityChoose one

Priority based on the documented impact and availability of a workaround.

  • normal
  • high
  • critical
Routing evidenceText

Diagnostic or ownership evidence supporting the routing decision.

app.sutro.sh/functions/engineering-queue-routing
Collecting feedback · 1/3
Classify and route the engineering report using the supplied ownership and incident policy.
Example 1 of 3

API wording hides a client-side failure

Model input
Report

Checkout displays “API error” after a user changes quantity. Other workflows are working.

Diagnostics
Browser: TypeError: total.toFixed is not a function in CheckoutSummary.tsx.
Network: no request was sent by the failing interaction.
Direct API check: response 200 with the expected total.
Routing policy

Route by the subsystem owning the evidenced cause, not the first symptom keyword. Frontend owns client-side code, Backend owns service behavior and usage exports, and Infrastructure owns ingress and cluster configuration. Use needs_triage if ownership is unsupported. Critical requires an active production failure affecting all customers without a workaround; enhancement requests with no outage are normal.

Model output
Queue
Issue type
Priority
Routing evidence

Step 02

Model Sweep

Compare models on the same expert annotations and choose the quality–cost tradeoff for your workflow.

Compare models on expert agreement and cost. The interactive chart uses illustrative measurements.

Illustrative sweep · select Value or Best to use that model in your function.

Step 03

Deployment

Call Sutro Functions like any other software. Swap the model as soon as something more performant is released.

Selected modelWaiting for sweep results.

Real-time

import sutro as so

input_data = {
    "routing_policy": "Route by the subsystem owning the evidenced cause, not the first symptom keyword. Frontend owns client-side code, Backend owns service behavior and usage exports, and Infrastructure owns ingress and cluster configuration. Use needs_triage if ownership is unsupported. Critical requires an active production failure affecting all customers without a workaround; enhancement requests with no outage are normal.",
    "report": "Checkout displays “API error” after a user changes quantity. Other workflows are working.",
    "diagnostics": "Browser: TypeError: total.toFixed is not a function in CheckoutSummary.tsx.\nNetwork: no request was sent by the failing interaction.\nDirect API check: response 200 with the expected total."
}

result = so.run_function(
    "engineering-queue-routing",
    input_data,
)

Batch

import sutro as so

job_id = so.batch_run_function(
    name="engineering-queue-routing",
    data="engineering_queue_routing.csv",
)
results = so.await_job_completion(job_id)

Ready to get started?

Book time with the team

Join the self-serve waitlist

What are your bottlenecks? (Select any that apply)