Skip to content
Back to skills

Team Routing

ASecurity

Detect domain from context and find appropriate team member

  • 342 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 1, 2026
toolsbashgitapidatabase

Works with

  • api

Security analysis

A100/100

Scanned September 1, 2026

npx -y skills add WellApp-ai/Well --skill team-routing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Team Routing?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Team Routing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wellapp-ai-team-routing/badge)](https://www.skillsdirectory.com/skills/wellapp-ai-team-routing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.