Team Routing Skill
Automatically detect domain from branch names or file paths and find the appropriate reviewer.
When to Use
- •Push PR mode: auto-assign reviewer
- •Init mode: show domain context
- •Any mode needing domain owner lookup
Phases
Phase 1: Extract Keywords
Extract domain keywords from context:
From branch name:
code
feature/tables-filter → keywords: ["tables"] fix/auth-token-expired → keywords: ["auth"] chore/settings-refactor → keywords: ["settings"]
From changed files:
bash
git diff --name-only origin/develop | head -20
Match file paths against known patterns:
- •
apps/web/features/tables/→ "tables" - •
apps/api/routes/auth/→ "auth" - •
apps/web/features/settings/→ "settings"
Phase 2: Query Notion Domains Database
code
API-query-database: [Domains-DB-ID]
Filter: Keywords contains [extracted-keyword]
OR Codebase_Paths contains [file-pattern]
Expected result:
- •Domain name
- •Topology type (stream-aligned, platform, enabling, complicated-subsystem)
- •Primary keywords
Phase 3: Query Team Capabilities
code
API-query-database: Team Capabilities
Filter: Primary_Domain matches [domain-name]
AND Availability = "Available"
Sort: Open_PR_Count ASC
Expected result:
- •Person name
- •GitHub handle
- •Max Open PRs
- •Current Open PR count
Phase 4: Check Availability
For each candidate:
- •Query current open PRs:
bash
gh pr list --state open --author [github_handle] --json number | jq length
- •Compare against Max_Open_PRs threshold
- •Skip if at or over capacity
Phase 5: Fallback Logic
If no available primary owner:
- •Backup Owners: Query Skills table for overlapping skills
- •Skills Match: Match changed file extensions to skill file patterns
- •No Match: Return warning: "No available reviewer found for domain [X]"
Output
Present findings as:
code
## Domain Detection **Branch:** [branch-name] **Detected Domain:** [domain-name] **Topology:** [stream-aligned | platform | enabling | complicated-subsystem] ### Reviewer Assignment **Primary Owner:** @[github_handle] ([person_name]) **Availability:** [Available | At capacity (X/Y PRs)] **Assignment:** [Assigned | Fallback to @backup | No available reviewer]
Integration
This skill is invoked by:
- •
push-pr.mdc- Phase 1.2 (Find Reviewer) - •
init.mdc- Domain context display
Notion Databases Required:
- •Domains (keywords, codebase paths)
- •Team Capabilities (person, domain, availability, max PRs)
- •Skills (file patterns for fallback matching)