Agent skill

Experience UI Bundle Features Generate

by forcedotcom in forcedotcom/sf-skills

MUST activate when the project contains a uiBundles//src/ directory and the user wants to add a pre-built feature — such as authentication (login, logout, protected routes, session management) or…

Apache-2.0Auto-check passedBackend & APIs

Install Experience UI Bundle Features Generate

skills CLI
$ npx skills add forcedotcom/sf-skills --skill experience-ui-bundle-features-generate -a claude-code

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

GitHub CLI
$ gh skill install forcedotcom/sf-skills experience-ui-bundle-features-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/plugins/builder/experience-react/skills/experience-ui-bundle-features-generate .claude/skills/experience-ui-bundle-features-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
experience-ui-bundle-features-generate
GitHub stars
1.1k
Token cost
~2.4k tokens
SKILL.md length
989 words
Files
3 (incl. scripts, references)
Skills in repo
248
Repo updated
First seen
Licence
Apache-2.0

At a glance

MUST activate when the project contains a uiBundles//src/ directory and the user wants to add a pre-built feature — such as authentication (login, logout, protected routes, session management) or…

  • Works in 5 steps: Confirm this is a React UI bundle — this… → Search project code first — check src/… → Search available features — use npx… → …
  • Installing pre-built features rather than hand-building them
  • Runs Shell scripts from its folder; calls npm and npx
  • Agentforce conversational client

What it does

Experience UI Bundle Features Generate is an agent skill from forcedotcom/sf-skills. MUST activate when the project contains a uiBundles//src/ directory and the user wants to add a pre-built feature — such as authentication (login, logout, protected routes, session management) or search (global search across pages and content) — instead of building it from scratch. Always run list first to see the current feature catalog, since it can include more than authentication and search. Always use this skill for installing pre-built features rather than hand-building them. DO NOT TRIGGER for Agentforce…

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts and reference files (for example `references/conflict-resolution-schema.json` and `scripts/verify-react-bundle.sh`).

It sits in Backend & APIs, covering Authentication and File uploads and storage. It works with Salesforce, React and npm. 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

  • Installing pre-built features rather than hand-building them
  • Agentforce conversational client
  • File-upload features — use experience-ui-bundle-agentforce-client-generate and experience-ui-bundle-file-upload-generate respectively

Example prompts

  • “/experience-ui-bundle-features-generate”

Requirements

  • Node.js
  • A Bash shell

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Confirm this is a React UI bundle — this CLI copies into src/features/ and expects npm run build to work. Non-React bundles are not…
  2. Search project code first — check src/ for existing implementations before installing anything. Scope searches to src/ to avoid matching…
  3. Search available features — use npx @salesforce/ui-bundle-features list with --search to filter by keyword. Use --verbose for full…
  4. Describe a feature — MANDATORY before wiring. Run npx @salesforce/ui-bundle-features describe and read the feature's README via npm view…
  5. Install — use npx @salesforce/ui-bundle-features install --ui-bundle-dir . Key options

What it can do on your machine

Read from SKILL.md and the folder at commit 3c15867. 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

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • npm
    • npx

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

  • Network

    No URLs in SKILL.md. Its commands use npm and npx, which can reach the network depending on how they are called.

    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

Experience UI Bundle Features Generate loads about 2.4k tokens when it runs, and up to ~2.5k if it reads all its reference files. Until then it costs about 179 tokens; SKILL.md has 989 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from forcedotcom/sf-skills at commit 3c15867, republished under its Apache-2.0 licence (© forcedotcom). 989 words, ~2,369 tokens.

