Repository navigation
Spec 001 T030: check-book - #162
Merged
Merged
Conversation
…place pdf-export check-book <folder> reads each PDF's outline, links and text with pdf.js and reports FR-011's faults in the contract's three line forms: missing-pathway, extra-file, and per PDF not-in-contents, not-in-outline, no-name, no-stable-id, missing-figure (where the source is in --files) and broken-link. book closes its printer, runs the check on its folder and moves the folder into place only when it passes; faults are exit 1 with no book, and the run report gives each check with its count of faults. From #159's review: a test that a printer's close removes its folder; one private temporary folder live a process; bookCommand's cleanup in a finally, the report written before the folder is removed; the serve contract says which signals leave nothing; a signal once the book is in place reports it written, with the signal, and exits 0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gainst their page The layout breaks a word too long for its line anywhere, so nothing is wider than the text column and Chromium never prints a part scaled down; the check reads a heading against its page's body text, so one printed scaled down still reads its names. Names are compared without the characters never drawn. Two sections of one name are told apart by their stable identifiers, the contents list is bounded by the outline, an undecodable address is a broken link, and the names are indexed once. A failed removal of the private folder keeps its exit handler. Release 98's counts of tables in summations noted in research R8. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rds kept whole The check measures a heading against its section's own Stable identifier label, or its page's commonest size outside its figures' labels, so a figure of many small labels no longer takes the facts into a heading. The pages break a word only where it overflows its line (break-word), and the layout gives a token over 40 characters a <wbr> every 20, so a table's short columns keep their words whole; an edit's date is never broken. folded() takes NEVER_DRAWN's pattern; identifies() reads only a candidate's own section. The docs say the layout keeps realistic content inside the column, not that nothing overflows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Spec 001, task T030. Replaces #161 after its review (two highs, fixed in the second-last commit); #161 replaced #160.
Everything in #161 (
check-book, run bybookbefore the move; the layout kept inside the column), plus, from #161's review:no-name: headings are now measured against their section's own "Stable identifier" label, with figure-link text left out of any fallback.overflow-wrap: anywheresplit ordinary words in tables ("Au/th/ore/d"): back tobreak-word, with<wbr>every 20 characters in tokens over 40 (in texts and summations, never in attributes); edit dates don't wrap. Tested with 30 editors and a summation table of long words beside prose.folded()importsNEVER_DRAWN;identifies()reads only its own section.Tests: 441 in all. Mutants in tasks.md.
🤖 Generated with Claude Code