Route issues to who actually takes them
Every time a VS Code engineer hands an issue on, Handoff Graph remembers it as an edge in a graph. New issues get routed, kept, or sent to a human using that memory, and every decision shows the handoff path behind it.
Recent VS Code issues
Pick an issue and route it. The graph narrows the candidates from handoff memory, then Jev scores each one against the issue text.
The same AI, with and without memory
Real VS Code triage, replayed in time order. Each issue is routed at the moment VS Code's own classifier first assigned it, using only what was known then. Two held-out periods, each run once with a frozen design.
VS Code's classifier is a dedicated system (classifier-deep) with per-category confidence thresholds and a hand-maintained ownership file, shown for scale. Handoff Graph does not beat it on a single first guess. On the issues it routes, the two are right equally often, within 0.2 points.
What the memory knows
The learner agent writes one edge per handoff: who passed the issue, who took it, and when. These are the edges the router reads, linked to the real issues behind them.
Recorded decisions, issue by issue
A sample of the scored held-out decisions, exactly as recorded. The owner is whoever still had the issue weeks later.
What it doesn't do
Stated plainly, because the numbers are only useful with the limits next to them.
It doesn't beat the classifier on a first guess
74% vs 77% in summer, 58% vs 62% in spring. Even perfect knowledge of which issues get forwarded tops out near 85%: most handoffs depend on workload and absences you can't see when an issue arrives.
Memory about people goes stale
The memory's best alternative named the eventual owner of 38% of bounced issues in July and August, and 13% a month later. So it keeps learning from every new handoff.
It needs reassignments to learn from
All evidence comes from one repository. VS Code reassigns 16% of issues. Next.js, PyTorch and Rust reassign 0–1%, so there would be little to learn there.