Download SKILL.mdSave it as .claude/skills/experience-ui-bundle-features-generate/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
experience-ui-bundle-features-generate
description
MUST activate when the project contains a uiBundles/*/src/ directory and the user wants to add a pre-built feature — such as authentication (login, logout, protected routes, session management) or search (global search across pages and content) — instead of building it from scratch. Always run list first to see the current feature catalog, since it can include more than authentication and search. Always use this skill for installing pre-built features rather than hand-building them. DO NOT TRIGGER for Agentforce conversational client or file-upload features — use experience-ui-bundle-agentforce-client-generate and experience-ui-bundle-file-upload-generate respectively.
metadata.version
1.1
metadata.domains
Experience
metadata.relatedSkills
experience-ui-bundle-agentforce-client-generate, experience-ui-bundle-file-upload-generate

UI Bundle Features

Installing Pre-built Features

Always check for an existing feature before building something from scratch. The features CLI installs pre-built, tested packages into Salesforce UI bundles — from foundational UI libraries (shadcn/ui) to full-stack capabilities. Authentication and search are the most commonly used features today; run list --verbose for the full current catalog, since it can grow over time.

Ownership note: Agentforce AI conversation clients and file-upload are owned by separate skills (experience-ui-bundle-agentforce-client-generate, experience-ui-bundle-file-upload-generate). If the catalog also lists an Agentforce or file-upload entry, do not install it from both places — confirm with the user which delivery path they want, and never install the same capability twice in one bundle.

Package name: @salesforce/ui-bundle-features is the canonical package name. Some older templates/samples still reference the deprecated @salesforce/ui-bundle-features-experimental name — never use the -experimental suffix. If a command fails to resolve, confirm the published version with npm view @salesforce/ui-bundle-features version before assuming the package name is wrong.

Workflow
  1. Confirm this is a React UI bundle — this CLI copies into src/features/ and expects npm run build to work. Non-React bundles are not supported and will fail late in the install.

    Run scripts/verify-react-bundle.sh. If it exits non-zero, stop — the bundle is not React-based and this skill cannot proceed.

  2. Search project code first — check src/ for existing implementations before installing anything. Scope searches to src/ to avoid matching node_modules/ or dist/.

  3. Search available features — use npx @salesforce/ui-bundle-features list with --search <query> to filter by keyword. Use --verbose for full descriptions.

  4. Describe a feature — MANDATORY before wiring. Run npx @salesforce/ui-bundle-features describe <feature> and read the feature's README via npm view <package> readme (using the Package: name from that output) before wiring it. The README is the contract: it tells you how the feature is meant to be wired — including any drop-in entry component and the file each integration example belongs in. Cross-check against the copied-in source under describe's Copy Operations destination — that source (and its JSDoc) is the version-matched truth for what's actually installed. Do not wire from assumptions about file names or component APIs. Skipping this is the most common reason a feature installs successfully but never actually runs.

  5. Install — use npx @salesforce/ui-bundle-features install <feature> --ui-bundle-dir <name>. Key options:

    • --dry-run to preview changes
    • --yes for non-interactive mode (skips conflicts)
    • --on-conflict error to detect conflicts, then --conflict-resolution <file> to resolve them

    Install features before doing custom frontend/layout work in this bundle — features may rewrite appLayout.tsx/routes.tsx, and installing after hand-built layout changes risks collisions.

If no matching feature is found, ask the user before building a custom implementation — a relevant feature may exist under a different name.

Conflict Handling

In non-interactive environments, use the two-pass approach:

  1. Run install with --on-conflict error to detect conflicts without applying them.
  2. Before writing the resolution file, read references/conflict-resolution-schema.json for the allowed keys and enum values.
  3. Write a resolution file at <ui-bundle-dir>/conflict-resolution.json (path is relative to the UI bundle directory being installed into, not the repo root). Key it by the exact paths the CLI printed as conflicts in pass 1, verbatim:
    json
    {
      "src/appLayout.tsx": "overwrite",
      "src/routes.tsx": "skip"
    }
    Any conflicting path not listed in this file defaults to skip — the CLI will not overwrite a file you didn't explicitly mark overwrite.
  4. Re-run install with --conflict-resolution <path-to-that-file>.
Post-install: Integrating Example Files

Features may include example files under an __examples__/ directory (plural) showing integration patterns. These are often full, working pages with concrete names (e.g. AccountSearch.tsx), not bare placeholder templates. For each:

  1. Read the example file to understand the pattern — treat it as a working reference implementation, not necessarily a stub.
  2. Read the target file (shown in describe output).
  3. Apply the pattern from the example into the target.
  4. CRITICAL — verify before deleting:
    bash
    # Verify the build passes with the integrated pattern
    npm run build || {
      echo "ERROR: Build failed after integration - do NOT delete __examples__/"
      exit 1
    }
    
    # Verify the pattern from the example is actually present in the target
    # (adjust grep pattern to match a key symbol/import/component from the example)
    # Example: for SearchInput pattern integrated into AccountSearch.tsx
    grep -q "SearchInput\|useSearch" src/pages/*.tsx src/components/*.tsx 2>/dev/null || {
      echo "ERROR: Pattern from example not found in target files - integration incomplete"
      echo "Do NOT delete __examples__/ until the pattern is confirmed present"
      exit 1
    }
    
    # Only delete after both checks pass
    rm -rf __examples__/

If either check fails, do NOT delete __examples__/ — the integration is incomplete. Fix the integration first, then re-run the verification.

Show full SKILL.md (354 more words)Show less
Post-install: Mount the OOTB component, don't hand-roll a parallel one

When a feature ships an integration point, the UI must use it rather than a parallel hand-rolled version. For features that ship an entry component, mount it — e.g. for search, mount the feature's <Search> on the search-results page; do not author a bespoke results page that queries data directly (a custom SearchResults.tsx against seed data or a raw GraphQL call bypasses the installed, tested feature, so the deployed sObject/CMS search never runs). The only exception is when the user explicitly opts out and asks for a custom one — confirm that intent, don't infer it.

Hint Placeholders

Some copy paths use <descriptive-name> placeholders (e.g., <desired-page-with-search-input>) that the CLI does not resolve. After installation, rename or relocate these files to the intended target, or integrate their patterns into an existing file. This is separate from the __examples__/ convention above — a single copy path can use either mechanism.

Auth Feature: Org-Side Prerequisites

Installing the authentication feature only copies files — it does not configure the org. Before telling the user auth is done, flag that these org-side steps still need to happen (outside this skill's scope, but required for the feature to actually work):

  • Digital Experiences (Experience Cloud) must be enabled, with Customer Community / Customer Community Plus licenses assigned to the relevant users, and Salesforce Sites enabled.
  • The community and guest profiles need explicit Apex class access granted for the auth utility, login/registration, and password-reset classes — the CLI does not grant this automatically.
  • Guest-profile sharing rules / org-wide defaults for any objects the auth flow touches.
  • Known limitation: logout has a documented CSRF-handling gap (tracked as W-21253864) — call this out to the user rather than presenting logout as fully solved.
CRITICAL: Resolve <sfdxRoot> After Every Install

The CLI may copy files under a literal <sfdxRoot> folder — an unresolved placeholder for this project's Salesforce DX metadata root (from sfdx-project.json's packageDirectories[].path, e.g. force-app/main/default). Files left there are undeployable.

After every install:

bash
find uiBundles/<AppName> -type d -regex '.*/<[^/]+>$'

