| name | agent-detector |
| description | CRITICAL: MUST run for EVERY message. Detects agent, complexity, AND model automatically. Without this, tasks route to wrong agents and use wrong models, degrading quality and wasting tokens. |
| autoInvoke | true |
| priority | highest |
| model | haiku |
| triggers | ["every message","always first"] |
| allowed-tools | NONE |
| user-invocable | false |
AI-consumed reference. Optimized for Claude to read during execution.
Human-readable explanation: see docs/architecture/HIERARCHICAL_PLANNING.md
or docs/getting-started/ depending on topic.
Agent Detector
Runs FIRST for every message.
Complexity
complexity[4]{level,criteria,approach}:
Quick,"Single file / simple fix / clear scope","Direct implementation"
Standard,"2-5 files / feature / some unknowns","Scout then implement"
Deep,"6+ files / architecture / vague scope","run-orchestrator"
Project,"Multi-feature / multi-session / weight ≥ 3 on bridge heuristic AND no active plan","/aura-frog:plan bootstrap then per-task /run anchored"
Project (v3.7.2+): Emitted when rules/workflow/run-plan-bridge.md triggers sum to weight ≥ 3 AND .claude/plans/active.json is absent. run-orchestrator Step 0 owns the user prompt (plan / deep / details) and the scratch-file handoff. Otherwise Quick/Standard/Deep classification is unchanged.
Model Selection
Prefer the session model — inherit it. The model the user launched with is the signal of their intent and budget; use it for all substantive work (Standard / Deep / architecture / planning / build / review). Do NOT force-upgrade to a named model (e.g. Opus) for "complex" — if the user wanted more capability they'd run it, and naming a model means a newer/stronger one is ignored.
The only deliberate override is down-shifting to haiku for trivial mechanical work (classification, detection, state bookkeeping) where a wrong answer costs little. So: Quick/classification → haiku; everything else → inherit (session model). See rules/core/small-to-large-routing.md.
Detection (Priority Order)
- Task content (highest): Analyze task keywords — backend repo may have frontend tasks. Score ≥50 overrides repo detection.
- Explicit tech (+60): User mentions react-native/flutter/angular/vue/react/next/node/python/go/laravel → agent.
- Intent (+50): Action keywords: implement/fix/test/design/database/security/deploy → agent.
- Project context (+40): Package files/configs. Use cached detection when valid (<24h).
- File patterns (+20): Recent file naming: *.vue→frontend, *.go→architect, etc.
Scoring
Primary ≥80 (leads), Secondary 50-79 (supports), Optional 30-49, Skip <30.
tester: Always secondary unless explicit test request.
Cache
.claude/cache/agent-detection-cache.json — reuse within workflow (phase >1). Invalidate on new workflow, phase 1, or user override.