Paper build
task paper rebuilds the preliminary article, Reproducible slope-quality accounting for a lunar
polar DEM, from the frozen Site01 source witness. It is a private, receipt-backed build. It is not
a publication step, and it does not deploy or publish anything.
Prerequisites
Section titled “Prerequisites”- The repository toolchain: uv, Task and Node, as described in Install.
- mise, which the task uses to obtain Typst 0.15.0. No Typst binary is vendored, and global tool selection is unchanged.
- The frozen source blobs in the local CAS. Set
LUNARTRACE_SOURCE_STOREto its location; there is no default. - The
paperdependency group, which pins Snakemake 9.27.0 and MyST 1.11.0.
From the repository root:
task paperThe task runs mise exec typst@0.15.0 -- uv run --frozen --group paper snakemake --snakefile paper/Snakefile --cores 1 --force-use-threads.
Snakemake uses its thread-based local executor, which is the executor on Windows, and scientific commands
receive argument lists rather than shell-quoted paths.
Configuration lives in paper/config.yaml. It supplies the manifest, the CAS root and the expected SHA-256
values for the result and the SVG figure. No store path is hard-coded in the rules. Override values through
Task’s argument forwarding:
task paper -- --config store="D:/frozen-source-store"Use --forceall to replay every rule from cold:
task paper -- --forceallWhat the DAG does
Section titled “What the DAG does”- Study. Runs
python -I -m lunartrace.science.study runagainst the configured manifest and store. - Projection. Runs
study projecton the canonical result. - Figure. Runs the unchanged
examples/polar-source-quality/make_figure.py. - Checks. Asserts the canonical result SHA-256 and the SVG SHA-256 against the configured values, checks the receipt, manifest, result and projection bindings, and generates the provenance text that the article includes.
- Tables.
paper/tables.pyrenders the source inventory and the results table. Each first checks that the manifest or result bytes match the SHA-256 recorded inverified.json, so a table can only be written from an artifact that passed step 4. It formats values and recomputes nothing; an undefined statistic prints as a dash, never as zero. - Article. MyST exports
paper/article.mdthrough the local Typst template, andtypst compileproduces the PDF.
The gates in steps 4 and 5 are what make the build a reproduction check. A changed result, figure or binding fails the build; it is not silently accepted.
Outputs
Section titled “Outputs”All artifacts are written under the ignored paper/_build/ directory:
| Path | Contents |
|---|---|
study/result.json, study/receipt.json | Canonical result and execution receipt |
projection.json | Typed summary projection |
figure/figure.svg, figure/figure.pdf | Numeric Figure |
verified.json | Hash and binding checks that passed |
provenance.md | Provenance text included by the article |
source-table.md | Source inventory table (hash-gated) included by the article |
results-table.md | Per-ROI, per-cutoff results table (hash-gated) included by the article |
article.pdf | The compiled preliminary article |
MyST keeps generated Typst sources under paper/_build/temp/, and .snakemake/ is also ignored. Do not
commit source data, figures, PDFs or build caches.
The receipt’s SHA-256 differs between executions because its timestamps and environment differ. The canonical result and the SVG are byte-reproducible for fixed inputs and environment.
Rebuild triggers: changes to the source, lock, manifest or CAS invalidate the scientific outputs. Changes to the article, bibliography or template rebuild only the article.
Standing
Section titled “Standing”The article’s standing is NUMERIC_REPRODUCED for the frozen Site01 study. It is not scientific admission.
included_fractionis a fraction of jointly valid cells. It is not a physical area.- The τ threshold is a slope-RMS cutoff in degrees, not propagated uncertainty.
- The PGDA source redistribution rights are UNVERIFIED. Neither the source rasters nor the source bytes are embedded in the article. The derived figure stays local and private.
- No publication, deployment, scholarly authorship decision or licence decision is made by this task.
The two source citations were checked against Crossref on 2026-10-10. The full ordered author lists and the
retrieval sources are recorded in paper/CITATION_VERIFICATION.md and paper/references.bib. That check
verifies bibliographic metadata, not the scientific findings of the cited work.
Read Provenance before sharing any output of this build.