Skip to content
Back to skills

986 Skill Architecture 7155fc98

ASecurity

Complete guide for architecting complex multi-skill systems using the router/dispatcher pattern. ---

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
code-qualitypythongobashnodetestingdebuggingrefactoringgitapidatabase

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 986-skill_architecture_7155fc98 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 986 Skill Architecture 7155fc98?

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

Security grade badge for 986 Skill Architecture 7155fc98
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-986-skill-architecture-7155fc98/badge)](https://www.skillsdirectory.com/skills/tools-only-986-skill-architecture-7155fc98)

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

SKILL.md
# Skill Architecture Guide: Layering and Splitting

Complete guide for architecting complex multi-skill systems using the router/dispatcher pattern.

---

## Table of Contents

- [Overview](#overview)
- [When to Split Skills](#when-to-split-skills)
- [The Router Pattern](#the-router-pattern)
- [Manual Skill Architecture](#manual-skill-architecture)
- [Best Practices](#best-practices)
- [Complete Examples](#complete-examples)
- [Implementation Guide](#implementation-guide)
- [Troubleshooting](#troubleshooting)

---

## Overview

### The 500-Line Guideline

Claude recommends keeping skill files under **500 lines** for optimal performance. This guideline exists because:

- ✅ **Better parsing** - AI can more effectively understand focused content
- ✅ **Context efficiency** - Only relevant information loaded per task
- ✅ **Maintainability** - Easier to debug, update, and manage
- ✅ **Single responsibility** - Each skill does one thing well

### The Problem with Monolithic Skills

As applications grow complex, developers often create skills that:

- ❌ **Exceed 500 lines** - Too much information for effective parsing
- ❌ **Mix concerns** - Handle multiple unrelated responsibilities
- ❌ **Waste context** - Load entire file even when only small portion is relevant
- ❌ **Hard to maintain** - Changes require careful navigation of large file

### The Solution: Skill Layering

**Skill layering** involves:

1. **Splitting** - Breaking large skill into focused sub-skills
2. **Routing** - Creating master skill that directs queries to appropriate sub-skill
3. **Loading** - Only activating relevant sub-skills per task

**Result:** Build sophisticated applications while maintaining 500-line guideline per skill.

---

## When to Split Skills

### Decision Matrix

| Skill Size | Complexity | Recommendation |
|-----------|-----------|----------------|
| < 500 lines | Single concern | ✅ **Keep monolithic** |
| 500-1000 lines | Related concerns | ⚠️ **Consider splitting** |
| 1000+ lines | Multiple concerns | ❌ **Must split** |

### Split Indicators

**You should split when:**

- ✅ Skill exceeds 500 lines
- ✅ Multiple distinct responsibilities (CRUD, workflows, etc.)
- ✅ Different team members maintain different sections
- ✅ Only portions are relevant to specific tasks
- ✅ Context window frequently exceeded

**You can keep monolithic when:**

- ✅ Under 500 lines
- ✅ Single, cohesive responsibility
- ✅ All content frequently relevant together
- ✅ Simple, focused use case

---

## The Router Pattern

### What is a Router Skill?

A **router skill** (also called **dispatcher** or **hub** skill) is a lightweight master skill that:

1. **Analyzes** the user's query
2. **Identifies** which sub-skill(s) are relevant
3. **Directs** Claude to activate appropriate sub-skill(s)
4. **Coordinates** responses from multiple sub-skills if needed

### How It Works

```
User Query: "How do I book a flight to Paris?"
     ↓
Router Skill: Analyzes keywords → "flight", "book"
     ↓
Activates: flight_booking sub-skill
     ↓
Response: Flight booking guidance (only this skill loaded)
```

### Router Skill Structure

```markdown
# Travel Planner (Router)

## When to Use This Skill

Use for travel planning, booking, and itinerary management.

This is a router skill that directs your questions to specialized sub-skills.

## Sub-Skills Available

### flight_booking
For booking flights, searching airlines, comparing prices, seat selection.
**Keywords:** flight, airline, booking, ticket, departure, arrival

### hotel_reservation
For hotel search, room booking, amenities, check-in/check-out.
**Keywords:** hotel, accommodation, room, reservation, stay

### itinerary_generation
For creating travel plans, scheduling activities, route optimization.
**Keywords:** itinerary, schedule, plan, activities, route

## Routing Logic

Based on your question keywords:
- Flight-related → Activate `flight_booking`
- Hotel-related → Activate `hotel_reservation`
- Planning-related → Activate `itinerary_generation`
- Multiple topics → Activate relevant combination

## Usage Examples

**"Find me a flight to Paris"** → flight_booking
**"Book hotel in Tokyo"** → hotel_reservation
**"Create 5-day Rome itinerary"** → itinerary_generation
**"Plan Paris trip with flights and hotel"** → flight_booking + hotel_reservation + itinerary_generation
```

---

## Manual Skill Architecture

### Example 1: E-Commerce Platform

**Problem:** E-commerce skill is 2000+ lines covering catalog, cart, checkout, orders, and admin.

**Solution:** Split into focused sub-skills with router.

#### Sub-Skills

**1. `ecommerce.md` (Router - 150 lines)**
```markdown
# E-Commerce Platform (Router)

## Sub-Skills
- product_catalog - Browse, search, filter products
- shopping_cart - Add/remove items, quantities
- checkout_payment - Process orders, payments
- order_management - Track orders, returns
- admin_tools - Inventory, analytics

## Routing
product/catalog/search → product_catalog
cart/basket/add/remove → shopping_cart
checkout/payment/billing → checkout_payment
order/track/return → order_management
admin/inventory/analytics → admin_tools
```

**2. `product_catalog.md` (350 lines)**
```markdown
# Product Catalog

## When to Use
Product browsing, searching, filtering, recommendations.

## Quick Reference
- Search products: `search(query, filters)`
- Get details: `getProduct(id)`
- Filter: `filter(category, price, brand)`
...
```

**3. `shopping_cart.md` (280 lines)**
```markdown
# Shopping Cart

## When to Use
Managing cart items, quantities, totals.

## Quick Reference
- Add item: `cart.add(productId, quantity)`
- Update quantity: `cart.update(itemId, quantity)`
...
```

**Result:**
- Router: 150 lines ✅
- Each sub-skill: 200-400 lines ✅
- Total functionality: Unchanged
- Context efficiency: 5x improvement

---

### Example 2: Code Assistant

**Problem:** Code assistant handles debugging, refactoring, documentation, testing - 1800+ lines.

**Solution:** Specialized sub-skills with smart routing.

#### Architecture

```
code_assistant.md (Router - 200 lines)
├── debugging.md (450 lines)
├── refactoring.md (380 lines)
├── documentation.md (320 lines)
└── testing.md (400 lines)
```

#### Router Logic

```markdown
# Code Assistant (Router)

## Routing Keywords

### debugging
error, bug, exception, crash, fix, troubleshoot, debug

### refactoring
refactor, clean, optimize, simplify, restructure, improve

### documentation
docs, comment, docstring, readme, api, explain

### testing
test, unit, integration, coverage, assert, mock
```

---

### Example 3: Data Pipeline

**Problem:** ETL pipeline skill covers extraction, transformation, loading, validation, monitoring.

**Solution:** Pipeline stages as sub-skills.

```
data_pipeline.md (Router)
├── data_extraction.md - Source connectors, API calls
├── data_transformation.md - Cleaning, mapping, enrichment
├── data_loading.md - Database writes, file exports
├── data_validation.md - Quality checks, error handling
└── pipeline_monitoring.md - Logging, alerts, metrics
```

---

## Best Practices

### 1. Single Responsibility Principle

**Each sub-skill should have ONE clear purpose.**

❌ **Bad:** `user_management.md` handles auth, profiles, permissions, notifications
✅ **Good:**
- `user_authentication.md` - Login, logout, sessions
- `user_profiles.md` - Profile CRUD
- `user_permissions.md` - Roles, access control
- `user_notifications.md` - Email, push, alerts

### 2. Clear Routing Keywords

**Make routing keywords explicit and unambiguous.**

❌ **Bad:** Vague keywords like "data", "user", "process"
✅ **Good:** Specific keywords like "login", "authenticate", "extract", "transform"

### 3. Minimize Router Complexity

**Keep router lightweight - just routing logic.**

❌ **Bad:** Router contains actual implementation code
✅ **Good:** Router only contains:
- Sub-skill descriptions
- Routing keywords
- Usage examples
- No implementation details

### 4. Logical Grouping

**Group by responsibility, not by code structure.**

❌ **Bad:** Split by file type (controllers, models, views)
✅ **Good:** Split by feature (user_auth, product_catalog, order_processing)

### 5. Avoid Over-Splitting

**Don't create sub-skills for trivial distinctions.**

❌ **Bad:** Separate skills for "add_user" and "update_user"
✅ **Good:** Single "user_management" skill covering all CRUD

### 6. Document Dependencies

**Explicitly state when sub-skills work together.**

```markdown
## Multi-Skill Operations

**Place order:** Requires coordination between:
1. product_catalog - Validate product availability
2. shopping_cart - Get cart contents
3. checkout_payment - Process payment
4. order_management - Create order record
```

### 7. Maintain Consistent Structure

**Use same SKILL.md structure across all sub-skills.**

Standard sections:
```markdown
# Skill Name

## When to Use This Skill
[Clear description]

## Quick Reference
[Common operations]

## Key Concepts
[Domain terminology]

## Working with This Skill
[Usage guidance]

## Reference Files
[Documentation organization]
```

---

## Complete Examples

### Travel Planner (Full Implementation)

#### Directory Structure

```
skills/
├── travel_planner.md (Router - 180 lines)
├── flight_booking.md (420 lines)
├── hotel_reservation.md (380 lines)
├── itinerary_generation.md (450 lines)
├── travel_insurance.md (290 lines)
└── budget_tracking.md (340 lines)
```

#### travel_planner.md (Router)

```markdown
---
name: travel_planner
description: Travel planning, booking, and itinerary management router
---

# Travel Planner (Router)

## When to Use This Skill

Use for all travel-related planning, bookings, and itinerary management.

This router skill analyzes your travel needs and activates specialized sub-skills.

## Available Sub-Skills

### flight_booking
**Purpose:** Flight search, booking, seat selection, airline comparisons
**Keywords:** flight, airline, plane, ticket, departure, arrival, airport, booking
**Use for:** Finding and booking flights, comparing prices, selecting seats

### hotel_reservation
**Purpose:** Hotel search, room booking, amenities, check-in/out
**Keywords:** hotel, accommodation, room, lodging, reservation, stay, check-in
**Use for:** Finding hotels, booking rooms, checking amenities

### itinerary_generation
**Purpose:** Travel planning, scheduling, route optimization
**Keywords:** itinerary, schedule, plan, route, activities, sightseeing
**Use for:** Creating day-by-day plans, organizing activities

### travel_insurance
**Purpose:** Travel insurance options, coverage, claims
**Keywords:** insurance, coverage, protection, medical, cancellation, claim
**Use for:** Insurance recommendations, comparing policies

### budget_tracking
**Purpose:** Travel budget planning, expense tracking
**Keywords:** budget, cost, expense, price, spending, money
**Use for:** Estimating costs, tracking expenses

## Routing Logic

The router analyzes your question and activates relevant skills:

| Query Pattern | Activated Skills |
|--------------|------------------|
| "Find flights to [destination]" | flight_booking |
| "Book hotel in [city]" | hotel_reservation |
| "Plan [duration] trip to [destination]" | itinerary_generation |
| "Need travel insurance" | travel_insurance |
| "How much will trip cost?" | budget_tracking |
| "Plan complete Paris vacation" | ALL (coordinated) |

## Multi-Skill Coordination

Some requests require multiple skills working together:

### Complete Trip Planning
1. **budget_tracking** - Set budget constraints
2. **flight_booking** - Find flights within budget
3. **hotel_reservation** - Book accommodation
4. **itinerary_generation** - Create daily schedule
5. **travel_insurance** - Recommend coverage

### Booking Modification
1. **flight_booking** - Check flight change fees
2. **hotel_reservation** - Verify cancellation policy
3. **budget_tracking** - Calculate cost impact

## Usage Examples

**Simple (single skill):**
- "Find direct flights to Tokyo" → flight_booking
- "5-star hotels in Paris under $200/night" → hotel_reservation
- "Create 3-day Rome itinerary" → itinerary_generation

**Complex (multiple skills):**
- "Plan week-long Paris trip for 2, budget $3000" → budget_tracking → flight_booking → hotel_reservation → itinerary_generation
- "Cheapest way to visit London next month" → budget_tracking + flight_booking + hotel_reservation

## Quick Reference

### Flight Booking
- Search flights by route, dates, airline
- Compare prices across carriers
- Select seats, meals, baggage

### Hotel Reservation
- Filter by price, rating, amenities
- Check availability, reviews
- Book rooms with cancellation policy

### Itinerary Planning
- Generate day-by-day schedules
- Optimize routes between attractions
- Balance activities with free time

### Travel Insurance
- Compare coverage options
- Understand medical, cancellation policies
- File claims if needed

### Budget Tracking
- Estimate total trip cost
- Track expenses vs budget
- Optimize spending

## Working with This Skill

**Beginners:** Start with single-purpose queries ("Find flights to Paris")
**Intermediate:** Combine 2-3 aspects ("Find flights and hotel in Tokyo")
**Advanced:** Request complete trip planning with multiple constraints

The router handles complexity automatically - just ask naturally!
```

#### flight_booking.md (Sub-Skill)

```markdown
---
name: flight_booking
description: Flight search, booking, and airline comparisons
---

# Flight Booking

## When to Use This Skill

Use when searching for flights, comparing airlines, booking tickets, or managing flight reservations.

## Quick Reference

### Searching Flights

**Search by route:**
```
Find flights from [origin] to [destination]
Examples:
- "Flights from NYC to London"
- "JFK to Heathrow direct flights"
```

**Search with dates:**
```
Flights from [origin] to [destination] on [date]
Examples:
- "Flights from LAX to Paris on June 15"
- "Return flights NYC to Tokyo, depart May 1, return May 15"
```

**Filter by preferences:**
```
[direct/nonstop] flights from [origin] to [destination]
[airline] flights to [destination]
Cheapest/fastest flights to [destination]

Examples:
- "Direct flights from Boston to Dublin"
- "Delta flights to Seattle"
- "Cheapest flights to Miami next month"
```

### Booking Process

1. **Search** - Find flights matching criteria
2. **Compare** - Review prices, times, airlines
3. **Select** - Choose specific flight
4. **Customize** - Add seat, baggage, meals
5. **Confirm** - Book and receive confirmation

### Price Comparison

Compare across:
- Airlines (Delta, United, American, etc.)
- Booking sites (Expedia, Kayak, etc.)
- Direct vs connections
- Dates (flexible date search)
- Classes (Economy, Business, First)

### Seat Selection

Options:
- Window, aisle, middle
- Extra legroom
- Bulkhead, exit row
- Section preferences (front, middle, rear)

## Key Concepts

### Flight Types
- **Direct** - No stops, same plane
- **Nonstop** - Same as direct
- **Connecting** - One or more stops, change planes
- **Multi-city** - Different return city
- **Open-jaw** - Different origin/destination cities

### Fare Classes
- **Basic Economy** - Cheapest, most restrictions
- **Economy** - Standard coach
- **Premium Economy** - Extra space, amenities
- **Business** - Lie-flat seats, premium service
- **First Class** - Maximum luxury

### Booking Terms
- **Fare rules** - Cancellation, change policies
- **Baggage allowance** - Checked and carry-on limits
- **Layover** - Time between connecting flights
- **Codeshare** - Same flight, different airline numbers

## Working with This Skill

### For Beginners
Start with simple searches:
1. State origin and destination
2. Provide travel dates
3. Mention any preferences (direct, airline)

The skill will guide you through options step-by-step.

### For Intermediate Users
Provide more details upfront:
- Preferred airlines or alliances
- Class of service
- Maximum connections
- Price range
- Specific times of day

### For Advanced Users
Complex multi-city routing:
- Multiple destinations
- Open-jaw bookings
- Award ticket searches
- Specific aircraft types
- Detailed fare class codes

## Reference Files

All flight booking documentation is in `references/`:

- `flight_search.md` - Search strategies, filters
- `airline_policies.md` - Carrier-specific rules
- `booking_process.md` - Step-by-step booking
- `seat_selection.md` - Seating guides
- `fare_classes.md` - Ticket types, restrictions
- `baggage_rules.md` - Luggage policies
- `frequent_flyer.md` - Loyalty programs
```

---

## Implementation Guide

### Step 1: Identify Split Points

**Analyze your monolithic skill:**

1. List all major responsibilities
2. Group related functionality
3. Identify natural boundaries
4. Count lines per group

**Example:**

```
user_management.md (1800 lines)
├── Authentication (450 lines) ← Sub-skill
├── Profile CRUD (380 lines) ← Sub-skill
├── Permissions (320 lines) ← Sub-skill
├── Notifications (280 lines) ← Sub-skill
└── Activity logs (370 lines) ← Sub-skill
```

### Step 2: Extract Sub-Skills

**For each identified group:**

1. Create new `{subskill}.md` file
2. Copy relevant content
3. Add proper frontmatter
4. Ensure 200-500 line range
5. Remove dependencies on other groups

**Template:**

```markdown
---
name: {subskill_name}
description: {clear, specific description}
---

# {Subskill Title}

## When to Use This Skill
[Specific use cases]

## Quick Reference
[Common operations]

## Key Concepts
[Domain terms]

## Working with This Skill
[Usage guidance by skill level]

## Reference Files
[Documentation structure]
```

### Step 3: Create Router

**Router skill template:**

```markdown
---
name: {router_name}
description: {overall system description}
---

# {System Name} (Router)

## When to Use This Skill
{High-level description}

This is a router skill that directs queries to specialized sub-skills.

## Available Sub-Skills

### {subskill_1}
**Purpose:** {What it does}
**Keywords:** {routing, keywords, here}
**Use for:** {When to use}

### {subskill_2}
[Same pattern]

## Routing Logic

Based on query keywords:
- {keyword_group_1} → {subskill_1}
- {keyword_group_2} → {subskill_2}
- Multiple matches → Coordinate relevant skills

## Multi-Skill Operations

{Describe when multiple skills work together}

## Usage Examples

**Single skill:**
- "{example_query_1}" → {subskill_1}
- "{example_query_2}" → {subskill_2}

**Multiple skills:**
- "{complex_query}" → {subskill_1} + {subskill_2}
```

### Step 4: Define Routing Keywords

**Best practices:**

- Use 5-10 keywords per sub-skill
- Include synonyms and variations
- Be specific, not generic
- Test with real queries

**Example:**

```markdown
### user_authentication
**Keywords:**
- Primary: login, logout, signin, signout, authenticate
- Secondary: password, credentials, session, token
- Variations: log-in, log-out, sign-in, sign-out
```

### Step 5: Test Routing

**Create test queries:**

```markdown
## Test Routing (Internal Notes)

Should route to user_authentication:
✓ "How do I log in?"
✓ "User login process"
✓ "Authentication failed"

Should route to user_profiles:
✓ "Update user profile"
✓ "Change profile picture"

Should route to multiple skills:
✓ "Create account and set up profile" → user_authentication + user_profiles
```

### Step 6: Update References

**In each sub-skill:**

1. Link to router for context
2. Reference related sub-skills
3. Update navigation paths

```markdown
## Related Skills

This skill is part of the {System Name} suite:
- **Router:** {router_name} - Main entry point
- **Related:** {related_subskill} - For {use case}
```

---

## Troubleshooting

### Router Not Activating Correct Sub-Skill

**Problem:** Query routed to wrong sub-skill

**Solutions:**
1. Add missing keywords to router
2. Use more specific routing keywords
3. Add disambiguation examples
4. Test with variations of query phrasing

### Sub-Skills Too Granular

**Problem:** Too many tiny sub-skills (< 200 lines each)

**Solution:**
- Merge related sub-skills
- Use sections within single skill instead
- Aim for 300-500 lines per sub-skill

### Sub-Skills Too Large

**Problem:** Sub-skills still exceeding 500 lines

**Solution:**
- Further split into more granular concerns
- Consider 3-tier architecture (router → category routers → specific skills)
- Move reference documentation to separate files

### Cross-Skill Dependencies

**Problem:** Sub-skills frequently need each other

**Solutions:**
1. Create shared reference documentation
2. Use router to coordinate multi-skill operations
3. Reconsider split boundaries (may be too granular)

### Router Logic Too Complex

**Problem:** Router has extensive conditional logic

**Solution:**
- Simplify to keyword-based routing
- Create intermediate routers (2-tier)
- Document explicit routing table

**Example 2-tier:**

```
main_router.md
├── user_features_router.md
│   ├── authentication.md
│   ├── profiles.md
│   └── permissions.md
└── admin_features_router.md
    ├── analytics.md
    ├── reporting.md
    └── configuration.md
```

---

## Adapting Auto-Generated Routers

Skill Seeker auto-generates router skills for large documentation using `generate_router.py`.

**You can adapt this for manual skills:**

### 1. Study the Pattern

```bash
# Generate a router from documentation configs
python3 cli/split_config.py configs/godot.json --strategy router
python3 cli/generate_router.py configs/godot-*.json

# Examine generated router SKILL.md
cat output/godot/SKILL.md
```

### 2. Extract the Template

The generated router has:
- Sub-skill descriptions
- Keyword-based routing
- Usage examples
- Multi-skill coordination notes

### 3. Customize for Your Use Case

Replace documentation-specific content with your application logic:

```markdown
# Generated (documentation):
### godot-scripting
GDScript programming, signals, nodes
Keywords: gdscript, code, script, programming

# Customized (your app):
### order_processing
Process customer orders, payments, fulfillment
Keywords: order, purchase, payment, checkout, fulfillment
```

---

## Summary

### Key Takeaways

1. ✅ **500-line guideline** is important for optimal Claude performance
2. ✅ **Router pattern** enables sophisticated applications while staying within limits
3. ✅ **Single responsibility** - Each sub-skill does one thing well
4. ✅ **Context efficiency** - Only load what's needed per task
5. ✅ **Proven approach** - Already used successfully for large documentation

### When to Apply This Pattern

**Do use skill layering when:**
- Skill exceeds 500 lines
- Multiple distinct responsibilities
- Different parts rarely used together
- Team wants modular maintenance

**Don't use skill layering when:**
- Skill under 500 lines
- Single, cohesive responsibility
- All content frequently relevant together
- Simplicity is priority

### Next Steps

1. Review your existing skills for split candidates
2. Create router + sub-skills following templates above
3. Test routing with real queries
4. Refine keywords based on usage
5. Iterate and improve

---

## Additional Resources

- **Auto-Generated Routers:** See `docs/LARGE_DOCUMENTATION.md` for automated splitting of scraped documentation
- **Router Implementation:** See `src/skill_seekers/cli/generate_router.py` for reference implementation
- **Examples:** See configs in `configs/` for real-world router patterns

**Questions or feedback?** Open an issue on GitHub!

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.