Period Care Assistant
by @wangjian124
Track menstrual cycle history, answer current cycle status questions, record new period start dates from natural-language messages such as "月经来了", predict th...
clawhub install period-care-assistant📖 About This Skill
name: period-care-assistant description: Track menstrual cycle history, answer current cycle status questions, record new period start dates from natural-language messages such as "月经来了", predict the next expected start date, and prepare reminder schedules for OpenClaw users who need private menstrual health tracking with local encrypted storage. metadata: {"openclaw":{"emoji":"🩺","homepage":"https://docs.openclaw.ai/tools/clawhub","os":["darwin","linux","win32"],"requires":{"anyBins":["node","nodejs"],"env":["PERIOD_TRACKER_KEY"]},"primaryEnv":"PERIOD_TRACKER_KEY"}}
Period Care Assistant
Overview
Use the helper script at {baseDir}/scripts/period_tracker.mjs for all reads and writes so period history, forecasts, and reminder plans stay deterministic. Keep all cycle data local, encrypted, and scoped by a stable per-user key such as dingtalk: or telegram:.
Handle User Identity
Build a stable userKey before touching storage.
telegram:123456, slack:U123, or dingtalk:manager123.Record A New Period Start
When the user says anything equivalent to "月经来了", "今天来例假了", "帮我记一下今天来姨妈", or "记一下 2026-03-18 来月经":
1. Infer the start date from the message. If no date is given, use the user's local date and say which date was recorded. 2. Run:
node "{baseDir}/scripts/period_tracker.mjs" record --user "" --date "" --json
3. Read the returned JSON and reply with: - the recorded start date, - the predicted next start date, - the reminder date, - a short caring sentence. 4. If the user also gives reminder preference, timezone, route, or period length, include:
node "{baseDir}/scripts/period_tracker.mjs" record --user "" --date "" --reminder-days 4 --timezone "Asia/Shanghai" --delivery-mode webhook --delivery-webhook "https://example.invalid/reminder" --json
Answer Status Queries
When the user asks "我现在是什么周期", "帮我查一下月经周期", "下次大概什么时候来", or similar:
node "{baseDir}/scripts/period_tracker.mjs" status --user "" --json
Explain the result in natural language:
Do not state medical certainty. Say the estimate is data-based, not a diagnosis.
Configure Reminder Delivery
The helper script stores reminder preferences and generates a one-shot cron plan.
Use:
node "{baseDir}/scripts/period_tracker.mjs" configure --user "" --timezone "Asia/Shanghai" --reminder-days 4 --delivery-mode announce --delivery-channel "telegram" --delivery-to "user:123456" --json
Supported delivery modes in the helper:
announce: for native OpenClaw chat delivery routes.webhook: for an external bridge or webhook endpoint.none: keep the prediction but do not arm a delivery route yet.If reminder delivery is configured, fetch the plan:
node "{baseDir}/scripts/period_tracker.mjs" reminder-plan --user "" --json
Then create or refresh a one-shot cron job. Prefer a deterministic job name from the JSON output. Use schedule.kind = "at" and the generated ISO timestamp. For isolated delivery jobs, use the generated prompt text as the agentTurn.message. See {baseDir}/references/deployment.md for a complete cron JSON example.
Natural-Language Interaction Style
Keep the interaction short, warm, and explicit.
Privacy And Safety Rules
Read More Only When Needed
{baseDir}/references/deployment.md when you need OpenClaw cron, ClawHub publish, or DingTalk transport notes.{baseDir}/references/model-and-privacy.md when you need the forecasting method, storage layout, or accuracy caveats.