gmail-labeler

Security checks across static analysis, malware telemetry, and agentic risk

Overview

This Gmail triage skill is mostly purpose-aligned, but it needs careful review because it can use Gmail/keyring credentials, send email snippets to an LLM, and archive or label messages, while some credential requirements are under-declared.

Before installing, confirm you are comfortable granting this skill access to your Gmail and allowing it to change labels or archive messages. Start with dry-run mode, verify the exact Gog/Doppler credentials and Gmail account it will use, decide whether LLM review is acceptable for private email content, and protect or shorten the local log retention.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

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

If run with real credentials, the skill can authenticate to Gmail and potentially modify the inbox; users may not realize Doppler/Gog keyring access is required.

Why it was flagged

The launcher retrieves a secret used for non-interactive Gmail access through Gog/keyring. This is high-impact account credential handling, and it is not reflected in the supplied metadata's credential or environment-variable declarations.

Skill content
export GOG_KEYRING_PASSWORD="$(doppler secrets get GOG_KEYRING_PASSWORD --project openclaw --config prd --plain)"
Recommendation

Declare the Gog/Doppler/keyring credential requirements, avoid hard-coded Doppler project/config names, make account selection explicit, and keep dry-run as the default until the user confirms the exact Gmail account and permissions.

What this means

A wrong rule or model decision could archive or relabel important emails, making them easier to miss.

Why it was flagged

Changing Gmail labels and removing messages from Inbox is central to the skill's purpose, but it is still a high-impact action if filters misclassify important mail.

Skill content
Applies Gmail labels and archives non-actionable mail
Recommendation

Run in dry-run mode first, review JSONL logs, keep the search scope and max message count limited, configure VIP/never-archive lists, and move to label-only or full-action mode only after validation.

What this means

Private email snippets could leave the local machine for model review if LLM review is enabled and configured.

Why it was flagged

The default configuration enables an LLM review path for ambiguous emails and allows up to 1800 body characters, meaning email content may be sent to an external model/provider depending on the AIN configuration.

Skill content
"llmReview": { "enabled": true, "provider": "", "model": "alibaba/MiniMax-M2.5", ... "maxBodyChars": 1800 }
Recommendation

Verify the exact LLM provider and data handling terms, disable llmReview for sensitive inboxes, reduce or redact body content where possible, and document provider credentials and routing.

What this means

Email subjects, senders, account identifiers, and routing decisions may persist locally for up to the retention period and affect future rules.

Why it was flagged

The skill intentionally keeps persistent decision logs and may use prior decisions to tune future behavior. This is useful for auditability, but the logs contain sensitive email metadata and can influence later classifications.

Skill content
Every classification decision should be logged as JSONL with: ... account ... messageId ... sender ... subject ... The self-improvement routine should update: local overlay custom filters
Recommendation

Store logs with restrictive file permissions, keep the 30-day retention limit or shorter, avoid logging bodies or secrets, and review any self-improvement changes before applying them.

What this means

The installed CLI becomes part of the email-processing path, so its package integrity and updates matter.

Why it was flagged

The skill installs an external npm package for the LLM review layer. This appears purpose-aligned, but the provided install spec does not pin a version or provide provenance details.

Skill content
node | package: @felipematos/ain-cli | creates binaries: ain
Recommendation

Pin the package version, document the package source and trust assumptions, and ensure users can run without the LLM CLI if they do not need model review.