* fix: stabilize validation and tests on Windows * test: add Windows smoke coverage for skill activation * refactor: make setup_web script CommonJS * fix: repair aegisops-ai frontmatter * docs: add when-to-use guidance to core skills * docs: add when-to-use guidance to Apify skills * docs: add when-to-use guidance to Google and Expo skills * docs: add when-to-use guidance to Makepad skills * docs: add when-to-use guidance to git workflow skills * docs: add when-to-use guidance to fp-ts skills * docs: add when-to-use guidance to Three.js skills * docs: add when-to-use guidance to n8n skills * docs: add when-to-use guidance to health analysis skills * docs: add when-to-use guidance to writing and review skills * meta: sync generated catalog metadata * docs: add when-to-use guidance to Robius skills * docs: add when-to-use guidance to review and workflow skills * docs: add when-to-use guidance to science and data skills * docs: add when-to-use guidance to tooling and automation skills * docs: add when-to-use guidance to remaining skills * fix: gate bundle helper execution in Windows activation * chore: drop generated artifacts from contributor PR * docs(maintenance): Record PR 457 sweep Document the open issue triage, PR supersedence decision, local verification, and source-only cleanup that prepared PR #457 for re-running CI. --------- Co-authored-by: sickn33 <sickn33@users.noreply.github.com>
460 lines
14 KiB
Markdown
460 lines
14 KiB
Markdown
---
|
||
name: health-trend-analyzer
|
||
description: 分析一段时间内健康数据的趋势和模式。关联药物、症状、生命体征、化验结果和其他健康指标的变化。识别令人担忧的趋势、改善情况,并提供数据驱动的洞察。当用户询问健康趋势、模式、随时间的变化或"我的健康状况有什么变化?"时使用。支持多维度分析(体重/BMI、症状、药物依从性、化验结果、情绪睡眠),相关性分析,变化检测,以及交互式HTML可视化报告(ECharts图表)。
|
||
allowed-tools: Read, Grep, Glob, Write
|
||
risk: unknown
|
||
source: community
|
||
---
|
||
|
||
# 健康趋势分析器
|
||
|
||
分析一段时间内健康数据的趋势和模式,识别变化、相关性,并提供数据驱动的健康洞察。
|
||
|
||
## When to Use
|
||
|
||
- 需要分析一段时间内健康数据的趋势、相关性或显著变化时使用。
|
||
- 任务涉及体重、症状、用药、化验、情绪或睡眠等多维度随时间变化。
|
||
- 用户询问“最近健康状况有什么变化”或需要趋势报告时使用。
|
||
|
||
## 核心功能
|
||
|
||
### 1. 多维度趋势分析
|
||
- **体重/BMI 趋势**:追踪体重和BMI随时间的变化,评估健康趋势
|
||
- **症状模式**:识别反复出现的症状、频率变化、潜在诱因
|
||
- **药物依从性**:分析用药规律,识别漏服模式和改善空间
|
||
- **化验结果趋势**:追踪生化指标变化(胆固醇、血糖、血压等)
|
||
- **情绪与睡眠**:关联情绪状态与睡眠质量,识别心理健康趋势
|
||
|
||
### 2. 相关性分析引擎
|
||
- **药物-症状相关性**:识别新药物是否与症状变化相关
|
||
- **生活方式影响**:关联饮食/睡眠与症状和情绪
|
||
- **治疗效果评估**:衡量治疗是否导致改善
|
||
- **周期-症状相关性**:女性健康追踪中的周期相关性
|
||
|
||
### 3. 变化检测
|
||
- **显著变化**:警告快速体重变化、新症状、药物变化
|
||
- **恶化模式**:早期识别健康状况下降
|
||
- **改善识别**:强调积极的健康变化
|
||
- **阈值警报**:接近危险水平时警告(辐射、BMI极值)
|
||
|
||
### 4. 预测性洞察
|
||
- **风险评估**:基于趋势识别风险因素
|
||
- **预防建议**:基于模式建议预防措施
|
||
- **早期预警**:在问题变得严重之前预测
|
||
|
||
## 使用说明
|
||
|
||
### 触发条件
|
||
|
||
当用户提到以下场景时,使用此技能:
|
||
|
||
**通用询问**:
|
||
- ✅ "过去一段时间我的健康有什么变化?"
|
||
- ✅ "分析我的健康趋势"
|
||
- ✅ "我的身体状况有什么变化?"
|
||
- ✅ "健康状况总结"
|
||
|
||
**具体维度**:
|
||
- ✅ "我的体重/BMI有什么趋势?"
|
||
- ✅ "分析我的症状模式"
|
||
- ✅ "我的用药依从性怎么样?"
|
||
- ✅ "我的化验指标有什么变化?"
|
||
- ✅ "我的情绪和睡眠趋势"
|
||
|
||
**相关性分析**:
|
||
- ✅ "我的症状和什么相关?"
|
||
- ✅ "我的药物有效吗?"
|
||
- ✅ "睡眠和我的情绪有什么关系?"
|
||
|
||
**时间范围**:
|
||
- 默认分析**过去3个月**的数据
|
||
- 支持:"过去1个月"、"过去6个月"、"过去1年"
|
||
- 支持:"2025年1月至今"、"最近90天"
|
||
|
||
### 执行步骤
|
||
|
||
#### 步骤 1:确定分析时间范围
|
||
|
||
从用户输入中提取时间范围,或使用默认值(3个月)。
|
||
|
||
#### 步骤 2:读取健康数据
|
||
|
||
读取以下数据源:
|
||
|
||
```javascript
|
||
// 1. 个人档案(BMI、体重)
|
||
const profile = readFile('data/profile.json');
|
||
|
||
// 2. 症状记录
|
||
const symptomFiles = glob('data/symptoms/**/*.json');
|
||
const symptoms = readAllJson(symptomFiles);
|
||
|
||
// 3. 情绪记录
|
||
const moodFiles = glob('data/mood/**/*.json');
|
||
const moods = readAllJson(moodFiles);
|
||
|
||
// 4. 饮食记录
|
||
const dietFiles = glob('data/diet/**/*.json');
|
||
const diets = readAllJson(dietFiles);
|
||
|
||
// 5. 用药日志
|
||
const medicationLogs = glob('data/medication-logs/**/*.json');
|
||
|
||
// 6. 女性健康数据(如适用)
|
||
const cycleData = readFile('data/cycle-tracker.json');
|
||
const pregnancyData = readFile('data/pregnancy-tracker.json');
|
||
const menopauseData = readFile('data/menopause-tracker.json');
|
||
|
||
// 7. 过敏史
|
||
const allergies = readFile('data/allergies.json');
|
||
|
||
// 8. 辐射记录
|
||
const radiation = readFile('data/radiation-records.json');
|
||
```
|
||
|
||
#### 步骤 3:数据过滤
|
||
|
||
根据时间范围过滤数据:
|
||
|
||
```javascript
|
||
function filterByDate(data, startDate, endDate) {
|
||
return data.filter(item => {
|
||
const itemDate = new Date(item.date || item.created_at);
|
||
return itemDate >= startDate && itemDate <= endDate;
|
||
});
|
||
}
|
||
```
|
||
|
||
#### 步骤 4:趋势分析
|
||
|
||
对每个数据维度进行趋势分析:
|
||
|
||
**4.1 体重/BMI 趋势**
|
||
- 提取历史体重数据
|
||
- 计算BMI变化
|
||
- 识别趋势方向(上升/下降/稳定)
|
||
- 评估变化幅度
|
||
|
||
**4.2 症状模式**
|
||
- 统计症状频率
|
||
- 识别高频症状
|
||
- 分析症状时间模式
|
||
- 检测症状诱因
|
||
|
||
**4.3 药物依从性**
|
||
- 计算总体依从率
|
||
- 分析各药物依从性
|
||
- 识别漏服模式
|
||
- 评估改善建议
|
||
|
||
**4.4 化验结果**
|
||
- 追踪多次报告中的生化指标
|
||
- 与参考范围对比
|
||
- 识别改善/恶化
|
||
- 标记异常指标
|
||
|
||
**4.5 情绪与睡眠**
|
||
- 关联情绪评分与睡眠时长
|
||
- 识别情绪波动模式
|
||
- 检测压力水平
|
||
- 评估心理健康趋势
|
||
|
||
#### 步骤 5:相关性分析
|
||
|
||
使用统计方法识别相关性:
|
||
|
||
```javascript
|
||
// 皮尔逊相关系数
|
||
function pearsonCorrelation(x, y) {
|
||
// 计算相关系数
|
||
// 返回值范围:-1(负相关)到 1(正相关)
|
||
}
|
||
|
||
// 应用场景
|
||
- 药物开始日期 vs 症状频率
|
||
- 睡眠时长 vs 情绪评分
|
||
- 体重变化 vs 饮食记录
|
||
- 运动量 vs 情绪状态
|
||
```
|
||
|
||
#### 步骤 6:变化检测
|
||
|
||
识别显著变化:
|
||
|
||
```javascript
|
||
// 变化点检测
|
||
function detectChangePoints(timeSeries) {
|
||
// 使用统计方法检测显著变化点
|
||
// 例如:体重突然下降、症状突然增加
|
||
}
|
||
|
||
// 阈值警报
|
||
function checkThresholds(value, thresholds) {
|
||
// 检查是否接近或超过危险阈值
|
||
// 例如:BMI > 30、辐射剂量 > 安全限
|
||
}
|
||
```
|
||
|
||
#### 步骤 7:生成洞察
|
||
|
||
基于分析结果生成预测性洞察:
|
||
|
||
```javascript
|
||
// 风险评估
|
||
function assessRisks(trends) {
|
||
// 识别高风险趋势
|
||
// 例如:快速体重下降、频繁症状
|
||
}
|
||
|
||
// 预防建议
|
||
function generateRecommendations(trends, correlations) {
|
||
// 基于模式建议预防措施
|
||
// 例如:改善睡眠、提高用药依从性
|
||
}
|
||
|
||
// 早期预警
|
||
function earlyWarnings(trends) {
|
||
// 在问题变得严重之前预测
|
||
// 例如:症状频率上升、情绪持续低落
|
||
}
|
||
```
|
||
|
||
#### 步骤 8:生成可视化报告
|
||
|
||
生成交互式HTML报告:
|
||
|
||
1. **数据汇总**:生成JSON格式的分析结果
|
||
2. **HTML模板渲染**:将数据注入HTML模板
|
||
3. **ECharts图表配置**:配置6种交互式图表
|
||
4. **保存文件**:保存为独立HTML文件
|
||
|
||
详细输出格式参见:数据源说明
|
||
|
||
## 输出格式
|
||
|
||
### 文本报告(简洁版)
|
||
|
||
```
|
||
健康趋势分析报告
|
||
━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||
生成时间: 2025-12-31
|
||
分析周期: 过去3个月 (2025-10-01 至 2025-12-31)
|
||
|
||
📊 总体评估
|
||
━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||
改善中: 体重管理、胆固醇水平
|
||
稳定: 血糖控制、情绪状态
|
||
需关注: 用药依从性、睡眠质量
|
||
|
||
📊 体重/BMI 趋势
|
||
├─ 当前体重: 68.5 kg
|
||
├─ 当前 BMI: 23.1(正常范围)
|
||
├─ 3个月变化: -2.3 kg(-3.2%)
|
||
├─ 趋势: 📉 逐渐减重
|
||
└─ 评估: ✅ 积极趋势,在健康范围内
|
||
|
||
💊 药物依从性
|
||
├─ 当前药物: 3种
|
||
├─ 总体依从率: 78%
|
||
├─ 漏服次数: 8次
|
||
├─ 最好: 阿司匹林 (95%)
|
||
└─ 需改进: 氨氯地平 (65%)
|
||
|
||
⚠️ 症状模式
|
||
├─ 最频繁: 头痛(过去3个月 12次)
|
||
├─ 趋势: 📉 频率下降(较上期减少4次)
|
||
├─ 潜在诱因: 与睡眠质量识别出中等相关(r=0.62)
|
||
└─ 建议: 继续改善睡眠模式
|
||
|
||
🧪 化验结果趋势
|
||
├─ 胆固醇: 240 → 210 mg/dL(改善 ✅)
|
||
├─ 血糖: 5.6 → 5.4 mmol/L(稳定)
|
||
├─ 上次检查: 30天前
|
||
└─ 建议: 3个月后复查
|
||
|
||
😊 情绪与睡眠
|
||
├─ 平均情绪评分: 6.8/10
|
||
├─ 平均睡眠时长: 6.5小时
|
||
├─ 趋势: 情绪稳定,睡眠略有改善
|
||
└─ 相关性: 睡眠时长与情绪评分强相关(r=0.78)
|
||
|
||
🔗 相关性分析
|
||
━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||
• 睡眠时长 ↔ 情绪评分: 强正相关 (r=0.78)
|
||
• 体重变化 ↔ 饮食记录: 中等相关 (r=0.55)
|
||
• 用药依从性 ↔ 症状频率: 中等负相关 (r=-0.62)
|
||
|
||
💡 风险评估与建议
|
||
━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||
|
||
🟢 继续保持
|
||
• 当前体重管理方法有效
|
||
• 胆固醇水平改善明显
|
||
|
||
🟡 需要关注
|
||
• 提高氨氯地平依从性(设置提醒)
|
||
• 增加睡眠时长至7-8小时
|
||
|
||
📅 复查计划
|
||
• 3个月后复查血脂四项
|
||
• 1个月后评估用药依从性改善
|
||
|
||
━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||
⚠️ 免责声明
|
||
本分析仅供参考,不替代专业医疗诊断。
|
||
请咨询医生获取专业建议。
|
||
```
|
||
|
||
### HTML可视化报告(完整版)
|
||
|
||
生成包含ECharts交互式图表的独立HTML文件,包含:
|
||
|
||
1. **总体评估卡片**:关键指标一目了然
|
||
2. **体重/BMI趋势图**:双Y轴折线图(体重 + BMI)
|
||
3. **症状频率图**:颜色编码的柱状图(高频红/中频黄/低频绿)
|
||
4. **药物依从性仪表盘**:总体依从率 + 各药物详情
|
||
5. **化验结果趋势图**:多系列折线图 + 参考线
|
||
6. **相关性热图**:热力图展示变量间相关性
|
||
7. **情绪与睡眠面积图**:双Y轴面积图
|
||
|
||
**HTML文件特点**:
|
||
- ✅ 完全独立(所有依赖通过CDN)
|
||
- ✅ 交互式图表(缩放、导出、图例切换)
|
||
- ✅ 响应式设计(移动端适配)
|
||
- ✅ 可打印(打印优化样式)
|
||
- ✅ 可分享(发送给医生)
|
||
|
||
## 数据源
|
||
|
||
### 主要数据源
|
||
|
||
| 数据源 | 文件路径 | 数据内容 |
|
||
|--------|---------|---------|
|
||
| 个人档案 | `data/profile.json` | 体重、身高、BMI历史 |
|
||
| 症状记录 | `data/symptoms/**/*.json` | 症状名称、严重程度、持续时间 |
|
||
| 情绪记录 | `data/mood/**/*.json` | 情绪评分、睡眠质量、压力水平 |
|
||
| 饮食记录 | `data/diet/**/*.json` | 餐次、食物、卡路里、营养素 |
|
||
| 用药日志 | `data/medication-logs/**/*.json` | 用药时间、依从性记录 |
|
||
| 化验结果 | `data/medical_records/**/*.json` | 生化指标、参考范围 |
|
||
|
||
### 辅助数据源
|
||
|
||
| 数据源 | 文件路径 | 数据内容 |
|
||
|--------|---------|---------|
|
||
| 女性周期 | `data/cycle-tracker.json` | 周期长度、症状记录 |
|
||
| 孕期追踪 | `data/pregnancy-tracker.json` | 孕周、体重、检查记录 |
|
||
| 更年期 | `data/menopause-tracker.json` | 症状、HRT使用 |
|
||
| 过敏史 | `data/allergies.json` | 过敏原、严重程度 |
|
||
| 辐射记录 | `data/radiation-records.json` | 累积辐射剂量 |
|
||
|
||
详细数据结构说明请参考:data-sources.md
|
||
|
||
## 分析算法
|
||
|
||
### 时间序列分析
|
||
- 趋势检测(线性回归)
|
||
- 季节性分析
|
||
- 异常值检测
|
||
|
||
### 相关性分析
|
||
- 皮尔逊相关系数(连续变量)
|
||
- 斯皮尔曼相关系数(有序变量)
|
||
- 交叉相关分析(时间序列)
|
||
|
||
### 变化点检测
|
||
- CUSUM算法
|
||
- 滑动窗口t检验
|
||
- 贝叶斯变化点检测
|
||
|
||
### 统计指标
|
||
- 均值、中位数、标准差
|
||
- 百分位数(25%, 50%, 75%)
|
||
- 变化率(环比、同比)
|
||
|
||
详细算法说明请参考:algorithms.md
|
||
|
||
## 安全与隐私
|
||
|
||
### 必须遵循
|
||
|
||
- ❌ 不给出医疗诊断
|
||
- ❌ 不给出具体用药建议
|
||
- ❌ 不判断生死预后
|
||
- ❌ 标注免责声明(仅供参考)
|
||
|
||
### 信息准确度
|
||
|
||
- ✅ 仅基于已记录的数据进行分析
|
||
- ✅ 不推测或推断缺失信息
|
||
- ✅ 明确标注数据来源和时间范围
|
||
- ✅ 建议应由医疗专业人员审查
|
||
|
||
### 隐私保护
|
||
|
||
- ✅ 所有数据保持本地
|
||
- ✅ 无外部API调用
|
||
- ✅ 分析结果仅保存在本地
|
||
- ✅ HTML报告独立运行(无数据传输)
|
||
|
||
## 错误处理
|
||
|
||
### 数据缺失
|
||
- **无数据**:输出"暂无数据,建议先记录[数据类型]"
|
||
- **数据不足**:输出"数据不足(需要至少1个月数据才能进行趋势分析)"
|
||
- **数据范围窄**:使用现有数据,提示"建议延长记录时间以获得更准确的趋势"
|
||
|
||
### 分析失败
|
||
- **无法计算趋势**:输出"无法计算趋势,数据点不足"
|
||
- **相关性分析失败**:输出"相关性分析需要更多数据"
|
||
- **图表渲染失败**:降级为文本报告
|
||
|
||
## 使用示例
|
||
|
||
### 示例 1:一般健康趋势
|
||
**用户**:"过去3个月我的健康有什么变化?"
|
||
**输出**:生成完整的HTML报告,包含所有维度的趋势分析
|
||
|
||
### 示例 2:症状分析
|
||
**用户**:"分析我的症状模式"
|
||
**输出**:重点分析症状频率、诱因、趋势
|
||
|
||
### 示例 3:体重趋势
|
||
**用户**:"我的体重有什么趋势?"
|
||
**输出**:重点分析体重/BMI变化、与饮食/运动的相关性
|
||
|
||
### 示例 4:药物有效性
|
||
**用户**:"我的降压药有效吗?"
|
||
**输出**:关联药物开始日期与血压读数、症状改善
|
||
|
||
更多完整示例请参考:examples.md
|
||
|
||
## 相关命令
|
||
|
||
- `/symptom`:记录症状
|
||
- `/mood`:记录情绪
|
||
- `/diet`:记录饮食
|
||
- `/medication`:管理药物和用药记录
|
||
- `/query`:查询特定数据点
|
||
|
||
## 技术实现
|
||
|
||
### 工具限制
|
||
|
||
此Skill仅使用以下工具(无需额外权限):
|
||
- **Read**:读取JSON数据文件
|
||
- **Grep**:搜索特定模式
|
||
- **Glob**:按模式查找数据文件
|
||
- **Write**:生成HTML报告(保存到`data/health-reports/`)
|
||
|
||
### 性能优化
|
||
|
||
- 增量读取:仅读取指定时间范围的数据文件
|
||
- 数据缓存:避免重复读取同一文件
|
||
- 延迟计算:按需生成图表数据
|
||
|
||
### 扩展性
|
||
|
||
- 支持添加新的数据维度
|
||
- 支持自定义图表类型
|
||
- 支持自定义分析算法
|