# Paper 18 reproducibility record

Status: provisional design paper; no MDReader application result

Date: 23 July 2026

## Scope

This record reproduces the repository audit and manuscript build. It cannot
reproduce an MDReader application, because no application package, backend,
SQLite schema, PostgreSQL synchronization layer, API, or end-to-end test is
present at the audited revision.

The paper is deliberately not an empirical report. Its evaluation,
accessibility, usability, storage, retrieval, and synchronization sections are
protocols for later work.

## Repository identity

```sh
git show -s --format='%H%n%P%n%cI%n%s' HEAD
```

Audited result:

```text
ac0b96432414df5914506923864272d16279ad57
0aaa67fd09a6077625514e0ac5ed3fe673d00c42
2026-07-23T09:02:12-06:00
accept P2 physical compilation paper
```

The current working tree may contain independent paper work. Do not clean,
reset, stage, or commit it to reproduce this record.

## Context integrity

```sh
shasum -a 256 -c context/SHA256SUMS
```

Expected: every listed context artifact reports `OK`.

Relevant captured hashes:

```text
89dbe785d84f2ec25819fb8d9b3ccc07fa6b45841c17e97f56de6c19978e11ea  context/01-markdown-viewer-and-search.md
bc6cdb5fa6ca411181db8d4a42ecdba47d4542b2615052aaa6c1802f4eb8417a  research/paper-manifest.md
66f9c612e6d26790da05923110f7ba1339d1556efe3fa8a4ab65f7bfb75a40af  research/implementation-roadmap.md
e14a542bcaa5adfe00c131c9db1fbf7a406f5927fbb489b077eb29608b4246fe  coordination/verification-status.md
```

## MDReader absence audit

Run from the repository root:

```sh
find apps/mdreader -mindepth 1 -print
test -f apps/mdreader/package.json
git ls-tree -r HEAD apps/mdreader
git log --all --oneline -- apps/mdreader
find examples/mdreader -type f -print 2>/dev/null
```

Expected at the audited revision:

- the first command prints nothing;
- the `test` command exits nonzero;
- the Git tree and history commands print nothing; and
- no example files are printed.

The planned native application gate demonstrates that no package exists:

```sh
npm --prefix apps/mdreader test
```

Observed result:

```text
npm error code ENOENT
npm error syscall open
npm error path .../apps/mdreader/package.json
```

Exit status: `254`. Do not interpret this as a failed test suite. The suite and
package are absent.

## Workspace capability audit

```sh
cargo metadata --no-deps --format-version 1 |
  jq -r '.packages[].name'
```

Expected package names:

```text
catdb-core
catdb-ir
catdb-schema
catdb-mapping
catdb-migration
catdb-cli
```

Inspect database, server, and UI dependencies:

```sh
rg -n -i \
  'rusqlite|sqlx|sqlite|tokio-postgres|postgres|diesel|axum|actix|tauri|react|svelte|next|playwright' \
  Cargo.toml Cargo.lock crates apps
```

At the audited revision the focused search returns no dependency establishing
an MDReader database, server, desktop shell, or browser application. This
negative search is bounded to the named tree and terms.

## Accepted upstream semantic boundary

The accepted Slice 4 source is:

```text
056915834fcc2f172a4a72efe3629f4f753e45cf
```

Verify that the current semantic workspace matches that source:

```sh
git diff --exit-code 056915834fcc2f172a4a72efe3629f4f753e45cf -- \
  Cargo.toml Cargo.lock crates haskell fixtures scripts coordination/releases/slice-4.md
```

Expected exit status: zero.

Run the live native suite:

```sh
cargo test --workspace --all-features
```

Expected: all workspace unit, integration, and documentation tests pass.

Run the independent comparison:

```sh
cargo run -p catdb-cli -- \
  fixtures compare fixtures/cases \
  --left rust \
  --right haskell \
  --capability-set slice-4
```

Expected final summary:

```text
summary left=rust right=haskell capability_set=slice-4 total=33 semantic-compared=29 structural-compared=4 disagreements=0
```

This verifies finite schemas, paths, mappings, instances, and bounded Delta at
the accepted slice. It does not verify an application, query compiler,
database backend, provenance executor, schema-diff executor,
information-loss executor, server, UI, SQLite, PostgreSQL, or sync.

