Prerequisites
Use a Git checkout with a resolvableHEAD.
Install the locked Node dependencies.
Use Node.js 20.11 or later, Python 3, and Pkl 0.32.0.
Install the pinned runtime
From the repository root, choose an output path that does not exist.Create both trees
Choose fresh output directories outside the repository. Their parent directory must exist.PROJECTED receipt.
A failure emits PROJECTION_REJECTED with a stage and code.
An existing output remains unchanged.
Understand the result
Node freezes source bytes and modes before graph assessment. Pkl parses the input into constrained provider models. Node materializes the file plan and supplies payload digests for sealing. The projector examines source freshness before an atomic publication to the local output path. The lock records provenance and projected reference hashes. ItssourceSha field is a source-tree hash, not a Git commit ID.
The deterministic inputs include source bytes, modes, models, the evaluator, and the HEAD commit time.
Local output does not update the repository’s published branches or installed caches.
The projection contract gives the complete mechanism and supported limits.