diff --git a/skills/generate-permission-set/SKILL.md b/skills/generate-permission-set/SKILL.md index 791e5e1..9e416ad 100644 --- a/skills/generate-permission-set/SKILL.md +++ b/skills/generate-permission-set/SKILL.md @@ -1,6 +1,6 @@ --- name: generate-permission-set -description: Generates correct, deployable Salesforce permission set metadata (PermissionSet XML) with object, field, user, and app permissions. Use when creating or editing permission set metadata, PermissionSet XML, object permissions, field-level security (FLS), tab visibility, or deploying permission sets. +description: Generates correct, deployable Salesforce permission set metadata (PermissionSet XML) with object, field, user, and app permissions. Use this skill when creating or editing permission set metadata, object permissions, field-level security (FLS), tab visibility, or deploying permission sets. compatibility: Salesforce Metadata API v60.0+ metadata: author: afv-library @@ -59,6 +59,9 @@ Define field permissions for sensitive or custom fields: - Required fields must NEVER appear in list of field permissions. Granting field-level security on required fields is not allowed by the platform and will cause deployment failure. - Before adding any field, confirm from the object metadata that the field exists and is not required - A field is required when its metadata contains `true`: +- Formula fields cannot be editable +- Master-detail fields are required fields on the child (detail) object + ```xml FieldName__c @@ -114,9 +117,9 @@ Make applications and tabs visible to users: - can be true or false **Tab visibility options:** -- `Visible`: Always shown -- `Available`: Available but not default -- `Hidden`: Not visible +- `Visible`: The tab is available on the All Tabs page and appears in the visible tabs for its associated app. Can be customized. +- `Available`: The tab is available on the All Tabs page. Individual users can customize their display to make the tab visible in any app +- `None`: Not visible **CRITICAL - Tab Naming:** - Custom object tabs: MUST include the __c suffix (e.g., MyCustomObject__c)