Advanced TODOs Workflows
This reference consolidates advanced TODO management workflows that are used less frequently.
Core workflows (used frequently) are in separate workflow files:
- Add (workflows/Add.md)
- View (workflows/View.md)
- Update (workflows/Update.md)
- Review (workflows/Review.md)
- Project (workflows/Project.md)
- Recurring (workflows/Recurring.md)
Archive - Archive Completed TODOs
Purpose
Move completed (DONE) and cancelled (CANX) TODOs to archive sections to keep the main view clean.
When to Use
- After marking tasks as DONE
- During weekly review
- When sections get cluttered
- Before starting new work phases
Archive Structure
Each main section has its own archive:
| Section | Archive Location |
|---|---|
| Work | archive/work:: |
| Projects | archive/projects:: |
| Systems | archive/systems:: |
| Personal | archive/personal:: |
| Routines | archive/routines:: |
| Health | archive/health:: |
| Appointments | archive/appointments:: |
Archive is defined in the section’s PROPERTIES:
* Work
:PROPERTIES:
:ARCHIVE: archive/work::
:CATEGORY: work
:END:
What to Archive
Always Archive
- ✅ TODOs marked as DONE
- ✅ TODOs marked as CANX
- ✅ Completed subtasks of projects
- ✅ Past recurring events (older than 2 weeks)
Sometimes Archive
- ⚠️ Old WAIT tasks (if no longer relevant)
- ⚠️ Stale TODOs (created >3 months ago, never started)
Never Archive
- ❌ Active TODOs (TODO, NEXT, STRT, WAIT)
- ❌ Recent recurring tasks
- ❌ Project headers with active subtasks
Archive Workflow
Manual Archive (Emacs)
If using Emacs with org-mode:
1. Position cursor on DONE/CANX heading
2. Press C-c C-x C-a (org-archive-subtree)
3. Item moves to archive file
Manual Archive (Command Line)
Find Completed Items
# Find DONE items in Work section
sed -n '/^\* Work/,/^\* Projects/p' ~/desktop/org/todos.org | \
grep -B5 "^** DONE"
# Find CANX items in Work section
sed -n '/^\* Work/,/^\* Projects/p' ~/desktop/org/todos.org | \
grep -B5 "^** CANX"
Archive Process
- Read the item (with properties and notes)
- Determine archive location (based on section)
- Copy to archive file with structure
- Remove from todos.org
Batch Archive
Weekly Archive Script
#!/bin/bash
# Archive all DONE and CANX from last 7+ days
# This is a manual process - identify items and archive them
echo "=== Items to Archive ==="
echo ""
echo "DONE items:"
grep -B2 "^** DONE" ~/desktop/org/todos.org | \
grep "CLOSED:" | \
grep -v "$(date +%Y-%m-%d)"
echo ""
echo "CANX items:"
grep -B2 "^** CANX" ~/desktop/org/todos.org | \
grep "CLOSED:" | \
grep -v "$(date +%Y-%m-%d)"
Archive File Structure
Archive files follow the pattern:
~/desktop/org/archive/<section>.org
Example: ~/desktop/org/archive/work.org
Archive File Format
#+title: Work Archive
#+category: work
* Archived Tasks
** DONE [#2] Review upstream pull request
CLOSED: [2025-12-04 Thu 15:30]
:PROPERTIES:
:CREATED: [2025-11-15 Mon 10:00]
:CATEGORY: work
:ARCHIVE_TIME: 2025-12-05 Fri 09:00
:ARCHIVE_FILE: ~/desktop/org/todos.org
:ARCHIVE_OLPATH: Work
:END:
:LOGBOOK:
- State "DONE" from "NEXT" [2025-12-04 Thu 15:30]
:END:
Reviewed and approved upstream PR #123
** CANX Setup alternative CI system
CLOSED: [2025-12-03 Wed 10:00]
:PROPERTIES:
:CREATED: [2025-10-15 Wed 15:00]
:CATEGORY: work
:ARCHIVE_TIME: 2025-12-05 Fri 09:00
:ARCHIVE_FILE: ~/desktop/org/todos.org
:ARCHIVE_OLPATH: Work
:END:
:LOGBOOK:
- State "CANX" from "TODO" [2025-12-03 Wed 10:00] \\
Decided to stick with current CI
:END:
Archive Properties
When archiving, preserve and add:
Original Properties:
- CREATED - when TODO was created
- CATEGORY - section category
- All LOGBOOK entries
Archive Properties (added):
- ARCHIVE_TIME - when archived
- ARCHIVE_FILE - source file
- ARCHIVE_OLPATH - original section path
Examples
Example 1: Archive Single DONE Item
In todos.org (Work section):
** DONE [#2] Fix authentication bug
CLOSED: [2025-12-04 Thu 15:30]
:PROPERTIES:
:CREATED: [2025-11-20 Thu 10:00]
:CATEGORY: work
:END:
:LOGBOOK:
- State "DONE" from "STRT" [2025-12-04 Thu 15:30]
:END:
Fixed null pointer in validation
After archiving:
- Copy entire entry to
~/desktop/org/archive/work.org - Add ARCHIVE_* properties
- Remove from todos.org Work section
Example 2: Archive Completed Project
In todos.org (Projects section):
** DONE Keyboard firmware improvements [3/3]
CLOSED: [2025-12-04 Thu 15:30]
*** DONE Leader key implementation
CLOSED: [2025-11-25 Tue 10:00]
*** DONE Nav/media layer standardization
CLOSED: [2025-12-02 Mon 14:00]
*** DONE Symbol combos
CLOSED: [2025-12-04 Thu 15:30]
After archiving:
- Entire project tree goes to
archive/projects.org - All subtasks preserved
- Original structure maintained
Example 3: Weekly Batch Archive
Process:
- Identify all DONE/CANX from past week
- Group by section
- Archive each group to appropriate archive file
- Verify removal from todos.org
# Find this week's completed items
week_ago=$(date -d "7 days ago" +"%Y-%m-%d")
grep -B5 "CLOSED: \[$week_ago" ~/desktop/org/todos.org | \
grep "^** \(DONE\|CANX\)"
Searching Archived Items
Find Archived TODO
# Search in all archives
grep -r "authentication bug" ~/desktop/org/archive/
# Search in specific archive
grep "project name" ~/desktop/org/archive/work.org
Find by Date
# Items archived in December 2025
grep "ARCHIVE_TIME: 2025-12" ~/desktop/org/archive/work.org
Find by Completion Date
# Items completed in November
grep "CLOSED: \[2025-11" ~/desktop/org/archive/work.org
Archive Maintenance
Monthly Review
Once per month:
- Review archive files
- Check for patterns (what got done?)
- Identify what got cancelled (why?)
- Extract learnings
Yearly Cleanup
Once per year:
- Archive old archive files (older than 1 year)
- Compress if needed
- Keep structure for reference
Tips
- Archive weekly: Don’t let DONE items pile up
- Keep recent: Archive items >7 days old
- Preserve context: Keep all properties and notes
- Search later: Archives are searchable history
- Learn from archives: Review what you accomplished
- Don’t delete: Archives are valuable record
- Batch process: Faster than one-by-one
- Verify before removing: Make sure archived successfully
Archive vs Delete
Archive (Recommended)
- ✅ Completed work
- ✅ Cancelled with reason
- ✅ Historical record valuable
- ✅ May need to reference later
Delete
- ❌ Duplicate entries
- ❌ Test/placeholder TODOs
- ❌ Accidental captures
- ❌ Spam/invalid entries
Rule: When in doubt, archive (disk space is cheap)
Integration with Review
During Weekly Review
-
Archive last week’s DONE
# Find week's completions grep -B5 "CLOSED: \[$(date -d '7 days ago' +%Y-%m-%d)" \ ~/desktop/org/todos.org -
Review what got done
- What did you accomplish?
- Any patterns?
- Celebrate wins!
-
Clean up todos.org
- Remove archived items
- Keeps main file manageable
During Monthly Review
-
Review month’s archives
grep "ARCHIVE_TIME: $(date +%Y-%m)" \ ~/desktop/org/archive/*.org -
Extract insights
- High completion areas?
- What got cancelled?
- Time estimates accurate?
Validation Checklist
Before archiving:
- Item is DONE or CANX
- Has CLOSED timestamp
- Closed more than 7 days ago (unless urgent cleanup)
- All properties preserved
- LOGBOOK entries included
- Archive destination correct
After archiving:
- Item in correct archive file
- ARCHIVE_* properties added
- Removed from todos.org
- Can find via search
Common Questions
Q: How long to keep archives? A: Indefinitely. They’re your work history.
Q: Archive incomplete projects? A: Only if completely abandoned. Usually mark as CANX first.
Q: Archive recurring tasks? A: Only old completed instances (>2 weeks old).
Q: Can I restore from archive? A: Yes, copy back to todos.org and remove ARCHIVE_* properties.
Q: Archive immediately after DONE? A: No, keep recent completions visible for a week.
Q: Archive file gets huge? A: Normal. Can split by year if needed (archive/work-2024.org).
Anti-Patterns
❌ Don’t archive active TODOs: Only DONE/CANX ❌ Don’t lose context: Keep all properties and notes ❌ Don’t archive too quickly: Keep recent completions visible ❌ Don’t skip ARCHIVE_ properties*: Important metadata ❌ Don’t delete instead of archive: History is valuable ✅ Do archive regularly: Weekly is good rhythm ✅ Do preserve structure: Maintain original hierarchy ✅ Do search archives: They’re a knowledge base ✅ Do review archives: Learn from your history
Refile - Move TODOs Between Sections
Purpose
Move TODOs from inbox to proper sections in todos.org, or reorganize between sections.
When to Use
- Processing inbox.org items
- Moving TODOs to correct section
- Reorganizing as priorities change
- Converting quick captures to structured TODOs
Refile Process
1. Review Inbox Items
# Show current inbox
cat ~/desktop/org/inbox.org
# Count items
grep -c "^\* TODO" ~/desktop/org/inbox.org
2. For Each Item, Determine Section
Work Section: Job-related, upstream, team collaboration Projects Section: Multi-step initiatives, features Systems Section: Homelab, infrastructure, NixOS Personal Section: Life admin, errands, appointments Routines Section: Recurring meetings, habits Health Section: Health appointments, tracking
3. Add Appropriate Properties
When refiling, enhance the TODO:
- Add CREATED timestamp if missing
- Set CATEGORY property
- Add priority if important
- Set SCHEDULED or DEADLINE if time-sensitive
- Add context notes
4. Remove from Inbox
After successfully refiling to todos.org, remove from inbox.org.
Refile Templates
From Simple Inbox Entry
Inbox:
* TODO Review PR #123
Refiled to Work:
** TODO Review PR #123
:PROPERTIES:
:CREATED: [2025-12-04 Thu 15:30]
:CATEGORY: work
:END:
https://github.com/tektoncd/pipeline/pull/123
From Quick Capture to Scheduled Task
Inbox:
* TODO Setup MQTT broker
Refiled to Systems:
** TODO [#3] Setup MQTT broker on rhea
SCHEDULED: <2025-12-06 Fri>
:PROPERTIES:
:CREATED: [2025-12-04 Thu 15:30]
:CATEGORY: systems
:END:
- Install mosquitto
- Configure authentication
- Setup firewall rules
From Note to Project
Inbox:
* TODO Improve keyboard firmware
Refiled to Projects:
** TODO Keyboard firmware improvements [0/3]
:PROPERTIES:
:CREATED: [2025-12-04 Thu 15:30]
:END:
*** TODO Implement leader keys
SCHEDULED: <2025-12-05 Fri>
*** TODO Standardize nav/media layers
*** TODO Add symbol combos
Decision Matrix
Which Section?
| Content | Section | Example |
|---|---|---|
| Upstream work, team tasks | Work | “Review CLI roadmap” |
| Multi-step feature/goal | Projects | “Setup home automation” |
| Infrastructure, configs | Systems | “Configure wireguard VPN” |
| Life admin, personal | Personal | “Schedule dentist” |
| Recurring events | Routines | “Weekly team meeting” |
| Health-related | Health | “Exercise tracking” |
Priority Assignment
| Urgency | Priority | When |
|---|---|---|
| Critical/Urgent | [#1] | Must do today/tomorrow |
| Important | [#2] | Should do this week |
| Normal | [#3] | Regular work |
| Low | [#4] | Nice to have |
| Someday | [#5] | Future consideration |
Scheduling Guidelines
Set SCHEDULED when:
- You know when to start
- Depends on specific date
- Part of time-blocked plan
Set DEADLINE when:
- Hard due date exists
- External commitment
- Time-sensitive
Leave unscheduled when:
- Flexible timing
- Backlog item
- Waiting for dependencies
Workflow Steps
Daily Inbox Processing (5 minutes)
-
Open inbox
cat ~/desktop/org/inbox.org -
For each item:
- Decide section
- Add properties
- Set priority/schedule if needed
- Find insertion point in todos.org
- Insert using Edit tool
- Remove from inbox
-
Clear processed items Update inbox.org to remove refiled items
Weekly Inbox Cleanup (10 minutes)
- Review all inbox items
- Batch process by section:
- All work items → Work section
- All systems items → Systems section
- etc.
- Archive or delete:
- Old items no longer relevant
- Duplicates
- Already done
Examples
Example 1: Simple Work Task
Inbox item:
* TODO Fix bug in authentication
Process:
- Identify: Work section (job-related)
- Enhance: Add priority, properties
- Insert after Work header:
** TODO [#2] Fix bug in authentication
:PROPERTIES:
:CREATED: [2025-12-04 Thu 15:30]
:CATEGORY: work
:END:
Reported issue with null pointer in validation
- Remove from inbox
Example 2: Multi-Part Project
Inbox item:
* TODO Setup backup system
Process:
- Identify: Systems section (infrastructure)
- Break down into project with subtasks
- Insert in Systems:
** TODO Setup automated backups [0/4]
:PROPERTIES:
:CREATED: [2025-12-04 Thu 15:30]
:CATEGORY: systems
:END:
*** TODO Choose backup tool (restic vs borg)
*** TODO Configure backup schedules
*** TODO Setup remote storage
*** TODO Test restore procedure
- Remove from inbox
Example 3: Time-Sensitive Personal Task
Inbox item:
* TODO Renew car insurance
Process:
- Identify: Personal section
- Add deadline (expires Dec 15)
- Set priority (important)
- Insert in Personal:
** TODO [#2] Renew car insurance
DEADLINE: <2025-12-15 Mon>
:PROPERTIES:
:CREATED: [2025-12-04 Thu 15:30]
:CATEGORY: personal
:END:
Policy expires Dec 15
Compare quotes before renewing
- Remove from inbox
Example 4: Recurring Event
Inbox item:
* TODO Weekly team sync
Process:
- Identify: Routines section
- Set recurring schedule
- Insert in Routines:
** STRT Weekly team sync
SCHEDULED: <2025-12-05 Fri 14:00 ++1w>
:PROPERTIES:
:LAST_REPEAT: [2025-11-28 Fri 14:00]
:CATEGORY: work
:END:
Meeting link: https://meet.google.com/...
- Remove from inbox
Example 5: Reorganize Between Sections
Current location (in Work):
** TODO Setup home automation system
Should be in Projects:
- Read current TODO from Work section
- Decide it’s actually a project
- Expand into project with subtasks
- Insert in Projects section:
** TODO Home automation with Home Assistant [0/5]
:PROPERTIES:
:CREATED: [2025-11-15 Mon 10:00]
:END:
*** TODO Setup Home Assistant on Raspberry Pi
*** TODO Configure MQTT broker
*** TODO Add temperature sensors
*** TODO Setup automations
*** TODO Mobile app configuration
- Remove from Work section
Batch Refiling
Process Multiple Work Items
# Show all work-related in inbox
grep -A2 "TODO.*\(PR\|review\|upstream\|team\)" ~/desktop/org/inbox.org
# Refile each to Work section
# Then clear from inbox
Process Multiple System Items
# Show all system-related in inbox
grep -A2 "TODO.*\(setup\|configure\|deploy\|nixos\)" ~/desktop/org/inbox.org
# Refile each to Systems section
Tips
- Process inbox regularly: Daily keeps it manageable
- Don’t overthink: When unsure, pick best guess and move on
- Enhance while refiling: Add context, links, notes
- Break down large items: Convert to projects
- Delete ruthlessly: Old captures may no longer be relevant
- Link to source: Add links to emails, notes, issues
- Set realistic dates: Don’t over-schedule
- Use categories: Helps with filtering later
Common Patterns
Email to TODO
Capture from email → inbox → refile to Work with context:
** TODO Follow up on deployment discussion
:PROPERTIES:
:CREATED: [2025-12-04 Thu 15:30]
:CATEGORY: work
:END:
From email thread with Alice
Need to schedule deployment for staging environment
Meeting Action Item
Capture in meeting → inbox → refile with deadline:
** TODO Prepare architecture presentation
DEADLINE: <2025-12-10 Wed>
:PROPERTIES:
:CREATED: [2025-12-04 Thu 15:30]
:CATEGORY: work
:END:
Action item from team meeting
Present new architecture proposal
Idea to Project
Random idea → inbox → refile as project:
** TODO Build personal dashboard [0/4]
:PROPERTIES:
:CREATED: [2025-12-04 Thu 15:30]
:END:
*** TODO Research dashboard frameworks
*** TODO Design layout and widgets
*** TODO Implement data sources
*** TODO Deploy to homelab
Validation Checklist
Before marking as refiled:
- Inserted in correct section
- Added CREATED timestamp
- Set CATEGORY property
- Priority set if important
- Scheduled/deadline if time-sensitive
- Context and links added
- Removed from inbox
Integration
With Email
# Create inbox entry from email
echo "* TODO Follow up with $NAME
From: $EMAIL_SUBJECT
" >> ~/desktop/org/inbox.org
With Git
# Create inbox entry after finding issue
echo "* TODO Fix issue #$ISSUE_NUM
$(git log --oneline | head -1)
" >> ~/desktop/org/inbox.org
With Notes
Link refiled TODO to note:
** TODO Implement new feature
From: [[file:~/desktop/org/notes/20251204--feature-design__work.org][Feature Design]]
Avoiding Common Mistakes
❌ Don’t leave in inbox forever: Process regularly ❌ Don’t create duplicates: Check if already exists in todos.org ❌ Don’t lose context: Add links and notes while refiling ❌ Don’t over-elaborate: Can add details later when working on it ❌ Don’t skip properties: At least add CREATED and CATEGORY ✅ Do process in batches: Faster than one-by-one ✅ Do enhance while refiling: Better than bare TODO ✅ Do delete old items: Inbox is not a graveyard ✅ Do link sources: Email, notes, issues, PRs
ReviewInbox - Inbox Review Workflow
Purpose
Analyze items in ~/desktop/org/inbox.org and propose appropriate refile targets in ~/desktop/org/todos.org.
When to Use
- User asks to “review inbox”
- User wants refile suggestions for inbox items
- User says “analyze my inbox” or similar
Workflow Steps
1. Read the Inbox
Read ~/desktop/org/inbox.org to get all current items.
2. Read the TODOs File Structure
Read ~/desktop/org/todos.org to understand:
- Available top-level sections (Work, Projects, Systems, Personal, Routines, Appointments, Health)
- Existing projects that might be relevant
- Current active areas of focus
3. Analyze Each Inbox Item
For each TODO or link in inbox, consider:
Context clues:
- Keywords (work, tekton, emacs, keyboard, homelab, etc.)
- Related systems mentioned (nixos, github, servers, etc.)
- Personal vs. work nature
- Whether it fits an existing project
Refile targets:
- Work section - Tekton, OpenShift Pipelines, upstream work, professional development
- Check for existing related projects to nest under
- Projects section - Multi-step initiatives (Personal finance, Keyboard, Websites, etc.)
- Group related items under existing projects when possible
- Systems section - Infrastructure, emacs config, homelab, nix, servers
- Emacs configuration items go under “Emacs configuration cleanup” project
- Skills/Claude items group together
- Server/infrastructure tasks
- Personal section - Life admin, appointments, purchases
- Routines section - Only for recurring scheduled items
- Health section - Health-related tasks
- Appointments section - Specific time-based events
Special cases:
- Web links without context → Suggest archiving or adding to relevant project notes
- Items already done → Mark as DONE and suggest archiving
- Items that are really questions/research → May belong in notes instead of TODOs
4. Present Analysis
For each inbox item, provide:
- Item summary (brief description)
- Proposed target (section and optionally which project/heading)
- Reasoning (why this location makes sense)
- Alternative (if there’s another reasonable option)
Format as a clear list:
1. "Item title/description"
→ Target: Work / A tool to manage pull-request from cli
→ Reason: GitHub/PR tooling, fits existing project
2. "Another item"
→ Target: Systems / Emacs configuration "cleanup"
→ Reason: Emacs feature enhancement
→ Alternative: Could also be standalone in Systems
5. Handle Special Items
- Links - Group together and suggest:
- Archive if no longer relevant
- Add to project notes if related to active work
- Keep in inbox if needs review
- Completed items - Mark as DONE, suggest archiving
- Ambiguous items - Ask user for clarification before suggesting target
6. Offer Next Steps
After presenting suggestions:
- Ask if user wants to proceed with refiling
- Offer to do the refile operations (using Refile workflow)
- Or user can manually refile in Emacs
Important Notes
DO NOT automatically refile - Only propose targets and wait for approval
Context awareness:
- Consider user’s current focus areas (check recent todos.org activity)
- Look for natural groupings (multiple related items → same project)
- Respect existing project structure
Properties to preserve:
- CREATED timestamps
- LOGBOOK entries
- Any properties from inbox items
After refiling:
- Keep “From: [[file:inbox.org][inbox]]” links
- Add proper PROPERTIES drawer with :CREATED: timestamp
- Maintain original content and context
Example Interaction
User: "Review my inbox and suggest where to refile things"
Claude: [Reads inbox.org and todos.org]
I found 10 items in your inbox. Here are my refile suggestions:
1. "Update aion's job" (sync folders, traefik, MQTT)
→ Target: Systems / Migrate aion project
→ Reason: Fits perfectly with existing aion migration work
2. "Figure out syncthing conflicts"
→ Target: Systems (standalone)
→ Reason: Infrastructure/syncthing task
3. "Create Python skill"
→ Target: Systems (group with other skills)
→ Reason: Groups with Rust, Android, org-mode skills
[... etc for all items ...]
Would you like me to proceed with refiling these items?
Tips
- Group similar items (e.g., all skill creation tasks together)
- Look for existing projects before suggesting new standalone items
- Consider the user’s workflow patterns (check SCHEDULED dates, active projects)
- When in doubt, ask for clarification rather than guessing