# Supply Chain — Derived Rules > Derives from `domains/security/first-principles.md` P10 (Surface Minimization), P3 (Defense in Depth), P7 (Auditability). ## Dependencies are Attack Surface (P10) - Every dependency is code you did not write but must trust. Minimize it. - A dependency you do not need is a vulnerability you do not have. - Audit dependencies regularly. Remove unused ones (`npm prune`, `pip-autoremove`). ## Lockfiles (P1 Correctness, P5 Reversibility) - Pin exact versions in a lockfile (`package-lock.json`, `yarn.lock`, `Pipfile.lock`, `Cargo.lock`). - Commit the lockfile. A reproducible build requires a committed lock. - `npm ci` (not `npm install`) in CI. `pip install -r requirements.txt` with pinned versions. ## Integrity (P6 Crypto Correctness) - Subresource integrity for web assets: `