metadata-discovery
$
npx mdskill add SteelMorgan/1c-agent-based-dev-framework/metadata-discoveryEnables agents to discover and analyze 1C configuration metadata objects like directories and documents, ensuring accurate data handling.
- Helps agents avoid errors by understanding metadata structure before interacting with business logic.
- Integrates with 1C metadata tools for listing objects, retrieving structures, and analyzing code.
- Decides actions by verifying object existence and type, then guiding users through creation if needed.
- Presents results through structured metadata descriptions and verification steps for user confirmation.
SKILL.md
.github/skills/metadata-discoveryView on GitHub ↗
--- name: metadata-discovery description: Работа с метаданными (Metadata Discovery). Навык учит агента **работать с метаданными конфигурации 1С** — находить объекты (справочники, документы, регистры, обработки), понимать их структуру и связи. --- # Работа с метаданными (Metadata Discovery) **Принцип:** Перед работой с бизнес-логикой — исследовать метаданные. Не создавать объекты «наугад», если пользователь не попросил явно. ## Инструменты | Tool | Параметры | Назначение | |------|-----------|------------| | `list_metadata_objects` | metaType, nameMask, maxItems | Поиск объектов по типу и маске имени | | `get_metadata_structure` | metaType, name | Структура: реквизиты, ТЧ, измерения, ресурсы | | `navigate_symbol` | — | Переход к модулям, процедурам найденных объектов | | `get_call_graph` | — | Анализ цепочек вызовов в модулях | ## Алгоритм работы 1. **Найти объект:** `list_metadata_objects(metaType, nameMask)` — проверить существование и тип. Для нечёткого поиска: `nameMask: "*Номенклатура*"`. 2. **Получить структуру:** `get_metadata_structure(metaType, name)` — реквизиты, ТЧ, измерения, ресурсы. Обязательно перед построением запроса. 3. **Анализ кода (при необходимости):** `navigate_symbol` → `get_call_graph`. 4. **Создание нового объекта:** агент НЕ создаёт объекты метаданных автоматически. Алгоритм: проверить что не существует → описать пользователю (имя, реквизиты, ТЧ) → пользователь создаёт в Конфигураторе/EDT → `get_metadata_structure` для верификации. ## Типичные ошибки | Ошибка | Решение | |--------|---------| | Поиск по общему слову даёт много результатов | Сузить nameMask; указать metaType; уменьшить maxItems | | Агент пытается создать объект сам | Протокол: агент описывает, пользователь создаёт в Конфигураторе/EDT | --- depends_on: [] ---