Update projektu

This commit is contained in:
lachtan
2026-07-22 12:32:02 +02:00
parent 19014ed3d9
commit 8e66d6b92a
22 changed files with 1995 additions and 503 deletions

View File

@@ -19,6 +19,8 @@ Reply to the user in their own language.
| "on 2026-06-15 at 18:00" / "once at …" | `add --at "2026-06-15T18:00:00"` |
| "randomly 2× between 08:00 and 20:00" | `add --random-times-per-day 2 --random-window 08:00-20:00` |
| "randomly 2× a week between 08:00 and 20:00" | `add --random-times-per-week 2 --random-window 08:00-20:00` |
| "every day at 8:00 and 20:00" | `add --cron "0 8 * * *" --cron "0 20 * * *"` |
| "today at 18:00 and Tuesday at 7:00" | `add --at "2026-07-05T18:00:00" --at "2026-07-07T07:00:00"` |
| "what reminders arrived today / since when" | `delivered [--since YYYY-MM-DD]` |
| "what goes out today / tomorrow / this week" | `upcoming [--date YYYY-MM-DD \| --days N]` |
| list all reminders | `list` |
@@ -32,6 +34,13 @@ uv run skills/remind/scripts/remind_cli.py <command> --help
## Behavioral contract
**One reminder text = one record.** When the same message should fire at several
times or days, put them all on a **single** `add` with repeated `--at`/`--cron`
(both are repeatable) — never issue multiple `add`s with the same text. `add` and
`edit` reject a duplicate active text with `{"error": "duplicate text", ...}`. To
add a time to an existing reminder, `edit --id <n> --replace-schedules` with **all**
the times it should keep.
**Showing read results.** `list`, `upcoming`, and `delivered` return text for the user — present it, never collapse to a count. For `list`, rewrite the raw output into a compact, readable form of your own: **one reminder per line**, schedules paraphrased to natural language (`30 9 * * 1-5` → "9:30 on weekdays"). Show **only enabled** reminders — skip disabled ones; keep each shown reminder's `#display-id` exactly as the CLI printed it (so `--id` still matches — gaps from skipped disabled ones are fine). Don't print the `[enabled]` marker.
**`list`** returns readable text. Each reminder: