This guide takes you from a fresh SCAL-P installation to a policy-enforced install in about two minutes. You need a JavaScript project with aDocumentation 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.
package.json — everything else is handled by SCAL-P. No config is required to get started; you can add policy enforcement progressively as you become familiar with your dependency profile.
Go to your project directory
Navigate to any JavaScript project that has a SCAL-P reads your existing lockfile to resolve dependencies before installing. No lockfile means SCAL-P cannot evaluate dependencies ahead of install — make sure one exists.
package.json and a lockfile (package-lock.json or pnpm-lock.yaml):Run your first CI check
Run No config. No setup. All packages pass because the default policy is audit-only — SCAL-P hashes and logs everything without blocking. This is the safe default.
scalp ci with no arguments:scalp ci does everything in one pass: resolves dependencies from the lockfile, evaluates them against policy, installs via npm, hashes every installed package directory with SHA-512, and saves a structured report to .scalp/ci-report.json.On the first run with no policy file, you will see output like this:Using pnpm? Pass
--pm pnpm to use the pnpm adapter: scalp ci --pm pnpmRead the CI report
Open
.scalp/ci-report.json to see what was verified:verified: 142 means 142 package directories were hashed and their hashes recorded in .scalp/lockfile.json. mismatched: 0 confirms that every package on disk matches what was installed — nothing has been tampered with.To write the report to a custom path, use --output:Explore the .scalp directory
After the first run, your project directory contains a new
.scalp/ folder:lockfile.json— SHA-512 hashes of every package directory. Auto-generated after install and used byscalp auditto detect tampering.audit.log— NDJSON append-only log. Every install, audit, and verify writes events here.cache/trust.json— Cached npm download counts and CVE lookups. SCAL-P uses this to avoid unnecessary network calls.policy.schema.json— Draft 2020-12 JSON Schema forpolicy.json. Editors that support$schemaprovide autocomplete automatically.
Do not commit
.scalp/lockfile.json, .scalp/cache/, or .scalp/audit.log to version control — these are local runtime state. Commit only .scalp/policy.json and .scalp/policy.schema.json.Add a policy
Create Run Now every package is evaluated against the trust score engine. Each package receives a score from 0 to 80 based on four factors: hash verification (30 points), version maturity —
.scalp/policy.json to start scoring packages:scalp ci again:>= 1.0.0 (15 points), weekly npm downloads (0–20 points), and no active CVEs (0 or 15 points). Any package scoring below 60 is reported.With on_violation: warn, violations are printed but do not block the install. You can review them before tightening enforcement.Trust scoring is offline-first. If SCAL-P cannot reach the npm registry for download stats, it awards half the points for that factor rather than failing the build.
Enforce in CI
When you’re ready to block on violations, update the enforcement mode:Now
scalp ci exits 1 on any violation — suitable for CI pipelines. For fork pull requests, use the --pr-context fork flag to force require_hash and block all install scripts:| Flag | Effect |
|---|---|
--pr-context fork (default) | Forces require_hash, blocks install scripts |
--pr-context internal | Respects policy, scripts blocked unless --allow-scripts |
--output | Path to JSON report (default .scalp/ci-report.json) |
What to explore next
Commands
Full reference for
install, audit, ci, policy check, verify, and checksum.Policy configuration
Allowlists, denylists, transitive depth limits, and the full policy schema.
Trust scoring
How the 0–80 score is calculated and how to set
min_score for your risk tolerance.CI integration
Set up SCAL-P in GitHub Actions or any CI system that reads exit codes.