# План v4: регенерация larastan baseline (CWD-устойчивый)

## Цель

Перезаписать `app/phpstan-baseline.neon` текущим набором сообщений larastan, чтобы
поглотить дрейф lead-region и шум вывода типов Pest, затем убедиться, что
`composer stan` проходит чисто. Изменяется только baseline-конфиг; код приложения
не трогается. Опирается на спеку
[2026-06-16-larastan-baseline-regen.md](../specs/2026-06-16-larastan-baseline-regen.md)
(D1 — контракт регенерации, D2 — критерий приёмки).

**Откат гарантирован git.** `phpstan-baseline.neon` версионируется (tracked, в HEAD).
Первый шаг (без смены каталога) подтверждает, что рабочая копия совпадает с HEAD —
значит зафиксированная версия является валидной точкой восстановления. Откат после
перезаписи: `git checkout HEAD -- app/phpstan-baseline.neon`.

```skills-json
[]
```

```steps-json
[
  {
    "op": "Bash",
    "object": "git diff --exit-code --quiet app/phpstan-baseline.neon",
    "ref": "D1"
  },
  {
    "op": "Bash",
    "object": "cd app && composer stan -- --generate-baseline",
    "ref": "D1"
  },
  {
    "op": "Bash",
    "object": "composer stan",
    "ref": "D2"
  }
]
```

```verified-context-json
[
  {
    "id": "phpstan-config",
    "kind": "EXTRACTED",
    "ref": "app/phpstan.neon",
    "anchor": "checkModelProperties: true"
  },
  {
    "id": "baseline-file",
    "kind": "EXTRACTED",
    "ref": "app/phpstan-baseline.neon",
    "anchor": "ignoreErrors:"
  }
]
```
