framework/skills/tool-usage/code-analysis/code-verification/SKILL.md
Комплексная верификация BSL-кода после правок. Оркестрирует LSP-диагностику, проверку через Напарника (VALIDATE_BSL) и верификацию платформенного API через bsl-platform-context.
npx skillsauth add steelmorgan/1c-agent-based-dev-framework code-verificationInstall 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.
Навык описывает порядок проверки BSL-кода после внесения правок. Три слоя проверки, каждый ловит свой класс ошибок.
| Триггер | Действие | |---------|----------| | После изменения BSL-кода | Полный цикл (все 3 слоя) | | Ревью чужого кода | Слой 2 + Слой 3 | | Вопрос пользователя «проверь синтаксис» | Полный цикл |
Цель: немедленная обратная связь по изменённому файлу.
get_diagnostics(uri) — получить ошибки/предупреждения от BSL Language Server.error-уровень — исправить до перехода к слою 2.Цель: проверка синтаксиса, стандартов, поиск аналогов в БСП.
Что передавать: целиком процедуры/функции, в которых были правки. Не фрагменты, не отдельные строки — полные тела методов.
Вызов: ask_ai_assistant с шаблоном VALIDATE_BSL из buddy-prompting.
Как интерпретировать результат:
| Ситуация | Действие |
|----------|----------|
| Напарник нашёл ошибки | Проанализировать каждую. Ложные «необъявленная переменная» на глобальные методы — фильтровать. Остальное — исправить или обосновать. |
| Напарник не нашёл ошибок | НЕ считать доказательством корректности. У Напарника ограниченный контекст — он не видит проект. Перейти к слою 3. |
| Напарник рекомендует замену на БСП | Проверить через search_ssl_functions, что рекомендованная функция существует. |
Цель: подтвердить, что каждый используемый в коде платформенный объект, метод, свойство и конструктор реально существует на указанном типе.
Алгоритм:
Извлечь из изменённого кода все обращения к платформенному API:
Новый <Тип>(...) — создание объектов<Объект>.<Метод>(...) — вызовы методов<Объект>.<Свойство> — чтение/запись свойствДля каждого обращения — верифицировать:
| Что в коде | Как проверить | Capability |
|------------|---------------|------------|
| Новый <Тип> | Тип существует? | search_syntax_reference → get_type_info |
| Новый <Тип>(парам1, парам2) | Конструктор с такими параметрами? | getConstructors |
| Объект.Метод() | Метод есть на этом типе? | getMember |
| Объект.Свойство | Свойство есть на этом типе? | getMember |
| Тип неясен | Поиск по имени | search_syntax_reference → getMembers |
Особое внимание — коллекционные типы. API Структура, Соответствие, ТаблицаЗначений, Массив различается. Не предполагать одинаковые методы — проверять на конкретном типе.
Если navigate_symbol доступен — использовать для определения типа переменной по месту объявления/присваивания, затем верифицировать API через platform-context.
v8-runner syntax … (компилятор) ← формальная проверка, финальный вердикт
> get_diagnostics (LSP) ← быстрая диагностика
> bsl-platform-context ← авторитетный справочник API
> ask_ai_assistant ← совещательный голос (не доверять отсутствию ошибок)
При расхождении — побеждает источник выше по иерархии.
По итогам проверки — структурированный вывод:
синтаксис / ошибка API / нарушение стандарта / рантайм-риск.| Проблема | Обходной путь |
|----------|---------------|
| LSP недоступен | Пропустить слой 1, перейти к слою 2. Отметить в отчёте. |
| Напарник недоступен | Пропустить слой 2. Усилить слой 3. |
| bsl-platform-context не знает тип | Тип из проекта (не платформенный) — проверить через navigate_symbol. |
| Ложная «необъявленная переменная» от Напарника | Нормально для глобальных методов — фильтровать. |
| search_syntax_reference пустой | Уточнить имя типа (русское/английское написание), проверить версию. |
| Напарник рекомендует несуществующую функцию БСП | Проверить через search_ssl_functions. |
| Capability | Слой | Назначение |
|------------|------|------------|
| get_diagnostics | 1 | LSP-диагностика файла |
| ask_ai_assistant | 2 | VALIDATE_BSL через Напарника |
| search_ssl_functions | 2 | Проверка рекомендаций по БСП |
| search_syntax_reference | 3 | Поиск платформенного типа |
| get_type_info | 3 | Информация о типе |
| getMembers | 3 | Список членов типа |
| getMember | 3 | Проверка конкретного члена |
| getConstructors | 3 | Проверка конструктора |
| navigate_symbol | 3 | Определение типа переменной |
| v8-runner syntax … | * | Финальная проверка компилятором (CLI; см. навык v8-runner) |
tools
Diagnostics for Vanessa Automation runs. Use when a feature scenario failed, artifacts were not created, or you need to classify a failure after launch.
tools
Creating and refining Vanessa Automation feature scenarios based on real project requirements. Use when you need to write or update a scenario test, not just run it.
tools
--- name: v8-session-manager description: Use when working with the 1С session manager (v8-session-manager) - launch, configuration, connecting 1С clients, reading session_list, calling proxied MCP-tools from 1С extensions, diagnostics. Triggers: mention of `v8-session-manager`, `session_list`, 1С extension MCP showcase, error “no active sessions” / “session_id required”, connecting a client to the manager via `mcpMode=ws`. provides_capabilities: # Built-in manager tools — always available whi
tools
Use when Codex needs to manage v8-runner on local 1C projects through the CLI: configure v8project.yaml, initialize infobases or EDT workspaces, build sources from Designer or EDT, run syntax checks and tests, dump infobase changes, convert source formats, load or export artifacts, launch 1C clients, or choose safe 1C automation command sequences.