Captured runtime hashes:

```text
8d639b43fd8806b8b8a5341c86af626d95cc2bb68ed85d9074c1722caea40a34  Cargo.toml
117abb87d3ec22ebfd2ce0f97f80f373b72043601b79464fb259de192c2b9643  Cargo.lock
afe1f08544ffb80b9dadd017a721371292599b863a5e06d92a231f2c90599254  coordination/releases/slice-4.md
69664f8f17cbac5a84b36e819c942bb2a26aa10b8ff00c8cd94914543c6289af  coordination/reviews/slice-4.md
```

## Primary-source verification

The bibliography links the specifications used to constrain the design:

- CommonMark 0.31.2 and GitHub Flavored Markdown;
- SQLite FTS5, transactions, foreign keys, and STRICT tables;
- PostgreSQL 18 logical replication, restrictions, and conflicts;
- W3C PROV-O, WCAG 2.2, and WAI-ARIA Authoring Practices;
- ISO 9241-11; and
- original research on functorial migration, provenance, retrieval fusion,
  visualization validation, versioning, and schema evolution.

Web access dates and stable DOI or specification URLs are recorded in
`references.bib`. These sources justify the proposed test obligations. They
are not implementation evidence.

## Isolated manuscript build

Create a temporary build directory outside the source tree:

```sh
paper_dir="$PWD/papers/18-mdreader"
build_dir="$(mktemp -d /tmp/catdb-p18-latex.XXXXXX)"

latexmk -pdf \
  -interaction=nonstopmode \
  -halt-on-error \
  -outdir="$build_dir" \
  "$paper_dir/paper.tex"
```

The final author run, page count, warning audit, visual-inspection method, and
artifact hashes are appended after the isolated build.

## Final author build and page inspection

The final author pass used:

```text
latexmk 4.88
pdfTeX 3.141592653-2.6-1.40.29 (TeX Live 2026)
BibTeX 0.99e (TeX Live 2026)
pdfinfo 26.07.0
```

The isolated build directory was:

```text
/tmp/catdb-p18-latex-final.mfjJ24
```

`latexmk` exited zero. The resulting PDF is US Letter, PDF 1.7, 29 pages, and
368,057 bytes. The final LaTeX and BibTeX logs contain no unresolved citation,
unresolved reference, overfull box, LaTeX error, emergency stop, or fatal-error
diagnostic.

Every page was rasterized at 110 dpi:

```sh
pdftoppm -png -r 110 \
  /tmp/catdb-p18-latex-final.mfjJ24/paper.pdf \
  /tmp/catdb-p18-render-final.XuOo9n/page
```

The 29 page images were inspected in five contact sheets covering pages 1--6,
7--12, 13--18, 19--24, and 25--29. Pages 10 and 14 were also inspected at full
page resolution after fixing crowded diagram labels. The final inspection
found no blank page, clipped table, overlapping diagram label, hidden
provisional-status box, missing bibliography segment, or truncated appendix.

The PDF remains an isolated verification artifact. It was not copied into the
paper directory or treated as an accepted PDF.

## Final artifact hashes

```text
023e0fb78a137495dfe54ea5dc8eb3efbce065a7e71ae70e2950ec8ae9a95222  paper.tex
7d46b7fdaadd63deb9358963dc6049a520032609915f7ba01e563c2379097bb3  references.bib
eec219c14889375ccf997cb6f4fb16f2ad069cb04ca076b0c0de2ab0dc0743d9  research/evidence-dossier.md
6305ffd7a3c3f06958f8d1450e74f5ddcfaae226a6b08bff047f604811a3b571  humanizer-scope.md
5a87e67bc829fcaf0ad980eff09dec8487bbb685dc6f7c2feb54da260e1ab755  isolated paper.pdf
```

The reproducibility record's own hash is reported in the handoff because
adding a self-hash here would change the file.

## Final consistency audits

The final source pass established:

- zero files beneath `apps/mdreader/`;
- 29 rendered page images for 29 PDF pages;
- no em dash or en dash character in the Paper 18 source tree;
- no accidental sentence asserting that MDReader is implemented, stores,
  renders, synchronizes, or has measured results;
