Skip to content
OpenSmartRoute
Skillv1.0.0

owner-routing

Internal process for the owner-router agent. Defines the step-by-step procedure for determining likely bug owners using strict 6-level routing precedence with staleness detection. Not user-invocable —

by jeremylongshore(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from jeremylongshore/tons-of-skills-marketplace (plugins/mcp/x-bug-triage/skills/owner-routing/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill owner-routing. Copyright stays with the author (SEE LICENSE IN LICENSE).

Owner Routing Process

Step-by-step procedure for determining the most likely owner/team for each bug cluster using strict 6-level precedence with staleness detection and override memory.

Overview

Loaded by the owner-router agent inside the x-bug-triage plugin. Walks each open bug cluster through a deterministic six-level routing precedence (service-owner → oncall → CODEOWNERS → recent assignees → recent committers → fallback mapping), applies confidence modifiers, detects stale signals, and produces a ranked routing recommendation. Honors prior routing overrides recorded in cluster memory before consulting any signal source.

Prerequisites

  • Cluster table populated upstream by the bug-clustering stage
  • Routing config available at config/routing.json (precedence modifiers, staleness threshold)
  • Triage MCP server reachable for mcp__triage__lookup_* tool calls
  • Repos in the cluster's product_surface have a configured surface→repo mapping

Instructions

Step 1: Check Overrides First

For each cluster, check if a routing_override exists from a prior run:

  • If found: use the override (confidence 1.0, source "routing_override"), skip precedence lookup
  • Log the override application to audit

Step 2: Query Sources in Precedence Order

For each cluster without an override, query sources strictly in order:

Level Source Tool Base Confidence
1 Service owner mcp__triage__lookup_service_owner 1.0
2 Oncall mcp__triage__lookup_oncall 0.9
3 CODEOWNERS mcp__triage__parse_codeowners 0.8
4 Recent assignees (30d) mcp__triage__lookup_recent_assignees 0.6
5 Recent committers (14d) mcp__triage__lookup_recent_committers 0.5
6 Fallback mapping Config lookup 0.3

Stop at the first level that returns a valid team or assignee.

Step 3: Apply Confidence Modifiers

Multiply each result's confidence by the precedence modifier from routing_config.

Step 4: Detect Staleness

Flag any routing signal older than the staleness threshold (default 30 days):

  • Mark the result as stale with the number of days
  • Reduce confidence accordingly
  • Stale signals are still usable but should be noted in output

Step 5: Build Recommendation

Using lib.buildRoutingRecommendation():

  • Rank valid results by level (lowest level = highest priority)
  • Set top_recommendation to the best result
  • If no valid results: set uncertainty=true with reason "Routing: uncertain — no routing signals available. Manual assignment required."

Output

  • cluster_routing rows with ranked candidates (team/assignee, source level, confidence, staleness flag)
  • top_recommendation field set on each cluster (or null with uncertainty=true if no signals)
  • Audit-event rows recording every override application, source query, and stale-signal flag

Error Handling

  • Source query failure (transient API error): log, skip that level, fall through to next
  • All six levels return empty: emit uncertainty=true with the standard reason, do not raise
  • Override exists but references a non-existent team: log warning, fall back to precedence walk
  • Staleness detection unavailable (missing timestamp): treat signal as fresh, flag as "unknown_age"

Examples

Triggered automatically by the owner-router agent after clusters are produced. Typical run output for a 12-cluster batch: "12 clusters routed — 1 via override, 4 via service-owner, 3 via oncall, 2 via CODEOWNERS, 2 via recent committers, 0 via fallback (1 stale signal flagged)".

Resources

Load routing precedence rules:

!cat skills/x-bug-triage/references/routing-rules.md

Load escalation trigger definitions:

!cat skills/x-bug-triage/references/escalation-rules.md

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/jeremylongshore-tons-of-skills-marketplace-owner-routing/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

jeremylongshore-tons-of-skills-marketplace-owner-routing.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-owner-routing",
  "kind": "skill",
  "name": "owner-routing",
  "description": "Internal process for the owner-router agent. Defines the step-by-step procedure for determining likely bug owners using strict 6-level routing precedence with staleness detection. Not user-invocable — loaded by the owner-router agent through its skills frontmatter.",
  "publisher": "jeremylongshore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding"
    ],
    "tags": [
      "skill-md",
      "triage",
      "routing",
      "ownership",
      "precedence",
      "internal-agent-skill",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Internal process for the owner-router agent. Defines the step-by-step procedure for determining likely bug owners using strict 6-level routing precedence with staleness detection. Not user-invocable — loaded by the owner-router agent through its skills frontmatter."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "plugins/mcp/x-bug-triage/skills/owner-routing/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/plugins/mcp/x-bug-triage/skills/owner-routing/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/plugins/mcp/x-bug-triage/skills/owner-routing/SKILL.md"
    },
    "compatibility": "Designed for Claude Code; internal agent-loaded skill (not user-invocable)",
    "allowed_tools": [
      "Read,",
      "Bash(cat:*),",
      "Grep,",
      "Glob"
    ],
    "license": "SEE LICENSE IN LICENSE"
  },
  "instructions": "# Owner Routing Process\n\nStep-by-step procedure for determining the most likely owner/team for each bug cluster using strict 6-level precedence with staleness detection and override memory.\n\n## Overview\n\nLoaded by the `owner-router` agent inside the `x-bug-triage` plugin. Walks each open bug cluster through a deterministic six-level routing precedence (service-owner → oncall → CODEOWNERS → recent assignees → recent committers → fallback mapping), applies confidence modifiers, detects stale signals, and produces a ranked routing recommendation. Honors prior routing overrides recorded in cluster",
  "cost": {
    "context_tokens": 948
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-owner-routing/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.