Skill: robbingithub/medication-clock (version 1.0.0)

--- name: medication-clock description: 优甲乐智能服药提醒系统 - 每日6:30提醒，智能统计，数据导出。适合甲状腺疾病患者建立规律服药习惯。 icon: 🕐 color: "#3B82F6" tags: [health, medication, thyroid, reminder, smart-clock] metadata: openclaw: requires: bins: [python3] --- # 优甲乐服药提醒与记录 Skill ## 功能描述 这是一个专门管理优甲乐（甲状腺素）服用的智能提醒和记录系统。帮助用户建立规律的服药习惯，并提供服药记录查询和报表功能。 ## 核心功能 ### 1. 智能提醒系统 - **首次提醒**：每天 6:30 AM 首次提醒服用优甲乐 - **重复提醒**：如果未确认，每15分钟重复提醒一次 - **提醒方式**：通过当前会话渠道发送提醒消息 - **停止条件**：用户确认服药后停止当日提醒 ### 2. 服药记录 - **自动记录**：每次服药确认时自动记录时间 - **状态标记**：记录是否按时服药（6:30-7:00之间为按时） - **数据存储**：存储在 `medication-records.json` 文件中 - **历史记录**：保留所有服药历史数据 ### 3. 查询与报表功能 - **今日状态**：查询今日是否已服药 - **历史查询**：按日期范围查询服药记录 - **统计报表**：生成服药依从性统计 - **导出功能**：支持导出为 CSV 格式 ## 使用方法 ### 启动每日提醒 ``` /medication-clock start ``` 启动每日优甲乐服药提醒系统。 ### 确认服药 ``` /medication-clock taken ``` 确认已服用优甲乐，停止当日提醒。 ### 查询状态 ``` /medication-clock status ``` 查询今日服药状态和近期服药记录。 ### 生成报表 ``` /medication-clock report [days] ``` 生成指定天数的服药统计报表（默认7天）。 ### 导出数据 ``` /medication-clock export ``` 导出所有服药记录为 CSV 格式。 ### 停止提醒 ``` /medication-clock stop ``` 停止每日服药提醒。 ## 数据存储 服药记录存储在： - `medication-records.json` - JSON 格式的完整记录 - `medication-stats.json` - 统计数据和状态信息 ## 技术实现 - 使用 OpenClaw 的 cron 系统进行定时提醒 - 使用文件系统存储记录数据 - 支持多会话环境下的提醒和记录 ## 安全与隐私 - 所有数据仅存储在本地 - 不涉及外部网络传输 - 用户完全控制数据访问 ## 配置说明 首次使用前，系统会自动创建数据文件并设置每日提醒任务。

path: README.md
content: # 优甲乐服药提醒与记录 Skill

一个用于管理优甲乐（甲状腺素）服药的智能提醒和记录系统，集成到 OpenClaw AI 助手。

## 🎯 功能特点

### 📅 智能提醒系统
- **每日6:30首次提醒**服用优甲乐
- **每15分钟重复提醒**，直到确认服药
- **灵活的时间设置**，可根据需求调整

### 📊 完整记录功能
- **自动记录服药时间**和状态
- **按时/延迟标记**，帮助建立规律
- **连续服药天数统计**
- **服药依从性分析**

### 📈 报表与查询
- **每日状态查询**，了解当日服药情况
- **服药统计报告**，支持自定义时间范围
- **历史记录浏览**，查看所有服药记录
- **数据导出功能**，支持 CSV 格式导出

### 🔒 安全与隐私
- **本地数据存储**，不涉及云端传输
- **用户完全控制**数据访问权限
- **数据备份功能**，防止意外丢失

## 🚀 快速开始

### 1. 安装依赖
确保已安装 Python 3.8+ 和 OpenClaw。

### 2. 运行安装脚本
```bash
cd /Users/robbin/.openclaw/workspace/skills/medication-reminder
python3 setup.py
```

### 3. 测试系统功能
```bash
python3 test_system.py
```

### 4. 配置 OpenClaw cron 任务
按照安装脚本输出的说明配置每日提醒任务。

## 📖 使用指南

### 基本命令

