
Mochi Remind
Handle due reminders, notify the user with natural language and mark them done.
Install
npx skills add kirodotdev/KiroCrew --skill mochi-remind -g -a claude-code -y- Repository
- kirodotdev/KiroCrew4.7k
- Category
- Engineering
- Updated
- 3d ago
- License
- Apache-2.0
- Context cost
- Lightabout 1,005 tokens
- Runs scripts
- No, instructions only
What it does
Handle due reminders, notify the user with natural language and mark them done.
@mochi-remind, Handle Due Reminders
Handle reminders that have reached their trigger time.
Steps
1. Verify Meetings (if applicable)
For items with kind=meeting, only if the user has connected a calendar tool. Do not assume a
server or tool name, look at the tools you actually have and find one that lists events in a
time range.
- List events in a window around the meeting's
triggerAt(±2 hours) to find it. - Match by subject/title (fuzzy, the label may be abbreviated).
- Check the event status:
- Cancelled: Tell the user the meeting was cancelled. Mark the item
done. - Rescheduled (calendar start differs from the item's
notes.meetingStartby >1 min; if the item has nomeetingStart, treat it as on schedule): Tell the user the new time. Keep the user's lead time (meetingStartminustriggerAt) and callupdate_watchlistwithtriggerAt= new start minus that lead andnotes.meetingStart= new start. Do NOT mark done. - Still on schedule: Proceed to notify normally (step 2).
- Cancelled: Tell the user the meeting was cancelled. Mark the item
- If the lookup fails or returns no match, proceed with the reminder anyway, don't block notification on a calendar lookup failure.
Skip this step for kind=reminder items or when you have no calendar tool.
2. Notify the User
Before notifying, check activity log for duplicates:
Call read_mochi_file({ which: "activity" }) and scan the last 10 entries.
If you find a notification entry within the last 15 minutes that already communicated
the same reminder (same label/subject), skip the notification, it was already delivered
by a concurrent agent. Just mark the item done and finish. A "got moved to …" message
from a reschedule is NOT the reminder itself and does not count as a duplicate.
Right after 00:00 UTC the log rotates, so also check "activity-yesterday".
