--- name: smart-routing description: > Intelligent request routing for /toh command. Analyzes user intent, assesses confidence, detects IDE environment, and routes to the appropriate agent(s). Memory-first approach ensures context awareness. Triggers: /toh command, natural language requests, ambiguous inputs. --- # Smart Routing Skill Intelligent routing engine for the `/toh` smart command. Routes any natural language request to the right agent(s). --- ## ๐Ÿง  Routing Pipeline ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ USER REQUEST โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ STEP 0: MEMORY CHECK (ALWAYS FIRST!) โ”‚ โ”‚ โ”œโ”€โ”€ Read .toh/memory/active.md โ”‚ โ”‚ โ”œโ”€โ”€ Read .toh/memory/summary.md โ”‚ โ”‚ โ”œโ”€โ”€ Read .toh/memory/decisions.md โ”‚ โ”‚ โ””โ”€โ”€ Build context understanding โ”‚ โ”‚ โ”‚ โ”‚ STEP 1: INTENT CLASSIFICATION โ”‚ โ”‚ โ”œโ”€โ”€ Pattern matching (keywords, phrases) โ”‚ โ”‚ โ”œโ”€โ”€ Context inference (from memory) โ”‚ โ”‚ โ””โ”€โ”€ Scope detection (simple/complex) โ”‚ โ”‚ โ”‚ โ”‚ STEP 2: CONFIDENCE SCORING โ”‚ โ”‚ โ”œโ”€โ”€ HIGH (80%+) โ†’ Direct execution โ”‚ โ”‚ โ”œโ”€โ”€ MEDIUM (50-80%) โ†’ Plan Agent first โ”‚ โ”‚ โ””โ”€โ”€ LOW (<50%) โ†’ Ask for clarification โ”‚ โ”‚ โ”‚ โ”‚ STEP 3: IDE DETECTION โ”‚ โ”‚ โ”œโ”€โ”€ Claude Code โ†’ Parallel execution enabled โ”‚ โ”‚ โ””โ”€โ”€ Other IDEs โ†’ Sequential execution only โ”‚ โ”‚ โ”‚ โ”‚ STEP 4: AGENT SELECTION & EXECUTION โ”‚ โ”‚ โ””โ”€โ”€ Route to appropriate agent(s) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` --- ## ๐Ÿ“Š Intent Classification Matrix ### Primary Patterns โ†’ Agent Mapping | Pattern Category | Keywords (EN) | Keywords (TH) | Primary Agent | Confidence | |------------------|---------------|---------------|---------------|------------| | **Create UI** | create, add, make, build + page/component/UI | เธชเธฃเน‰เธฒเธ‡, เน€เธžเธดเนˆเธก, เธ—เธณ + เธซเธ™เน‰เธฒ/component | UI Agent | HIGH | | **Add Logic** | logic, state, function, hook, validation | logic, state, function, เน€เธžเธดเนˆเธก logic | Dev Agent | HIGH | | **Fix Bug** | bug, error, broken, fix, not working | bug, error, เธžเธฑเธ‡, เน„เธกเนˆเธ—เธณเธ‡เธฒเธ™, เนเธเน‰ | Fix Agent | HIGH | | **Improve Design** | prettier, beautiful, design, polish, style | เธชเธงเธข, design, เธ›เธฃเธฑเธš design | Design Agent | HIGH | | **Testing** | test, check, verify | test, เธ—เธ”เธชเธญเธš, เน€เธŠเน‡เธ„ | Test Agent | HIGH | | **Connect Backend** | connect, database, Supabase, API, backend | เน€เธŠเธทเนˆเธญเธก, database, Supabase | Connect Agent | HIGH | | **Deploy** | deploy, ship, production, publish | deploy, ship, เธ‚เธถเน‰เธ™ production | Ship Agent | HIGH | | **LINE Platform** | LINE, LIFF, Mini App | LINE, LIFF | LINE Agent | HIGH | | **Mobile Platform** | mobile, iOS, Android, Expo, React Native | mobile, เธกเธทเธญเธ–เธทเธญ | Mobile Agent | HIGH | | **New Project** | new project, start, build app, create system | project เนƒเธซเธกเนˆ, เธชเธฃเน‰เธฒเธ‡ app | Vibe Agent | HIGH | | **Planning** | plan, analyze, PRD, architecture | เธงเธฒเธ‡เนเธœเธ™, เธงเธดเน€เธ„เธฃเธฒเธฐเธซเนŒ | Plan Agent | HIGH | | **AI/Prompt** | prompt, AI, chatbot, system prompt | prompt, AI, chatbot | Dev Agent + prompt-optimizer | HIGH | | **Continue** | continue, resume, go on | เธ—เธณเธ•เนˆเธญ, เธ•เนˆเธญ | Memory โ†’ Last Agent | MEDIUM | | **Complex Request** | Multiple features, system, e-commerce, etc. | เธฃเธฐเธšเธš + เธซเธฅเธฒเธข features | Plan Agent | MEDIUM | | **Vague Request** | help, fix it, make better (without context) | เธŠเนˆเธงเธขเธ”เน‰เธงเธข, เนเธเน‰เธ—เธต | Ask Clarification | LOW | --- ## ๐ŸŽฏ Confidence Scoring Algorithm ```typescript interface ConfidenceFactors { keywordMatch: number; // 0-40 points contextClarity: number; // 0-30 points memorySupport: number; // 0-20 points scopeDefinition: number; // 0-10 points } function calculateConfidence(request: string, memory: Memory): number { let score = 0; // Keyword matching (0-40 points) // Strong match with primary patterns = 40 // Partial match = 20 // No match = 0 score += keywordMatchScore(request); // Context clarity (0-30 points) // Specific page/component mentioned = 30 // General area mentioned = 15 // No specifics = 0 score += contextClarityScore(request); // Memory support (0-20 points) // Request relates to active task = 20 // Request relates to project = 10 // No memory context = 0 score += memorySupportScore(request, memory); // Scope definition (0-10 points) // Single clear task = 10 // Multiple related tasks = 5 // Unclear scope = 0 score += scopeDefinitionScore(request); return score; // 0-100 } // Thresholds const HIGH_CONFIDENCE = 80; // Execute directly const MEDIUM_CONFIDENCE = 50; // Route to Plan Agent // Below 50 = Ask for clarification ``` --- ## ๐Ÿ–ฅ๏ธ IDE Detection ### Detection Method ```typescript function detectIDE(): 'claude-code' | 'cursor' | 'gemini' | 'codex' | 'unknown' { // Check for IDE-specific markers // Claude Code detection if (hasClaudeCodeMarkers()) { return 'claude-code'; } // Cursor detection if (hasCursorRules()) { return 'cursor'; } // Gemini CLI detection if (hasGeminiConfig()) { return 'gemini'; } // Codex CLI detection if (hasCodexConfig()) { return 'codex'; } return 'unknown'; } ``` ### Execution Strategy by IDE | IDE | Multi-Agent Strategy | Reason | |-----|---------------------|--------| | **Claude Code** | Parallel (spawn sub-agents) | Native support for parallel tool calls | | **Cursor** | Sequential | More predictable, follows diff flow | | **Gemini CLI** | Sequential | Safer execution model | | **Codex CLI** | Sequential | Linear task processing | | **Unknown** | Sequential (default) | Safe fallback | --- ## ๐Ÿ”„ Routing Decision Tree ``` Request arrives โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 1. Load Memory Context โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 2. Is request "continue"/"เธ—เธณเธ•เนˆเธญ"? โ”‚ โ”œโ”€โ”€ YES โ†’ Read memory, resume task โ”‚ โ””โ”€โ”€ NO โ†’ Continue analysis โ”‚ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 3. Calculate Confidence Score โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”œโ”€โ”€ Score >= 80 (HIGH) โ”‚ โ””โ”€โ†’ Select agent based on intent โ”‚ โ””โ”€โ†’ Execute directly โ”‚ โ”œโ”€โ”€ Score 50-79 (MEDIUM) โ”‚ โ””โ”€โ†’ Route to Plan Agent โ”‚ โ””โ”€โ†’ Plan Agent analyzes & routes โ”‚ โ””โ”€โ”€ Score < 50 (LOW) โ””โ”€โ†’ Ask clarifying question โ””โ”€โ†’ Wait for user response ``` --- ## ๐Ÿ“‹ Clarification Patterns ### When to Ask | Situation | Example | Action | |-----------|---------|--------| | No verb/action | "the login" | Ask: "What would you like to do with login?" | | No target | "make it work" | Ask: "Which page/component should I fix?" | | Multiple interpretations | "improve it" | Ask: "Design, performance, or features?" | | Missing context + no memory | "fix it" | Ask: "What's broken? Describe the issue." | ### When NOT to Ask | Situation | Example | Action | |-----------|---------|--------| | Clear intent | "create login page" | Execute directly | | Memory provides context | "continue" + active task exists | Resume from memory | | Reasonable default exists | "add a button" | Add to current page context | --- ## ๐ŸŽจ Skill Loading by Intent | Detected Intent | Skills to Load | |-----------------|----------------| | New Project | vibe-orchestrator, design-mastery, business-context, response-format | | Create UI | ui-first-builder, design-excellence, response-format | | Add Logic | dev-engineer, error-handling, response-format | | Fix Bug | debug-protocol, error-handling, response-format | | Connect Backend | backend-engineer, integrations, response-format | | Improve Design | design-excellence, design-mastery, response-format | | AI/Chatbot | prompt-optimizer, dev-engineer, response-format | | Testing | test-engineer, error-handling, response-format | | Planning | plan-orchestrator, business-context, response-format | **Note:** `response-format` skill is ALWAYS loaded for proper output formatting. --- ## ๐Ÿ’พ Memory Integration ### Pre-Routing Memory Check ```markdown Before routing, ALWAYS: 1. Read .toh/memory/active.md - Current task context - In-progress work - Blockers 2. Read .toh/memory/summary.md - Project overview - Completed features - Tech stack used 3. Read .toh/memory/decisions.md - Past architectural decisions - Design choices - Naming conventions Use memory to: - Boost confidence (if request matches active work) - Provide context (for ambiguous "it" references) - Maintain consistency (follow established patterns) ``` ### Post-Execution Memory Save ```markdown After routing completes, ALWAYS: 1. Update .toh/memory/active.md - Mark completed items - Update current focus - Set next steps 2. Add to .toh/memory/decisions.md - If new decisions were made 3. Update .toh/memory/summary.md - If feature was completed โš ๏ธ NEVER finish without saving memory! ``` --- ## ๐Ÿ“Œ Examples ### Example 1: High Confidence โ†’ Direct ``` Request: "/toh เธชเธฃเน‰เธฒเธ‡เธซเธ™เน‰เธฒ dashboard" Analysis: - Keyword match: "เธชเธฃเน‰เธฒเธ‡" + "เธซเธ™เน‰เธฒ" = Create UI (40 pts) - Context clarity: "dashboard" = specific page (30 pts) - Memory: Project has other pages (15 pts) - Scope: Single page (10 pts) Total: 95 pts = HIGH Route: UI Agent (direct) ``` ### Example 2: Medium Confidence โ†’ Plan First ``` Request: "/toh build e-commerce" Analysis: - Keyword match: "build" = Create (40 pts) - Context clarity: "e-commerce" = general concept (10 pts) - Memory: New project (0 pts) - Scope: Multiple features (0 pts) Total: 50 pts = MEDIUM Route: Plan Agent first โ†’ then execute plan ``` ### Example 3: Low Confidence โ†’ Ask ``` Request: "/toh fix it" Analysis: - Keyword match: "fix" (20 pts) - Context clarity: "it" = unclear (0 pts) - Memory: No recent bugs (0 pts) - Scope: Unknown (0 pts) Total: 20 pts = LOW Action: Ask "What would you like me to fix? Please describe the issue." ``` --- ## โš ๏ธ Critical Rules 1. **Memory ALWAYS first** - Never route without checking context 2. **Confidence drives action** - Trust the scoring system 3. **Plan Agent is your friend** - When in doubt, route to Plan 4. **IDE awareness matters** - Parallel only in Claude Code 5. **response-format always loaded** - Every response needs 3 sections --- *Smart Routing Skill v1.0.0 - Intelligent Request Routing Engine*