Triage Drafts inbox and route notes to OmniFocus tasks or Obsidian documents
Triage your Drafts inbox using AI analysis to route content to OmniFocus tasks or Obsidian notes. Use when you have drafts to process and want smart routing suggestions with confirmation.
/plugin marketplace add krishagel/geoffrey/plugin install geoffrey@geoffreyThis skill is limited to using the following tools:
actions/README.mdactions/geoffrey-export-inbox.jsactions/geoffrey-process-draft.jsscripts/add_contact.jsscripts/trigger_export.jsscripts/trigger_process.jsTriage the Drafts inbox using a hybrid AI + human confirmation workflow. Routes content to OmniFocus (tasks) or Obsidian (notes) based on content analysis.
Use this skill when user wants to:
Two-Phase Hybrid Triage:
┌─────────┐ URL ┌─────────┐ JSON ┌─────────┐ Table ┌──────┐
│Geoffrey │ ────► │ Drafts │ ─────► │Geoffrey │ ──────► │ User │
│ trigger │ │ export │ │ analyze │ │review│
└─────────┘ └─────────┘ └─────────┘ └──┬───┘
│
Confirmed
│
┌─────────┐ URL ┌─────────┐ Routes ┌──────────┐ ┌───▼────┐
│Geoffrey │ ────► │ Drafts │ ───────► │OmniFocus │ │Process │
│ trigger │ │ process │ │ Obsidian │ │ list │
└─────────┘ └────┬────┘ └──────────┘ └────────┘
│
Archives
Scripts are in ./scripts/ directory. Run via:
bun ./scripts/script-name.js
Triggers the Drafts "Geoffrey Export Inbox" action via URL scheme.
Output: Path to exported JSON file
Use when: Starting triage
Triggers the Drafts "Geoffrey Process Draft" action with routing instructions.
Parameters: uuid, destination, project, tags, folder
Use when: Processing confirmed drafts
IMPORTANT: User must install these Drafts actions (found in ./actions/):
Exports all inbox drafts to a JSON file for Geoffrey to analyze.
Location: ~/Library/Mobile Documents/iCloud~com~agiletortoise~Drafts5/Documents/geoffrey-export.json
Output format:
{
"exported": "2025-11-23T10:30:00Z",
"count": 5,
"drafts": [
{
"uuid": "ABC123",
"title": "First line of draft",
"content": "Full content...",
"tags": ["inbox"],
"createdAt": "2025-11-22T14:00:00Z",
"modifiedAt": "2025-11-22T14:00:00Z",
"isFlagged": false
}
]
}
Processes a single draft based on routing instructions from URL parameters.
URL Parameters:
uuid - Draft to processdestination - "omnifocus", "obsidian", "archive", or "trash"project - OmniFocus project (if destination=omnifocus)tags - Comma-separated tags (if destination=omnifocus)dueDate - Due date (if destination=omnifocus)folder - Obsidian folder (if destination=obsidian)When analyzing drafts, look for these signals:
Signals:
Apply omnifocus-manager routing rules for project/tag assignment
Signals:
Signals:
Signals:
| Content Type | Folder | Frontmatter |
|---|---|---|
| Meeting notes | Meetings/ | date, attendees, topics |
| Ideas/brainstorms | Geoffrey/Inbox/ | tags, created |
| Research | Reference/ | source, tags, related |
| Journal | Journal/ | date |
| General notes | Geoffrey/Inbox/ | tags, created |
Frontmatter template:
---
created: {{date}}
source: drafts
tags: [from-drafts]
related: []
---
Trigger export:
open "drafts://x-callback-url/runAction?action=Geoffrey%20Export%20Inbox"
Wait for export file (2-3 seconds)
Read exported JSON:
cat ~/Library/Mobile\ Documents/iCloud~com~agiletortoise~Drafts5/Documents/geoffrey-export.json
Analyze each draft using content signals above
Present suggestions table:
## Drafts Inbox Triage
Found **5 drafts** to process:
| # | Title | Suggestion | Destination | Details |
|---|-------|------------|-------------|---------|
| 1 | Call John about... | Task | OmniFocus | Project: Meetings, Tags: John, Follow Up |
| 2 | Meeting notes 11/22 | Note | Obsidian | Folder: Meetings/ |
| 3 | [empty] | Delete | Trash | Empty draft |
| 4 | Shopping list | Task | OmniFocus | Project: Single Actions, Tags: Chores |
| 5 | Idea for app... | Note | Obsidian | Folder: Geoffrey/Inbox/ |
**Questions:**
- #4: Should this go to a specific store location tag?
Which numbers need changes? (Or type "process all" to confirm)
For each confirmed draft, trigger process action:
# OmniFocus task
open "drafts://x-callback-url/runAction?action=Geoffrey%20Process%20Draft&uuid=ABC123&destination=omnifocus&project=Meetings&tags=John,Follow%20Up&dueDate=2025-11-30"
# Obsidian note
open "drafts://x-callback-url/runAction?action=Geoffrey%20Process%20Draft&uuid=DEF456&destination=obsidian&folder=Meetings"
# Archive
open "drafts://x-callback-url/runAction?action=Geoffrey%20Process%20Draft&uuid=GHI789&destination=archive"
# Delete
open "drafts://x-callback-url/runAction?action=Geoffrey%20Process%20Draft&uuid=JKL012&destination=trash"
Report results:
## Summary
Processed 5 drafts from inbox
## Actions
- 2 tasks created in OmniFocus
- 2 notes saved to Obsidian
- 1 draft deleted
## Status
✅ Complete
## Next Steps
- Review tasks in OmniFocus inbox
- Check Obsidian notes in Geoffrey/Inbox/
Drafts not running:
Status: ❌ Failed
Error: Drafts app is not running. Please open Drafts and try again.
Action not installed:
Status: ❌ Failed
Error: Drafts action "Geoffrey Export Inbox" not found.
Please install from: skills/drafts-manager/actions/
Export file not found:
Status: ⚠️ Partial
Error: Export file not created. Drafts may have timed out.
Try running the action manually in Drafts.
OmniFocus not running:
Status: ⚠️ Partial
Warning: OmniFocus not running. Task creation may have failed.
Please verify tasks were created.
Import the action files from ./actions/:
Option A: Import from file
actions/geoffrey-export-inbox.draftsActionactions/geoffrey-process-draft.draftsActionOption B: Create manually
actions/geoffrey-export-inbox.jsRun: open "drafts://x-callback-url/runAction?action=Geoffrey%20Export%20Inbox"
Check for export file at:
~/Library/Mobile Documents/iCloud~com~agiletortoise~Drafts5/Documents/geoffrey-export.json
Use these tags for manual pre-routing:
task - Force route to OmniFocusnote - Force route to Obsidianarchive - Keep in Drafts archivedelete - Trash without reviewWhen capturing to Drafts, these patterns help AI routing:
Best practice: Triage Drafts daily to keep inbox small
These patterns were learned through actual triage sessions with the user.
| Content Type | Destination | Obsidian Folder | OmniFocus Details |
|---|---|---|---|
| Meeting notes | Obsidian | Meetings/2025/ | - |
| Conference notes | Obsidian | Meetings/2025/ | - |
| Development roadmap | Obsidian | Work/[Project]/Roadmap.md | Format as checklist |
| API keys/credentials | Delete | - | Security risk |
| Error logs/JSON junk | Delete | - | Cruft |
| Random passwords | Delete | - | Cruft |
| Contact info | Contacts app | - | Also create follow-up task |
| Book recommendations | OmniFocus | - | Tags: Reading |
| Gift ideas | OmniFocus | - | Tags: Chores, Shopping |
| Action items from meetings | OmniFocus | - | Tags: Follow Up |
| Reference links (AI, UDL) | Obsidian | Reference/ | - |
| Personal project ideas | OmniFocus | - | Tags: Coding |
| Presentation schedules | Obsidian | Work/Presentations/ | Future dates → tasks |
| Survey links | OmniFocus | - | Include links in notes |
→ OmniFocus Task:
→ Obsidian Note:
→ Contacts App:
→ Delete:
→ Archive in Drafts:
Obsidian Folders:
Meetings/2025/ - All meeting and conference notesWork/AI-Studio/ - AI Studio development docsWork/Jocular-Kangaroo/ - Jocular Kangaroo projectWork/Presentations/ - Presentation archivesGeoffrey/ - Geoffrey roadmap and ideasReference/ - Reference materials and linksOmniFocus Projects (go to Inbox if not found):
OmniFocus Tags:
Multi-item notes:
Development roadmaps:
- [ ] for pending items- [x] for completed itemsSensitive data:
Contact + Task pattern:
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.