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

purge

Skill0 starsChanged 7 months agoMITView on GitHub

Reduce bloated GTD lists by renegotiating commitments—drop, demote, merge, or simplify tasks using GTD best practice.

The file

Show its rules and text

We split this skill into the rules it gives an agent

17 rules. About 0 are common, 12 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Renegotiate, don't just delete: Every task was a commitment.

    line 33
  2. Distinctive:

    Someday/Maybe is the pressure valve: If you're not actively committed but don't want to lose it, demote to ⏬ (lowest priority).

    line 35
  3. Distinctive:

    Clarify vague tasks or kill them: If a task has sat for weeks and you still can't picture the next physical action, it's not actionable yet.

    line 39
  4. Distinctive:

    Projects should only surface 1–2 next actions: If your list is bloated because project steps are all visible, ensure blocking chains (⛔/🆔) …

    line 41
  5. Distinctive:

    Stale recurring tasks need attention: If a recurring task lost its recurrence or is overdue, fix or retire it.

    line 45
  6. Distinctive:

    When scanning, always filter out:

    line 65
  7. Very specific:

    Use the /obsidian skill's Dataview eval queries for inbox, someday, tag, and all-tasks scans.

    line 71
  8. Distinctive:

    When demoting, move one step down by default — not straight to ⏬.

    line 95
  9. Distinctive:

    After purging, produce a summary:

    line 131
  10. Distinctive:

    Stop the session ("stop")

    line 170
  11. Distinctive:

    After confirmation, execute all actions for that batch before moving to the next.

    line 172
  12. Very specific:

    Use --yes flag on tools only after the user has confirmed.

    line 176
  13. Very specific:

    All operations use the /obsidian skill.

    line 200
  14. Very specific:

    Important: Use the /obsidian skill for all modifications.

    line 214
  15. Distinctive:

    All open tasks that do NOT have ⏬ (lowest priority)

    line 219
  16. Very specific:

    Use someday mode to review the ⏬ backlog specifically

    line 228
  17. Distinctive:

    Ask the user which mode they want at the start of each session.

    line 240

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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 Purge Skill

Systematically reduce task list bloat by walking through every active task and forcing a keep/drop/demote decision. Based on David Allen's principle that a long list isn't the problem—carrying un-renegotiated commitments is.

When to Use

  • Context lists feel overwhelming (>15–20 active items in a single context)
  • You're avoiding looking at your lists
  • Weekly review keeps skipping the "cull" step
  • You notice tasks that have been sitting untouched for weeks
  • Total active tasks exceed what you can realistically engage with

Vault Operations

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

Key queries for purge:

  • Inbox: Dataview eval inbox query
  • By context: Dataview eval tag query (e.g. @quick, @deep)
  • All open tasks: tasks todo verbose format=json
  • Someday/maybe: Dataview eval someday query
  • Context distribution: Dataview eval context-counts query
  • Stale projects: Dataview eval stale-projects query

Core Principles (GTD-Aligned)

  1. Renegotiate, don't just delete. Every task was a commitment. Consciously decide: "Am I still committed to this?" If not, deliberately let it go. Allen calls this renegotiating an agreement with yourself.
  2. Someday/Maybe is the pressure valve. If you're not actively committed but don't want to lose it, demote to ⏬ (lowest priority). This keeps active lists lean and trustworthy.
  3. Merge duplicates and overlapping tasks. Capture happens fast; duplicates creep in. Combine them into one clear action.
  4. Clarify vague tasks or kill them. If a task has sat for weeks and you still can't picture the next physical action, it's not actionable yet. Either rewrite it as a concrete action or drop/demote it.
  5. Projects should only surface 1–2 next actions. If your list is bloated because project steps are all visible, ensure blocking chains (⛔/🆔) are correct so only the true next action is unblocked.
  6. Completed work should be marked done. Anything you've already done but forgot to check off gets marked done now.
  7. Stale recurring tasks need attention. If a recurring task lost its recurrence or is overdue, fix or retire it.

Workflow

Phase 1: Triage Scan

The agent scans all open tasks excluding ⏬ (lowest priority / Someday-Maybe) and groups them into triage categories:

CategoryCriteriaDefault Action
EmptyBlank - [ ] lines with no contentDrop
StaleOpen, no scheduled/due date, no context, created >4 weeks ago, no activityCandidate for drop or demote
OverdueScheduled/due date in the pastReschedule, do, or drop
DuplicateVery similar description to another open taskMerge into one
VagueNo concrete action verb, unclear next stepRewrite or drop
CompletedContext suggests already done (e.g., event passed)Mark done
Orphaned daily note tasksOpen tasks in old daily notes, no scheduled date, no context, never processedProcess, move, or drop
Blocked chain issuesProject tasks with broken/missing dependency chainsFix chain or simplify
Broken system itemsRecurring tasks that lost recurrence, placeholder project tasksFix

