Route Information¶
Given a batch of discrete information items (each with an ID, raw text, and optional agent-proposed metadata), present routing recommendations to the user in clusters, get confirmation or correction, and execute the approved routings.
Workflow name: route-information
Execution: main
Steps¶
| # | ID | Name | Type | Depends on |
|---|---|---|---|---|
| 1 | cluster-items |
Cluster items for review by type/theme | reasoning |
|
| 2 | present-clusters |
Present each cluster to the user for confirmation | reasoning |
cluster-items |
| 3 | record-decisions |
Record user decisions for each item | reasoning |
present-clusters |
| 4 | execute-routing |
Execute approved routings (consent-gated writes) | code |
record-decisions |
| 5 | return-results |
Return complete routing record | code |
execute-routing |
Step instructions¶
cluster-items¶
Group items by proposed_type (or by theme if types are mixed). The goal is to minimize the number of review interactions while keeping each interaction coherent.
Suggested clustering: - Admin/personal items together (usually quick decisions) - Research/technical items together (need domain context) - Unknown/low-confidence items together (need the most user input) - Proposed deletions together (batch confirm)
present-clusters¶
For each cluster, present: 1. The cluster theme/type 2. For each item in the cluster: - The raw text (verbatim, never modified) - The agent's one-line interpretation - The proposed action (route to X, delete, park with review date) - Confidence level and any staleness notes 3. Ask the user to confirm, correct, or skip each item
Example interaction:
## Admin items (3 items)
**[t_d44f12]** "Admin - VPN/taxes/new laptop stuff"
→ Proposed: task (inbox) — "Set up VPN, handle tax prep, research laptops"
→ Confidence: low — this bundles 3 things, and taxes may be done
What is this? Confirm / correct / skip?
**[t_c44d1a]** "Taxes - Varsha"
→ Proposed: task (inbox) — "Tax-related task involving Varsha"
→ Confidence: low — don't know who Varsha is or what the task is
What is this? Confirm / correct / skip?
**[t_7b2e09]** "Varsha - T4 / T4A"
→ Proposed: linked to t_c44d1a? — "Tax form from Varsha"
→ Confidence: low
What is this? Confirm / correct / skip?
The user might reply: "Varsha is the lab admin. I already got the T4A. Delete both of those. The VPN/taxes/laptop thing — VPN is done, taxes are done, laptop is still a live task."
record-decisions¶
Update each item with the user's confirmed routing:
{
"id": "t_c44d1a",
"action": "delete",
"user_note": "Already completed — got T4A from Varsha"
}
{
"id": "t_d44f12",
"action": "split",
"splits": [
{"text": "VPN setup", "action": "delete", "reason": "done"},
{"text": "Taxes", "action": "delete", "reason": "done"},
{"text": "New laptop research", "action": "route", "destination": "tasks/master-task-list.md", "task_text": "Research and purchase new laptop"}
]
}
execute-routing¶
For each confirmed item, execute the routing:
- Task creation: Use
mcp__work-buddy__wb_run("task_create", {"task_text": "...", "project": "...", "due_date": "..."})which produces clean lines and creates a SQLite metadata record:State and urgency are stored in- [ ] #todo <task text> #projects/<project> 🆔 t-<hex> 📅 <date if applicable>tasks/task_metadata.db, not inline tags. - Consideration creation: Create a new file in
work/considerations/<project>/using the consideration template frontmatter - Project note append: Append to the relevant project file
- Park with review date: Create a consideration with
status: parkedand adecision_dateset to the review date - Delete: Mark as deleted in the routing record (the caller handles actual text removal)
All write operations are consent-gated. The first write triggers @requires_consent. Grant with a reasonable TTL (e.g., 30 minutes) to cover the batch.
return-results¶
Return the complete routing record as JSON — the caller uses this to know what was processed and what action was taken.
{
"routed": [{"id": "t_7b2e09", "action": "route", "destination": "tasks/master-task-list.md"}],
"deleted": [{"id": "t_c44d1a", "reason": "Already completed"}],
"split": [{"id": "t_d44f12", "splits": [...]}],
"skipped": [{"id": "t_x9y8z7", "reason": "User wants to think about it"}]
}
Context¶
What NOT to do¶
- Don't modify the raw text of any item — present it verbatim
- Don't auto-route without user confirmation, even at high confidence
- Don't create elaborate categorization hierarchies — use existing destinations
- Don't invent new filing locations the user hasn't established
- Don't pressure the user to decide on every item — "skip" is always valid
- Don't treat "unknown" as a problem — some items need the user's context, that's expected
- Don't batch-delete without showing each item — the user might spot something worth keeping
Related blindspots¶
- Insight hoarding: if the user parks everything and deletes nothing, name the pattern. But don't force deletion — that triggers avoidance
- Infrastructure displacement: if routing itself is taking longer than the items are worth, flag it. "We've spent 20 minutes on 3 items — should we batch the rest?"
- Organization skill gap: if the user can't decide where things go, the destination system might need simplification, not more process