phase1(hooks): lefthook auto-install + Pint + Larastan pre-commit hooks
Закрывает Tooling §10.1 шаги 10/11 («хуки в .claude/settings.json для Pint/Larastan» — реализация через lefthook, как и было обещано в CLAUDE.md §3.5: «Pre-commit (gitleaks, link-check) — не здесь, отдельно через git hooks (lefthook)»). Добавлено в lefthook.yml: - pre-commit job #5 «pint»: glob app/**/*.php, root app/, `php vendor/bin/pint {staged_files}` + stage_fixed: true (авто-fix форматирования PSR-12 на staged PHP) - pre-commit job #6 «larastan»: glob app/**/*.php, root app/, `php vendor/bin/phpstan analyse --no-progress --memory-limit=512M` (полный анализ при любой правке *.php — phpstan нужен граф классов, точечный анализ только staged невозможен) Хуки установлены через `npx lefthook install` — .git/hooks/pre-commit и .git/hooks/pre-push сгенерированы. Smoke-test: - pint --test (на default scaffold) → passed - phpstan analyse --no-progress → 0 ошибок выше baseline (3 в baseline) Это опционально-блокирующий слой: при коммите .php — Pint авто-форматирует, Larastan ловит ошибки выше phpstan-baseline.neon. Обход — `LEFTHOOK=0 git commit` (использовать только для emergency). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -54,6 +54,29 @@ pre-commit:
|
||||
Stylelint нашёл проблемы в CSS прототипа.
|
||||
Запусти `npx stylelint --fix <file>` где возможно.
|
||||
|
||||
# 5. Pint — code style PHP (фаза 1, Прил. Н #11). Авто-fix на staged .php в app/.
|
||||
- name: pint
|
||||
glob: "app/**/*.php"
|
||||
root: "app/"
|
||||
run: php vendor/bin/pint {staged_files}
|
||||
stage_fixed: true
|
||||
fail_text: |
|
||||
Pint не смог отформатировать какие-то файлы (синтаксическая ошибка PHP?).
|
||||
Запусти `cd app && composer pint` локально, посмотри вывод.
|
||||
|
||||
# 6. Larastan — статанализ PHP (фаза 1, Прил. Н #12). Полный анализ при любой правке
|
||||
# *.php в app/ (точечный анализ только staged-файлов невозможен — phpstan нужен граф
|
||||
# классов). Скорость: ~5-10 с на default scaffold + baseline 3.
|
||||
- name: larastan
|
||||
glob: "app/**/*.php"
|
||||
root: "app/"
|
||||
run: php vendor/bin/phpstan analyse --no-progress --memory-limit=512M
|
||||
fail_text: |
|
||||
Larastan нашёл новые ошибки выше baseline.
|
||||
Запусти `cd app && composer stan` локально и поправь.
|
||||
Если ошибка ложная — обнови `app/phpstan-baseline.neon`
|
||||
(см. feedback_environment.md п.25 — генерация baseline в 2 шага).
|
||||
|
||||
# Pre-push: проверки перед git push (медленнее, но реже запускаются)
|
||||
pre-push:
|
||||
parallel: false
|
||||
|
||||
Reference in New Issue
Block a user