docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
9.2 KiB
name, description
| name | description |
|---|---|
| kompas-sdk-research | Делегирует поиск и чтение справки КОМПАС SDK субагенту на модели Sonnet. Источник — структурированная MD-база знаний docs/Kompas3D_SDK/ (статьи по интерфейсам с YAML-тегами, ищется обычным Grep/Read). Используй ВСЕГДА, когда нужно найти интерфейс/метод/константу COM API КОМПАС, его сигнатуру (Automation/COM), значения перечисления, единицы измерения или паттерн использования — не рой справку сам, передавай Sonnet и получай готовую выжимку. Триггеры: «найди в справке КОМПАС», «какая сигнатура у…», «какие значения enum…», «как через API КОМПАС сделать…», «что возвращает <метод>». |
kompas-sdk-research — делегирование исследования справки КОМПАС SDK Sonnet
Справка КОМПАС SDK сконвертирована в структурированную MD-базу знаний
docs/Kompas3D_SDK/ — статьи сгруппированы по COM-интерфейсам, с YAML-тегами для
поиска, чистым текстом, развёрнутыми блоками синтаксиса и реальными изображениями.
Этот навык позволяет Opus не тратить контекст на поиск: опиши, что нужно узнать, —
Sonnet прогонит Grep/Read по базе, прочитает нужную статью и вернёт сжатый ответ
(интерфейс, сигнатура, параметры, значения констант, источник).
Когда применять
- Нужна сигнатура метода (
SetSideParam,GetGabarit, …) — Automation/COM, параметры, возврат. - Нужны значения перечисления/констант (
Obj3dType,ksMassUnitsEnum,ST_MIX_*, стили линий). - Нужно найти интерфейс под задачу («чем построить массив», «как задать переменную»).
- Нужен паттерн «как через API сделать X» с цепочкой вызовов.
Не применяй для правки документации проекта — это делает навык docs-delegate.
Структура MD-базы docs/Kompas3D_SDK/
index.md — оглавление по 4 категориям со ссылками на статьи
interfaces/*.md — одна статья на интерфейс/тему; все методы и свойства как ## секции
enums/*.md — перечисления (пары «имя | значение | смысл»)
structures/*.md — структуры и параметрические интерфейсы
guides/*.md — концепции и руководства
resources/ — изображения (ссылки в статьях вида ../resources/имя.png)
Каждая статья начинается с YAML-фронтматтера: type (interface/enum/struct/guide),
api (api7/api5), domain (3d/2d/sketch/assembly/…), tags, sources (исходные *.html).
Имя файла статьи — имя интерфейса (iapplication.md, ksbossextrusiondefinition.md)
или читаемый слаг темы (приложение.md). Методы/свойства внутри — заголовки ## Имя - Описание.
База хранится в репозитории (канонический источник справки) — отдельная генерация не нужна.
Шаги выполнения
1. Сформулируй точный вопрос
Перед вызовом агента определи, что именно ищешь и в каком виде нужен ответ:
- объект поиска: интерфейс? метод? свойство? константа/enum? паттерн?
- желаемый результат: сигнатура? список значений? имя интерфейса? шаги вызова?
2. Запусти Agent с моделью Sonnet
Используй инструмент Agent со следующими параметрами:
subagent_type: "general-purpose"
model: "sonnet"
description: "Справка КОМПАС SDK: <одна строка что ищем>"
prompt: <см. шаблон ниже>
3. Шаблон промпта для Sonnet
Заполни <ВОПРОС> и передай Sonnet:
Ты — помощник по навигации в справке КОМПАС SDK в репозитории
kompas3d-mcp (MCP-сервер для КОМПАС-3D через COM API, .NET 8, C#).
Справка — это MD-база знаний docs/Kompas3D_SDK/: статьи по интерфейсам с
YAML-фронтматтером (type, api, domain, tags, sources); методы и
свойства — заголовки ## внутри статьи интерфейса.
Вопрос для исследования:
<ВОПРОС>
Инструменты (используй именно их, не веб):
- Grep по
docs/Kompas3D_SDK/— ищи имя интерфейса/метода/свойства, русское ключевое слово или тег. Имена методов — это заголовки## SetSideParam - …, поэтому поиск по имени метода сразу ведёт в нужную статью. - Read найденного
*.md— статья интерфейса содержит все его методы/свойства, блокиСинтаксис Automation:/Синтаксис COM:(в code-fence), параметры, примечания. docs/Kompas3D_SDK/index.md— оглавление по категориям, когда нужно осмотреть тему.
Полезные приёмы поиска:
- по перечислению:
Grep "ksMassUnitsEnum"или загляни вenums/; - фильтр по тегам в фронтматтере:
Grep "domain: \[.*3d",Grep "type: enum"; - веер по многим интерфейсам сразу:
Grep "IPart7|IDocument3D|IPart"поinterfaces/.
Точные числовые значения констант при необходимости сверяй в заголовках SDK:
C:\Program Files\ASCON\KOMPAS-3D v24 Home\SDK\Include\*.h (например ksConstants*.h, ldefin2d.h).
Важно — что в базе и чего нет:
- База содержит COM API7/API5 — то, что использует проект (файлы
iapplication*,kspart*,ksmassinertiaparam*и т.п.). Это твой основной источник. - Кроссплатформенный Qt/C++ KsAPI (
ksapi_*) в базу не включён — если задача явно про KsAPI, скажи об этом (нужен отдельный источник).
Правила:
- Не угадывай — находи через Grep/Read по
docs/Kompas3D_SDK/и читай первоисточник. - Верни сжатую выжимку, а не дамп статьи:
- имя интерфейса и метода/свойства;
- синтаксис Automation (и COM, если важен порядок out-параметров);
- параметры (имя, тип, смысл) и возвращаемое значение;
- для enum/констант — пары «имя = значение» и их смысл;
- важные примечания (единицы измерения, побочные эффекты, версия КОМПАС);
- имя статьи /
sourcesиз фронтматтера как ссылку на источник.
- Если у метода несколько перегрузок или связанных интерфейсов — перечисли релевантные.
- Если в COM-interop имя отличается от справки (частый случай в этом проекте), отметь это
как вероятную тонкость и предложи свериться рефлексией по
libs/kompas-interop/*.dll. - Не вноси изменений в код или документацию — только исследование и ответ.
Пример вызова
Запусти kompas-sdk-research: нужна сигнатура и единицы измерения у метода расчёта
МЦХ детали через API5 — что возвращает, как задать мм/кг.
Или короче: «найди в справке КОМПАС, как построить массив по сетке (pattern)».