Implement opal-task Phase 1: Database foundation
- Add SQLite database with schema for tasks, tags, and working_set - Implement config management with Viper (opal.yml) - Create Task struct with proper types (*time.Time, Priority int) - Add database migration system - Implement recurrence pattern parsing (1d, 1w, 1m, 1y) - Setup project structure with cmd/ and internal/engine/ - Add dependencies: sqlite3, uuid, cobra, viper, color
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# Opal task manager
|
||||
This is the counterpart to jade, where we track tasks.
|
||||
## Syntax
|
||||
`opal [<filter>] [<command>] [<modifier>]`
|
||||
|
||||
### <filter>
|
||||
Filters the Task to run a command on. Adressing a set of subtasks.
|
||||
`opal +home -garden status:pending list` - lists all tasks with the +home tag and status pending, but excludes +garden tags. This is a compound filter with implicit AND.
|
||||
### <command>
|
||||
`add` - Creates a new task
|
||||
`done` - Completes a task
|
||||
`list` - Lists task
|
||||
`count` - Counts number of tasks
|
||||
|
||||
### <modifier>
|
||||
Modifies atributes of tasks.
|
||||
|
||||
## Task
|
||||
A task has multiple atributes:
|
||||
`status` - pending, completed, deleted, recurring
|
||||
`description` - One line summary
|
||||
`start` - the most recent time at which this task was started (a task with no start key is not active)
|
||||
`end` - if present, the time at which this task was completed or deleted
|
||||
`due` - Use a due date to specify the exact date by which a task must be completed.`created` - Time task created
|
||||
`schedueled` - represents the earliest opportunity to work on a task. If a task has a scheduled date, then once that date passes, the task is considered ready. Tasks with no scheduled is considered always ready.
|
||||
`wait` - a wait date for a task, which has the effect of hiding the task from you until that date.
|
||||
`until` - the point at which to mark task as deleted. an expiration date.
|
||||
|
||||
## Recurrence
|
||||
A task can be recurring. Then we have a template task and instances of that task.
|
||||
`opal add Change sheets due:sun recur:1w` - A task to be done every sunday.
|
||||
A recurring task is given a status of recurring which hides it from view. The recurring task you create is called the template task, from which recurring tasks instances are created. So the template remains hidden, and the recurring instances that spawn from it are the tasks that you will see and complete.
|
||||
|
||||
## Storage
|
||||
Sqlite store.
|
||||
Reference in New Issue
Block a user