.husky/pre-commit: убран npm run deps (full graph остаётся в npm run verify и CI). npx lint-staged заменён прямым вызовом node_modules/.bin/lint-staged с проверкой наличия: при отсутствии коммит блокируется понятным сообщением, tool не скачивается.
scripts/test-pre-commit.mjs: новый сценарий — hook не вызывает npx/npm и блокируется без lint-staged; первый сценарий использует установленный локальный бинарник.
engineering.md: строка про pre-commit (без npx, full graph только в verify/CI).
README.md: описание поведения hook.
Почему не npx --no
Проверено: npx --no <missing> всё равно ходит в registry (E404), то есть не гарантирует отсутствие установки. Прямой путь к node_modules/.bin не выполняет сетевых запросов и падает сразу (exit 127).
Реальный Markdown-only коммит: gitleaks → lint-staged «нет подходящих файлов» → готово за ~0.7 с, без deps.
npm run verify — exit 0 (66 файлов, 435 тестов, depcruise без нарушений, Storybook собран).
package.json не менялся: lint-staged уже объявлен напрямую (17.5.1).
Closes #62.
## Что изменено
- `.husky/pre-commit`: убран `npm run deps` (full graph остаётся в `npm run verify` и CI). `npx lint-staged` заменён прямым вызовом `node_modules/.bin/lint-staged` с проверкой наличия: при отсутствии коммит блокируется понятным сообщением, tool не скачивается.
- `scripts/test-pre-commit.mjs`: новый сценарий — hook не вызывает `npx`/`npm` и блокируется без lint-staged; первый сценарий использует установленный локальный бинарник.
- `engineering.md`: строка про pre-commit (без `npx`, full graph только в verify/CI).
- `README.md`: описание поведения hook.
## Почему не `npx --no`
Проверено: `npx --no <missing>` всё равно ходит в registry (E404), то есть не гарантирует отсутствие установки. Прямой путь к `node_modules/.bin` не выполняет сетевых запросов и падает сразу (exit 127).
## Проверка
- `node --test scripts/test-pre-commit.mjs` — 2 passed.
- Регрессия: со старым hook новый сценарий падает.
- Реальный Markdown-only коммит: gitleaks → lint-staged «нет подходящих файлов» → готово за ~0.7 с, без deps.
- `npm run verify` — exit 0 (66 файлов, 435 тестов, depcruise без нарушений, Storybook собран).
`package.json` не менялся: `lint-staged` уже объявлен напрямую (17.5.1).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #62.
Что изменено
.husky/pre-commit: убранnpm run deps(full graph остаётся вnpm run verifyи CI).npx lint-stagedзаменён прямым вызовомnode_modules/.bin/lint-stagedс проверкой наличия: при отсутствии коммит блокируется понятным сообщением, tool не скачивается.scripts/test-pre-commit.mjs: новый сценарий — hook не вызываетnpx/npmи блокируется без lint-staged; первый сценарий использует установленный локальный бинарник.engineering.md: строка про pre-commit (безnpx, full graph только в verify/CI).README.md: описание поведения hook.Почему не
npx --noПроверено:
npx --no <missing>всё равно ходит в registry (E404), то есть не гарантирует отсутствие установки. Прямой путь кnode_modules/.binне выполняет сетевых запросов и падает сразу (exit 127).Проверка
node --test scripts/test-pre-commit.mjs— 2 passed.npm run verify— exit 0 (66 файлов, 435 тестов, depcruise без нарушений, Storybook собран).package.jsonне менялся:lint-stagedуже объявлен напрямую (17.5.1).228b66164ftocb97ced66c