garmin-ultimate-frisbee-analysis

ReviewAudited by ClawScan on May 10, 2026.

Overview

The skill mostly matches its Garmin analytics purpose, but it asks for full Garmin credentials and encourages saving the password in shell startup files while also claiming the password is not written to disk.

Only install if you trust this code with your Garmin Connect account and health data. Do not save GARMIN_PASSWORD permanently in ~/.zshrc or ~/.bashrc; set it temporarily for login, protect or periodically remove ~/.clawdbot/garmin session tokens, use a virtual environment for dependencies, and avoid sharing generated HTML dashboards because they can contain sensitive health information.

Findings (4)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Anyone or any local process that can read the shell profile could recover the Garmin password and access the account and health data.

Why it was flagged

The skill asks the user to place a full Garmin account password in a persistent shell startup file, even though the password is only needed for authentication.

Skill content
Set `GARMIN_EMAIL` and `GARMIN_PASSWORD` in your shell profile (`~/.zshrc` or `~/.bashrc`): ... export GARMIN_PASSWORD="your-password"
Recommendation

Avoid persisting the password in shell profiles; set it temporarily only for login, remove it afterward, and prefer an interactive prompt or OS credential store.

What this means

A user could follow the setup believing their password is not on disk, when the suggested configuration does put it on disk.

Why it was flagged

The privacy wording may lead users to believe the password will not be stored, while the setup guidance instructs them to store it in a shell profile.

Skill content
The password is used **once** during login and is **never written to disk or logged** ... Set `GARMIN_EMAIL` and `GARMIN_PASSWORD` in your shell profile
Recommendation

Update the documentation to clearly distinguish script behavior from user-managed environment storage and provide a safer non-persistent credential setup.

What this means

Installing later dependency versions could introduce unexpected bugs or security changes.

Why it was flagged

The dependencies are minimum-version ranges, not exact pins, so future package releases could change behavior despite documentation describing them as pinned.

Skill content
garminconnect>=0.2.19
fitparse>=3.2.0
gpxpy>=1.3.5
Recommendation

Use exact pinned versions or hashes, ideally in a virtual environment, before providing Garmin credentials.

What this means

If the CDN script were compromised or replaced, it could access data embedded in the dashboard when opened.

Why it was flagged

Generated dashboards embed Garmin-derived data and load a third-party JavaScript library from a CDN; this is disclosed and purpose-aligned, but the remote script runs in the dashboard page.

Skill content
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script> ... const chartsData = {json.dumps(charts_data)};
Recommendation

For sensitive health dashboards, consider bundling Chart.js locally, using subresource integrity, or opening dashboards only in trusted environments.