cli + tui to publish to leaflet (wip) & manage tasks, notes & watch/read lists 馃崈
charm leaflet readability golang
29
fork

Configure Feed

Select the types of activity you want to include in your feed.

1# ROADMAP 2 3Noteleaf is a command-line and TUI tool for managing tasks, notes, media, and articles. This roadmap outlines milestones: current capabilities, planned baseline features (v1), and future directions. 4 5## Core Usability 6 7The foundation across all domains is implemented. Tasks support CRUD operations, projects, tags, contexts, and time tracking. Notes have create, list, read, edit, and remove commands with interactive and static modes. Media queues exist for books, movies, and TV with progress and status management. SQLite persistence is in place with setup, seed, and reset commands. TUIs and colorized output are available. 8 9## RC 10 11### CORE 12 13- [ ] Ensure **all documented subcommands** exist and work: 14 - Tasks: add, list, view, update, edit, delete, projects, tags, contexts, done, start, stop, timesheet 15 - Notes: create, list, read, edit, remove 16 - Books: add, list, reading, finished, remove, progress, update 17 - Movies: add, list, watched, remove 18 - TV: add, list, watching, watched, remove 19 - Articles: add, list, view, read, remove 20- [ ] Confirm all **aliases** work (`todo`, `ls`, `rm`, etc.). 21- [ ] Verify **flags** and argument parsing match man page (priority, project, context, due, tags, etc.). 22- [ ] Implement or finish stubs (e.g. `config management` noted in code). 23 24### Task Management Domain 25 26- [ ] Verify tasks can be created with all attributes (priority, project, context, due date, tags). 27- [ ] Confirm task listing supports interactive and static modes. 28- [ ] Implement status filtering (`pending`, `completed`, etc.). 29- [ ] Validate time tracking (start/stop) writes entries and timesheet summarizes correctly. 30- [ ] Ensure update supports add/remove tags and all fields. 31- [ ] Test interactive editor (`task edit`). 32 33### Notes Domain 34 35- [ ] Implement note creation from: 36 - Inline text 37 - File (`--file`) 38 - Interactive input (`--interactive`) 39- [ ] Verify note list interactive TUI works, static list fallback works. 40- [ ] Confirm filtering by tags and `--archived`. 41- [ ] Ensure notes can be opened, edited in `$EDITOR`, and deleted. 42 43### Media Domains 44 45#### Books 46 47- [ ] Implement search + add (possibly external API). 48- [ ] Verify list supports statuses (`queued`, `reading`, `finished`). 49- [ ] Progress updates (`book progress`) work with percentages. 50- [ ] Status update (`book update`) accepts valid values. 51 52#### Movies 53 54- [ ] Implement search + add. 55- [ ] Verify `list` with status filtering (`all`, `queued`, `watched`). 56- [ ] Confirm `watched`/`remove` commands update correctly. 57 58#### TV 59 60- [ ] Implement search + add. 61- [ ] Verify `list` with multiple statuses (`queued`, `watching`, `watched`). 62- [ ] Ensure `watching`, `watched`, `remove` commands behave correctly. 63 64#### Articles 65 66- [ ] Implement article parser (XPath/domain-specific rules). 67- [ ] Save articles in Markdown + HTML. 68- [ ] Verify metadata is stored in DB. 69- [ ] Confirm list supports query, author filter, limit. 70- [ ] Test article view/read/remove. 71 72### Configuration & Data 73 74- [ ] Implement **config management** (flagged TODO in code). 75- [ ] Define config file format (TOML, YAML, JSON). 76- [ ] Set default config/data paths: 77 - Linux: `~/.config/noteleaf`, `~/.local/share/noteleaf` 78 - macOS: `~/Library/Application Support/noteleaf` 79 - Windows: `%APPDATA%\noteleaf` 80- [ ] Implement overrides with environment variables (`NOTELEAF_CONFIG`, `NOTELEAF_DATA_DIR`). 81- [ ] Ensure consistent DB schema migrations and versioning. 82 83### Documentation 84 85- [ ] Finalize **man page** (plaintext + roff). 86- [ ] Write quickstart guide in `README.md`. 87- [ ] Add examples for each command. 88- [ ] Document config file with defaults and examples. 89- [ ] Provide developer docs for contributing. 90 91### QA 92 93- [ ] Verify **unit tests** for all handlers (TaskHandler, NoteHandler, Media Handlers). 94- [ ] Write **integration tests** covering CLI flows. 95- [ ] Ensure error handling works for: 96 - Invalid IDs 97 - Invalid flags 98 - Schema corruption (already tested in repo) 99- [ ] Test cross-platform behavior (Linux/macOS/Windows). 100 101### Packaging 102 103- [ ] Provide prebuilt binaries (via GoReleaser). 104- [ ] Add installation instructions (Homebrew, AUR, Scoop, etc.). 105- [ ] Version bump to `v1.0.0-rc1`. 106- [ ] Publish man page with release. 107- [ ] Verify `noteleaf --version` returns correct string. 108 109## v1 Features 110 111Planned functionality for a complete baseline release. 112 113### Tasks 114 115- [ ] Model 116 - [ ] Dependencies 117 - [ ] Recurrence (`recur`, `until`, templates) 118 - [ ] Wait/scheduled dates 119 - [ ] Urgency scoring 120- [ ] Operations 121 - [ ] `annotate` 122 - [ ] Bulk edit and undo/history 123 - [ ] `$EDITOR` integration 124- [ ] Reports and Views 125 - [ ] Next actions 126 - [ ] Completed/waiting/blocked reports 127 - [ ] Calendar view 128 - [ ] Sorting and urgency-based views 129- [ ] Queries and Filters 130 - [ ] Rich query language 131 - [ ] Saved filters and aliases 132- [ ] Interoperability 133 - [ ] JSON import/export 134 - [ ] todo.txt compatibility 135 136### Notes 137 138- [ ] Commands 139 - [ ] `note search` 140 - [ ] `note tag` 141 - [ ] `note recent` 142 - [ ] `note templates` 143 - [ ] `note archive` 144 - [ ] `note export` 145- [ ] Features 146 - [ ] Full-text search 147 - [ ] Linking between notes, tasks, and media 148 149### Media 150 151- [ ] Articles/papers/blogs 152 - [ ] Parser with domain-specific rules 153 - [ ] Commands: `add`, `list`, `view`, `remove` 154 - [ ] Metadata validation and storage 155- [ ] Books 156 - [ ] Source tracking and ratings 157 - [ ] Genre/topic tagging 158- [ ] Movies/TV 159 - [ ] Ratings and notes 160 - [ ] Genre/topic tagging 161 - [ ] Episode/season progress for TV 162 - [ ] Platform/source tracking 163 164## Beyond v1 165 166Features that demonstrate Go proficiency and broaden Noteleaf鈥檚 scope. 167 168### Tasks 169 170- [ ] Parallel report generation and background services 171- [ ] Hook system for task lifecycle events 172- [ ] Plugin mechanism 173- [ ] Generics-based filter engine 174- [ ] Functional options for configuration 175- [ ] Error handling with wrapping and sentinel checks 176 177### Notes 178 179- [ ] Templates system for note types 180- [ ] Versioning and history 181- [ ] Export with formatting 182- [ ] Import from other systems 183 184### Media 185 186- [ ] External imports (Goodreads, IMDB, Letterboxd) 187- [ ] Cross-referencing across media types 188- [ ] Analytics: velocity, completion rates 189 190### Articles 191 192- [ ] Enhanced parsing coverage 193- [ ] Export to multiple formats 194- [ ] Linking with tasks and notes 195 196### User Experience 197 198- [ ] Shell completions 199- [ ] Manpages and docs generator 200- [ ] Theming and customizable output 201- [ ] Calendar integration 202 203### Tasks 204 205- [ ] Sub-tasks and hierarchical tasks 206- [ ] Visual dependency mapping 207- [ ] Forecasting and smart suggestions 208- [ ] Habit and streak tracking 209- [ ] Context-aware recommendations 210 211### Notes 212 213- [ ] Graph view of linked notes 214- [ ] Content extraction and summarization 215- [ ] Encryption and privacy controls 216 217### Media 218 219- [ ] Podcast and YouTube management 220- [ ] Multi-format (audiobooks, comics) 221- [ ] Media consumption goals and streaks 222- [ ] Media budget tracking 223- [ ] Seasonal and energy-based filtering 224 225### Articles 226 227- [ ] Content validation 228- [ ] Encryption support 229- [ ] Advanced classification 230 231## Technical Infrastructure 232 233### Completed 234 235SQLite persistence, CI with GitHub Actions and Codecov, TUIs with Charm stack, initial help system. 236 237### Planned 238 239- Prebuilt binaries for releases 240- Installation and usage documentation 241- Contribution guide and developer docs 242- Consistent argument parsing 243- Backup/restore 244- Multiple profiles 245- Optional synchronization 246 247## v1 Feature Matrix 248 249| Domain | Feature | Status | 250|----------|-----------------------|-----------| 251| Tasks | CRUD | Complete | 252| Tasks | Projects/tags | Complete | 253| Tasks | Time tracking | Complete | 254| Tasks | Dependencies | Planned | 255| Tasks | Recurrence | Planned | 256| Tasks | Wait/scheduled | Planned | 257| Tasks | Urgency scoring | Planned | 258| Notes | CRUD | Complete | 259| Notes | Search/tagging | Planned | 260| Media | Books/movies/TV | Complete | 261| Media | Articles | Planned | 262| Media | Source/ratings | Planned | 263| Articles | Parser + storage | Planned | 264| System | SQLite persistence | Complete | 265| System | Synchronization | Future | 266| System | Import/export formats | Future |