| name | capture-triage |
| description | Processes Drafts Pro captures from the Inbox folder. Classifies by intent, shows preview for approval, routes to Ready as tasks. Use when triaging captures, processing mobile notes, or as part of daily review. Triggers on "triage captures", "process captures", "check my captures". |
| allowed-tools | Read, Glob, Grep, Edit, Write, AskUserQuestion |
| skills | mission-context |
Capture Triage
What This Does
Turns mobile captures into actionable tasks in your Ready queue. Everything captured has intent - this skill makes it explicit so task-clarity-scanner can decide what's important.
Who It's For
Ed - capturing quick thoughts in Drafts Pro throughout the day.
The Philosophy
Everything captured has intent. Route to Ready, let task-clarity-scanner decide what moves to Someday/Maybe.
No passive filing. Every capture becomes a decision point.
Paths
Inbox: /Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/Inbox/
Processed: /Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/Inbox/Processed/
Daily note: /Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/YYYY-MM-DD.md
Projects: /Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/PROJECT - *.md
Contacts: /Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/CONTACT - *.md
Important: Naming Clarification
| Term | What It Means |
|---|---|
| Inbox folder | /Zettelkasten/Inbox/ - where Drafts Pro sends mobile notes |
| Captures section | ## Captures in daily note - links to docs created today |
| Ready destination | ## Ready section in daily note - where triaged tasks go |
Remember: This skill reads from the Inbox FOLDER and routes to the Ready SECTION. Tasks go to Ready section only - Captures section is for document links.
Instructions
Step 1: Check Inbox Folder (Root Only)
Important: Only check files directly in Inbox/, NOT subdirectories.
ls /Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/Inbox/*.md 2>/dev/null
If no files found: Report "No captures waiting" and stop. If files found: Continue to Step 2.
Step 2: Load Context
Pull active project names from mission-context skill AND:
Glob: /Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/PROJECT - *.md
Build a list of project names for matching.
Step 3: Read and Classify Each Capture (Background OK)
This step can run in background. Read and classify all captures before surfacing to user.
For each .md file in Inbox:
- Read full content
- Detect if already-processed (see Step 3a)
- Classify by intent (see Step 4)
Surface to user only after ALL files are read and classified.
Step 3a: Detect Already-Processed Content
If capture content looks like a summary (has structure, headers, quotes sources):
- Flag as
[PROCESSED] - Will suggest routing as REFERENCE
- Won't offer research-swarm (already researched)
Signals of processed content:
- Has markdown headers (##, ###)
- Contains bullet lists with structured info
- Quotes or attributes other sources
- Looks like notes from a video/article
Step 4: Classify Each Capture
Priority Rule: Inline hints override auto-detection. Check for these FIRST:
IDEA:orIdea:→ IDEAResearch:→ RESEARCH (triggers swarm option)for [Project Name]→ PROJECT_UPDATETask:orTODO:→ TASK
Auto-Detection (if no inline hint):
| Signal | Classification |
|---|---|
| Starts with verb (call, email, buy, check, send, schedule) | TASK |
Contains Research: hint or explicit question needing investigation |
RESEARCH |
| "What if..." or speculative language | IDEA |
| Mentions active project name | PROJECT_UPDATE |
| Person's name + action context | CONTACT |
| Links, articles, saved content, observations | REFERENCE |
Step 5: Show Classification Preview (Two-Step)
Two-Step Pattern: Show preview table first, then ask decision in a separate message. Let user absorb the information before asking what to do.
Step 5a: Present the Table
Show what you found. Let user absorb the information first:
## Capture Triage Preview
Found [N] captures. Here's how I've classified them:
| # | File | Preview | Classification | Suggested Routing |
|---|------|---------|----------------|-------------------|
| 1 | note1.md | "Call dentist..." | TASK | Ready: Call dentist (MM-DD) |
| 2 | note2.md | "What if we..." | IDEA | Ready: Consider: [idea] (MM-DD) |
| 3 | summary.md | [PROCESSED] "Article about..." | REFERENCE | Ready: Review: [title] (MM-DD) |
| 4 | question.md | "Research: how do..." | RESEARCH | Spawn research-swarm? |
Pause here. Let the user see and absorb the table before asking for a decision.
Step 5b: Ask for Decision
After showing the table, ask ONE question using AskUserQuestion:
How would you like to proceed?
1. **Approve all** - Route everything as shown
2. **Go one-by-one** - Review each item individually
3. **Modify** - Change specific classifications before routing
4. **Skip all** - Don't process any captures right now
Key points:
- Show [PROCESSED] flag for already-summarized content
- RESEARCH items present in preview table with spawn option - user approves before spawning
- Let user approve, modify, or skip before any changes
Step 6: Route by Classification
After approval, route each capture:
| Classification | Destination | Format |
|---|---|---|
| TASK | Ready | - [ ] [action] (MM-DD) |
| IDEA | Ready | - [ ] Consider: [idea] (MM-DD) |
| REFERENCE | Ready | - [ ] Review: [title/summary] (MM-DD) |
| RESEARCH | If approved: spawn agent | See Step 7 |
| PROJECT_UPDATE | Project file | Timestamped append to ## Context Gathered |
| CONTACT | Create note + Ready | - [ ] Follow up with [Name] (MM-DD) |
Edit Instructions:
For each item routed to Ready:
- Open today's daily note at:
/Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/YYYY-MM-DD.md - Find the
## Readysection - Use Edit tool to append the task in the format shown above
- Do NOT add to
## Captures- that section is for document links only
Example Edit operation:
old_string: "## Ready\n- [ ] existing task"
new_string: "## Ready\n- [ ] existing task\n- [ ] [new task from capture] (01-06)"
If creating PROJECT or CONTACT files: Those files get created separately, and a
LINK to them goes in Ready as a task (e.g., - [ ] [[PROJECT - Name]] - brief desc).
Step 7: Handle Research (Only When Requested)
Only spawn research-swarm if:
- User explicitly approved during Step 5 preview
- Capture has
Research:inline hint AND user confirmed
For each approved RESEARCH item:
Task(
description="Research: [Topic]",
prompt="Research question: [Full capture content]
Use research-swarm pattern to investigate. Save findings to Zettelkasten.
When complete, add review task to Ready: '- [ ] Review: [[Research - Topic]] (MM-DD)'",
subagent_type="research-swarm",
run_in_background=true
)
Add placeholder to daily note:
- [RESEARCH] [Topic] - swarm running in background
Step 8: Handle Contacts
When a capture mentions a person with action context:
- Check if
CONTACT - [Name].mdexists - If exists: Append to
## Interactionssection - If new: Create contact note using template
- Always add follow-up task to Ready
Contact Note Template:
---
type: contact
created: YYYY-MM-DD
source: capture-triage
---
# [Person Name]
## Context
[Original capture content]
## Interactions
- YYYY-MM-DD: Initial capture - [summary]
## Follow-up
[Any implied next steps]
Step 9: Move to Processed
After routing each capture:
mv "[Inbox file]" "[Processed folder]"
Move files to Inbox/Processed/ as safety net (preserves originals).
Step 10: Generate Triage Summary
## Capture Triage - YYYY-MM-DD HH:MM
**Processed:** N items | **Research spawned:** M (if any)
### Routed to Ready
- [N] tasks
- [N] ideas (Consider:)
- [N] references (Review:)
### Research Running
- [Topic] - spawned at HH:MM
### Actions Taken
- Moved N files to Inbox/Processed/
- Created CONTACT - [Name].md (if any)
- Updated PROJECT - [Name].md (if any)
Examples
Example 1: Dry Run Preview
Inbox folder contains 4 files:
1. "Call dentist Monday about cleaning"
2. "What if we did a 5-day hook challenge?"
3. [PROCESSED] "Summary of Karpathy video - 6 paradigm shifts..."
4. "Research: how do successful coaches use AI?"
Skill shows:
## Capture Triage Preview
| # | Capture | Classification | Suggested Action |
|---|---------|----------------|------------------|
| 1 | "Call dentist..." | TASK | → Ready: "Call dentist Monday (01-05)" |
| 2 | "What if we..." | IDEA | → Ready: "Consider: 5-day hook challenge (01-05)" |
| 3 | [PROCESSED] "Summary of Karpathy..." | REFERENCE | → Ready: "Review: Karpathy video summary (01-05)" |
| 4 | "Research: how do coaches..." | RESEARCH | → Spawn research-swarm? |
Approve all, modify, or skip items?
Example 2: After Approval
User approves all, including research swarm for #4.
Result:
- Ready gets 3 new tasks + 1 research placeholder
- Research-swarm spawns in background
- All 4 files moved to Processed/
- Summary generated
Guidelines
- Two-step preview - Show table first, ask decision second (separate messages)
- Ready, not Captures - All triaged items become tasks in
## Readysection - Dry run is standard - Always show preview before routing
- Respect inline hints - They override auto-detection
- Research-swarm is opt-in - Ask before spawning
- [PROCESSED] content - Flag summaries, suggest REFERENCE routing
- Everything to Ready - Let task-clarity-scanner handle prioritization
- Preserve originals - Move to Processed/ folder as safety net
Version History
| Version | Date | Changes |
|---|---|---|
| 1.0 | 2025-01-05 | Initial build as inbox-triage |
| 2.0 | 2025-01-05 | Renamed to capture-triage, added dry run, AskUserQuestion flow, all routes to Ready |
| 2.1 | 2026-01-06 | Renamed folder Captures→Inbox, split Step 5 into two-step preview, explicit Ready section routing, background OK for classification |
Notes & Learnings
- Day 1 test processed 32 captures with backlog - dry run prevented overwhelm
- [PROCESSED] detection helps avoid re-researching already-summarized content
- Research-swarm opt-in prevents runaway agent spawning