From ff08ad58e2846d7f4452e30e28cffddc5db0cd22 Mon Sep 17 00:00:00 2001 From: svc-idee-bot Date: Thu, 12 Mar 2026 20:47:02 +0000 Subject: [PATCH 1/4] chore(release): 1.1.0 [skip ci] --- CHANGELOG.md | 11 +++++++++++ package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..315ff1b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,11 @@ +# 1.1.0 (2026-03-12) + + +### Features + +* add first pass at b2e sample ([ce615bf](https://github.com/forcedotcom/afv-library/commit/ce615bf0361e4a6a8f5635726ce304e6de921413)) +* add metadata type skills ([3689f14](https://github.com/forcedotcom/afv-library/commit/3689f14af7eeb1dd8ea80ae206437f3483d37938)) +* add skills from 260 ([65947b1](https://github.com/forcedotcom/afv-library/commit/65947b15509fef576ac683226976ee3d60a624f3)) + + + diff --git a/package.json b/package.json index 9004d60..5941e85 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@salesforce/afv-skills", - "version": "1.0.0", + "version": "1.1.0", "description": "Salesforce skills for Agentforce Vibes", "license": "CC-BY-NC-4.0", "files": [ From ae4e46d97ffbddb2c003e9fb4d50cb409f66365a Mon Sep 17 00:00:00 2001 From: irisli007 <53790094+irisli007@users.noreply.github.com> Date: Thu, 12 Mar 2026 14:01:32 -0700 Subject: [PATCH 2/4] W-21367283: Add skills for metadata permission set generation (#23) * initial skill for perm sets * more edits * changes after testing * more changes * address comments * standard tabs should have prefix * remove apache license --------- Co-authored-by: irisli --- skills/generate-permission-set/SKILL.md | 171 ++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 skills/generate-permission-set/SKILL.md diff --git a/skills/generate-permission-set/SKILL.md b/skills/generate-permission-set/SKILL.md new file mode 100644 index 0000000..791e5e1 --- /dev/null +++ b/skills/generate-permission-set/SKILL.md @@ -0,0 +1,171 @@ +--- +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. +compatibility: Salesforce Metadata API v60.0+ +metadata: + author: afv-library + version: "1.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 + + YourPermissionSetName + + Clear description of purpose and intended audience + +``` + +**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 + + true + true + true + false + false + false + false + Account + +``` + +## Step 3: Set Field-Level Security + +Define field permissions for sensitive or custom fields: + +```xml + + true + true + Account.SSN__c + +``` + +**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 `true`: +```xml + + FieldName__c + true + +``` +- 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 + +## Step 4: Grant User Permissions + +Add system-level permissions for features and capabilities: + +```xml + + true + ApiEnabled + + + true + RunReports + +``` + +**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 + + Sales_Console + true + + + CustomTab__c + Visible + +``` + +**Application visibility options:** +- can be true or false + +**Tab visibility options:** +- `Visible`: Always shown +- `Available`: Available but not default +- `Hidden`: 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 + + CustomController + true + + + CustomPage + true + +``` + +## Step 7: Set License and Record Type Settings (Optional) + +Specify license requirements and record type visibility: + +```xml +Salesforce +false + + Account.Business + true + true + +``` + +## Validation Checklist + +Before deploying, verify: +- [ ] fullName, label, description set +- [ ] Permissions follow least privilege +- [ ] No required fields in `` +- [ ] No duplicate permissions +- [ ] no lengthy comments + +## What Causes Deployment Failure + +- **Field permissions on required fields:** Any required field in `` 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. + +## Deployment + +Deploy using Salesforce CLI \ No newline at end of file From ddc6ec0ce3901262b89d96af280dd3e99d9e5ead Mon Sep 17 00:00:00 2001 From: Mohan Raj Rajamanickam <1509984+mohanraj-r@users.noreply.github.com> Date: Thu, 12 Mar 2026 15:16:05 -0700 Subject: [PATCH 3/4] ci: rename PR validation job and skills validation job for clarity @W-21534193@ (#43) Refactor GitHub workflows: rename PR validation job and skills validation job for clarity --- .github/workflows/validate-pr.yml | 4 ++-- .github/workflows/validate-skills.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/validate-pr.yml b/.github/workflows/validate-pr.yml index 22b478c..2d267f5 100644 --- a/.github/workflows/validate-pr.yml +++ b/.github/workflows/validate-pr.yml @@ -1,4 +1,4 @@ -name: pr-validation +name: Validate PR Title on: pull_request: @@ -6,5 +6,5 @@ on: branches: [main] jobs: - pr-validation: + pr-title: uses: salesforcecli/github-workflows/.github/workflows/validatePR.yml@main diff --git a/.github/workflows/validate-skills.yml b/.github/workflows/validate-skills.yml index 0e9f492..d0c3059 100644 --- a/.github/workflows/validate-skills.yml +++ b/.github/workflows/validate-skills.yml @@ -11,7 +11,7 @@ on: - '.github/workflows/validate-skills.yml' jobs: - validate: + validate-skills: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From 3bfd122458dde3424f0f050f2830da4958a07807 Mon Sep 17 00:00:00 2001 From: Mohan Raj Rajamanickam <1509984+mohanraj-r@users.noreply.github.com> Date: Thu, 12 Mar 2026 15:32:37 -0700 Subject: [PATCH 4/4] ci: simplify pull request validation triggers in skills workflow @W-21534193@ (#44) ci: simplify pull request validation triggers in skills workflow --- .github/workflows/validate-skills.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/validate-skills.yml b/.github/workflows/validate-skills.yml index d0c3059..cd2b321 100644 --- a/.github/workflows/validate-skills.yml +++ b/.github/workflows/validate-skills.yml @@ -2,13 +2,6 @@ name: Validate Skills on: pull_request: - paths: - - 'skills/**' - - 'scripts/validate-skills.ts' - - 'package.json' - - 'package-lock.json' - - '.nvmrc' - - '.github/workflows/validate-skills.yml' jobs: validate-skills: