Back to skill
Skillv1.0.0

ClawScan security

竞品数据定时监控 · ClawHub's context-aware review of the artifact, metadata, and declared behavior.

Scanner verdict

BenignApr 12, 2026, 2:50 PM
Verdict
benign
Confidence
high
Model
gpt-5-mini
Summary
The skill's code, instructions, and install script are coherent with its stated purpose (periodic web scraping, anomaly detection and notifications); it does what it claims and requests only expected resources, but review and operational caution are recommended (credentials in configs, global installs, scraping frequency).
Guidance
This skill appears to be what it says: a web-scraping + anomaly-detection service that notifies via user-provided webhooks/email. Before installing or running it, consider: 1) Run the install and Python packages inside a virtual environment (venv) rather than system-wide pip to avoid polluting your global Python environment. 2) Keep notification credentials (SMTP password, webhook secrets) out of world-readable files — consider using a secrets manager or environment variables and edit the code/config to read them securely. 3) Deploy the service on a dedicated host (not a machine with sensitive data) because it downloads browser binaries and stores screenshots/data locally. 4) Set sensible scraping schedules and respect target sites' robots / terms of service to avoid being blocked or causing legal/abuse issues. 5) Review the config and any webhook URLs you provide — the skill will POST alerts and attachments to whatever endpoints you configure, so ensure those endpoints are trusted. 6) If you need stronger assurance, run a code audit or execute in an isolated environment (container) first.

Review Dimensions

Purpose & Capability
okThe name/description (competitor monitoring) matches the included code: scraper.py implements Playwright-based page scraping for the listed platforms, detector.py performs anomaly/burst detection, notifier.py posts alerts to configured channels, and monitor_service.py wires scheduling, scraping, persistence, and notifications. Declared requirements in SKILL.md (Python, Playwright/Selenium, network) align with the code. There are no unrelated credentials or unexpected external services hard-coded.
Instruction Scope
okSKILL.md and README instruct the agent/user to run the provided scripts, edit JSON task configs, and place credentials/webhook URLs in config. The runtime instructions and code access only the expected local paths (assets/data, assets/screenshots, config file) and network endpoints provided in task notification configs. The instructions do not ask the agent to read arbitrary system files or environment variables beyond the config files.
Install Mechanism
noteAn install.sh is provided which installs Python packages globally (pip install playwright schedule requests pandas) and runs `playwright install chromium`, then copies the skill into a skills directory. This is a moderately invasive install (writes files to disk, downloads browser binaries). The sources used (PyPI and Playwright's browser installer) are standard but the script performs global installs instead of recommending a virtualenv—this is operationally notable but not malicious.
Credentials
noteThe skill declares no required environment variables, which matches the repo. Notification and SMTP credentials are provided via the task configuration files (monitor_tasks.example.json). Storing webhook secrets, SMTP passwords, or API keys in plain JSON config is functional but risky; the skill does not attempt to access unrelated credentials or system secrets. Requesting no platform-level credentials is proportionate to its stated purpose, but users must supply notification/auth details in config (clearly sensitive).
Persistence & Privilege
okalways:false and the skill does not claim or implement any mechanism to modify other skills or system-wide agent settings. It installs files into a skills directory and writes its own data (assets/data, assets/screenshots). That level of persistence is expected for a monitoring service; no elevated platform privileges or 'always included' behavior are present.