Route Stage
Analyze an enriched note against routing memory, vault rules, and generic signals. Move to destination or mark for review.
See references/pipeline.md for stage definitions and status flow.
See references/routing.md for the scoring algorithm.
See references/routing-memory.md for the correction and learning loop.
Input
An enriched note in the inbox with status: enriched.
Process
-
Load routing context:
- Read
.routing-memory.mdfrom vault root (create with defaults if missing) - Read vault CLAUDE.md for disambiguation rules
- Run
sb vault structurefor available destinations - Run
sb note context --note "{note-path}"for keywords and signals
- Read
-
Score destinations (priority order): a. Check
.routing-memory.mdcorrections for matching topics/keywords b. Check.routing-memory.mdlearned patterns c. Apply vault CLAUDE.md disambiguation rules d. Apply generic signal scoring (perreferences/routing.md) -
Apply threshold:
- Score >=
auto-route-threshold: auto-route, move file, setstatus: routed - Score < threshold: set
status: pending-review, return without moving
- Score >=
-
If auto-routing, move the file:
npx @techpickles/sb note move --from "{note-path}" --to "{destination}/"Update frontmatter:
status: routed -
If pending-review, present suggestions to human (when called by orchestrator):
- Show top 2-3 destinations with scores and reasoning
- Include "Leave in inbox" option
- If user overrides suggestion, capture correction to
.routing-memory.md
Capturing Corrections
When the user picks a destination different from the top suggestion:
- Ask: "Quick note on why {chosen} over {suggested}?"
- Append to
## Correctionsin.routing-memory.md:- {YYYY-MM-DD}: "{note title}" routed to "{suggested}", corrected to "{chosen}" Reason: {user's reason}
Output
- Note moved to destination with
status: routed, OR - Note marked
status: pending-reviewfor human input
Constraints
- Only suggest destinations from
sb vault structureoutput - Always include "Leave in inbox" for pending-review notes
- Show reasoning for all suggestions
- Capture corrections on every override (this is how routing improves)