Routes development tasks to the correct language or framework expert agent. Use when user requests code review, implementation, refactoring, or debugging.
Scanned 9/9/2026
Install to Claude Code
npx -y skills add baekenough/oh-my-customcode --skill dev-lead-routing --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Dev Lead Routing?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/baekenough-dev-lead-routing-oh-my-customcode)More formats (shields.io, HTML) on the badges page.
---
name: dev-lead-routing
description: Routes development tasks to the correct language or framework expert agent. Use when user requests code review, implementation, refactoring, or debugging.
scope: core
user-invocable: false
context: fork
---
## Mandatory delegation directive (R010 bypassPermissions)
When this skill spawns a subagent via the Agent tool, the spawned prompt MUST include this directive verbatim (or equivalent):
> 이 스킬이 Agent tool로 서브에이전트를 스폰할 때 mode: "bypassPermissions"를 반드시 포함한다. 서브에이전트는 .claude/ 경로에 직접 Write/Edit/Bash를 사용한다(/tmp 우회 불필요, CC v2.1.121+). See R010.
This directive is preserved inline because Agent-tool prompt synthesis can drop SKILL.md notes; inline mandatory directives survive (#1046 lesson).
# Dev Lead Routing
## Engineers
| Type | Agents |
|------|--------|
| Language | lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-java-expert |
| Frontend | fe-vercel-agent, fe-vuejs-agent, fe-svelte-agent, fe-flutter-agent, fe-design-expert |
| Backend | be-fastapi-expert, be-springboot-expert, be-go-backend-expert, be-nestjs-expert, be-express-expert, be-django-expert |
| Tooling | tool-npm-expert, tool-optimizer, tool-bun-expert |
| Database | db-supabase-expert, db-postgres-expert, db-redis-expert, db-alembic-expert |
| Architect | arch-documenter, arch-speckit-agent |
| Security | sec-codeql-expert |
| Infra | infra-docker-expert, infra-aws-expert |
| Slack | slack-cli-expert |
## File Extension Mapping
| Extension | Agent |
|-----------|-------|
| `.go` | lang-golang-expert |
| `.py` | lang-python-expert |
| `.rs` | lang-rust-expert |
| `.kt`, `.kts` | lang-kotlin-expert |
| `.ts`, `.tsx` | lang-typescript-expert |
| `.java` | lang-java-expert |
| `.js/.jsx` (React) | fe-vercel-agent |
| `.vue` | fe-vuejs-agent |
| `.svelte` | fe-svelte-agent |
| `.dart`, `pubspec.yaml` | fe-flutter-agent |
| `.sql` (PG) | db-postgres-expert |
| `.sql` (Supabase) | db-supabase-expert |
| `alembic.ini`, `alembic/versions/*.py` | db-alembic-expert |
| `Dockerfile`, `*.dockerfile` | infra-docker-expert |
| `*.tf`, `*.tfvars` | infra-aws-expert |
| `*.yaml`, `*.yml` (CloudFormation) | infra-aws-expert |
## Keyword Mapping
| Keywords | Agent |
|----------|-------|
| go, golang | lang-golang-expert |
| python, py | lang-python-expert |
| rust | lang-rust-expert |
| kotlin | lang-kotlin-expert |
| typescript, ts | lang-typescript-expert |
| java | lang-java-expert |
| react, next.js, vercel | fe-vercel-agent |
| vue | fe-vuejs-agent |
| svelte | fe-svelte-agent |
| flutter, dart, riverpod, bloc, widget | fe-flutter-agent |
| design, typography, color, motion, ux writing, ui design, "design system", "design review", impeccable | fe-design-expert |
| fastapi | be-fastapi-expert |
| django | be-django-expert |
| spring, springboot | be-springboot-expert |
| nestjs | be-nestjs-expert |
| express | be-express-expert |
| npm | tool-npm-expert |
| optimize, bundle | tool-optimizer |
| bun | tool-bun-expert |
| postgres, postgresql, psql, pg_stat | db-postgres-expert |
| redis, cache, pub/sub, sorted set | db-redis-expert |
| supabase, rls, edge function | db-supabase-expert |
| alembic, migration, db revision, db upgrade, db downgrade | db-alembic-expert |
| docker, dockerfile, container, compose | infra-docker-expert |
| aws, cloudformation, vpc, iam, s3, lambda, cdk, terraform | infra-aws-expert |
| security, codeql, cve, vulnerability, sarif, sast, security audit | sec-codeql-expert |
| architecture, adr, openapi, swagger, diagram | arch-documenter |
| spec, specification, tdd, requirements | arch-speckit-agent |
| slack, slack-cli, slack app, slack deploy, slack trigger, slack datastore | slack-cli-expert |
## Model Selection
| Task | Model |
|------|-------|
| Architecture analysis | opus |
| Code review/implementation | sonnet |
| Quick validation/search | haiku |
## Routing Decision (Priority Order)
Before selecting an expert agent, evaluate in this order:
### Step 1: Agent Teams Eligibility (R018)
Check if Agent Teams is available — `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` **AND** `TeamCreate` present in the tool list. The env var alone is NOT sufficient, and `SendMessage` presence is not evidence of Teams (see R018 Detection).
| Scenario | Preferred |
|----------|-----------|
| Single-language review | Task Tool |
| Multi-language code review (3+) | Agent Teams |
| Code review + fix cycle | Agent Teams |
| Cross-layer debugging (FE + BE + DB) | Agent Teams |
| Simple file search/validation | Task Tool |
When Detection resolves to **No**, skip this step — route via the Agent tool under R009/R010.
### Step 2: Expert Agent Selection
Route to appropriate language/framework expert based on file extension and keyword mapping.
> **Permission Mode**: When spawning agents via Agent tool, always pass `mode: "bypassPermissions"`. The Agent tool default (`acceptEdits`) overrides agent frontmatter `permissionMode`, causing permission prompts during unattended execution.
### Step 4: Ontology-RAG Enrichment (R019)
If `get_agent_for_task` MCP tool is available, call it with the original query and inject `suggested_skills` into the agent prompt. Skip silently on failure.
### Step 4b: Wiki-RAG Enrichment
For ambiguous routing (confidence < 90%), query the wiki for context:
1. Search `wiki/index.yaml` for agent/skill pages matching detected keywords
2. If wiki suggests a specific skill or guide for the task, inject as `suggested_context` in the agent prompt
3. This helps agents receive relevant guide references automatically
```
wiki-rag query: "{user_request}" → wiki agent/skill pages → suggested_context injection
```
Advisory only — skip silently if wiki unavailable.
### Step 5: Soul Injection (R006)
If the selected agent has `soul: true` in frontmatter, read and prepend `.claude/agents/souls/{agent-name}.soul.md` content to the prompt. Skip silently if file doesn't exist.
## Routing Rules
Multi-language: detect all languages, route to parallel experts (max 4). Single-language: route to matching expert. Cross-layer (frontend + backend): multiple experts in parallel.
## No Match Fallback
When file extension or keyword doesn't match any existing agent:
```
User Input → No matching development agent
↓
Detect: File extension (.rb, .swift, .php, etc.) or language keyword
↓
Delegate to mgr-creator with context:
domain: detected language/framework
type: sw-engineer
keywords: extracted from user input
file_patterns: detected extensions
skills: auto-discover from .claude/skills/
guides: auto-discover from templates/guides/
```
**Examples of dynamic creation triggers:**
- Unrecognized file extension (e.g., `.rb` → Ruby expert, `.swift` → Swift expert)
- New framework keyword (e.g., "Flutter 앱 리뷰해줘", "Rails API 만들어줘")
- Language detected but no specialist exists
Not user-invocable. Auto-triggered on development intent.
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!