Gh Bot Comment
jetstreamapp/jetstream
Post GitHub PR/issue comments, reviews, and review replies as the Jetstream bot account instead of the user's personal account.
Generates a minimal, ready-to-develop SFDX starter project from template instead of hand-scaffolding files.
$ npx skills add forcedotcom/sf-skills --skill experience-ui-bundle-project-generate -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install forcedotcom/sf-skills experience-ui-bundle-project-generate --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/experience-ui-bundle-project-generate .claude/skills/experience-ui-bundle-project-generate && rm -rf skills-srcUse ~/.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/
Install the "experience-ui-bundle-project-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/experience-ui-bundle-project-generate into .claude/skills/experience-ui-bundle-project-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experience-ui-bundle-project-generate", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/forcedotcom/sf-skills/tree/main/skills/experience-ui-bundle-project-generateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add forcedotcom/sf-skills --skill experience-ui-bundle-project-generate -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install forcedotcom/sf-skills experience-ui-bundle-project-generate --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/experience-ui-bundle-project-generate .agents/skills/experience-ui-bundle-project-generate && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "experience-ui-bundle-project-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/experience-ui-bundle-project-generate into .agents/skills/experience-ui-bundle-project-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experience-ui-bundle-project-generate", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill experience-ui-bundle-project-generate -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install forcedotcom/sf-skills experience-ui-bundle-project-generate --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/experience-ui-bundle-project-generate .cursor/skills/experience-ui-bundle-project-generate && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "experience-ui-bundle-project-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/experience-ui-bundle-project-generate into .cursor/skills/experience-ui-bundle-project-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experience-ui-bundle-project-generate", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/forcedotcom/sf-skills.git --path skills/experience-ui-bundle-project-generate--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add forcedotcom/sf-skills --skill experience-ui-bundle-project-generate -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install forcedotcom/sf-skills experience-ui-bundle-project-generate --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/experience-ui-bundle-project-generate .gemini/skills/experience-ui-bundle-project-generate && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "experience-ui-bundle-project-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/experience-ui-bundle-project-generate into .gemini/skills/experience-ui-bundle-project-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experience-ui-bundle-project-generate", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install forcedotcom/sf-skills experience-ui-bundle-project-generateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add forcedotcom/sf-skills --skill experience-ui-bundle-project-generate -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/experience-ui-bundle-project-generate .github/skills/experience-ui-bundle-project-generate && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "experience-ui-bundle-project-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/experience-ui-bundle-project-generate into .github/skills/experience-ui-bundle-project-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experience-ui-bundle-project-generate", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill experience-ui-bundle-project-generate -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install forcedotcom/sf-skills experience-ui-bundle-project-generate --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/experience-ui-bundle-project-generate .opencode/skills/experience-ui-bundle-project-generate && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "experience-ui-bundle-project-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/experience-ui-bundle-project-generate into .opencode/skills/experience-ui-bundle-project-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "experience-ui-bundle-project-generate", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
experience-ui-bundle-project-generateGenerates a minimal, ready-to-develop SFDX starter project from template instead of hand-scaffolding files.
Experience UI Bundle Project Generate is an agent skill from forcedotcom/sf-skills. Generates a minimal, ready-to-develop SFDX starter project from template instead of hand-scaffolding files. Use this skill when starting a brand-new Salesforce UI bundle app (React or Angular) and the initial project must be scaffolded — trigger phrases include create, start, or scaffold a new UI bundle app, generate a starter project, or use a prebuilt/starter template. DO NOT TRIGGER when: editing, styling, or adding pages or components to an EXISTING app (use experience-ui-bundle-frontend-generate)…
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `references/angular-project-generate.md` and `references/react-project-generate.md`).
It sits in Sales & Support, covering Project scaffolding and CRM management. It works with Salesforce, React and Angular. 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.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3c15867. It shows what the files ask for, not the result of running them.
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.
Ships 3 files in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
sfnodenpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Experience UI Bundle Project Generate loads about 2k tokens when it runs, and up to ~3.1k if it reads all its reference files. Until then it costs about 251 tokens; SKILL.md has 892 words of instructions outside code blocks.
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.
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.
The full file from forcedotcom/sf-skills at commit 3c15867, republished under its Apache-2.0 licence (© forcedotcom). 892 words, ~2,017 tokens.
.claude/skills/experience-ui-bundle-project-generate/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Before building a Salesforce UI bundle app from scratch, offer the user a prebuilt starter template. The Salesforce CLI generates these — a complete, deployable SFDX project (UI bundle + toolchain + an npm run setup automation) — in one command. Starting from a starter is faster and less error-prone than hand-scaffolding.
The CLI command is sf template generate project.
Determine the framework. It is normally already decided by the calling context — either passed down by the root/coordinator skill that invoked this one, or stated in the user's request. Use that.
The frameworks this skill supports are exactly the reference files under <SKILL_DIR>/references/, each named <framework>-project-generate.md (so react → <SKILL_DIR>/references/react-project-generate.md). This is the single source of truth — adding a framework means adding a reference file, nothing here changes.
<SKILL_DIR>/references/<framework>-project-generate.md.<SKILL_DIR>/references/, derive the supported set by stripping the -project-generate.md suffix from each filename, and ask the user to pick one of those. If the user names a framework with no matching reference file, it is not supported here — hand off to experience-ui-bundle-app-coordinate to scaffold from scratch.Each reference lists that framework's --template flags and what each starter contains. Pick the one that fits the user's audience (internal vs. external).
If the user prefers to start from scratch (or neither template fits), stop here and let experience-ui-bundle-app-coordinate scaffold a new project. This skill is opt-in — do not force a template.
Once the user picks, carry the chosen --template flag into Step 2.
The project contents must land directly at the target root $DEST — so sfdx-project.json sits at $DEST/sfdx-project.json, with no extra wrapper subfolder. sf template generate project always nests its output under a --name subfolder, so <SKILL_DIR>/scripts/generate-project.mjs generates into $DEST, flattens the subfolder's contents up into $DEST (overwriting anything already there on conflict), and removes the now-empty subfolder — all through Node's fs/child_process APIs, so it runs the same way on Windows cmd/PowerShell as it does on macOS/Linux/Git Bash.
<SKILL_DIR> = the absolute path to this skill's own directory — the folder containing this SKILL.md; resolve it from the skill path in context$NAME — the project name (alphanumerical only — no spaces, hyphens, underscores, or special characters). Ask the user for it. It also names the UI bundle, so it shows up inside the project.$DEST — the target root directory the contents land in (use . for the current directory).$TEMPLATE — the --template flag value from the framework reference chosen in Step 1 (e.g. reactinternalapp).Run the script with the actual, literal values substituted for $NAME, $DEST, and $TEMPLATE — do not use shell variable assignment/interpolation (NAME=... / $NAME / %NAME% / $env:NAME) since that syntax differs across bash, cmd, and PowerShell and this command must work in all three:
node "<SKILL_DIR>/scripts/generate-project.mjs" "<name>" "<dest>" "<template>"The script prints OK: project root landed at <dest> (...) and exits 0 on success. It exits non-zero (with a clear stderr message) if sf template generate project fails, the generated project has no sfdx-project.json, or the flatten didn't leave a valid project root — stop and surface the failure rather than continuing.
sfdx-project.json must sit at $DEST/sfdx-project.json. The project also contains package.json, force-app/main/default/uiBundles/$NAME/ (the UI bundle), scripts/, config/, and README.md. See the framework reference from Step 1 for the specific bundle contents.
If the generated project ships without node_modules, install dependencies yourself before handing the project back — a fresh template is not runnable (preview/build/lint all fail) until deps are present. The user should receive a ready-to-develop project.
There are multiple package.json files, each needing its own install:
$DEST/package.json), and$DEST/force-app/main/default/uiBundles/$NAME/ — this holds the toolchain the preview server loads, so it must have node_modules too.<SKILL_DIR>/scripts/install-deps.mjs runs npm install for the root and for every UI bundle that has a package.json (via Node's child_process with an explicit cwd — no cd && shell chaining), then verifies node_modules landed everywhere it installed:
node "<SKILL_DIR>/scripts/install-deps.mjs" "<dest>"Substitute the literal $DEST value from Step 2 for <dest>. The script prints OK: all dependencies installed. and exits 0 on success; it exits non-zero with a listed summary of which install(s) failed otherwise. First-run install of the bundle is the heavy step; expect a short wait. If an install fails, surface it — don't hand off a half-installed project.
install-deps.mjs already prints a verification summary (root + each UI bundle's node_modules) as part of Step 3. To look around the generated project yourself, use your own file-listing/read tools rather than a shell ls — that works identically regardless of the underlying OS shell.
The project is now ready to develop and deploy. If there's a README.md in the template, take a look at it to see if there is any extra step or guidance for the user.
From here, continue development with the other ui-bundle skills (experience-ui-bundle-frontend-generate, experience-ui-bundle-salesforce-data-access, experience-ui-bundle-deploy, etc.) against the now-scaffolded project — scaffolding and dependency install are already done.
uiBundles metadata convention. The UI bundle directory and meta XML are named after the project name you pass to --name.sf template generate project --help lists all available templates if the flag names ever change.© 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
SKILL.md and 5 other files (scripts, references) in skills/experience-ui-bundle-project-generate of forcedotcom/sf-skills.
Open the folder on GitHubat commit 3c15867
Experience UI Bundle Project 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Experience UI Bundle Project Generate this skillforcedotcom/sf-skills | 1.1k | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Gh Bot Commentjetstreamapp/jetstream | 125 | — | ~616 | Automated safety check: Pass | Custom licence | |
| Sf DebugJaganpro/sf-skills | 424 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Nextcrmpdovhomilja/nextcrm-app | 711 | — | ~3.3k | Automated safety check: Pass | MIT | |
| External Consumersforcedotcom/salesforcedx-vscode | 1k | — | ~1.8k | Automated safety check: Pass | BSD-3-Clause | |
| Salesforce DeveloperJeffallan/claude-skills | 12k | — | ~1.9k | Automated safety check: Pass | MIT |
jetstreamapp/jetstream
Post GitHub PR/issue comments, reviews, and review replies as the Jetstream bot account instead of the user's personal account.
Jaganpro/sf-skills
Salesforce debug log analysis and troubleshooting with 100-point scoring.
pdovhomilja/nextcrm-app
Connect to NextCRM MCP server to manage CRM data — accounts, contacts, leads, opportunities, targets, products, contracts, activities, documents, target lists, enrichment, email accounts, campaigns…
forcedotcom/salesforcedx-vscode
Known external consumers of APIs from this monorepo's extensions.
Jeffallan/claude-skills
Writes Apex, Lightning Web Components and SOQL for the Salesforce platform, with bulkified triggers, governor-limit checks, 90% test coverage and Salesforce DX deployment.
Jaganpro/sf-skills
Generates and reviews Salesforce Apex code with 150-point scoring.
forcedotcom/sf-skills
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins.
forcedotcom/sf-skills
Data Cloud 360° view of a single Agentforce session. An agent skill from forcedotcom/sf-skills.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply SLDS-compliant UI using the correct blueprints, styling hooks, utility classes, and icons.
forcedotcom/sf-skills
Lightning Web Components with PICKLES methodology and 165-point scoring.
Works with
Categories
Generates a minimal, ready-to-develop SFDX starter project from template instead of hand-scaffolding files. Experience UI Bundle Project Generate is an agent skill from forcedotcom/sf-skills. Generates a minimal, ready-to-develop SFDX starter project from template instead of hand-scaffolding files.
Experience UI Bundle Project Generate fits situations like: starting a brand-new Salesforce UI bundle app (React; angular) and the initial project must be scaffolded — trigger phrases include create; scaffold a new UI bundle app; generate a starter project.
Run `npx skills add forcedotcom/sf-skills --skill experience-ui-bundle-project-generate -a claude-code`. Or copy the skill folder (skills/experience-ui-bundle-project-generate in forcedotcom/sf-skills) into .claude/skills/experience-ui-bundle-project-generate in your project. Claude Code loads it when a task matches its description.
Run `npx skills add forcedotcom/sf-skills --skill experience-ui-bundle-project-generate -a codex`. Or copy the skill folder (skills/experience-ui-bundle-project-generate in forcedotcom/sf-skills) into .agents/skills/experience-ui-bundle-project-generate in your project. Codex loads it when a task matches its description.
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-project-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-project-generate, .gemini/skills/experience-ui-bundle-project-generate, .github/skills/experience-ui-bundle-project-generate and .opencode/skills/experience-ui-bundle-project-generate in your project.
Going by SKILL.md and its folder, Experience UI Bundle Project Generate needs JavaScript for the scripts in its folder and the command-line tools its instructions call (sf, node and npm). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Experience UI Bundle Project 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.
About 2k tokens (SKILL.md is roughly 8.1k 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 1.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Experience UI Bundle Project Generate: Gh Bot Comment (jetstreamapp/jetstream, 125 stars), Sf Debug (Jaganpro/sf-skills, 424 stars), Nextcrm (pdovhomilja/nextcrm-app, 711 stars) and External Consumers (forcedotcom/salesforcedx-vscode, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.