ℹ
Purpose & Capability
Functionality (fetch weather from QWeather/Open‑Meteo, generate reports, optional email/Telegram push) matches the stated purpose. However metadata/registry list a required config path named QWEATHER_API_KEY while runtime code reads a workspace TOOLS.md file instead — this inconsistency suggests sloppy packaging or mis-declared requirements.
!
Instruction Scope
SKILL.md instructs the agent/user to edit a workspace TOOLS.md and claims that sensitive data are 'encrypted' there, but the included Python script plainly reads TOOLS.md as plaintext via regex. The instructions also reference other files/scripts (scripts/weather_report_v2.py, scripts/, docs/) that are not present in the package. The script will read TOOLS.md from the workspace root (one level above skills/ and skills/parent), which could expose any secrets the user keeps in that file.
✓
Install Mechanism
No install spec (instruction-only with a bundled script) — lowest installation risk. The script uses the 'requests' library (network calls), but nothing is being downloaded or extracted during install.
!
Credentials
The skill asks the user to store API keys and an email authorization code in TOOLS.md rather than using a single service-specific credential variable. The registry declared 'required config paths: QWEATHER_API_KEY' which does not match the actual mechanism. The skill requests an email password/authorization code (sensitive) and defaults to sending reports to a hard-coded QQ address if no recipient is provided — this default external recipient is unexpected and could leak information if email sending is enabled. SKILL.md also recommends loosening host whitelist (adding '*') which weakens API key security.
ℹ
Persistence & Privilege
always:false and agent-autonomy not disabled (normal). The skill does not request persistent platform privileges and does not modify other skills. However it reads a workspace-level file (TOOLS.md) outside the skill directory — this grants it access to anything the user places there and is a privilege to be aware of.
What to consider before installing
This skill generally does what it says (fetches weather and can email/notify), but there are several red flags to consider before installing or running it:
- Do not assume your keys are encrypted: SKILL.md claims TOOLS.md stores credentials 'encrypted', but the included script reads TOOLS.md as plain text with regex. Treat TOOLS.md as plaintext unless you verify real encryption.
- Verify where credentials are read from: the runtime code reads workspace/TOOLS.md, not an env var named QWEATHER_API_KEY. If you keep other secrets in a central TOOLS.md, the skill will access them.
- Beware the default recipient: the script defines a hard-coded DEFAULT_RECIPIENT (a QQ address). If you enable automated emailing, double-check recipients to avoid accidental data leakage.
- The package references missing files (scripts/weather_report_v2.py, docs/) — the distributed bundle is incomplete; inspect the included weather_report.py fully before use.
- The skill advises adding '*' to the QWeather host whitelist — that weakens your API key's protection. Prefer restricting allowed hosts.
Recommended actions:
1) Inspect the entire weather_report.py file locally and confirm it only reads the specific values you expect (API key, sender email, auth code) and does not transmit other files or secrets.
2) Move credentials to a secure store (environment variables or a secrets manager) rather than a plaintext TOOLS.md, or modify the script to use env vars.
3) If you must use TOOLS.md, ensure it contains only the minimal required values and is not shared or committed to VCS (.gitignore it).
4) Run the script in an isolated environment (local container/VM) and monitor outbound network traffic the first time you run it.
5) If you want to use the skill in automated/agent contexts, require explicit confirmation before sending emails and remove or change any hard-coded default recipients.
If you provide the missing referenced scripts or explain the 'encrypted' storage mechanism, that could raise confidence; as-is the packaging and claims are inconsistent and justify caution.