원클릭으로
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 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
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 стандарту.
| 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;