Agent skill

Platform Policy Rule Generate

by forcedotcom in forcedotcom/sf-skills

A skill your agent uses when authoring PolicyRuleDefinition and PolicyRuleDefinitionSet metadata XML for Salesforce Data Cloud governance policies, or when editing .policyRuleDefinition /…

Apache-2.0Auto-check passedSales & Support

Install Platform Policy Rule Generate

skills CLI
$ npx skills add forcedotcom/sf-skills --skill platform-policy-rule-generate -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install forcedotcom/sf-skills platform-policy-rule-generate --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/platform-policy-rule-generate .claude/skills/platform-policy-rule-generate && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
platform-policy-rule-generate
GitHub stars
1.1k
Token cost
~4.8k tokens
SKILL.md length
1,749 words
Files
9 (incl. references)
Skills in repo
251
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when authoring PolicyRuleDefinition and PolicyRuleDefinitionSet metadata XML for Salesforce Data Cloud governance policies, or when editing .policyRuleDefinition /…

  • Works in 9 steps: Package Layout → PolicyRuleDefinitionSet Schema → PolicyRuleDefinition — Core Fields → …
  • Authoring PolicyRuleDefinition and PolicyRuleDefinitionSet metadata XML for Salesforce Data Cloud governance policies
  • SKILL.md covers 1. Package Layout, 2. PolicyRuleDefinitionSet…, 3. PolicyRuleDefinition — Core… and 4. Category Decision Tree, plus 6 more sections
  • Reaches soap.sforce.com

What it does

Platform Policy Rule Generate is an agent skill from forcedotcom/sf-skills. Use this skill when authoring PolicyRuleDefinition and PolicyRuleDefinitionSet metadata XML for Salesforce Data Cloud governance policies, or when editing .policyRuleDefinition / .policyRuleDefinitionSet files. Covers the category decision tree, full schema for all policy variants (ACCESS, GOVERNANCE, RECORD, TRANSFORM), UI-compatibility rules for the Data Governance Policy Builder, output hygiene for user-facing agent responses, and validation guardrails. Do NOT use this skill for UserAccessPolicy, AccessPolicy…

Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including reference files (for example `references/deploy-errors.md`, `references/policy-schema-full.md` and `references/templates-access.md`).

It sits in Sales & Support, covering CRM management, Authorization and RBAC and Data governance. It works with Salesforce. The repository describes itself as: Salesforce's curated collection of agent skills for building applications. Optimized for Agentforce Vibes, compatible with all AI tools. The licence is Apache-2.0.

When your agent uses it

  • Authoring PolicyRuleDefinition and PolicyRuleDefinitionSet metadata XML for Salesforce Data Cloud governance policies
  • Editing .policyRuleDefinition / .policyRuleDefinitionSet files
  • UserAccessPolicy
  • Any other access-control metadata type — those have their own types and live outside the PolicyRuleDefinition schema

Example prompts

  • “/platform-policy-rule-generate”

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Package Layout
  2. PolicyRuleDefinitionSet Schema
  3. PolicyRuleDefinition — Core Fields
  4. Category Decision Tree
  5. Condition Patterns (Quick Reference)
  6. Validation Guardrails
  7. UI Compatibility — Core Rules
  8. Authoring Workflow
  9. Output Hygiene — What the Agent Must NOT Say to the User

What it can do on your machine

Read from SKILL.md and the folder at commit e5164d9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are xml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • soap.sforce.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Platform Policy Rule Generate loads about 4.8k tokens when it runs, and up to ~14k if it reads all its reference files. Until then it costs about 175 tokens; SKILL.md has 1,749 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~175
When it runs · the whole SKILL.md, loaded when a task matches
~4.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~14k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from forcedotcom/sf-skills at commit e5164d9, republished under its Apache-2.0 licence (© forcedotcom). 1,749 words, ~4,839 tokens.

