framework/skills/tool-usage/code-analysis/search-before-write/SKILL.md
Перед новым BSL-кодом найти существующий аналог
npx skillsauth add steelmorgan/1c-agent-based-dev-framework search-before-writeInstall 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.
Любая задача на написание кода — прежде всего задача на поиск. Сначала ищем, потом пишем.
Для 1C/BSL-проектов с доступным RLM широкая разведка начинается с rlm_start / rlm_execute, а не с LSP или raw grep. LSP подключай после RLM, когда уже найден конкретный файл, символ или позиция.
Каждый следующий шаг — только если предыдущий не дал результата:
| Шаг | Инструмент | Что ищем |
|-----|------------|----------|
| 1 | rlm_start → rlm_execute | Широкий поиск аналогов, бизнес-механизмов, запросов, XML/MDO/forms/rights и связей по проекту |
| 2 | navigate_symbol / BSL LS | Точная проверка найденного символа, definition/references/call graph по известной позиции |
| 3 | list_metadata_objects, get_metadata_structure | Объекты конфигурации (справочники, регистры, документы), если RLM недоступен или нужен структурный MCP-ответ |
| 4 | search_syntax_reference, get_type_info | Встроенные типы/методы платформы |
| 5 | search_ssl_functions | Функции БСП (если конфигурация содержит БСП) |
| 6a | ask_ai_assistant (шаблон SEARCH_DOCS) | Документация платформы — если вопрос про API, методы, типы |
| 6b | ask_ai_assistant (шаблон SEARCH_ITS → FETCH_ITS) | Стандарты, методология, примеры ИТС — если вопрос про правила разработки |
| 6c | ask_ai_assistant (generic) | Прочие вопросы — только если 6a/6b не подходят |
Шаблоны промптов для шагов 6a–6c — см. навык
buddy-prompting.
| Задача | Начальный шаг каскада | |--------|-----------------------| | Новая функция/процедура | 1 — RLM-поиск аналогов по смыслу, имени и соседним терминам | | Бизнес-логика | 1 — RLM-разведка механизма и связанных объектов/модулей | | Использование API платформы | 4 — справка синтаксиса; fallback 6a (документация) | | Печатная форма | 1 → 5 (RLM по формам/шаблонам/командам + БСП API) | | Стандарты и правила разработки | 6b — поиск в ИТС | | Миграция между версиями | 6a (шаблон DIFF_VERSIONS) | | Запрос | 1 — RLM-поиск существующих запросов и связанных регистров/объектов |
| Capability | Назначение |
|------------|------------|
| rlm_start / rlm_execute | Широкая проектная разведка по 1C/BSL перед написанием кода |
| navigate_symbol | Поиск символов, определение, использования |
| list_metadata_objects | Объекты метаданных по типу и маске |
| get_metadata_structure | Структура объекта (реквизиты, измерения, ресурсы) |
| search_syntax_reference | Справка синтаксиса платформы |
| get_type_info | Детали типов платформы |
| search_ssl_functions | Функции БСП |
| ask_ai_assistant | Best practices, шаблоны |
| Ошибка | Обходной путь |
|--------|---------------|
| Пропуск поиска | Жёсткое правило: создание BSL-кода → первый шаг = RLM-разведка, если доступна |
| Начали с navigate_symbol, но нет точного имени/позиции | Вернуться к rlm_start: задача широкая, LSP здесь преждевременен |
| list_metadata_objects пусто | Конфигурация загружена? v8-runner build (или v8-runner dump --mode incremental если ИБ — источник правды); проверить metaType/nameMask |
| navigate_symbol пусто | Если это широкая разведка — перейти к RLM. Если позиционная LSP-задача — уточнить имя (рус/лат, регистр) |
| ask_ai_assistant пустой результат | Переформулировать query; см. правила в buddy-prompting |
| search_ssl_functions недоступен | Без БСП — search_syntax_reference + navigate_symbol по общим модулям |
depends_on:
development
1C server maintenance webhooks: container restart and external component cache cleanup
development
Interactive DAP debugging of a single BSL procedure
tools
Rules for using RLM tools for project search and navigation in 1C/BSL
development
Creates web applications and routes on Winow (a web server on OneScript and Autumn). Use when working with a web server on OneScript, routing, or Winow controllers.