From 0d668f51e78e1b5835a8869d40ed2d81cf3a342b Mon Sep 17 00:00:00 2001 From: irisli0 <140855722+irisli0@users.noreply.github.com> Date: Wed, 18 Mar 2026 11:08:57 -0700 Subject: [PATCH] W-21585248 Updating generate-permission-set skill to improve metadata generation (#47) * more changes * rename file * change name back --------- Co-authored-by: Hemant Singh Bisht --- skills/generate-permission-set/SKILL.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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)