ワンクリックで
bitrix-best-practice-core
Use when designing, reviewing, or implementing any PHP code.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when designing, reviewing, or implementing any PHP code.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Use for Bitrix SQL and ORM patterns raw SQL or Connection queries, DataManager maps or field definitions, Objectify objects or collections, ORM queries or filters, ORM writes or batch persistence. Use when designing, reviewing, or implementing DB reads, writes, schema, or data access code.
Создает и усиливает rule-файлы для best-practice skills с каталогом `rules/`. Используй, когда нужно добавить новый раздел best-practice, переписать существующий `rules/*.md`, сделать rule-файл понятнее для AI и привести его к единому AI-first стандарту.
SOC 職業分類に基づく
| name | bitrix-best-practice-core |
| description | Use when designing, reviewing, or implementing any PHP code. |
Скилл помогает понять, какие нужно использовать Bitrix/PHP best practices.
rules/controller.mdЧитай rules/controller.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Engine\Controller или его наследника;*Action()-метод;rules/error.mdЧитай rules/error.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Error, Bitrix\Main\ErrorCollection или прикладные error-классы поверх них;getErrors(), getError(), getErrorCollection() или getErrorByCode() в service, controller или response flow;code, customData и публичного error-contract для UI, AJAX или другого клиента;Result, controller lifecycle и AjaxJson.rules/result.mdЧитай rules/result.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Result, isSuccess(), setData(), getData(), addError() или addErrors();Result из service, command, handler или integration layer как outcome-contract;Bitrix\Main\Result, самодельным *Result-классом и неявным массивом как return DTO;Result::setData() и граница между success-data и error flow.rules/request.mdЧитай rules/request.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Request, HttpRequest, $this->getRequest() или Context::getCurrent()->getRequest();get(), getQuery(), getPost(), getHeader(), getCookie() или getJsonList();$_REQUEST, $_GET, $_POST, $_COOKIE и php://input на framework-native request API;JsonPayload, decodeJson() или decodeJsonStrict().rules/response.mdЧитай rules/response.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Response, HttpResponse, addHeader(), setStatus(), addCookie() или redirectTo();Bitrix\Main\Engine\Response\Json, AjaxJson, Redirect, File, HtmlContent или render-response helper'ы;header(), Set-Cookie, setcookie() или json_encode() на штатный response layer Bitrix;rules/routing.mdЧитай rules/routing.md, если задача затрагивает хотя бы одну из этих областей:
<module>/install/routes/ или регистрация маршрутов в /bitrix/routes/ и /local/routes/;RoutingConfigurator, prefix, group, HTTP-методы маршрута, where, default, name;PublicPageController или перенос legacy URL с urlrewrite.php на modern routing;[Controller::class, 'action'] в маршруте.rules/loader.mdЧитай rules/loader.md, если задача затрагивает хотя бы одну из этих областей:
Loader::includeModule() или Loader::requireModule();CModule::IncludeModule() или CModule::IncludeModuleEx();rules/geo-ip.mdЧитай rules/geo-ip.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Service\GeoIp\Manager, getRealIp(), getDataResult() или convenience getters вроде getCountryCode() / getCityName();Bitrix\Main\Web\IpAddress в контексте GeoIP lookup, range cache или различий между IPv4 и IPv6 для geodata;Bitrix\Main\Service\GeoIp\Base или регистрация через onMainGeoIpHandlersBuildList;onGeoIpGetResult;Result-based GeoIP lookup.rules/uri.mdЧитай rules/uri.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Web\Uri, new Uri($url), getQuery(), addParams(), deleteParams(), toAbsolute() или resolveRelativeUri();Uri, parse_url() и parse_str() для query string, host, path, fragment или absolute URL;preserveDots.rules/http-client.mdЧитай rules/http-client.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Web\HttpClient, new HttpClient(), get(), post(), query() или download();file_get_contents($url) / stream_context_create() для remote http/https URL;curl_init, curl_setopt, curl_exec и других raw curl_* вызовов на framework-native transport.rules/jwt.mdЧитай rules/jwt.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Web\JWT, JWT::encode(), JWT::decode(), JWT::urlsafeB64Encode() или JWT::urlsafeB64Decode();Bitrix\Main\Web\JWK, JWK::parseKeySet() или JWK::parseKey();rules/date-time.mdЧитай rules/date-time.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Type\Date или Bitrix\Main\Type\DateTime;createFromUserTime(), tryParse(), toUserTime(), toString(), createFromTimestamp() или createFromPhp();\DateTime / \DateTimeImmutable.rules/option.mdЧитай rules/option.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Config\Option, Option::get(), set(), getRealValue(), getForModule() или delete();COption::GetOptionString(), SetOptionString(), GetOptionInt() или RemoveOption() как legacy trigger;default_option.php, module options.php, site-specific setting или feature flag / policy в БД;Option, deploy-time config в .settings.php и временным runtime-state.rules/logger.mdЧитай rules/logger.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Diag\Logger, Bitrix\Main\Diag\LoggerFactory, LoggerRegistry, FileLogger или LogFormatter;Psr\Log\LoggerInterface, PSR-3 levels (info, warning, error, debug) и structured context;.settings.php через секцию loggers или DI через constructorParams;AddMessage2Log(), Logger::create() или ad hoc file_put_contents() / error_log() на framework-native logging path;rules/uuid-generator.mdЧитай rules/uuid-generator.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\UuidGenerator или UuidGenerator::generateV4();UuidGenerator, uniqid(), Random::getBytes(), ручной сборкой UUID или локальным helper-генератором;{uuid}, но canonical generator должен остаться единым.rules/validation.mdЧитай rules/validation.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Validation\Rule\... на параметрах *Action() или свойствах input object;ValidationParameter, ValidationService, ValidationResult, ValidationError или ValidationGroup;ValidationParameter и явным ValidationService::validate();Bitrix\Main\Validation.rules/service-locator.mdЧитай rules/service-locator.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\DI\ServiceLocator, ServiceLocator::getInstance(), get(), has(), addInstance() или addInstanceLazy();{module}/.settings.php, service registration, service id, FQCN binding или interface binding для DI;ServiceLocator::get(...) и ручным new MyService() для shared service;rules/persistent-storage.mdЧитай rules/persistent-storage.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Data\Storage\PersistentStorageInterface, StorageInterface, DeferredStorageDecorator или ServiceLocator::get(PersistentStorageInterface::class);Bitrix\Main\Config\Option::get() / Option::set() в сценарии, где нужно понять, конфигурация это или временное runtime-state;Option, persistent storage и cache (Bitrix\Main\Data\Cache / ManagedCache) для хранения данных.rules/cache.mdЧитай rules/cache.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Data\Cache, ManagedCache, TaggedCache, Cache::createInstance(), initCache(), startDataCache(), endDataCache() или abortDataCache();Application::getInstance()->getCache(), getManagedCache(), getTaggedCache() или container binding cache-сервисов в main/.settings.php;CPHPCache, CCacheManager, $CACHE_MANAGER или CStackCacheManager как legacy trigger;