KDP Metadata Checklist: Language, Publication Date, and Cover

KDP metadata is not decoration added after the manuscript is finished. Language, publication date, and cover should be approved as three separate fields, then read back from the generated EPUB wherever the package records them. A populated setup screen is only an input state. The handoff artifact is the file in which those choices can be traced.

This KDP metadata language publication date cover checklist uses a synthetic three-chapter book, two body-image sources, and one cover source. It maps the exact CLI inputs to OPF metadata and the image manifest. It does not treat local generation as proof of KDP acceptance or identical rendering in every reading system.

Make a three-field metadata card

The first row is language. Do not infer it from the prose; require an explicit ja value and read the language from the package. The second row is publication date. Keep it distinct from the day the EPUB was generated or the file was modified. The third row is cover. Name one source asset that must become the package's cover-image, not merely the first illustration in the text.

The controlled card used title STUDIO-284 Verified Title, language ja, publisher Publisher-284, publication-date input 2026-10-04, and cover source cover.png. These are synthetic test values. Their purpose is to make every input visible, not to stand in for a real book's bibliographic authority.

Two additional files, figure-1.png and figure-2.png, served as body-image sources. The PNG extension does not make them interchangeable with the cover. A reading system can treat a declared cover differently from an image that happens to appear in chapter one.

Give the card two columns: intended input and observed package value. Leave an unverified result blank. A single note saying “metadata set” hides the common failure in which language and cover are correct but the date belongs to another volume.

Connect each field to a recorded CLI input

The series command was rune epub series set --workspace /private/tmp/rune-g2c3-studio-284-bryrc6dq --title "STUDIO-284 Verified Title" --author "Synthetic Author" --publisher Publisher-284 --file-name studio-284 --writing-mode horizontal --language ja --json. It exited with code 0. That command is the input evidence for title, author, publisher, writing mode, and language.

The volume command was rune epub volume set --workspace /private/tmp/rune-g2c3-studio-284-bryrc6dq --number 0 --version 3.1 --publish-date 2026-10-04 --json. The date is a declared value for this volume. It is not a command that schedules a KDP release.

The cover command was rune epub cover set --workspace /private/tmp/rune-g2c3-studio-284-bryrc6dq --number 0 --path /private/tmp/rune-g2c3-studio-284-bryrc6dq/cover.png --json. It connects a specific file to volume 0. A successful response is not yet evidence that the exported package contains a cover entry.

Three chapters were then selected, planned, and exported. Keeping selection after metadata setup matters because the resulting package must join bibliographic fields with the intended content. If a field is wrong, return to the command that owns that field, generate a new EPUB, and inspect the new artifact. Repeating every command without locating the failed row makes the audit harder.

The command sequence also supplies a useful failure map. A wrong language returns to series set. A wrong date returns to volume set. A missing cover returns to cover set or to the source path. A missing chapter returns to select. Each error has a different owner.

Read the OPF, manifest, and reading order

The persisted result is studio-284-260903.120000.epub, SHA-256 e9d7daefe8b17c8cc0666df15f97ec75aebd0af2dbe057ebb6e93fda7460ab5b. Local inspection returned valid=true, three navigation links, three NCX points, and no reported missing resource.

The OPF metadata readback contained title STUDIO-284 Verified Title, language ja, publisher Publisher-284, and the deterministic generation timestamp 2026-09-03T12:00:00+09:00. The evidence record separately retains the publication-date input 2026-10-04. Those two date facts have different meanings and should not be collapsed into one unlabeled “date.”

In the manifest, Images/cover.png carried properties="cover-image". The body images had separate identifiers such as Images/p001_01.png. There were seven image references in total: one cover reference and six body-image references created by two images in each of three chapters.

The reading order contained seven XHTML entries: cover, title, navigation, three chapters, and colophon. This persisted package is the authority for cycle 5. An older summary that said spine=6 and images=1 describes a different or incomplete observation and is not reused as a current fact.

The distinction is practical. A package can be structurally valid while carrying the wrong language, an old date, or an undeclared cover. valid=true is one cell on the card; it does not sign all metadata rows automatically.

Hand off only a card that another editor can sign

A complete card points from the language input to the OPF language, from the publication-date input to the retained volume record, and from the cover source path to the cover-image manifest entry. It also identifies the exact EPUB with a checksum. Another editor should be able to reproduce those observations without seeing the original setup screen.

The local test did not assess copyright clearance, production cover dimensions, KDP acceptance, or rendering across devices. Its images are synthetic and tiny, so they prove package roles rather than visual quality. A real release must verify retailer requirements and rights with the relevant official sources.

Rune Studio can keep series data, volume data, cover selection, chapter selection, export, and inspection in one Mac workflow. It cannot decide the correct bibliographic meaning for the author. Check the current Rune Studio feature scope, create the three-field card before export, and attach the inspected EPUB checksum when the book moves to KDP review.