platform-validation-rule-generate — скилл для Claude Code: правила
Скилл для создания и правки правил валидации Salesforce: собирает метаданные, формулы и сообщения об ошибках. Пригодится, когда нужно запретить сохранение неполных записей.
npx skills add forcedotcom/sf-skills --skill platform-validation-rule-generate -a claude-codeЧто делает platform-validation-rule-generate
Скилл берёт на себя работу с ValidationRule — декларативным компонентом Salesforce, который проверяет формулу при сохранении записи и блокирует операцию, если формула вернула TRUE. Агент собирает fullName, флаг active, errorConditionFormula и errorMessage (до 255 символов) и следит за правилами именования: имя начинается с буквы, не заканчивается подчёркиванием, без двух подчёркиваний подряд и не длиннее 40 символов.
Внутри — спецификация метаданных и список типовых ошибок в формулах. Например, TEXT() нельзя применять к текстовым полям, VALUE() — только к текстовым, а DAY() и MONTH() требуют поля типа Date, не Datetime. Для проверки picklist-поля нужен ISPICKVAL(). Отдельно оговорено, как читать указания: «update the formula to …» означает полную замену логики, а «update the formula to also …» — дописать условие через AND() или OR().
Самая частая причина падений — XML. Любая формула с XML-тегами должна лежать внутри секции CDATA, иначе деплой не пройдёт. Файл правила обязан иметь расширение .validationRule-meta.xml. Скилл рассчитан на API-версию не ниже 60.0 — на более старых организациях метаданные просто не соберутся.
Какие задачи решает
- создать правило валидации для контроля качества данных
- запретить сохранение неполных или некорректных записей
- сгенерировать метаданные правила вместе с формулой
- починить формулу, которая ломает деплой из-за XML
- разобрать ошибку валидации и переписать условие
Примеры запросов агенту
- Создай правило валидации на объекте Account: запретить сохранение, если поле BillingCountry пустое, и выведи понятное сообщение.
- Обнови формулу правила, чтобы также проверялось изменение поля StageName через ISCHANGE().
- Почему падает деплой этого правила валидации? Проверь формулу и XML.
Как установить platform-validation-rule-generate
1Через Skills CLI (Vercel)
npx skills add forcedotcom/sf-skills --skill platform-validation-rule-generate -a claude-code2Вручную: положить файлы
~/.claude/skills/platform-validation-rule-generate/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/platform-validation-rule-generate/
1Через Skills CLI (Vercel)
npx skills add forcedotcom/sf-skills --skill platform-validation-rule-generate -a codex2Вручную: положить файлы
.agents/skills/platform-validation-rule-generate/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add forcedotcom/sf-skills --skill platform-validation-rule-generate -a cursor2Вручную: положить файлы
.cursor/skills/platform-validation-rule-generate/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install forcedotcom/sf-skills platform-validation-rule-generate2Вручную: положить файлы
.github/skills/platform-validation-rule-generate/SKILL.md1Через Skills CLI (Vercel)
npx skills add forcedotcom/sf-skills --skill platform-validation-rule-generate -a gemini-cli2Командой платформы
gemini skills install https://github.com/forcedotcom/sf-skills --path skills/platform-validation-rule-generateВручную: положить файлы
.devin/skills/platform-validation-rule-generate/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add forcedotcom/sf-skills --skill platform-validation-rule-generate -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о platform-validation-rule-generate
Как установить platform-validation-rule-generate в Claude?
Выполните npx skills add forcedotcom/sf-skills --skill platform-validation-rule-generate -a claude-code. Скилл окажется в ~/.claude/skills/platform-validation-rule-generate/SKILL.md.
Что делает platform-validation-rule-generate?
Помогает создавать, менять и проверять правила валидации Salesforce: собирает метаданные, пишет формулу условия и текст ошибки, подсказывает, где формула не сработает.
Какая версия API нужна для этого скилла?
Минимум 60.0. На организациях с более старой версией метаданные правила не соберутся.
Исходный текст
SKILL.md · Apache-2.0
---
name: platform-validation-rule-generate
description: "Use this skill when users need to create, modify, or validate Salesforce Validation Rules. Trigger when users mention validation rules, field validation, data quality rules, formula validation, error messages, or validation logic. Also use when users encounter validation errors, need to update formulas, or want to enforce business rules at the data layer. Always use this skill for any validation rule work."
metadata:
version: "1.0"
domains: ["Platform"]
minApiVersion: "60.0"
---
## When to Use This Skill
Use this skill when you need to:
- Create validation rules to enforce data quality
- Prevent invalid records from being saved
- Generate validation rule metadata with formulas
- Add business logic validation to objects
- Troubleshoot deployment errors related to validation rules
## Specification
# ValidationRule Metadata Specification
### Overview
Validation Rules are declarative metadata components used to enforce data quality and business logic in Salesforce. They evaluate a formula expression when a record is saved and prevent the save operation if the expression returns TRUE.
### Purpose
-Enforce business rules at the data layer
-Prevent invalid or incomplete records from being saved
-Display meaningful error messages to guide users
### Required Properties
#### Core Validation Rule Properties
- **fullName**
- The unique API name of the validation rule
- Must start with a letter
- Can contain letters, numbers, and underscores
- Cannot end with an underscore
- Cannot contain consecutive underscores
- Cannot exceed 40 character.
- **active**
-Indicates whether the validation rule is enabled
true → Rule is enforced
false → Rule is inactive
- **errorConditionFormula**
- The logical formula that evaluates record data
- Must return TRUE or FALSE
- If TRUE, the validation rule triggers an error
- **errorMessage**
- The message displayed to the user when validation fails
- Maximum length: 255 characters
### Specific Function Guidelines
- TEXT - TEXT() function MUST NOT be used with Text fields, to fix this you can just remove the TEXT() function.
- CASE - In salesforce CASE() function, last parameter is the default value. Admins often miss to provide this and number of parameters to CASE() function are always even.
- VALUE - VALUE() function should only be used with Text fields. If a number is being used as a parameter to the VALUE() function, remove the VALUE() function.
- DAY - DAY() function should only be used with Date fields. If a Datetime field is being used as a parameter to the DAY() function, convert it into a Date first.
- MONTH - MONTH() function should only be used with Date fields. If a Datetime field is being used as a parameter to the MONTH() function, convert it into a Date first.
- DATEVALUE - DATEVALUE() function should only be used with DateTime fields. If a Date is being used as a parameter to the DATEVALUE() function, remove the DATEVALUE() function.
- ISPICKVAL - If checking equality of a picklist type field, the function ISPICKVAL() MUST be used.
- ISCHANGE - Use ISCHANGE() function to check the value of a record has changed.
### Critical Rules
1. Formula XML Handling(MOST COMMON ERROR)
- ANY errorConditionFormula containing XML tags MUST be inside a CDATA section in the metadata XML.
2. Interpretation of "Update" Instructions. When receiving instructions to modify a formula, distinguish between a replacement and an addition:
- "Update the formula to [Action]": Completely replace the existing formula logic with the new requirement.
- "Update the formula to also [Action]": Keep the existing logic and append the new requirement (usually by wrapping the logic in an AND() or OR() function).
3. File Format Requirement
- Validation rule files MUST always use the `.validationRule-meta.xml` extension.
© forcedotcom · Apache-2.0 · forcedotcom/sf-skills