Trust Assessment
health-guardian received a trust score of 91/100, placing it in the Trusted category. This skill has passed all critical security checks and demonstrates strong security practices.
SkillShield's automated analysis identified 2 findings: 0 critical, 0 high, 1 medium, and 1 low severity. Key findings include Node lockfile missing, User-configurable data source allows arbitrary file access.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. All layers scored 70 or above, reflecting consistent security practices.
Last analyzed on February 13, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings2
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| MEDIUM | User-configurable data source allows arbitrary file access The `SKILL.md` instructs the user to create a `config.json` file that includes a `data_source` field. The `scripts/import_health.py` script is responsible for importing health data, and its `main` function uses `os.path.expanduser()` to resolve paths provided via command-line arguments (e.g., `--source`). Given the explicit instruction to configure `data_source` in `config.json` and the script's purpose, it is highly probable that the truncated part of `import_health.py` uses `config.get("data_source")` with `os.path.expanduser()` for `json_file` or `zip_export` import types. This allows the skill to attempt to read files from arbitrary locations on the filesystem if a malicious `config.json` is provided, leading to excessive file access permissions. While the skill does not exfiltrate this data, reading arbitrary files is an excessive permission. Restrict `data_source` paths to a predefined safe directory (e.g., `~/Library/Mobile Documents/iCloud~com~ifunography~HealthExport/Documents`) or validate paths to ensure they are within expected boundaries and not absolute system paths. Avoid `os.path.expanduser` on arbitrary user input for file paths if not strictly necessary and validated. | LLM | scripts/import_health.py:190 | |
| LOW | Node lockfile missing package.json is present but no lockfile was found (package-lock.json, pnpm-lock.yaml, or yarn.lock). Commit a lockfile for deterministic dependency resolution. | Dependencies | skills/ctsolutionsdev/ct-health-guardian/package.json |
Scan History
Embed Code
[](https://skillshield.io/report/a0b1bfb91898fd46)
Powered by SkillShield