# План — middleware безопасных HTTP-заголовков (TDD)

## Цель

Реализовать по TDD middleware `SecurityHeaders` (X-Frame-Options / X-Content-Type-Options
/ Referrer-Policy), зарегистрировать на web-группу в `bootstrap/app.php`, закрыть
ZAP Medium «Missing Anti-clickjacking Header». CSP вне объёма. Затрагивается только
backend (новый middleware + тест + правка bootstrap); фронт и схема не трогаются.

```skills-json
["test-driven-development"]
```

```steps-json
[
  {"op":"Write","object":"app/tests/Feature/SecurityHeadersTest.php","ref":"H3"},
  {"op":"Bash","object":"php app/artisan test tests/Feature/SecurityHeadersTest.php","ref":"H3"},
  {"op":"Write","object":"app/app/Http/Middleware/SecurityHeaders.php","ref":"H1"},
  {"op":"Edit","object":"app/bootstrap/app.php","ref":"H2"},
  {"op":"Bash","object":"php app/artisan test tests/Feature/SecurityHeadersTest.php","ref":"H3"}
]
```

```verified-context-json
[
  {"id":"vc1","kind":"EXTRACTED","ref":"app/bootstrap/app.php","anchor":"withMiddleware(function"},
  {"id":"vc2","kind":"EXTRACTED","ref":"docs/superpowers/specs/2026-06-17-security-headers-mw-spec-v2.md","anchor":"middleware безопасных HTTP-заголовков"}
]
```

## Переговоры

### Круг 1

TDD-поток: тест RED (заголовков ещё нет) → создать middleware → зарегистрировать в
web-группе → тест GREEN. Шаги: Write теста, Bash прогон (ожидаемо RED), Write
middleware, Edit `bootstrap/app.php`, Bash прогон (ожидаемо GREEN). Затрагивается
только backend (новый класс + тест + 2 строки в bootstrap); фронт `app/resources/js`,
схема БД и git не трогаются — пересечения с параллельной F-P1-сессией нет. Навык
`test-driven-development` объявлен и будет вызван до первого мутирующего шага.

### Круг 2

Прошу наставника зафиксировать содержательную forward-`recommendation`: подтвердить
корректность TDD-порядка (RED перед реализацией), достаточность покрытия (три
заголовка на публичном `/`), и что CSP осознанно вне объёма. Это чтобы вердикт был
содержательным, а не с пустым слотом рекомендации (квирк no_mentor_go).
