From sf-skills
Generates deployable Salesforce PermissionSet XML with object, field, user and app permissions. Includes FLS, naming conventions, and deployment-safe field handling.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sf-skills:generating-permission-setThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use when generating or editing permission set metadata, or when granting object, field, user, and app permissions.
Use when generating or editing permission set metadata, or when granting object, field, user, and app permissions.
Start by defining the required permission set properties:
<PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>YourPermissionSetName</fullName>
<label>Display Name for Administrators</label>
<description>Clear description of purpose and intended audience</description>
</PermissionSet>
Naming conventions:
Sales_Manager_Access)Add CRUD permissions for standard and custom objects:
<objectPermissions>
<allowCreate>true</allowCreate>
<allowRead>true</allowRead>
<allowEdit>true</allowEdit>
<allowDelete>false</allowDelete>
<modifyAllRecords>false</modifyAllRecords>
<viewAllRecords>false</viewAllRecords>
<viewAllFields>false</viewAllFields>
<object>Account</object>
</objectPermissions>
Define field permissions for sensitive or custom fields:
<fieldPermissions>
<editable>true</editable>
<readable>true</readable>
<field>Account.SSN__c</field>
</fieldPermissions>
Important:
<required>true</required>:<fields>
<fullName>FieldName__c</fullName>
<required>true</required>
</fields>
ObjectName.FieldName for field referencesAdd system-level permissions for features and capabilities:
<userPermissions>
<enabled>true</enabled>
<name>ApiEnabled</name>
</userPermissions>
<userPermissions>
<enabled>true</enabled>
<name>RunReports</name>
</userPermissions>
Common permissions:
ApiEnabled: API accessViewSetup: View Setup menuManageUsers: User managementRunReports: Report executionSecurity review required for:
ViewAllData: Read all recordsModifyAllData: Edit all recordsManageUsers: User administrationMake applications and tabs visible to users:
<applicationVisibilities>
<application>Sales_Console</application>
<visible>true</visible>
</applicationVisibilities>
<tabSettings>
<tab>CustomTab__c</tab>
<visibility>Visible</visibility>
</tabSettings>
Application visibility options:
Tab visibility options:
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 appNone: Not visibleCRITICAL - Tab Naming:
Grant access to custom code:
<classAccesses>
<apexClass>CustomController</apexClass>
<enabled>true</enabled>
</classAccesses>
<pageAccesses>
<apexPage>CustomPage</apexPage>
<enabled>true</enabled>
</pageAccesses>
Specify license requirements and record type visibility:
<license>Salesforce</license>
<hasActivationRequired>false</hasActivationRequired>
<recordTypeVisibilities>
<recordType>Account.Business</recordType>
<visible>true</visible>
<default>true</default>
</recordTypeVisibilities>
Enable access to Agentforce Employee Agents for users assigned to this permission set:
Sales_Assistant_Agent trueField requirements:
Important:
Before deploying, verify:
<fieldPermissions><fieldPermissions> fails deployment. Required fields cannot have FLS; omit them entirely. Always confirm from object/field metadata that a field exists and is not required—never assume.__c for custom objects, fields, tabs) cause failure.Deploy using Salesforce CLI
npx claudepluginhub ccmalcom/sf-skills-plugin --plugin sf-skillsConfigures Salesforce Profiles, Permission Sets, Roles, OWD, and Sharing Rules for enterprise RBAC including SSO integration.
Resolves NetSuite SDF permission configurations: customrole XML, permkey/permlevel values, script deployment permissions, and least-privilege role design. Validates against bundled reference data.
Builds Salesforce Lightning Experience apps from natural language by generating all required metadata types (objects, fields, pages, tabs, security) in dependency order.