When scanning, always filter out:

  • Tasks with ⏬ priority (review these in someday purge mode instead)
  • Completed tasks
  • Tasks in Templates, Checklists folders
  • Tasks with a scheduled date (⏳) don't need a context tag — they will surface when the date arrives. Skip them in orphan/no-context triage.

Use the /obsidian skill's Dataview eval queries for inbox, someday, tag, and all-tasks scans.

Phase 2: Context-by-Context Purge

Work through each context list one at a time. For each context, present all active tasks and ask the user to make a decision on each:

Decision options per task:

CodeActionWhat Happens
keepKeep as-isNo change
dropDelete permanentlyTask removed from file
demoteReduce priority by one stepDemote one level (see priority ladder below)
doneAlready completedMark done with ✅
mergeCombine with another taskKeep one, mark other done
rewriteClarify the taskEdit description to concrete next action
reschedulePush to future dateUpdate ⏳ date
moveMove to different contextChange context tag
projectPromote to projectCreate project note, seed next actions

Priority ladder (Obsidian Tasks plugin — 6 levels):

🔺 highest → ⏫ high → 🔼 medium → (normal) → 🔽 low → ⏬ lowest

When demoting, move one step down by default — not straight to ⏬. For example: 🔼 → normal, normal → 🔽. Only demote to ⏬ if the user explicitly asks to send something to Someday/Maybe.

Note: To demote from 🔼/⏫/🔺 to normal, use the /obsidian skill's edit-by-match pattern and rewrite the line without the priority emoji.

Context processing order (heaviest lists first):

  1. Orphaned daily note tasks (biggest source of bloat)
  2. @read (reading lists grow fastest)
  3. @quick
  4. @deep
  5. @batch
  6. @pc (legacy — migrate or drop)
  7. @home
  8. @partner
  9. @ai
  10. @ponderables
  11. @work
  12. @out
  13. Projects review (stale/stuck projects)

Phase 3: Project Pruning

For each active project:

  1. Is this project still a current commitment? → If not, demote entire project to Someday/Maybe or archive to Completed Projects.
  2. Does it have a clear, unblocked next action? → If not, define one or put project on hold.
  3. Are the dependency chains correct? → Fix any broken ⛔/🆔 references.
  4. Are there too many steps visible? → Ensure only 1–2 are unblocked.

Phase 4: Recurring Task Cleanup

Review GTD/Recurring.md:

  1. Flag any recurring task that lost its recurrence pattern (like the Weekly Review task).
  2. Identify recurring tasks with excessive completed-instance history — these are fine but note the file size.
  3. Confirm all active recurrences still make sense.

Phase 5: Summary Report

After purging, produce a summary:

=== Purge Summary ===
Tasks before:  509
Tasks dropped:  XX
Tasks demoted:  XX (→ Someday/Maybe)
Tasks done:     XX
Tasks merged:   XX
Tasks rewritten: XX
Tasks after:   XXX
---
Active projects: XX (was XX)
Stale projects fixed: XX

IMPORTANT: Confirmation & Execution

Batch presentation with user control:

  1. Present tasks in batches of 10 per context.
  2. For each batch, show numbered tasks with a suggested action based on triage criteria:
    @read (42 tasks — suggesting cuts)
    
    1. Read Zhengdong Wang best facts article          → suggest: keep
    2. Read [The Shape of AI...]                       → suggest: keep (recent, high-quality)
    3. Read New Yorker: why AI didn't transform...     → suggest: demote ⏬ (5 weeks old)
    4. Read [Demystifying evals for AI agents]         → suggest: keep (@ai relevant)
    5. Read Substack article [no title, bare URL]      → suggest: drop (vague, 3 weeks)
    ...
    
    Accept all suggestions? Or type numbers to override (e.g., "3: keep, 5: keep")
  3. The user can:
    • Accept all suggestions at once
    • Override specific items by number
    • Skip the entire context ("skip")
    • Stop the session ("stop")
  4. After confirmation, execute all actions for that batch before moving to the next.
  5. Never delete or demote without the user seeing the suggestion first.
  6. Use --yes flag on tools only after the user has confirmed.

Suggestion Heuristics

The agent should use these heuristics when suggesting actions:

SignalSuggestion
Task has ⏬ priorityskip (not in scope — use someday purge mode)
Task is an empty - [ ] linedrop
Task >6 weeks old, no scheduled date, no prioritydrop or demote ⏬
Task is a bare URL with no descriptiondrop or rewrite
Task is a TikTok/Instagram link (without ⏬)demote ⏬ (ephemeral content)
Task description matches another open taskmerge
Task references a past event/datedone or drop
Task is in @pc (legacy)move to @deep/@quick/@batch
Task has no context tag, sitting in daily noterewrite + move or drop
Reading task from >4 weeks agodemote ⏬ unless high priority
Project with no next action for >2 weeksdefine next action or archive
Recurring task lost its 🔁 patternfix recurrence
Placeholder/generic project task (e.g. "First next action")rewrite to concrete action

