原始内容
name: Remind slug: remind version: 1.0.4 changelog: "Display name shown correctly" description: >- Reminds the user of commitments they already know — meetings, deadlines, bills, promises, follow-ups — at the right lead time, in their style. Use when the user says remind me, nudge me, ping me, or don't let me forget, mentions a deadline, appointment, flight, renewal, birthday, or a promise they made, wants a recurring reminder, snoozes or reschedules one, needs to chase something a colleague promised, or reacts to reminder timing (too early, too late, I forgot). Not for announcing new information the user doesn't know yet (alerting) or executing tasks on a schedule. homepage: https://clawic.com/skills/remind metadata: clawdbot: emoji: ⏰ displayName: Remind configPaths: - ~/Clawic/data/remind/
User preferences, learned lead times, and the active reminder list live in ~/Clawic/data/remind/ (see setup.md on first use, memory-template.md for file formats). If you have data at an old location (~/remind/, ~/clawic/remind/, or preferences stored inside this file's sections), move it to ~/Clawic/data/remind/.
When To Use
Remind = "Just a reminder that..." — surfacing something the human already knows, at the moment it becomes actionable.
- Planned events, deadlines, and commitments they set themselves
- Promises they made to other people — and other people's promises they must chase
- Recurring obligations easy to lose track of: taxes, renewals, bills, reviews
- Things they told you they were afraid to forget
- Not for new information (news, outages, price moves — that is alerting) and not for executing tasks on a schedule (that is scheduling)
The litmus test: could they have written it in their own calendar? Then it's a reminder. Did the world just change? That's an alert. If "just a reminder that..." reads unnaturally in front of the message, don't send it as one.
Quick Reference
| Situation | Play |
|---|---|
| "Remind me to X at/in Y" | Create exactly as stated; explicit override beats every learned preference and default |
| "Don't let me forget X" | Create with an extra earlier stage — the phrase signals stakes, not timing (timing.md, Adjustment Factors) |
| Commitment mentioned, no ask ("I'll send it Friday") | First 2 in a category: offer ("Want a nudge Friday morning?"); after 2 acceptances, create silently (triggers.md) |
| Recurring obligation (taxes, renewals, dentist) | recurring.md — cadence defaults, anchor drift, end conditions |
| "Later" / "not now" / no reaction to a reminder | followup.md — snooze, silence, re-ping rules |
| Reaction to a past reminder ("too early", "I forgot") | learning.md maps the phrase to a signal; adjust via the ladder in timing.md |
| They acknowledged the reminder | Done — no repeat unless the entry is under Always (followup.md) |
| Window missed (offline, late detection, quiet hours) | followup.md late delivery — lead with what is still possible |
| Several reminders due at once | Stack up to 3 in one message, hard deadlines first; more → digest (phrasing.md) |
| Default: unsure if remindable | High stakes → create and say so; low stakes → skip and watch what happens |
Depth on demand: triggers.md what qualifies · timing.md lead times, ladder, quiet hours, timezones · phrasing.md writing the message · recurring.md repeating obligations · followup.md after it fires: acks, snooze, escalation, misses · learning.md reactions → preferences · setup.md first use · memory-template.md storage formats.
Core Rules
- Only remind about what they already know. New information is an alert; the litmus test above decides. Misclassifying erodes trust in both channels.
- Explicit beats learned beats default. "Remind me at 3pm" overrides every stored preference; a stored preference overrides
timing.md; the defaults catch the rest. A one-off override never rewrites the category preference (learning.md). - The loop: detect → evaluate → remind → observe → confirm → store. Detect (
triggers.md), evaluate against~/Clawic/data/remind/preferences.md, remind while they can still act, observe the reaction, confirm before storing. - Signal ladder (canonical — every other file points here): explicit instruction → store
(confirmed)immediately · 2 consistent observed reactions → store(pattern), propose the change · accepted proposal, or a 3rd consistent reaction → upgrade to(confirmed)· 1 contradicting reaction on a(confirmed)entry → downgrade to(pattern), re-observe. - Remind while acting is still possible. Lead counts back from when the action must start, not from the event:
remind at = event time − process − transition − prep(worked example intiming.md). - One acknowledgment = done. Repeats read as nagging; Always entries are the only exception, and silence is not an acknowledgment (
followup.md). - Never store without comment. Wrong guesses compound invisibly; propose in one line before writing anything
(confirmed). - A working system sends fewer reminders each month, not more. Correct Skips are wins; let reactions promote categories, never your own eagerness.
Reminder Components
- What — the commitment, phrased as the action, not the event: "Leave by 2:15 for the 5pm flight", never "Flight at 5pm". If the reminder arrives when the action is no longer possible, the timing was wrong regardless of the event time.
- When — lead time before the action must start (
timing.md) - How — tone, length, and stage wording (
phrasing.md); default: one line, what + when + the single next step
Output Gates
Run before every reminder goes out:
- Do they already know this? (No → it's an alert, not a reminder)
- Can they still act on it after this arrives? (No → apply
followup.mdlate delivery; log the missed lead) - Has this exact reminder — this occurrence, for recurring — been acknowledged? (Yes → drop unless in Always)
- Does a Skip entry, a stated exclusion, or
quiet_hourscover it? (timing.md) - Is it phrased as the action, not the event, with wording distinct from the previous stage? (
phrasing.md)
Configuration
User-dependent variables. Defaults apply until the user states a preference; store them in ~/Clawic/data/remind/config.yaml.
| Variable | Type | Default | Effect |
|---|---|---|---|
| quiet_hours | text (HH:MM–HH:MM local) | 22:00–07:00 | Suppresses delivery inside the window unless the action itself must start there (timing.md, Time-of-Day Rules) |
| morning_slot | text (HH:MM–HH:MM local) | 07:00–08:00 | Where morning-of, daily-habit, and "tomorrow morning" reminders land |
| digest_slot | text (HH:MM) | none | When set, low-priority reminders batch into one daily digest at this time instead of arriving one by one (phrasing.md) |
| lead_bias | earlier | standard | later | standard | Shifts the default lead of every unlearned category one ladder step in that direction; learned preferences are untouched |
Preference areas — customizable dimensions; a stated preference gets recorded in config.yaml and applied:
- Delivery & tone — register (casual/formal), length, emoji, language of reminders — affects
phrasing.mddefaults - Proactivity — appetite for unprompted reminders from implicit detection — affects the offer-first rule in
triggers.md - Schedule shape — workday start/end, weekend policy for work items — affects Time-of-Day Rules in
timing.md - Exclusions — topics, projects, or blocks (focus time, meetings) where reminders never fire — feeds Skip and the Output Gates
- Adjacent systems — calendars or task apps already alerting them — categories those cover default to Skip (their alarm plus yours = double nag)
Per-category lead times are learned data, not config: they live in ~/Clawic/data/remind/preferences.md (memory-template.md for the format).
Traps
| Trap | Why it fails | Do instead |
|---|---|---|
| Reminding about everything detected | Fatigue: they tune out, and the one critical reminder dies with the noise | Skip low stakes by default; let reactions promote categories |
| Reminding at event time | Awareness without agency — nothing left to do but feel bad | Lead counts back from when the action starts (timing.md formula) |
| Repeating after an acknowledgment | Reads as nagging; erodes the trust the whole skill runs on | One ack = done; Always is the only exception (followup.md) |
| Treating "thanks" as "send more" | Politeness is not preference | Only timing words and actual misses move the ladder (learning.md) |
| Storing preferences silently | Wrong guesses compound invisibly; they can't correct what they can't see | Propose in one line before writing anything (confirmed) |
| Stretching lead time after one miss | One miss may be a bad day; overcorrection breeds "too early" complaints | Move one ladder step per 2 signals, never multiply |
| Same wording on every stage | Identical repeats read as a stuck bot, and get filtered like one | Each stage carries a different action verb (phrasing.md) |
| "You missed X" with nothing to do | Guilt without agency; the worst message this skill can send | Deliver a miss only when a recovery action exists, and lead with it (followup.md) |
Related Skills
More Clawic skills, get them at https://clawic.com/skills/remind (install if the user confirms):
alerts- New or urgent events they don't know about yetnotify- Delivery mechanics: channels, batching, fatigue controlschedule- Executing recurring tasks, not recalling themmemory- Long-term storage beyond reminder preferences
Feedback
- If useful, star it: https://clawic.com/skills/remind
- Latest version: https://clawic.com/skills/remind
Part of Clawic, the verified skill library. Get this skill: https://clawic.com/skills/remind.