Skip to content

Latest commit

 

History

History
49 lines (36 loc) · 7.2 KB

AGENTS.md

File metadata and controls

49 lines (36 loc) · 7.2 KB

Агентский контракт PSSL

Репозиторий исходников конфигурации Проектная библиотека подсистем (ПБП / PSSL). Файл — единственный источник фактов о проекте для любого агента (Cursor, облачный агент, Bugbot, CodeRabbit, Codex, Claude Code). Язык кода, комментариев и ответов — русский.

Проект

  • Конфигурация ПроектнаяБиблиотекаПодсистем: src/cf (формат Конфигуратора, source-set main). Не подставлять факты типовых ERP / УТ.
  • Расширение тестов YAxUnit 25.12: src/cfe/YAXUnit (имя в метаданных YAXUNIT, source-set YAXUNIT). Руководство — docs/РуководствоПоНаписаниюТестовYAxUnit.md.
  • Обработка первого внедрения — src/epf. Фичи Vanessa Automation — features/, порядок прогона — СписокФичДляВыполнения в tools/VBParams.json (правило добавления — skill pssl-library).
  • Платформа разработки 8.3.27, режим совместимости 8.3.24.
  • CI — Jenkins (Jenkinsfile, jobConfiguration.json): синтаксис, smoke, YaXUnit, BDD, SonarQube (sonar-project.properties, .bsl-language-server.json).
  • Контракт сборки v8project.yaml (в Git). Пути ИБ и платформы — только .dev.env и v8project.local.yaml (не в Git, шаблоны *.example).

Запреты

  • Новые объекты и общие модули ядра — только с префиксом пбп_. Заимствованный код (Connector, DFI и т.п.) не переименовывать.
  • Модули пбп_Переадресация* не удалять. Вызовы сервисов БСП — через них, если есть обёртка (docs/ПереопределениеМетодовБСП.md).
  • Движок ЮТ* и Мокито* в src/cfe/YAXUnit не править без задачи на обновление YAxUnit. Тесты — модули ОМ_<Объект> в src/cfe/YAXUnit, не в src/cf.
  • Пути машины, каталог ИБ, логины и пароли в код, правила и документацию не писать. .dev.env не коммитить.

Правила BSL

  • Без Попытка...Исключение вокруг обычного чтения и записи БД, кроме обоснованного управления транзакцией.
  • Без ЗаписьЖурналаРегистрации() и Сообщить(), если об этом не просили.
  • Булевы условия без сравнения с Истина / Ложь.
  • Строка не длиннее 130 символов; не переносить, если на новой строке останется одна переменная.
  • Внутри Если / Цикл — пустые строки до и после тела блока.
  • Массовые операции — на сервере, запросы вместо обхода коллекций. УстановитьПривилегированныйРежим() — только по необходимости.
  • Публичные (Экспорт) процедуры и функции документировать: назначение, параметры, возвращаемое значение. Точечные отключения анализатора — //BSLLS:.
  • Директивы модуля формы: &НаКлиенте, &НаСервере, &НаСервереБезКонтекста, &НаКлиентеНаСервереБезКонтекста. &НаКлиентеНаСервере — только модуль команды. Общая процедура с элементами формы — &НаКлиентеНаСервереБезКонтекста и параметр формы. «Процедура не определена» при открытии формы, когда текст процедуры на месте, — признак неверной директивы.
  • Новое событие элемента или команды (в том числе ПриИзменении) не готово без шага в фиче или YaXUnit, который вызывает событие и проверяет следствие: значение, видимость, доступность или текст кода. Открытие формы и наличие элемента такую проверку не заменяют. Пример: ПриИзменении родителя — выбрать родителя и убедиться, что уровень иерархии в сгенерированном коде посчитан по нему, а не только что поле родителя заполнилось.
  • Одна логическая правка за раз, минимальный обратимый дифф, без рефакторинга «заодно».

Как работать

Локальный Cursor с user MCP (Unica, BSL LS, Напарник, Vanessa). Правило .cursor/rules/psslrule.mdc, skill'ы .cursor/skills/pssl-library (загрузка в ИБ, YaXUnit, фичи) и .cursor/skills/pssl-pr-flow (конвейер Issue → PR в develop), правило фич Jenkins .cursor/rules/vanessa-jenkins.mdc. Пока Unica доступен, BSL и XML правятся только его инструментами.

Агент без Unica и без платформы 1С (облако, Bugbot, CodeRabbit, сторонние агенты):

  • BSL и XML правятся напрямую в файлах, точечно. XML метаданных и форм — только существующие узлы и атрибуты; новые объекты метаданных и UUID без Unica не создавать — оставить задачу человеку.
  • Проверка — BSL Language Server с .bsl-language-server.json (облачный образ ставит его через .cursor/install.sh, команда bsl-ls).
  • Загрузку в ИБ, YaXUnit и Vanessa не запускать и не имитировать. В отчёте прямо писать, что прогона не было.
  • Ссылки на user skill'ы и правила (ui-testing-tools, vanessa-automation, 1c-pssl, unica-mcp) — только если они есть в окружении.

Ветки и PR

  • Ветка Issue — от origin/develop, PR в develop, без мержа агентом.
  • Ревью в PR делает CodeRabbit (.coderabbit.yaml). Локальный CodeRabbit CLI — skill coderabbit-review, только по прямой просьбе.
  • Индекс Cursor: скопировать .cursorignore.example → .cursorignore (файл в .gitignore). MCP проекта не коммитится.