Files
kompas3d-mcp/.claude/skills/kompas-sdk-research/SKILL.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
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>
2026-05-26 20:00:05 +03:00

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, скажи об этом (нужен отдельный источник).

Правила:

  1. Не угадывай — находи через Grep/Read по docs/Kompas3D_SDK/ и читай первоисточник.
  2. Верни сжатую выжимку, а не дамп статьи:
    • имя интерфейса и метода/свойства;
    • синтаксис Automation (и COM, если важен порядок out-параметров);
    • параметры (имя, тип, смысл) и возвращаемое значение;
    • для enum/констант — пары «имя = значение» и их смысл;
    • важные примечания (единицы измерения, побочные эффекты, версия КОМПАС);
    • имя статьи / sources из фронтматтера как ссылку на источник.
  3. Если у метода несколько перегрузок или связанных интерфейсов — перечисли релевантные.
  4. Если в COM-interop имя отличается от справки (частый случай в этом проекте), отметь это как вероятную тонкость и предложи свериться рефлексией по libs/kompas-interop/*.dll.
  5. Не вноси изменений в код или документацию — только исследование и ответ.

Пример вызова

Запусти kompas-sdk-research: нужна сигнатура и единицы измерения у метода расчёта
МЦХ детали через API5 — что возвращает, как задать мм/кг.

Или короче: «найди в справке КОМПАС, как построить массив по сетке (pattern)».