بنقرة واحدة
rlm-bsl-search
Rules for using RLM tools for project search and navigation in 1C/BSL
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Rules for using RLM tools for project search and navigation in 1C/BSL
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
When writing or reviewing BSL, apply 1C standards
При написании или ревью BSL применять стандарты 1С
Orchestrator: routing work and agent phases
Оркестратор: маршрутизация работы и фаз агентов
BSL LSP navigation: definitions, refs, call graph
Find an existing equivalent before new BSL code
| name | rlm-bsl-search |
| description | Rules for using RLM tools for project search and navigation in 1C/BSL |
Use this skill when working with 1C/BSL and the answer requires project reconnaissance over configuration source files, even if the user did not explicitly ask for "search".
| Situation | First tool |
|---|---|
| Find the implementation of a procedure, function, handler, subscription, scheduled job | rlm_start |
| Understand where a metadata object, attribute, tabular section, form, role, query is used | rlm_start |
| Find a similar implementation before changing BSL code | rlm_start |
| Understand a business mechanism or call chain in the project | rlm_start |
| Investigate XML/MDO/forms/rights/query and their relationships with BSL code | rlm_start |
| Assess the blast radius of a change in a 1C configuration | rlm_start, then targeted verification via BSL LS |
The main rule: for broad 1C/BSL search, use RLM before Grep, Glob, broad Read, Bash rg, grep, find, and manual recursive file reading.
| If you need to... | Use |
|---|---|
| Find where a mechanism, similar implementation, or business chain lives in the project | RLM first |
| Find all project relationships of an object: BSL, queries, XML/MDO, forms, rights, subscriptions, scheduled jobs | RLM first |
| Understand blast radius before choosing a concrete file/symbol | RLM first |
| Go to definition/references of an already known symbol at a concrete location | BSL LS first |
| Get hover, signature, completion, diagnostics, code actions, rename | BSL LS first |
| Check a changed BSL file after editing | BSL LS diagnostics, then final verification through v8-runner |
| Quickly read one known file/fragment | Read / LSP file tool |
Working model: RLM answers “where and what should I search across the project?”, while BSL LS answers “what exactly does this symbol/type/position mean?”. If the task starts from an unclear business need or broad search over 1C sources, start with RLM. If the task is already positional, start with BSL LS.
| Situation | Tool |
|---|---|
| Need diagnostics, hover, signature, completion | BSL LS/LSP tools |
| Need definition/references/rename/formatting/code actions at an already known position | BSL LS/LSP tools |
| Need to read one already known file or a small fragment | Read or an LSP file tool |
| The search does not relate to 1C/BSL source files | standard search tools |
| RLM is unavailable, the index is broken, or it clearly does not fit | fallback to Grep/rg, recording the reason |
| Tool | When to use | Pitfalls |
|---|---|---|
rlm_start | Open a project reconnaissance session over 1C/BSL source files | path must point to the 1C source root, not an arbitrary repository root |
rlm_execute | Run a batch of search/navigation operations through RLM helpers | Print a compact result, not large file bodies |
rlm_help | Choose a helper/recipe before non-trivial reconnaissance | Call before rlm_execute if the rlm_start strategy is insufficient |
rlm_end | Close the RLM session | Close it after reconnaissance is complete |
rlm_index | Check index state (info) or administer the index | Build/update is usually done by the container, not the agent |
rlm_projects | Work with the RLM project registry | Not needed for a normal session if path is known |
rlm_start.query, pass a short working goal for the reconnaissance. This is not a prompt for the internal LLM: query helps RLM choose effort, strategy, and business recipe.path, pass the source directory of the 1C configuration, usually <project-root>/src, or the exact configuration root where Configuration.xml is located. Do not pass the root git repository if it is not the root of the 1C sources.rlm_start response: session_id, warnings, index status, extension context, strategy, available functions.rlm_help before rlm_execute.rlm_execute: write compact Python, use RLM helpers, and print only useful output.rlm_end when the reconnaissance is finished.path should point to the directory where RLM can find the 1C source tree:
<project-root>/src
<project-root>/src/xml
<project-root>/src/cf
The exact configuration directory containing Configuration.xml is also acceptable.
The MCP proxy can normalize relative, host, and container paths, but this is only a technical path transformation. The semantics do not change: the path must lead to 1C sources, not to an arbitrary project directory.
rlm_start.query by itself does not call an LLM. It sets the session goal and affects:
rlm_execute.Optional llm_query and llm_query_batched are available only inside rlm_execute, if the RLM server is configured with an LLM provider. Without an LLM, RLM remains a deterministic index/search/navigation tool.
Prefer one substantial rlm_execute instead of many small Grep/Read calls.
For complex reconnaissance, split the work into phases:
rlm_execute is discovery only: find and deduplicate candidates (objects, methods,
registers, forms), output a compact name/category/path/count table and the next step.rlm_execute profiles 3-5 selected production candidates (get_object_profile,
get_object_full_structure, extract_queries), without callers for all found methods.rlm_execute is a targeted trace/callers/usages only for methods selected after profiling.Do not mix discovery + object profiles + callers/call hierarchy in the first batch. That output quickly
becomes noisy, hits max_output_chars limits, and loses the tail of the result.
Keep the output compact:
Do not print large file bodies unless necessary. First find candidates and only then read exact fragments.
Deduplicate variants of case and language in search terms (PnL/PNL/Pnl, OKX/okx,
Russian case forms), and also exclude test extensions/modules from production output if the task is not about
tests. If test findings are needed as evidence, print them in a separate section with a limit.
Usually the agent does not build the index manually. The container starts RLM build/update automatically:
Use rlm_index mainly for info diagnostics. Apply manual build, update, drop only when you explicitly need to administer the index or fix its state.
rlm_start(query="find an existing implementation of <mechanism>", path="<project-root>/src")rlm_help(category="discovery").rlm_execute: first search(...) / search_methods(...), then targeted read_file(...) or a helper for usages/callers.rlm_end.rlm_start(query="assess usage of metadata object <Object>", path="<project-root>/src")rlm_execute: find code usages, forms, queries, permissions, subscriptions, scheduled jobs.rlm_end.rlm_index(action="info", path="<project-root>/src").build/update/drop only if it is explicitly needed to restore the index.Correct:
Need to understand where the discount is calculated.
1. rlm_start(query="find discount calculation and related calls", path="<project-root>/src")
2. rlm_execute: search("discount"), search_methods("Discount"), get_callers(...)
3. Read/BSL LS only for the found specific files/positions.
Why: RLM uses an index and helpers, and does not pull thousands of files into context.
Incorrect:
Grep("Discount", glob="**/*")
Read dozens of found files
Bash rg across all src
Why: broad raw search across a large 1C configuration is slower, noisier, and loses metadata, forms, permissions, queries, and call graph links.
RLM first:
BSL LS first:
Raw search fallback: