Trust Assessment
interaction-logger received a trust score of 77/100, placing it in the Mostly Trusted category. This skill has passed most security checks with only minor considerations noted.
SkillShield's automated analysis identified 4 findings: 0 critical, 0 high, 3 medium, and 1 low severity. Key findings include Missing required field: name, Node lockfile missing, Unsanitized user input stored in global context file.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. All layers scored 70 or above, reflecting consistent security practices.
Last analyzed on February 13, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings4
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| MEDIUM | Missing required field: name The 'name' field is required for claude_code skills but is missing from frontmatter. Add a 'name' field to the SKILL.md frontmatter. | Static | skills/autogame-17/interaction-logger/SKILL.md:1 | |
| MEDIUM | Unsanitized user input stored in global context file The `target` argument, which is user-controlled, is stored directly into the `last_active_user` field of the `context.json` file without any sanitization. While file paths derived from `target` are sanitized for file system operations, the value stored in `context.json` is not. If another component reads `context.json` and uses `last_active_user` in a sensitive operation (e.g., constructing a shell command, a file path, or a database query) without proper sanitization, it could lead to command injection, path traversal, or other vulnerabilities. Sanitize the `target` value before storing it in `context.json`. For example, use the `safeTarget` variable that is already computed for file path generation, or apply a similar sanitization specifically for context storage. | LLM | index.js:100 | |
| MEDIUM | Unsanitized user input stored in global context file (CLI) Similar to `index.js`, the `target` argument from the CLI, which is user-controlled, is stored directly into the `last_active_user` field of the `context.json` file via the `updateGlobalContext` function without any sanitization. This poses the same risk: if another component reads `context.json` and uses `last_active_user` in a sensitive operation without proper sanitization, it could lead to command injection, path traversal, or other vulnerabilities. Sanitize the `user` (which is `config.target`) value before storing it in `context.json`. For example, use the `safeTarget` variable that is already computed for file path generation, or apply a similar sanitization specifically for context storage. | LLM | log.js:109 | |
| LOW | Node lockfile missing package.json is present but no lockfile was found (package-lock.json, pnpm-lock.yaml, or yarn.lock). Commit a lockfile for deterministic dependency resolution. | Dependencies | skills/autogame-17/interaction-logger/package.json |
Scan History
Embed Code
[](https://skillshield.io/report/9ab004b0f5355702)
Powered by SkillShield