fedora-csb-system-manager

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

  1. Read the item (with properties and notes)
  2. Determine archive location (based on section)
  3. Copy to archive file with structure
  4. 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:

  1. Copy entire entry to ~/desktop/org/archive/work.org
  2. Add ARCHIVE_* properties
  3. 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:

  1. Identify all DONE/CANX from past week
  2. Group by section
  3. Archive each group to appropriate archive file
  4. 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:

  1. Review archive files
  2. Check for patterns (what got done?)
  3. Identify what got cancelled (why?)
  4. Extract learnings

Yearly Cleanup

Once per year:

  1. Archive old archive files (older than 1 year)
  2. Compress if needed
  3. Keep structure for reference

Tips

  1. Archive weekly: Don’t let DONE items pile up
  2. Keep recent: Archive items >7 days old
  3. Preserve context: Keep all properties and notes
  4. Search later: Archives are searchable history
  5. Learn from archives: Review what you accomplished
  6. Don’t delete: Archives are valuable record
  7. Batch process: Faster than one-by-one
  8. Verify before removing: Make sure archived successfully

Archive vs Delete

  • ✅ 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

  1. Archive last week’s DONE

    # Find week's completions
    grep -B5 "CLOSED: \[$(date -d '7 days ago' +%Y-%m-%d)" \
      ~/desktop/org/todos.org
    
  2. Review what got done

    • What did you accomplish?
    • Any patterns?
    • Celebrate wins!
  3. Clean up todos.org

    • Remove archived items
    • Keeps main file manageable

During Monthly Review

  1. Review month’s archives

    grep "ARCHIVE_TIME: $(date +%Y-%m)" \
      ~/desktop/org/archive/*.org
    
  2. 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)

  1. Open inbox

    cat ~/desktop/org/inbox.org
    
  2. 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
  3. Clear processed items Update inbox.org to remove refiled items

Weekly Inbox Cleanup (10 minutes)

  1. Review all inbox items
  2. Batch process by section:
    • All work items → Work section
    • All systems items → Systems section
    • etc.
  3. 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:

  1. Identify: Work section (job-related)
  2. Enhance: Add priority, properties
  3. 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
  1. Remove from inbox

Example 2: Multi-Part Project

Inbox item:

* TODO Setup backup system

Process:

  1. Identify: Systems section (infrastructure)
  2. Break down into project with subtasks
  3. 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
  1. Remove from inbox

Example 3: Time-Sensitive Personal Task

Inbox item:

* TODO Renew car insurance

Process:

  1. Identify: Personal section
  2. Add deadline (expires Dec 15)
  3. Set priority (important)
  4. 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
  1. Remove from inbox

Example 4: Recurring Event

Inbox item:

* TODO Weekly team sync

Process:

  1. Identify: Routines section
  2. Set recurring schedule
  3. 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/...
  1. Remove from inbox

Example 5: Reorganize Between Sections

Current location (in Work):

** TODO Setup home automation system

Should be in Projects:

  1. Read current TODO from Work section
  2. Decide it’s actually a project
  3. Expand into project with subtasks
  4. 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
  1. 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

  1. Process inbox regularly: Daily keeps it manageable
  2. Don’t overthink: When unsure, pick best guess and move on
  3. Enhance while refiling: Add context, links, notes
  4. Break down large items: Convert to projects
  5. Delete ruthlessly: Old captures may no longer be relevant
  6. Link to source: Add links to emails, notes, issues
  7. Set realistic dates: Don’t over-schedule
  8. 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:

  1. Item summary (brief description)
  2. Proposed target (section and optionally which project/heading)
  3. Reasoning (why this location makes sense)
  4. 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