Files
kyleandClaude Opus 5.5 cfde35397a P5a plan: PDF documents — seven Ornith tasks with acceptance tests first
docs/plans/p5a: 01 kind+fetch limits, 02 pdftext child + runner, 03 dcache PDF tables,
04 pdfpool, 05 pdfdoc render (map/pages/grep), 06 api, 07 digest citations, metrics, CLI,
skill, unit, README. Given tests compile against a panic-only skeleton and fail there for the
intended reasons; PDFs for tests are built by internal/pdftest (given), plus two qpdf-encrypted
fixtures.

Owner changes for the run: vendor go-pdfkit/extract v0.3.0 + reader v0.6.0 (pinned via
tools.go until task 02); AGENTS.md, tools/run-plan.sh (enforces a Co-Authored-By trailer for
the model), docs/implementer-log.md, `make gate`; gofmt (whitespace) on clean.go and guard;
TestUnsupportedType uses a zip now that PDFs are supported; requestDeadline 90→210 s and
writeTimeout 120→240 s for the PDF path's worst case.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 20:47:38 -07:00

645 B

PDF fixtures

Only the two encrypted files are binary; every other PDF the tests use is built at test time by internal/pdftest.

  • encrypted-user.pdf: the pdftest three-page document, AES-256, user password userpw, owner password ownerpw. Made with qpdf --encrypt userpw ownerpw 256 -- three.pdf encrypted-user.pdf.
  • encrypted-owner.pdf: the same document, AES-256 with an empty user password (opens without one), owner password ownerpw: qpdf --encrypt "" ownerpw 256 -- three.pdf encrypted-owner.pdf.

Both contain the phrases "Chapter one begins here." (page 1) and "The quick brown fox is on page two." (page 2).