Trusted — Risk Score 5/100
Last scan:2 days ago Rescan
5 /100
run-coach
Science-based running coach with HD visual training plans and Garmin sync
合法的跑步教练技能,Garmin同步和Telegram图片发送功能完整声明,无恶意行为
Skill Namerun-coach
Duration46.0s
Enginepi
Safe to install
可安全使用。注意garminconnect依赖无版本锁定,建议在生产环境中锁定版本以防API变更

Findings 3 items

Severity Finding Location
Info
第三方依赖无版本锁定
garmin-sync.py使用pip安装garminconnect但未指定版本
from garminconnect import (Garmin, ...
→ 生产环境中建议在requirements.txt中锁定版本: garminconnect==x.x.x
garmin/garmin-sync.py:18
Info
使用非官方Garmin API
SKILL.md已明确声明garminconnect使用非官方API,可能与Garmin服务条款冲突
⚖️ Legal note: garminconnect uses Garmin's unofficial API
→ 如需严格合规,可禁用Garmin同步功能
SKILL.md:56
Info
凭证通过环境变量传递
TELEGRAM_BOT_TOKEN、GARMIN_EMAIL等凭证通过环境变量读取,符合安全实践
email = os.environ.get('GARMIN_EMAIL', '').strip()
→ 确保环境变量配置安全,避免写入日志
garmin/garmin-sync.py:38-39:38
ResourceDeclaredInferredStatusEvidence
Filesystem WRITE WRITE ✓ Aligned garmin-sync.py:67 writes JSON to garmin/activities/
Network READ READ ✓ Aligned garmin-sync.py:79 client.get_activities_by_date; send-album.mjs:18 sends to api.…
Shell WRITE WRITE ✓ Aligned SKILL.md声明exec用于bash scripts和node计算
Environment READ READ ✓ Aligned garmin-sync.py:38-39 reads GARMIN_EMAIL/PASSWORD; send-plan.sh:14 reads TELEGRAM…
Skill Invoke NONE NONE 无跨skill调用
Clipboard NONE NONE 代码中无clipboard访问
Browser NONE NONE Playwright仅用于截图,行为与文档一致
Database NONE NONE 无数据库操作
2 findings
🔗
Medium External URL 外部 URL
https://api.telegram.org/bot$
training/send-album.mjs:18
📧
Info Email 邮箱地址
[email protected]
garmin/garmin-sync.py:37

File Tree

8 files · 31.6 KB · 920 lines
Python 2f · 473L Markdown 2f · 228L JavaScript 2f · 116L Shell 2f · 103L
├─ 📁 garmin
│ ├─ 🐍 garmin-query.py Python 217L · 7.2 KB
│ └─ 🐍 garmin-sync.py Python 256L · 8.4 KB
├─ 📁 training
│ ├─ 📜 screenshot.mjs JavaScript 51L · 1.7 KB
│ ├─ 📜 send-album.mjs JavaScript 65L · 2.5 KB
│ ├─ 🔧 send-plan.sh Shell 45L · 1.4 KB
│ └─ 🔧 text-to-image.sh Shell 58L · 2.5 KB
├─ 📝 MEMORY.md Markdown 44L · 1.4 KB
└─ 📝 SKILL.md Markdown 184L · 6.5 KB

Dependencies 2 items

PackageVersionSourceKnown VulnsNotes
garminconnect * pip No 无版本锁定;使用非官方Garmin API
playwright-core 未声明 system No 来自/app/node_modules,仅用于截图

Security Positives

✓ 文档完整,所有功能均在SKILL.md中声明
✓ 代码行为与文档描述一致,无阴影功能
✓ 凭证通过环境变量管理,未硬编码或外传
✓ 仅访问必要的工作目录文件(~/.garth缓存、garmin/数据)
✓ 无恶意行为指标:无base64管道、无eval、无敏感路径遍历、无可疑网络请求
✓ 所有shell命令执行均有明确用途(截图、图转图、计算)且已在文档声明
✓ Telegram API使用官方端点,无可疑IP或域名