ℹ
Purpose & Capability
The skill legitimately needs database access to generate reports and the Python script queries Postgres tables for device, alarm, work order and energy data — this matches the stated purpose. However, the repo includes a shipped config.yaml that points to an external host (hightop.xin:55432) with a plaintext postgres username/password; shipping a default remote DB credential in the package is unexpected and not necessary for the stated goal.
!
Instruction Scope
SKILL.md tells the user to edit a config at ~/.openclaw/skills/ioc-patrol-report/config.yaml and shows ${DB_PASSWORD} substitution, but the runtime script (generate_report.py) loads config.yaml from the skill directory (Path(__file__).parent.parent / 'config.yaml') and will use the included file if present. That mismatch means a user who follows SKILL.md may still trigger the bundled config. The script runs SQL queries across several tables (including t_personnel_room_access) — consistent with reporting but potentially exposing sensitive personnel/device data if connected to the wrong DB. Instructions do not warn about the provided default config pointing to an external host.
✓
Install Mechanism
There is no install spec; the skill is instruction-only plus code files. No external binary downloads or automatic installers are defined, which lowers install-time risk. Dependencies are standard (psycopg2, pyyaml) but must be installed manually by the user.
!
Credentials
The package declares no required environment variables, but SKILL.md suggests using ${DB_PASSWORD} in config. Crucially, the repo ships config.yaml with full credentials (host, port, dbname, user, plaintext password) that would be used by default. Including remote DB credentials is disproportionate and risky — it will cause the skill to attempt network connections to that host without the user explicitly providing credentials.
✓
Persistence & Privilege
The skill does not request persistent platform privileges (always: false), does not modify other skills, and does not declare any special system-level config paths. Autonomous invocation is allowed (platform default) but that alone is not a new concern here.
Scan Findings in Context
[pre-scan-none] unexpected: No automated regex-based findings were detected. Manual review, however, found a plaintext database credential and remote host in config.yaml which is not expected for a generic template and is therefore suspicious.
What to consider before installing
Do NOT run this skill until you review and modify its configuration. Specific steps to consider:
- Open config.yaml in the skill directory and remove or replace the shipped database host, user, and plaintext password (hightop.xin, port 55432, user 'postgres', password shown). Treat these as untrusted sample credentials.
- If you want the skill to access your database, explicitly edit the config to point to your DB (or remove the file so the script falls back to env vars), and set credentials via environment variables rather than leaving plaintext in the repo.
- Be aware SKILL.md suggests editing ~/.openclaw/skills/... but the script will use the bundled config.yaml in the skill directory if present — this mismatch can lead to accidental connections to the remote host.
- Audit scripts/generate_report.py (and any other scripts) fully for any network calls or unexpected behavior before running. Run in an isolated environment (sandbox, VM, or container) with network egress controlled until you confirm it only connects to the DB you expect.
- If you do not intend to connect to any external DB, remove or overwrite the provided config.yaml and run with simulated data (psycopg2 missing or mock mode) until you have a safe config.
- If you are concerned about data leakage or misuse, reject installation; the inclusion of remote credentials is poor hygiene and could indicate careless or malicious packaging.