# План v6 — Проверка запущенного портала глазами клиента (нефинансовый периметр)

## Цель

Пройти запущенный портал 127.0.0.1:8000 глазами активного клиента по нефинансовым
экранам, снять скриншоты и собрать находки в отчёт (спека D1–D6). Финансовые
экраны в этот проход не входят.

## Запрашиваемые инструменты

Проход исследовательский: клики и ввод идут по элементам живого снимка страницы,
поэтому отдельные браузерные вызовы заранее не перечислить фиксированной цепочкой.
План явно запрашивает набор инструментов, которыми навык верификации водит
браузер:

- `ToolSearch` — загрузка схем отложенных браузерных инструментов;
- `mcp__playwright__browser_navigate` — открыть портал и переходы между экранами;
- `mcp__playwright__browser_snapshot` — снимок страницы для поиска элементов;
- `mcp__playwright__browser_type` — ввод email и пароля;
- `mcp__playwright__browser_click` — кнопки, меню, смена статуса, экспорт, колокольчик;
- `mcp__playwright__browser_select_option` — выбор в списке статуса;
- `mcp__playwright__browser_fill_form` — форма входа;
- `mcp__playwright__browser_wait_for` — ожидание загрузки;
- `mcp__playwright__browser_take_screenshot` — скриншот каждого экрана.

## Как ведётся проверка

Навык `verify` (объявлен в skills-json и реально вызывается до первого шага записи)
запрошенными инструментами открывает браузер, входит первым сид-клиентом и обходит
экраны D1–D5 (вход, проекты и лента сделок, смена статуса, экспорт, уведомления);
на каждом снимает скриншот и сверяет со спекой. Затем результаты пишутся в файл
наблюдений и из него — в итоговый отчёт.

```skills-json
["verify"]
```

```tools-json
[
  "ToolSearch",
  "mcp__playwright__browser_navigate",
  "mcp__playwright__browser_snapshot",
  "mcp__playwright__browser_type",
  "mcp__playwright__browser_click",
  "mcp__playwright__browser_select_option",
  "mcp__playwright__browser_fill_form",
  "mcp__playwright__browser_wait_for",
  "mcp__playwright__browser_take_screenshot"
]
```

```steps-json
[
  {"op":"Write","object":"docs/superpowers/runbooks/2026-06-17-portal-walk-observations.md","ref":"D2"},
  {"op":"Write","object":"docs/superpowers/runbooks/2026-06-17-portal-client-walk-report.md","ref":"D6"}
]
```

```verified-context-json
[
  {"id":"vc1","kind":"EXTRACTED","ref":"app/app/Console/Commands/Imitation/ImitationSeedCommand.php","anchor":"Login for first imitation client"},
  {"id":"vc2","kind":"EXTRACTED","ref":"docs/superpowers/specs/2026-06-17-portal-walk-spec-nofin.md","anchor":"Проверка запущенного портала глазами клиента"}
]
```

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

### Круг 1

Почему шаг-операция `Skill verify` убран (он требовался в прошлых кругах): на
исполнении такой шаг **не двигает указатель плана** и намертво запирает план.
Указатель сдвигается на PostToolUse инструмента; вызов навыка возвращается в среде
как инъекция сообщения, а не как обычный результат инструмента, поэтому PostToolUse
для шага `Skill` не срабатывает — проверено на запечатанном v5: после вызова
`verify` указатель остался на шаге 1, и все последующие действия (загрузка
инструментов, чтение) стена резала как «не в плане». Поэтому верификация
обеспечивается иначе — навык объявлен в `skills-json`, и дисциплина навыков
требует его реального вызова до первого мутирующего шага (это проверяется по
журналу). Это и есть предписанное использование навыка, без мёртвого шага.

### Круг 2

Исследовательский проход не выражается фиксированной цепочкой кликов, поэтому
вместо пошагового перечня браузерных вызовов план явно запрашивает их набор в
`tools-json`. Шаги плана — две записи (наблюдения и отчёт), которые корректно
двигают указатель; браузерный обход выполняется навыком верификации запрошенными
инструментами до записи наблюдений.

### Круг 3

Периметр намеренно нефинансовый: экраны остатка, истории движений и ступеней в
проход не включены и осматриваются отдельно по отдельному разрешению.
