medication-channel
Handle messages in a medication-tracking channel by routing medication events through a deterministic medication tracker instead of freehand model judgment. Use when working in a dedicated medication channel, especially for logging taken/missed/extra medication events, morning/evening completion, timestamp-grounded confirmations, and avoiding hallucinated reminders or fake times.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/cdmichaelb/medication-channelMedication Channel
Use the deterministic medication logging path whenever source message metadata is available.
Configuration
Set the following environment variables or replace placeholders before use:
MEDICATION_TIMEZONE— IANA timezone string for local time display (e.g.America/Los_Angeles,Europe/Berlin)WORKSPACE— root directory for data files (defaults to~/.openclaw/workspace)
Medication names and schedules are configured at the top of scripts/tracker_v2.py — edit the MORNING_MEDS, EVENING_MEDS, and KNOWN_MEDS lists to match your regimen.
Core Rules
- Treat the configured channel as the dedicated medication channel.
- Prefer the
log_from_discord.shwrapper ortracker_v2.py log-from-message. - Never use
nowas a logged/displayed time. - Never derive event time from the model turn time.
- Use the source Discord message timestamp unless the user explicitly gives a different time.
- Convert displayed times to the configured timezone.
- Never log reminder chatter as medication history.
- Never treat an assistant reminder message, assistant follow-up, assistant summary, or assistant self-referential chatter as a medication event.
- Never emit a confirmation like "taken", "logged", or "recorded" in response to an assistant-generated reminder unless a real user medication report was just logged through the script path.
- Never claim something was logged unless the script path actually ran.
- Prefer raw-message passthrough to the tracker instead of model-side parsing.
Preferred Workflow
Log a medication message from Discord
Use when the user reports:
- taken / took
- done / completed
- missed / skipped
- extra dose
- clear natural-language medication intake
Preferred path:
scripts/log_from_discord.sh \
"$MESSAGE_TEXT" \
"$CHANNEL_ID" \
"$MESSAGE_ID" \
"$AUTHOR_ID" \
"$TIMESTAMP_UTC"
Equivalent direct call:
python3 scripts/tracker_v2.py log-from-message \
"$MESSAGE_TEXT" \
"$CHANNEL_ID" \
"$MESSAGE_ID" \
"$AUTHOR_ID" \
"$TIMESTAMP_UTC"
Then use the returned row or format-confirmation output for the confirmation.
Parse only
Use only when inspecting behavior or debugging.
python3 scripts/tracker_v2.py parse "$MESSAGE_TEXT" "$TIMESTAMP_UTC"
Format a confirmation
Use when you already have the JSON row and want the standard confirmation string.
python3 scripts/tracker_v2.py format-confirmation '<json-row>'
Special Guardrail: Reminder Messages
If the message being handled is itself a reminder, or the user is replying to/quoting a reminder message, do not assume medication was taken.
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-cdmichaelb-medication-channel": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
sleep-channel
Handle messages in a Discord sleep-tracking channel by grounding all sleep logging and summaries on the real sleep tracker and source Discord metadata. Use when working in a dedicated sleep channel, especially for adding sleep entries, correcting the latest entry, deleting the latest entry, or rendering the current sleep log without hallucinating timestamps, dates, or entries.
food-channel
Handle messages in a food-tracking channel by routing food intake events through a deterministic food tracker. Use when working in a dedicated food channel, especially for barcode lookups, photo estimates, and daily summaries.
publish-skill
Prepare and publish an OpenClaw skill to ClawHub. Handles PII/secret auditing, generalization, env var extraction, directory scaffolding, git init, and the clawhub publish command. Use when publishing a new skill or updating an existing one on ClawHub.
snippets-sync
Sync code snippets and notes between machines via file sync. Organized by language, rendered in any Markdown viewer (Obsidian, VS Code, etc.).
vitamin-tracker-channel
Manage vitamin/supplement reminders across configurable daily time slots via cron jobs. Use when adjusting supplement schedules, adding/removing supplements, or handling vitamin-related channel interactions. Triggers on "vitamin", "supplement", "vitamin reminder", "vitamin schedule".