Read Calibre catalog data via calibredb over a Content server, and run one-book analysis workflow that writes HTML analysis block back to comments while caching analysis state in SQLite. Use for list/search/id lookups and AI reading pipeline for a selected book.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Read Calibre catalog data via calibredb over a Content server, and run one-book analysis workflow that writes HTML analysis block back to comments while caching analysis state in SQLite. Use for list/search/id lookups and AI reading pipeline for a selected book.
calibre-catalog-read
Use this skill for:
Read-only catalog lookup (list/search/id)
One-book AI reading workflow (export -> analyze -> cache -> comments HTML apply)
Requirements
calibredb available on PATH in the runtime where scripts are executed.
ebook-convert available for text extraction.
Reachable Calibre Content server URL in --with-library format:
http://HOST:PORT/#LIBRARY_ID
Do not assume localhost/127.0.0.1; always pass explicit reachable HOST:PORT.
If auth is enabled, pass:
--username <user>
--password-env <ENV_VAR_NAME>
Commands
List books (JSON):
node skills/calibre-catalog-read/scripts/calibredb_read.mjs list \
--with-library "http://192.168.11.20:8080/#Calibreライブラリ" \
--username user --password-env CALIBRE_PASSWORD \
--limit 50
Start subagent and return a short progress reply quickly.
After subagent result arrives, run DB upsert + Calibre apply.
Report final result to user.
Subagent (heavy analysis plane)
Read extracted source payload.
Generate analysis JSON strictly by schema.
Do not run metadata apply or user-facing channel actions.
Never do in main when avoidable
Long-form content analysis generation.
Multi-step heavy reasoning over full excerpts.
Turn policy
One book per run.
Prefer asynchronous flow: quick ack first, final result after analysis.
If analysis is unavailable, either ask user or use fallback only when explicitly acceptable.
Subagent pre-flight (required)
Before first subagent run in a session, confirm once:
model
thinking (low/medium/high)
runTimeoutSeconds
Do not ask on every run. Reuse the confirmed settings for subsequent books in the same session unless the user asks to change them.
Subagent support (model-agnostic)
Book-reading analysis is a heavy task. Use a subagent with a lightweight model for analysis generation, then return results to main agent for cache/apply steps.
Splits extracted text into multiple files to avoid read-tool single-line size issues.
Rules:
Use subagent only for heavy analysis generation; keep main agent lightweight and non-blocking.
Keep final DB upsert and Calibre metadata apply in main agent.
Process one book per run.
Confirm model/thinking/timeout once per session, then reuse; do not hardcode provider-specific model IDs in the skill.
Configure callback/announce behavior and rate-limit fallbacks using OpenClaw default model/subagent/fallback settings (not hardcoded in this skill).
Exclude manga/comic-centric books from this text pipeline (skip when title/tags indicate manga/comic).
If extracted text is too short, stop and ask user for confirmation before continuing.
The pipeline returns reason: low_text_requires_confirmation with prompt_en text.
Language policy
Do not hardcode user-language prose in pipeline scripts.
Generate user-visible analysis text from subagent output, with language controlled by user-selected settings and lang input.
Fallback local analysis in scripts is generic/minimal; preferred path is subagent output following the prompt template.
Orchestration note (important)
run_analysis_pipeline.py is a local script and does not call OpenClaw tools by itself.
Subagent execution must be orchestrated by the agent layer using sessions_spawn.
Required runtime sequence:
Main agent prepares subagent_input.json + chunked source_files from extracted text.