- no unresolved citation or cross-reference in the final logs;
- no overfull box in the final log; and
- no edit outside `papers/18-mdreader/`.

## Future application reproduction contract

A result-bearing revision must add, at minimum:

1. a pinned application package and lockfile;
2. a documented Rust/API dependency revision;
3. a versioned seed corpus and independent expected-results manifest;
4. SQLite schema migrations and connection settings;
5. unit, property, integration, and browser end-to-end tests;
6. application/library semantic-equivalence fixtures;
7. accessibility tooling plus manual keyboard and screen-reader records;
8. a preregistered usability protocol and anonymized result table;
9. retrieval judgments and four-way ablation configuration;
10. performance hardware, corpus, cold/warm protocol, and raw measurements;
11. if PostgreSQL sync exists, version compatibility, conflict fixtures,
    failure injection, and security settings; and
12. a native review and acceptance record tied to exact hashes.

Until those artifacts exist and pass, the manuscript remains a provisional
contract.

## Pre-correction independent verification

This section records the independent findings that triggered the author
correction below. At this stage the verifier did not change `paper.tex` or
`references.bib`.

### Verification source cut

The independent pass observed:

```text
e2f7cd70217e079af70c3e2ccaca14e6f548fd23  repository HEAD
fd22fc722d6e58b3a33540df4c7f9ddc652d9f9c  repository HEAD parent
2026-07-23T04:25:30-06:00                       repository HEAD date
draft P12 semantic sharding manuscript           repository HEAD subject
```

The shared branch advanced during the audit. Consequently, this HEAD identifies
the final repository snapshot observed by the verifier, while the source
artifacts below identify the immutable manuscript build.

```text
023e0fb78a137495dfe54ea5dc8eb3efbce065a7e71ae70e2950ec8ae9a95222  paper.tex
7d46b7fdaadd63deb9358963dc6049a520032609915f7ba01e563c2379097bb3  references.bib
eec219c14889375ccf997cb6f4fb16f2ad069cb04ca076b0c0de2ab0dc0743d9  research/evidence-dossier.md
63caffde16eda84b5bd5ee0501cda9779c45aa123e94f20d6cd3950b1fbc222e  related-work-ledger.md
40a04fddf6c6eb3c4f73dbae0135a45e3b919803603c39554463e5f2b9ab0dd4  novelty-ledger.md
feef2be274e54e43b5b7fb9ec2b9c6f5619cd94243451fddecb591b0e94a43e3  disputed-claim-ledger.md
4d18dc1a1b9ee41c28ca8b78aa7008bfc97aa252724322e4ead277d9681ee1a6  primary-source-bibliography.md
36680e0a9cb45e6c972aab0bfebb8b30ee70f881ef388d3f6f0e74c4beaac7cb  review-contract.md
698aa76c7f1f3df81b6f373ee8ac88ee227313c2ba50c44812d7cce9ef018553  humanizer-scope.md
```

The governing repository artifacts at that observation cut were:

```text
8d639b43fd8806b8b8a5341c86af626d95cc2bb68ed85d9074c1722caea40a34  Cargo.toml
117abb87d3ec22ebfd2ce0f97f80f373b72043601b79464fb259de192c2b9643  Cargo.lock
89dbe785d84f2ec25819fb8d9b3ccc07fa6b45841c17e97f56de6c19978e11ea  context/01-markdown-viewer-and-search.md
bc6cdb5fa6ca411181db8d4a42ecdba47d4542b2615052aaa6c1802f4eb8417a  research/paper-manifest.md
66f9c612e6d26790da05923110f7ba1339d1556efe3fa8a4ab65f7bfb75a40af  research/implementation-roadmap.md
3a988f61be0f757f54c0aacc2e7065faf5e7ef10d593a0b93aa922ed8156e648  coordination/verification-status.md
afe1f08544ffb80b9dadd017a721371292599b863a5e06d92a231f2c90599254  coordination/releases/slice-4.md
69664f8f17cbac5a84b36e819c942bb2a26aa10b8ff00c8cd94914543c6289af  reviews/slice-4-claude-code-review.md
```

All 12 entries in `context/SHA256SUMS` passed.

