|
| 1 | +# Stop Treating Mixed Prompts Like One Task |
| 2 | + |
| 3 | +*A host-aware routing layer that turns mixed coding prompts into structured workflows — without replacing the agent you already use.* |
| 4 | + |
| 5 | +I kept running into the same stupid moment. |
| 6 | + |
| 7 | +I would open a coding agent, type one big prompt, and get exactly what these tools promise at their best: momentum. |
| 8 | + |
| 9 | +"Plan this feature, implement it, add tests, write docs, and review the final result." |
| 10 | + |
| 11 | +For a few minutes, it felt great. One prompt. One flow. One clean path from idea to shipped change. |
| 12 | + |
| 13 | +Then the flow broke. |
| 14 | + |
| 15 | +I stopped thinking about the feature and started doing manual routing in my head. |
| 16 | + |
| 17 | +Should planning use a stronger reasoning model? |
| 18 | + |
| 19 | +Should coding use something faster or cheaper? |
| 20 | + |
| 21 | +Should tests use the same model as implementation? |
| 22 | + |
| 23 | +Does this host even support real switching, or am I just assuming it does? |
| 24 | + |
| 25 | +Why am I spending the heaviest model in the stack on README edits and formatting? |
| 26 | + |
| 27 | +That was the point where the problem became obvious. |
| 28 | + |
| 29 | +I was not blocked by the model. I was blocked by the workflow. |
| 30 | + |
| 31 | +That prompt was not one task. It was planning, coding, testing, docs, and maybe review compressed into one sentence. |
| 32 | + |
| 33 | +That is the gap that led me to build RouteSmith. |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | +## Mixed Prompts Are Workflows |
| 38 | + |
| 39 | +Most coding-agent workflows still treat a prompt like a single request. |
| 40 | + |
| 41 | +Real development work is rarely shaped that way. |
| 42 | + |
| 43 | +When someone says, "plan this feature, implement it, add tests, write docs," they are not asking for one thing. They are asking for several different kinds of work: |
| 44 | + |
| 45 | +- planning |
| 46 | +- analysis |
| 47 | +- implementation |
| 48 | +- testing |
| 49 | +- documentation |
| 50 | +- often review and cleanup at the end |
| 51 | + |
| 52 | +Those steps do not need the same kind of model. They do not need the same reasoning depth, the same latency profile, or the same cost profile. |
| 53 | + |
| 54 | +And they definitely do not behave the same across Claude Code, Cursor, Copilot, Codex, Gemini CLI, or Aider. |
| 55 | + |
| 56 | +That last part matters. |
| 57 | + |
| 58 | +There is a lot of talk about multi-model workflows, but in practice the host decides what is actually possible. Some hosts support real dynamic switching. Some mostly control the model surface themselves. Some let you influence routing indirectly. Some make it very easy to believe you have more control than you really do. |
| 59 | + |
| 60 | +I wanted a layer that works with that reality instead of smoothing it over with fake abstraction. |
| 61 | + |
| 62 | +## What RouteSmith Actually Is |
| 63 | + |
| 64 | +RouteSmith is a host-aware routing layer for coding agents. |
| 65 | + |
| 66 | +It is not another coding agent. |
| 67 | + |
| 68 | +It is not an API gateway. |
| 69 | + |
| 70 | +It sits between a mixed prompt and the host's real capabilities. |
| 71 | + |
| 72 | +The job is straightforward: |
| 73 | + |
| 74 | +1. Detect the host. |
| 75 | +2. Break the prompt into task types. |
| 76 | +3. Map those tasks to capability classes. |
| 77 | +4. Resolve those capabilities against what the current host can actually do. |
| 78 | +5. Switch models when the host supports it. |
| 79 | +6. Fall back honestly when the host does not. |
| 80 | +7. Track outcomes over time so routing gets better. |
| 81 | + |
| 82 | +That means RouteSmith is not trying to replace Claude Code, Cursor, Aider, Copilot, or anything else you already use. It is trying to make mixed-task workflows behave more intelligently inside those environments. |
| 83 | + |
| 84 | +## Who This Is For |
| 85 | + |
| 86 | +One mistake I think people make when they talk about routing is assuming only power users care. |
| 87 | + |
| 88 | +I think that misses a big part of the story. |
| 89 | + |
| 90 | +RouteSmith is also for people who are just getting started with coding agents and do not want to think about model choice all day. |
| 91 | + |
| 92 | +That includes a lot of people getting into vibe coding right now. |
| 93 | + |
| 94 | +If you are early in that workflow, the friction usually is not writing the prompt. The friction starts right after the prompt. |
| 95 | + |
| 96 | +You begin second-guessing things like: |
| 97 | + |
| 98 | +- Should I use the smartest model for everything? |
| 99 | +- Should I switch between planning and coding? |
| 100 | +- Is this task too simple for an expensive model? |
| 101 | +- Is the host actually switching, or am I just assuming it is? |
| 102 | + |
| 103 | +Most people should not have to become part-time routing engineers before they can build something useful. |
| 104 | + |
| 105 | +That is a big part of why RouteSmith exists. |
| 106 | + |
| 107 | +It is for two groups at the same time: |
| 108 | + |
| 109 | +- people who want better control over routing |
| 110 | +- people who want less manual model decision-making |
| 111 | + |
| 112 | +That second group is probably bigger. |
| 113 | + |
| 114 | +More concretely, RouteSmith is a good fit for: |
| 115 | + |
| 116 | +### 1. People new to coding agents |
| 117 | + |
| 118 | +If you are using Claude Code, Cursor, Copilot, Codex, Gemini CLI, or Aider and you do not yet have strong intuition for model tradeoffs, RouteSmith is meant to reduce that burden. |
| 119 | + |
| 120 | +You should be able to describe the work in plain language and let the routing layer do the decomposition. |
| 121 | + |
| 122 | +### 2. People doing vibe coding |
| 123 | + |
| 124 | +If your style is, "build this feature, wire the API, add tests, clean up the docs," RouteSmith helps because it treats that prompt like a workflow instead of a blob. |
| 125 | + |
| 126 | +### 3. Solo builders and founders |
| 127 | + |
| 128 | +Solo builders usually mix planning, implementation, testing, docs, and review in one session because they are doing all of it themselves. |
| 129 | + |
| 130 | +That is exactly where task-aware routing starts paying off. |
| 131 | + |
| 132 | +### 4. Teams that want consistency |
| 133 | + |
| 134 | +Without a routing layer, every developer ends up inventing their own model habits. |
| 135 | + |
| 136 | +RouteSmith gives you a more explainable and repeatable path. |
| 137 | + |
| 138 | +### 5. Advanced users who care about control |
| 139 | + |
| 140 | +If you care about host constraints, routing logic, policy overrides, plugins, observability, and performance-aware switching, RouteSmith has room for that too. |
| 141 | + |
| 142 | +## How the Routing Works |
| 143 | + |
| 144 | +The flow is intentionally simple. |
| 145 | + |
| 146 | + |
| 147 | + |
| 148 | +### Step 1: Detect the host |
| 149 | + |
| 150 | +RouteSmith starts by detecting where it is running. |
| 151 | + |
| 152 | +The host is not a footnote. It decides what model families are relevant, what switching is possible, and how honest the router can be about execution. |
| 153 | + |
| 154 | +### Step 2: Classify the prompt into task types |
| 155 | + |
| 156 | +RouteSmith uses deterministic planning to classify prompts into task types like planning, analysis, coding, testing, refactor, documentation, formatting, and review. |
| 157 | + |
| 158 | +I care about this being deterministic because planning should not require live API calls just to understand the shape of the work. |
| 159 | + |
| 160 | +### Step 3: Map task types to capability classes |
| 161 | + |
| 162 | +Instead of hardcoding everything directly to model names, RouteSmith maps tasks to capability classes such as: |
| 163 | + |
| 164 | +- `deep_reasoning` |
| 165 | +- `coding` |
| 166 | +- `balanced` |
| 167 | +- `fast` |
| 168 | + |
| 169 | +That gives the system a portable abstraction layer. A planning task can ask for deep reasoning without assuming every host exposes the same model names or the same controls. |
| 170 | + |
| 171 | +### Step 4: Resolve capabilities against the current host |
| 172 | + |
| 173 | +This is where RouteSmith becomes host-aware instead of generic. |
| 174 | + |
| 175 | +If the host supports dynamic switching, RouteSmith can suggest concrete models per task. |
| 176 | + |
| 177 | +If the host does not support switching, RouteSmith does not fake it. It keeps the routing intelligence, applies prompt strategy, and tells you what actually happened. |
| 178 | + |
| 179 | +That truthful behavior is one of the core design decisions in the project. |
| 180 | + |
| 181 | +### Step 5: Preserve dependency order |
| 182 | + |
| 183 | +Mixed prompts are not just lists. They are dependency graphs. |
| 184 | + |
| 185 | +Tests often depend on implementation. Docs usually make more sense after the change exists. Review is usually last. |
| 186 | + |
| 187 | +RouteSmith keeps that order intact so the route matches the actual structure of the work. |
| 188 | + |
| 189 | +### Step 6: Learn from real outcomes |
| 190 | + |
| 191 | +RouteSmith also records local performance data, including model used, host name, task type, capability class, success or failure, duration, and telemetry source. |
| 192 | + |
| 193 | +That is useful for visibility on its own, but it also does something more valuable: it can become an active routing signal. |
| 194 | + |
| 195 | +If a default model has enough evidence showing weak success or poor latency for a capability, and a better host-available option exists, RouteSmith can de-prioritize the weaker default. |
| 196 | + |
| 197 | +That turns performance tracking from passive reporting into routing feedback you can actually use. |
| 198 | + |
| 199 | +## A Few Concrete Examples |
| 200 | + |
| 201 | +### The beginner building an expense tracker |
| 202 | + |
| 203 | +Imagine someone fairly new to coding agents asks for this: |
| 204 | + |
| 205 | +"Build me a simple expense tracker with authentication, add tests, and write a README." |
| 206 | + |
| 207 | +That user may not know which model is better for planning versus coding versus docs. They probably do not want to know. They just want the thing built. |
| 208 | + |
| 209 | +RouteSmith helps by decomposing that request into task-level work and routing each phase with the host's real constraints in mind. |
| 210 | + |
| 211 | +### The founder shipping a feature fast |
| 212 | + |
| 213 | +A solo founder might say: |
| 214 | + |
| 215 | +"Plan the feature, implement the API, add tests, update docs, and review the final diff." |
| 216 | + |
| 217 | +That is a classic mixed-task workflow. Without routing, it becomes one long interaction on one model. With RouteSmith, it becomes a structured sequence. |
| 218 | + |
| 219 | +### The user on a constrained host |
| 220 | + |
| 221 | +Some hosts expose model control directly. Some do not. |
| 222 | + |
| 223 | +That difference creates friction when tooling assumes universal switching. RouteSmith helps by being explicit: if switching is available, it uses it. If it is not, it falls back honestly. |
| 224 | + |
| 225 | +## Where RouteSmith Fits |
| 226 | + |
| 227 | +I do not think the honest pitch here is that nothing similar exists. |
| 228 | + |
| 229 | + |
| 230 | + |
| 231 | +There are good products around this space. They mostly solve different layers of the stack. |
| 232 | + |
| 233 | +Claude Code, Cursor, and Aider are agent products. They are the tools doing the work. |
| 234 | + |
| 235 | +LiteLLM and Portkey are model and gateway infrastructure. They normalize providers, manage routing at the API layer, and add control, visibility, and governance around model traffic. |
| 236 | + |
| 237 | +Rules, skills, and instruction files are customization layers. They shape behavior, but they are not really routing brains by themselves. |
| 238 | + |
| 239 | +RouteSmith sits in the gap between those layers. |
| 240 | + |
| 241 | +It is not trying to become a full IDE. It is not trying to become a universal API gateway. It is not just another instructions file. |
| 242 | + |
| 243 | +It is a routing layer for coding-agent workflows. |
| 244 | + |
| 245 | +If I had to summarize it simply: |
| 246 | + |
| 247 | +- if you want a coding agent, use Claude Code, Cursor, or Aider |
| 248 | +- if you want API-layer multi-provider routing, use LiteLLM or Portkey |
| 249 | +- if you want a host-aware routing layer for mixed coding prompts, that is where RouteSmith fits |
| 250 | + |
| 251 | +That is the lane. |
| 252 | + |
| 253 | +## Why I Built It This Way |
| 254 | + |
| 255 | +I do not think the useful future for coding agents is one model doing everything. |
| 256 | + |
| 257 | +I also do not think the useful future is pretending every host is the same. |
| 258 | + |
| 259 | +The more practical direction is: |
| 260 | + |
| 261 | +- let the user describe the work naturally |
| 262 | +- let the system understand the shape of the work |
| 263 | +- let routing happen at the task level |
| 264 | +- let the host remain the source of truth about what is actually possible |
| 265 | +- let the feedback loop improve over time |
| 266 | + |
| 267 | +That is the design RouteSmith is pushing toward. |
| 268 | + |
| 269 | +## Try It |
| 270 | + |
| 271 | +If you want to get a feel for it, the simplest path is: |
| 272 | + |
| 273 | +```bash |
| 274 | +pip install routesmith |
| 275 | +routesmith detect-host |
| 276 | +routesmith explain "Refactor auth, add tests, write docs" |
| 277 | +routesmith run "Refactor auth, add tests, write docs" |
| 278 | +routesmith stats |
| 279 | +``` |
| 280 | + |
| 281 | +And if you are building tooling around agents, you can expose the routing layer over stdio with: |
| 282 | + |
| 283 | +```bash |
| 284 | +routesmith serve-stdio |
| 285 | +``` |
| 286 | + |
| 287 | +## Final Thought |
| 288 | + |
| 289 | +The most interesting part of coding-agent workflows is no longer just the model. |
| 290 | + |
| 291 | +It is the routing layer around the work. |
| 292 | + |
| 293 | +If a prompt contains planning, implementation, testing, documentation, and review, then treating it like one undifferentiated request leaves a lot on the table. |
| 294 | + |
| 295 | +RouteSmith is my attempt to make that layer explicit, host-aware, and useful for both advanced users and people who are just getting started. |
| 296 | + |
| 297 | +You should not need to know a full model matrix before you can build something real. |
| 298 | + |
| 299 | +That is the job I want RouteSmith to take off your plate. |
| 300 | + |
| 301 | +--- |
| 302 | + |
| 303 | +Project: [github.com/sidrat2612/routesmith](https://github.com/sidrat2612/routesmith) |
| 304 | +PyPI: [pypi.org/project/routesmith](https://pypi.org/project/routesmith/) |
0 commit comments