Download SKILL.mdSave it as .claude/skills/platform-policy-rule-generate/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
platform-policy-rule-generate
description
Use this skill when authoring PolicyRuleDefinition and PolicyRuleDefinitionSet metadata XML for Salesforce Data Cloud governance policies, or when editing *.policyRuleDefinition / *.policyRuleDefinitionSet files. Covers the category decision tree, full schema for all policy variants (ACCESS, GOVERNANCE, RECORD, TRANSFORM), UI-compatibility rules for the Data Governance Policy Builder, output hygiene for user-facing agent responses, and validation guardrails. Do NOT use this skill for UserAccessPolicy, AccessPolicy, SharingRules, PermissionSet, or any other access-control metadata type — those have their own types and live outside the PolicyRuleDefinition schema.
metadata.version
1.0
metadata.domains
Platform, Data 360
metadata.minApiVersion
64.0

Authoring Policy Rule Definitions

Gating: requires the EnforceOMatic and PolicyRuleMDAPI org permissions. Min API version: 64.0 (66.0 for conditions using PolicyJsonExpression).

This skill covers the on-disk metadata XML format for authoring policies. Use it whenever a task asks to write a *.policyRuleDefinition or *.policyRuleDefinitionSet file, or ship a metadata package containing them. The runtime side (RuleProvider, hooks) is out of scope.


Eval coverage: This skill is exercised by the team's ADK eval framework, not by tests/evals/ under the skill directory. Five datasets covering the ACCESS / GOVERNANCE / RECORD / TRANSFORM variants live in packages/adk-eval/eval/domains/platform-policy-rule-generate/datasets/.

1. Package Layout

A deployable package always contains:

text
<fixture>/
  package.xml
  policyRuleDefinitionSets/<setName>.policyRuleDefinitionSet
  policyRuleDefinitions/<ruleName>.policyRuleDefinition

package.xml template (use <version>[ftest]</version> for ftests, 64.0 or higher for real orgs):

xml
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>Rule0</members>
        <name>PolicyRuleDefinition</name>
    </types>
    <types>
        <members>Set1</members>
        <name>PolicyRuleDefinitionSet</name>
    </types>
    <version>64.0</version>
</Package>

2. PolicyRuleDefinitionSet Schema

xml
<PolicyRuleDefinitionSet xmlns="http://soap.sforce.com/2006/04/metadata">
    <label>Set1</label>
    <description>Optional free text</description>
    <replicated>false</replicated>             <!-- MinAppVersion 260 -->
    <builderCompatible>true</builderCompatible> <!-- MinAppVersion 262, author-settable -->
    <!-- builderValidated: server-managed — do not set in authored XML -->
</PolicyRuleDefinitionSet>
ElementReqNotes
<label>yesMaster label. File basename (devName) is the MDAPI identifier, not the label.
<description>noFree text.
<replicated>notrue triggers placeholder transformation across companion orgs. Omit for null/false.
<builderCompatible>notrue = rules audited per §7 checklist. false = API-only. Omit = unaudited. Informational only — no deploy/runtime effect.
<builderValidated>noServer-managed. Never set in authored XML. Server overwrites on validation.

3. PolicyRuleDefinition — Core Fields

ElementReqNotes
<label>yesMasterLabel.
<category>yesSee §4. Drives resourceScopeType and whether policyRuleResourceDomains/resourceTransform are required. Does NOT constrain effect outside of TRANSFORM.
<effect>yesPermit, Forbid, or Transform. The only category-coupling enforced by core: effect=Transform ↔ category=TRANSFORM_POLICY_RULE_DEFINITION (bidirectional). All other categories accept Permit and Forbid freely.
<action>yes (≥1)Read, TupleRead, Create, etc. Multiple elements OR-combine.
<policyRuleDefinitionSetName>yesDeveloper name of parent set.
<principalScopeType>yesAlways ANY.
<resourceScopeType>yesANY, FIELD, RECORD, DATASPACE, or SPAN. Must match category (§4).
<principalAuthenticationLevel>noINTERNAL, AUTHENTICATED, UNIDENTIFIED, IDENTIFIED.
<ruleConsumer>noALL, DATACLOUD, MULESOFT, TABLEAU, CORE.
<policyRuleResourceDomains>noRequired for RECORD (RLS) and FIELD-scope TRANSFORM rules only. Forbidden on ACCESS/GOVERNANCE.
<resourceTransform>noRequired (and only valid) when category=TRANSFORM.
<whenPolicyRuleDefinitionClauseConjunction>noWHEN conditions.
<unlessPolicyRuleDefinitionClauseConjunction>noUNLESS conditions. Not UI-editable — prefer WHEN + negated operator.

