docs: point to the published blog series - #24
Conversation
Everything measured over the last two days lives in dated evaluation reports, which are written for whoever maintains this next. Nothing was written for someone trying to understand why any of it mattered. Seven parts, in order: what a PDF actually contains; what a reader has to know that the file does not tell it; why a table is inferred rather than read; how the library is built and why it is a deliberate port; the five silent corruptions and the one finding that turned out to be wrong; the benchmarks, including a harness that measured itself twice; and what is still missing. Every number traces to a report in docs/evaluations -- verified by cross-checking each headline figure appears in both places, so the prose cannot drift from the measurements it cites. Eight SVG diagrams built from the real brand assets: the mark from VectorlessIcon.tsx, the palette from the blogs app globals.css, Geist and Instrument Serif. Nothing invented. Two things the series is careful about. It states repeatedly that 0.362 is an end-to-end number and NOT comparable to the 0.85-0.95 that structure-only papers report, because that comparison is the easiest way for a reader to draw a wrong conclusion. And it keeps the untested scope -- scanned pages, CJK, embedded subset fonts, multi-table pages -- visible in the summary table rather than buried, since a benchmark number without its scope reads as a general claim.
Reviewer's GuideAdds a new File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
📝 WalkthroughWalkthroughAdded a seven-part blog series about PDF reconstruction, table extraction, implementation details, extraction defects, benchmark corrections, deployment options, and remaining work. Added links from the documentation index and a reproducibility-focused blog README. ChangesPDF Extraction Documentation
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/blog/01-a-pdf-is-not-a-document.md`:
- Around line 15-21: Update all listed fenced blocks to use the text language
identifier: docs/blog/01-a-pdf-is-not-a-document.md lines 15-21 and 41-47;
docs/blog/02-thinking-like-a-printer.md lines 51-54;
docs/blog/03-where-tables-actually-live.md lines 36-41;
docs/blog/04-building-pdftable.md lines 27-32;
docs/blog/05-the-bugs-that-never-crashed.md lines 39-42 and 79-82; and
docs/blog/06-measuring-instead-of-believing.md lines 83-89 and 111-113.
In `@docs/blog/07-what-is-still-missing.md`:
- Line 7: Update the roadmap conclusion in the introductory statement so it
limits the claim to cell extraction being strong when a correct grid is supplied
for the evaluated digital PDFs. Preserve the distinction between structure-only
evaluation and end-to-end row and column discovery, and avoid implying that
reading cells is universally solved.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 2553d102-36ae-4c7a-9fe9-f379faebfb0d
⛔ Files ignored due to path filters (8)
docs/blog/assets/00-hero.svgis excluded by!**/*.svgdocs/blog/assets/01-pdf-anatomy.svgis excluded by!**/*.svgdocs/blog/assets/02-advance-drift.svgis excluded by!**/*.svgdocs/blog/assets/03-encoding-chain.svgis excluded by!**/*.svgdocs/blog/assets/04-table-strategies.svgis excluded by!**/*.svgdocs/blog/assets/05-clipped-paren.svgis excluded by!**/*.svgdocs/blog/assets/06-benchmark-ceiling.svgis excluded by!**/*.svgdocs/blog/assets/07-hybrid-architecture.svgis excluded by!**/*.svg
📒 Files selected for processing (9)
docs/README.mddocs/blog/01-a-pdf-is-not-a-document.mddocs/blog/02-thinking-like-a-printer.mddocs/blog/03-where-tables-actually-live.mddocs/blog/04-building-pdftable.mddocs/blog/05-the-bugs-that-never-crashed.mddocs/blog/06-measuring-instead-of-believing.mddocs/blog/07-what-is-still-missing.mddocs/blog/README.md
The seven posts existed both here and in apps/blogs, which is two copies of the same prose that drift the moment either is edited. The app owns the writing -- it is where the posts are published, and where the diagrams became components rather than static SVG. What stays here is the evaluation reports. They belong next to the code and the benchmarks that produce them, and they are a different artefact: a report records what was measured and what it does not prove, while the series narrates why any of it mattered.
Originally added the seven-part series as markdown here. It now lives in
apps/blogs(vectorless#17), where the diagrams became React components rather than static SVG.Two copies of the same prose drift the moment either is edited, so this PR is now just the pointer:
docs/blog/removed (16 files)docs/README.mdlinks to the published series and says why the split existsWhat stays in pdftable: the evaluation reports. They belong next to the code and benchmarks that produce them, and they are a different artefact — a report records what was measured and what it does not prove; the series narrates why it mattered.
Verified no dangling links to the removed directory remain, and the Go build and test suite are unaffected.