If found, move each file to <metadata-root>/<same-relative-subpath> (keep -meta.xml sidecars attached) and delete the emptied placeholder dir(s).

Verification:

  • Re-run find uiBundles/<AppName> -type d -regex '.*/<[^/]+>$' — output must be empty before proceeding.

© 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 2 other files (scripts, references) in plugins/builder/experience-react/skills/experience-ui-bundle-features-generate of forcedotcom/sf-skills.

  • SKILL.md
  • references/conflict-resolution-schema.json
  • scripts/verify-react-bundle.sh

Open the folder on GitHubat commit 3c15867

Compare with similar skills

Experience UI Bundle Features 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.

Experience UI Bundle Features Generate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Experience UI Bundle Features Generate this skillforcedotcom/sf-skills1.1k—~2.4kAutomated safety check: PassApache-2.0
Fullstack DevHHU3637kr/skills1453 repos~8.6kAutomated safety check: NotesMIT
Javascript SDKaiskillstore/marketplace4301 repos~3.3kAutomated safety check: PassNone
Fullstack Devinfometa/workbuddyskills342—~1kAutomated safety check: PassMIT
Supabasecurvenote/curvenote1695 repos~2.2kAutomated safety check: PassCustom licence
React AdminAwesome-Technologies/synapse-admin1.2k—~2.6kAutomated safety check: PassApache-2.0