### Conservative application audit

The application boundary remains exact:

- `find apps/mdreader -mindepth 1 -type f` reports zero files;
- `test -f apps/mdreader/package.json` exits 1;
- `git ls-tree -r HEAD apps/mdreader` reports zero tracked entries;
- `git log --all --oneline -- apps/mdreader` reports no package history; and
- `npm --prefix apps/mdreader test` exits 254 with `ENOENT` for the missing
  `package.json`.

Cargo metadata still contains only `catdb-core`, `catdb-ir`, `catdb-schema`,
`catdb-mapping`, `catdb-migration`, and `catdb-cli`. A dependency-name and
manifest audit found no SQLite, PostgreSQL, HTTP server, desktop shell,
browser-UI, or Playwright dependency establishing an application.

Therefore there is no exact evidence for a Markdown parser, typed projection
store, overlay engine, inspector, SQLite store, PostgreSQL sync, server API,
browser or desktop UI, vector index, provenance executor, migration
visualizer, semantic-diff engine, accessibility result, security result,
privacy result, performance result, or user study. The manuscript's source
authority, projection, overlay-coexistence, mapping, witness, provenance,
diff, local/offline, optional-sync, accessibility, privacy, and security
requirements remain proposed gates.

### Dependency-status and executable-evidence drift

The current verification status records P3 and P4 as internally accepted paper
artifacts:

```text
9b8f6d37e6d152dabd3b624d07ff840bae23fa192c2e227b4a9e06d9f6ac57b5  papers/03-schema-migration/paper.tex
83164ab3dda34629a77e83d3242300f3e0c2dcbf4451fb03696fe437774f8e44  papers/04-composable-integration/paper.tex
f493490116b3469ac6b282ad8acc8b3412c6c9b574ac134e102aef8ee51b23bf  papers/15-rust-runtime/paper.tex
```

P15 is not yet listed as an accepted manuscript. At this pre-correction digest,
the Paper 18 dependency table and exact nonclaims still called P3 and P4
provisional. This was stale paper status, although paper acceptance does not
establish any MDReader runtime.

The accepted historical Slice 4 source remains:

```text
056915834fcc2f172a4a72efe3629f4f753e45cf
```

The current-worktree boundary check now exits 1:

```sh
git diff --exit-code 056915834fcc2f172a4a72efe3629f4f753e45cf -- \
  Cargo.toml Cargo.lock crates haskell fixtures scripts \
  coordination/releases/slice-4.md
```

Later Slice 5 source and fixtures are present. The live workspace suite still
exits zero:

```sh
cargo test --workspace --all-features
```

That is semantic-library evidence, not an MDReader test. The exact
all-fixtures command now exits zero with:

```text
summary left=rust right=haskell capability_set=slice-4 total=42 semantic-compared=29 structural-compared=13 disagreements=0
```

When the Haskell reference is rebuilt from a fresh temporary Cabal directory,
the command also emits Haddock documentation warnings: the upstream packages
have no installed Haddock documentation, the eight CatDB Haskell modules have
zero documented exports, and several link destinations cannot be resolved.
These warnings do not change the zero-disagreement comparison result, but they
are not application evidence and must not be hidden by the successful exit.

The historical `33/29/4/0` result remains valid only for the accepted closed
Slice 4 source and corpus. It is not the output of the manuscript's
all-fixtures command in the current worktree. The author correction below
reports the pinned release and current 42-case result separately.

### Citation and ledger closure

The independent closure audit found:

```text
unique manuscript citation keys: 27
BibTeX entries:                  27
generated bibliography items:   27
cited keys missing from BibTeX:   0
uncited BibTeX entries:           0
keys missing from source ledger:  0
keys missing from related ledger: 0
```

The related-work, novelty, disputed-claim, primary-source, and review-contract
ledgers are paper-local author artifacts. They are not peer-review reports.

### Pre-correction isolated build and visual inspection

The verifier copied the two immutable source files to:

```text
/tmp/catdb-p18-verifier-build.qhNLSy
```

`latexmk -pdf -interaction=nonstopmode -halt-on-error paper.tex` exited zero.
A second `latexmk` pass reported all targets current. The resulting PDF is US
Letter, PDF 1.7, 29 pages, 368,057 bytes, with all fonts embedded, subset, and
Unicode-mapped.

