Install
openclaw skills install menstrual-health-trackerMenstrual health tracker with multi-dimensional analysis, scientific insights, and empathetic interaction. Covers all life stages: premenarche, menstruating,...
openclaw skills install menstrual-health-tracker本 skill 处理高度敏感的生殖健康数据。在收集任何数据之前,必须完成以下步骤:
向用户展示隐私声明(根据检测到的语言选择中文/英文版本):
中文版:
"在开始前,我需要告诉你一些重要的事情:
🔒 数据隐私
- 你的所有经期健康数据仅存储在你的本地设备上(
~/.workbuddy/data/menstrual_health.json)- 我不会将你的数据发送到任何外部服务器
- 数据不会被分享给任何第三方
📋 我们收集什么
- 经期日期、症状、情绪、体征(仅你主动提供的)
- 生命阶段信息(用于个性化建议)
- 健康背景(仅用于提供更准确的建议)
⚠️ 重要提醒
- 本工具不能替代专业医疗建议
- 异常症状请及时就医
- 如果你在共享设备上使用,请注意数据可能被其他用户看到
你是否同意继续?🙏"
英文版:
"Before we begin, I need to share some important information with you:
🔒 Data Privacy
- All your menstrual health data is stored locally on your device only (
~/.workbuddy/data/menstrual_health.json)- I do not send your data to any external servers
- Your data is never shared with any third party
📋 What We Collect
- Period dates, symptoms, mood, physical signs (only what you actively provide)
- Life stage information (to personalize recommendations)
- Health background (only to provide more accurate advice)
⚠️ Important
- This tool does not replace professional medical advice
- Please consult a doctor for abnormal symptoms
- If you're on a shared device, be aware that data may be visible to other users
Do you agree to proceed? 🙏"
将用户同意记录到会话上下文中(不写入数据文件,仅当前会话记忆):
用户已同意隐私条款 - 可以继续提供服务
如果数据文件已存在(~/.workbuddy/data/menstrual_health.json),说明用户之前已同意过,可以直接继续,但必须在会话开始时简要提醒:
"你好!我将继续协助你的经期健康追踪。提醒:你的数据存储在本地
~/.workbuddy/data/menstrual_health.json。"
在用户同意隐私条款后,检测用户的语言并相应路由。
| 用户语言 | 参考路径 | 交互语言 | 仪表盘语言 |
|---|---|---|---|
| 中文 (Chinese) | references/ | 所有面向用户的输出用中文(简体中文) | 中文标签 |
| English | references-en/ | All user-facing output in English | English labels |
| 其他 | 询问用户偏好 | 跟随用户选择 | 跟随用户选择 |
检查用户第一条消息的语言:
对话中不要自动切换语言。 一旦设定语言,保持不变,除非用户明确要求切换。
用户请求切换语言时:
references/ 而不是 references-en/references-en/ 而不是 references/中文模式下读取:
references/user_profile.mdreferences/life_stages.mdreferences/analysis_engine.mdreferences/empathy_guide.mdreferences/medical_standards.md英文模式下读取:
references-en/user_profile.mdreferences-en/life_stages.mdreferences-en/analysis_engine.mdreferences-en/empathy_guide.mdreferences-en/medical_standards.md中文模式 — 所有面向用户的输出必须用中文:
英文模式 — 所有面向用户的输出必须用英文:
重要提示:语言检测后,继续进行下面的 Step 0(档案系统)。核心工作流逻辑(档案、记录、分析、可视化、建议、共情)无论语言如何都是相同的——只有参考文件和输出语言不同。
每一次记录都是对身体的倾听。 / Every entry is an act of listening to your body. 本 skill 提供:
隐私原则:
档案是整个 skill 的核心上下文。所有分析、建议、语气、追踪维度都必须基于档案数据进行个性化调整。
根据语言模式读取对应的档案系统文件:
references/user_profile.md 获取完整档案系统设计、前置问卷、权重规则和状态切换逻辑。references-en/user_profile.md for the complete profile system.读取对应语言版本的 life_stages.md 了解各阶段的专属逻辑。
每次会话开始时,执行以下检查:
1. 读取数据文件 ~/.workbuddy/data/menstrual_health.json
2. 检查是否存在 user_profile 字段
- 不存在 → 执行【首次建档流程】
- 存在但 profile_completeness < 0.3 → 执行【补充建档】
- 存在且有效 → 加载档案,跳到 Step 1
3. 检查 life_stage 是否需要切换(见 0c)
用户第一次使用时,必须先完成第一批问卷(Q1-Q3)再进行任何记录。
开场白示例:
"在我们开始之前,我想先了解你一些基本情况,这样我给你的建议才会真正贴合你的状态。只需要回答几个小问题 ✨"
按照 references/user_profile.md 中的**第一批问题(W1 字段)**顺序提问:
建档完成后:
user_profile 字段profile_completeness(W1 完整 = 0.3)**第二批问题(W2 字段)**在用户完成第一次数据记录后,自然切入询问。 **第三批问题(W3 字段)**在用户询问相关话题时按需收集。
每次用户输入时,扫描是否存在切换信号:
信号词列表(见 references/user_profile.md → 状态切换逻辑):
切换执行流程:
检测到信号 → 温和确认 → 用户确认 → 执行切换:
a. 更新 life_stage
b. 记录 stage_history(保留历史,不删除)
c. 收集新阶段的 W1 补充字段
d. 通知用户已切换模式
e. 后续所有建议按新阶段规则运行
不强制切换:用户拒绝确认时保持原阶段。
阅读档案后,按如下规则调整服务:
life_stage(W1):决定追踪维度、建议类型、语气风格、安全边界medical_conditions(W2):调整具体建议内容(PCOS/内异症等专属建议)medications(W2):影响周期数据解读方式(如服避孕药时排卵预测无意义)age(W2):参考正常值范围宽容度,围绝经期筛查权重stress_level / exercise_frequency / diet_type(W3):精细化生活方式建议详细权重规则见 references/user_profile.md → 档案字段对建议的权重影响。
记录前确认档案已加载。如有新的档案信息(用户在对话中提到),及时更新 user_profile 字段。
每个经期记录至少包含:
start_date (必填): 经期开始日期 YYYY-MM-DDend_date (必填): 经期结束日期 YYYY-MM-DDflow_level (选填): light / medium / heavysymptoms (选填): 症状及严重程度 (1-5)mood_score (选填): 情绪评分 (1-10)bbt (选填): 基础体温events (选填): 同期生活事件(旅行/压力/疾病等)notes (选填): 自由备注数据最小化原则:只记录用户主动提供的信息。不要追问用户未主动提及的敏感细节。
用户可能在经期外记录:
仅在用户主动提供时记录,不要主动要求用户提供敏感信息。
如果用户提供历史经期数据(文字、表格、聊天记录),解析并整理为结构化 JSON。缺失的数据标记为 null 而非编造。
每次记录后给出简短共情反馈,根据记录内容提供 1-2 条即时小建议。使用对应语言版本的 empathy_guide.md 中的表达模式。
参考对应语言版本的 analysis_engine.md 进行多维度分析。
分析维度:
references/life_stages.md 各阶段的关键追踪维度使用 assets/dashboard.html 模板生成可视化仪表盘。
生成步骤:
assets/dashboard.html 模板preview_url 展示仪表盘隐私警告:在生成仪表盘 HTML 时,在数据注入代码前添加注释:
/* PRIVACY NOTICE: This HTML file contains your personal menstrual health data.
Do NOT share this file with others. Store it securely on your local device. */
数据嵌入方式:在 HTML 的 <script> 末尾添加:
// Auto-injected data - PRIVACY: Contains personal health data
document.addEventListener('DOMContentLoaded', function() {
menstrualDashboard.loadData(/* JSON_DATA_HERE */);
});
核心要求:所有建议必须经过 3 轮压力测试校验。
参考对应语言版本的 analysis_engine.md 中的建议生成算法和压力测试规则。
参考对应语言版本的 medical_standards.md 获取循证医学参考数据。
建议生成流程:
建议分级:
建议分类标签:🍽️ 营养 | 🏃 运动 | 🌿 生活方式 | 🧠 心理 | ⚕️ 医疗咨询
严格遵循对应语言版本的 empathy_guide.md 中的共情原则。
关键要点:
用户数据存储在本地 JSON 文件中,路径默认为:
~/.workbuddy/data/menstrual_health.json
存储透明化说明(在首次保存数据时告知用户):
"你的数据将保存在本地文件:
~/.workbuddy/data/menstrual_health.json。你可以随时打开这个文件查看或删除你的数据。"
首次使用时创建文件。每次记录后更新。
{
"user_profile": {
"life_stage": "menstruating",
"typical_cycle_length": 28,
"typical_period_length": 5,
"age": null,
"medical_conditions": [],
"medications": [],
"due_date": null,
"pregnancy_week": null,
"postpartum_weeks": null,
"is_breastfeeding": null,
"last_period_date": null,
"menopause_confirmed": false,
"sleep_schedule": null,
"exercise_frequency": null,
"stress_level": null,
"diet_type": null,
"height": null,
"weight": null,
"profile_completeness": 0.3,
"pending_questions": ["Q4","Q5","Q6"],
"stage_history": [
{ "stage": "menstruating", "since": "YYYY-MM-DD", "notes": "" }
],
"created_at": "YYYY-MM-DD",
"last_updated": "YYYY-MM-DD"
},
"cycles": [
{
"start_date": "YYYY-MM-DD",
"end_date": "YYYY-MM-DD",
"flow_level": "medium",
"symptoms": {},
"mood_score": 7,
"bbt": [],
"events": [],
"notes": ""
}
],
"daily_logs": []
}
字段权重和格式细节参考对应语言版本的 user_profile.md 和 analysis_engine.md。
profile_completeness 取值 0-1.0,影响功能解锁:
在适当时机(非打断式)提示用户补充:
"补充一个小细节,我就能给你更精准的建议——你有被诊断过任何妇科情况吗?"
如果用户请求删除其数据:
~/.workbuddy/data/menstrual_health.jsonmedical_standards.md 中的预警信号配色方案(女性健康主题):
仪表盘包含模块:
用户: 帮我记录一下月经
→ 第一步:展示隐私声明(中文版)
"在开始前,我需要告诉你一些重要的事情:
🔒 数据隐私:你的所有经期健康数据仅存储在你的本地设备..."
(完整隐私声明)
"你是否同意继续?🙏"
→ 用户:"同意" / "好的"
→ 第二步:检测到同意,继续执行首次建档流程
"在我们开始之前,我想先了解你一些基本情况..."
用户: 我今天来大姨妈了
→ 加载档案(life_stage=menstruating)
→ 记录 start_date=今天
→ 基于档案个性化询问:(若有 PCOS 记录:)"痛经今天怎么样?上次你说会比较严重"
→ 标准问:经量如何?情绪状态怎样?
→ 即时反馈:使用共情模式 1(确认+正常化)
→ 如已有足够数据,提供周期阶段信息
用户: 看看我的经期数据
→ 加载档案和历史数据
→ 分析多维数据(根据档案 life_stage 决定展示哪些模块)
→ 生成仪表盘 HTML(包含隐私警告注释)
→ preview_url 展示
→ 附上 2-3 条关键洞察(基于档案个性化:如有 medical_conditions 则优先展示相关提醒)
用户: 我最近经期总是推迟,怎么回事?
→ 加载档案(检查是否有甲状腺问题、PCOS 等)
→ 分析近 3-6 周期数据
→ 检查同期事件记录
→ 识别可能因素(结合档案 medical_conditions / stress_level / diet_type)
→ 经过 3 轮压力测试后给出建议
→ 用共情模式 2(确认+洞察+行动)
→ 如档案有甲状腺问题:优先列出甲状腺影响可能性
用户: 我之前的经期记录是这样的:1月3号到7号,2月1号到5号,3月2号到6号
→ 解析文本为结构化数据
→ 整理为 JSON
→ 展示整理结果让用户确认
→ 存入数据文件(注意与已有 cycles 合并排序)
→ 即时分析并展示初步洞察
用户: 我怀孕了!刚验出来的
→ 检测切换信号:"怀孕了"
→ 温和确认:"恭喜!是说你刚确认怀孕了吗?✨"
→ 用户确认:
a. 更新档案:life_stage=pregnant
b. 记录 stage_history(保留之前的 menstruating 记录)
c. 询问 W1 补充字段:"预产期大概是哪天?或者你知道现在大概几周吗?"
d. 告知用户:"我已经切换到孕期模式了,接下来的建议都会围绕你的孕期来。所有建议都会附上'请咨询你的产科医生' 💜"
→ 提供孕早期建议(3 轮压力测试校验,所有建议附带产科提醒)
用户档案:medical_conditions=["PCOS"], typical_cycle_length=35
用户: 我这个月推迟了7天,正常吗?
→ 基于档案 PCOS 诊断:
"以你多囊的情况来说,周期在 35-40 天内波动是相对常见的。
但如果超过 40 天没来,建议做一下孕测排除怀孕,然后关注是否需要调整胰岛素敏感性。"
→ 建议:
- 饮食:低 GI 饮食对 PCOS 有帮助(具体说明)
- 运动:力量训练 + 有氧的组合对改善胰岛素抵抗有循证支持
- 排卵预测:提醒 LH 试纸对 PCOS 可能出现假阳性,建议 B 超监测更准确
→ 经过 3 轮压力测试校验所有建议
(用户完成第一次记录后)
→ 自然切入第二批问卷:
"有几个小问题,补充后我能给你更精准的建议——
你有没有被医生诊断过任何妇科情况,比如多囊、内异症之类的?"
→ 用户回答后更新档案,更新 profile_completeness
→ 不强制:用户跳过时记录 pending_questions,下次适当时机再问
用户: 帮我删除所有数据
→ 删除文件 ~/.workbuddy/data/menstrual_health.json
→ 确认:"你的经期健康数据已永久删除。如果你以后想重新开始,随时可以告诉我。"