mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-08-12 02:49:15 +08:00
60 lines
3.4 KiB
YAML
60 lines
3.4 KiB
YAML
# Example completed spec for: generating-validation-rule
|
|
# In practice, this file lives at: skills/generating-validation-rule/spec.yaml
|
|
|
|
skill_name: "generating-validation-rule"
|
|
skill_type: "metadata_generation"
|
|
|
|
description: "Create and update Salesforce validation rules for any standard or custom object. Use when the user asks to add a validation rule, enforce field requirements, prevent invalid data entry, or implement record-level business logic constraints. TRIGGER when: user says validation rule, field validation, required field check, data constraint, record validation, prevent invalid data. DO NOT TRIGGER when: user asks about Flow validation or Apex validation logic."
|
|
|
|
authoritative_inputs:
|
|
- type: metadata_definition
|
|
path: "https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_validationrule.htm"
|
|
summary: "Salesforce Metadata API reference for ValidationRule. Defines XML structure, required fields, and formula constraints."
|
|
- type: schema
|
|
path: "examples/simple-metadata-skill/assets/validation_rule_template.xml"
|
|
summary: "XML template showing the standard ValidationRule metadata structure with placeholder fields."
|
|
|
|
dependencies:
|
|
- generating-apex
|
|
- generating-flow
|
|
|
|
gotchas:
|
|
- issue: "Rule fires on wrong record types"
|
|
resolution: "Add RecordType.DeveloperName check to formula"
|
|
- issue: "Rule blocks data migration/bulk loads"
|
|
resolution: "Add bypass via Custom Permission or Custom Metadata"
|
|
- issue: "ISCHANGED() always false on insert"
|
|
resolution: "Guard with NOT(ISNEW()) before ISCHANGED()"
|
|
- issue: "Formula too long (> 5000 chars)"
|
|
resolution: "Split into multiple rules or use helper formula field"
|
|
|
|
generation:
|
|
stage: Draft
|
|
files_created:
|
|
- "skills/generating-validation-rule/SKILL.md"
|
|
- "skills/generating-validation-rule/assets/validation_rule_template.xml"
|
|
- "skills/generating-validation-rule/references/formula_patterns.md"
|
|
- "skills/generating-validation-rule/examples/require_email_on_contact.xml"
|
|
- "skills/generating-validation-rule/tests/unit/test_generating-validation-rule.py"
|
|
- "skills/generating-validation-rule/tests/unit/fixtures/contact_object_fields.json"
|
|
- "skills/generating-validation-rule/tests/evals/generating-validation-rule-required-field/prompt.md"
|
|
- "skills/generating-validation-rule/tests/evals/generating-validation-rule-required-field/gold/ContactEmailRequired.validationRule-meta.xml"
|
|
- "skills/generating-validation-rule/tests/evals/generating-validation-rule-required-field/seed-data/Contact_fields.json"
|
|
- "skills/generating-validation-rule/tests/evals/generating-validation-rule-date-range/prompt.md"
|
|
- "skills/generating-validation-rule/tests/evals/generating-validation-rule-date-range/gold/OpportunityCloseDate.validationRule-meta.xml"
|
|
- "skills/generating-validation-rule/tests/evals/generating-validation-rule-date-range/seed-data/Opportunity_fields.json"
|
|
last_updated: "2026-04-28"
|
|
|
|
test_prompts:
|
|
positive:
|
|
- "Add a validation rule to ensure Opportunity Amount is greater than zero"
|
|
- "Create a validation rule that requires email on Contact"
|
|
- "Make sure close date is always after today on Opportunity"
|
|
negative:
|
|
- "Create a Flow that validates user input"
|
|
- "Write Apex code to check if the record is valid"
|
|
|
|
eval_datasets:
|
|
- "generating-validation-rule-required-field"
|
|
- "generating-validation-rule-date-range"
|