Skip to content
Back to skills

Bitrix Dev

ASecurity

Разработка и код-ревью на PHP под 1С-Битрикс (сайт/интернет-магазин, «Управление сайтом») с проверкой по РЕАЛЬНОМУ коду ядра через инструменты, а не по памяти. Используй всякий раз, когда пишешь/правишь/ревьюишь PHP-код под Битрикс: компоненты, шаблоны, инфоблоки, D7 ORM (Bitrix\Main\*), события, агенты, обработчики, корзину/каталог/заказы (модули sale/catalog/iblock), REST-интеграции; реализуешь задачу по ЧТЗ; ищешь, как устроено ядро или что уже есть в /local. Срабатывай даже без слов «PHP/...

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 3, 2026
developmentgophpsqlrefactoringapiperformance

Works with

  • api
  • mcp

Security analysis

A100/100

Pro scans all 9 files and shows the line behind each finding

Scanned September 3, 2026

npx -y skills add vgtitov/bitrix-ai-toolkit --skill bitrix-dev --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bitrix Dev?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Bitrix Dev
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vgtitov-bitrix-dev/badge)](https://www.skillsdirectory.com/skills/vgtitov-bitrix-dev)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: bitrix-dev
description: >
  Разработка и код-ревью на PHP под 1С-Битрикс (сайт/интернет-магазин, «Управление сайтом») с проверкой по
  РЕАЛЬНОМУ коду ядра через инструменты, а не по памяти. Используй всякий раз, когда пишешь/правишь/ревьюишь
  PHP-код под Битрикс: компоненты, шаблоны, инфоблоки, D7 ORM (Bitrix\Main\*), события, агенты, обработчики,
  корзину/каталог/заказы (модули sale/catalog/iblock), REST-интеграции; реализуешь задачу по ЧТЗ; ищешь, как
  устроено ядро или что уже есть в /local. Срабатывай даже без слов «PHP/код/ревью», если речь о реализации в
  Битрикс. Железное правило: НЕ выдумывай API Битрикса и сигнатуры — проверяй по реальному коду ядра (Grep/Serena/
  bitrix-ci в vendor) и справке dev.1c-bitrix.ru, после правки прогоняй PHPStan и PHP-CS-Fixer. Правки — только в
  /local, структуру инфоблоков меняй миграциями. Анализ/архитектура — скилл bitrix-analyst.
---

# Разработка под 1С-Битрикс (PHP) — корректный, производительный и безопасный код по реальному коду

## Читать ПЕРЕД написанием кода (обязательно)
- **`references/quality-standards.md`** — свод качественного Битрикс-кода. Пиши сразу так, **даже если проверки
  выключены** (режим `off`/`warn`): линтер лишь подтверждает, а не заменяет знание. Там же мини-чек-лист самопроверки.
- **`references/php-version-matrix.md`** — что доступно в таргет-версии PHP проекта. **Синтаксис новее таргета не
  предлагать вообще** (8.4 property hooks на 8.3 = белый экран). Плюс оговорка по `strict_types` в компонентах.
- **`references/architecture.md`** — слои, Anti-Corruption Layer над легаси-ядром, DI (ServiceLocator только в
  composition root), паттерны/анти-паттерны, **критерии глубины: когда НЕ усложнять**.
- **`references/custom-framework.md`** — если в `version-stack.toml` есть `[[custom_layers]]` (**свой фреймворк
  подрядчика поверх Битрикс**, нередко 30-40% функционала): искать в ТРЁХ слоях — кастомный слой → ядро → `/local`.
  Документация Битрикс про их код ничего не знает; источник правды — их код.
- **`references/custom-core.md`** — если в проекте **правлено само ядро** (`core_modified = true`): сигнатуры и
  поведение брать по ФАКТИЧЕСКОМУ коду ядра, а не по докам вендора; такие места помечать `[правлено ядро]`.

## По ситуации
- **`references/errors-and-results.md`** — исключения в домене vs `Main\Result` на границе; PSR-3 логирование;
  ловушка `abortResultCache()` при исключении внутри кэша компонента.
- **`references/testability.md`** — как класть код, чтобы он был тестируем; unit без ядра vs интеграционные.
- **`references/legacy-refactoring.md`** — Strangler Fig, характеризационные тесты, резка God-класса, Rector.
- **`references/performance*`** и скилл `bitrix-performance` — если задача про скорость/объёмы.

## Локализация (сначала, если есть)
Если в скилле есть `references/local/` — прочитай ПЕРЕД работой: версии платформы/редакции, раскладка проекта,
конвенции компании. Локальное побеждает generic.

## Опциональность проверок
Проверки настраиваются (`config/checks.toml`, env `BITRIX_AI_CHECKS`): `off` / `warn` (по умолчанию — показать, не
блокировать) / `block`. **Качество кода не зависит от режима** — стандарты соблюдай всегда (см. quality-standards.md).

## Главное правило: спроси инструмент, не угадывай
Нейросеть врёт в деталях Битрикса (два ядра, много legacy, неполная api_d7). Источник истины — реальный код и справка:
- **Перед написанием** — найди, как уже сделано: Grep/ripgrep по `/local` и по ядру, `find_symbol` (Serena) по
  классам D7. Сигнатуры классов ядра — по реальному коду в `vendor/bitrix-toolkit/bitrix-ci` или стабам
  `matiaspub/bxApiDocs`, справка — dev.1c-bitrix.ru. НЕ по памяти.
- **После правки** — прогони **PHPStan** (`analyse --error-format=json`) и **PHP-CS-Fixer** (детерминированно —
  через `PostToolUse`-хук). До 3 циклов автоисправления.
- Нет поведения ни в коде, ни в справке — так и скажи. Механизм без сверки помечай **[проверить]**, не «верно».

## Два ядра — различай явно
- **Старое ядро (процедурное):** `$APPLICATION`, `$USER`, `$DB`; `CIBlockElement::GetList`, `CModule`, `CFile`,
  `CCatalogProduct`. Живёт и активно используется. Справка: dev.1c-bitrix.ru/api_help/
- **D7 (ООП):** `Bitrix\Main\*`, ORM (`Bitrix\Main\ORM\Query`, `EntityObject`), `EventManager`, `Application`,
  сервис-локатор, `Bitrix\Main\Data\Cache`/`TaggedCache`. **Новый код — на D7**, интеропись со старым. Справка:
  dev.1c-bitrix.ru/api_d7/ (неполна → смотри исходники ядра / курс «Разработчик Bitrix Framework»).

## Гейт: правки только в /local, ядро read-only
- **Не трогай `/bitrix/modules`** — при обновлении продукта перезаписывается, правки теряются и ломают систему.
- Кастомизация типового компонента — **копированием в `/local/components`**, не правкой ядра. Приоритет поиска у
  системы: `/local/*` → `/bitrix/*` (components, templates, modules, php_interface, activities).
- **Структуру инфоблоков/HL-блоков/свойств/прав** меняй миграциями (`sprint.migration`: `php migrate.php add/up`),
  не руками в БД/админке без версионирования.
- События/обработчики регистрируй в `/local/php_interface/init.php` (`AddEventHandler`/`EventManager::addEventHandler`).

## Reuse-first, производительность (prod-ready)
- Прежде чем писать своё — ищи готовое в ядре (модули main/iblock/sale/catalog) и marketplace.
- **Кэширование:** компоненты кэшируй (`$arParams['CACHE_TIME']`, `$this->StartResultCache()`); произвольные данные —
  `Bitrix\Main\Data\Cache` / `TaggedCache` (сброс по тегам инфоблока). Не делай тяжёлых запросов без кэша.
- **Запросы:** ORM D7 или `CIBlockElement::GetList` с явным `select`/`filter`; НЕ выбирай лишние поля; НЕ делай
  запрос в цикле (аналог 1С-грабли) — собирай `filter` по массиву ID.

## Безопасность (чек-лист ревью — Битрикс-специфика)
- **SQL-инъекции:** только ORM или `$DB->ForSql()`/подготовленные фильтры; никакой конкатенации ввода в запрос.
- **XSS:** вывод экранируй `htmlspecialcharsbx()` (не голый echo пользовательских данных).
- **Path traversal:** проверяй/нормализуй пути в файловых операциях (`CFile`, работа с `upload/`).
- **Права:** проверяй `$USER->CanDoOperation()` / права доступа перед действием; не доверяй `$_REQUEST`.
- **CSRF:** формы — с `bitrix_sessid()`/`check_bitrix_sessid()`.

## Стандарт кода
PSR-12 (у Битрикс нет своего codesniffer-ruleset). Прогон: `php-cs-fixer fix` (форматтер) + `phpcs --standard=PSR12`
(доп. проверки). Держи единый `.editorconfig`/ruleset с PhpStorm, чтобы не «воевать» стилем с IDE-ассистентом.

## Инструменты (каналы)
- **Хуки** (`.claude/settings.json`): после правки `*.php` → `php-cs-fixer fix` + `phpstan analyse --error-format=json`.
- **LSP**: `php-lsp` (Intelephense) для навигации; нужен `composer dump-autoload -o` и стабы ядра в includePaths.
- **MCP**: Serena (find_symbol/find_references по коду), `bitrix24/mcp-rest-doc` (справка REST), JetBrains MCP
  (диагностики/рефакторинги PhpStorm на рабочей станции).

## Что НЕ делает AI без человека
Правки структуры БД вне миграций; изменения в ядре `/bitrix`; деструктивные операции с данными магазина; передачу
персональных данных клиентов в модель. Любую правку человек принимает после проверки (в т.ч. в PhpStorm).

Files in this skill

  • SKILL.md10.4 KB
  • references/architecture.md12.9 KB
  • references/custom-core.md4.5 KB
  • references/custom-framework.md5.6 KB
  • references/errors-and-results.md6.2 KB
  • references/legacy-refactoring.md5.1 KB
  • references/php-version-matrix.md3.9 KB
  • references/quality-standards.md14.2 KB
  • references/testability.md3.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…