Skip to main content
skill CX Codex

dx-pkg-post-install-configure — Claude Code skill

Automates Salesforce managed package setup after installation from its documentation, including permissions, FLS, page layouts and tab access.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add forcedotcom/sf-skills --skill dx-pkg-post-install-configure -a claude-code
Open on GitHub

What dx-pkg-post-install-configure does

This skill reads a managed package's post-install guide and turns it into discrete configuration steps. It checks the installed package through the Tooling API, shows a plan, and marks each action as automated or manual. You approve the whole plan or select individual steps.

For queries and record changes, it tries org-native MCP first, then Claude Code MCP tools, with sf CLI as the fallback. Before creating a record, it checks for an existing one. Page layout changes use Metadata API retrieve, XML edits, and deploy.

You need a package name and its post-install guide when you have one. An authenticated org is required for the sf CLI route, so verify access before approving the plan. The minimum API version is 67.0.

What it helps with

  • configure a managed package after installation
  • apply permission sets from package documentation
  • set object and field permissions
  • update page layouts through Metadata API
  • separate Setup UI tasks from automatable steps

Example prompts for the agent

  • Configure post-install setup for LMA; here is the package guide.
  • Check whether FMA is installed and prepare a plan for permission sets and FLS.
  • Read this PDF with work.com post-install steps and run the approved actions.

How to install dx-pkg-post-install-configure

1Skills CLI (Vercel)

npx skills add forcedotcom/sf-skills --skill dx-pkg-post-install-configure -a claude-code

2Manually: put the files in place

~/.claude/skills/dx-pkg-post-install-configure/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/dx-pkg-post-install-configure/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about dx-pkg-post-install-configure

How do I install dx-pkg-post-install-configure in Claude Code?

Run npx skills add forcedotcom/sf-skills --skill dx-pkg-post-install-configure -a claude-code, then run npx skills add forcedotcom/sf-skills --skill dx-pkg-post-install-configure -a claude-code again. The skill file is at ~/.claude/skills/dx-pkg-post-install-configure/SKILL.md.

What does dx-pkg-post-install-configure do?

It automates Salesforce managed package configuration after installation from the package guide. It covers permission sets, object and field permissions, page layouts, Visualforce page access, and tab settings.

What is required before configuring a package?

Provide the package name. If you do not have the post-install guide, the skill asks for one as a PDF, markdown file, URL, or pasted text.

Source text

SKILL.md · Apache-2.0
---
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:
  relatedSkills:
    - "dx-org-permission-set-assign"
    - "platform-permission-set-generate"
  version: "2.2"
  domains: ["Developer Experience"]
  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:

```bash
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:

```bash
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:** Report error, ask user to retry/skip/stop.

---

### Phase 7: Guide Manual Steps (if any)

If any steps could not be automated, present each with Setup navigation instructions.
Wait for user confirmation before proceeding to the next.

---

### Phase 8: Summary

Display final summary with step-by-step status, method used, and any skipped items.

---

## Error Handling

- **Auth failure mid-execution:** Stop, ask user to re-auth, offer to resume
- **Duplicate record errors:** Treat as "already configured", skip and continue
- **Permission errors:** Report which permission is missing, suggest resolution
- **Unknown step type:** Ask user to clarify, offer to mark as manual

## Notes

- **Priority: org-native MCP > Claude Code MCP > sf CLI > manual**
- sf CLI is always a valid fallback for all CRUD and Tooling API operations
- Page layout modifications are automated via Metadata API retrieve/deploy
- Always verify org identity before making changes
- All actions respect the authenticated user's permissions

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

Similar skills

All skills for Automation and no-code: n8n, Zapier, Make →

From the same set181

platform-custom-report-type-generate Guides the agent through authoring and validating Salesforce Custom Report Type metadata: base object, joins, exposed fields. Handy when a .reportType-meta.xml deploy fails. CX Codex +1 4,000installs platform-sharing-owd-configure Reads and changes Organization-Wide Defaults on Salesforce objects: shows current access levels and edits sharingModel in the object metadata. CX Codex +1 3,700installs platform-encryption-configure Skill for generating Salesforce Shield Platform Encryption metadata and evaluating key management architecture models. CX Codex +1 3,600installs platform-dataspace-access-configure Configures and inspects Salesforce Data Cloud DataSpace access for permission sets. Use it when a permission set needs a DataSpace scope or object grants. CX Codex +1 3,700installs experience-ui-bundle-project-generate Generates a ready-to-develop Salesforce UI bundle starter project from a template via Salesforce CLI. Use it when scaffolding a fresh React or Angular SFDX app. CX Codex +1 3,200installs platform-data-and-tooling-api-context-get Checks standard Salesforce fields and relationships before SOQL, SOSL, or DML work. Use it when a field API name, type, or query capability needs verification. CX Codex +1 3,200installs agentforce-bot-upgrade Upgrades Salesforce Einstein Bots into Agentforce agents in one run. Handles metadata conversion through the CLI or local folders. CX Codex +1 3,200installs platform-lightning-type-widget-coordinate Coordinates an Apex-backed Lightning Type with an HXL widget. Use it when a request explicitly names a Lightning Type or an @apexClassType/... schema. CX Codex +1 3,200installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor