Skillsteam-routing
T

team-routing

Detect domain from context and find appropriate team member

WellApp-ai
306 stars
6.1k downloads
Updated 2w ago

Readme

team-routing follows the SKILL.md standard. Use the install command to add it to your agent stack.

---
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)

Install

Requires askill CLI v1.0+

Metadata

LicenseUnknown
Version-
Updated2w ago
PublisherWellApp-ai

Tags

apidatabasegithubsecurity