Core-first skill for 1C-Bitrix CMS and Bitrix24 in Claude Code and Codex.
Bitrix Agent Skill учит Claude Code и Codex работать с 1C-Bitrix core-first: агент сначала смотрит в реально установленное ядро, stock templates и wizard assets, а не сочиняет ответы по форумным обрывкам.
- Поддерживает
D7и legacy API в одном маршруте. - Учитывает ситуации, когда в checkout вообще нет
www/local. - Подхватывает существующий PHP toolchain проекта:
composer,phpunit,phpstan/psalm, fixer/sniffer,rector— только если он реально есть, и не путает его с vendor-шумом внутри core. - Закрывает безмагазинные диагностики: “в админке есть, на сайте нет”, кеши, индексы, standard components, legacy modernization и эксплуатационные операции.
- Ставит навык в
Claude CodeиCodexна macOS, Linux и Windows. - При первом содержательном
/bitrixдолжен предложить обновление, если release уже вырос.
Если навык сэкономил вам часы на Bitrix, поставьте репозиторию star.
Обычная команда установки сама ставит навык во все найденные домашние контуры Claude Code и Codex.
- Установи последнюю release-версию навыка.
curl -fsSL https://raw.githubusercontent.com/Poliklot/bitrix-agent-skill/master/install.sh | bash- Разреши
Claude Codeзапускать апдейтер без лишних запросов на разрешение.
bash ~/.claude/skills/bitrix/allow-update.sh- В любом проекте на Bitrix вызывай:
/bitrix <ваша задача>- Установи последнюю release-версию навыка.
irm https://raw.githubusercontent.com/Poliklot/bitrix-agent-skill/master/install.ps1 | iex- Разреши
Claude Codeзапускать апдейтер без лишних запросов на разрешение.
powershell -ExecutionPolicy Bypass -File "$HOME\.claude\skills\bitrix\allow-update.ps1"- В любом проекте на Bitrix вызывай:
/bitrix <ваша задача>
Если навык не появился сразу, перезапусти агент один раз.
Продвинутая установка: выбрать только Claude / только Codex / конкретную версию
Установить навык только в нужный контур:
curl -fsSL https://raw.githubusercontent.com/Poliklot/bitrix-agent-skill/master/install.sh | bash -s -- --claude
curl -fsSL https://raw.githubusercontent.com/Poliklot/bitrix-agent-skill/master/install.sh | bash -s -- --codex
curl -fsSL https://raw.githubusercontent.com/Poliklot/bitrix-agent-skill/master/install.sh | bash -s -- --bothУстановить конкретную release-версию:
curl -fsSL https://raw.githubusercontent.com/Poliklot/bitrix-agent-skill/master/install.sh | bash -s -- --version 1.5.0 --claudeУстановить навык только в нужный контур:
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Poliklot/bitrix-agent-skill/master/install.ps1))) -Claude
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Poliklot/bitrix-agent-skill/master/install.ps1))) -Codex
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Poliklot/bitrix-agent-skill/master/install.ps1))) -BothУстановить конкретную release-версию:
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Poliklot/bitrix-agent-skill/master/install.ps1))) -Version 1.5.0 -Claude- Core-first, а не forum-first. Навык должен опираться на реально установленный Bitrix core и только потом на общие знания.
- Не ломается без
www/local. Если project overrides отсутствуют, truth layer смещается в stock component templates и wizard public/template assets самого ядра. - Не притворяется магазинным экспертом без магазина.
sale,catalog,bizproc,pullи похожие контуры остаютсяdeferred, пока модули реально не установлены. - Не тащит весь контекст сразу. Агент идёт через progressive disclosure и читает только нужный reference-файл.
/bitrix Найди в текущем core, как правильно работать с custom UF-типом и где там onBeforeSave
/bitrix Покажи stock template layer для form и объясни, что реально есть в intranet-варианте
/bitrix Разбери bitrix.sitecorporate в этом ядре и скажи, где wizard кладёт public и templates
/bitrix Проверь, есть ли в этом core sale/catalog и можно ли уже идти в магазинные задачи
Сейчас навык уже проверен и уверенно закрывает:
- ядро и инфраструктуру: ORM, модули, события, кеш, DB layer, session/auth, RBAC, update stepper
- PHP-слой проекта: service-layer, DTO/value-object границы, exceptions vs
Result/Error, project tooling, testing/verification, quality gates и legacy modernization без конфликта с Bitrix-нормами - контентные и системные модули: инфоблоки, HL-блоки, формы, блог, форум, голосования, photogallery, landing, fileman, translate, search, SEO, import/export
- интеграционный, диагностический и эксплуатационный слой: REST, socialservices, b24connector, mobileapp, clouds, bitrixcloud, messageservice, perfmon, admin UI, migrations, agents/cron/stepper, cache/index troubleshooting
Магазинный контур остаётся отдельным этапом и подключается только после установки соответствующего core.
Полная матрица reference-файлов и тем
| Файл справки | Темы |
|---|---|
core-audit-matrix.md |
Матрица текущего non-commerce core: активные модули, deferred-домены, ловушки вроде catalog.* внутри iblock без модуля catalog |
noncommerce-task-matrix.md |
Быстрое сопоставление типовых и нетиповых задач без магазина с правильными reference-файлами |
diagnostic-visibility.md |
Диагностика “в админке есть, на сайте нет”: права, site binding, параметры компонента, фильтры, шаблон, кеши, индексы |
index-cache-diagnostics.md |
Component cache, tagged/managed cache, composite/static HTML, search index, SEO artifacts, landing cache |
component-dataflow-debugging.md |
Трассировка standard component flow: .parameters.php, component.php, result_modifier.php, template.php, component_epilog.php, AJAX |
orm.md |
DataManager, CRUD, связи, фильтры, агрегация, runtime fields, ORM events, Result/Error |
events-routing.md |
EventManager, Engine\Controller, AJAX, роутинг, CSRF |
modules-loader.md |
Структура модуля, Loader, PSR-4, Application, ServiceLocator, Config\Option, Loc |
php-workflow.md |
PHP workflow в Bitrix-проекте: service-layer, DTO, exceptions, composer/phpunit/phpstan/fixer/rector, quality gates без конфликта с core-first |
php-testing.md |
PHP testing и verification в Bitrix-проекте: unit/integration, smoke без готового PHPUnit-контура, test seams, fixtures, vendor noise внутри core |
php-quality.md |
PHP quality gates в Bitrix-проекте: phpstan/psalm/fixer/sniffer/rector без навязывания нового toolchain |
php-legacy-modernization.md |
Безопасная модернизация legacy: boundary extraction, D7 vs C* write paths, DTO/strict_types только в подходящих слоях |
standard-components-noncommerce.md |
Standard components без магазина: active component families, stock templates, catalog.* как iblock-компоненты без commerce-обещаний |
operations-runbook.md |
Эксплуатация без магазина: переносы, agents/cron/stepper, импорты, backup/monitoring, perf diagnostics, core updates |
components.md |
CBitrixComponent, шаблоны, кеш компонента, CComponentEngine |
sitecorporate.md |
bitrix.sitecorporate: wizard shell, corp_services/corp_furniture, wizard_solution, panel rerun, stock furniture.*, wizard site/public и site/templates, conditional catalog dependency в corp_furniture skeleton |
cache-infra.md |
Data\Cache, TaggedCache, CAgent, IO\File/Directory/Path |
clouds.md |
Clouds: bucket-ы, external file storage, file hooks, resize/src/makeFileArray, upload queues, failover |
bitrixcloud.md |
Bitrix Cloud: backup quota/files/jobs, monitoring, policy webservice, local option storage, mobile inspector, backup buckets |
fileman.md |
Fileman: HTML editor, address/geo userfields, map/video property types, PDF/player/map компоненты |
http.md |
Type\DateTime, HttpClient, HttpRequest, HttpResponse |
iblocks.md |
Инфоблоки legacy + D7 ORM, свойства, HL-блоки, события инфоблоков |
highloadblock.md |
Highloadblock: CRUD, compileEntity, dynamic DataManager, права, highloadblock.* компоненты, UI EntitySelector |
photogallery.md |
Галереи, альбомы, USER_ALIAS, section-UF, upload/watermark, REAL_PICTURE, slideshow, photo comments |
mobileapp.md |
MobileApp: admin mobile, JN/native components/extensions, designer apps, push settings, token registration, /mobileapp/jn/* |
b24connector.md |
Bitrix24 connector: connect/disconnect, widgets, openlines/chat/recall/forms, per-site restrictions, public script injection |
iblock-hl-relations.md |
Связи инфоблоков и HL: directory (UF_XML_ID), HL-поля в UF, _REF в ORM, AbstractOrmRepository |
custom-uf-types.md |
Кастомные UF-типы (BaseType, onBeforeSave, загрузка файлов), ACF-подходы через HL (Repeater, Group, Flexible Content, глубокая вложенность) |
forum.md |
Форумы: CForumNew, CForumTopic, CForumMessage, права, подписки, стандартные forum.* компоненты |
vote.md |
Опросы и голосования: CVote, CVoteChannel, CVoteQuestion, CVoteAnswer, voting.* компоненты |
landing.md |
Лендинги: Site, Landing, Block, Hook, Rights, public URL, landing.* компоненты |
location.md |
Геолокации и адреса: LocationService, AddressService, FormatService, location controllers, location ORM |
socialservices.md |
Соц-авторизация: CSocServAuthManager, провайдеры OAuth, UserLinkTable, AuthFlow, socserv.* компоненты |
messageservice.md |
MessageService: SMS-провайдеры, Message, SmsManager, ограничения, REST, callback-и, config components |
translate.md |
Translate: lang-файлы, индекс фраз, translate UI, CSV import/export, translate:index, права и panel hooks |
perfmon.md |
Perfmon: SQL/hit/cache diagnostics, схема, индексы, admin-страницы производительности |
sale.md |
Интернет-магазин [deferred]: только при установленном модуле sale |
catalog.md |
Торговый каталог [deferred]: только при установленном модуле catalog |
commerce-workflows.md |
Магазинные workflow [deferred]: только после установки магазинного core |
blog-socialnet.md |
Блог текущего core: CBlog*, D7 read-only таблицы PostTable/CommentTable, mail reply handlers, search reindex, stock template variants (micro, old_version, socialnetwork), conditional socialnet contour |
push-pull.md |
Push&Pull [deferred]: только при установленном модуле pull |
workflow.md |
Бизнес-процессы [deferred]: только при установленном модуле bizproc |
subscribe.md |
Рассылки: CRubric, CSubscription, CPosting, CPostingTemplate, подписки и выпуски |
security.md |
AppSec + модуль security: WAF, redirect/IP rules, session hardening, OTP/MFA, recovery codes, antivirus, site checker, xscan |
rest.md |
REST-методы, OnRestServiceBuildDescription, REST-события, Webhook, OAuth |
admin-ui.md |
Админ-страницы, CAdminList, CAdminForm, CAdminTabControl, кастомные UF-типы в админке |
entities-migrations.md |
Создание инфоблоков/типов/свойств, групп, пользователей, прав доступа, SQL-миграции |
sef-urls.md |
ЧПУ (SEF), urlrewrite.php, UrlRewriter D7, SEF_MODE/SEF_RULE, CComponentEngine |
seo-cache-access.md |
Очистка кеша, noindex, sitemap, robots.txt, canonical, OpenGraph, JSON-LD schema.org |
mail-notifications.md |
CEventType, CEventMessage, Mail\Event::send, SMS-провайдеры |
users.md |
UserTable D7, CUser::Add/Login/Update, группы пользователей, UF-поля, восстановление пароля |
templates.md |
Структура шаблона сайта, Asset D7, $APPLICATION в header/footer, композитный кеш |
webforms.md |
form в реальном core: формы, результаты, статусы, handlers, validators, CRM link, secure file access, stock component/template layer и intranet variants |
search.md |
CSearch::Index/DeleteIndex/ReIndexAll, CSearchTitle, BeforeIndex, OnSearch, OnSearchGetURL, быстрый AJAX-поиск |
import-export.md |
Импорт CSV/URL, многошаговый импорт, CFile::SaveFile/MakeFileArray/ResizeImageGet, потоковый экспорт |
grid-admin-modern.md |
Современный Grid UI: Grid, Settings, Options, ComponentParams, processRequest, getOrmFilter, bitrix:main.ui.grid |
update-stepper.md |
Stepper (итеративные обновления), bindClass, CLI команды (update:*, make:*, orm:annotate, messenger:consume-messages) |
validation.md |
ValidationService, PHP 8 Attributes (#[NotEmpty], #[Email], #[Length], #[Min], #[Max] и др.) |
session-auth.md |
Session (ArrayAccess, enableLazyStart, isActive), KernelSession, CompositeSessionManager, SessionConfigurationResolver |
database-layer.md |
DB\Connection, SqlHelper (quote, forSql, getCurrentDateTimeFunction), различия MySQL/PgSQL/Oracle/MSSQL |
access-rbac.md |
Access\Permission\PermissionDictionary, RoleDictionary, BaseAccessController, Rule, RBAC |
file-upload-modern.md |
FileUploader\FieldFileUploaderController, UploaderController, Configuration, UploadedFilesRegistry |
numerator.md |
Numerator, NumberGeneratorFactory, NumeratorTable, шаблоны нумерации документов |
userconsent.md |
UserConsent\Consent::addByContext, Agreement, DataProvider, GDPR-согласие |
Навык следует формату progressive disclosure от agentskills.io:
bitrix/SKILL.md— точка входа: core-first правила, рабочий алгоритм, подтверждение перед изменением данных, маршрутизация по темамbitrix/references/*.md— тематические файлы, загружаются по необходимости, когда задача требует конкретной темы
Агент читает только релевантный reference-файл, а не весь контекст сразу.
Обновление, версии и удаление
bash ~/.claude/skills/bitrix/update.sh
bash ~/.claude/skills/bitrix/update.sh --force
bash ~/.claude/skills/bitrix/update.sh --check
bash ~/.claude/skills/bitrix/update.sh --version 1.5.0
bash "${CODEX_HOME:-$HOME/.codex}/skills/bitrix/update.sh"
bash "${CODEX_HOME:-$HOME/.codex}/skills/bitrix/update.sh" --force
bash "${CODEX_HOME:-$HOME/.codex}/skills/bitrix/update.sh" --check
bash "${CODEX_HOME:-$HOME/.codex}/skills/bitrix/update.sh" --version 1.5.0powershell -ExecutionPolicy Bypass -File "$HOME\.claude\skills\bitrix\update.ps1"
powershell -ExecutionPolicy Bypass -File "$HOME\.claude\skills\bitrix\update.ps1" -Force
powershell -ExecutionPolicy Bypass -File "$HOME\.claude\skills\bitrix\update.ps1" -Check
powershell -ExecutionPolicy Bypass -File "$HOME\.claude\skills\bitrix\update.ps1" -Version 1.5.0
$CodexHome = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $HOME '.codex' }
powershell -ExecutionPolicy Bypass -File (Join-Path (Join-Path $CodexHome 'skills') 'bitrix\update.ps1')
powershell -ExecutionPolicy Bypass -File (Join-Path (Join-Path $CodexHome 'skills') 'bitrix\update.ps1') -Force
powershell -ExecutionPolicy Bypass -File (Join-Path (Join-Path $CodexHome 'skills') 'bitrix\update.ps1') -Check
powershell -ExecutionPolicy Bypass -File (Join-Path (Join-Path $CodexHome 'skills') 'bitrix\update.ps1') -Version 1.5.0Начиная с версии 1.3.7, при первом содержательном обращении к /bitrix навык должен сначала проверить release и, если версия выросла, предложить обновление в явной форме: Обновилась версия скилла с X до Y. Давай обновим?
bash ~/.claude/skills/bitrix/versions.sh
bash "${CODEX_HOME:-$HOME/.codex}/skills/bitrix/versions.sh"powershell -ExecutionPolicy Bypass -File "$HOME\.claude\skills\bitrix\versions.ps1"
$CodexHome = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $HOME '.codex' }
powershell -ExecutionPolicy Bypass -File (Join-Path (Join-Path $CodexHome 'skills') 'bitrix\versions.ps1')bash ~/.claude/skills/bitrix/uninstall.sh
bash "${CODEX_HOME:-$HOME/.codex}/skills/bitrix/uninstall.sh"powershell -ExecutionPolicy Bypass -File "$HOME\.claude\skills\bitrix\uninstall.ps1"
$CodexHome = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $HOME '.codex' }
powershell -ExecutionPolicy Bypass -File (Join-Path (Join-Path $CodexHome 'skills') 'bitrix\uninstall.ps1')- Claude Code или Codex
- 1C-Bitrix CMS 23+
- Issue-ы и PR приветствуются, особенно если вы принесли новый core-first кейс из реального проекта.
- Если навык помог, поставьте star: это лучший сигнал, что такой Bitrix-first подход действительно нужен.
MIT. Подробности в LICENSE.
