complete category-scoped values, rules, and report parity
- Add category-bound date and numeric values - Complete rule execution and conflict handling - Expand Markdown and HTML report output
This commit is contained in:
83
README.md
83
README.md
@@ -14,8 +14,9 @@ database with the `.agnd` extension.
|
||||
## Features
|
||||
|
||||
- Free-form items with multiline notes, priority, due dates, done dates, alarms,
|
||||
numeric values, recurring schedules, and prerequisites. Completing a recurring
|
||||
item creates its next dated occurrence and carries its alarm and filing forward.
|
||||
independent date and numeric category values, recurring schedules, and
|
||||
prerequisites. Completing a recurring item creates its next dated occurrence
|
||||
and carries its alarm and filing forward.
|
||||
- Hierarchical categories with inherited membership and explicit many-to-many
|
||||
assignment and negative exclusions: an item exists once but can appear in many
|
||||
contexts.
|
||||
@@ -23,14 +24,15 @@ database with the `.agnd` extension.
|
||||
`today`, `tomorrow`, `next friday`, `in 3 days`, and ISO dates.
|
||||
- Live views for all items, tasks, upcoming work, completed work, and a datebook.
|
||||
- Full-text search plus composable Boolean filters over text, notes, categories,
|
||||
dates, done state, priority, numeric value, alarms, recurrence, and relative due
|
||||
windows.
|
||||
dates, done state, priority, category-scoped numeric values, alarms, recurrence,
|
||||
and relative due windows.
|
||||
- Agenda-style View Manager and Category Manager screens with editable live
|
||||
view definitions, hierarchy, category kinds, match phrases, and exclusivity.
|
||||
- Persistent per-view columns, custom headings and widths, numeric aggregates,
|
||||
filtered multi-section layouts, collapsed sections, and view reordering.
|
||||
- User-authored category rules with a live match preview and deterministic actions
|
||||
for assignments, exclusions, priority, value, dates, and completion.
|
||||
- Lotus-style live conditions and persistent actions with match previews,
|
||||
reversible conditional assignments, category-scoped date/numeric ranges and
|
||||
values, assignment removal, completion, structured export, and discard.
|
||||
- Marking and bulk completion, soft deletion with Trash recovery, sorting, and
|
||||
dependency visibility.
|
||||
- View-scoped CSV, JSON, Markdown, HTML, and iCalendar export, text/iCalendar
|
||||
@@ -130,13 +132,14 @@ or build failure stops the gate.
|
||||
|
||||
| Key | Action |
|
||||
| --- | --- |
|
||||
| Arrows or `h j k l` | Move selection / scroll |
|
||||
| Up/Down or `j`/`k` | Move between item rows |
|
||||
| Left/Right | Move between cells/columns |
|
||||
| `Insert` or `n` | Add a free-form item |
|
||||
| `F2` or `e` | Edit the selected item |
|
||||
| `F2` or `e` | Edit the selected item or bound value cell |
|
||||
| `F3` or `c` | Assign categories |
|
||||
| `F4` or `d` | Toggle done |
|
||||
| `F5` | Edit the item's note |
|
||||
| `F6` or `p` | Edit item properties |
|
||||
| `F6` or `p` | Edit priority, When, alarm, and recurrence |
|
||||
| `F7` or `Space` | Mark for bulk operations |
|
||||
| `F8` or `v` | View Manager |
|
||||
| `F9` | Category Manager |
|
||||
@@ -167,7 +170,8 @@ as typed TOML at `~/.config/rogue-agenda/preferences.toml`. The screen controls:
|
||||
- carriage-return and item markers
|
||||
- autosave checkpoint interval and destructive-action confirmations
|
||||
- ISO, US, European, or long date display and 12/24-hour time
|
||||
- decimal and thousands separators
|
||||
- decimal and thousands separators for legacy unbound numeric displays; bound
|
||||
numeric columns carry their own portable report formatting
|
||||
|
||||
Greenscreen, Nord, and Catppuccin Mocha use dedicated selected-row
|
||||
foreground/background pairs with at least 7:1 relative-luminance contrast.
|
||||
@@ -184,7 +188,8 @@ retention (`on-demand`, `on-close`, `end-of-day`, or `immediate`), completed-ite
|
||||
policy, automatic filing, numeric date order, first day of the week, default and
|
||||
named times, and note-editor tab width. `this week` and `next week` honor the
|
||||
chosen week boundary; `morning`, `afternoon`, and `evening` honor their configured
|
||||
times.
|
||||
times, plus whether Markdown/HTML reports include document/view headers and
|
||||
footers.
|
||||
|
||||
Enumerated preferences and document settings use choice popovers, so values such
|
||||
as themes, yes/no switches, policies, date formats, and week boundaries cannot be
|
||||
@@ -258,7 +263,9 @@ Open the View Manager with `F8`. Press `n` to create a view, `e` to edit one,
|
||||
`Ctrl-Up`/`Ctrl-Down` to reorder it, or `Delete` to remove it.
|
||||
|
||||
Boolean filters use `and`, `or`, `not`, and parentheses. Available predicates
|
||||
include `text~rust`, `note~budget`, `category=Work`, `priority<=2`, `value>100`,
|
||||
include `text~rust`, `note~budget`, `category=Work`, `priority<=2`,
|
||||
`numeric:Hours>7`, `numeric:Cost inside 100..500`,
|
||||
`date:"Review Date" outside 2026-08-01..2026-08-31`,
|
||||
`done`, `open`, `dated`, `undated`, `due<=7d`, `overdue`, `has-note`, `alarm`,
|
||||
`recurring`, and `nonrecurring`.
|
||||
For example:
|
||||
@@ -267,15 +274,32 @@ For example:
|
||||
category=Work and open and (priority<=2 or due<=3d)
|
||||
```
|
||||
|
||||
Columns use `field:width:heading:aggregate`, separated by commas. Fields are
|
||||
`item`, `categories`, `when`, `priority`, `note`, `value`, `done`, `alarm`,
|
||||
`recurrence`, `created`, and `updated`; aggregates are `none`, `sum`, `avg`,
|
||||
`count`, `min`, or `max`.
|
||||
Columns use `field:width:heading:aggregate`, separated by commas. Ordinary fields
|
||||
are `item`, `categories`, `when`, `priority`, `note`, `done`, `alarm`,
|
||||
`recurrence`, `created`, and `updated`. Category values use `numeric[Category]`
|
||||
or `date[Category]`; aggregates are `none`, `sum`, `avg`, `count`, `min`, or
|
||||
`max`. A view may sort by a bound field such as `numeric[Hours]`.
|
||||
|
||||
```text
|
||||
item:55:Action:none,when:25:Due:none,value:20:Cost:sum
|
||||
item:55:Action:none,when:25:Due:none,numeric[Cost]:20:Cost:sum
|
||||
```
|
||||
|
||||
Numeric columns accept optional formatting fields after the aggregate:
|
||||
`label:decimals:decimal-separator:thousands:negative:percent:alignment`.
|
||||
Decimal separator is `dot` or `comma`; thousands is `comma`, `dot`, `space`, or
|
||||
`none`; negative style is `minus`,
|
||||
`parentheses`, or `trailing`; use `percent` to add a non-editable `% of total`
|
||||
companion column.
|
||||
|
||||
```text
|
||||
numeric[Cost]:20:Cost:sum:$:2:dot:comma:parentheses:percent:right
|
||||
```
|
||||
|
||||
Count counts populated numeric cells, not section rows. Total, Average, Minimum,
|
||||
and Maximum use only the bound category's populated values. Left/Right selects a
|
||||
cell; `F2` edits a bound numeric or date value. `#HIGHLIGHT_VALUE` and
|
||||
`#HIGHLIGHT_TYPE` follow that cell for macro arithmetic.
|
||||
|
||||
Sections use `heading|filter`, separated by semicolons. Add `|collapsed` to make
|
||||
a section initially collapsed.
|
||||
|
||||
@@ -286,14 +310,22 @@ Urgent|priority=1;Upcoming|due<=7d;Someday|undated|collapsed
|
||||
## Automatic category rules
|
||||
|
||||
Open the Category Manager with `F9`, then create or edit a category. In addition
|
||||
to simple match phrases, each category can have a Boolean rule condition and an
|
||||
action. The form previews how many existing items match before saving.
|
||||
to simple match phrases, each category can have a Boolean condition and an
|
||||
action. The form previews how many existing items match before saving. A true
|
||||
condition creates a live conditional assignment to the category being edited;
|
||||
that assignment is withdrawn when the condition becomes false, without removing
|
||||
an explicit assignment. This lifecycle is independent of automatic text filing.
|
||||
|
||||
Actions use `action:value`: `assign:Category`, `exclude:Category`, `priority:1`,
|
||||
`value:125.50`, `when:tomorrow at 3pm`, `alarm:tomorrow at 2pm`,
|
||||
`repeat:weekdays`, or `done:true`. `assign:` with no value assigns the category
|
||||
being edited. Rules are reapplied to existing information and whenever an item
|
||||
changes.
|
||||
An action fires once when an item enters the category and creates a persistent
|
||||
change. Actions use `action:value`: `assign:Category`, `exclude:Category`,
|
||||
`remove:Category`, `priority:1`, `numeric:Hours=7.5`,
|
||||
`date:Review Date=tomorrow`, `when:tomorrow at 3pm`,
|
||||
`alarm:tomorrow at 2pm`, `repeat:weekdays`, `done:true`,
|
||||
`export:jsonl|archive.jsonl`, or `discard:true`.
|
||||
|
||||
Use `F10`, then `u`, for Utilities Execute. It reapplies conditions and actions
|
||||
to the current item, marked items, current section, current view, or whole
|
||||
document. `F10`, then `f`, shows circular/non-converging rule conflicts.
|
||||
|
||||
## Recurring work
|
||||
|
||||
@@ -301,7 +333,8 @@ Open item properties with `F6` and set a recurrence to `daily`, `weekdays`,
|
||||
`weekly`, `monthly`, `yearly`, or a rule such as `every 2 weeks`. The item must
|
||||
have a When date. Marking it done preserves the completed occurrence and creates
|
||||
the next open occurrence. Rogue Agenda shifts its alarm by the same interval and
|
||||
copies its note, priority, numeric value, recurrence, and explicit category
|
||||
copies its note, priority, recurrence, explicit category assignments, and
|
||||
category-scoped date/numeric values
|
||||
assignments. iCalendar import and export maps these schedules to `RRULE`.
|
||||
|
||||
## Design notes
|
||||
|
||||
Reference in New Issue
Block a user