| 1 | # Harness smoke via MCP (CIDE) |
| 2 | |
| 3 | Когда CIDE запущен с in-proc IDE MCP (`ide_execute_command`) — **да**, smoke и мониторинг harness делаются через MCP. |
| 4 | **Нет** через MCP: правка `[agent.harness]` — только `%LocalAppData%\CascadeIDE\settings.toml` или `Setup-CideHarness.ps1 -Apply`. |
| 5 | |
| 6 | ## Prerequisites |
| 7 | |
| 8 | - `agent_notes.config_path` в settings (тот же TOML, что Cursor `--config`) |
| 9 | - Cloud FM или Ollama для MAF-чата (smoke L0 не требует FM) |
| 10 | - `[agent.harness]` из overlay (L0, checkpoint, auto-verify) |
| 11 | |
| 12 | ## Commands (ide_execute_command) |
| 13 | |
| 14 | | Command | Проверяет | |
| 15 | |---------|-----------| |
| 16 | | `read_hot_context` | L0 in-proc (P0.1) | |
| 17 | | `ide_agent_status` | `harness_*`, `verify_epoch_ui_stale` (P2.3) | |
| 18 | | `ide_agent_verify` | AEE ladder после `.cs` edit (P0.4) | |
| 19 | | `chat_export_readable` | checkpoint export path | |
| 20 | |
| 21 | ### ide_agent_status (ожидаемые поля) |
| 22 | |
| 23 | ```json |
| 24 | { |
| 25 | "harness_session_user_turn_count": 0, |
| 26 | "harness_checkpoint_due": false, |
| 27 | "harness_next_checkpoint_at_turn": 40, |
| 28 | "harness_hot_context_loaded": true, |
| 29 | "verify_epoch_ui_stale": false |
| 30 | } |
| 31 | ``` |
| 32 | |
| 33 | ## UI-only (не MCP) |
| 34 | |
| 35 | | Поведение | Где видно | |
| 36 | |-----------|-----------| |
| 37 | | Checkpoint @40 user turns | сообщение `[harness checkpoint · …]` в Intercom | |
| 38 | | ADCM pressure @60 msgs/topic | `[harness ADCM · context pressure · …]` | |
| 39 | | `/topic create` brief | шаблон в поле ввода | |
| 40 | | Auto-verify после `.cs` | AEE панель / `ide_agent_status.active` | |
| 41 | |
| 42 | ## Cursor ACP vs MAF in-proc |
| 43 | |
| 44 | При `suppress_acp_ide_stdio_inject = true` (default) Cursor ACP **не** поднимает второй `CascadeIDE.exe`. |
| 45 | Агент в MAF/cloud режиме вызывает те же команды in-proc — **это и есть «режим MCP»** без stdio-дубликата. |
| 46 | |
| 47 | Полный loopback HTTP ([ADR 0082](../adr/0082-acp-ide-mcp-loopback-single-process.md)) — backlog; interim = suppress + in-proc. |
| 48 | |
| 49 | ## Agent rules |
| 50 | |
| 51 | Скопируй [harness-maf-project-rules.sample.md](harness-maf-project-rules.sample.md) → `.cascade-ide/maf-project-rules.md` в workspace. |
| 52 | |