diff --git a/.github/workflows/perelman-pdf-facsimile-review.yml b/.github/workflows/perelman-pdf-facsimile-review.yml index bf7e4af2..2c981f82 100644 --- a/.github/workflows/perelman-pdf-facsimile-review.yml +++ b/.github/workflows/perelman-pdf-facsimile-review.yml @@ -10,6 +10,9 @@ on: - "corpus/candidates/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-interior.md" - "corpus/candidates/source-edition-traces/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-interior.json" - "tests/test_perelman_pdf_facsimile_interior.py" + - "corpus/candidates/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.md" + - "corpus/candidates/source-edition-traces/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.json" + - "tests/test_perelman_pdf_facsimile_midbody.py" workflow_dispatch: permissions: @@ -47,14 +50,17 @@ jobs: echo '3c616f547ff283a2cafd1ac26b448a8e8013f648 build/facsimile/perelman-1913.pdf' | sha1sum --check --strict echo '3d87d22a42ad949654265e066f81211d7831e32c8b62b96c967cd4cd33e7ed61 build/facsimile/perelman-1913.pdf' | sha256sum --check --strict - - name: Render bounded transition, interior, and tail pages + - name: Render bounded transition, mid-body, interior, and tail pages run: | set -euo pipefail pdftoppm -f 9 -l 13 -r 120 -jpeg build/facsimile/perelman-1913.pdf build/facsimile/transition + pdftoppm -f 59 -l 61 -r 120 -jpeg build/facsimile/perelman-1913.pdf build/facsimile/midbody-a + pdftoppm -f 109 -l 111 -r 120 -jpeg build/facsimile/perelman-1913.pdf build/facsimile/midbody-b + pdftoppm -f 159 -l 161 -r 120 -jpeg build/facsimile/perelman-1913.pdf build/facsimile/midbody-c pdftoppm -f 199 -l 206 -r 120 -jpeg build/facsimile/perelman-1913.pdf build/facsimile/interior pdftoppm -f 217 -l 223 -r 120 -jpeg build/facsimile/perelman-1913.pdf build/facsimile/tail rm build/facsimile/perelman-1913.pdf - (cd build/facsimile && sha256sum transition-*.jpg interior-*.jpg tail-*.jpg | sort) > build/facsimile/rendered-pages.sha256 + (cd build/facsimile && sha256sum transition-*.jpg midbody-*.jpg interior-*.jpg tail-*.jpg | sort) > build/facsimile/rendered-pages.sha256 printf 'Rendered files:\n' cat build/facsimile/rendered-pages.sha256 @@ -67,6 +73,9 @@ jobs: if test -f tests/test_perelman_pdf_facsimile_interior.py; then python -m unittest tests.test_perelman_pdf_facsimile_interior -v fi + if test -f tests/test_perelman_pdf_facsimile_midbody.py; then + python -m unittest tests.test_perelman_pdf_facsimile_midbody -v + fi - name: Upload transient facsimile review artifact uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 @@ -74,6 +83,7 @@ jobs: name: perelman-1913-facsimile-review path: | build/facsimile/transition-*.jpg + build/facsimile/midbody-*.jpg build/facsimile/interior-*.jpg build/facsimile/tail-*.jpg build/facsimile/rendered-pages.sha256 diff --git a/corpus/candidates/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.md b/corpus/candidates/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.md new file mode 100644 index 00000000..c4bd328b --- /dev/null +++ b/corpus/candidates/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.md @@ -0,0 +1,46 @@ +# Perelman 1913 PDF — broad mid-body facsimile anchors + +Candidate: `perelman-entertaining-physics-book1-1913-ru` + +Status: **source-free observed facsimile evidence; review pending** + +This companion records one bounded visual audit of three widely separated interior windows from the exact frozen 223-page Commons PDF. The workflow reverified the 28,168,847-byte carrier, SHA-1 `3c616f547ff283a2cafd1ac26b448a8e8013f648`, and SHA-256 `3d87d22a42ad949654265e066f81211d7831e32c8b62b96c967cd4cd33e7ed61` before rendering. No PDF bytes, page images, OCR, or literary source text are committed. + +## Direct observations + +| Carrier page | Visible printed page | Observation | +| ---: | ---: | --- | +| 59 | 50 | directly visible | +| 60 | — | no printed folio directly visible | +| 61 | 52 | directly visible | +| 109 | 100 | directly visible | +| 110 | 101 | directly visible | +| 111 | 102 | directly visible | +| 159 | 150 | directly visible | +| 160 | 151 | directly visible | +| 161 | 152 | directly visible | + +Every **directly visible** printed folio in these windows is compatible with `carrier_page - printed_page = 9`. Carrier page 60 is deliberately **not** assigned printed page 51: the audit saw no visible folio there, so filling that value by arithmetic would turn an observation into an inference. + +## Decision + +The new anchors strengthen the working `+9` mapping hypothesis across the book interior, but they do **not** promote a global page-offset rule. In particular: + +- the observed samples do not prove every unobserved carrier page; +- a visible printed folio is not present on every audited page; +- carrier page 60 remains an explicitly unlabelled observed page rather than an inferred mapping row; +- complete bibliographic-to-carrier mapping, the complete numbered-body range, PDF↔DjVu equivalence, canonical extraction-carrier selection, OCR correctness, literary-page selection/body identity, selected-body `>=300k`, FantLab analyzer-input identity, diagnostic readiness, M2 admissibility, and calibration admission remain closed. + +A later complete-mapping unit must model unlabelled folios explicitly and gather enough direct evidence to justify any total map; it may not silently interpolate page 60 or other gaps. + +## Reproducibility + +Authoring capture workflow: `36016017921` at head `56f2e0bec65bc65f9b1d5c16f855da8e8f430ce4`. + +Transient artifact: `10814104285`, GitHub digest `sha256:2eb64d55fd61f4cb26a425070759bc4ffe7f2e2c8be6d36631550ecbf7c21d71`, one-day retention. The downloaded ZIP was independently recomputed to the same SHA-256 during authoring. + +The source-free render-manifest file had SHA-256 `33457b4afaeed309fa6c604bfb0214f4be85979289033ed272f53f978ce30518`. Exact per-image SHA-256 values are frozen in the JSON evidence artifact and deterministic regression. + +Canonical machine evidence: [`source-edition-traces/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.json`](source-edition-traces/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.json). + +Evidence JSON physical SHA-256: `26291c4add9272fa2572425597deb99ec8b431cffb374119c134867aca9e02ea`. diff --git a/corpus/candidates/source-edition-traces/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.json b/corpus/candidates/source-edition-traces/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.json new file mode 100644 index 00000000..ad1e3309 --- /dev/null +++ b/corpus/candidates/source-edition-traces/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.json @@ -0,0 +1,145 @@ +{ + "admitted_for_calibration": false, + "binary_bytes_committed": false, + "candidate_id": "perelman-entertaining-physics-book1-1913-ru", + "canonical_extraction_carrier_selected": false, + "carrier": { + "byte_count": 28168847, + "kind": "pdf", + "page_count": 223, + "sha1": "3c616f547ff283a2cafd1ac26b448a8e8013f648", + "sha256": "3d87d22a42ad949654265e066f81211d7831e32c8b62b96c967cd4cd33e7ed61" + }, + "decision": { + "all_directly_visible_labels_match_carrier_minus_printed_offset": 9, + "bibliographic_to_carrier_mapping_complete": false, + "complete_numbered_body_range_proved": false, + "global_carrier_minus_printed_offset_asserted": false, + "interior_windows_directly_observed": [ + [ + 59, + 61 + ], + [ + 109, + 111 + ], + [ + 159, + 161 + ] + ], + "mapping_may_be_extrapolated_between_observed_anchors": false, + "next_evidence": "Independently review exact-head evidence. A later mapping unit must explicitly model unlabelled folios and verify enough remaining carrier pages to justify any complete carrier map; do not fill carrier page 60 or other gaps by arithmetic alone.", + "page_without_visible_folio_carrier_page": 60, + "page_without_visible_folio_directly_observed": true, + "printed_label_for_unlabelled_page_inferred": false, + "reason": "Three widely separated exact-carrier windows directly show eight visible printed folios. Every visible label is compatible with carrier page minus printed page = 9, while carrier page 60 has no visible folio. The observations strengthen the mapping hypothesis but do not make visible labels total and do not prove unobserved pages or a global offset.", + "status": "broad_interior_anchors_compatible_with_plus9_but_global_mapping_incomplete" + }, + "diagnostic_ready": false, + "evidence_version": "scriptorium-perelman-1913-pdf-facsimile-midbody-v1", + "fantlab_source_edition_match": "unknown", + "literary_body_frozen": false, + "literary_page_selection_bound": false, + "literary_source_text_included": false, + "m2_parity_admissible": false, + "minimum_300k_proved_from_frozen_body": false, + "observation": { + "artifact_retention_days": 1, + "authoring_artifact_digest": "sha256:2eb64d55fd61f4cb26a425070759bc4ffe7f2e2c8be6d36631550ecbf7c21d71", + "authoring_artifact_id": 10814104285, + "authoring_workflow_head_sha": "56f2e0bec65bc65f9b1d5c16f855da8e8f430ce4", + "authoring_workflow_run_id": 36016017921, + "method": "manual_visual_inspection_of_transient_renders_from_exact_verified_pdf", + "observed_at_utc": "2026-09-24T14:54:00Z", + "pages": [ + { + "carrier_page": 59, + "label_observation": "directly_visible", + "rendered_image_sha256": "f707d612d9b9dc864d4436ee4d48e09d9c15f0c9d2588e8af36f835501f1af86", + "rendered_review_filename": "midbody-a-059.jpg", + "surface_kind": "numbered_body_surface", + "visible_printed_page_label": "50" + }, + { + "carrier_page": 60, + "label_observation": "not_visible", + "rendered_image_sha256": "cbbb8fdd29d66db5338fc0ce704114f05d52d52ef844450718a65f80f1b9610b", + "rendered_review_filename": "midbody-a-060.jpg", + "surface_kind": "numbered_body_surface", + "visible_printed_page_label": null + }, + { + "carrier_page": 61, + "label_observation": "directly_visible", + "rendered_image_sha256": "ca527025615d4c1549112fbb9fbab4603c5589f3385c6d439befa19717cdc599", + "rendered_review_filename": "midbody-a-061.jpg", + "surface_kind": "numbered_body_surface", + "visible_printed_page_label": "52" + }, + { + "carrier_page": 109, + "label_observation": "directly_visible", + "rendered_image_sha256": "a9a5334648e69304fa522bfc88345a979b7566b52c9be4f9c8e318e0b65dbb55", + "rendered_review_filename": "midbody-b-109.jpg", + "surface_kind": "numbered_body_surface", + "visible_printed_page_label": "100" + }, + { + "carrier_page": 110, + "label_observation": "directly_visible", + "rendered_image_sha256": "5928c72fd85f1c5ac2c00949c54d9096b103dc164bc0f7f802054761f36c0891", + "rendered_review_filename": "midbody-b-110.jpg", + "surface_kind": "numbered_body_surface", + "visible_printed_page_label": "101" + }, + { + "carrier_page": 111, + "label_observation": "directly_visible", + "rendered_image_sha256": "8cd80aad72d1739193563d3c5fa8d1dc5af1219b26e8b1dc461a18e51d633c0e", + "rendered_review_filename": "midbody-b-111.jpg", + "surface_kind": "numbered_body_surface", + "visible_printed_page_label": "102" + }, + { + "carrier_page": 159, + "label_observation": "directly_visible", + "rendered_image_sha256": "b970d5e0aa4fcbc2b99f8176485f9a320d3bcfc4e4cb53d5831d1b1562143d8a", + "rendered_review_filename": "midbody-c-159.jpg", + "surface_kind": "numbered_body_surface", + "visible_printed_page_label": "150" + }, + { + "carrier_page": 160, + "label_observation": "directly_visible", + "rendered_image_sha256": "aa609387b556626706c33187e24025040deba5c49e512c1a5fee39c6ebded4e2", + "rendered_review_filename": "midbody-c-160.jpg", + "surface_kind": "numbered_body_surface", + "visible_printed_page_label": "151" + }, + { + "carrier_page": 161, + "label_observation": "directly_visible", + "rendered_image_sha256": "0c26242896309e5d0e9a476570014e251ed40223f3289cdcd2a8fe31f43daf61", + "rendered_review_filename": "midbody-c-161.jpg", + "surface_kind": "numbered_body_surface", + "visible_printed_page_label": "152" + } + ], + "pdf_bytes_deleted_before_artifact_upload": true, + "render_commands": [ + "pdftoppm -f 59 -l 61 -r 120 -jpeg", + "pdftoppm -f 109 -l 111 -r 120 -jpeg", + "pdftoppm -f 159 -l 161 -r 120 -jpeg" + ], + "render_manifest_sha256": "33457b4afaeed309fa6c604bfb0214f4be85979289033ed272f53f978ce30518", + "rendered_page_bytes_committed": false, + "transient_review_artifact_uploaded": true + }, + "ocr_correctness_verified": false, + "ocr_included": false, + "page_images_committed": false, + "pdf_djvu_page_equivalence_verified": false, + "source_free": true +} diff --git a/project/CHANGELOG.d/SCRIP-CORPUS-085.md b/project/CHANGELOG.d/SCRIP-CORPUS-085.md new file mode 100644 index 00000000..2f9d3904 --- /dev/null +++ b/project/CHANGELOG.d/SCRIP-CORPUS-085.md @@ -0,0 +1,10 @@ +## 2026-09-24 — Perelman 1913 broad mid-body facsimile anchors + +- Selected SCRIP-CORPUS-085 / Issue #259 from the normal-flow corpus/provenance queue after confirming no interrupted open PR required recovery. +- Extended the exact-carrier Perelman facsimile workflow to render three new bounded mid-body windows: carrier pages 59–61, 109–111 and 159–161. +- Hosted capture run `36016017921` reverified the exact 223-page / 28,168,847-byte Commons PDF (`sha1:3c616f547ff283a2cafd1ac26b448a8e8013f648`, `sha256:3d87d22a42ad949654265e066f81211d7831e32c8b62b96c967cd4cd33e7ed61`) before rendering and completed successfully. +- Transient artifact `10814104285` was independently downloaded; its ZIP SHA-256 recomputed to GitHub's `2eb64d55fd61f4cb26a425070759bc4ffe7f2e2c8be6d36631550ecbf7c21d71`. +- Direct visual inspection retained source-free folio observations 59→50, 61→52, 109→100, 110→101, 111→102, 159→150, 160→151 and 161→152. Carrier page 60 directly has no visible folio and is deliberately not inferred as printed page 51. +- All directly visible sampled labels are compatible with carrier-minus-printed=9, but no global offset or unobserved mapping is promoted. This audit therefore strengthens the mapping hypothesis while also proving that visible folios are not a total per-page signal. +- Added source-free JSON evidence, public companion and five deterministic regressions. Evidence JSON physical SHA-256: `26291c4add9272fa2572425597deb99ec8b431cffb374119c134867aca9e02ea`; focused regression is 5/5 green. +- Draft PR #260 remains REVIEW_PENDING for independent exact-head judgement. Complete mapping, PDF↔DjVu equivalence, canonical carrier, OCR correctness, literary-body/>=300k, FantLab-input and M2/parity gates remain closed; M2 remains 0/5. diff --git a/project/STATE_AND_QUEUE.md b/project/STATE_AND_QUEUE.md index 158da4fd..040a2fc9 100644 --- a/project/STATE_AND_QUEUE.md +++ b/project/STATE_AND_QUEUE.md @@ -1,21 +1,24 @@ # STATE_AND_QUEUE — Scriptorium -STATE_REVISION: 282 +STATE_REVISION: 283 PHASE: M1 — Deterministic FantLab surface -LAST_COMMITTED_RUN_AT: 2026-09-24T13:59:00Z -LAST_RESULT: SCRIP-CORPUS-084 / Issue #257 / PR #258 completed. A later exact-head judgement read all 8 changed files at `85af2a2073dbb1926aaa406bbcc091082a286d8c` against unchanged authoring base `e7bf53b7ae2485b106158d09b728c72b86f9e5f6`, found no merge blockers or review threads, independently recomputed the evidence self-digest `98dc8aed94fd8b4e18f0ad3325673603cba1575c1e745e1175ab4cd3a8aa2a48`, and independently downloaded artifact `10809920402`, whose ZIP SHA-256 matched GitHub at `04ece4b07683d9d3fc5f7acbd700d5aee9b1a2d4bc0fe2f1f685ec0439fd92f9` and contained exactly one source-free six-row JSON identity capture. Exact-head run `36003962326` completed successfully. GitHub refused a formal `APPROVE` event because it treated the connected reviewer as the PR author, so review `5305445089` records the clean judgement as `COMMENT` without fabricating approval. PR #258 was marked Ready and squash-merged with expected-head protection as `70a20089488fffc169bc807318ca82e9eb33f18b`; Issue #257 closed completed. `mediawiki_sha1_complete=true`, but `replay_ready=false`; no full VAR replay, historical-transclusion/runtime proof, promotion or backlog change is claimed. -LAST_VERIFIED_PROGRESS: M1 deterministic metric families remain executable inferred candidates. Public corpus/showcase evidence includes exact frozen/admitted works and source-free derived outputs, while no retained work has an independently established FantLab analyzer-input identity. Perelman retains independently reviewed exact PDF/DjVu identities, pagination, current Wikisource/FantLab surface boundaries, zero-PDF-PageLabels evidence, front-matter anchors, transition/tail anchors and bounded restored-page interior observations. Darwin/Rachinsky has independently reviewed v5 dependency closure, v6 zero-argument `{{ё}}` output evidence, canonical SCRIP-CORPUS-078 one-shape promotion, canonical SCRIP-CORPUS-079 388/388 `` noinclude-containment evidence, canonical SCRIP-CORPUS-080 candidate-local promotion/backlog reduction, canonical SCRIP-CORPUS-081 revision-pinned `{{ВАР}}` documentation/module evidence with no promotion, canonical SCRIP-CORPUS-082 provider-drift evidence, canonical SCRIP-CORPUS-083 observed-live six-revision load-closure evidence, and canonical independently reviewed SCRIP-CORPUS-084 source-free provider SHA-1 identities for all six exact revisions. M2 stays 0/5. +LAST_COMMITTED_RUN_AT: 2026-09-24T14:58:00Z +LAST_RESULT: SCRIP-CORPUS-085 / Issue #259 / Draft PR #260 authored one bounded Perelman 1913 exact-PDF mid-body facsimile audit from `master@82e88eb2d9045b199d595fa96d9cab9260cf6328`. The hash-verifying review workflow rendered carrier windows 59–61, 109–111 and 159–161 from the exact 223-page Commons PDF. Manual visual inspection retained only source-free evidence: eight directly visible printed folios (59→50, 61→52, 109→100, 110→101, 111→102, 159→150, 160→151, 161→152) and one directly observed page with no visible folio (carrier 60). Every visible label is compatible with carrier-minus-printed=9, but carrier 60 is deliberately not inferred as printed 51. Initial capture run `36016017921` succeeded at head `56f2e0bec65bc65f9b1d5c16f855da8e8f430ce4`; artifact `10814104285` independently recomputed to GitHub SHA-256 `2eb64d55fd61f4cb26a425070759bc4ffe7f2e2c8be6d36631550ecbf7c21d71`. Retained JSON physical SHA-256 is `26291c4add9272fa2572425597deb99ec8b431cffb374119c134867aca9e02ea`; focused local regression is 5/5 green. No global page-offset rule, complete carrier map, body admission or benchmark movement is claimed. +LAST_VERIFIED_PROGRESS: M1 deterministic metric families remain executable inferred candidates. Public corpus/showcase evidence includes exact frozen/admitted works and source-free derived outputs, while no retained work has an independently established FantLab analyzer-input identity. Perelman now has exact PDF/DjVu identities, pagination, current Wikisource/FantLab surface boundaries, zero-PDF-PageLabels evidence, front-matter anchors, transition/tail anchors, restored-page interior observations, and review-pending broad mid-body anchors that expose an unlabelled folio while keeping global mapping closed. Darwin/Rachinsky retains canonical reviewed dependency/replay/provider evidence through SCRIP-CORPUS-084. M2 stays 0/5. ## Current unit ```text -UNIT_ID: SCRIP-CORPUS-084 -ISSUE: #257 (closed completed) -STATUS: COMPLETE -PR: #258 (squash-merged as 70a20089488fffc169bc807318ca82e9eb33f18b) -NEXT_ACTION: Resume normal-flow corpus/provenance selection. - A separate bounded Darwin unit may attempt full candidate `{{ВАР}}` invocation replay against exactly the six canonical identities under an explicit version-pinned Scribunto/MediaWiki runtime boundary. - Keep historical-transclusion/promotion/complete-renderer/body/>=300k/FantLab-input/M2 gates closed until separately evidenced. +UNIT_ID: SCRIP-CORPUS-085 +ISSUE: #259 (open) +STATUS: REVIEW_PENDING +PR: #260 (Draft) +AUTHORING_BASE: 82e88eb2d9045b199d595fa96d9cab9260cf6328 +SEMANTIC_HEAD: 272c00c7c47f7a1506a826591b7941e1d49ad05e +NEXT_ACTION: Independently review all changed files for PR #260 against the unchanged authoring base, + verify the retained source-free evidence and exact-head checks, and only if clean mark Ready + and merge with expected-head protection. + Do not infer a printed label for carrier page 60 or promote a global +9 carrier offset from sampled anchors. ``` ## Current milestone gate @@ -30,6 +33,7 @@ Recovery/review-ready work and failing required checks preempt normal selection. | Priority | Unit | Mode | Deliverable | Gate / dependency | | --- | --- | --- | --- | --- | +| P0 | SCRIP-CORPUS-085 review | review / corpus provenance | Independently judge Draft PR #260 exact head and merge only if evidence/checks remain clean | Preserve author/judge separation; no self-approval claim | | P1 | SCRIP-CORPUS continuation | corpus / provenance | Add or strengthen legally usable >=300k candidates, prioritizing diversity beyond 19th-century Russian classics; Petersburg, Perelman and Darwin/Rachinsky have candidate-specific extraction/renderer work available | Preserve translation/edition identity and legal provenance; renderer/OCR work must keep body/admission/FantLab/M2 gates closed until separately verified | ## Retained corpus / provenance orientation @@ -51,8 +55,8 @@ Detailed evidence is canonical in `corpus/candidates/`, `benchmarks/`, `project/ - **The Twelve Chairs** — exact Page/PDF surfaces retained; template/reference semantics and body identity remain unresolved. - **The Life of Klim Samgin** — source graph/extractor/body identities retained; historical renderer equivalence and FantLab input remain unresolved. - **Children of Captain Grant — Beketova translation** — exact 1,095,467-character body with reviewed source-free deterministic showcase; no FantLab result/input identity for this translation. -- **On the Origin of Species — Rachinsky translation** — exact Page set/scan/render contracts retained. Independently reviewed v5/v6 and SCRIP-CORPUS-078 canonically resolve zero-argument `{{ё}}` for the selected live-snapshot evidence. Independently reviewed SCRIP-CORPUS-079 proves all 388 frozen self-closing `` tokens are inside stripped `` regions. Independently reviewed SCRIP-CORPUS-080 consumes only that containment fact to remove the candidate-local shape from the effective provider-reference backlog. Independently reviewed SCRIP-CORPUS-081 canonically freezes revision-pinned documentation/module evidence for `ВАР` (388) without promoting it. Independently reviewed SCRIP-CORPUS-082 canonically records current Header/provider drift plus a narrow `isPRS=false` classification replay. Independently reviewed SCRIP-CORPUS-083 canonically binds one observed-live six-revision root/load topology. Independently reviewed SCRIP-CORPUS-084 canonically binds all six exact revisions to provider SHA-1 identities while leaving full replay and promotion closed. Effective unresolved surface remains 4 tag shapes / 130 tag tokens and 37 template shapes / 2,356 invocations. Historical transclusion, complete renderer, literary body/>=300k and FantLab gates remain open. -- **Entertaining Physics, Book 1 — Perelman 1913** — exact PDF/DjVu carriers and reviewed pagination/facsimile boundaries retained. Complete interior mapping, global offset, PDF↔DjVu equivalence, OCR correctness, canonical carrier, literary body/>=300k, FantLab input identity and M2 remain open. +- **On the Origin of Species — Rachinsky translation** — exact Page set/scan/render contracts retained. Canonical SCRIP-CORPUS-078 resolves zero-argument `{{ё}}` for selected live-snapshot evidence; SCRIP-CORPUS-079/080 prove and consume `` noinclude containment; SCRIP-CORPUS-081–084 retain `ВАР` documentation, provider-drift, six-revision load closure and exact provider SHA-1 identities without full replay/promotion. Effective unresolved surface remains 4 tag shapes / 130 tag tokens and 37 template shapes / 2,356 invocations. Historical transclusion, complete renderer, literary body/>=300k and FantLab gates remain open. +- **Entertaining Physics, Book 1 — Perelman 1913** — exact PDF/DjVu carriers and reviewed pagination/facsimile boundaries retained. SCRIP-CORPUS-085 adds review-pending exact-PDF mid-body anchors at carrier 59–61, 109–111 and 159–161: eight visible labels are compatible with +9, while carrier 60 has no directly visible folio and remains deliberately uninterpolated. Complete mapping/global offset, PDF↔DjVu equivalence, OCR correctness, canonical carrier, literary body/>=300k, FantLab input identity and M2 remain open. ## Deterministic / morphology orientation @@ -65,13 +69,13 @@ Detailed evidence is canonical in `corpus/candidates/`, `benchmarks/`, `project/ ## Public repository representation -Public surfaces must remain source-free and synchronized with actual capability. Publish metadata, provenance, hashes and derived analysis only; never publish unlicensed source text. Perelman's transition/tail and restored-page interior companions are independently reviewed. Darwin's dependency and output-replay companions expose the selected `{{ё}}` live-snapshot evidence; SCRIP-CORPUS-078 canonically exposes that one-shape promotion; SCRIP-CORPUS-079 canonically exposes 388/388 `` noinclude containment; SCRIP-CORPUS-080 canonically exposes the separate candidate-local promotion/reduced effective backlog; SCRIP-CORPUS-081 canonically exposes independently reviewed `{{ВАР}}` documentation/module semantics without changing the effective backlog; SCRIP-CORPUS-082 canonically exposes independently reviewed later-Header/provider-drift evidence; SCRIP-CORPUS-083 canonically exposes the independently reviewed explicit six-revision observed-live load closure. SCRIP-CORPUS-084 canonically exposes independently reviewed exact provider SHA-1 identities while visibly keeping replay/promotion/parity gates closed. +Public surfaces must remain source-free and synchronized with actual capability. Publish metadata, provenance, hashes and derived analysis only; never publish unlicensed source text. Perelman's existing transition/tail and restored-page interior companions are independently reviewed; SCRIP-CORPUS-085 adds a review-pending source-free broad-midbody companion that visibly distinguishes direct folio observations from the unlabelled carrier-60 gap and keeps global mapping/body/parity gates closed. Darwin's canonical companions expose reviewed dependency/output/provider evidence through SCRIP-CORPUS-084 without claiming full VAR replay or parity. ## Known blockers / invariants 1. FantLab analyzer-input identity remains undisclosed/unestablished for retained benchmark works; M2 remains 0/5. 2. FantLab corrective coefficients and several parser/tokenization/dialogue semantics remain partly unpublished. 3. No corpus or showcase evidence may be promoted to parity without source-edition/input matching and explicit benchmark tolerances. -4. Perelman complete exact-carrier mapping is still required; current facsimile anchors do not prove every interior page, global offset, PDF↔DjVu equivalence, OCR correctness, body identity or >=300k admission. -5. Darwin/Rachinsky has independently reviewed provider SHA-1 identity evidence for all six exact observed-live SCRIP-CORPUS-083 revisions in canonical SCRIP-CORPUS-084, but full VAR replay, historical transclusion, explicit version-pinned Scribunto/MediaWiki runtime and promotion remain closed. The 2026-09-08 community warning remains provider-drift risk evidence, not proof of a broken runtime. Complete renderer/body/FantLab gates remain open. +4. Perelman complete exact-carrier mapping is still required. Broad sampled anchors are compatible with +9 where a folio is visible, but carrier page 60 directly demonstrates that visible labels are not total; no missing folio may be filled by arithmetic alone. Current evidence does not prove every interior page, a global offset, PDF↔DjVu equivalence, OCR correctness, body identity or >=300k admission. +5. Darwin/Rachinsky has canonical reviewed provider SHA-1 identity evidence for all six exact observed-live revisions, but full VAR replay, historical transclusion, explicit version-pinned Scribunto/MediaWiki runtime and promotion remain closed. 6. Live Pages deployment remains subject to repository policy/administration and must not be implied by static build success. diff --git a/project/run-receipts/SCRIP-CORPUS-085.md b/project/run-receipts/SCRIP-CORPUS-085.md new file mode 100644 index 00000000..2f667eb0 --- /dev/null +++ b/project/run-receipts/SCRIP-CORPUS-085.md @@ -0,0 +1,75 @@ +# Run receipt — SCRIP-CORPUS-085 + +Status: REVIEW_PENDING + +## Orientation + +- Authoring identity: `andy-zen-dev`. +- Repository: `drevendev/Scriptorium`; push/triage permission available. +- Exact authoring base: `82e88eb2d9045b199d595fa96d9cab9260cf6328`. +- Issue: #259. +- Draft PR: #260. +- Semantic evidence head: `272c00c7c47f7a1506a826591b7941e1d49ad05e`. + +## Produced + +One bounded Perelman 1913 exact-PDF facsimile audit across three previously unobserved mid-body windows: + +- carrier pages 59–61; +- carrier pages 109–111; +- carrier pages 159–161. + +The existing hosted workflow was extended to reverify the exact 223-page Commons PDF before rendering those windows. It checks 28,168,847 bytes, SHA-1 `3c616f547ff283a2cafd1ac26b448a8e8013f648`, and SHA-256 `3d87d22a42ad949654265e066f81211d7831e32c8b62b96c967cd4cd33e7ed61`; PDF bytes are deleted before artifact upload. + +Initial capture run `36016017921` at head `56f2e0bec65bc65f9b1d5c16f855da8e8f430ce4` completed successfully. Artifact `10814104285` was downloaded during authoring; its ZIP SHA-256 independently recomputed to `2eb64d55fd61f4cb26a425070759bc4ffe7f2e2c8be6d36631550ecbf7c21d71`, matching GitHub metadata. + +## Direct visual observations + +Manual visual inspection was performed on the transient exact-carrier JPEGs, not OCR. + +Direct visible folios: + +- carrier 59 → printed 50; +- carrier 61 → printed 52; +- carrier 109 → printed 100; +- carrier 110 → printed 101; +- carrier 111 → printed 102; +- carrier 159 → printed 150; +- carrier 160 → printed 151; +- carrier 161 → printed 152. + +Carrier page 60 has **no directly visible printed folio**. It is deliberately not retained as printed 51. + +Every directly visible label in the three windows is compatible with `carrier_page - printed_page = 9`, but this is retained only as a sampled mapping hypothesis. No global offset or unobserved-page mapping is promoted. + +The exact per-image SHA-256 values and source-free observation rows are frozen in `corpus/candidates/source-edition-traces/perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.json`. Its physical SHA-256 is `26291c4add9272fa2572425597deb99ec8b431cffb374119c134867aca9e02ea`. The downloaded `rendered-pages.sha256` manifest itself independently hashes to `33457b4afaeed309fa6c604bfb0214f4be85979289033ed272f53f978ce30518`. + +## Verification + +- Exact carrier retrieval/hash verification: success in hosted capture run `36016017921`. +- Transient render artifact upload: success. +- Artifact ZIP digest independently recomputed: match. +- All nine new page images manually inspected. +- Focused retained regression: **5/5 pass** locally before commit. +- PR remains Draft for a later independent exact-head judgement. + +## Evidence boundary + +This unit does **not** prove: + +- a complete bibliographic-to-carrier page map; +- a global carrier-minus-printed offset; +- the missing folio for carrier page 60 or any other unobserved page by interpolation; +- PDF↔DjVu page equivalence; +- canonical extraction-carrier selection; +- OCR correctness; +- literary-page selection or literary-body identity; +- selected-body `>=300k`; +- FantLab analyzer-input identity; +- diagnostic readiness, M2 admissibility, calibration admission, or parity. + +M2 remains 0/5. No benchmark movement occurred. + +## Handoff + +A later independent run must re-read all PR #260 changed files against authoring base `82e88eb2d9045b199d595fa96d9cab9260cf6328`, verify the source-free evidence and exact-head checks, and only then mark Ready / merge with expected-head protection if clean. Keep page 60 uninterpolated and keep the global-offset/body/FantLab/M2 gates closed. diff --git a/tests/test_perelman_pdf_facsimile_midbody.py b/tests/test_perelman_pdf_facsimile_midbody.py new file mode 100644 index 00000000..fdcd8270 --- /dev/null +++ b/tests/test_perelman_pdf_facsimile_midbody.py @@ -0,0 +1,87 @@ +import hashlib +import json +import unittest +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +EVIDENCE = ROOT / "corpus" / "candidates" / "source-edition-traces" / "perelman-entertaining-physics-book1-1913-ru.pdf-facsimile-midbody.json" +EXPECTED_PHYSICAL_SHA256 = "26291c4add9272fa2572425597deb99ec8b431cffb374119c134867aca9e02ea" + + +class PerelmanPdfFacsimileMidbodyEvidenceTest(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.raw = EVIDENCE.read_bytes() + cls.data = json.loads(cls.raw) + + def test_physical_digest_is_frozen(self): + self.assertEqual(hashlib.sha256(self.raw).hexdigest(), EXPECTED_PHYSICAL_SHA256) + + def test_exact_carrier_and_source_free_boundary(self): + carrier = self.data["carrier"] + self.assertEqual(carrier["page_count"], 223) + self.assertEqual(carrier["byte_count"], 28168847) + self.assertEqual(carrier["sha1"], "3c616f547ff283a2cafd1ac26b448a8e8013f648") + self.assertEqual(carrier["sha256"], "3d87d22a42ad949654265e066f81211d7831e32c8b62b96c967cd4cd33e7ed61") + self.assertTrue(self.data["source_free"]) + self.assertFalse(self.data["binary_bytes_committed"]) + self.assertFalse(self.data["page_images_committed"]) + self.assertFalse(self.data["ocr_included"]) + self.assertFalse(self.data["literary_source_text_included"]) + + def test_direct_midbody_observations_are_frozen(self): + rows = {row["carrier_page"]: row for row in self.data["observation"]["pages"]} + self.assertEqual( + {page: row["visible_printed_page_label"] for page, row in rows.items()}, + {59: "50", 60: None, 61: "52", 109: "100", 110: "101", 111: "102", 159: "150", 160: "151", 161: "152"}, + ) + self.assertEqual(rows[60]["label_observation"], "not_visible") + self.assertEqual( + {page: row["rendered_image_sha256"] for page, row in rows.items()}, + { + 59: "f707d612d9b9dc864d4436ee4d48e09d9c15f0c9d2588e8af36f835501f1af86", + 60: "cbbb8fdd29d66db5338fc0ce704114f05d52d52ef844450718a65f80f1b9610b", + 61: "ca527025615d4c1549112fbb9fbab4603c5589f3385c6d439befa19717cdc599", + 109: "a9a5334648e69304fa522bfc88345a979b7566b52c9be4f9c8e318e0b65dbb55", + 110: "5928c72fd85f1c5ac2c00949c54d9096b103dc164bc0f7f802054761f36c0891", + 111: "8cd80aad72d1739193563d3c5fa8d1dc5af1219b26e8b1dc461a18e51d633c0e", + 159: "b970d5e0aa4fcbc2b99f8176485f9a320d3bcfc4e4cb53d5831d1b1562143d8a", + 160: "aa609387b556626706c33187e24025040deba5c49e512c1a5fee39c6ebded4e2", + 161: "0c26242896309e5d0e9a476570014e251ed40223f3289cdcd2a8fe31f43daf61", + }, + ) + + def test_visible_labels_support_only_scoped_plus_nine_hypothesis(self): + visible = [ + row for row in self.data["observation"]["pages"] + if row["visible_printed_page_label"] is not None + ] + self.assertTrue(visible) + self.assertTrue(all(row["carrier_page"] - int(row["visible_printed_page_label"]) == 9 for row in visible)) + decision = self.data["decision"] + self.assertEqual(decision["all_directly_visible_labels_match_carrier_minus_printed_offset"], 9) + self.assertTrue(decision["page_without_visible_folio_directly_observed"]) + self.assertEqual(decision["page_without_visible_folio_carrier_page"], 60) + self.assertFalse(decision["printed_label_for_unlabelled_page_inferred"]) + self.assertFalse(decision["global_carrier_minus_printed_offset_asserted"]) + self.assertFalse(decision["mapping_may_be_extrapolated_between_observed_anchors"]) + + def test_downstream_gates_remain_closed(self): + decision = self.data["decision"] + self.assertFalse(decision["bibliographic_to_carrier_mapping_complete"]) + self.assertFalse(decision["complete_numbered_body_range_proved"]) + self.assertFalse(self.data["pdf_djvu_page_equivalence_verified"]) + self.assertFalse(self.data["canonical_extraction_carrier_selected"]) + self.assertFalse(self.data["ocr_correctness_verified"]) + self.assertFalse(self.data["literary_page_selection_bound"]) + self.assertFalse(self.data["literary_body_frozen"]) + self.assertFalse(self.data["minimum_300k_proved_from_frozen_body"]) + self.assertEqual(self.data["fantlab_source_edition_match"], "unknown") + self.assertFalse(self.data["diagnostic_ready"]) + self.assertFalse(self.data["m2_parity_admissible"]) + self.assertFalse(self.data["admitted_for_calibration"]) + + +if __name__ == "__main__": + unittest.main()