```text
2a558d51bc712f14fd29ea80080023026f5e7f7645fa95955c11e31b5760cf3a  paper.pdf
9346a19da617e679b0d1a39d185f5e62830b3e81d38a9c3caeed90ed0580d038  paper.log
4bcdec394a16bf588c10b46e3397fe2a03c2eb062d4aa1070e501478b2aeffa4  paper.bbl
6e84bfe5acfd682e018f189d7a6995fac9e3745a7bf398470eab661d25e28006  paper.blg
```

The log contains zero LaTeX errors, unresolved references, unresolved
citations, overfull boxes, or BibTeX warnings. It contains four underfull
boxes: badness 1226 near source lines 501--505, badness 1152 near lines
1225--1226, and two badness-10000 bibliography boxes. These are minor
typesetting findings and mean the stronger no-underfull terminal gate is not
closed.

All 29 pages were rasterized at 110 dpi under:

```text
/tmp/catdb-p18-verifier-render.R2k135
```

Five contact sheets cover pages 1--6, 7--12, 13--18, 19--24, and 25--29.
Pages 10, 14, 20, 24, 26, 28, and 29 were also inspected at full-page
resolution. The pass found no blank page, clipping, overlap, missing
bibliography segment, malformed table, or truncated appendix. Page 29 is
visually sparse because it contains only the evidence-hash table; this is a
minor pagination issue.

### Pre-correction author-side disposition

The conservative nonimplementation boundary passed. The proposed vertical and
any future implemented demo remained explicitly separate. This audit required
the manuscript to:

1. refreshes its repository source identity;
2. updates P3 and P4 paper statuses without transferring them into runtime
   evidence;
3. separates the historical closed Slice 4 result from current 42-case
   all-fixtures output; and
4. resolves or explicitly accepts the four underfull boxes and sparse final
   page under its terminal typography policy.

Independent peer review was not run in this pass. No PDF, log, cover, review,
coordination, README, CITATION, commit, deployment, or message artifact was
created in the repository.

## Author correction record

This record supersedes the pre-correction source digest, build, warning count,
visual result, and author-side disposition above. The correction changes
evidence prose and typography only. It does not add application code or expand
the accepted semantic boundary.

### Corrected evidence statements

The manuscript and dossier now state:

1. repository base commit
   `e2f7cd70217e079af70c3e2ccaca14e6f548fd23` was the correction-audit cut;
   the working tree also contained uncommitted paper work and later Slice 5
   candidate fixtures;
2. P3 and P4 are internally accepted manuscripts, while P15 remains
   unaccepted;
3. the accepted Slice 4 release at
   `056915834fcc2f172a4a72efe3629f4f753e45cf` records the closed-corpus result
   `33/29/4/0`; and
4. the correction-audit worktree reports `42/29/13/0` because nine later Slice
   5 candidate schema-diff and information-loss fixtures entered the current
   corpus.

The later fixtures do not revise the accepted Slice 4 release. Neither result
is MDReader application evidence.

The correction pass reran both live commands from the correction-audit
worktree. `cargo test --workspace --all-features` exited zero with every
workspace unit, integration, and documentation test passing. The exact
all-fixtures comparison also exited zero with:

```text
summary left=rust right=haskell capability_set=slice-4 total=42 semantic-compared=29 structural-compared=13 disagreements=0
```

The comparison rebuilt the Haskell reference in a temporary Cabal directory
and emitted the already disclosed Haddock documentation warnings. Those
toolchain warnings are separate from the zero-warning manuscript build.

### Corrected source digest

