What routing and lanes are
Routing decides which of paqad's eleven outcomes a message belongs to (see Workflows overview). For a code change, paqad also picks a lane: how much ceremony the change needs. There are three lanes: fast for small, low-risk work, graduated for everyday features, and full for risky or wide-reaching changes.
You do not choose the route or the lane with a command. They come from what you ask for and from facts about the project.
Two routing decisions run side by side
- The AI's pick (judgement). Before doing anything else, the AI reads your message for intent, picks exactly one outcome and says so in a short
▸ paqadline. "Run a security review" and "check the app for vulnerabilities" both meanpentest. If the message contains a link or ticket number, the AI reads it first and routes on what it says. If two workflows are equally likely, it asks you. - The recorded route (machine). On Claude Code and Codex CLI, a hook runs paqad's deterministic classifier on every message. It records the outcome on disk and, for code changes only, the lane. No AI model is involved. How the classifier works is described in Classification.
The two can disagree. That is covered by a third rule: whatever the route is called, an edit to a file outside docs/ and .paqad/ is treated as feature development by the pre-edit gates. Calling a code change a "question" does not get it past the checks.
A background notification that your tool injects as if you had typed it (for example a CI monitor firing) is recognised and ignored. It is not classified and does not change the current route.
Switching pauses the current work, it does not reset it
- If you are mid-feature and ask an unrelated question, the feature is paused. Its plan, frozen spec, lane and stage progress stay on disk.
- When you say "continue" or "back to the feature", the AI resumes at the exact stage it left, without re-planning, and reloads the project rules.
- New code work during a detour starts a separate change with its own plan and spec.
- If "continue" could mean more than one change, the AI asks you which.
- From a terminal,
paqad-ai resume --feature <ref>reactivates a paused change by its ID, issue number or name. See Picking up work across sessions.
How the lane is chosen
The classifier gives each request a complexity (trivial, low, medium, high, very-high) and a risk (low, medium, high), then applies fixed rules.
| Kind of request | Lane |
|---|---|
| A new feature | full if risk is high, otherwise graduated. |
| A bug fix | fast if complexity and risk are both low, otherwise graduated. |
| A migration | Always full. |
| Other code changes (for example a clean-up) | Trivial complexity, or low complexity with low risk: fast. Low complexity with higher risk, or medium complexity without high risk: graduated. Anything else: full. |
A feature request is never put on the fast lane by these rules. Risk is raised automatically when an affected module has a poor health record or a history of recurring defects (see Module health).
Two safety rules can only tighten the lane, never loosen it. Both are machine checks:
- Sensitive modules. If the file being edited belongs to a module marked
sensitivity: highindocs/instructions/rules/module-map.yml, the edit is held to the full lane whatever was recorded. - Unknown lane. If no lane was recorded, the gates treat the change as full.
What each lane changes in 1.91.1
| Lane | Before the first code edit | Planning extras | Stage isolation |
|---|---|---|---|
fast | A recorded plan. | A reuse check only. | No: stages run in the main chat. |
graduated | A recorded plan and a frozen spec. | The diff-minimizer and existing-doc-checker skills; cross-module-impact-scanner when more than one module is touched. | Yes, on Claude Code and Codex CLI. |
full | A recorded plan and a frozen spec. | Same as graduated. | Yes, on Claude Code and Codex CLI. |
The fast lane relaxes the order, not the finish line. It lets code edits start before a spec exists, but the end-of-change checks in 1.91.1 still expect every mandatory stage and its records, including a frozen spec, before a change can read Safe to merge. In 1.91.1 the graduated and full lanes apply the same gates; full records that the change was judged high risk.
Where this is enforced
The recorded route, the lane and the pre-edit gates need hooks, so they apply on Claude Code and Codex CLI. On other tools the AI still makes its routing pick and follows the lane rules from its instructions, but nothing blocks an edit. See Adapters overview.