| 命令 | 说明 | 示例 |
|------|------|------|
| `/medication-clock start` | 启动每日提醒 | `/medication-clock start` |
| `/medication-clock stop` | 停止每日提醒 | `/medication-clock stop` |
| `/medication-clock taken` | 记录服药 | `/medication-clock taken` |
| `/medication-clock taken 07:15` | 记录特定时间服药 | `/medication-clock taken 07:15` |
| `/medication-clock status` | 查看今日状态 | `/medication-clock status` |
| `/medication-clock report` | 生成7天报告 | `/medication-clock report` |
| `/medication-clock report 30` | 生成30天报告 | `/medication-clock report 30` |
| `/medication-clock records` | 查看最近记录 | `/medication-clock records` |
| `/medication-clock export` | 导出数据为CSV | `/medication-clock export` |
| `/medication-clock settings` | 查看当前设置 | `/medication-clock settings` |
| `/medication-clock help` | 显示帮助信息 | `/medication-clock help` |

### 使用流程示例

#### 日常使用
1. **早上6:30**：系统自动发送首次提醒
2. **每15分钟**：重复提醒，直到确认
3. **服药后**：回复 `/medication-clock taken`
4. **随时查看**：使用 `/medication-clock status` 查看状态

#### 查看统计
```bash
# 查看今日状态
/medication-clock status

# 生成30天报告
/medication-clock report 30

# 查看最近14天记录
/medication-clock records 14
```

## 🛠️ 技术架构

### 文件结构
```
medication-reminder/
├── SKILL.md                    # Skill 说明文档
├── medication_reminder.py      # 核心功能实现
├── openclaw_integration.py     # OpenClaw 集成
├── setup.py                    # 安装配置脚本
├── test_system.py              # 测试脚本
├── README.md                   # 本文件
└── openclaw-skill-config.json  # OpenClaw 配置
```

### 数据存储
```
~/.openclaw/medication_data/
├── medication-records.json     # 服药记录
├── stats.json                  # 统计数据
└── settings.json              # 系统设置
```

### 配置项说明
- `first_reminder_time`: 首次提醒时间（默认: 06:30）
- `reminder_interval`: 重复提醒间隔（默认: 15分钟）
- `on_time_window`: 按时服药时间窗口（默认: 30分钟）
- `reminder_enabled`: 提醒功能开关

## 🔧 自定义配置

### 修改提醒时间
编辑 `~/.openclaw/medication_data/settings.json`：
```json
{
  "first_reminder_time": "07:00",
  "reminder_interval": 20,
  "on_time_window": 45
}
```

### 调整提醒频率
可通过修改 `reminder_interval` 调整重复提醒频率。

### 设置按时窗口
`on_time_window` 控制从首次提醒后多少分钟内服药算作按时。

## 📊 数据导出

### CSV 格式导出
```bash
/medication-clock export
```
导出的 CSV 文件包含以下列：
- 日期（YYYY-MM-DD）
- 时间（HH:MM）
- 是否按时（是/否）
- 记录方式（自动/手动）
- 记录时间戳

### 数据备份
所有数据文件位于 `~/.openclaw/medication_data/` 目录，可手动备份。

## 🔍 故障排除

### 常见问题

#### 1. 提醒未发送
- 检查 OpenClaw cron 任务是否已配置
- 确认 OpenClaw 服务正在运行
- 检查设置中的 `reminder_enabled` 是否为 true

#### 2. 记录不保存
- 检查数据目录权限
- 确保有足够的磁盘空间
- 查看是否有其他进程正在使用数据文件

#### 3. 命令不响应
- 确认已正确安装 Skill
- 检查 OpenClaw 集成配置
- 查看错误日志

### 日志查看
```bash
# 查看 OpenClaw 日志
tail -f /tmp/openclaw/openclaw-*.log

# 查看数据目录
ls -la ~/.openclaw/medication_data/
```

## 📈 统计指标说明

### 服药依从率
```
依从率 = (服药天数 / 总天数) × 100%
```

### 按时服药率
```
按时率 = (按时服药天数 / 服药天数) × 100%
```

### 连续服药天数
从当前日期开始向前连续有服药记录的天数。

### 最佳连续服药
历史最高的连续服药天数记录。

## 🤝 贡献与反馈

### 报告问题
如发现 bug 或有功能建议，请提交 issue。

### 功能建议
欢迎提出改进建议，包括：
- 新的提醒方式
- 更多的统计指标
- 更好的用户界面
- 与其他系统的集成

### 开发贡献
1. Fork 项目
2. 创建功能分支
3. 提交代码更改
4. 创建 Pull Request

## 📄 许可证

本项目采用 MIT 许可证。

## 🙏 致谢