```text
6031eaad35a3583f1ddf5613323bf2046ebc83a7a25c95167ee6a5d973d90f86  paper.tex
78f3551e5ad31540b7b449a94b80f7d5ab96d55eeeae5b685b74c099f8741c69  references.bib
1e59844cb04e23c5c055efb84937c02c0d535ce158f079843646b20cba18ce06  research/evidence-dossier.md
41a00b1cd9d88a48a4f0c504def870a384fdbef22d185f443fa17699e1e73e28  related-work-ledger.md
0d0e73a2f6bfef9485a25995c57bda50de91e630ae510e94afcf003439d1987d  novelty-ledger.md
96e35f2148d0aaebadcd1d6080b388d8a0b7f059356e50518f6f89b9012e8360  disputed-claim-ledger.md
4d18dc1a1b9ee41c28ca8b78aa7008bfc97aa252724322e4ead277d9681ee1a6  primary-source-bibliography.md
b3f9d2548f04e32d06eb725504c48bd9211eb60336316a7ea521e2fa92cf65e6  review-contract.md
97ba79502e297816a8dce3a7a46538feb52d6a4530da21ee78af5a39e7972b43  humanizer-scope.md
```

The reproducibility record's own hash belongs in the final handoff because a
self-hash here would change the file.

### Corrected isolated build

The final corrected sources were copied to:

```text
/tmp/catdb-p18-correction-build.vPy5ni
```

The exact command was:

```sh
latexmk -pdf -interaction=nonstopmode -halt-on-error paper.tex
```

`latexmk` exited zero. The PDF is US Letter, PDF 1.7, 28 pages, and 369,175
bytes. All 20 fonts are embedded, subset, and Unicode-mapped.

```text
b5ad60130273c55be1205c1d21bfaca20a23854e9f5e646cc603bff6b1fd0433  paper.pdf
2a5838fa2eb0a4d7e846aacc2ab0e488cb8a69d7664e2288191d05bc897e8c1e  paper.log
f100a7f744eac0768023dde671edd3fa6f2904c02b4c8a1dc803e44e468f3541  paper.bbl
414cb67f27f3979e9c54749c156e95074951e7ba48814d8546bbde930605650a  paper.blg
```

Final diagnostic counts:

```text
LaTeX errors:                  0
unresolved references:        0
unresolved citations:         0
overfull boxes:               0
underfull boxes:              0
LaTeX or package warnings:     0
BibTeX warnings:               0
```

The correction split the long overlay-status sentence, made the SQLite gate
break naturally, and added legal breakpoints to two repository-artifact
bibliography entries. No technical obligation was removed. Reordering the
author-evidence and inspector appendices, then using a nonfloating evidence
table, eliminated the sparse terminal page without filler.

### Corrected citation and visual closure

Citation closure remains exact:

```text
unique manuscript citation keys: 27
BibTeX entries:                  27
generated bibliography items:   27
cited keys missing from BibTeX:   0
uncited BibTeX entries:           0
keys missing from source ledger:  0
keys missing from related ledger: 0
```

The exact PDF was rasterized at 110 dpi under:

```text
/tmp/catdb-p18-correction-render.PkKvK1
```

Five contact sheets cover pages 1--6, 7--12, 13--18, 19--24, and 25--28.
All 28 pages were inspected. The corrected evidence prose, dependency table,
acceptance matrix, dual comparison results, split evidence table, and final
inspector table were also inspected at full-page resolution. The final pass
found no blank page, clipping, overlap, malformed table, missing bibliography
segment, truncated appendix, or sparse terminal page.

### Terminal manuscript gate

The corrected manuscript was reviewed at the exact combined source digest

```text
c6b42ff18bb4f4d35f1c591b89c9317f0f72b213c103f90f939c20682771561f
```

AGY round 1 ended in `VERDICT: ACCEPT`; the canonical review is
byte-identical to that round. The repository artifact hashes are:

```text
paper.pdf  b5ad60130273c55be1205c1d21bfaca20a23854e9f5e646cc603bff6b1fd0433
paper.log  2a5838fa2eb0a4d7e846aacc2ab0e488cb8a69d7664e2288191d05bc897e8c1e
cover.png  6f3e591b4f0f1e1438d0feb82cacc74138e543e021940794456eb4b6884a1ca4
review     f30e593ae9132831e866208ff91a12c022bed06310ccd1b468487b8bddee31a8
```

The final verifier passed source and review digest identity, PDF freshness,
28-page minimum, LaTeX-log inspection, 300-DPI cover resolution, and terminal
review verdict. This internal manuscript acceptance remains acceptance of a
falsifiable reference-application contract: `apps/mdreader/` is still empty,
and no application runtime, user study, accessibility result, security result,
or performance result is implied.
