Install
openclaw skills install @nextaltair/calibre-metadata-applyEdit Calibre metadata through verified dry-run and apply gates.
openclaw skills install @nextaltair/calibre-metadata-applyUse for Calibre metadata writes. This skill can change remote Calibre metadata.
Use when user explicitly asks to edit/fix/update/change:
Do not use for read-only requests such as ID1021 を確認して, 詳細, show/view/check. Route those to calibre-catalog-read.
ID + edit verb means this skill. ID without edit verb means read-only.
Core fields:
title, title_sortauthors as string with & or array, author_sortseries, series_indextags as string or array, publisher, pubdate as YYYY-MM-DD, languagescommentsExtended fields:
comments_html: OC marker block upsert.analysis: auto-generates analysis HTML for comments.analysis_tags: adds tags.tags_merge: default true.tags_remove: remove specific tags after merge.Required flow:
id,title,authors,series,series_index.Never:
calibre-server.calibredb for chat/agent edit operations; use wrapper scripts.Read the workspace AGENTS.md ## Tools section for Content server URL, library id, auth, and reading script.
Connection bootstrap:
--with-library first.--with-library..env.--password-env CALIBRE_PASSWORD; username auto-loads from env, or override with --username.Requirements: calibredb and node; pdffonts optional/recommended for PDF evidence checks.
Dry-run: cat changes.jsonl | node skills/calibre-metadata-apply/scripts/calibredb_apply.mjs --password-env CALIBRE_PASSWORD --lang ja
Apply: cat changes.jsonl | node skills/calibre-metadata-apply/scripts/calibredb_apply.mjs --password-env CALIBRE_PASSWORD --lang ja --apply
Run state: node skills/calibre-metadata-apply/scripts/run_state.mjs upsert --run-id <RUN_ID> --session-key <RUNTIME_HANDLE> --task --state running node skills/calibre-metadata-apply/scripts/handle_completion.mjs --run-id <RUN_ID> --result-json /tmp/result.json
Use when title/author/series are missing or unreliable.
Default stage is light pass:
On request:
Proposal synthesis:
Required report shape for batch recovery:
id and key before/after fields.id and reason.id and error summary.ebook-convert first.pdftotext.reading_script in the workspace AGENTS.md ## Tools section for Japanese/non-Latin sort fields.AGENTS.md ## Tools section lacks the configured reading script.Delegate only independent proposal generation. Main owns target selection, final judgment, dry-run, apply, and reporting.
sessions_spawn with the live tool schema:
runtime: "subagent"agentId: "calibre-reader"mode: "run"context: "isolated"lightContext: truemodel and thinking; the target agent profile owns them.scripts/run_state.mjs upsert.sessions_yield when completion belongs in a later turn. Do not poll session or subagent lists.scripts/handle_completion.mjs --run-id ... --result-json ....Use Swarm only when the user requests a large batch that divides into independent evidence rows. Collector children remain read-only; the main session owns synthesis and every write gate.
Data flow: