SCAL-P spends its runtime verifying npm and pnpm packages before they are installed. Binary verification closes the loop: the same SHA-512 hashing engine and audit infrastructure that protects your dependencies also protects the SCAL-P binary itself. If you cannot verify the tool that does the verifying, you have a trust problem. This guide covers how release authors generate checksums and how users verify downloads before running them.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/CarlosEduJs/SCAL-P/llms.txt
Use this file to discover all available pages before exploring further.
Why binary verification matters
SCAL-P’s value proposition is “verify before trust.” Distributing a binary without a verification path would undermine that claim entirely. Thescalp checksum and scalp verify commands use the same hash format (sha512-<base64>), the same audit log (.scalp/audit.log), and the same policy enforcement model as every other SCAL-P command — no special cases for SCAL-P itself.
Binary verification does not replace transport security or GPG signing. Download the binary and checksums file over HTTPS. Consider GPG-signing the checksums file as an additional layer. See limitations for what this feature does not cover.
Commands
Two commands form the release verification chain:scalp checksum — run by the release author to generate a checksums file:
- Reads each file, computes its SHA-512, and writes one line per file
--outputwrites to a file; without it, output goes to stdout- No policy, no audit, no enforcement — it is a pure hash utility
scalp verify — run by the user after downloading a release artifact:
| Flag | Default | Description |
|---|---|---|
--artifact | required | Path to the downloaded release artifact |
--checksum | required | Path to the checksums file |
--policy | .scalp/policy.json | Policy file controlling enforcement behavior |
--ci | false | Override enforcement to block regardless of policy |
Verification flow
Release author: build and package artifacts
Build your release binaries. For SCAL-P itself, GoReleaser produces
.tar.gz and .zip archives for each target platform.Release author: generate checksums
Run Output format:
scalp checksum against all release artifacts. The output is a plain-text file with one sha512-<hash> <filename> line per artifact:Release author: upload artifacts and checksums
Upload the binaries and the
checksums.txt file together. Users must be able to download both. The checksums file is useless without the artifact and vice versa.User: download artifact and checksums
Download the release artifact for your platform and the
checksums.txt file from the same release. Use HTTPS.User: run scalp verify
Run
scalp verify with both files. Pass --ci to force blocking enforcement regardless of local policy:scalp verify loads the policy (or defaults), parses the checksums file, looks up the artifact filename, computes its SHA-512, compares against the stored hash, logs an audit event, and enforces the result.Release pipeline and user verification examples
Enforcement behavior
Without--ci, enforcement is controlled by your .scalp/policy.json. The default enforcement level when no policy is present is warn.
| Enforcement | Hash match | Hash mismatch |
|---|---|---|
warn (default) | exit 0 | Logged, exit 0 |
block | exit 0 | exit 1 |
log | exit 0 | Silent, exit 0 |
--ci, enforcement is forced to block regardless of the policy file. Use --ci in automated pipelines where a mismatch must halt execution.
Audit event
Everyscalp verify call produces exactly one audit event appended to .scalp/audit.log:
| Field | Values | Description |
|---|---|---|
event | "binary_verify" | Event type |
pkg | filename | The artifact that was verified |
status | "verified" / "mismatch" | Outcome of the hash comparison |
hash_match | true / false | Whether the computed hash matched the checksums file |
install, audit, policy_violation). There are no special-case log files for binary verification.
Limitations
Binary verification withscalp verify does the following and nothing more:
- Computes SHA-512 of the artifact
- Compares against the stored hash in the checksums file
- Logs the result to
.scalp/audit.log - Enforces based on policy or
--ci
- GPG-sign or verify the checksums file — do that separately with your signing key
- Verify the checksums file’s own authenticity — HTTPS delivery and GPG signing are your responsibility
- Scan the binary for malware — that is your OS vendor’s domain
- Accept wildcards in
--artifact— verify one file at a time