This skill should be used when the user asks to "publish on KDP", "publish my book", "Amazon book publishing", "Kindle Direct Publishing", "self-publish", "publish on Amazon", "KDP workflow", "submit to Amazon KDP", "publish to Kindle", or mentions Amazon/KDP book publishing. It guides the complete workflow for publishing a book through Amazon KDP, handling both technical books and fiction/nonfiction.
From kdpnpx claudepluginhub queelius/claude-anvil --plugin kdpThis skill uses the workspace's default tool permissions.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Orchestrate the full workflow for publishing a book through Amazon KDP (Kindle Direct Publishing): audit the manuscript, craft the listing, prepare files, and submit. This skill coordinates /kdp-audit and /kdp-listing into a phased pipeline, then walks through the mechanical submission steps on the KDP dashboard.
The recommended publication sequence:
Each phase gates the next. Do not submit a manuscript that fails audit. Do not fill in listing fields without the artifacts from /kdp-listing. Present the phase map, confirm the plan, and proceed one phase at a time.
Determine where the book stands in the pipeline to skip completed phases.
Load user config (Read tool): Read .claude/kdp.local.md if it exists. Extract the kdp section and author metadata from YAML frontmatter. If the file is missing, offer to create one from the template at ${CLAUDE_PLUGIN_ROOT}/docs/user-config-template.md.
Detect manuscript files (Glob tool): Search for manuscript files in the project:
.tex files (LaTeX -- technical books).docx files (Word -- fiction/nonfiction).epub files (eBook source).md files (Markdown manuscripts).pdf files (final output).kpf files (Kindle Create project)Classify the manuscript type: Technical (LaTeX, math, code), Fiction (chapters, dialog), or General nonfiction.
Check what already exists (Glob/Read tools):
cover*.jpg, cover*.pdf, paperback-cover.*, full-cover.*)kdp.blurb, kdp.keywords, kdp.categories populated?)Present status table to the user summarizing findings.
Decision matrix -- determine where to enter the pipeline:
| State | Next Phase |
|---|---|
| No manuscript found | Cannot proceed -- ask user for manuscript location |
| Manuscript exists, no audit done | Phase 2: Audit |
| Audit passed, no listing artifacts in config | Phase 3: Listing |
| Listing artifacts ready, manuscript not in final format | Phase 5: Manuscript Preparation |
| Everything ready, not yet submitted | Phase 6: Cover Preparation or Phase 7: Submit |
| Published, not verified | Phase 10: Post-Publish |
Present the recommended plan and confirm with the user before proceeding.
Run /kdp-audit to evaluate the manuscript against KDP requirements.
The audit checks interior formatting, cover specs, metadata completeness, and genre-specific requirements. It produces a structured gap report with Critical / Warnings / Passed sections.
If critical gaps are found:
Gate: The manuscript must pass audit (no critical gaps) before proceeding to Phase 3. Warnings are acceptable but should be noted for later attention.
Run /kdp-listing to generate the four marketing artifacts:
The listing skill reads manuscript context, generates drafts, iterates with the user, and saves all artifacts to .claude/kdp.local.md.
Gate: All four artifacts must be saved to the config before proceeding. Phase 7 reads them during dashboard submission.
Ask the user whether they want to set up a pre-order before the book is finalized.
When pre-orders make sense: Fiction launches where Day 1 ranking matters (pre-orders count toward release-day sales rank), books with an existing audience, or series releases.
Pre-order mechanics:
How to set up: Create the title on KDP dashboard (see Phase 7), choose "Make this book available for pre-order," set the release date, upload manuscript, and complete pricing (Phase 8).
If not using pre-orders, skip to Phase 5.
Ensure the manuscript is in final publishable form.
Format conversion (Bash tool):
pdflatex (multiple passes for cross-references; add bibtex pass if bibliography exists). Verify fonts embedded, margins correct, page numbers start after front matter.pandoc manuscript.md -o manuscript.epub --toc. Validate with epubcheck if available.libreoffice --headless --convert-to pdf or Word's built-in PDF export with fonts embedded.Final proofread checklist:
Generate or verify cover files for the book. See ${CLAUDE_PLUGIN_ROOT}/docs/kdp-reference.md for full cover requirements (dimensions, DPI, spine width calculation, bleed).
Fallback note: This phase uses the kdp-cover MCP server for AI cover generation. If the MCP tools are not available (Node.js not installed, OPENAI_API_KEY not set, or the server is not configured), fall back to manual cover preparation: verify existing cover dimensions with identify or file (Bash tool), direct the user to the KDP Cover Calculator at https://kdp.amazon.com/en_US/cover-calculator, and recommend hiring a designer or using KDP Cover Creator if no cover exists.
Check for existing cover (Read tool, Glob tool): Look for an existing cover path in kdp.cover.front from the config. If not set, glob for cover*, front-cover*, and *-cover.* files in the project. If a cover file exists, show it to the user (Read tool on the image file) and ask whether to use it or generate a new one.
Gather art direction: If no cover exists (or user wants a new one), ask the user for art direction preferences: visual style, mood, color palette, imagery. If the user has no strong preference, suggest a direction based on the genre from kdp.genre and the book title. Check kdp.cover.art_direction in the config for any previously saved preferences.
Inform about cost: Tell the user that each cover generation costs approximately $0.04-$0.08 via OpenAI image generation. Multiple iterations are normal (2-4 attempts to get a cover the user likes).
Generate front cover (kdp_generate_cover MCP tool): Call kdp_generate_cover with:
title: from the book titlesubtitle: if applicableauthor_name: from kdp.pen_name or author.namegenre: from kdp.genreart_direction: from the user's preferences or suggested directionwidth: 1600 (default)height: 2560 (default)Show the cover (Read tool): Read the generated image file to display it inline. Ask the user to verify:
Iterate if needed: If the user wants changes ("try a different style", "make it darker", "more minimalist"), adjust the art_direction and call kdp_generate_cover again. Repeat steps 5-6 until the user approves.
Save approved cover (Edit tool): Save the approved front cover file path to .claude/kdp.local.md under kdp.cover.front. Also save the art direction used under kdp.cover.art_direction for future reference.
Full-wrap cover for paperback (if kdp.target is "paperback" or "both"):
a. Calculate dimensions (kdp_cover_specs MCP tool): Call kdp_cover_specs with page_count (from manuscript), trim_size (from kdp.trim_size), and paper_type (from kdp.paper_type). Display the spine width, total dimensions, and zone layout to the user.
b. Generate full wrap (kdp_generate_full_wrap MCP tool): Call kdp_generate_full_wrap with:
front_cover_path: the approved front covertitle and author_name: for spine textblurb: from kdp.blurb (for back cover text)page_count, trim_size, paper_type: from configisbn: if the user has oneback_color: from kdp.cover.color_scheme, or let the tool auto-extract from the front coverc. Show the full-wrap preview (Read tool): Read the preview PNG file to display the complete wraparound cover. Ask the user to verify spine text, back cover blurb readability, and overall composition.
d. Save full-wrap path (Edit tool): Save the full-wrap PDF path to .claude/kdp.local.md under kdp.cover.full_wrap.
Automate the KDP dashboard submission using browser automation. This phase reads listing artifacts from the config (populated by /kdp-listing in Phase 3) and fills in the dashboard forms.
KDP Account Setup (first-time publishers only): Complete account setup at https://kdp.amazon.com (tax interview, bank details, email verification). See ${CLAUDE_PLUGIN_ROOT}/docs/kdp-reference.md for the account setup walkthrough.
Pre-submission check (Read tool): Re-read .claude/kdp.local.md and verify all required fields are populated: kdp.blurb, kdp.keywords (7 entries), kdp.categories, kdp.cover.front, and kdp.manuscript.path. If any are missing, stop and direct the user to the appropriate earlier phase.
Dashboard automation:
Open KDP (Playwright MCP: browser_navigate): Navigate to https://kdp.amazon.com.
Check login state (Playwright MCP: browser_snapshot): Take a snapshot of the page. If the user is not logged in, tell them to log in using the browser window that opened. Wait for the dashboard to become visible (Playwright MCP: browser_wait_for).
Navigate to the correct page (Playwright MCP: browser_snapshot, browser_click):
kdp.asin or kdp.asin_paperback is set in the config, navigate to that title's detail page. Otherwise, search the bookshelf by title name and select it.Fill Book Details (Playwright MCP: browser_snapshot, browser_fill_form, browser_click): On each form page, take a snapshot first to understand the current layout, then fill fields adaptively:
kdp.series if setkdp.pen_name or author.namekdp.blurb from configkdp.keywordskdp.categoriesUpload manuscript (Playwright MCP: browser_snapshot, browser_file_upload): Upload the manuscript file from kdp.manuscript.path. Take a snapshot to locate the upload control, then use file upload. Wait for the upload and conversion to complete (this may take 30 seconds to 5 minutes).
Upload cover (Playwright MCP: browser_snapshot, browser_file_upload): Upload the cover file:
kdp.cover.frontkdp.cover.full_wrap, or front cover if no full-wrap existsNavigate to preview/review (Playwright MCP: browser_snapshot, browser_click): Find and click the button to proceed to the preview or review page. Take a snapshot to confirm the page loaded.
Stop and hand off to user: Tell the user: "Everything is filled in. Review the details in the browser and click publish when you are ready." Do NOT click the publish button. The user must make this final decision.
Capture ASIN after publish (Playwright MCP: browser_snapshot): After the user confirms they have published, take a snapshot of the bookshelf page to look for the newly assigned ASIN. If the ASIN is not yet visible (KDP review takes 24-72 hours), note this and tell the user to run /kdp-publish again later to capture it.
Save ASIN (Edit tool): If an ASIN was captured, save it to .claude/kdp.local.md under kdp.asin (for eBook) or kdp.asin_paperback (for paperback).
Multi-format coordination (if publishing both eBook and paperback):
Important: These instructions describe goals, not exact selectors. The KDP dashboard layout may change. Use browser_snapshot to read each page and determine the correct elements to interact with. Adapt to whatever layout is present.
Semi-automated pricing setup. Present options conversationally, then fill the pricing form via browser automation.
Present pricing options (Read tool): Load genre-specific price recommendations from ${CLAUDE_PLUGIN_ROOT}/docs/kdp-reference.md. Present the user with a conversational summary:
Royalty tier choice (eBook only):
KDP Select enrollment:
Suggested price: Based on genre from kdp.genre, manuscript type, and the pricing tables in the reference doc, suggest a specific price point. For paperback, note that the price must cover printing costs plus Amazon's share.
Territories: recommend "Worldwide rights" if the author holds global rights, or ask about specific country restrictions.
Confirm with user: Ask the user to decide on: price, royalty tier (eBook), KDP Select enrollment (yes/no), and territories. Wait for confirmation before proceeding.
Fill pricing form (Playwright MCP: browser_snapshot, browser_fill_form, browser_click): Once the user has decided:
Verify pricing summary (Playwright MCP: browser_snapshot): Take a snapshot of the pricing summary. Show the user the estimated royalty per sale and confirm everything looks correct before proceeding to Phase 9.
Final review checklist:
Submit for review:
For paperback: Strongly recommend ordering a proof copy before approving ($5-$10 including shipping). Check print quality, margins, spine alignment, and color accuracy. Proofs can be ordered without publishing.
After KDP approves the book:
See ${CLAUDE_PLUGIN_ROOT}/docs/kdp-reference.md for detailed post-publication steps including Author Central, A+ Content, and launch promotion strategies.
For complete KDP requirements, formatting guidelines, and exemplar listings:
${CLAUDE_PLUGIN_ROOT}/docs/kdp-reference.md -- Full KDP formatting requirements, cover templates, metadata guidelines, submission checklist, and pricing calculator reference${CLAUDE_PLUGIN_ROOT}/docs/kdp-exemplars.md -- Blurb examples by genre, keyword strategies, category selection tactics, author bio conventions${CLAUDE_PLUGIN_ROOT}/docs/user-config-template.md -- Template for .claude/kdp.local.md user config file/kdp-audit or /kdp-listing independently for a specific step without the full pipeline.