Router-First Architecture
Router-First Architecture
Route through domain routers before using individual tools. Routers abstract tool selection.
Pattern
Domain routers (like math-router) provide deterministic mapping from user intent to exact CLI commands. Always use the router first; only bypass for edge cases.
DO
Call math-router route "<intent>" before any math operation
Let domain skills co-activate with their router (via coActivate in skill-rules.json)
Trust the router's confidence score; only fall back if command: null
Keep trigger keywords/patterns in skill-rules.json broader than routing patterns
DON'T
Call individual scripts directly when a router exists
Duplicate routing logic in individual skills
Let domain skills bypass their router
Co-Activation Pattern
Domain skills should co-activate with their router:
{
"math/abstract-algebra/groups": {
"coActivate": ["math-router"],
"coActivateMode": "always"
}
}
This ensures the router is always available when domain knowledge is activated.
Two-Layer Architecture
Skill-rules trigger layer: Nudges Claude to use the router (keywords, intent patterns)
Router routing layer: Deterministic mapping to scripts via regex patterns
Keep the trigger layer broader than routing - the router should handle "not found" gracefully.
Source Sessions
2bbc8d6e: "Trigger layer was narrower than routing layer" - expanded triggers
This session: Wired 8 domain math skills to co-activate with math-routerdon't have the plugin yet? install it then click "run inline in claude" again.