docs: добавить канонический бэклог оставшихся этапов (docs/TODO.md)

Консолидация дорожной карты по классам (2D-чертёж/сборки/деталь) + сквозное/тех.долг
со статусами (☐/▣/). Ссылки из CLAUDE.md и NEXT-SESSION.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-27 21:27:49 +03:00
parent 23341092cb
commit ecabaa1828
3 changed files with 73 additions and 1 deletions
+2 -1
View File
File diff suppressed because one or more lines are too long
+68
View File
@@ -0,0 +1,68 @@
# 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`).
Обозначение «прилипает» к рёбрам/окружностям вида и обновляется с моделью, а не задаётся координатами.
Самый ценный следующий шаг («умный» чертёж). Требует спайка: перечисление геометрии вида
(`IDrawingContainer`: LineSegments/Circles/Arcs), выбор объекта по точке/индексу, связывание.
-**Рамка/формат листа** (A4/A3…, ориентация) — `ILayoutSheet`/`SheetFormat`. Быстрый фундаментальный
шаг, вероятно без спайка. Делает чертёж «правильным» по ГОСТ.
-**Выноски** (`Leaders`) — `ISymbols2DContainer.Leaders` (полки-выноски с текстом).
-**Обозначения баз** (`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-ЧЕРТЁЖ».*
+3
View File
@@ -8,6 +8,9 @@
пушь в `main`, каждую фичу (спек и реализацию) прогоняй через ревью Codex. Для интеграционных
тестов **КОМПАС-3D должен быть запущен**.
**Оставшиеся этапы — канонический бэклог: [`docs/TODO.md`](TODO.md)** (по классам + сквозное; верх раздела
«2D-ЧЕРТЁЖ» = следующий приоритет). Обновляй его по завершении каждого инкремента.
**Сначала сориентируйся** — этот промт задаёт направление, а не заменяет источники:
- `CLAUDE.md` — текущее состояние, проверенные факты реализации и конвенции (STA-поток, COM-QI
контейнеры, отложенный долг по RCW, команды сборки/тестов, инфраструктура интеграционных тестов).