afv-library/skills/salesforce-skill-creator/examples/simple-metadata-skill/spec.yaml
2026-04-29 15:31:46 +05:30

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"