# Agent Result Loop setup

Настройка полного цикла «задача → patch → проверки → форма → скриншот/smoke».

## Prerequisites

- Профиль 1С в режиме `dev` или `test` с `edtExportPath` или `gitPath`.
- Playwright dependencies (`npx playwright install chromium` на сервере agent feedback).
- Approval id для write tools (Web Console → Approvals или tool `approval.create`).
- Опционально: Designer/EDT CLI в PATH для build/load extension.

## Шаги loop

| Step | Когда |
|------|--------|
| `apply-patch` | Если передан `proposalId` |
| `reindex-context` | Если `reindexAfterPatch: true` — BSL/forms/extensions + semantic index |
| `metadata-impact-preview` | Если `metadataImpactObjectName` + `metadataImpactOperation` |
| `bsl-checks` | Если `bslCheckFiles` не пуст |
| `edt-validation` | Если `runEdtValidation: true` |
| `build-extension` / `load-extension` | Если заданы пути extension |
| `open-form` / `screenshot` / `ui-smoke` | Если задана форма и smoke-критерии |

## Параметры `create_agent_result_loop` / `run_agent_result_loop`

Обязательные gates: `confirmed`, `businessReason`, `changeSummary`, `rollbackPlan`, `approvalId`, `idempotencyKey`.

Дополнительно для metadata/extension:

- `reindexAfterPatch` — после apply пересобрать контекст (`discover`-уровень reindex)
- `metadataImpactObjectName` — имя объекта метаданных
- `metadataImpactOperation` — `create` | `rename` | `adopt`
- `metadataImpactNewName` — для `rename`

## Metadata rename flow

1. `preview_metadata_refactor_impact` (operation `rename`)
2. `propose_metadata_rename` → proposal
3. `create_agent_result_loop` с `proposalId`, `reindexAfterPatch: true`, `metadataImpactObjectName`, `metadataImpactOperation: "rename"`, `metadataImpactNewName`
4. `run_agent_result_loop` с теми же флагами

## Пошаговая настройка (форма)

1. Создайте connection profile (file или published + export path).
2. Переключите активную базу: tool `switch_active_profile`.
3. Проиндексируйте BSL: `discover_1c_context` или `bsl.index_project`.
4. Сформируйте patch: `propose_form_change` / `create_module_patch` / `create_symbol_patch`.
5. Создайте loop: tool `create_agent_result_loop` с `proposalId`, путями extension и URL формы.
6. Запустите: `run_agent_result_loop` с `approvalId`, `idempotencyKey`, `businessReason`, `confirmed: true`.

## Copy-ready MCP prompt

```
Добавь кнопку в форму контрагента. Используй prompt add-form-button.
Сначала read-only контекст, затем patch в dev/test, затем run_agent_result_loop.
```

## Проверка tools/list

Убедитесь, что доступны:

- `create_agent_result_loop`, `run_agent_result_loop`, `get_agent_result_loop_status`
- `open_1c_form`, `get_1c_form_screenshot`, `run_1c_ui_smoke_test`

## Типовые ошибки

| Issue | Fix |
|-------|-----|
| Playwright not installed | `npx playwright install chromium` |
| Patch root missing | Задайте `edtExportPath` / `gitPath` в profile |
| Approval rejected | Создайте approval для tool и profile |
| Production profile | Write tools заблокированы policy для `prod` |
| Steps mismatch | `run_agent_result_loop` args must match persisted plan |

## Security warning

Agent Result Loop применяет изменения только к exported files и test automation. Не указывайте production `environment`.

## Related docs

- [METADATA_EXTENSION_EDIT.md](./METADATA_EXTENSION_EDIT.md)
- [EDT_DESIGNER_EXPORT.md](./EDT_DESIGNER_EXPORT.md)
- [SECURITY_MODEL.md](./SECURITY_MODEL.md)
- [TROUBLESHOOTING.md](./TROUBLESHOOTING.md)
