framework_eng/skills/tool-usage/code-analysis/syntax-checking/SKILL.md
Syntax Checking. This skill teaches the agent to **use syntax checking capabilities correctly** for BSL code.
npx skillsauth add steelmorgan/1c-agent-based-dev-framework syntax-checkingInstall 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.
Any BSL code change → immediate verification. Without verification, the agent can "successfully" complete a task with non-working code.
Two levels of verification — different cost:
| Tool | Speed | When to use |
|------------|----------|-------------------|
| get_diagnostics (LSP) | Fast (seconds) | After every change, intermediate checks |
| v8-runner syntax … | Slow (tens of seconds — minutes) | Final check: before commit, before PR, after a major refactor |
Server-side verification is now done only through the v8-runner CLI — the separate MCP tools check_syntax/build_project/dump_config have been removed. Details of the commands and selection rules are in the v8-runner skill (framework/skills/tool-usage/v8-runner/).
| Trigger | Action |
|---------|----------|
| After changing BSL code | get_diagnostics — fast check |
| Iterative edit cycle (edit → check) | get_diagnostics |
| After refactoring / rename_symbol | get_diagnostics for affected files |
| Compilation error | get_diagnostics for localization |
| Before commit / before PR | v8-runner syntax … — final check |
| Task completion | v8-runner syntax … — final verdict |
get_diagnostics(uri) — LSP diagnostics for the changed file.error level — fix it and repeat.warning — assess criticality.The command choice depends on format/builder in v8project.yaml (see v8-runner/references/config-and-backends.md):
# Designer-модули (requires Designer + Designer-format)
v8-runner build
v8-runner syntax designer-modules --server --thin-client
# Designer-конфигурация
v8-runner build
v8-runner syntax designer-config
# EDT
v8-runner build
v8-runner syntax edt
Tests (v8-runner test yaxunit …, test va) run build themselves — a separate build before them is not needed.
If get_diagnostics and v8-runner syntax disagree, rely on v8-runner as the final verdict.
| Field | Action |
|------|----------|
| success: true | Continue |
| success: false | Fix errors (each: file, line, message, severity) |
| warnings | Assess criticality |
| Timeout | Narrow the scope (--source-set <NAME>) or return to LSP for specific modules |
Severity: error (blocks compilation) > warning > information / hint.
Suppression comment is a clue, not decorative noise. Extract concrete codes from it and assess whether the suppression is justified.
| Tool | Syntax |
|------------|-----------|
| АПК | //{ АПК:142 - comment … //} |
| BSL Language Server | // BSLLS:LineLength-off … // BSLLS:LineLength-on |
| EDT | // @suppress-warning("module-empty-method") or //@skip-check |
ask_1c_ai ("decode the АПК:142 diagnostic"); for BSL LS — ITS documentation by rule name; for EDT — EDT rules documentation.The comment contains neither a diagnostic code nor a link to the standard — it must be flagged for review.
// Плохо — нет кода, нет обоснования:
// BSLLS:LineLength-off
ОченьДлиннаяСтрокаБезПояснения = ...
// BSLLS:LineLength-on
// Хорошо — код + диапазон + обоснование:
// BSLLS:LineLength-off // АПК:142: строка формирования запроса, разбиение ухудшает читаемость (ITS: стандарт 720)
ТекстЗапроса = "SELECT ... FROM ...";
// BSLLS:LineLength-on
| Capability / CLI | Purpose | Cost |
|------------------|-----------|-----------|
| get_diagnostics (MCP lsp-bsl-bridge) | LSP diagnostics for a file | Fast — primary tool |
| v8-runner syntax designer-modules | Check Designer modules through the platform | Slow — final check only |
| v8-runner syntax designer-config | Check Designer configuration | Slow |
| v8-runner syntax edt | Check an EDT project | Slow |
v8-runner syntax … can take tens of seconds to minutes. For long runs use the Monitor tool:
Bash run_in_background: true) and redirect stdout to a log file.ERROR:|error:|Errors:|success — a notification arrives on the first match.error: / Errors: 0 / success.For short runs (--source-set <NAME>) Monitor is not required — synchronous execution is enough.
| Error | Workaround |
|--------|---------------|
| LSP is not running | v8-runner syntax … as a fallback |
| The syntax … command is not supported for the current format/builder | See v8-runner/references/config-and-backends.md; do not invent raw 1cv8/ibcmd flags |
| Timeout on a full check | Narrow it with --source-set <NAME>; use LSP for specific modules |
| EDT project not found | Check format/builder and source-set in v8project.yaml |
| Unclear errors | navigate_symbol to the error location; ask_ai_assistant |
depends_on:
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.