Skip to content

hemlock research prereg

SHA-256 lock pre-registration documents and other timestamped research artifacts. The freeze step records a content hash plus metadata (operator identity, hemlock SHA, freeze timestamp) so a reviewer can later re-hash the document and confirm it has not changed since the freeze.

Synopsis

hemlock research prereg freeze <path> [flags]
hemlock research prereg verify <path>
hemlock research prereg list

freeze

Compute the SHA-256 of the document at <path>, write a sidecar JSON manifest, append a record to the per-user prereg-history file ($XDG_CONFIG_HOME/hemlock/prereg-history.jsonl or ~/.hemlock/prereg-history.jsonl), and print the recorded hash.

Flag Type Default Description
--title string Human-readable title for the freeze (e.g. "Paper A prereg v1")
--notes string Free-form notes recorded with the freeze
--output string <path>.frozen.json Manifest output path

verify

Re-hash the document at <path>, look up the most recent matching freeze in the prereg-history file, and report whether the hash still matches. Returns non-zero on any divergence.

list

Print the per-user prereg-history file. One JSONL row per freeze with timestamp, path, hash, label, and note.

Examples

hemlock research prereg freeze ./pre-registration-paperA.md \
  --title "Paper A prereg v1" \
  --notes "Frozen at submission time"

# output:
#   [hemlock] frozen pre-registration-paperA.md
#     sha256: 7e9161bb141437185e6a80202627fb80a8fedda1729df4a1d0e5ecfb8a06afa8

hemlock research prereg verify ./pre-registration-paperA.md
#   [hemlock] verify ok — sha256 matches frozen entry from 2026-04-29

hemlock research prereg list           # human-readable summary
hemlock research prereg list --json    # JSON for downstream tooling

Why prereg vs deposit?

Tool Use case
prereg freeze One document at a time. Lightweight; appends to a per-user history file.
deposit build An entire artifact tree. Heavier; produces a manifest with per-file and per-bundle aggregate hashes plus an optional shell verifier.

A typical paper workflow uses prereg freeze once at the moment the pre-registration is locked, then deposit build once at the moment the artifact is shipped to AE.