The root .gitignore had a blanket `package-lock.json` rule that prevented the docs lock file from being committed. Change it to `/package-lock.json` (root-only) and commit the generated lock file so `npm ci` and setup-node cache work in the docs workflow.