An EPUB can carry a modern navigation document and an NCX table of contents. They are different files, but when both describe the same five chapters, their labels, destinations, and order should agree. Inspecting only one file can leave a book that presents different chapter names through different reading or conversion paths.
This EPUB TOC NCX nav guide uses a generated five-chapter package. It begins with the approved chapter list, follows the actual selection and export commands, and compares five nav_links with five ncx_points. The acceptance rule is more specific than “the EPUB is valid.”
Understand the two navigation representations
The EPUB 3 navigation document is HTML-based and exposes links that reading systems can present to readers. NCX is an XML navigation format associated with older EPUB workflows and compatibility paths. A current reading system may rely on the navigation document, but a conversion service or older device may still inspect NCX.
If a production tool generates both, they should not contradict each other. Compare three fields: the visible label, the target file, and the sequence. Five entries in each file do not pass when chapters three and four are reversed. Matching targets do not pass when one side retains an obsolete chapter title.
The topic here is navigation consistency. Cover design, body images, and retailer metadata are not the center of this check. They may be present in another book, but they do not replace the five-row chapter authority used for this test.
Use the five input chapters as the authority
The controlled source consisted of chapter-01.md through chapter-05.md, one chapter per file. All five were passed to rune epub select in the approved order. rune epub plan returned fileCount=5, chapterCount=5, and includeInTOC=true for every chapter. There were no excluded TOC chapters.
That plan becomes the left side of the comparison. The expected labels are STUDIO-266 Chapter 1 through STUDIO-266 Chapter 5, and the expected generated destinations are p001.xhtml through p005.xhtml in the same order.
Do not let natural filename sorting become the only source of truth. A deliberate selection record explains why a particular order is correct. It also distinguishes a five-item plan made from the intended chapters from another five-item plan made from stale files.
A useful failure case is an accidentally excluded fifth chapter. Navigation and NCX could both contain four perfectly matching rows while the manuscript contains five chapters. The two generated files must match each other and the original chapter authority.
Carry one file list through plan, export, and inspection
The recorded series command set title STUDIO-266 Verified Title, publisher Publisher-266, horizontal writing, Japanese language, and output base name studio-266. Volume 0 used EPUB version 3.1 and publication-date input 2026-10-13.
After selection, the same five paths were passed to planning and export. The final check used rune inspect epub --path /private/tmp/rune-g2c3-studio-266-dt_yosi8/EPUB/studio-266-260903.120000.epub --json. Every command in the persistent log exited with code 0.
The inspected EPUB has SHA-256 7b349cb8b0fed4af85265178db74676f8ffb8a49a17867fe1f1e31932b7103c5 and 13 entries. Its reading order contains title, navigation, five chapter XHTML files, and colophon, for eight spine hrefs. The controlled package has no cover or body-image reference.
A plan is not the final book. Export can receive a different path list, or an editor can inspect an older EPUB with a similar name. The checksum and final package readback connect the comparison to one artifact.
If planning shows the wrong count, return to selection. If export receives the wrong list, preserve the plan and issue a new export. If inspection points to an old checksum, select the newly generated artifact. Each failure has a narrower recovery than rebuilding the source chapters.
Compare all five labels and targets side by side
The package reported five navigation links. STUDIO-266 Chapter 1 points to p001.xhtml, and the pattern continues through Chapter 5 pointing to p005.xhtml. NCX also contains five points with the same labels and destinations Text/p001.xhtml through Text/p005.xhtml.
The computed result nav_ncx_same_labels=true records equality of the label sequences. The destinations correspond chapter by chapter, and no chapter was excluded from navigation. Local package inspection also returned valid=true with no reported missing resource.
Counts are the first comparison, not the last. Next compare row one with row one, including label and target, and continue through row five. This prevents a swapped pair from passing merely because each file still contains five entries.
Recovery depends on the column that fails. A stale label returns to the approved chapter title. A wrong destination returns to source selection and generated order. A missing row returns to includeInTOC. Avoid editing both navigation files by hand unless that manual process is itself the approved production method; otherwise, correct the shared source and regenerate.
Use equality as a compatibility check, not a retailer promise
Aligned navigation reduces the chance that different readers or conversion paths show conflicting chapter names or order. It does not prove that every reading system will display the same menu design or use NCX at all. The value lies in eliminating a contradiction that the package itself controls.
valid=true is a local structural result. It does not establish retailer acceptance, accessibility behavior, screen layout, or identical rendering on all devices. Test those claims in the target environment using the exact EPUB checksum recorded here.
Rune Studio can select chapters and generate OPF, navigation, and NCX as part of one EPUB workflow. Review the current Rune Studio feature scope. For your own book, create a three-column sheet—approved chapter, nav row, NCX row—and accept the navigation only when count, label, destination, and order all match.