agentleFS
wernerbattwernerbatt/obsidian-gtd-cli/.claude/skills/clarify/SKILL.md

clarify

Skill0 starsChanged 7 months agoMITView on GitHub

Process inbox items using GTD workflow

80 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use quieter, arrange and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • HK-hubSkill

    quieter

    Tones down visually aggressive or overstimulating designs, reducing intensity while preserving quality. Use when the user mentions too bold, too loud, overwhelming, aggressive, garish, or wants a calmer, more refined aesthetic.

    Also in 29 projects that use this

  • HK-hubSkill

    arrange

    Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.

    Also in 14 projects that use this

  • zwy123zwySkill

    normalize

    将用户随意输入的提示词规范化为结构清晰、便于大模型执行的标准化提示词。适用于需要整理、统一提示词格式时调用。

    Also in 19 projects that use this

  • owshq-mecSkill

    layout

    Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.

    Also in 8 projects that use this

  • +8 more from HK-hub

The file

Show its rules and text

We split this skill into the rules it gives an agent

43 rules. 0 are common, 25 are distinctive, and 18 are very specific to this project.

  • 0

    Common

    Most of the 77 edited versions we read keep these.

  • 25

    Distinctive

    This author's own choices. Worth a look.

  • 18

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Mark done: prefer python3 tools/obsidian_tasks.py done ...

    line 18
  2. Very specific:

    Cancel/drop with history: prefer python3 tools/obsidian_tasks.py cancel ...

    line 19
  3. Very specific:

    Rewrite task text: prefer python3 tools/obsidian_tasks.py rewrite ...

    line 20
  4. Very specific:

    Change priority / someday: prefer python3 tools/obsidian_tasks.py set-priority ...

    line 21
  5. Very specific:

    When batch editing or moving tasks, prefer description matching over line numbers.

    line 34
  6. Very specific:

    When a recurring task mutation is not covered by the wrappers, suggest extending tools/obsidian_tasks.py before reaching for a one-off raw …

    line 35
  7. Very specific:

    CRITICAL: Never run parallel writes to the same file.

    line 39
  8. Distinctive:

    Default to batch suggestions: present numbered options/sub-options before edits.

    line 44
  9. Distinctive:

    Treat explicit user selections as confirmation for those chosen actions.

    line 45
  10. Distinctive:

    If an action is unclear, destructive (delete/move), or conflicts with stated preferences, pause and ask for explicit yes/no before running …

    line 46
  11. Very specific:

    Use --dry-run only when requested.

    line 47
  12. Very specific:

    If any selection is ambiguous/destructive/conflicting, ask for explicit confirmation on those items.

    line 52
  13. Very specific:

    Use the /obsidian skill's GTD Inbox Dataview eval query.

    line 64
  14. Distinctive:

    No context tags (@deep, @quick, @batch, @read, @partner, @out, etc.)

    line 65
  15. Distinctive:

    Not scheduled or overdue

    line 66
  16. Distinctive:

    Not in excluded folders (Checklists, Templates, Recurring)

    line 67
  17. Distinctive:

    Not blocked or done

    line 68
  18. Distinctive:

    If there are more than 10 inbox items, present only the first 10 and process them.

    line 75
  19. Distinctive:

    After those are handled, ask whether to show the next 10.

    line 76
  20. Very specific:

    Always preserve the original link in the rewritten task line.

    line 82
  21. Very specific:

    Place links before context tags (e.g., Task https://...

    line 83
  22. Very specific:

    If the task contains a TikTok or Instagram URL, auto-assign @batch in the background without presenting options, then continue with the …

    line 85
  23. Very specific:

    When a task contains a bare TikTok URL (e.g., https://vm.tiktok.com/...), resolve it to a descriptive markdown link using curl with the …

    line 89
  24. Distinctive:

    Write a short, natural, lowercase title (sentence case) summarising the video content

    line 111
  25. Distinctive:

    Keep it concise (under ~80 chars)

    line 114
  26. Distinctive:

    If the user says a weekday (e.g., "Tuesday" or "Thursday"), schedule the task for the first upcoming occurrence of that day.

    line 119
  27. Distinctive:

    If an item is clearly a book, game, product, or other reference, suggest creating a reference note (using the appropriate reference …

    line 123
  28. Distinctive:

    YES: Do it now, mark as done

    line 135
  29. Distinctive:

    Defer: Add context tag + scheduled date

    line 139
  30. Distinctive:

    Delegate: Add @waiting tag + person

    line 140
  31. Distinctive:

    Do ASAP: Add context tag

    line 141
  32. Very specific:

    Use the /obsidian skill's preferred order to execute these actions:

    line 143
  33. Distinctive:

    When scheduling, you can use:

    line 206
  34. Distinctive:

    One action per task: - If multiple steps, it's a project

    line 216
  35. Distinctive:

    Always add context: - Every actionable task gets a context tag

    line 217
  36. Distinctive:

    Schedule deferred items: - If not now, when?

    line 218
  37. Very specific:

    Use the /obsidian skill's inbox query with .slice(0, 5) to process just a few items at a time

    line 223
  38. Distinctive:

    All file modifications are tracked via git - commit regularly to preserve history

    line 227
  39. Distinctive:

    After processing, tasks with context tags will appear in their respective Dashboard.md sections:

    line 231
  40. Distinctive:

    Use the gmcli skill/tooling for Gmail actions and follow the same confirmation-first pattern.

    line 242
  41. Very specific:

    When creating tasks from Gmail, use the /obsidian skill ($OBS vault=$VAULT daily:path then $OBS vault=$VAULT append path=...

    line 245
  42. Distinctive:

    When suggesting options for Gmail triage, include a recommended context tag (e.g., @batch/@quick) and note that archiving is the default …

    line 246
  43. Very specific:

    Archive syntax: Use gmcli <email> labels <threadId...> --remove INBOX (flag form).

    line 250

“Common” is measured: kept by at least 6 in 10 of the 77 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

GTD Clarify Skill

Help process unprocessed items in the Obsidian vault using GTD (Getting Things Done) methodology.

Vault Operations

Use the /obsidian skill for all vault reads and writes. Load it before running any commands: → ~/.claude/skills/obsidian/SKILL.md

Quick reference (see /obsidian skill for full patterns):

  • Find inbox items: Dataview eval inbox query
  • Add task to daily note: daily:path + append
  • Mark done: prefer python3 tools/obsidian_tasks.py done ... (wraps native task ... done)
  • Cancel/drop with history: prefer python3 tools/obsidian_tasks.py cancel ... → - [x] ... ❌ YYYY-MM-DD
  • Rewrite task text: prefer python3 tools/obsidian_tasks.py rewrite ...
  • Change priority / someday: prefer python3 tools/obsidian_tasks.py set-priority ...
  • Add task under heading: eval + vault.process() insert-under-heading
  • Move task: eval + vault.process() (delete from source + append to dest)
  • Delete task permanently: eval + vault.process() splice

Open Today's Daily Note in Obsidian

cmd.exe /c start "" "obsidian://daily"

Stable Targeting (Avoid Line-Shift Errors)

When batch editing or moving tasks, prefer description matching over line numbers. When a recurring task mutation is not covered by the wrappers, suggest extending tools/obsidian_tasks.py before reaching for a one-off raw script.

Avoid Parallel Edits to the Same File

CRITICAL: Never run parallel writes to the same file. app.vault.process() is atomic per call, but two concurrent evals on the same file will race. Sequence writes to the same file; different files can be parallel.

IMPORTANT: Confirmation & Execution

CRITICAL (aligned with safety):

  • Default to batch suggestions: present numbered options/sub-options before edits.
  • Treat explicit user selections as confirmation for those chosen actions.
  • If an action is unclear, destructive (delete/move), or conflicts with stated preferences, pause and ask for explicit yes/no before running tools.
  • Use --dry-run only when requested.

Agents should:

  1. Find and display inbox items.
  2. Present batch suggestions (numbered/sub-options) and capture the user's selections.
  3. If any selection is ambiguous/destructive/conflicting, ask for explicit confirmation on those items; otherwise proceed.
  4. Execute the selected actions with stable matching (description-based).
  5. Summarize what changed.

Batch Suggestion Mode (Default)

Present options as numbered items with sub-options (e.g., 1, 1.1, 1.2, 2, 2.1) for inbox processing by default. Users may respond with multiple selections in a single message (e.g., 1.1 2.2 3.1 4.2) — process all of them together: archive in one batch call, add tasks in sequence, then confirm. If an item clearly needs multiple steps, include a sub-option to promote it to a project (e.g., 1.3 Create project: "<Name>" and seed next actions). When suggesting actions, always look for opportunities to complete the task using an LLM agent (e.g., Claude Code CLI, Codex CLI, Gemini CLI). When a task could be accelerated by an LLM agent (drafting, summarizing, research, email), include a sub-option to delegate to an agent (e.g., 1.4 Use LLM agent to draft/research/summarize) and also suggest adding @ai context tag to those tasks. After selections, proceed unless a step is ambiguous, destructive, or conflicting-then ask to confirm those specific items.

Workflow

1. Find Inbox Items

Use the /obsidian skill's GTD Inbox Dataview eval query. It finds tasks that need clarification:

  • No context tags (@deep, @quick, @batch, @read, @partner, @out, etc.)
  • Not scheduled or overdue
  • Not in excluded folders (Checklists, Templates, Recurring)
  • Not blocked or done
  • Excludes @someday and lowest-priority (⏬) items

For someday/maybe items, use the /obsidian skill's Someday/maybe query.

1.0 Batch Size Guidance

If there are more than 10 inbox items, present only the first 10 and process them. After those are handled, ask whether to show the next 10. Repeat until the user stops or the inbox is cleared.

1.1 Link-Heavy Items

For raw URLs, default to actions like "Read/Watch [source]" with @batch unless the user prefers archiving or a different context. Always preserve the original link in the rewritten task line. Place links before context tags (e.g., Task https://... @batch).

If the task contains a TikTok or Instagram URL, auto-assign @batch in the background without presenting options, then continue with the rest.

TikTok Title Resolution

When a task contains a bare TikTok URL (e.g., https://vm.tiktok.com/...), resolve it to a descriptive markdown link using curl with the facebookexternalhit user-agent (TikTok serves OG metadata to social crawlers):

# 1. Resolve the short URL to get the canonical URL
resolved=$(curl -sL -o /dev/null -w "%{url_effective}" "https://vm.tiktok.com/ZNRfjoYEP/")

# 2. Fetch OG description from the resolved URL
desc=$(curl -sL -H "User-Agent: facebookexternalhit/1.1" "$resolved" \
  | grep -oP 'og:description.*?content="[^"]*"' \
  | sed 's/.*content="//;s/"//')

Then rewrite the task line from:

- [ ] https://vm.tiktok.com/ZNRfjoYEP/ @batch

to:

- [ ] [Short descriptive title](https://vm.tiktok.com/ZNRfjoYEP/) @batch

Guidelines for the title:

  • Write a short, natural, lowercase title (sentence case) summarising the video content
  • Derive it from the og:description content returned by curl
  • Strip like/comment counts, hashtags, and disclaimers — just capture the gist
  • Keep it concise (under ~80 chars)
  • Batch multiple TikTok URLs in a single loop to save time

1.2 Scheduling Shorthand

If the user says a weekday (e.g., "Tuesday" or "Thursday"), schedule the task for the first upcoming occurrence of that day.

1.3 Reference Creation

If an item is clearly a book, game, product, or other reference, suggest creating a reference note (using the appropriate reference skill/tooling) and then mark the task done once the reference is created.

2. Process Items Interactively

The GTD clarify workflow asks these questions for each task:

  1. What is it? (Clarify the item)
  2. Is it actionable?
    • NO: Trash / Reference / Lowest Priority (⏬)
    • YES: Continue...
  3. What's the next action? (Specific, concrete step)
  4. Can it be done in 2 minutes?
    • YES: Do it now, mark as done
    • NO: Continue...
  5. Is it a project? (Multiple steps required?)
  6. Defer, delegate, or do?
    • Defer: Add context tag + scheduled date
    • Delegate: Add @waiting tag + person
    • Do ASAP: Add context tag

Use the /obsidian skill's preferred order to execute these actions:

  1. Native CLI commands
  2. tools/obsidian_tasks.py / tools/obsidian_cli.py
  3. Raw eval patterns only if no wrapper exists yet

Context Tags

Tasks are organized by context (where/when/with whom/what focus can you do it):

Computer Tasks (by focus level):

  • @deep - Deep focus work (2+ hours, requires concentration, no interruptions)
    • Examples: Programming, writing, complex analysis, learning new skills
  • @quick - Quick wins (<15 minutes, low effort, can do anytime)
    • Examples: Reply to email, update task, quick search, file something
  • @batch - Similar tasks to batch together (saves mental switching)
    • Examples: Process emails, update multiple spreadsheets, review documents
  • @pc - Legacy context (being phased out - use specific contexts above)

Other Contexts:

  • @work - Work context (retired — use @deep/@quick/@batch instead)
  • @partner - Requires partner/collaborator
  • @out - Errands/outside/garden
  • @ai - AI-related tasks
  • @ponderables - Things to think about
  • @stuck - Blocked items

Note: @someday context is deprecated. For "someday/maybe" items, use lowest priority (⏬) instead.

How to Choose PC Context:

Ask yourself:

  1. How long will this take?
    • 2+ hours → @deep
    • <15 min → @quick
  2. What's my energy level right now?
    • Fresh/morning → Check @deep
    • Tired/afternoon → Check @quick
  3. Can I batch this with similar tasks?
    • Multiple emails/updates → @batch
  4. Does this require deep focus?
    • Yes, no interruptions → @deep
    • No, can handle interruptions → @quick

Priority Levels

Tasks use Obsidian Tasks plugin priority symbols:

  • ⏫ Highest priority
  • 🔼 High priority
  • (no symbol) Normal priority
  • 🔽 Low priority
  • ⏬ Lowest priority (use for someday/maybe items)

Date Formats

Tasks use Obsidian Tasks plugin emoji metadata:

  • ⏳ YYYY-MM-DD - Scheduled date
  • 📅 YYYY-MM-DD - Due date
  • 🛫 YYYY-MM-DD - Start date
  • ✅ YYYY-MM-DD - Done date

When scheduling, you can use:

  • today - Today's date
  • tomorrow - Tomorrow's date
  • +N - N days from now (e.g., +3 for 3 days)
  • YYYY-MM-DD - Specific date

Best Practices

  1. Process inbox regularly - Daily or weekly, aim for inbox zero
  2. Be specific - "Call dentist for appointment" not "dentist"
  3. One action per task - If multiple steps, it's a project
  4. Always add context - Every actionable task gets a context tag
  5. Schedule deferred items - If not now, when?
  6. Trust your system - Once processed, don't second-guess

Tips

  • Use the /obsidian skill's inbox query with .slice(0, 5) to process just a few items at a time
  • Cancelled processing leaves tasks unchanged
  • Deleted tasks are removed from files
  • For someday/maybe items, add lowest priority (⏬) instead of using @someday context
  • All file modifications are tracked via git - commit regularly to preserve history

Integration with Dashboard

After processing, tasks with context tags will appear in their respective Dashboard.md sections:

  • @pc tasks → PC section
  • @home tasks → Home section
  • etc.

Tasks that remain without context tags will continue to appear in "To Process" section.

Gmail Follow-up

If the user explicitly asks to clarify Gmail (e.g., "clarify my gmail inbox"), go straight to Gmail triage — do not require processing the Obsidian inbox first. If the user runs a general /clarify without specifying, process the Obsidian inbox first, then offer to switch to Gmail.

Use the gmcli skill/tooling for Gmail actions and follow the same confirmation-first pattern.

Gmail clarify defaults:

  • When creating tasks from Gmail, use the /obsidian skill ($OBS vault=$VAULT daily:path then $OBS vault=$VAULT append path=... content="- [ ] ...") to add to today's daily note and archive the email unless the user explicitly says not to.
  • When suggesting options for Gmail triage, include a recommended context tag (e.g., @batch/@quick) and note that archiving is the default after action.
  • For any "read" task created from Gmail, always include a Gmail URL that opens the email directly. Use gmcli <email> url <threadId> to generate the link, and place it after the task description before the context tag.
  • Archive all triaged emails by default (including ones with tasks created), not just the ones with no action.
  • gmcli labels supports multiple thread IDs in a single call — pass them space-separated: gmcli <email> labels id1 id2 id3 --remove INBOX. Do NOT use a for loop.
  • Archive syntax: Use gmcli <email> labels <threadId...> --remove INBOX (flag form). The positional form gmcli <email> labels remove <threadId> INBOX silently succeeds without archiving. Always verify the first archive with gmcli <email> search "in:inbox" | grep <id> before bulk-archiving the rest.
  • Always use the Obsidian CLI (daily:path + append) to add tasks to today's daily note — it uses the system clock, which is authoritative. Do not compute today's date from the system prompt (it may be stale).

Example Session

Agent: Found 3 inbox items:

GTD/Dashboard.md:
  1. Buy groceries
  2. Research new framework
  3. Fix kitchen sink

Suggestions:
  1.  Buy groceries → @out, schedule tomorrow
  1.1 Rewrite: "Buy weekly groceries" @out ⏳ 2026-01-03
  2.  Research new framework → @deep
  2.1 Promote to project (multi-step)
  3.  Fix kitchen sink → @partner (need to discuss)
  3.1 Rewrite: "Discuss kitchen sink repair options" @partner

Accept all? Or override by number:

User: accept

Agent: [executes via /obsidian skill edit-by-match patterns]
✓ 1: Rewritten + scheduled
✓ 2: Tagged @deep
✓ 3: Rewritten + tagged @partner

Related Skills

  • /obsidian — All vault read/write operations
  • /organize — Batch context tagging, project creation
  • /project — Multi-step outcome management
  • /review — Weekly review workflow

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.