Add an apple-reminders skill that documents the current remindctl command surface for agentic tools.
Refined before merge to match the 0.2.0 release: macOS/Homebrew requirements, JSON aliases, open filter, metadata fields, recurrence, alarms, location trigger constraints, permissions, and EventKit limitations.
Co-authored-by: Allen Yi <yiwenyou_allen@outlook.com>
The existing filters don't cover incomplete reminders without due dates.
`upcoming` requires a due date, so undated items (e.g. grocery lists)
are only visible via `all` which includes completed items too.
`remindctl open` returns all uncompleted reminders regardless of
due date status.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
(cherry picked from commit c5019fd566da5861dafc932d4ca9792cf33b6e46)
This fixes the "Incorrect actor executor assumption" error that occurred
when running `remindctl list`.
## Problem
The `fetchReminders` method was calling the actor-isolated `item(from:)`
method from inside a non-isolated EventKit completion handler. Additionally,
`EKReminder` objects are not `Sendable`, which violates Swift 6's strict
concurrency checking.
## Solution
Restructured `fetchReminders` to:
1. Extract all needed data from `EKReminder` objects inside the callback
(where it's safe to access them)
2. Store that data in a local `Sendable` struct (`ReminderData`)
3. Pass the Sendable data across the concurrency boundary
4. Convert to `ReminderItem` on the actor using the safe data
This ensures all actor-isolated code runs on the correct executor and
all data crossing concurrency boundaries is Sendable.
## Testing
- Built successfully with Swift 6.0
- All commands tested: list, show, status
- JSON output verified