goal-analyzer
npx skills add https://github.com/huifer/wellally-health --skill goal-analyzer
Agent 安装分布
Skill 文档
å¥åº·ç®æ åæå¨æè½
åæå¥åº·ç®æ æ°æ®,è¯å«ç®æ 模å¼åè¿åº¦,è¯ä¼°ç®æ è¾¾ææ åµ,å¹¶æä¾ä¸ªæ§åç®æ 管ç建议ã
åè½
1. SMARTç®æ éªè¯
éªè¯è®¾å®çæ°ç®æ æ¯å¦ç¬¦åSMARTååã
éªè¯ç»´åº¦:
-
Specific(å ·ä½æ§)
- ç®æ æ¯å¦æç¡®å ·ä½
- æ¯å¦ææ¸ æ°çå®ä¹
- æ¯å¦é¿å 模ç³è¡¨è¿°
-
Measurable(å¯è¡¡éæ§)
- æ¯å¦æå¯éåçææ
- æ¯å¦ææç¡®çè¡¡éæ å
- æ¯å¦å¯ä»¥è¿½è¸ªè¿åº¦
-
Achievable(å¯å®ç°æ§)
- ç®æ æ¯å¦ç°å®å¯è¡
- æ¯å¦èèäºå½åç¶åµ
- æ¯å¦å¨åçæ¶é´èå´å
- åéç®æ :建议æ¯å¨0.5-1å ¬æ¤
- è¿å¨ç®æ :建议æ¯å¨3-5次,æ¯æ¬¡30-60åé
-
Relevant(ç¸å ³æ§)
- ç®æ æ¯å¦ä¸å¥åº·ç¸å ³
- æ¯å¦ç¬¦åç¨æ·æ´ä½å¥åº·è®¡å
- æ¯å¦ä¸ç°æç®æ åè°
-
Time-bound(ææ¶é)
- æ¯å¦ææç¡®çæªæ¢æ¥æ
- æ¶é´æ¡æ¶æ¯å¦åç
- æ¯å¦æé¶æ®µæ§éç¨ç¢
è¾åº:
- SMARTè¯å(æ¯ä¸ªç»´åº¦1-5å)
- æ»ä½è¯ååç级(S级/A级/B级/C级)
- æ¹è¿å»ºè®®
- ç®æ ä¼åæ¹æ¡
示ä¾è¯ä¼°:
{
"goal": "6个æå
åé5å
¬æ¤",
"smart_scores": {
"specific": 5,
"measurable": 5,
"achievable": 4,
"relevant": 5,
"time_bound": 5
},
"overall_score": 4.8,
"grade": "A",
"assessment": "ä¼ç§çSMARTç®æ ",
"suggestions": [
"建议设å®é¶æ®µæ§éç¨ç¢(æ¯2个æåé1.5-2å
¬æ¤)",
"建议é
åè¿å¨è®¡åå饮é£è°æ´"
]
}
2. ç®æ è¿åº¦è¿½è¸ª
追踪ååæç®æ ç宿è¿åº¦ã
追踪å 容:
-
å½åè¿åº¦
- 宿ç¾åæ¯
- å½åæ°å¼vsç®æ æ°å¼
- å©ä½å·®è·
-
æ¶é´è¿åº¦
- å·²ç¨æ¶é´å æ¯
- å©ä½æ¶é´
- è¿åº¦è¶ å/è½å夿
-
é度åæ
- å¹³åè¿åº¦é度(æ¯å¨/æ¯æ)
- é¢è®¡å®ææ¶é´
- æ¯å¦éè¦è°æ´è®¡å
-
è¶å¿è¯å«
- è¿åº¦è¶å¿(å é/稳å®/åé)
- å¨ææ§æ¨¡å¼
- å¼å¸¸æ³¢å¨æ£æµ
è¾åº:
- è¿åº¦å¯è§å(è¿åº¦æ¡ãç¾åæ¯)
- 宿æ¦ç颿µ
- æ¶é´é¢ä¼°(ä¹è§/䏿§/æ²è§)
- è°æ´å»ºè®®
è¿åº¦è¯çº§:
- ð¢ ä¼ç§ – è¿åº¦è¶ å,é¢è®¡æå宿
- ð¡ æ£å¸¸ – è¿åº¦ç¬¦å颿
- ð è½å – è¿åº¦ç¥æ ¢,éè¦å å¿«
- ð´ 严éè½å – è¿åº¦ä¸¥éæ»å,å»ºè®®è°æ´ç®æ
3. ä¹ æ¯å »æåæ
åæä¹ æ¯çå »ææ åµåè¿ç»æ§ã
åæå 容:
-
è¿ç»å¤©æ°è¿½è¸ª
- å½åè¿ç»å¤©æ°
- å岿é¿è¿ç»å¤©æ°
- å¹³åè¿ç»å¤©æ°
-
宿çç»è®¡
- æ»ä½å®æç
- æ¯å¨å®æç
- æ¯æå®æç
- ç¹å®ææå 宿ç
-
ä¹ æ¯å¼ºåº¦è¯ä¼°
- ä¹ æ¯åºåç¨åº¦(1-10å)
- ä¹ æ¯ç¨³å®æ§è¯å
- èªå¨åç¨åº¦è¯ä¼°
-
ä¹ æ¯æ¨¡å¼è¯å«
- æä½³è§¦åæ¶é´
- 常è§ä¸æåå
- æåå ç´ è¯å«
ä¹ æ¯å »æé¶æ®µ:
- 第1-7天 – å¯å¨æ(æå®¹ææ¾å¼)
- 第8-21天 – å½¢ææ(éæ¸ç¨³å®)
- 第22-30天 – å·©åºæ(æ¥è¿èªå¨å)
- 第31-66天 – ä¹ æ¯æ(åºæ¬å »æ)
- 第67天+ – èªå¨åæ(å®å ¨èªå¨å)
è¾åº:
- ä¹ æ¯çå¾(æ¥åè§å¾)
- è¿ç»å¤©æ°ç»è®¡
- 宿çè¶å¿å¾
- ä¹ æ¯å¼ºåº¦è¯å
- ä¹ æ¯å å 建议
示ä¾åæ:
{
"habit": "morning-stretch",
"current_streak": 21,
"longest_streak": 21,
"completion_rate": 95.2,
"strength_score": 7.5,
"stage": "å·©åºæ",
"assessment": "ä¹ æ¯å³å°å½¢æ,ç»§ç»ä¿æ!",
"next_milestone": 30,
"suggestions": [
"ç»§ç»ä¿æ,å³å°è¾¾å°30天éç¨ç¢",
"å¯ä»¥å°è¯æ·»å æ°çç¸å
³ä¹ æ¯"
]
}
4. 卿ºè¯ä¼°ä¸ç®¡ç
è¯ä¼°å管çç¨æ·ç卿ºæ°´å¹³ã
è¯ä¼°å 容:
-
卿ºè¯å追踪
- å½å卿ºæ°´å¹³(1-10å)
- 卿ºååè¶å¿
- 卿ºæ³¢å¨å¨æ
-
卿ºå ç´ åæ
- å å¨å¨æº(å¥åº·ãèªæå®ç°)
- å¤å¨å¨æº(å¥å±ã认å¯)
- ç¤¾ä¼æ¯æ(家人æåé¼å±)
-
卿ºä½è°·è¯å«
- 卿ºä¸éä¿¡å·
- 常è§ä½è°·æ¶é´ç¹
- é£é©æ¶æ®µé¢è¦
卿ºæåçç¥:
- 第2-3å¨ – 卿ºä¸é,éè¦å¼ºè°å·²å®æè¿åº¦
- 第1-2ä¸ªæ – ç²å³æ,éè¦è°æ´ç®æ åå¥å±
- 3个æå – 妿 æ,éè¦æ°é²æåææ
è¾åº:
- 卿ºè¶å¿å¾
- 卿ºä½è°·é¢è¦
- 个æ§åæ¿å±å»ºè®®
- å¥å±æºå¶å»ºè®®
æ¿å±å»ºè®®ç¤ºä¾:
- å½å¨æº<5å:å顾åå¿,éä½çæç®æ
- å½å¨æº5-7å:强è°è¿æ¥,设置å°å¥å±
- å½å¨æº>7å:è®¾å®ææ,追æ±åè¶
5. æå°±ç³»ç»ç®¡ç
管çåºç¡æå°±ç³»ç»çè§£éåè¿åº¦ã
æå°±ç±»å:
-
ç®æ ç¸å ³æå°±
- ð 馿¬¡ç®æ – å®æç¬¬ä¸ä¸ªå¥åº·ç®æ
- ð¯ åç¨è¾¾æ – ä»»æç®æ 宿50%
- ð ç®æ è¾¾æ – 宿ä¸ä¸ªå¥åº·ç®æ
- â¡ æå宿 – æåå®æç®æ
- ð è¶ é¢å®æ – è¶ é¢å®æç®æ
-
ä¹ æ¯ç¸å ³æå°±
- ð¥ è¿ç»7天 – ä»»æä¹ æ¯è¿ç»7天æå¡
- ðª è¿ç»21天 – ä»»æä¹ æ¯è¿ç»21天æå¡
- â è¿ç»30天 – ä»»æä¹ æ¯è¿ç»30天æå¡
- ð è¿ç»66天 – ä»»æä¹ æ¯è¿ç»66天æå¡(å®å ¨å »æ)
-
综åæå°±
- ð å¤ç®æ å¹¶è¡ – 忶宿3ä¸ªç®æ
- ð å®ç¾åæ – 30å¤©ä¹ æ¯å®æç100%
- ð å¿«éè¿æ¥ – åå¨è¿æ¥æå¤§
- ð é¿æåæ – æç»è¿½è¸ª180天
æå°±è¿½è¸ª:
- 已解éæå°±å表
- æªè§£éæå°±è¿åº¦
- æå°±è§£éæ¶é´
- æå°±ç¸å ³å»ºè®®
è¾åº:
- æå°±å¾½ç« å±ç¤º
- æå°±å®æè¿åº¦
- ä¸ä¸ä¸ªå¯è§£éæå°±
- æå°±è¾¾æå»ºè®®
6. éç¢è¯å«ä¸å»ºè®®
è¯å«é»ç¢ç®æ è¾¾æçå ç´ ,æä¾è§£å³æ¹æ¡ã
éç¢ç±»å:
-
æ¶é´éç¢
- å¿ç¢ãæ¶é´ä¸è¶³
- 建议:缩ç忬¡æ¶é¿,å¢å é¢ç;å©ç¨ç¢çæ¶é´
-
卿ºéç¢
- 缺ä¹å¨åãæå»¶
- 建议:设置æé;寻æ¾ä¼ä¼´;è°æ´ç®æ
-
ç¯å¢éç¢
- ç¼ºä¹æ¯æã诱æè¿å¤
- 建议:æ¹åç¯å¢;å¯»æ¾æ¿ä»£æ¹æ¡;å»ºç«æ¯æç³»ç»
-
è½åéç¢
- ç®æ 太é¾ã缺ä¹ç¥è¯
- 建议:éä½é¾åº¦;å¦ä¹ ç¥è¯;寻æ±ä¸ä¸å¸®å©
-
身ä½éç¢
- ç²å³ãä¸éãå伤
- 建议:伿¯æ¢å¤;è°æ´è®¡å;å¨è¯¢å»ç
è¾åº:
- 主è¦éç¢è¯å«
- éç¢é¢çç»è®¡
- 个æ§åè§£å³æ¹æ¡
- é¢é²æ§å»ºè®®
7. æ°æ®å ³èåæ
å°å¥åº·ç®æ ä¸å ¶ä»å¥åº·æ°æ®è¿è¡å ³èåæã
å ³è维度:
-
åéç®æ å ³è
- è¥å »æå ¥(å¡è·¯éãå®éè¥å »ç´ )
- è¿å¨æ¶è(é¢çãå¼ºåº¦ãæ¶é¿)
- ç¡ç è´¨é(æ¶é¿ã深度)
- ä½éååè¶å¿
-
è¿å¨ç®æ å ³è
- ç¡ç è´¨é(æ¢å¤æ åµ)
- è¥å »æå ¥(èç½è´¨ã碳水)
- èº«ä½ææ (ä½éãä½èç)
-
饮é£ç®æ å ³è
- è¥å »ç´ æå ¥(ç»´çç´ ãç¿ç©è´¨)
- èº«ä½ææ (è¡åãè¡ç³)
- è¿å¨è¡¨ç°
-
ç¡ç ç®æ å ³è
- è¿å¨æ¶é´(æé´è¿å¨å½±å)
- 饮飿¶é´(æé¤æ¶é´ãåå¡å )
- å±å¹æ¶é´(èå å½±å)
åææ¹æ³:
- ç¸å ³æ§åæ(Pearsonç¸å ³ç³»æ°)
- åå½åæ(颿µæ¨¡å)
- è¶å¿å¹é (è¶å¿åæ¥æ§)
- å ææ¨æ(æ½å¨å æå ³ç³»)
è¾åº:
- å ³è强度(强/ä¸/å¼±)
- æ£/è´ç¸å ³å ³ç³»
- å æå ³ç³»æ¨æ
- ä¼å建议
示ä¾å ³è:
{
"goal": "weight-loss",
"correlations": [
{
"factor": "daily_calories",
"correlation": -0.75,
"strength": "强è´ç¸å
³",
"insight": "æ¯æ¥å¡è·¯éæå
¥ä¸åéè¿åº¦å强è´ç¸å
³,é使å
¥å éè¿åº¦"
},
{
"factor": "exercise_frequency",
"correlation": 0.68,
"strength": "强æ£ç¸å
³",
"insight": "è¿å¨é¢çä¸åéè¿åº¦å强æ£ç¸å
³,å»ºè®®ä¿ææ¯å¨4次以ä¸"
},
{
"factor": "sleep_duration",
"correlation": 0.45,
"strength": "ä¸çæ£ç¸å
³",
"insight": "ç¡ç æ¶é¿å½±ååé,建议ä¿è¯7-8å°æ¶ç¡ç "
}
],
"recommendations": [
"éç¹æ§å¶å¡è·¯éæå
¥,ä¿æå½åè¿å¨é¢ç",
"ä¼åç¡ç æ¶é¿,以æååéææ"
]
}
8. å¯è§åæ¥åçæ
çæå å«EChartså¾è¡¨çHTML交äºå¼æ¥åã
æ¥åç±»å:
A. è¿åº¦è¶å¿æ¥å
- æçº¿å¾å±ç¤ºç®æ è¿åº¦éæ¶é´åå
- éç¨ç¢æ 注
- 颿µå®ææ¶é´åºé´
- è¿åº¦é度åæ
B. ä¹ æ¯ç徿¥å
- æ¥åçå¾å±ç¤ºä¹ æ¯å®ææ åµ
- é¢è²æ·±æµ è¡¨ç¤ºå®æé¢ç
- è¿ç»å¤©æ°æ 注
- 宿çç»è®¡
C. å¤ç®æ å¯¹æ¯æ¥å
- ç¯å½¢å¾å±ç¤ºå¤ä¸ªç®æ 宿ç
- ä¼å 级æåº
- èµæºåé 建议
- è¿åº¦åæ¥æ§åæ
D. 卿ºè¶å¿æ¥å
- æçº¿å¾å±ç¤ºå¨æºåå
- 卿ºä¸è¿åº¦ç¸å ³æ§
- 卿ºä½è°·é¢è¦
- æ¿å±å»ºè®®
E. ç»¼åæ¥å
- å å«ä»¥ä¸ææå¾è¡¨
- æ´ä½å¥åº·ç¶åµè¯ä¼°
- ç»¼åæ¹è¿å»ºè®®
- ä¸é¶æ®µç®æ 建议
æ¥åç¹ç¹:
- ååºå¼è®¾è®¡,æ¯æç§»å¨ç«¯
- æ·±è²/æµ è²ä¸»é¢åæ¢
- 交äºå¼å¾è¡¨(缩æ¾ãçé)
- æ°æ®è¡¨æ ¼å±ç¤º
- 导åºPDFåè½
- å®å ¨æ¬å°å,æ éèç½
EChartså¾è¡¨é ç½®:
// è¿åº¦è¶å¿æçº¿å¾
{
type: 'line',
xAxis: { type: 'category', data: ['1æ', '2æ', '3æ', ...] },
yAxis: { type: 'value', name: '宿%' },
series: [{
name: 'ç®æ è¿åº¦',
type: 'line',
data: [0, 15, 35, 50, 70, 85, 100],
smooth: true,
markLine: {
data: [{ yAxis: 50, name: '50%éç¨ç¢' }]
}
}]
}
// ä¹ æ¯çå¾
{
type: 'heatmap',
xAxis: { type: 'category', data: ['å¨ä¸', 'å¨äº', ...] },
yAxis: { type: 'category', data: ['第1å¨', '第2å¨', ...] },
visualMap: {
min: 0, max: 1,
inRange: { color: ['#ebedf0', '#216e39'] }
},
series: [{
type: 'heatmap',
data: [[0, 0, 1], [1, 0, 1], [2, 0, 0], ...]
}]
}
// ç®æ è¾¾æçç¯å½¢å¾
{
type: 'pie',
radius: ['50%', '70%'],
series: [{
type: 'pie',
radius: ['50%', '70%'],
data: [
{ value: 70, name: '已宿' },
{ value: 30, name: 'æªå®æ' }
],
label: { formatter: '{b}: {c}%' }
}]
}
è¾åº:
- HTMLæä»¶(å å«å®æ´çCSSãJSãECharts)
- å¾è¡¨äº¤äºåè½
- æ°æ®è¡¨æ ¼
- åæææ¬
- 建议å表
å»å¦å®å ¨è¾¹ç
è½åèå´å£°æ
-
â è¾ å©è®¾å®å¥åº·ç®æ
-
â 追踪ååæç®æ è¿åº¦
-
â è¯å«å¥åº·è¡ä¸ºæ¨¡å¼
-
â æä¾ä¸è¬æ§å¥åº·æ¹å建议
-
â çæå¯è§åæ¥å
-
â 䏿ä¾å»çè¯æ
-
â ä¸å¼å ·æ²»ç夿¹
-
â 䏿¿ä»£ä¸ä¸å»ç建议
-
â ä¸å¤çè¿é£éç¢æå¼ºè¿«è¡ä¸º
å±é©ä¿¡å·è¯å«
æç«¯ç®æ è¦å:
- åéç®æ >æ¯å¨1å ¬æ¤
- å¢éç®æ >æ¯å¨0.5å ¬æ¤
- æç«¯å¡è·¯ééå¶(<1200å¡/天)
- è¿åº¦è¿å¨(>2å°æ¶/天,7天/å¨)
ä¸å¥åº·è¡ä¸ºè¿¹è±¡:
- 宿ç<30%æç»3å¨
- 卿ºè¯å<3åæç»2å¨
- 身ä½ä¸éæ¥å
- 强迫æ§è¡ä¸ºæ¨¡å¼
转ä»å»ºè®®:
- åºç°å±é©ä¿¡å·æ¶,建议å¨è¯¢å»ç
- ææ ¢æ§ç¾ç æ¶,建议å¨è¯¢ç¸å ³ä¸ç§
- 设å®é¥®é£ç®æ æ¶,建议å¨è¯¢è¥å »å¸
- 设å®è¿å¨ç®æ æ¶,建议å¨è¯¢å¥èº«æç»
è¾åºæ ¼å¼
ç®æ åææ¥å
# å¥åº·ç®æ åææ¥å
## ç®æ æ¦è§
- ç®æ : 6个æå
åé5å
¬æ¤
- å¼å§æ¥æ: 2025-01-01
- ç®æ æ¥æ: 2025-06-30
- å½åæ¥æ: 2025-03-20
## SMARTè¯ä¼°
- å
·ä½æ§: âââââ (5/5)
- å¯è¡¡éæ§: âââââ (5/5)
- å¯å®ç°æ§: ââââ (4/5)
- ç¸å
³æ§: âââââ (5/5)
- ææ¶é: âââââ (5/5)
**æ»ä½è¯å: A (4.8/5)**
## è¿åº¦åæ
- å½åè¿åº¦: 70%
- 已宿: 3.5å
¬æ¤ / 5.0å
¬æ¤
- æ¶é´è¿åº¦: 27% (79天/180天)
- è¿åº¦è¯çº§: ð¢ ä¼ç§ (è¿åº¦è¶
å)
### è¶å¿åæ
- å¹³åé度: 0.77å
¬æ¤/æ
- é¢è®¡å®æ: 2025-05-20 (æå40天)
- è¿åº¦è¶å¿: 稳å®ä¸å
## ä¹ æ¯è¿½è¸ª
### æ©ä¸æä¼¸ä¹ æ¯
- å½åè¿ç»: 21天 ð¥
- å岿é¿: 21天
- 宿ç: 95.2%
- ä¹ æ¯é¶æ®µ: å·©åºæ
- ä¸ä¸ä¸ªéç¨ç¢: 30天 â
## 卿ºè¯ä¼°
- å½å卿º: 8/10
- 卿ºè¶å¿: 稳å®
- 卿ºç¶æ: è¯å¥½
## æ°æ®å
³èåæ
### 强ç¸å
³å ç´ (å½±å度>60%)
1. æ¯æ¥å¡è·¯éæå
¥ (è´ç¸å
³ -0.75)
2. æ¯å¨è¿å¨é¢æ¬¡ (æ£ç¸å
³ +0.68)
3. ç¡ç æ¶é¿ (æ£ç¸å
³ +0.45)
### 建议
- ä¿æå½åå¡è·¯éæå
¥æ°´å¹³
- ç»§ç»ä¿ææ¯å¨4次è¿å¨é¢ç
- ä¼åç¡ç æ¶é¿è³7-8å°æ¶
## éç¢è¯å«
主è¦éç¢: 社交活å¨é¥®é£æ§å¶
è§£å³æ¹æ¡:
- 社交活å¨åæåè§å饮é£
- éæ©å¥åº·é¤å
- ééæ§å¶ä»½é
## æå°±è§£é
ð¥ è¿ç»21天 - æ©ä¸æä¼¸ä¹ æ¯è¾¾æ!
ð¯ åç¨è¾¾æ - åéç®æ 宿50%!
## ä¸ä¸æ¥è¡å¨
1. ä¿æå½åè¿åº¦
2. å
³æ³¨ç¤¾äº¤æ´»å¨é¥®é£æ§å¶
3. ç»§ç»å
»ææ©æä¹ æ¯
4. åå¤è¾¾æ30天éç¨ç¢
ææ¯å®ç°è¦ç¹
æ°æ®è¯»å
- 读åä¸»æ°æ®æä»¶:
data-example/health-goals-tracker.json - è¯»åæ¥å¿æä»¶:
data-example/health-goals-logs/YYYY-MM/YYYY-MM-DD.json - å
³èæ°æ®:
data-example/nutrition-tracker.json,fitness-tracker.jsonç
æ°æ®å¤ç
- 计ç®å®æç¾åæ¯:
(current_value / target_value) * 100 - è®¡ç®æ¶é´è¿åº¦:
(days_elapsed / total_days) * 100 - 计ç®è¿ç»å¤©æ°: é忥å¿,ç»è®¡è¿ç»å®æå¤©æ°
- 计ç®å®æç:
(completed_days / total_days) * 100 - 计ç®ä¹ æ¯å¼ºåº¦: åºäºå®æçåè¿ç»å¤©æ°çå¤åè¯å
SMARTéªè¯ç®æ³
def validate_smart_goal(goal):
scores = {
'specific': check_specificity(goal),
'measurable': check_measurability(goal),
'achievable': check_achievability(goal),
'relevant': check_relevance(goal),
'time_bound': check_time_bound(goal)
}
overall = sum(scores.values()) / len(scores)
grade = get_grade(overall)
return scores, overall, grade
HTMLæ¥åçæ
- 使ç¨ECharts 5.x CDN
- ååºå¼CSSå¸å±
- JavaScriptå¤çå¾è¡¨äº¤äº
- æ¯ææ·±è²/æµ è²ä¸»é¢åæ¢
- æ°æ®ä»JSONæä»¶å¨æå è½½
ä½¿ç¨æ¤æè½æ¶,å§ç»ä¼å èèç¨æ·çå¥åº·åå®å ¨!