Scan Report
5 /100
daily-mood
Mood-aware daily message delivery — morning and evening emotional support messages for registered users, with real-time mood response
This is a genuine mood-message delivery skill with no malicious behavior — all scripts only read/write local JSON user files, generate LLM prompts to stdout, and perform strict input sanitization.
Safe to install
No action needed. The skill is a benign multi-user daily message system. Consider adding an explicit allowed-tools declaration to SKILL.md metadata for completeness.
Findings 1 items
| Severity | Finding | Location |
|---|---|---|
| Low | Missing allowed-tools declaration in SKILL.md metadata Doc Mismatch | SKILL.md:1 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | NONE | READ | ✓ Aligned | All scripts: fs.readdirSync + fs.readFileSync on data/users/ |
| Filesystem | NONE | WRITE | ✓ Aligned | scripts/mood-response.js:57, scripts/register.js:73 — write to data/users/<userI… |
| Shell | NONE | NONE | — | No child_process, exec, spawn, or system() calls found in any script |
| Network | NONE | NONE | — | No http, https, fetch, or curl calls found — no outbound connectivity |
| Environment | NONE | NONE | — | No process.env iteration or sensitive key access |
| Skill Invoke | NONE | NONE | — | No skill invocation or cross-skill calls |
| Clipboard | NONE | NONE | — | No clipboard access |
| Browser | NONE | NONE | — | No browser automation |
| Database | NONE | NONE | — | No database connectivity — only local JSON files |
File Tree
10 files · 34.2 KB · 831 lines JavaScript 5f · 639L
Markdown 1f · 149L
JSON 4f · 43L
├─
▾
data
│ └─
▾
users
│ ├─
alice.json
JSON
│ └─
bob.json
JSON
├─
▾
scripts
│ ├─
evening-push.js
JavaScript
│ ├─
mood-response.js
JavaScript
│ ├─
morning-push.js
JavaScript
│ ├─
push-toggle.js
JavaScript
│ └─
register.js
JavaScript
├─
_meta.json
JSON
├─
package.json
JSON
└─
SKILL.md
Markdown
Security Positives
✓ No shell execution — zero child_process, exec, spawn, or eval calls across all 5 scripts
✓ No network access — no http, https, fetch, curl, or outbound connectivity of any kind
✓ No credential theft — no access to .env, ~/.ssh, ~/.aws, or environment variable iteration
✓ No obfuscation — all code is human-readable with clear inline documentation
✓ No base64, no encoded payloads, no anti-analysis techniques
✓ No sensitive path access — only reads/writes to skill-local data/users/ directory
✓ Strict input sanitization — userId sanitized with regex /[^a-zA-Z0-9_-]/g and capped at 64 chars
✓ Mood allowlist enforcement — ALLOWED_MOODS is a Set of 9 pre-defined values with no injection surface
✓ No external dependencies — package.json declares no runtime dependencies, only npm scripts
✓ No cron execution — push-toggle.js only prints cron commands as instructions, never executes them
✓ Clean codebase — 639 lines across 5 scripts with consistent, readable style