Two checks can pass and still fail to describe one repaired book. A UTF-8 copy may reopen correctly, and an EPUB may contain every intended image, while the chapters in that EPUB contain completely different prose. Before editing EPUB data, first prove that the text evidence and the image-package evidence refer to the same chapter revision. If that relationship is missing, stop the release and rebuild the test with connected inputs.
The retained STUDIO-378 fixture is useful precisely because it exposes this gap. Its named UTF-8 copy passes a small text check. Its three-chapter EPUB passes a separate package check with six image references and no missing resource. Direct inspection, however, shows that the copy and the selected chapters are different text. This guide treats that result as a provenance failure rather than inventing a successful merge.
The First Decision Is Dataset Identity
A text acceptance card and an image acceptance card are not enough. Add a relationship field that answers: which reopened text was placed into which selected chapter, and how was that transfer checked? Different files will normally have different digests, so digest inequality by itself proves little. What matters is a recorded derivation or a direct content checkpoint.
Suppose an editor validates a short conversion sample, then builds an EPUB from unrelated demonstration chapters. Both commands can return clean results. The clean sample does not become the source of the book merely because it sits in the same evidence folder.
Ask one concrete question before export: where does the accepted copy appear in the selected input? Answer with a path, revision identifier, and quoted checkpoint from the retained fixture. If no answer exists, label the relationship unconnected. Do not turn two independent green results into one green release decision.
What the Retained Files Actually Contain
The saved approved-utf8-content.txt begins with STUDIO-378 章頭 漢字 カタカナ ABC 123 and ends with STUDIO-378 章尾. The separately named STUDIO-378-converted-copy.txt has the same SHA-256, 1c0bfec9…d293c. That establishes equality inside the small conversion fixture.
The selected files tell another story. chapter-01.md through chapter-03.md contain English markers such as CASE-START-1 STUDIO-378 dedicated sample. Their generated counterparts, p001.xhtml through p003.xhtml, contain those same dedicated samples. The accepted Japanese sentence appears in neither the selected Markdown nor the generated XHTML.
Therefore, the evidence supports two bounded statements: the UTF-8 copy matches its approval input, and a separate three-chapter package was generated. It does not support a claim that the accepted copy entered those chapters, that one body travelled through the build, or that representative prose matched after export.
Audit Encoding Without Calling It the Book Source
The retained command log records rune inspect text --file for three source encodings. UTF-8 was LF with 44 characters, Shift_JIS was LF with 44 characters, and UTF-16LE was LF with 45 characters. None reported an unconvertible candidate. These are observations about the controlled files, not expected values for a real manuscript.
The named copy reopened as UTF-8, LF, and 44 characters. Its decoded content equalled approved-utf8-content.txt. That is a complete result for the conversion sample: the saved copy can be read as the approved short text.
Keep the claim at that boundary. Do not call the file “the accepted book source” unless the selected chapter files can be traced to it. If its encoding, line ending, or prose fails, return to the preserved source and create another named candidate. If it passes, leave the result intact while investigating the missing relationship separately.
Audit Image Packaging Without Borrowing Text Proof
The three selected Markdown chapters each refer to two source images. In the generated EPUB, those references become six packaged body-image resources and six XHTML src values. Resolving every relative reference against the ZIP gives zero missing resources.
The EPUB SHA-256 is fbc91eb1036adb1a41eaea9d6f127197ae95244d9a24d1e0fbd6095714fda173. It has 17 archive entries, three navigation links, three NCX points, and six spine items. The retained structural inspection says valid=true.
Those facts prove the measured package layer. They do not prove that the accepted Japanese conversion sample supplied the chapter prose. They also do not prove useful image content, production resolution, alt quality, reader appearance, or retailer acceptance. The image audit remains valuable without borrowing conclusions from the text audit.
Use a Three-State Relationship Field
Classify the link between the reopened copy and selected chapters as connected, unconnected, or unknown.
- Connected means a recorded operation or direct checkpoints show how accepted text reached the exact selected chapter revision.
- Unconnected means both sides were opened and their content was found to be different.
- Unknown means a file is unavailable, the comparison points were never chosen, or the recorded revision is incomplete.
STUDIO-378 is unconnected, not merely unknown. The Japanese approval text and the English dedicated chapter samples are both readable, and they do not match. This classification preserves the valid encoding and image observations while preventing an unsupported integration claim.
For an “edit EPUB image paths encoding problems” job, place this relationship field beside the two technical ledgers. Record the copy-to-chapter operation, the checkpoints compared, and the result. Until it says connected, do not assign a release digest to the combined repair.
Rebuild the Test When Provenance Is Missing
Do not overwrite the retained fixture and relabel it as repaired. Preserve the accepted copy, selected chapters, and existing EPUB. Start a newly named run. The following is a recovery design; the fixed STUDIO-378 artifacts do not show it being completed.
First, identify the approved UTF-8 path and digest. Create a new chapter revision that actually uses that text, and record its digest. Read checkpoints at the beginning, middle, and end of the new chapter before selection. Pass only that path to rune epub select and rune epub plan. After export, read the same checkpoints in the generated XHTML. Then audit each XHTML image reference against the manifest and archive entry.
The new candidate may proceed only if the text relationship, six intended image links, zero missing resources, and structural result all point to the same new EPUB. If prose disappears, return to the copy-to-chapter boundary. If a link breaks, return to that chapter’s src mapping. Generating another file does not, by itself, repair provenance.
The Honest Result Is a Stop Decision
The current evidence does not prove an integrated text-and-image repair. It proves a 44-character conversion sample and, separately, a structurally valid three-chapter package with six image resources and no missing link. The package can be reused as an image-link fixture; it cannot be represented as a finished book containing the accepted Japanese text.
Graphical warning colors, autosave timing, unsaved buffers, IME behavior, visual reader rendering, and KDP acceptance were not measured. Public descriptions of those capabilities must remain separate from the fixed command and package evidence.
This conclusion is more useful than a convenient success story. The key control is not another green checklist item; it is the relationship between the items. When direct inspection shows that the saved copy and selected chapters are different, stopping before release is the correct edit decision. A later connected run should receive its own chapter hashes and EPUB digest rather than rewriting the history of this fixture.