К основному содержанию
скилл CX Codex

platform-permission-set-generate — скилл для Claude Code

Создаёт метаданные Salesforce PermissionSet XML для прав объектов, полей, пользователей и приложений. Нужен при настройке FLS, вкладок и развёртывании наборов разрешений.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add forcedotcom/sf-skills --skill platform-permission-set-generate -a claude-code
Открыть на GitHub

Что делает platform-permission-set-generate

Скилл формирует и редактирует PermissionSet XML: задаёт имя, метку и описание, CRUD-права для объектов, доступ к полям, системные разрешения, видимость приложений и вкладок. При необходимости добавляет доступ к Apex-классам, Visualforce-страницам, типам записей и Agentforce Employee Agents.

Он учитывает правила именования API: для пользовательских объектов и вкладок нужен суффикс __c, а стандартные вкладки используют префикс standard-. Для полей применяются ссылки вида ObjectName.FieldName.

Обязательные поля нельзя включать в fieldPermissions, иначе развёртывание завершится ошибкой. Это повод сверить метаданные объекта до генерации XML. Скилл рассчитан на API версии 60.0.

Какие задачи решает

  • собрать PermissionSet XML с правами CRUD
  • выдать доступ к явно названным полям объекта
  • настроить видимость приложений и вкладок
  • добавить доступ к Apex-классам и Visualforce-страницам
  • исключить обязательные поля из разрешений полей

Примеры запросов агенту

  • Создай PermissionSet XML для Account с чтением, созданием и редактированием.
  • Добавь разрешения полей для Account.SSN__c и проверь, что поле не обязательное.
  • Настрой видимость Sales_Console и вкладки standard-Account в наборе разрешений.

Как установить platform-permission-set-generate

1Через Skills CLI (Vercel)

npx skills add forcedotcom/sf-skills --skill platform-permission-set-generate -a claude-code

2Вручную: положить файлы

~/.claude/skills/platform-permission-set-generate/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/platform-permission-set-generate/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора167

platform-soql-query Пишет и оптимизирует запросы SOQL/SOSL в Salesforce: от формулировки на естественном языке до анализа селективности и плана запроса. CX Codex +1 6 800установок platform-apex-logs-debug Скилл разбирает debug-логи Salesforce: находит причину падения, ловит превышение governor limits и объясняет стек вызовов. CX Codex +1 6 800установок platform-metadata-deploy Оркестрирует деплой метаданных Salesforce через sf CLI v2, проверяет изменения перед релизом и ведёт развёртывание в прод без прямых запусков deploy start. CX Codex +1 6 700установок platform-metadata-retrieve Скилл тянет метаданные из org в локальный проект через sf project retrieve start: все изменения, каталог, тип, манифест или пакет. CX Codex +1 6 600установок platform-docs-get Тянет официальную документацию Salesforce и заставляет агента отвечать по ней, а не по чужим блогам. Полезен, когда страницы рендерятся через JS и обычный fetch возвращает пустую оболочку. CX Codex +1 6 500установок platform-custom-field-generate Генерирует и проверяет XML-метаданные кастомных полей Salesforce в формате SFDX. Скилл помогает избежать ошибок деплоя в Metadata API при создании связей, формул и списков выбора. CX Codex +1 6 500установок platform-custom-object-generate Генерирует и проверяет XML кастомных объектов Salesforce, следит, чтобы описание объекта не устаревало после правок полей и правил валидации. CX Codex +1 6 400установок dx-code-analyzer-run Скилл гоняет Salesforce Code Analyzer по вашему проекту и разбирает результаты: движки, категории, severity, автофиксы. Пригодится перед AppExchange-ревью. CX Codex +1 6 400установок

Похожие

Salesforce Visualforce Development официальный github Субагент для GitHub Copilot, который пишет и проверяет страницы Visualforce вместе с их Apex-контроллерами. ★ 40 418звёзд репо salesforce-apex-quality официальный github Проверяет Apex-код на риски governor limits, проблемы безопасности и пробелы в тестах. Подходит для ревью классов, триггеров и тестовых классов. 884установок salesforce-developer https://github.com/Jeffallan Пишет Apex-классы, собирает Lightning Web Components, оптимизирует SOQL-запросы и настраивает пакетную обработку на платформе Salesforce. Следит за governor limits и булкифицирует код. CX Codex +1 4 300установок salesforce-dx Mindrally Скилл задаёт агенту правила разработки на Salesforce DX: Apex, триггеры, LWC, scratch orgs и выкладка через SFDX CLI. CX Codex +1 688установок salesforce-development Mindrally Скилл задаёт агенту правила разработки на Salesforce: Apex, триггеры, Lightning Web Components, SOQL и метаданные. Пригодится, когда пишете код для org и хотите, чтобы агент держал стиль и лимиты платформы. CX Codex +1 659установок salesforce-apex-cursorrules-prompt-file PatrickJS Правило для Cursor, которое настраивает ИИ на разработку Salesforce на Apex: очередь вместо @future, паттерны GoF и минимум комментариев. ★ 41 011звёзд репо

Рядом в теме «Бэкенд и API»

Всё по теме «Бэкенд и API» →

Вопросы о platform-permission-set-generate

Как установить platform-permission-set-generate в Claude Code?

Выполните по порядку npx skills add forcedotcom/sf-skills --skill platform-permission-set-generate -a claude-code, затем ещё раз npx skills add forcedotcom/sf-skills --skill platform-permission-set-generate -a claude-code. Файл скилла расположен в ~/.claude/skills/platform-permission-set-generate/SKILL.md.

