ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

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.

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/cdmichaelb/medication-channel
Or

Medication 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.sh wrapper or tracker_v2.py log-from-message.
  • Never use now as 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

Stars4017
Views1
Updated2026-04-11
View Author Profile
AI Skill Finder

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 skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-cdmichaelb-medication-channel": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.