Phase 6: Display and Basic Commands
- Add display.go with colored formatting for tasks, projects, tags
- Implement cmd/root.go with Cobra command structure
- Implement cmd/list.go for listing and filtering tasks
- Implement cmd/add.go with support for regular and recurring tasks
- Implement cmd/done.go with bulk completion and confirmation
Phase 7: Advanced Commands
- Implement cmd/modify.go for updating task attributes
- Implement cmd/delete.go with soft delete confirmation
- Implement cmd/start.go and cmd/stop.go for task timing
- Implement cmd/count.go for counting filtered tasks
- Implement cmd/projects.go and cmd/tags.go for aggregation
Phase 8: Integration and Polish
- Update main.go to use CLI commands
- Add colored output with fatih/color
- Format task lists with proper alignment
- Highlight overdue tasks in red, upcoming in yellow
- Test end-to-end workflow: add, list, done, recurring tasks
- Verify recurrence spawning works correctly
All CLI commands functional and tested!
- Complete SpawnNextInstance() for creating recurring task instances
- Implement automatic next instance spawning on task completion
- Add support for 'until' date to expire recurrences
- Copy tags from template to new instances
- Add comprehensive recurrence tests (6 tests, all passing)
- Test pattern parsing, formatting, next due calculation
- Test end-to-end recurring task workflow
- Test expiration with until dates
- Implement BuildWorkingSet() to create ephemeral display ID mappings
- Implement LoadWorkingSet() to restore from database
- Add GetTaskByDisplayID() for ID resolution
- Add GetTasks() and Size() helper methods
- Persist working set to SQLite working_set table
- Add comprehensive tests (5 tests, all passing)
- Support filtered working sets
- Implement openDepository function in cmd/root.go to open the depository directory in $EDITOR
- Falls back to vi if $EDITOR is not set
- Update README.md with new usage section documenting bare 'jade' command
- Include config.go changes that move config location to depository/.jade/
Complete implementation of note management CLI with all core features:
Commands:
- add: Create new notes in $EDITOR with auto-generated filenames
- list: Display all notes with titles, paths, and tags
- search: Full-text search via ripgrep, tag-based filtering
- tags: List all tags with occurrence counts
- edit: Fuzzy search and edit notes by title
- rm: Move notes to trash with confirmation prompt
Features:
- Automatic depository structure initialization (.jade/trash/)
- Configurable tag prefix (default '+')
- Parse title from first # heading (filename fallback)
- Extract tags anywhere in content
- Parse both [[wiki-links]] and [markdown](links)
- Trash system with timestamps to prevent conflicts
Technical:
- Global config at ~/.config/jade/config.yml
- Per-depository settings support
- Ripgrep integration for fast search
- $EDITOR integration for note editing
- Comprehensive README with usage examples