134 lines
4.7 KiB
Markdown
134 lines
4.7 KiB
Markdown
# Task Sweeper for Godspeed
|
|
|
|
A utility script to consolidate scattered incomplete tasks from markdown files into your Godspeed Inbox.
|
|
|
|
## Purpose
|
|
|
|
If you have notes scattered across directories (like `2024/`, `2025/`, project folders, etc.) with incomplete tasks in markdown format, this script will:
|
|
|
|
1. **Find all incomplete tasks** (`- [ ] Task name`) in markdown files
|
|
2. **Move them** to your Godspeed `Inbox.md` file
|
|
3. **Preserve completed/cancelled tasks** in their original locations
|
|
4. **Add source tracking** so you know where each task came from
|
|
5. **Clean up original files** by removing only the incomplete tasks
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
# Dry run to see what would happen
|
|
python sweep_tasks.py ~/Documents/Notes ~/Documents/Godspeed --dry-run
|
|
|
|
# Actually perform the sweep
|
|
python sweep_tasks.py ~/Documents/Notes ~/Documents/Godspeed
|
|
|
|
# Sweep from current directory
|
|
python sweep_tasks.py . ./godspeed
|
|
```
|
|
|
|
## Example Workflow
|
|
|
|
**Before sweeping:**
|
|
```
|
|
~/Documents/Notes/
|
|
├── 2024/
|
|
│ ├── projects/website.md
|
|
│ │ ├── - [x] Create wireframes
|
|
│ │ ├── - [ ] Design mockups ← Will be swept
|
|
│ │ └── - [ ] Get approval ← Will be swept
|
|
│ └── notes/meeting.md
|
|
│ ├── - [ ] Update docs ← Will be swept
|
|
│ └── - [x] Fix bug (completed)
|
|
├── 2025/
|
|
│ └── goals.md
|
|
│ └── - [ ] Launch feature ← Will be swept
|
|
└── random-notes.md
|
|
└── - [ ] Call dentist ← Will be swept
|
|
```
|
|
|
|
**After sweeping:**
|
|
```
|
|
~/Documents/Godspeed/
|
|
└── Inbox.md ← All incomplete tasks here
|
|
├── - [ ] Design mockups
|
|
│ From: 2024/projects/website.md
|
|
├── - [ ] Get approval
|
|
│ From: 2024/projects/website.md
|
|
├── - [ ] Update docs
|
|
│ From: 2024/notes/meeting.md
|
|
├── - [ ] Launch feature
|
|
│ From: 2025/goals.md
|
|
└── - [ ] Call dentist
|
|
From: random-notes.md
|
|
|
|
~/Documents/Notes/
|
|
├── 2024/
|
|
│ ├── projects/website.md ← Only completed tasks remain
|
|
│ │ └── - [x] Create wireframes
|
|
│ └── notes/meeting.md
|
|
│ └── - [x] Fix bug (completed)
|
|
├── 2025/
|
|
│ └── goals.md ← File cleaned/deleted if empty
|
|
└── random-notes.md ← File cleaned/deleted if empty
|
|
```
|
|
|
|
## Features
|
|
|
|
- **Safe Operation**: Always use `--dry-run` first to preview changes
|
|
- **Source Tracking**: Each swept task includes a note about its origin
|
|
- **Selective Processing**: Only moves incomplete tasks, preserves completed ones
|
|
- **Smart Cleanup**: Removes empty files or keeps non-task content
|
|
- **Godspeed Integration**: Creates properly formatted tasks with IDs for sync
|
|
- **Recursive Search**: Finds markdown files in all subdirectories
|
|
- **Exclusion Logic**: Skips the Godspeed directory itself and hidden files
|
|
|
|
## Integration with Godspeed Sync
|
|
|
|
After sweeping tasks:
|
|
|
|
1. **Review** the consolidated tasks in `Inbox.md`
|
|
2. **Upload to API**: Run `python -m src.cli godspeed upload`
|
|
3. **Organize in Godspeed**: Move tasks from Inbox to appropriate lists
|
|
4. **Sync back**: Run `python -m src.cli godspeed sync` to get organized structure
|
|
|
|
## Safety Features
|
|
|
|
- **Dry run mode** shows exactly what will happen without making changes
|
|
- **Backup recommendation**: The script modifies files, so backup your notes first
|
|
- **Preserve content**: Non-task content (headings, notes, etc.) remains in original files
|
|
- **Completed task preservation**: `[x]` and `[-]` tasks stay where they are
|
|
- **Error handling**: Graceful handling of unreadable files or parsing errors
|
|
|
|
## Example Output
|
|
|
|
```
|
|
🧹 Sweeping incomplete tasks from: /Users/you/Documents/Notes
|
|
📥 Target Inbox: /Users/you/Documents/Godspeed/Inbox.md
|
|
🔍 Dry run: False
|
|
============================================================
|
|
|
|
📁 Found 8 markdown files to process
|
|
|
|
📄 Processing: 2024/projects/website.md
|
|
🔄 Found 2 incomplete tasks:
|
|
• Design mockups
|
|
• Get client approval
|
|
✅ Keeping 1 completed/cleared tasks in place
|
|
✂️ Cleaned file (removed tasks): 2024/projects/website.md
|
|
|
|
📥 Writing 6 tasks to Inbox...
|
|
✅ Inbox updated: /Users/you/Documents/Godspeed/Inbox.md
|
|
|
|
============================================================
|
|
📊 SWEEP SUMMARY:
|
|
• Files processed: 3
|
|
• Tasks swept: 6
|
|
• Target: /Users/you/Documents/Godspeed/Inbox.md
|
|
|
|
🎉 Successfully swept 6 tasks!
|
|
💡 Next steps:
|
|
1. Review tasks in: /Users/you/Documents/Godspeed/Inbox.md
|
|
2. Run 'godspeed upload' to sync to API
|
|
3. Organize tasks into appropriate lists in Godspeed app
|
|
```
|
|
|
|
This tool is perfect for periodic "note cleanup" sessions where you consolidate scattered tasks into your main GTD system. |