ai-diabetes-coach

PendingVirusTotal audit pending.

Overview

No VirusTotal analysis has been recorded yet. File reputation checks will appear here once the artifact hash has been scanned.

Findings (0)

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

Insulin reference calculations may use default target, correction factor, or carb ratio instead of the user’s intended clinician-provided settings.

Why it was flagged

The documentation tells users to set clinically important personalization fields using names that the implementation does not update. For an insulin-reference workflow, this can make users over-trust outputs that are still based on defaults.

Skill content
app.py: "if 'target' in data ... if 'cf' in data ... if 'ratio' in data"; USE_GUIDE.md example sends "target_glucose", "correction_factor", "carb_ratio"
Recommendation

Align the API documentation and code, reject unknown profile fields instead of silently ignoring them, and clearly show which dosing parameters are actually being used.

What this means

Anyone who has the API key can read or modify any profile or record by choosing a user_id.

Why it was flagged

All protected endpoints rely on one shared API key, and the deployment guide acknowledges there is no user isolation. This is purpose-aligned for a single-user local tool but important for sensitive health data.

Skill content
app.py: "if request.headers.get(\"X-API-Key\") != API_KEY"; DEPLOY.md: "不用于多用户场景(无用户隔离)"
Recommendation

Use only for local or single-user scenarios unless per-user authentication and authorization are added; keep the API key strong and private.

What this means

Sensitive health records remain accessible within the running process until restart, and any holder of the shared API key can retrieve data for a known user_id.

Why it was flagged

The service stores glucose, carbohydrate, exercise, insulin, and profile data in shared in-process memory for later risk and summary responses. This is disclosed and purpose-aligned, but the data is sensitive.

Skill content
core.py: "user_profiles = {}" and "user_records = {}"; app.py: "user_records.setdefault(uid, []).append(rec)"
Recommendation

Keep the service local, avoid using real multi-user identifiers, and add retention controls, encryption, and user-level authorization before broader deployment.