Detect domain from context and find appropriate team member
Scanned 9/1/2026
Install to Claude Code
npx -y skills add WellApp-ai/Well --skill team-routing --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Team Routing?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/wellapp-ai-team-routing)More formats (shields.io, HTML) on the badges page.
---
name: team-routing
description: Detect domain from context and find appropriate team member
---
# 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:**
```
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
```
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
```
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:
1. Query current open PRs:
```bash
gh pr list --state open --author [github_handle] --json number | jq length
```
2. Compare against Max_Open_PRs threshold
3. Skip if at or over capacity
### Phase 5: Fallback Logic
If no available primary owner:
1. **Backup Owners:** Query Skills table for overlapping skills
2. **Skills Match:** Match changed file extensions to skill file patterns
3. **No Match:** Return warning: "No available reviewer found for domain [X]"
---
## Output
Present findings as:
```
## 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)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!