感谢 OpenClaw 项目提供的强大 AI 助手平台。

---

**💊 健康第一，规律服药！**

path: USER_GUIDE.md
content: # 优甲乐服药提醒系统 - 用户指南

## 🎯 系统概述

这是一个专门为管理优甲乐（甲状腺素）服药而设计的智能提醒和记录系统。系统集成了 OpenClaw AI 助手，提供自动化提醒、服药记录、统计报表等功能。

## 📋 已实现功能

### ✅ 核心功能已完成
1. **服药记录系统** - 自动记录服药时间和状态
2. **状态查询功能** - 实时查看今日服药状态
3. **统计报表系统** - 生成服药依从性报告
4. **数据导出功能** - 支持 CSV 格式导出
5. **本地数据存储** - 所有数据安全存储在本地

### 🔧 待配置功能
1. **自动化提醒系统** - 需要配置 OpenClaw cron 任务
2. **定时提醒执行** - 需要设置系统定时任务

## 🚀 快速开始

### 1. 基本命令使用

#### 记录服药
```bash
# 记录当前时间服药
python3 openclaw_integration.py taken

# 记录特定时间服药（如 07:15）
python3 openclaw_integration.py taken 07:15
```

#### 查看状态
```bash
# 查看今日服药状态
python3 openclaw_integration.py status

# 生成7天报告
python3 openclaw_integration.py report

# 生成30天报告
python3 openclaw_integration.py report 30

# 查看最近记录
python3 openclaw_integration.py records
```

#### 数据管理
```bash
# 导出数据为CSV
python3 openclaw_integration.py export

# 查看系统设置
python3 openclaw_integration.py settings

# 获取帮助
python3 openclaw_integration.py help
```

### 2. 通过包装脚本使用
```bash
# 使用包装脚本（更简单）
./medication_wrapper.sh status
./medication_wrapper.sh taken
./medication_wrapper.sh report 30
```

## ⏰ 提醒系统配置

### 方案一：手动提醒（当前推荐）
由于 OpenClaw cron 任务需要特定的渠道配置，建议使用以下手动提醒方案：

1. **设置手机闹钟**：每天 6:30
2. **服药后手动记录**：使用命令记录
3. **定期查看统计**：检查服药依从性

### 方案二：OpenClaw 自动化提醒（需要额外配置）
如果需要完全自动化提醒，需要：

1. 配置 OpenClaw 的 Feishu 或 WebChat 渠道
2. 设置 cron 任务指向特定聊天
3. 测试提醒消息的接收

### 方案三：系统 cron + Python 脚本
可以创建系统级的 cron 任务来运行 Python 脚本发送提醒。

## 📊 数据与统计

### 数据存储位置
```
~/.openclaw/medication_data/
├── medication-records.json     # 服药记录
├── stats.json                  # 统计信息
└── settings.json              # 系统设置
```

### 关键统计指标
- **总服药天数**：有服药记录的总天数
- **按时服药天数**：在6:30-7:00之间服药的天数
- **服药依从率**：(服药天数 / 总天数) × 100%
- **连续服药天数**：当前连续服药的天数
- **最佳连续记录**：历史最高连续服药天数

## 🔍 使用场景示例

### 日常使用流程
```
早上 6:30：手机闹钟响起
早上 7:15：服用优甲乐
服药后：运行 python3 openclaw_integration.py taken 07:15
随时查看：运行 python3 openclaw_integration.py status
每周查看：运行 python3 openclaw_integration.py report 7
```

### 月度健康检查
```bash
# 生成月度报告
python3 openclaw_integration.py report 30

# 导出数据给医生
python3 openclaw_integration.py export
```

## 🛠️ 自定义配置

### 修改提醒时间
编辑 `~/.openclaw/medication_data/settings.json`：
```json
{
  "first_reminder_time": "07:00",
  "reminder_interval": 20,
  "on_time_window": 45,
  "reminder_enabled": true
}
```

### 调整按时窗口
`on_time_window` 控制从首次提醒后多少分钟内服药算作按时（默认30分钟）。

## 🔧 故障排除

### 常见问题

#### 1. 命令不工作
```bash
# 检查脚本权限
chmod +x medication_wrapper.sh

# 检查 Python 环境
python3 --version

# 检查依赖
pip3 install -r requirements.txt  # 如果有的话
```

#### 2. 数据不保存
- 检查数据目录权限
- 确保有足够的磁盘空间
- 检查 JSON 文件格式

