| name | triage |
| description | Inline inbox triage — two-pass // comment flow for async Obsidian review. Triggers: process inbox, triage inbox, route inbox, process triage. Use when this capability is needed. |
GTD Triage
Two-pass inline triage. Claude annotates inbox, human reviews in Obsidian, Claude routes on second pass.
Two-Pass Flow
Pass 1: Annotate (no second // on lines)
Trigger: /gtd:triage when ### New has lines WITHOUT //
- Read
/home/mat/dev/gtd-pcm/01-inbox.md, extract ### New items
- If empty: report "📭 Inbox empty" and stop
- Scan
03-projects/ for routing targets (Glob + Grep)
- Append
// → target #tags to each unannotated line
- Report: "✏️ Annotated X items. Review in Obsidian, append your
// comments, then run /gtd:triage again."
Pass 2: Route (lines have two // blocks)
Trigger: /gtd:triage when ### New has lines with TWO // blocks
- Read inbox, parse lines with two
// blocks
- If none found: report "⏳ No reviewed items yet" and stop
- For each reviewed line, interpret the second
//:
// ok → route using Claude's proposal (first //)
// ok → different-target #tags → route with human override
// delete → remove from inbox entirely
// any other text → interpret intent (question = flag with ❓, target name = reroute)
- Apply routing to destination project files
- Remove routed + deleted lines from
### New
- Leave lines with only one
// (unreviewed) untouched — never strip proposals
- Report summary
Auto-detect Pass
On invocation, detect which pass to run:
- If ANY line in
### New has two // blocks → Pass 2
- If lines exist without
// → Pass 1
- If mixed: run Pass 2 first (process reviewed), then Pass 1 on remaining
Classification
Type: task | reference | waiting-for | someday | trash | project-seed
Destination: Scan 03-projects/ for best match
- Glob:
03-projects/**/*.md
- Grep: search project content for keyword match
- Use folder number prefix as shorthand (e.g.,
38-mind-body)
Tags: ONLY allowed GTD tags
- Priority:
#next #frog #waiting #recurring
- Context:
#phone #field #admin #read-quick #read-deep #read-book #listen #watch #shop
- Energy:
#deep #braindead
- People:
#agenda/Name #waiting/Name
- No tag = backlog
Unclear items: Mark with // ❓ + reason instead of routing proposal
Dates: [due:: YYYY-MM-DD] or [scheduled:: YYYY-MM-DD] — never emoji shorthand
Routing Rules
Standard project template sections (see CLAUDE.md § Project Template):
| Type | Destination | Section |
|---|
task + #next/#frog | project 01-{name}.md | ### ⚡ Next |
| task (no priority tag) | project 01-{name}.md | ### 📋 Backlog |
| waiting-for | project 01-{name}.md | ### 👥 Waiting For with #waiting/Name |
| reference | project file | ## 📎 Reference |
| someday | 50-59 project | ### 📋 Backlog |
| trash | (delete) | Remove from inbox |
| project-seed | (flag ❓) | Needs new project — ask human |
Fallback (if section not found): ### 📋 Backlog → ## ✅ Tasks → before ## 📎 Reference → end of file
Scope
- Only process
### New section
- Other sections (Prio 1, Prio 2, Misc, Praxis, LQ) are left untouched
- Completed items (
- [x]) are skipped
Error Handling
- Empty inbox: "📭 Inbox empty"
- No matching project: Use
// ❓ no project match — don't guess
- Edit conflicts: Report and ask user to retry
Constraints
- Tasks ONLY in
01-{name}.md files (never in reference docs)
[field:: value] date format
- Preserve existing file structure and markdown validity
- No trailing whitespace
- NEVER use AskUserQuestion — the
// flow IS the human gate
Triggers
Direct: /gtd:triage
Natural language: "process inbox", "triage inbox", "route inbox", "process triage"
Converted and distributed by TomeVault — claim your Tome and manage your conversions.