| name | process-inbox |
| description | Process Obsidian and Drafts inboxes using scan-classify-confirm-execute. Claude pre-classifies all items, groups by action type, presents a numbered summary for user confirmation. Use when: 'process inbox', 'clear inbox', 'let's process', or during reviews. |
| disable-model-invocation | true |
Process Inbox
Three-pass workflow: Claude scans and classifies everything, user confirms with minimal effort, Claude executes in batch.
Routing Context
Active projects
!obsidian search query="categories: Projects status: active" vault="{{VAULT_NAME}}" limit=30 2>/dev/null || echo "(Could not scan projects)"
Area notes
!obsidian search query="tags: area" vault="{{VAULT_NAME}}" limit=20 2>/dev/null || echo "(Could not scan areas)"
Pass 1: Scan & Classify
Read ALL items from both inboxes. Assign each a sequential number (flat across both sources).
1.1 Gather items
Drafts inbox: mcp__drafts__drafts_inbox โ read all items.
Obsidian inbox: obsidian search query="path:Inbox/" vault="{{VAULT_NAME}}" โ then read each item.
Token management: For files over 5000 lines, read only the first 50-100 lines plus frontmatter. Enough to classify โ specialized skills handle full content later.
1.2 Auto-classify each item
Apply heuristics in order (first match wins):
| Signal | Type | Routing |
|---|
File >50k chars + book metadata (author + title + publisher/contributor) | Book | References/ with categories: ["[[Books]]"]; flag /ingest-book to process chapter-by-chapter |
type: capture + LLM conversation markers (role alternation, claude.ai/chatgpt links, ## Prompt:/## Response:) | LLM conversation | Rename descriptively, Notes/, flag /process-llm-conversation |
| Work meeting transcript โ colleagues, workstreams, standup/1:1/cross-team/client/design-review | Work transcript | Flag /process-transcript (auto-detects the work frame) |
| Other transcript / meeting recording โ class, group discussion, teaching handout, or generic recording | Transcript | Flag /process-transcript (generic frame) |
tags: [clippings] + full body (>500 chars after frontmatter) | Article (full content) | Flag /ingest-written-content |
tags: [clippings] + minimal body OR body is a single URL | URL stub | Fetch & classify, or file as reference |
Filename matches Name (@handle) + minimal body | Person stub | References/ as Person note |
source-file: in frontmatter or ![[non-markdown]] embed | Wrapper note | Read attachment, summarize, file |
| Confluence URL or work-related technical content | Work reference | Notes/ with areas: [[Work]] |
| Working draft or in-progress reference material (WIP indicators, partial content, mentions active workbench cluster or project with workbench items) | In-progress work | Workbench/ with status: drafting, link to parent project |
| Short note (<500 chars) + action language (imperative verbs, "need to", "todo") | Action item | Extract to project/Action Pool |
| None of the above | Needs context | Ask user |
For items where routing destination is ambiguous, use mcp__qmd__query with vec sub-query + intent "finding the right project or area to route this inbox item to."
1.3 Group and present summary
Group items by action type (what happens to them). Present ALL items in a single output.
Output format:
## Inbox Summary: X Drafts + Y Obsidian items
### Quick File (move + enrich frontmatter)
1. [Obsidian] **Note Name** โ brief description
โ Destination/ | areas: [[Area]] | categories: [[Category]]
### Specialized Processing (flag for dedicated skills)
2. [Obsidian] **Note Name** (size, type)
โ `/skill-name` โ brief rationale
### Fetch & Classify (URL-only, need content to route)
3. [Obsidian] **Note Name** โ what the URL appears to be
โ Fetch to decide: likely options
### Action Extraction (pull actions into projects/pools)
4. [Drafts] **"Draft text preview"** โ context
โ Extract to [[Project Name]] or [[Action Pool]]
### Delete (no lasting value)
5. [Source] **Note Name** โ why it has no value
### Needs Context (can't confidently classify)
6. [Source] **Note Name** โ what's unclear
โ Question for user
---
Anything to adjust? Reference by number. "Looks good" to proceed.
Formatting rules:
- Sequential numbers across all groups (not per-group)
- Source tagged:
[Drafts] or [Obsidian]
- Bold filename for scanning
- One-line description with key metadata
- Arrow
โ for routing recommendation
- Omit empty groups
Pass 2: User Review
This is the ONLY decision point. Wait for user input.
Accepted response patterns:
looks good / go / confirmed โ execute all as recommended
3 โ delete โ override item 3's routing
7 โ project X โ redirect to specific project
5 is a book I want โ add to Wishlist โ add context that changes routing
skip 1, 4 โ leave items in inbox for later (don't process this session)
tell me more about 6 โ re-read item 6 and present more detail
- Any combination of the above
After receiving input:
- Acknowledge overrides/context briefly
- If the user asked for more detail on an item, provide it and wait for their decision
- Otherwise proceed directly to execution โ no further confirmation needed
Pass 3: Execute
Process in this order (simplest first โ maximizes value if interrupted):
3.1 Delete items
- Obsidian items: delete the inbox note
- Drafts items:
mcp__drafts__drafts_trash
3.2 Quick-file items
For each item:
- Enrich frontmatter:
categories, areas, status, tags, created
- Move to appropriate directory (Notes/ or References/)
- Proactive linking: related notes, category verification, backlinks
- Person stubs: Check References/ for existing person note โ merge if found
- Work docs: Set
areas: ["[[Work]]"] and appropriate categories
3.3 Fetch & classify URL stubs
For URL-only items confirmed for fetching:
- Use
defuddle parse "$URL" --md to extract content
- Re-classify based on fetched content:
- Full article worth ingesting โ flag for
/ingest-written-content
- Product page, course announcement, simple reference โ quick-file
- No lasting value โ delete (confirm with user)
3.4 Action extraction
For items containing action items:
- Extract action with GTD phrasing (starts with verb). Suggest energy/time hints:
~focused, ~quick, ~2h, ~errand
- Use QMD to find right project/area if not obvious
- Add as checkbox to target project's Actions section or
[[Action Pool]]
- Offer Apple Reminder if there's a deadline
- File or delete the source inbox note
3.5 Wrapper notes
For wrapper notes (non-markdown file references):
- Read the attachment (PDFs up to 20 pages via Read tool; images are multimodal)
- Write a
## Summary section into the wrapper note
- File wrapper to permanent location (Notes/ or References/)
3.5a Workbench routing
For items classified as in-progress work:
- Set lightweight frontmatter:
status: drafting, created, project (if identifiable), tags
- Move to
Workbench/ (or appropriate subdirectory if a cluster exists)
- No proactive linking (workbench exemption applies)
3.6 Specialized processing items
These get moved out of Inbox/ but NOT deeply processed inline. Filing and deep processing are separate operations.
For each item:
- Add minimal frontmatter (
categories, areas, status: active, created, tags)
- Rename if needed (e.g., cryptic filenames โ descriptive titles based on content)
- Move to permanent location (Notes/ for transcripts/conversations, References/ for books/articles)
- Do NOT invoke the specialized skill โ just note it in the summary
3.7 Drafts cleanup
For Drafts items routed to Obsidian:
- If item needs to become a vault note: run "Save in Obsidian Vault" Drafts action, then process the resulting Inbox/ note
- Archive all processed drafts:
mcp__drafts__drafts_archive
- Trash discarded drafts:
mcp__drafts__drafts_trash
After Processing
Commit vault changes, then present summary:
## Processing Complete
### Executed
- X items quick-filed
- X URLs fetched and filed
- X actions extracted โ [[destinations]]
- X items deleted
- X drafts archived
### Ready for Specialized Processing
- [[Note Name]] โ `/skill-name`
- [[Note Name]] โ `/skill-name`
### Skipped (still in inbox)
- Item X โ reason
Inbox: N โ M | Committed: "Process inbox: N items routed"
Omit empty sections. If specialized items exist, remind the user they can process them at leisure with the listed skill commands.