docs: 30-minute blocks, document plan-fill and overwrite gate
9657fa6e0f26b23b32328d2fc02d921d859b647b
humdrum-tiv <45084903+humdrum-tiv@users.noreply.github.com> · 2026-07-29 20:16
parent 35dfc61f
1 files changed
README.md +14 −3
@@ -23,7 +23,7 @@ ## Commands
```
dots auth Link CLI to account (one-time token paste)
-dots log [time|range] [type] Paint logged block(s)
+dots log [time|range] [type] Paint logged block(s); omit the type to fill from plan
dots clear <time|range> Clear logged block(s)
dots note "text" [--date D] Append a day note
dots today [--date D] [--json] Day grid readout
@@ -32,11 +32,22 @@ ```
### Time syntax
-Blocks are `blockSize`-minute slots (15, 30, or 60). Accepted time forms (examples at blockSize 30):
+Blocks are 30-minute slots (the CLI reads the day's `blockSize` from the API, so other sizes would work too — Dots uses 30). Accepted time forms:
- *(omitted)* — the slot containing the current device time
-- `14:30` — the single slot containing that time; times snap down to the slot boundary
+- `14:30` — the single slot containing that time; times snap down to the slot boundary (`14:47` → `14:30`)
- `13:00-15:00` — range, end-exclusive: slots 13:00, 13:30, 14:00, 14:30
+
+### Plan-fill
+
+Omit the activity and `dots log` paints each target slot with its **planned** activity:
+
+```
+dots log # current slot ← its plan block
+dots log 13:00-15:00 # each slot in the range ← its plan block
+```
+
+All-or-nothing: if any target slot has no plan block, the command errors listing those slots and paints nothing. Overwriting an already-logged slot always shows a diff table and asks `y/N` (`--yes` skips; non-interactive runs without `--yes` abort).
### Auth flow