#### 3. 统计不准确
- 确认系统时间正确
- 检查记录文件内容
- 重新计算统计

### 日志查看
```bash
# 查看脚本输出
python3 openclaw_integration.py status 2>&1

# 检查数据文件
cat ~/.openclaw/medication_data/medication-records.json | jq .
```

## 📈 健康管理建议

### 优甲乐服药最佳实践
1. **固定时间服药**：尽量每天同一时间服用
2. **空腹服用**：建议早上空腹服用，效果最佳
3. **避免干扰**：服药后至少30分钟再进食
4. **定期检查**：按医生建议定期检查甲状腺功能
5. **记录副作用**：如有不适及时记录并咨询医生

### 系统使用建议
1. **每日记录**：养成服药后立即记录的习惯
2. **每周回顾**：每周查看服药统计，调整习惯
3. **月度总结**：每月生成报告，评估依从性
4. **医生咨询**：定期向医生展示服药记录

## 🔄 系统维护

### 数据备份
```bash
# 手动备份数据
cp -r ~/.openclaw/medication_data ~/medication_data_backup

# 恢复数据
cp -r ~/medication_data_backup ~/.openclaw/medication_data
```

### 系统更新
```bash
# 更新脚本
cd /Users/robbin/.openclaw/workspace/skills/medication-reminder
git pull  # 如果使用 git

# 重新运行安装脚本
python3 setup.py
```

## 📞 支持与反馈

### 获取帮助
```bash
python3 openclaw_integration.py help
```

### 报告问题
如遇到问题，请提供：
1. 错误信息
2. 操作步骤
3. 系统环境信息

### 功能建议
欢迎提出改进建议，包括：
- 新的提醒方式
- 更多的统计指标
- 更好的用户界面

## 🎉 开始使用

现在你已经准备好了！建议：

1. **立即测试**：运行几个基本命令熟悉系统
2. **设置提醒**：配置手机闹钟作为初步提醒
3. **养成习惯**：每天服药后立即记录
4. **定期回顾**：每周查看统计，持续改进

**💊 健康第一，规律服药，坚持记录！**

---

*系统版本：1.0.0 | 最后更新：2026-04-28 | 作者：阿波罗*

path: _meta.json
content: {
  "name": "medication-clock",
  "version": "1.0.0",
  "scene": "优甲乐服药提醒与记录",
  "category": "健康医疗",
  "subtitle": "智能服药提醒系统 - 关注昨天状态，多渠道提醒，完整统计报表",
  "target_user": "需要规律服药的用户，特别是甲状腺疾病患者",
  "core_need": "建立规律的服药习惯，提高服药依从性",
  "trigger_words": [
    "服药提醒",
    "优甲乐",
    "甲状腺",
    "记录服药",
    "服药统计"
  ],
  "output_format": "服药记录、统计报表、CSV导出",
  "priority": "P2",
  "tools": [
    "read_file",
    "write_to_file",
    "execute_command"
  ],
  "dependencies": [],
  "real_objects": "服药记录文件、统计数据、CSV报告",
  "deliverables": "服药提醒、记录确认、统计报表",
  "need_external_search": "否"
}


path: generate_reminder.py
content: #!/usr/bin/env python3
"""
生成优甲乐智能提醒消息
这个脚本被 OpenClaw cron 任务调用，生成包含昨天状态的智能提醒
"""

import sys
import os
from pathlib import Path

# 添加当前目录到路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

def generate_reminder_message(reminder_count=1):
    """生成智能提醒消息"""
    try:
        from medication_reminder import MedicationReminder
        
        reminder = MedicationReminder()
        message = reminder.get_smart_reminder_message(reminder_count)
        
        # 返回纯文本消息
        return message
    
    except Exception as e:
        # 如果出错，返回默认消息
        default_messages = [
            "⏰ 优甲乐服药提醒\\n\\n现在是早上6:30，请服用优甲乐。\\n💊 服药后请回复：/medication taken",
            "⏰ 优甲乐服药提醒\\n\\n现在是早上6:45，请尽快服用优甲乐。\\n💊 服药后请回复：/medication taken",
            "⏰ 优甲乐服药提醒\\n\\n现在是早上7:00，请立即服用优甲乐。\\n💊 服药后请回复：/medication taken",
            "⏰ 优甲乐服药提醒\\n\\n现在是早上7:15，请立即服用优甲乐。\\n💊 服药后请回复：/medication taken"
        ]
        
        index = min(reminder_count - 1, len(default_messages) - 1)
        return default_messages[index]

