/dx-pkg-post-install-configure
Use this skill to automate managed package post-install configuration. Package-agnostic — works with any managed package (LMA, FMA, work.com, Certinia, etc.). TRIGGER when: user installs a managed package and needs post-install configuration, mentions LMA/FMA/work.com
$ npx -y skills add forcedotcom/sf-skills --skill dx-pkg-post-install-configure --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/dx-pkg-post-install-configure
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use this skill to automate managed package post-install configuration. Package-agnostic — works with any managed package (LMA, FMA, work.com, Certinia, etc.). TRIGGER when: user installs a managed package and needs post-install configuration, mentions LMA/FMA/work.com
SKILL.md
dx-pkg-post-install-configure.SKILL.mdname: dx-pkg-post-install-configure
description: "Use this skill to automate managed package post-install configuration. Package-agnostic — works with any managed package (LMA, FMA, work.com, Certinia, etc.). TRIGGER when: user installs a managed package and needs post-install configuration, mentions LMA/FMA/work.com post-install setup, asks to configure permission sets/FLS/page layouts for an installed package, says 'post-install', 'package setup', 'configure LMA', 'set up FMA', 'post-install steps'. DO NOT TRIGGER for: standalone permission set assignment (use dx-org-permission-set-assign), generating permission set metadata XML (use platform-permission-set-generate), package installation, or org switching."
metadata:
version: "2.2"
minApiVersion: "67.0"
cliTools:
- tool: ["sf"]
semver: ">=2.0.0"When to Use This Skill
Use when automating post-install configuration for any Salesforce managed package. This skill reads the package's post-install documentation, discovers available execution methods, and automates the configuration steps — including permission sets, object/field permissions, page layouts, Visualforce page access, and tab settings.
Input
- **Required:** Package name (e.g., `LMA`, `FMA`, `work.com`)
- **Optional:** Path to post-install doc (PDF, markdown, URL)
If no doc is provided, ask the user to supply it.
Workflow
Execute phases in order. Each phase must pass before proceeding.
---
Phase 1: Discover Available Execution Methods
**Priority order:** 1. Org-native platform MCP servers (highest — direct org access via Headless 360) 2. Claude Code external MCP servers (sf-sobject-all, sf-sobject-all-sb, etc.) 3. sf CLI fallback (always available if authenticated)
Step 1A: Resolve org API version
Discover the org's current API version dynamically — never hardcode a version number:
sf org display --target-org <alias> --json
From the JSON response, read `result.apiVersion` (e.g., `"67.0"`). Store this value and use it as `v<apiVersion>` in all subsequent REST paths. If the command fails, fall back to the `minApiVersion` declared in this skill's metadata (`67.0`).
Step 1B: Check for org-native platform MCP servers
Query the Tooling API for MCP server availability:
sf api request rest "/services/data/v<apiVersion>/tooling/query?q=SELECT+Id,DeveloperName,MasterLabel+FROM+McpServerAccess" --target-org <alias>
Step 1C: Determine execution method
Check which Claude Code MCP tools are available and authenticated.
**MCP tool prefixes by org type:**
| Org Type | Tool Prefix | |---|---| | Production | `mcp__sf-sobject-all__` | | Sandbox | `mcp__sf-sobject-all-sb__` | | Falcon Test (pc-rnd) | `mcp__sf-sobject-all-falcon__` |
If MCP needs auth, call the authenticate tool. If auth fails, fall back to sf CLI.
---
Phase 2: Verify Authentication & Org Identity
1. Run a lightweight test query (`SELECT Id, Name, IsSandbox FROM Organization`) 2. If MCP auth fails, automatically fall back to sf CLI 3. Display org info and ask user to confirm before proceeding
---
Phase 3: Verify Package Installation
1. Determine the package namespace (ask user if unknown) 2. Check via Tooling API (`InstalledSubscriberPackage`) — do NOT use `PackageLicense` 3. If package not found, stop and inform user
---
Phase 4: Read and Parse Post-Install Document
Read the provided document and extract discrete configuration steps.
**Supported formats:** PDF, markdown, URL (via WebFetch), pasted text.
**Parsing approach:** 1. Extract each numbered/bulleted step from the document 2. Present the extracted steps to the user for validation before proceeding
---
Phase 5: Classify Steps & Interactive Plan Review
For each step extracted from the doc, classify as Automated or Manual.
Automation capabilities reference
**Via MCP (sobject-all) or sf CLI CRUD:**
- Record CRUD on any standard or custom object (PermissionSet, ObjectPermissions,
FieldPermissions, SetupEntityAccess, PermissionSetTabSetting, PermissionSetAssignment, etc.)
**Via Metadata API retrieve/deploy (sf CLI):**
- Page layout modifications (add related lists, fields, sections)
- Profile settings
- Custom metadata type records
**Via sf CLI Tooling API:**
- Tooling queries (InstalledSubscriberPackage, ApexPage, ApexClass, etc.)
- Any REST-accessible Tooling operation
**Manual (no API path — requires Setup UI):**
- System permissions not exposed via REST
- Connected app OAuth configuration
- Environment Hub linkage
Interactive approval
Present the classified plan and let the user choose:
- **"Approve all"** — Execute all steps as planned
- **"Let me choose"** — Select which steps to approve/skip
- **"I have questions"** — Discuss specific steps before deciding
---
Phase 6: Execute Approved Steps
For each approved step, use the resolved execution method.
Execution method reference
| Operation | Via MCP | Via sf CLI | |---|---|---| | SOQL query | `soqlQuery` tool | `sf data query --query "<SOQL>" --target-org <alias> --json` | | Create record | `createSobjectRecord` tool | `sf data create record --sobject <Object> --values "..." --target-org <alias> --json` | | Update record | `updateSobjectRecord` tool | `sf data update record --sobject <Object> --record-id <id> --values "..." --target-org <alias> --json` | | Describe object | `getObjectSchema` tool | `sf api request rest "/services/data/v<apiVersion>/sobjects/<Object>/describe" --target-org <alias>` | | Page layout | N/A | Metadata API retrieve/deploy |
Page layout modifications via Metadata API
Use `sf project retrieve start` → edit the layout XML → `sf project deploy start`.
Execution rules
- **Idempotency:** Before creating any record, query to check if it already exists. Skip if so.
- **Report after each step:** Show success count, skipped items, and reasons.
- **Automatic fallback:** If MCP fails mid-execution, retry via sf CLI.
- **On failure:** Rep
Read more
name: dx-pkg-post-install-configure
description: "Use this skill to automate managed package post-install configuration. Package-agnostic — works with any managed package (LMA, FMA, work.com, Certinia, etc.). TRIGGER when: user installs a managed package and needs post-install configuration, mentions LMA/FMA/work.com post-install setup, asks to configure permission sets/FLS/page layouts for an installed package, says 'post-install', 'package setup', 'configure LMA', 'set up FMA', 'post-install steps'. DO NOT TRIGGER for: standalone permission set assignment (use dx-org-permission-set-assign), generating permission set metadata XML (use platform-permission-set-generate), package installation, or org switching."
metadata:
version: "2.2"
minApiVersion: "67.0"
cliTools:
- tool: ["sf"]
semver: ">=2.0.0"When to Use This Skill
Use when automating post-install configuration for any Salesforce managed package. This skill reads the package's post-install documentation, discovers available execution methods, and automates the configuration steps — including permission sets, object/field permissions, page layouts, Visualforce page access, and tab settings.
Input
- **Required:** Package name (e.g., `LMA`, `FMA`, `work.com`)
- **Optional:** Path to post-install doc (PDF, markdown, URL)
If no doc is provided, ask the user to supply it.
Workflow
Execute phases in order. Each phase must pass before proceeding.
---
Phase 1: Discover Available Execution Methods
**Priority order:** 1. Org-native platform MCP servers (highest — direct org access via Headless 360) 2. Claude Code external MCP servers (sf-sobject-all, sf-sobject-all-sb, etc.) 3. sf CLI fallback (always available if authenticated)
Step 1A: Resolve org API version
Discover the org's current API version dynamically — never hardcode a version number:
sf org display --target-org <alias> --json
From the JSON response, read `result.apiVersion` (e.g., `"67.0"`). Store this value and use it as `v<apiVersion>` in all subsequent REST paths. If the command fails, fall back to the `minApiVersion` declared in this skill's metadata (`67.0`).
Step 1B: Check for org-native platform MCP servers
Query the Tooling API for MCP server availability:
sf api request rest "/services/data/v<apiVersion>/tooling/query?q=SELECT+Id,DeveloperName,MasterLabel+FROM+McpServerAccess" --target-org <alias>
Step 1C: Determine execution method
Check which Claude Code MCP tools are available and authenticated.
**MCP tool prefixes by org type:**
| Org Type | Tool Prefix | |---|---| | Production | `mcp__sf-sobject-all__` | | Sandbox | `mcp__sf-sobject-all-sb__` | | Falcon Test (pc-rnd) | `mcp__sf-sobject-all-falcon__` |
If MCP needs auth, call the authenticate tool. If auth fails, fall back to sf CLI.
---
Phase 2: Verify Authentication & Org Identity
1. Run a lightweight test query (`SELECT Id, Name, IsSandbox FROM Organization`) 2. If MCP auth fails, automatically fall back to sf CLI 3. Display org info and ask user to confirm before proceeding
---
Phase 3: Verify Package Installation
1. Determine the package namespace (ask user if unknown) 2. Check via Tooling API (`InstalledSubscriberPackage`) — do NOT use `PackageLicense` 3. If package not found, stop and inform user
---
Phase 4: Read and Parse Post-Install Document
Read the provided document and extract discrete configuration steps.
**Supported formats:** PDF, markdown, URL (via WebFetch), pasted text.
**Parsing approach:** 1. Extract each numbered/bulleted step from the document 2. Present the extracted steps to the user for validation before proceeding
---
Phase 5: Classify Steps & Interactive Plan Review
For each step extracted from the doc, classify as Automated or Manual.
Automation capabilities reference
**Via MCP (sobject-all) or sf CLI CRUD:**
- Record CRUD on any standard or custom object (PermissionSet, ObjectPermissions,
FieldPermissions, SetupEntityAccess, PermissionSetTabSetting, PermissionSetAssignment, etc.)
**Via Metadata API retrieve/deploy (sf CLI):**
- Page layout modifications (add related lists, fields, sections)
- Profile settings
- Custom metadata type records
**Via sf CLI Tooling API:**
- Tooling queries (InstalledSubscriberPackage, ApexPage, ApexClass, etc.)
- Any REST-accessible Tooling operation
**Manual (no API path — requires Setup UI):**
- System permissions not exposed via REST
- Connected app OAuth configuration
- Environment Hub linkage
Interactive approval
Present the classified plan and let the user choose:
- **"Approve all"** — Execute all steps as planned
- **"Let me choose"** — Select which steps to approve/skip
- **"I have questions"** — Discuss specific steps before deciding
---
Phase 6: Execute Approved Steps
For each approved step, use the resolved execution method.
Execution method reference
| Operation | Via MCP | Via sf CLI | |---|---|---| | SOQL query | `soqlQuery` tool | `sf data query --query "<SOQL>" --target-org <alias> --json` | | Create record | `createSobjectRecord` tool | `sf data create record --sobject <Object> --values "..." --target-org <alias> --json` | | Update record | `updateSobjectRecord` tool | `sf data update record --sobject <Object> --record-id <id> --values "..." --target-org <alias> --json` | | Describe object | `getObjectSchema` tool | `sf api request rest "/services/data/v<apiVersion>/sobjects/<Object>/describe" --target-org <alias>` | | Page layout | N/A | Metadata API retrieve/deploy |
Page layout modifications via Metadata API
Use `sf project retrieve start` → edit the layout XML → `sf project deploy start`.
Execution rules
- **Idempotency:** Before creating any record, query to check if it already exists. Skip if so.
- **Report after each step:** Show success count, skipped items, and reasons.
- **Automatic fallback:** If MCP fails mid-execution, retry via sf CLI.
- **On failure:** Rep
This repository provides a curated collection of Salesforce agent skills for building applications.
Repo: forcedotcom/sf-skills
Other skills on sf-skills.
- /agentforce-generate
Build, modify, optimize, debug, and deploy agents with Agentforce Agent Script. TRIGGER when: user creates, modifies, optimizes, or asks about .agent files or aiAuthoringBundle metadata; changes agent behavior, responses, or conversation logic; designs agent actions, tools,
Open skill - /agentforce-observe
Analyze production Agentforce agent behavior using session traces and Data Cloud. TRIGGER when: user queries STDM session data or Data Cloud trace records; investigates production agent failures, regressions, or performance issues; asks about session traces, conversation logs,
Open skill - /agentforce-test
Write, run, and analyze structured test suites for Agentforce agents — functional AND security. TRIGGER when: user writes or modifies test spec YAML (AiEvaluationDefinition); runs sf agent test create, run, run-eval, or results commands; asks about test coverage strategy, metric
Open skill - /automation-flow-generate
Generate Salesforce Flows using the MCP tool execute_metadata_action. Use when the user asks to create, build, or generate a flow — including Screen, Autolaunched, Record-Triggered (before/after-save), Scheduled. Also trigger for flow-like requests such as \"when a record is
Open skill - /dx-code-analyzer-configure
Set up, configure, and troubleshoot Salesforce Code Analyzer for any project. Handles installation, prerequisite checks, diagnosing broken setups, creating and editing code-analyzer.yml overrides, engine-specific settings, ignore patterns, severity overrides, and CI/CD pipeline
Open skill - /dx-code-analyzer-custom-rule-create
Create custom Code Analyzer rules for Regex (pattern matching), PMD (XPath/AST for Apex and metadata XML), and ESLint (LWC/JavaScript/TypeScript). Use when users want to enforce coding standards, ban patterns, detect hardcoded values, govern metadata, or add rules not in the
Open skill

