Calibre Catalog Read

SuspiciousAudited by ClawScan on May 10, 2026.

Overview

The skill’s Calibre lookup and analysis purpose is coherent, but it exposes credential-handling risks and persists bundled/full book text caches.

Install only if you are comfortable with this skill reading/exporting selected Calibre books and updating their comments. Before use, delete bundled state/cache files, use a limited Calibre account/password, verify the subagent dependency/model, and review generated comments before applying them to your library.

Findings (6)

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.

What this means

A Calibre password could appear in process listings, logs, or the agent transcript if a command fails.

Why it was flagged

The Calibre password is read from the environment, placed directly into the calibredb command arguments, and the full command can be printed on failure.

Skill content
if (!password && passwordEnv) password = process.env[passwordEnv] || ''; ... if (auth.password) r.push('--password', auth.password); ... throw new Error(`calibredb failed ... CMD: ${cmd.map(x => JSON.stringify(x)).join(' ')}`)
Recommendation

Mask secrets in all error messages, avoid passing passwords as command-line arguments when possible, and use a least-privilege Calibre account.

What this means

Private or copyrighted library content can be retained inside the skill directory and may be exposed to future runs, backups, reviews, or package distribution.

Why it was flagged

The published artifact includes a persistent cache file containing extracted book text; the manifest also lists multiple large files under state/cache/pipeline.

Skill content
海賊列伝 上巻 目次 ... はじめに ... 本書の材料蒐集にはひとかたならぬ苦労をした。
Recommendation

Remove bundled cache files before publishing/installing, add cleanup/retention controls, and cache only user-approved book text for the shortest necessary time.

What this means

A malicious or corrupted book text or model output could persist unwanted HTML or instructions in Calibre comments.

Why it was flagged

Subagent/model-provided analysis fields are embedded directly into HTML comments without visible HTML escaping or sanitization.

Skill content
summary = str(analysis.get("summary", "")).strip() ... lines.append(f"<p><strong>{tr['summary']}:</strong> {summary}</p>") ... lines.append(f"<li>{h}</li>")
Recommendation

Escape or sanitize all model-generated fields before writing HTML, and let the user review generated comments before applying them.

What this means

Selected book text may be processed by another agent/model, which may involve a remote provider depending on the chosen runtime.

Why it was flagged

The analysis workflow hands extracted book text files to a spawned subagent for processing.

Skill content
source_files: array of text file paths (read all in order) ... Read all files in `source_files` in order and analyze combined content.
Recommendation

Use only trusted subagent profiles/models, confirm provider retention/privacy terms, and avoid running analysis on sensitive books unless acceptable.

What this means

Running the analysis pipeline can change a book’s comments field, even though catalog lookup operations are read-only.

Why it was flagged

The skill discloses a scoped path that exports a book, analyzes it, caches results, and updates Calibre comments metadata.

Skill content
One-book AI reading workflow (`export -> analyze -> cache -> comments HTML apply`) ... "modifiesRemoteData":["calibre:comments-metadata"]
Recommendation

Run the pipeline only for a specific book you intend to update, and keep backups or test on a non-critical library first.

What this means

The installed dependency may change over time, so later installs may not match the reviewed behavior.

Why it was flagged

The setup instructions use an unpinned '@latest' install for a dependent skill.

Skill content
npx clawhub@latest install subagent-spawn-command-builder
pnpm dlx clawhub@latest install subagent-spawn-command-builder
Recommendation

Pin dependency versions or verify the dependent skill before installing.