Scope: no tracked package-lock.json anywhere in the estate; npm-avoidant codified.
Mechanism: add package-lock.json to canonical .gitignore in rsr-template-repo + v3-templater, propagate to consumers, gitbot rejects re-introduction. docs/JS-RUNTIME-POLICY.adoc references purge-node-modules.sh.
Acceptance: 0 tracked package-lock.json estate-wide; template .gitignore covers it; enforcement wired.
Parent: #66
Scope: no tracked package-lock.json anywhere in the estate; npm-avoidant codified.
Mechanism: add package-lock.json to canonical .gitignore in rsr-template-repo + v3-templater, propagate to consumers, gitbot rejects re-introduction. docs/JS-RUNTIME-POLICY.adoc references purge-node-modules.sh.
Acceptance: 0 tracked package-lock.json estate-wide; template .gitignore covers it; enforcement wired.
Parent: #66