def main():
    """主函数"""
    # 从命令行参数获取提醒次数
    reminder_count = 1
    if len(sys.argv) > 1:
        try:
            reminder_count = int(sys.argv[1])
        except ValueError:
            reminder_count = 1
    
    # 生成消息
    message = generate_reminder_message(reminder_count)
    
    # 输出消息
    print(message)
    
    # 同时输出为 JSON 格式，方便 OpenClaw 解析
    import json
    result = {
        "message": message,
        "reminder_count": reminder_count,
        "success": True
    }
    
    # 输出到 stderr，避免干扰主输出
    print(json.dumps(result, ensure_ascii=False), file=sys.stderr)

if __name__ == "__main__":
    main()

path: medication_wrapper.sh
content: #!/bin/bash
# 优甲乐服药提醒命令包装
cd "/Users/robbin/.openclaw/workspace/skills/medication-reminder"
python3 openclaw_integration.py "$@"


path: mobile_reminder.py
content: #!/usr/bin/env python3
"""
手机端优甲乐智能提醒消息生成器
专为 Feishu 和 WebChat 优化显示
"""

import sys
import os
from pathlib import Path

# 添加当前目录到路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

def generate_mobile_reminder(reminder_count=1, channel="feishu"):
    """生成手机端优化的提醒消息"""
    try:
        from medication_reminder import MedicationReminder
        
        reminder = MedicationReminder()
        
        # 获取数据
        yesterday_status = reminder.get_yesterday_status()
        yesterday_feedback = reminder.get_yesterday_feedback()
        stats = reminder._load_stats()
        today_status = reminder.get_today_status()
        
        # 根据渠道优化消息格式
        if channel == "feishu":
            # 飞书优化格式（支持富文本）
            return generate_feishu_message(
                reminder_count, yesterday_status, yesterday_feedback, 
                stats, today_status
            )
        else:
            # WebChat/通用格式
            return generate_webchat_message(
                reminder_count, yesterday_status, yesterday_feedback, 
                stats, today_status
            )
            
    except Exception as e:
        # 出错时返回默认消息
        return f"⏰ 优甲乐服药提醒\n\n请服用优甲乐。服药后回复确认。"

def generate_feishu_message(reminder_count, yesterday_status, yesterday_feedback, stats, today_status):
    """生成飞书优化消息"""
    # 时间描述
    time_descriptions = [
        "早上6:30，请服用优甲乐",
        "早上6:45，请尽快服用优甲乐", 
        "早上7:00，请立即服用优甲乐",
        "早上7:15，请立即服用优甲乐"
    ]
    
    time_desc = time_descriptions[min(reminder_count-1, 3)]
    
    # 构建飞书富文本消息
    message = f"💊 **优甲乐服药提醒**\n\n"
    message += f"🕐 **时间**：{time_desc}\n\n"
    
    message += f"📊 **昨天状态**\n"
    message += f"{yesterday_status['message']}\n\n"
    
    message += f"💡 **智能反馈**\n"
    message += f"{yesterday_feedback}\n\n"
    
    if stats['current_streak'] > 0:
        message += f"🔥 **连续服药**：{stats['current_streak']}天\n\n"
    
    message += f"📱 **操作指引**\n"
    message += "1. 立即服药\n"
    message += "2. 回复「服药了」或「/medication taken」\n"
    message += "3. 系统自动记录并更新统计\n"
    
    # 添加今日状态（如果已服药）
    if today_status['taken']:
        message += f"\n✅ **今日已服药**：{today_status['time']}"
        if not today_status['is_on_time']:
            message += "（延迟）"
    
    return message

