Que massa esse tab! Eu não conhecia o comando npm ci, pensei como muitos que seria algo relacionado ao Continuous Integrator.
Sim, sobre package-lock.json, eu sempre coloco ele no controle de versão. E recentemente tenho usado o pnpm, que tem um arquivo de manifesto das dependências das dependências diferente do npm, e a experiência tem sido muito legal!!
E outra coisa, eu acho que nesse trecho do seu tab:
"O package-lock.json sabe quais as dependências imediatas que tu especificou, mas só o package-lock.json sabe que dependências estas dependências estão usando."
Seria primeiro o package.json e depois o package-lock.json, certo? Se não for, desconsidera.
Ele arrumou! ^^