4. Category Decision Tree

Category names a domain (where in the platform's enforcement layers the rule applies). Effect names the action (allow / deny / transform). They are independent except for TRANSFORM.

The only Category × Effect rule the platform validates:

  • effect=Transform ⇔ category=TRANSFORM_POLICY_RULE_DEFINITION (bidirectional; mismatched throws INVALIDFORCATEGORY).
  • All other categories (ACCESS, GOVERNANCE, RECORD, IDENTIFIED_RECORD) accept either Permit or Forbid.

Note on the platform's auto-fill default: When <category> is omitted from authored XML, the server fills it in from effect: Permit→ACCESS, Forbid→GOVERNANCE, Transform→TRANSFORM. This is a default-fill, not a validation. If you author an explicit category that contradicts this default, it is accepted and persisted as-is.

Picking the category
text
What kind of policy?
│
├── OLS/FLS allow/deny on tagged or classified resources
│     category = ACCESS_POLICY_RULE_DEFINITION (allow/deny attestation in the access plane)
│              | GOVERNANCE_POLICY_RULE_DEFINITION (governance-audited)
│     effect = Permit | Forbid (chosen independently from category)
│     resourceScopeType = ANY | FIELD | DATASPACE
│     NO <policyRuleResourceDomains>
│     condition: resourcePath=TAG|CLASSIFICATION CONTAINS_ANY <ref>
│     For "objects AND all their fields" → action=TupleRead + OR-of-ENTITYTYPE clause (§7)
│     Note: "Block access to Foo object" → tag Foo with <yourTag>, write rule on tag
│        Do NOT use <resourceDomain>Foo</resourceDomain> — forbidden for ACCESS/GOVERNANCE
│
├── Row-level filter on a DMO/DLO
│     category = RECORD_POLICY_RULE_DEFINITION
│     effect = Permit | Forbid
│     resourceScopeType = RECORD
│     <policyRuleResourceDomains> = the DMO/DLO API name  ← entity targeting allowed here
│
├── Identified-Guest record access
│     NOT authorable via MDAPI — SESSION_CONSUMER_ID is not in RuleContextPathType
│        Must be implemented as a runtime RuleProvider.
│
└── Field masking
      category = TRANSFORM_POLICY_RULE_DEFINITION   ← required by RuleBuilder validator
      effect = Transform                            ← required by RuleBuilder validator
      resourceScopeType = FIELD (structured) or SPAN (unstructured)
      <policyRuleResourceDomains> = the DMO whose field is masked
      <resourceTransform> required (e.g. NULL_RESOURCE_TRANSFORM, LAST_N_CHARS_RESOURCE_TRANSFORM)
ACCESS vs GOVERNANCE — how to choose

Both legally accept Permit and Forbid. Pick by which enforcement layer should record/audit the rule and what the prompt literally asks for:

Use casePickReason
The prompt names "ACCESS policy rule" / "access rule" / "OLS/FLS" explicitlyACCESS_POLICY_RULE_DEFINITIONMatches the prompt's vocabulary; sits in the data-access enforcement layer.
The prompt names "governance" / "audit" / "policy framework" / data-residency or compliance languageGOVERNANCE_POLICY_RULE_DEFINITIONMatches the prompt's vocabulary; rules surface in governance reporting.
Prompt is ambiguous and only describes allow/deny semanticsDefault to ACCESS for Permit, GOVERNANCE for Forbid (mirrors the platform's auto-fill default; safe and deployable, but not required)

Important — honor the explicit category in the prompt. If the prompt says "ACCESS policy rule that denies …" or "GOVERNANCE policy rule that permits …", emit exactly that category. Do not silently swap to the auto-fill default just because effect is Forbid (or Permit). The platform accepts both. The agent must not override the user's stated intent.

Scope × category compatibility — any combination outside this matrix throws INVALIDFORCATEGORY:

ACCESSGOVERNANCETRANSFORMRECORD
ANYYesYesNoNo
DATASPACEYesYesNoNo
FIELDYesYesYesNo
RECORDNoNoNoYes
SPANNoNoYesNo

5. Condition Patterns (Quick Reference)

Every <conditions> block needs all four: <clause>, <operator>, one path element, and the value.

Goalpath elementoperatorvalue
Resource has tag<resourcePath>TAG</resourcePath>CONTAINS_ANY<valueReferenceType>CUSTOM_TAG | STANDARD_TAG</valueReferenceType>
Resource has classification<resourcePath>CLASSIFICATION</resourcePath>CONTAINS_ANYCUSTOM_CLASSIFICATION | STANDARD_CLASSIFICATION
Principal has permission<principalPath>ASSIGNED_PERMISSIONS_PATH</principalPath>CONTAINS_ANY | CONTAINS_NONE<valueReferenceType>CUSTOM_PERMISSION</valueReferenceType>
Session in dataspace<contextPath>SESSION_DATASPACE</contextPath>CONTAINS_ANY<valueReferenceType>DATASPACE</valueReferenceType>
Record field = user attribute<resourcePath>RECORDFIELD</resourcePath> + <valueDomain>Schema:field</valueDomain>EQUALS<valuePrincipalPath>USER_ID | ORGANIZATION_ID | USER_ROLE_ID</valuePrincipalPath>
Entity type check<resourcePath>ENTITYTYPE</resourcePath>IS<valueString>{"t":"Text","v":"FIELD"}</valueString>

<conjunctionExpression> is 1-indexed prefix notation: 1, (AND 1 2), (OR 1 2), (AND (OR 1 2) (AND 3)). A bare top-level index like 1 is valid for deploy but crashes the Data Governance Policy Builder UI — see §7 if UI editability matters.

For full path enums (RulePrincipalPathType, RuleResourcePathType, RuleContextPathType), operators, and JSON expressions (PROJECTION / ARGLIST / SOQLTARGETLISTEXPR), see references/policy-schema-full.md. For copy-paste templates for all policy variants, see references/templates.md.


6. Validation Guardrails

  1. Every <conditions> needs an <operator>. Missing operator → reject.
  2. Every <conditions> needs at least one path element (<resourcePath>, <principalPath>, <contextPath>, or <valueDomain>).
  3. <contextPath> is exclusively SESSION_DATASPACE. Never put a resource path value there.
  4. Scope × category must be in the §4 matrix. Common offenders: ACCESS/GOVERNANCE + RECORD scope; RECORD + ANY/FIELD scope; TRANSFORM + ANY/RECORD scope. (Effect is independent of category except for TRANSFORM — see §4.)
  5. <resourceTransform> and effect=Transform are coupled. Transform effect needs a resourceTransform. Permit/Forbid must not have one.
  6. <policyRuleResourceDomains> is required for RECORD (RLS) and FIELD-scope TRANSFORM; forbidden on ACCESS/GOVERNANCE.
  7. <conjunctionExpression> indices must match actual <conditions> count. Off-by-one → reject.
  8. <clause> inside <conditions> must match the wrapper (WHEN inside <when…>, UNLESS inside <unless…>).
  9. JSON literals in <valueString> must escape " to &quot;. Wrong escaping silently corrupts the literal.
  10. Reference targets (<valueReference>, <resourceDomain>) must exist in the target org at deploy time.
  11. SCALAR_ATTRIBUTE / PLURAL_ATTRIBUTE are not in RulePrincipalPathType — not in MDAPI contract. Use a runtime RuleProvider for those shapes.
  12. IDENTIFIED_RECORD is not authorable via MDAPI — SESSION_CONSUMER_ID not in RuleContextPathType.
  13. Standard tag/classification dev names are fully-qualified dotted paths (e.g. DataGovernanceTags.ExternalData.Visibility.Public). Retrieve an existing rule to get the exact string before authoring.
  14. Min API versions: PolicyRuleDefinition = 64.0; PolicyJsonExpression conditions = 66.0; <replicated> = 260+; <builderCompatible> / <builderValidated> = 262+.

Note on <conjunctionExpression> shape: A bare top-level index (e.g. <conjunctionExpression>1</conjunctionExpression>) deploys cleanly — the server-side parser accepts bare tokens at the top level. It is not a deploy-time validation error. It does, however, crash the Data Governance Policy Builder UI on load — see §7.


Show full SKILL.md (747 more words)Show less

7. UI Compatibility — Core Rules

The Data Governance Policy Builder edits a strict subset of the MDAPI. Default goal: produce UI-compatible policies. Always confirm with the operator before producing API-only XML.

Hard blockers — any of these make the policy uneditable (and several crash the builder on load):

  • Missing OR-of-ENTITYTYPE clause on ACCESS/GOVERNANCE rules → hard crash: Cannot use 'in' operator to search for 'Permit' in undefined. Required even when paired with TupleRead (where it's functionally redundant at runtime). Must include IS conditions for {"t":"Text","v":"OBJECT"} and {"t":"Text","v":"FIELD"}.
  • Bare top-level condition index in <conjunctionExpression> (e.g. 1, or (AND (OR 1 2) 3)) → crash on builder load in buildCriteria. Deploy is unaffected, but the policy is uneditable in the UI. Always wrap: (AND 1) for a single condition; (AND (OR 1 2) (AND 3)) instead of (AND (OR 1 2) 3).
  • category = ACCESS_POLICY_RULE_DEFINITION + effect = Forbid → the Data Governance Policy Builder UI (not MDAPI) collapses it to GOVERNANCE on save; round-trip via the builder will rewrite the category. MDAPI deploy is unaffected — the original ACCESS+Forbid combination is valid and deploys without modification. If your goal is UI round-trippability, prefer GOVERNANCE for Forbid; if the source of truth is MDAPI, ACCESS+Forbid is fine.
  • Any <unlessPolicyRuleDefinitionClauseConjunction> block → silently dropped on first UI save.
  • More than one <action> → only the first is kept.
  • ruleConsumer ≠ DATACLOUD → UI hardcodes DATACLOUD on save.
  • Top-level (OR 1 2) conjunction → triggers // ERROR: Unsupported rule! path, rule silently dropped.

UI-compatible "unless" rewrite:

Author intentUI-compatible shape
unless principal has permission XWHEN ASSIGNED_PERMISSIONS_PATH CONTAINS_NONE X
unless resource has tag XWHEN TAG CONTAINS_NONE X
unless record field = valueWHEN RECORDFIELD NOT_EQUALS value

For the full UI-compatibility checklist, round-trip rules, and operator support matrix, see references/ui-compatibility.md.


8. Authoring Workflow

  1. Start from the closest template in references/templates.md — modify from there, don't start blank.
  2. Pick category first (§4). Category fixes effect, resourceScopeType, and whether policyRuleResourceDomains/resourceTransform are required.
  3. Lay out the bare rule: top-level fields only, no conditions. Match the category template in references/templates.md.
  4. Add conditions one at a time, each with all four anchors: <clause>, <operator>, one path element, and the value.
  5. Update <conjunctionExpression> — 1-indexed prefix notation. Bare top-level index (e.g. 1) deploys but breaks the UI; wrap as (AND 1) if UI editability matters (§7).
  6. Run the UI-compatibility check (§7 / references/ui-compatibility.md). If any item trips, attempt the "unless" rewrite first; if not possible, get explicit operator confirmation before continuing.
  7. Update package.xml — list each <members> for both types.
  8. Set <builderCompatible> on the set to true if §7 checklist passes; false if intentionally API-only.
  9. Sanity-check against §6 (guardrails) before considering done.
  10. Validate with dry-run before any non-dry deploy to a persistent org. Surface errors using the error reference in references/deploy-errors.md.

Three-layer correctness check before done:

  • Runtime enforcement — does the rule enforce what's intended? (action choice, condition shape)
  • MDAPI deploy validity — does it deploy? (§6 guardrails, scope×category, tag dev names, org perms)
  • UI editability — can the builder render and re-save it? (§7 checklist, OR-of-ENTITYTYPE requirement)

9. Output Hygiene — What the Agent Must NOT Say to the User

The agent's user-facing chat response accompanies every generated file. Customers should never see internal engine or implementation details.

  • Do NOT name the internal evaluation engine in user-facing text — including but not limited to Cedar, policy engine, AuthZ engine, evaluation engine, Rego, OPA, or similar. The customer-facing surface is Data Governance, Policy Builder, Data Cloud Governance — use those terms only.
  • Do NOT emit trailing "How it works at runtime" narratives that describe evaluation flow, principal-resource matching semantics, or engine-internal condition ordering. The generated file is the artifact; a one-line summary of what deployed is enough. If the user explicitly asks how enforcement works, describe it in product terms (e.g. "Data Governance denies the read when …"), never in engine terms.
  • Do NOT name internal packages, source directories, Java class names, method names, or line-number references in user-facing text. Internal implementation identifiers are not customer-facing; refer to platform behavior in product terms only ("the server validates …", "Data Governance rejects …").
  • Do NOT explain auto-fill / default-fill / fallback semantics unless the user asks. Ship the rule; surface constraints only when they affect what the user has to do next (e.g. "the DMO tag must exist before deploy").

If the user needs more context, they'll ask — respond then, in product language.


Reference Docs

DetailFile
Full path enums, operators, value sets, JSON expressions (PROJECTION / ARGLIST / SOQLTARGETLISTEXPR)references/policy-schema-full.md
Copy-paste templates — index at references/templates.md; per-variant: templates-access.md, templates-record.md, templates-transform.md, templates-advanced.md
Full UI-compatibility checklist, round-trip rules, operator/path support matrixreferences/ui-compatibility.md

© forcedotcom, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (references) in skills/platform-policy-rule-generate of forcedotcom/sf-skills.

  • SKILL.md
  • references/deploy-errors.md
  • references/policy-schema-full.md
  • references/templates-access.md
  • references/templates-advanced.md
  • references/templates-record.md
  • references/templates-transform.md
  • references/templates.md
  • references/ui-compatibility.md

Open the folder on GitHubat commit e5164d9

Compare with similar skills

Platform Policy Rule Generate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Platform Policy Rule Generate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Platform Policy Rule Generate this skillforcedotcom/sf-skills1.1k—~4.8kAutomated safety check: PassApache-2.0
Salesforce Enterprise Rbacjeremylongshore/tons-of-skills-marketplace2.8k—~1.1kAutomated safety check: PassMIT
Salesforce Policy Guardrailsjeremylongshore/tons-of-skills-marketplace2.8k—~1.1kAutomated safety check: PassMIT
Soql Lib Query Builderbeyond-the-cloud-dev/soql-lib154—~4.3kAutomated safety check: PassMIT
Sf DatacloudJaganpro/sf-skills424—~2.7kAutomated safety check: PassMIT
Soql Lib Selectorbeyond-the-cloud-dev/soql-lib154—~2kAutomated safety check: PassMIT

Similar skills

  • Salesforce Enterprise Rbac

    jeremylongshore/tons-of-skills-marketplace

    Review and govern Salesforce enterprise access across profiles, permission sets and groups, sharing, field access, OAuth apps, SSO, and privileged roles.

    2.8k GitHub stars~1.1k tokensUpdated today
    Sales & SupportAuto-check passed
  • Salesforce Policy Guardrails

    jeremylongshore/tons-of-skills-marketplace

    Gate Salesforce code and configuration for SOQL injection, secret exposure, unsafe API versions, missing access checks, destructive writes, and unreviewed org changes.

    2.8k GitHub stars~1.1k tokensUpdated today
    Sales & SupportAuto-check passed
  • Soql Lib Query Builder

    beyond-the-cloud-dev/soql-lib

    Builds Salesforce SOQL queries using the SOQL Lib fluent builder API (SOQL.cls).

    154 GitHub stars~4.3k tokensUpdated 5 days ago
    Sales & SupportAuto-check passed
  • Sf Datacloud

    Jaganpro/sf-skills

    Salesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows.

    424 GitHub stars~2.7k tokensUpdated 5 mo ago
    Sales & SupportAuto-check passed
  • Soql Lib Selector

    beyond-the-cloud-dev/soql-lib

    Creates Salesforce Apex selector classes using the SOQL Lib selector pattern.

    154 GitHub stars~2k tokensUpdated 5 days ago
    Sales & SupportAuto-check passed
  • Dev Setup

    Portwood-Global-Solutions/Portwood

    Get from a fresh clone of Portwood to a working, fully-tested Salesforce org.

    126 GitHub stars~1.1k tokensUpdated today
    Sales & SupportAuto-check passed

More from forcedotcom/sf-skills

All 251 skills in this repo
  • Agentforce Architecture Analyze

    forcedotcom/sf-skills

    Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins.

    1.1k GitHub stars~4.5k tokensUpdated yesterday
    Auto-check passed
  • Agentforce D360 Analyze

    forcedotcom/sf-skills

    Data Cloud 360° view of a single Agentforce session. An agent skill from forcedotcom/sf-skills.

    1.1k GitHub stars~3.4k tokensUpdated yesterday
    Auto-check passed
  • Apply a Salesforce sandbox post-copy automation JSON config against a target org.

    1.1k GitHub stars~5.3k tokensUpdated yesterday
    Auto-check: notes
  • Apply a Salesforce sandbox post-copy automation JSON config against a target org.

    1.1k GitHub stars~5.4k tokensUpdated yesterday
    Auto-check: notes
  • Design Systems Slds Apply

    forcedotcom/sf-skills

    Apply SLDS-compliant UI using the correct blueprints, styling hooks, utility classes, and icons.

    1.1k GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed
  • Experience Lwc Generate

    forcedotcom/sf-skills

    Lightning Web Components with PICKLES methodology and 165-point scoring.

    1.1k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Platform Policy Rule Generate

What does Platform Policy Rule Generate do?

A skill your agent uses when authoring PolicyRuleDefinition and PolicyRuleDefinitionSet metadata XML for Salesforce Data Cloud governance policies, or when editing .policyRuleDefinition /…. Platform Policy Rule Generate is an agent skill from forcedotcom/sf-skills.policyRuleDefinitionSet files.

When should I use Platform Policy Rule Generate?

Platform Policy Rule Generate fits situations like: authoring PolicyRuleDefinition and PolicyRuleDefinitionSet metadata XML for Salesforce Data Cloud governance policies; editing .policyRuleDefinition / .policyRuleDefinitionSet files; userAccessPolicy; any other access-control metadata type — those have their own types and live outside the PolicyRuleDefinition schema.

How do I install Platform Policy Rule Generate in Claude Code?

Run `npx skills add forcedotcom/sf-skills --skill platform-policy-rule-generate -a claude-code`. Or copy the skill folder (skills/platform-policy-rule-generate in forcedotcom/sf-skills) into .claude/skills/platform-policy-rule-generate in your project. Claude Code loads it when a task matches its description.

How do I install Platform Policy Rule Generate in Codex?

Run `npx skills add forcedotcom/sf-skills --skill platform-policy-rule-generate -a codex`. Or copy the skill folder (skills/platform-policy-rule-generate in forcedotcom/sf-skills) into .agents/skills/platform-policy-rule-generate in your project. Codex loads it when a task matches its description.

Can I use Platform Policy Rule Generate in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add forcedotcom/sf-skills --skill platform-policy-rule-generate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/platform-policy-rule-generate, .gemini/skills/platform-policy-rule-generate, .github/skills/platform-policy-rule-generate and .opencode/skills/platform-policy-rule-generate in your project.

What does Platform Policy Rule Generate need to run?

SKILL.md names no scripts, command-line tools or credentials: Platform Policy Rule Generate is instructions for the agent only.

Does Platform Policy Rule Generate access the network?

SKILL.md names 1 domain. In commands or code: soap.sforce.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Platform Policy Rule Generate safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Platform Policy Rule Generate use?

Platform Policy Rule Generate is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Platform Policy Rule Generate use?

About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.9k tokens, read only when the agent opens those files.

What are the alternatives to Platform Policy Rule Generate?

Skills that share tags, products or a category with Platform Policy Rule Generate: Salesforce Enterprise Rbac (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Salesforce Policy Guardrails (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Soql Lib Query Builder (beyond-the-cloud-dev/soql-lib, 154 stars) and Sf Datacloud (Jaganpro/sf-skills, 424 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Platform Policy Rule Generate?

forcedotcom (a GitHub organization) maintains it in forcedotcom/sf-skills, which has 1,065 GitHub stars. The repository holds 251 skills in this directory. The repository was last updated on October 7, 2026.

Source: forcedotcom/sf-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.