framework/skills/tool-usage/code-analysis/buddy-prompting/SKILL.md
MUST use WHEN нужно запросить у 1С Напарника (ask_ai_assistant) API платформы, стандарты ИТС, diff версий или валидацию BSL. Provides жёсткие шаблоны (SEARCH_DOCS / SEARCH_ITS / FETCH_ITS / DIFF_VERSIONS / VALIDATE_BSL), совпадающие с внутренними инструкциями Напарника.
npx skillsauth add steelmorgan/1c-agent-based-dev-framework buddy-promptingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Задача агента | Шаблон | Когда |
|---------------|--------|-------|
| API платформы, синтаксис, методы, типы, события | SEARCH_DOCS | Вопрос о встроенном языке или поведении платформенных объектов |
| Стандарты, методология, БСП, типовые конфигурации | SEARCH_ITS | Вопрос о правилах разработки, EDT, Конфигураторе, продуктах 1С |
| Полный текст конкретного документа ИТС | FETCH_ITS | Уже есть id документа после SEARCH_ITS |
| Изменения между версиями платформы | DIFF_VERSIONS | Миграция, совместимость, "что изменилось" |
| Проверка кода на стандарты и поиск аналогов в БСП | VALIDATE_BSL | Ревью фрагмента BSL: синтаксис + соответствие стандартам + рекомендации по использованию БСП |
Задача: ответить на вопрос по документации платформы 1С.
Обязательно используй внутренний инструмент: Search_Documentation
Ограничения:
- Не отвечай по памяти.
- Не используй Search_ITS.
- Если документации нет — так и скажи.
Вход:
Версия платформы: {version}
Объект: {object}
Режим выполнения: {context} # клиент / сервер / фоновое задание
Вид форм: {form_mode} # управляемые / обычные
Вопрос: {query}
Формат ответа:
1. Краткий ответ по найденной документации.
2. Найденные методы/свойства с параметрами и возвращаемыми значениями.
3. Если неоднозначность — перечисли варианты.
Формирование query: для общих тем добавлять "Список всех...", "Общая информация о...". Пример: "Параметры формы" → "Список всех параметров управляемой формы". Пустой результат → переформулировать.
Задача: найти материалы в базе ИТС.
Обязательно используй внутренний инструмент: Search_ITS
Ограничения:
- Не отвечай по памяти.
- Не используй Search_Documentation.
- Не пересказывай статьи — найди документы.
Вход:
Поисковый запрос: {query}
Контекст: {context}
Формат ответа:
1. 3–5 наиболее релевантных документов.
2. Для каждого: id, заголовок, почему релевантен.
3. Если ничего не найдено — скажи явно.
4. Приведи ссылки (https://...).
Только после SEARCH_ITS, когда уже есть id документа.
Задача: получить содержание документа ИТС.
Обязательно используй внутренний инструмент: Fetch_ITS
Ограничения:
- Не выполняй новый поиск.
- Не отвечай по памяти.
Вход:
ID документа: {doc_id}
Что извлечь: {focus}
Формат ответа:
1. Структурированное содержание документа.
2. Ответ на вопрос: {question}
3. Важные ограничения и исключения из документа.
Оркестрация SEARCH_ITS → FETCH_ITS — два отдельных вызова ask_ai_assistant:
Задача: сравнить документацию платформы между версиями.
Обязательно используй внутренний инструмент: Diff_Documentation_Versions
Ограничения:
- Не отвечай по памяти.
- Сравни именно указанные версии.
Вход:
Тема: {topic}
Версия (старая): {version_old}
Версия (новая): {version_new}
Формат ответа:
1. Что добавилось.
2. Что изменилось.
3. Что удалено или несовместимо.
4. Практический вывод для разработчика.
Задача: проверить код 1С на соответствие стандартам разработки
и предложить аналоги из БСП, если они есть.
Обязательно используй внутренний инструмент: syntax-checker__validate
Используй режим extended (обогащение стандартами 1С).
Ограничения:
- Не анализируй код по памяти.
- Проверь именно приведённый код.
- Проверка без глобального контекста — ошибки "необъявленная переменная"
на глобальные методы/переменные могут быть ложными, укажи это.
Вход:
Код:
```bsl
{code}
Формат ответа:
## Stop rules
1. **Запрет выдумывать сигнатуры.** Нельзя указывать метод, свойство или параметр,
если `ask_ai_assistant` (SEARCH_DOCS) его не подтвердил. Если документация не нашла —
сообщи об отсутствии; не конструируй сигнатуру по аналогии или по памяти.
2. **Pre-flight контекст для SEARCH_DOCS.** Перед вызовом явно зафиксировать четыре параметра:
объект (`{object}`), режим выполнения (`{context}`: клиент / сервер / фоновое задание),
версию платформы (`{version}`) и вид форм (`{form_mode}`: управляемые / обычные).
Пропущенный параметр = запрос с неопределённым контекстом, результат недостоверен.
3. **Запрет отвечать по памяти при версионной/режимной зависимости.** Если поведение API
или объекта может отличаться в зависимости от версии платформы или режима выполнения —
всегда сначала уточнять через `ask_ai_assistant` (SEARCH_DOCS или DIFF_VERSIONS).
Ответ «по памяти» в таких случаях запрещён независимо от уверенности агента.
## Ошибки и ограничения
| Проблема | Обходной путь |
|----------|---------------|
| Пустой результат SEARCH_DOCS | Переформулировать query: "Список всех..."; проверить version |
| Нерелевантные результаты SEARCH_ITS | Уточнить query терминами ИТС; сузить запрос |
| Напарник ответил по памяти, не вызвав инструмент | Усилить: "ЗАПРЕЩЕНО отвечать без инструмента" |
| Ложные ошибки VALIDATE_BSL | "Необъявленная переменная" на глобальные методы — норма, фильтровать |
| FETCH_ITS без id | Сначала SEARCH_ITS → выбрать id → потом FETCH_ITS |
| Нет контекста проекта (session_id) | НЕ пытаться триггерить FindRelated, FindSimilar, GetObject |
---
depends_on: []
---
testing
MUST use BEFORE making a judgment about the cause of a conflict, a test failure, or an artifact dispute. Defines the end-to-end verification method L1→L6 and the classification of the first broken link.
development
MUST use AFTER a work cycle with ≥2 iterations (wrote → error → fixed → success). Provides the retrospective procedure and the format for recording practice/anti-patterns in references/learned-patterns.md or {project}/.context/learned-patterns.md.
tools
MUST use WHEN you are writing reusable knowledge into RLM (pattern / architectural decision / stable domain fact) OR reading it before a non-trivial task/solution in the domain. Provides the breakdown of native-push vs RLM-pull, tools for writing and reading RLM, H-MEM levels, and hygiene.
testing
MUST use WHEN the task is classified as simple (< 20 lines, 1 file, no new metadata objects, no architectural decisions). Provides a short cycle of 3 steps with a guard on the self path and mandatory verify.