Operations

All operations use the /obsidian skill. File paths are vault-relative.

Action/obsidian pattern
ScanDataview eval queries (inbox, tag, all, someday)
Dropeval delete-line pattern
Demoteeval edit-by-match — rewrite line with ⏬
Donetask path=... line=N done (native)
Rewriteeval edit-by-match — new description + context
Rescheduleeval edit-by-match — add/update ⏳ YYYY-MM-DD
Move contexteval edit-by-match — change @tag
Move to fileeval move pattern (delete + append)
Create projectcreate path=... content=... + append to Projects List

Important: Use the /obsidian skill for all modifications. Do not read files and edit them manually.

Scope: What Gets Purged

In scope (active commitments):

  • All open tasks that do NOT have ⏬ (lowest priority)
  • These are things you've implicitly said "I'm doing this" — the purge forces you to re-confirm or let go

Out of scope by default:

  • Tasks with ⏬ priority (Someday/Maybe) — these are already parked. Purging them defeats the purpose of the pressure valve.
  • Completed tasks ([x])
  • Tasks in Templates, Checklists

Someday/Maybe purge (separate mode):

  • Use someday mode to review the ⏬ backlog specifically
  • This is a different mindset: not "am I committed?" but "do I still want this on my radar at all?"
  • Heuristics differ: age matters less (they're meant to sit), but items that no longer spark any interest should be dropped
  • Suggested cadence: quarterly, or when ⏬ list exceeds ~100 items

Session Management

  • Full purge: Walk all active (non-⏬) contexts and projects. Takes 30–60 minutes. Do this quarterly or when the system feels untrusted.
  • Quick purge: Target one or two contexts (e.g., just @read and daily notes). Takes 10–15 minutes. Good for weekly review add-on.
  • Auto-suggest purge: Agent scans active (non-⏬) tasks only and presents those matching stale/vague/duplicate heuristics. Fastest — just review the flagged items.
  • Someday purge: Review ⏬ items only. Different mindset — "do I still want this on my radar?" Drop anything that no longer interests you. Do this quarterly.

Ask the user which mode they want at the start of each session.

Coordination With Other Skills

  • Clarify: Orphaned daily note tasks that survive the purge should be processed through Clarify to get proper context tags.
  • Organize: Tasks that get rewritten or moved during purge should end up properly tagged and filed.
  • Project: Projects identified during purge as stale get either revived (new next action) or archived.
  • Review: The purge is a deeper version of the "cull" step in weekly review. Run purge when weekly review alone isn't enough.

Anti-Patterns to Watch For

  • Purging too aggressively — If the user drops >50% of tasks, pause and check: are these genuinely not commitments, or is this avoidance? Some tasks are hard but important.
  • Demoting everything — Someday/Maybe shouldn't become a second junk drawer. If it grows past ~100 items, it needs its own purge.
  • Skipping the rewrite step — A vague task that gets "kept" will just sit there again. Push to rewrite or drop.
  • Not fixing the capture habit — If daily notes keep accumulating unprocessed tasks, the real fix is more frequent clarify sessions, not more purges.

Example Session

Agent: Ready to purge. You have 509 open tasks. What mode?
  1. Full purge (all contexts + projects, ~45 min)
  2. Quick purge (pick 1-2 contexts, ~15 min)  
  3. Auto-suggest (only flagged items, ~10 min)

User: 3

Agent: Running triage scan...

Found 47 flagged items across your system:

=== Orphaned Daily Note Tasks (23 items) ===
Batch 1/3:

1. "rubber bands XL" (Jan 2, no context)           → suggest: drop
2. "cribbage @quick" (Jan 2)                        → suggest: keep
3. "[Cool astrophotographer] @quick" (Jan 3)        → suggest: demote ⏬
4. "https://thetopsecretcomedyclub.co.uk" (Jan 3)   → suggest: rewrite "Check Top Secret Comedy Club events @quick"
5. "when I pick up phone..." @deep (Jan 6)          → suggest: rewrite "Draft phone pickup rules @deep" or drop
6. "ready made proteïen @quick" (Jan 12)            → suggest: rewrite "Research ready-made protein options @quick"
7. "change alarm sounds" (Jan 21)                   → suggest: keep (scheduled Feb 7)
8. empty task "- [ ] " (Jan 24)                     → suggest: drop
9. "Check on side project repo" (Jan 25)              → suggest: keep (recurring)
10. "Pi Moon Mission Patch @quick" (Jan 25)         → suggest: keep or demote

Accept all suggestions? Or type numbers to override:

User: accept, but 1: keep (need them for allotment labels)

Agent: Got it. Executing...
✓ 3: Demoted to ⏬
✓ 4: Rewritten → "Check Top Secret Comedy Club events @quick"
✓ 6: Rewritten → "Research ready-made protein options @quick"  
✓ 8: Dropped (empty task)
(7 others kept as-is)

Next batch? (y/n/stop)

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.