def generate_webchat_message(reminder_count, yesterday_status, yesterday_feedback, stats, today_status):
    """生成WebChat优化消息"""
    # 时间表情和描述
    time_emojis = ["⏰", "🕐", "🕑", "🕒"]
    time_descriptions = [
        "现在是早上6:30，请服用优甲乐",
        "现在是早上6:45，请尽快服用优甲乐",
        "现在是早上7:00，请立即服用优甲乐",
        "现在是早上7:15，请立即服用优甲乐"
    ]
    
    emoji = time_emojis[min(reminder_count-1, 3)]
    time_desc = time_descriptions[min(reminder_count-1, 3)]
    
    # 构建WebChat消息
    message = f"{emoji} **优甲乐智能服药提醒**\n\n"
    message += f"**{time_desc}**\n\n"
    
    message += f"📅 昨天状态：{yesterday_status['message']}\n"
    message += f"💡 智能反馈：{yesterday_feedback}\n\n"
    
    if stats['current_streak'] > 0:
        message += f"🔥 连续服药：{stats['current_streak']}天（继续保持！）\n\n"
    
    message += f"💊 **服药后请回复**：\n"
    message += "• 在飞书中：回复「服药了」\n"
    message += "• 在WebChat：回复「/medication taken」\n"
    message += "• 或直接点击确认链接（如果支持）\n"
    
    # 添加快速操作提示
    message += f"\n⚡ **快速操作**：\n"
    message += "📱 飞书App → 找到此消息 → 回复确认\n"
    message += "💻 WebChat → 直接在此回复\n"
    
    return message

def generate_reminder_for_cron(reminder_count=1):
    """为cron任务生成消息（通用格式）"""
    try:
        from medication_reminder import MedicationReminder
        
        reminder = MedicationReminder()
        yesterday_feedback = reminder.get_yesterday_feedback()
        stats = reminder._load_stats()
        
        # 时间描述
        time_descriptions = [
            "现在是早上6:30，请服用优甲乐",
            "现在是早上6:45，请尽快服用优甲乐",
            "现在是早上7:00，请立即服用优甲乐", 
            "现在是早上7:15，请立即服用优甲乐"
        ]
        
        time_desc = time_descriptions[min(reminder_count-1, 3)]
        
        # 通用消息格式
        message = f"⏰ 优甲乐服药提醒\n\n"
        message += f"{time_desc}\n\n"
        message += f"{yesterday_feedback}\n\n"
        
        if stats['current_streak'] > 0:
            message += f"🔥 你已经连续服药 {stats['current_streak']} 天，继续保持！\n\n"
        
        message += f"💊 服药后请回复确认。"
        
        return message
        
    except Exception as e:
        return "⏰ 请服用优甲乐。服药后回复确认。"

def main():
    """命令行接口"""
    import argparse
    
    parser = argparse.ArgumentParser(description="手机端优甲乐提醒生成器")
    parser.add_argument("--count", type=int, default=1, help="提醒次数（1-4）")
    parser.add_argument("--channel", choices=["feishu", "webchat", "auto"], default="auto", help="目标渠道")
    parser.add_argument("--test", action="store_true", help="测试所有渠道")
    
    args = parser.parse_args()
    
    if args.test:
        print("🧪 测试所有渠道的消息生成：")
        print("\n" + "="*50)
        
        for channel in ["feishu", "webchat"]:
            print(f"\n📱 {channel.upper()} 渠道消息：")
            print("-"*30)
            message = generate_mobile_reminder(args.count, channel)
            print(message)
            print("\n" + "="*50)
        
        print("\n📅 通用cron消息：")
        print("-"*30)
        message = generate_reminder_for_cron(args.count)
        print(message)
        
    else:
        if args.channel == "auto":
            # 自动检测：如果从cron调用，使用通用格式
            message = generate_reminder_for_cron(args.count)
        else:
            message = generate_mobile_reminder(args.count, args.channel)
        
        print(message)
        
        # 同时输出JSON信息（供cron使用）
        import json
        info = {
            "message": message,
            "reminder_count": args.count,
            "channel": args.channel,
            "timestamp": __import__("datetime").datetime.now().isoformat()
        }
        print(json.dumps(info, ensure_ascii=False), file=sys.stderr)

if __name__ == "__main__":
    main()

path: openclaw-skill-config.json
content: {
  "name": "medication-reminder",
  "description": "优甲乐服药提醒与记录系统",
  "commands": {
    "medication": {
      "description": "管理优甲乐服药提醒和记录",
      "handler": "openclaw_integration.handle_medication_command",
      "examples": [
        "/medication start - 启动每日提醒",
        "/medication taken - 记录服药",
        "/medication status - 查看状态",
        "/medication report - 生成报告"
      ]
    }
  },
  "cronJobs": [
    {
      "name": "medication-first-reminder",
      "schedule": "30 6 * * *",
      "message": "⏰ 服药提醒：请服用优甲乐。回复 /medication taken 确认服药。"
    }
  ],
  "dataFiles": [
    "medication-records.json",
    "stats.json",
    "settings.json"
  ]
}

Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)