database_skill
Analysis
This appears to be a legitimate database connector, but it needs review because it can run database-changing SQL and stores connection metadata.
Findings (5)
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.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
| `--update <sql> [params...]` | UPDATE/INSERT/DELETE | ... | `--batch <file>` | Execute SQL file |
The skill explicitly gives the agent database mutation and batch SQL execution capability; the artifacts do not show a confirmation gate, read-only default, or privilege boundary for destructive SQL.
`QueryExecutor` provides four execution modes, all supporting **parameterized bindings** to prevent SQL injection.
This broad safety claim conflicts with the included batch execution documentation in scripts/query_executor.py, which states that batch statements are executed without parameterized binding; users or agents may over-trust batch mode.
`pip install pymysql psycopg2-binary oracledb pymssql pyyaml`
The skill relies on manually installed, unpinned Python packages and has no install spec; this is normal for a Python database connector but leaves dependency version and source control to the user.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
Required env vars: none; Env var declarations: none; Primary credential: none
The registry metadata does not declare credentials even though SKILL.md examples require database usernames and passwords such as `--user "root" --password "${DB_PASS}"`; this is expected for a database skill but should be explicit.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
_STORE_FILE = os.path.join(tempfile.gettempdir(), ".database-skill-connections.json")
The skill stores reusable connection records in the temp directory, including URL, username, driver, label, and optional password environment-variable name; this is disclosed and purpose-aligned, but it persists sensitive connection metadata.