Что делает platform-permission-set-generate?

Он создаёт и редактирует Salesforce PermissionSet XML с правами объектов, полей, пользователей, приложений и вкладок. Также покрывает доступ к Apex, Visualforce, типам записей и агентам.

Почему обязательные поля нельзя добавлять в fieldPermissions?

Salesforce не разрешает назначать безопасность на уровне полей обязательным полям, поэтому такое XML-описание не развёртывается. Поле нужно заранее проверить в метаданных объекта.

Исходный текст

SKILL.md · Apache-2.0
---
name: platform-permission-set-generate
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."
metadata:
  version: "1.0"
  domains: ["Platform"]
  minApiVersion: "60.0"
---

## When to Use This Skill

Use when generating or editing permission set metadata, or when granting object, field, user, and app permissions.

## Step 1: Define Core Properties

Start by defining the required permission set properties:

```xml
<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:**
- Use descriptive API names (e.g., `Sales_Manager_Access`)

## Step 2: Configure Object Permissions

Add CRUD permissions for standard and custom objects:

```xml
<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>
```

## Step 3: Set Field-Level Security

Define field permissions for sensitive or custom fields:

```xml
<fieldPermissions>
    <editable>true</editable>
    <readable>true</readable>
    <field>Account.SSN__c</field>
</fieldPermissions>
```

**Important:**
- 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 `<required>true</required>`:
- Formula fields cannot be editable
- Master-detail fields are required fields on the child (detail) object

```xml
<fields>
    <fullName>FieldName__c</fullName>
    <required>true</required>
</fields>
```
- Use format `ObjectName.FieldName` for field references
- Set both readable and editable to true when the user needs edit access; editable implies readable
- If all fields should be visible, can alternatively enable the "viewAllFields" object permission
- Only grant field permissions for fields the request explicitly names. Never invent a field by pattern-matching another one mentioned in the request (e.g., a request naming `BillingAddress`/`BillingCity` is not license to also add the parallel `Shipping*` fields) — an invented field can fail deployment even when the pattern-matched name looks legitimate.

## Step 4: Grant User Permissions

Add system-level permissions for features and capabilities:

```xml
<userPermissions>
    <enabled>true</enabled>
    <name>ApiEnabled</name>
</userPermissions>
<userPermissions>
    <enabled>true</enabled>
    <name>RunReports</name>
</userPermissions>
```

**Common permissions:**
- `ApiEnabled`: API access
- `ViewSetup`: View Setup menu
- `ManageUsers`: User management
- `RunReports`: Report execution

**Security review required for:**
- `ViewAllData`: Read all records
- `ModifyAllData`: Edit all records
- `ManageUsers`: User administration

## Step 5: Configure App and Tab Visibility

Make applications and tabs visible to users:

```xml
<applicationVisibilities>
    <application>Sales_Console</application>
    <visible>true</visible>
</applicationVisibilities>
<tabSettings>
    <tab>CustomTab__c</tab>
    <visibility>Visible</visibility>
</tabSettings>
```

**Application visibility options:**
- <visible> can be true or false

**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 app
- `None`: Not visible

**CRITICAL - Tab Naming:**
- Custom object tabs: MUST include the __c suffix (e.g., MyCustomObject__c)
- Standard object tabs: Use the object name with "standard-" prefix (e.g., standard-Account, standard-Contact)
- The tab name matches the object's API name exactly

## Step 6: Add Apex and Visualforce Access (Optional)

Grant access to custom code:

```xml
<classAccesses>
    <apexClass>CustomController</apexClass>
    <enabled>true</enabled>
</classAccesses>
<pageAccesses>
    <apexPage>CustomPage</apexPage>
    <enabled>true</enabled>
</pageAccesses>
```

## Step 7: Set License and Record Type Settings (Optional)

Specify license requirements and record type visibility:

```xml
<license>Salesforce</license>
<hasActivationRequired>false</hasActivationRequired>
<recordTypeVisibilities>
    <recordType>Account.Business</recordType>
    <visible>true</visible>
    <default>true</default>
</recordTypeVisibilities>
```
## Step 8: Set Agent Access (Optional)
                                              
Enable access to Agentforce Employee Agents for users assigned to this permission set:

<agentAccesses>
    <agentName>Sales_Assistant_Agent</agentName>
    <enabled>true</enabled>
</agentAccesses>

Field requirements:
- agentName (Required): The developer name of the employee agent
- enabled (Required): Set to true to grant access, false to deny

Important:
- Agent names must match existing Agentforce Employee Agent developer names

## Validation Checklist

Before deploying, verify:
- [ ] fullName, label, description set
- [ ] Permissions follow least privilege
- [ ] No required fields in `<fieldPermissions>`
- [ ] No duplicate permissions
- [ ] No lengthy comments

## What Causes Deployment Failure

- **Field permissions on required fields:** Any required field in `<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.
- **Incorrect API names:** Using the wrong name or missing suffixes (e.g. missing `__c` for custom objects, fields, tabs) cause failure.
- **Invented fields:** A field permission for a field that doesn't exist on the object (including a plausible-looking one pattern-matched from another field in the request) fails deployment. Only grant field permissions for fields the request actually names.
- **Missing permission dependencies:** Some user permissions (e.g. `ModifyAllData`) fail to deploy unless their dependent permissions are also enabled. Do not add unrequested user permissions to work around a dependency error — escalate org-wide or administrative requests for security review instead.

## Deployment

Deploy using Salesforce CLI

© forcedotcom · Apache-2.0 · forcedotcom/sf-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой