|
| 1 | +# ПОЛНЫЙ РЕ-АНАЛИЗ ПРОЕКТА CRT: ПЛАНЫ vs РЕАЛЬНОСТЬ |
| 2 | + |
| 3 | +**Дата:** 2026-06-03 22:50 MSK |
| 4 | +**Версия:** Финальный аудит |
| 5 | + |
| 6 | +--- |
| 7 | + |
| 8 | +## 1. СТАТУС РЕАЛИЗАЦИИ ПО ВСЕМ ПЛАНАМ |
| 9 | + |
| 10 | +### 1.1 Super Debug Logger (новая задача, исполнена 3 июня) |
| 11 | + |
| 12 | +| Компонент | Статус | Доказательство | |
| 13 | +| ------------------------------------------------------------- | :----: | ---------------------------------- | |
| 14 | +| Модуль `superDebug.ts` (6782 байта) | ✅ | `src/core/tools/ref/superDebug.ts` | |
| 15 | +| BaseTool.ts — импорт и вызовы | ✅ | git diff подтверждает | |
| 16 | +| ref/index.ts — инструментирован | ✅ | `import ... from "./superDebug"` | |
| 17 | +| ref/selector.ts — инструментирован | ✅ | info/successCrt добавлены | |
| 18 | +| ref/transform.ts — инструментирован | ✅ | info/successCrt добавлены | |
| 19 | +| ref/sources/\*.ts — все 4 инструментированы | ✅ | chat, file, terminal, tool | |
| 20 | +| NativeToolCallParser.ts — инструментирован | ✅ | import из superDebug | |
| 21 | +| Task.ts — инструментирован | ✅ | import из superDebug | |
| 22 | +| presentAssistantMessage.ts — инструментирован | ✅ | import из superDebug | |
| 23 | +| base-provider.ts — инструментирован | ✅ | import из superDebug | |
| 24 | +| ApplyDiffTool.ts — params расширены (ref/multi_ref/transform) | ✅ | git diff подтверждает | |
| 25 | +| **14 файлов импортируют superDebug** | ✅ | grep подтверждает | |
| 26 | + |
| 27 | +### 1.2 Plan B (из CRT-DEFINITIVE-PLAN.md) |
| 28 | + |
| 29 | +| Пункт | Описание | Статус | Доказательство | |
| 30 | +| ------- | --------------------------------------------------------- | :-----------------: | ----------------------------------------- | |
| 31 | +| **B.1** | Убрать CRT из `required` в 7 native-tool схемах | ✅ | git diff 0 = уже в коммите | |
| 32 | +| **B.2** | Экранировать CRT в `convertToolSchemaForOpenAI()` | ✅ | git diff в base-provider.ts | |
| 33 | +| **B.3** | Переключить chat.ts на Layer 2 (`getEffectiveApiHistory`) | ✅ | Файл использует getEffectiveApiHistory | |
| 34 | +| **B.4** | Добавить инструкцию в system prompt | ❌ **НЕ ВЫПОЛНЕНО** | Ни один system prompt файл не изменён | |
| 35 | +| B.5 | Аудит рантайма (верифицировано — безопасно) | ✅ | NativeToolCallParser + BaseTool проверены | |
| 36 | + |
| 37 | +### 1.3 6 Багов из CRT-CLIPBOARD-BUG-REPORT.md |
| 38 | + |
| 39 | +| Баг | Severity | Описание | Статус | |
| 40 | +| ------ | :------: | ---------------------------------------- | :------------------------------------------------------------: | |
| 41 | +| **#1** | 🔴 КРИТ | AST-авторасширение (`focus`) не работает | ❌ **НЕ ИСПРАВЛЕН** — никогда не было подключено к tree-sitter | |
| 42 | +| **#2** | 🔴 КРИТ | `source=chat` полностью не работает | ✅ **ИСПРАВЛЕН** — через Plan B.3 | |
| 43 | +| **#3** | 🔴 КРИТ | `multi_ref` не работает | ❓ НЕ ТЕСТИРОВАЛСЯ после Plan B — schemas есть, но тестов нет | |
| 44 | +| **#4** | 🟡 СРЕД | Inline `{{ref:...}}` не работает | ❌ БАГ ПРОМПТА — код работает, модель не знает синтаксис | |
| 45 | +| **#5** | 🟡 СРЕД | `apply_diff` с `ref` без `diff` | ✅ **ИСПРАВЛЕН** — ApplyDiffTool.ts расширен | |
| 46 | +| **#6** | 🟢 НИЗК | `startAnchor`/`endAnchor` | ❓ НЕ ТЕСТИРОВАЛСЯ — selector.ts их поддерживает | |
| 47 | + |
| 48 | +### 1.4 Из FINAL-DISCOVERY-REPORT.md (секция "Требует доработки") |
| 49 | + |
| 50 | +| Пункт | Статус | Комментарий | |
| 51 | +| ---------------------------------------- | :----: | ------------------------------------ | |
| 52 | +| AST Auto-Expansion (focus → tree-sitter) | ❌ | Никогда не реализовано | |
| 53 | +| Virtual Content Grid (VCG) | ❌ | Никогда не реализовано | |
| 54 | +| Inline MCP Ref Injection `{{ref:...}}` | ❌ | Баг промпта (по словам пользователя) | |
| 55 | +| Ephemeral Sandbox Sub-Sessions | ❌ | Будущая фича (v4.1) | |
| 56 | +| Система обратной связи при неудаче | ⚠️ | Частично — superDebug.error() | |
| 57 | +| Smart Disambiguation | ❌ | Не реализовано | |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | +## 2. ЧТО КОНКРЕТНО НЕ СДЕЛАНО (НО БЫЛО ЗАПЛАНИРОВАНО) |
| 62 | + |
| 63 | +### ⚠️ КРИТИЧЕСКИЕ ПРОБЕЛЫ |
| 64 | + |
| 65 | +#### 1. AST Auto-Expansion (`focus` → tree-sitter) |
| 66 | + |
| 67 | +**Запланировано:** В CRT-DEFINITIVE-PLAN.md раздел A.1 (Plan A), FINAL-DISCOVERY-REPORT.md раздел 4. |
| 68 | +**Реальность:** `focus` всё ещё работает как `selector` (текстовый поиск). Несмотря на наличие `src/services/tree-sitter/` в кодовой базе и VS Code API `vscode.executeDocumentSymbolProvider`, ни один из них не вызвается из `resolveContentRef()`. Поле `focus` добавлено в `ContentRef`, но логика AST-расширения отсутствует. |
| 69 | + |
| 70 | +**Нужно:** В `selector.ts` → `resolveContentRef()` добавить вызов AST-парсера перед текстовым fallback. |
| 71 | + |
| 72 | +#### 2. Inline `{{ref:...}}` — обучение модели (БАГ ПРОМПТА) |
| 73 | + |
| 74 | +**Запланировано:** В CRT-DEFINITIVE-PLAN.md → B.4 (system prompt), в CRT-CLIPBOARD-BUG-REPORT.md → 8.1 (quick wins). |
| 75 | +**Реальность:** Ни один system prompt файл не изменён. Модель не знает синтаксис `{{ref:source=...,ref=...,focus=...}}`. |
| 76 | + |
| 77 | +**Нужно:** Обновить system prompt (найти файл, вероятно `src/core/prompts/system.ts` или `sections/`). |
| 78 | + |
| 79 | +**Где править:** Найти system prompt файл через `grep -r "ref" src/core/prompts/system.ts` или search_files. |
| 80 | + |
| 81 | +### 🟡 СРЕДНИЕ ПРОБЕЛЫ |
| 82 | + |
| 83 | +#### 3. Virtual Content Grid (VCG) |
| 84 | + |
| 85 | +**Запланировано:** В CRT-DEFINITIVE-PLAN.md → A.1, FINAL-DISCOVERY-REPORT.md → инновация 2. |
| 86 | +**Реальность:** Никто не начинал. Ни `virtual-content-grid.ts`, ни `api_conversation_history.idx`. |
| 87 | + |
| 88 | +#### 4. Smart Disambiguation |
| 89 | + |
| 90 | +**Запланировано:** В CRT-IMPL-PLAN.md → раздел 10.2. |
| 91 | +**Реальность:** Не реализовано. При неоднозначном совпадении (3+ функции с одним именем) берётся первое. |
| 92 | + |
| 93 | +#### 5. Multi-ref тестирование |
| 94 | + |
| 95 | +**Запланировано:** В CRT-AGENT-TEST-GUIDE.md → Фаза 2. |
| 96 | +**Реальность:** Параметр `multi_ref` добавлен в schemas, но end-to-end тестов нет. |
| 97 | + |
| 98 | +--- |
| 99 | + |
| 100 | +## 3. ЧТО УЖЕ РАБОТАЕТ (ПОСЛЕ ВСЕХ ИЗМЕНЕНИЙ) |
| 101 | + |
| 102 | +### Полностью функционально: |
| 103 | + |
| 104 | +- ✅ **source=file + selector** — точный/нормализованный/fuzzy поиск |
| 105 | +- ✅ **source=file + startAnchor/endAnchor** — anchor pair resolution |
| 106 | +- ✅ **source=chat** — Layer 2 через `getEffectiveApiHistory()` |
| 107 | +- ✅ **source=terminal** — чтение command-output артефактов |
| 108 | +- ✅ **source=tool** — чтение tool_result из истории |
| 109 | +- ✅ **Transform Engine** — replace → prepend → wrap → append → join |
| 110 | +- ✅ **superDebug логгер** — 14 файлов, 2 лог-файла в корне |
| 111 | +- ✅ **Strict mode** — экранирование CRT-параметров в OpenAI |
| 112 | +- ✅ **Graceful fallback** — при ошибке ref используется оригинальный параметр |
| 113 | + |
| 114 | +### Частично: |
| 115 | + |
| 116 | +- ⚠️ **focus** — работает как selector (текст, не AST) |
| 117 | +- ⚠️ **multi_ref** — schemas есть, transform есть, e2e не проверен |
| 118 | +- ⚠️ **Обратная связь в tool_result** — через superDebug, не в user message |
| 119 | + |
| 120 | +--- |
| 121 | + |
| 122 | +## 4. ПРИОРИТЕТНЫЕ НЕДЕЛАННЫЕ ЗАДАЧИ |
| 123 | + |
| 124 | +| # | Задача | Где править | Время | Зависимости | |
| 125 | +| --- | --------------------------------------------------------------------------------------------------- | -------------------------------------------- | :-----: | ------------------------------- | |
| 126 | +| 1 | **System prompt (B.4)** — научить модель `{{ref:...}}` | `src/core/prompts/system.ts` или `sections/` | 30 мин | Нет | |
| 127 | +| 2 | **AST Auto-Expansion** — `focus` → `resolveAstBlock()` через `vscode.executeDocumentSymbolProvider` | `ref/selector.ts` + `ref/sources/ast.ts` | 4-6 ч | `ContentRef.focus` уже добавлен | |
| 128 | +| 3 | **Smart Disambiguation** — возвращать все совпадения при неоднозначности | `ref/selector.ts` | 2-3 ч | Зависит от #2 | |
| 129 | +| 4 | **VCG** — виртуальная сетка чата | `ref/vcg.ts` + chat.ts | 1-2 дня | #2 | |
| 130 | +| 5 | **Multi-ref e2e тесты** | `ref/__tests__/` | 1 ч | Нет | |
| 131 | + |
| 132 | +--- |
| 133 | + |
| 134 | +## 5. ИТОГ |
| 135 | + |
| 136 | +**Что сделано (последняя сессия):** |
| 137 | + |
| 138 | +- ✅ Супер-отладочный логгер (14 файлов, 2 лог-файла) |
| 139 | +- ✅ ApplyDiffTool.ts расширен для ref-параметров |
| 140 | +- ✅ Поле `focus` добавлено в `ContentRef` |
| 141 | +- ✅ Все source resolver'ы инструментированы |
| 142 | + |
| 143 | +**Что НЕ сделано из планов:** |
| 144 | + |
| 145 | +- ❌ System prompt (B.4) — модель не знает `{{ref:...}}` |
| 146 | +- ❌ AST Auto-Expansion — `focus` не подключён к tree-sitter |
| 147 | +- ❌ Virtual Content Grid — не начат |
| 148 | +- ❌ Smart Disambiguation — не реализован |
| 149 | + |
| 150 | +**Единственный открытый вопрос по словам пользователя:** |
| 151 | + |
| 152 | +> `Inline {{ref:...}}` — это не баг кода, а баг промпта — модель нужно научить генерировать корректный синтаксис. |
0 commit comments