Similar skills

  • Fullstack Dev

    HHU3637kr/skills

    Full-stack backend architecture and frontend-backend integration guide.

    145 GitHub starsUsed in 3 repos~8.6k tokens
    Backend & APIsAuto-check: notes
  • Javascript SDK

    aiskillstore/marketplace

    JavaScript/TypeScript SDK for inference.sh - run AI apps, build agents, integrate with all models.

    430 GitHub starsUsed in 1 repo~3.3k tokens
    Backend & APIsAuto-check passed
  • Fullstack Dev

    infometa/workbuddyskills

    Full-stack backend architecture and frontend-backend integration guide.

    342 GitHub stars~1k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Supabase

    curvenote/curvenote

    A skill your agent uses when doing ANY task involving Supabase.

    169 GitHub starsUsed in 5 repos~2.2k tokens
    Backend & APIsAuto-check passed
  • React Admin

    Awesome-Technologies/synapse-admin

    This skill should be used when building, modifying, or debugging a react-admin application — including creating resources, lists, forms, data fetching, authentication, relationships between…

    1.2k GitHub stars~2.6k tokensUpdated 20 days ago
    Backend & APIsAuto-check passed
  • React Email

    viclafouch/meme-studio

    A skill your agent uses when creating HTML email templates with React components - welcome emails, password resets, notifications, order confirmations, newsletters, or transactional emails.

    110 GitHub starsUsed in 2 repos~3.6k tokens
    Backend & APIsAuto-check passed

More from forcedotcom/sf-skills

All 248 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~3.6k tokensUpdated 5 days ago
    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~2.9k tokensUpdated 5 days ago
    Auto-check passed
  • Apply a Salesforce sandbox post-copy automation JSON config against a target org.

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

    1.1k GitHub stars~5.4k tokensUpdated 5 days ago
    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 5 days ago
    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 5 days ago
    Auto-check passed

Categories

Questions about Experience UI Bundle Features Generate

What does Experience UI Bundle Features Generate do?

MUST activate when the project contains a uiBundles//src/ directory and the user wants to add a pre-built feature — such as authentication (login, logout, protected routes, session management) or…. Experience UI Bundle Features Generate is an agent skill from forcedotcom/sf-skills. MUST activate when the project contains a uiBundles//src/ directory and the user wants to add a pre-built feature — such as authentication (login, logout, protected routes, session management) or search (global search across pages and content) — instead of building it from scratch.

When should I use Experience UI Bundle Features Generate?

Experience UI Bundle Features Generate fits situations like: installing pre-built features rather than hand-building them; agentforce conversational client; file-upload features — use experience-ui-bundle-agentforce-client-generate and experience-ui-bundle-file-upload-generate respectively.

How do I install Experience UI Bundle Features Generate in Claude Code?

Run `npx skills add forcedotcom/sf-skills --skill experience-ui-bundle-features-generate -a claude-code`. Or copy the skill folder (plugins/builder/experience-react/skills/experience-ui-bundle-features-generate in forcedotcom/sf-skills) into .claude/skills/experience-ui-bundle-features-generate in your project. Claude Code loads it when a task matches its description.

How do I install Experience UI Bundle Features Generate in Codex?

Run `npx skills add forcedotcom/sf-skills --skill experience-ui-bundle-features-generate -a codex`. Or copy the skill folder (plugins/builder/experience-react/skills/experience-ui-bundle-features-generate in forcedotcom/sf-skills) into .agents/skills/experience-ui-bundle-features-generate in your project. Codex loads it when a task matches its description.

Can I use Experience UI Bundle Features 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 experience-ui-bundle-features-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/experience-ui-bundle-features-generate, .gemini/skills/experience-ui-bundle-features-generate, .github/skills/experience-ui-bundle-features-generate and .opencode/skills/experience-ui-bundle-features-generate in your project.

What does Experience UI Bundle Features Generate need to run?

Going by SKILL.md and its folder, Experience UI Bundle Features Generate needs a shell for the scripts in its folder and the command-line tools its instructions call (npm and npx). Our summary lists: Node.js; A Bash shell.

Does Experience UI Bundle Features Generate access the network?

SKILL.md contains no URLs. Its commands use npm and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Experience UI Bundle Features 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Experience UI Bundle Features Generate use?

Experience UI Bundle Features 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 Experience UI Bundle Features Generate use?

About 2.4k tokens (SKILL.md is roughly 9.5k 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 157 tokens, read only when the agent opens those files.

What are the alternatives to Experience UI Bundle Features Generate?

Skills that share tags, products or a category with Experience UI Bundle Features Generate: Fullstack Dev (HHU3637kr/skills, 145 stars), Javascript SDK (aiskillstore/marketplace, 430 stars), Fullstack Dev (infometa/workbuddyskills, 342 stars) and Supabase (curvenote/curvenote, 169 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Experience UI Bundle Features Generate?

forcedotcom (a GitHub organization) maintains it in forcedotcom/sf-skills, which has 1,058 GitHub stars. The repository holds 248 skills in this directory. The repository was last updated on October 3, 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.