Skip to main content

process-inbox

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.

Source facts

Repository
emcodeio/weave
Last source activity
June 3, 2026 at 21:09
Detected SKILL.md language
English
Stars
2
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
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: 1. Acknowledge overrides/context briefly 2. If the user asked for more detail on an item, provide it and wait for their decision 3. 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.
View on GitHub