Scan Report
5 /100
calibre-metadata-apply
Calibre metadata editor for title/authors/series/tags updates
Clean Calibre metadata management skill with proper credential handling and no malicious behavior detected.
Safe to install
No action needed. The skill is safe for use.
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Shell | WRITE | WRITE | ✓ Aligned | scripts/calibredb_apply.mjs:56 spawnSync(cmd[0], cmd.slice(1), {...}) |
| Filesystem | WRITE | WRITE | ✓ Aligned | Local state writes to state/runs.json - declared in metadata |
| Environment | READ | READ | ✓ Aligned | Reads CALIBRE_PASSWORD, CALIBRE_USERNAME from env - necessary for auth |
| Network | READ | READ | ✓ Aligned | HTTP calls only to configured Calibre Content Server URL |
| Skill Invoke | READ | READ | ✓ Aligned | Uses subagent-spawn-command-builder for orchestration - declared |
1 findings
Medium External URL 外部 URL
http://127.0.0.1:8080/#MyLibrary README.md:132 File Tree
5 files · 39.2 KB · 1099 lines JavaScript 3f · 689L
Markdown 2f · 410L
├─
▾
scripts
│ ├─
calibredb_apply.mjs
JavaScript
│ ├─
handle_completion.mjs
JavaScript
│ └─
run_state.mjs
JavaScript
├─
README.md
Markdown
└─
SKILL.md
Markdown
Security Positives
✓ No external dependencies (pure Node.js built-ins) - no supply chain risk
✓ Credential handling via --password-env avoids plaintext password exposure
✓ buildSafeEnv() properly isolates environment variables (only passes PATH, HOME, LANG, LC_ALL, LC_CTYPE, SYSTEMROOT, WINDIR)
✓ Command redaction in redactedCmd() masks passwords in logs
✓ Dry-run mode by default prevents accidental writes
✓ JSONL input validation with allowed field whitelist (ALLOWED set)
✓ No base64, no obfuscation, no suspicious patterns
✓ WSL/docker host discovery is standard network resilience pattern
✓ State file writes declared in SKILL.md metadata
✓ No access to sensitive paths (~/.ssh, ~/.aws, etc.)