nicepkg/capture-triage
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".
npx skills add https://github.com/nicepkg/ai-workflow --skill capture-triage
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.
Ed - capturing quick thoughts in Drafts Pro throughout the day.
> 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.
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
| 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.
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.
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.
This step can run in background. Read and classify all captures before surfacing to user.
For each .md file in Inbox:
Surface to user only after ALL files are read and classified.
For x-bookmark files (filename starts with x-):
tweet_url from YAML frontmatterFor other captures with URLs:
url:, source_url:, or link: in frontmattertext in bodyIf capture content looks like a summary (has structure, headers, quotes sources):
[PROCESSED]Signals of processed content:
Priority Rule: Inline hints override auto-detection. Check for these FIRST:
IDEA: or Idea: → IDEAResearch: → RESEARCH (triggers swarm option)for [Project Name] → PROJECT_UPDATETask: or TODO: → TASKAuto-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 |
Two-Step Pattern: Show preview table first, then ask decision in a separate message.
Let user absorb the information before asking what to do.
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.
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:
After approval, route each capture:
| Classification | Destination | Format |
|----------------|-------------|--------|
| TASK | Ready | - [ ] [action] (MM-DD) |
| IDEA | Ready | - [ ] Consider: [idea] (MM-DD) |
| REFERENCE | Ready | - ] Review: [linked title - brief context (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) |
IMPORTANT: Review tasks MUST include links.
For REFERENCE items, always include the source link so Ed can find it:
TitleArticle Title[[Document Name]]Video TitleIf a capture has no URL but references external content, note this: (source needed)
Edit Instructions:
For each item routed to Ready:
/Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/YYYY-MM-DD.md
## Ready section## Captures - that section is for document links onlyExample 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).
Only spawn research-swarm if:
Research: inline hint AND user confirmedFor 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
When a capture mentions a person with action context:
CONTACT - [Name].md exists## Interactions sectionContact 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]
After routing each capture:
mv "[Inbox file]" "[Processed folder]"
Move files to Inbox/Processed/ as safety net (preserves originals).
## 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)
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](URL) - 6 paradigm shifts (01-05)" |
| 4 | "Research: how do coaches..." | RESEARCH | → Spawn research-swarm? |
Approve all, modify, or skip items?
User approves all, including research swarm for #4.
Result:
## Ready section| 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 |
| 2.2 | 2026-01-12 | Added requirement: Review tasks MUST include source links (URL or wikilink). Added Step 3b to extract URLs from frontmatter (especially x-bookmark tweet_url) |
Take nicepkg/capture-triage from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.