Skip to content

User Disambiguation ​

How VERA identifies a user when a tool needs a target person.


Resolution order ​

When a tool receives a user reference, VERA resolves it in this order:

  1. Slack mention (user_slack_id or pm_slack_id) — always resolved via mention-matching, never name-matching
  2. Internal ID (user_id) — direct integer lookup
  3. Name string (user_name, pm_name, vendor_name, person, current_name) — exact-match or dialing menu

Mention forms (Rule A — bulletproof) ​

When the message contains any of the following, VERA extracts the Slack user ID directly and looks up the user without any name matching:

FormExample
Standard mention<@U0ADQ6UAVKR>
Mention with label<@U0ADQ6UAVKR|alice>
Bare Slack user IDU0ADQ6UAVKR
Markdown profile link[@alice](https://workspace.slack.com/team/U0ADQ6UAVKR)
Bare profile URLhttps://workspace.slack.com/team/U0ADQ6UAVKR
At-handle@alice (requires Slack API lookup)
Email mention<mailto:alice@example.com|alice@example.com> (requires Slack API lookup)

If the Slack user ID is extracted but that person is not registered in VERA, the error is exact: "that Slack user (UXXXXXXXX) isn't registered in VERA yet." VERA never falls back to a name search.


Name-based resolution (Rule B — exact or menu) ​

When a plain name is provided (e.g. user_name: "Alice"), VERA applies a two-step process:

Step 1 — Exact match (case-insensitive) If exactly one user's name matches the query, VERA proceeds without confirmation. If two users have the same name, a dialing menu is shown for both.

Step 2 — Fuzzy candidates (always a menu, never auto-pick) If no exact match is found, VERA collects candidates via:

  • Substring match (query contains stored name or vice versa)
  • Word-overlap match (any word in the query matches a word in a stored name)
  • Levenshtein distance ≤ 2 and ≤ 30% of the longer string

Even if only one fuzzy candidate is found, VERA shows a numbered menu. It never auto-picks a near-miss.


Dialing menus ​

When VERA cannot auto-resolve a name, it returns a numbered list:

Multiple matches for "Al". Reply with the number:

1. Alice (owner)
2. Alan (user)

Reply with the number (e.g. 1). VERA resumes the original action immediately — no re-paraphrase, no re-confirmation.

The pending action expires after 10 minutes. If you send any other message in the meantime, the pending action is discarded.


No match ​

If no candidates are found at all, VERA returns:

❌ Failed: no user named "Zephyr" exists. Check the spelling or add them first.

Use list users to see the current roster.