# TODO проекта kompas3d-mcp Канонический бэклог **оставшихся** этапов. Что уже сделано — см. `CLAUDE.md` → «Current state» и `docs/ARCHITECTURE.md` §10 (дорожная карта). Метод работы над этапом — `docs/superpowers/NEXT-SESSION.md` (спайк → спек → ревью Codex → TDD → ревью реализации → доки → merge/push). Статус: ☐ не начато · ▣ частично · ⛔ заблокировано (недостижимо текущим COM API) · ✓ сделано --- ## Веха 2D-ЧЕРТЁЖ — текущий фокус (самый ценный растущий класс) Готово: стандартные виды, основная надпись (штамп), размеры (линейный/диаметральный/радиальный/угловой), текстовые обозначения (шероховатость, свободный текст, технические требования). - ▣ **Ассоциативная привязка размеров и шероховатости к геометрии вида** (`BaseObject`/`BaseObject1/2`). Обозначение «прилипает» к геометрии вида и обновляется с моделью, а не задаётся координатами. - ✓ Диаметральный/радиальный → **окружность** (`Circles`): флаг `associate` (инкремент 7); поиск по центру+радиусу (`CircularObjectMatch`), значение Ø/R из геометрии. - ☐ Привязка к **дуге** (`Arcs`) — нужен свой спайк (`IArc` как `BaseObject`; дуги одного родителя неотличимы по центру+радиусу — нужен ключ по углу/точке). - ☐ **Угловой** → пара отрезков (`BaseObject1/2`, `LineSegments`). - ☐ **Шероховатость** → `IRough.BaseObject` (привязка к контуру/ребру). - ⛔/☐ **Линейный** — у `ILineDimension` нет `BaseObject`; нужен иной механизм (отложено). - ✓ **Формат/ориентация листа** (A0–A5/user, книжная/альбомная) — `drawing_set_sheet_format` (инкремент 8); `ILayoutSheet.Format`/`ISheetFormat`. Остаётся: ☐ рамка/основная надпись по конкретному ГОСТ-стилю оформления (`LayoutLibraryFileName`/`LayoutStyleNumber`), несколько листов. - ✓ **Выноски** (`Leaders`) — `drawing_add_leader` (инкремент 9): остриё + полка с текстом, `shelfDirection`. Остаётся: ☐ многострочный/под-полкой текст (`TextUnderShelf`), несколько ответвлений, привязка к геометрии (`IBranchs.SetBaseObject`), спец. выноски (позиция/клеймо/маркер). - ☐ **Обозначения баз** (`Bases`) — `ISymbols2DContainer.Bases`. - ☐ **Допуски формы и расположения** (`Tolerances`) — `ISymbols2DContainer.Tolerances` (обычно в связке с базой). - ☐ (опц.) **Доп. виды**: разрез/сечение (`CutLines`), выносной элемент (`RemoteElements`), местный вид. - ☐ (опц.) **Осевые линии / обозначения центра** (`AxisLines`, `CentreMarkers`). ## Класс СБОРКИ Готово: вставка компонента (`assembly_add_component`), сопряжения `coincidence`/`distance`. - ☐ **Доп. типы сопряжений**: `parallel`, `perpendicular`, `concentric`, `angle`, `tangency` (`MateConstraintType`; механика `assembly_add_mate` готова — расширить enum `MateType` + валидаторы). - ☐ **Авто-позиционирование** компонентов (решатель сопряжений по нескольким связям). - ☐ **Спецификация** (`ISpecification`) — таблица состава изделия. ## Класс ДЕТАЛЬ / параметрика / геометрия Готово: насыщен (эскизы, формообразующие, массивы/зеркало, отверстия, уклон, переменные, STEP, прямое редактирование B-rep, структурный осмотр) — см. `ARCHITECTURE.md` §10. - ⛔ **Параметрические эскизы** (размер эскиза управляется переменной) — недостижимо через COM API (`ksCDimWithVariable` не конструируется из внешней автоматизации). См. `docs/superpowers/specs/2026-05-27-parametric-sketch-findings.md`. **Не повторять** без новой информации. - ☐ **Пакет E (вспомогательная геометрия, продолжение)**: ось, точка, плоскость по 3 точкам / по углу (`sketch_create_on_offset_plane` уже есть). - ▣ **Рассечение/перемещение тела как инструменты** (`SplitSolids`/`BodyRepositions`) — механика есть (`split_solid_by_plane`, `move_body` частично), полный workflow split-reposition не продуктизирован. - ☐ **Свойства документа** (`IPropertyMng`/`IPropertyKeeper`) — чтение/запись пользовательских свойств. ## Сквозное / инфраструктура / технический долг - ☐ **Утечки транзитных RCW** (долг v2-2): `EntityCollection`/`GetTopPart`/QI-контейнеры/`IRoughParams` и пр. не освобождаются → накопление за длинную сессию. Нужна единая стратегия (scope/`ReleaseComObject`), не точечно — поэтому отложено как самостоятельный этап. - ☐ **Насос сообщений / отмена**: `CancellationToken` не прерывает идущий COM-вызов; модальный диалог КОМПАС блокирует всю очередь STA-потока. - ☐ **Транспорт HTTP/SSE** — опция для удалённых клиентов (сейчас только stdio). ## Навык / методика - ☐ Промотировать проверенные приёмы 2D-чертежа из `usecases/` в навык `.claude/skills/kompas-3d/` (playbook «оформление чертежа»: виды → размеры → обозначения → штамп → тех. требования). --- *Обновлять по завершении каждого инкремента (отмечать ✓, добавлять вскрытые подэтапы). Источник приоритетов для следующей сессии — верх раздела «2D-ЧЕРТЁЖ».*