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.
Scaffold a new Salesforce DX project of any template — standard, empty, analytics, agent, or a React/Angular UI-bundle app — and set it up end-to-end: relocate the session, connect an org, set the…
$ npx skills add forcedotcom/sf-skills --skill dx-project-create -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install forcedotcom/sf-skills dx-project-create --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/plugins/builder/salesforce-development/skills/dx-project-create .claude/skills/dx-project-create && 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 "dx-project-create" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/salesforce-development/skills/dx-project-create into .claude/skills/dx-project-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-project-create", 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/plugins/builder/salesforce-development/skills/dx-project-createType 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 dx-project-create -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install forcedotcom/sf-skills dx-project-create --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/plugins/builder/salesforce-development/skills/dx-project-create .agents/skills/dx-project-create && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dx-project-create" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/salesforce-development/skills/dx-project-create into .agents/skills/dx-project-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-project-create", 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 dx-project-create -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install forcedotcom/sf-skills dx-project-create --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/plugins/builder/salesforce-development/skills/dx-project-create .cursor/skills/dx-project-create && 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 "dx-project-create" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/salesforce-development/skills/dx-project-create into .cursor/skills/dx-project-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-project-create", 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 plugins/builder/salesforce-development/skills/dx-project-create--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 dx-project-create -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install forcedotcom/sf-skills dx-project-create --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/plugins/builder/salesforce-development/skills/dx-project-create .gemini/skills/dx-project-create && 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 "dx-project-create" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/salesforce-development/skills/dx-project-create into .gemini/skills/dx-project-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-project-create", 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 dx-project-createInstalls 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 dx-project-create -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/plugins/builder/salesforce-development/skills/dx-project-create .github/skills/dx-project-create && 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 "dx-project-create" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/salesforce-development/skills/dx-project-create into .github/skills/dx-project-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-project-create", 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 dx-project-create -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 dx-project-create --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/plugins/builder/salesforce-development/skills/dx-project-create .opencode/skills/dx-project-create && 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 "dx-project-create" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/salesforce-development/skills/dx-project-create into .opencode/skills/dx-project-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-project-create", 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.
dx-project-createScaffold a new Salesforce DX project of any template — standard, empty, analytics, agent, or a React/Angular UI-bundle app — and set it up end-to-end: relocate the session, connect an org, set the…
Dx Project Create is an agent skill from forcedotcom/sf-skills. Scaffold a new Salesforce DX project of any template — standard, empty, analytics, agent, or a React/Angular UI-bundle app — and set it up end-to-end: relocate the session, connect an org, set the default, enable source tracking. Use when the user asks to create or scaffold a new Salesforce/SFDX project, start a new React/Angular Salesforce app, or run 'sf template generate project'. DO NOT TRIGGER for: building/editing/styling an EXISTING UI-bundle app (experience-ui-bundle-frontend-generate); scaffolding only a…
Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Sales & Support, covering Project scaffolding and CRM management. It works with Salesforce, Angular and React. 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.
7 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 these tools, so the agent can use them without asking each time:
BashReadFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
sfclaudenpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
test.salesforce.comFrom 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.
Dx Project Create loads about 4.5k tokens when it runs. Until then it costs about 192 tokens; SKILL.md has 2,253 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, ReadAutomated 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); files beside SKILL.md are not scanned.
The full file from forcedotcom/sf-skills at commit 3c15867, republished under its Apache-2.0 licence (© forcedotcom). 2,253 words, ~4,457 tokens.
.claude/skills/dx-project-create/SKILL.md (or your agent's skills folder).Walk the user through a wizard that scaffolds a new Salesforce DX project, relocates this session into the new project, connects it to an org, and configures it for development. Run each step in order, confirming with the user before any environment-changing action.
The salesforce-development plugin's MCP servers (salesforce-api-context, salesforce-metadata-experts, salesforce-lsp) are provided by the installed plugin, not by the project — so they stay available in the new project automatically once the session relocates. There is no per-project .mcp.json to copy.
This skill scaffolds every template the CLI offers, including React/Angular UI-bundle apps — creating a project is a core capability and shouldn't require installing a separate plugin just to pick a template. (Once the project exists, the experience-ui-bundle-* skills own building it out — pages, components, styling, deploy — but the initial scaffold happens right here, whether or not that plugin is installed.)
Read the template set live from the CLI — never hardcode it, because Salesforce adds templates over time and a baked-in list goes stale:
sf template generate project --helpParse the -t, --template=<option> line's <options: a|b|c|…> list — those pipe-separated names are the authoritative template set. As of writing the CLI offers eight, all scaffolded here: standard, empty, analytics, agent, plus the UI-bundle set reactinternalapp, reactexternalapp, angularinternalapp, angularexternalapp (React/Angular × internal/external audience). Treat the live parse as the source of truth; the list here is only a fallback if the parse fails.
Intent shortcut first. Take the shortcut only when the request fully resolves to exactly one template. Anything with a missing choice goes to the picker so it can ask — never guess. Resolve {template} directly when:
empty; "analytics project" → analytics; "agent project" → agent; "standard project" → standard.reactinternalapp, "customer-facing Angular portal" → angularexternalapp). Internal = employee-facing/already-authenticated; external = customer/partner-facing with a login flow.A description of the app is NOT a template name. "Build me a personal todo app", "an inventory tracker", "a CRM for my team" describe what to build, not which template — they do NOT resolve to a template, so they do not qualify for the shortcut. Do not infer standard (or any template) from the app's purpose, however obvious it seems: standard being the picker's default does not license skipping the picker. When the user hasn't named a template or a framework, you must show the picker and let them choose — silently assuming a template is the exact miss this step exists to prevent.
Everything else falls through to the picker, including:
Otherwise ask one AskUserQuestion — "What kind of project?" (single-select, four options). AskUserQuestion caps at four choices, so the picker surfaces the four most-requested kinds; empty is deliberately picker-omitted and reached only via the intent shortcut above ("empty/minimal project"). That is intentional — empty is the rarely-picked bare-project template, and spending one of four scarce slots on it would crowd out a common choice. A user who wants it names it and the shortcut resolves it directly.
standard (the default) — general-purpose force-app metadata project (Apex, LWC, objects, flows).agent — ships a sample Local Info Agent.analytics (Tableau CRM) — adds the waveTemplates directory.AskUserQuestion ("Which UI framework and audience?", four options) that maps directly to {template}:reactinternalapp · React — external → reactexternalappangularinternalapp · Angular — external → angularexternalappThe resolved template is {template}, which feeds Step 3. If the live CLI adds a new template, add it here (or, if it's another rarely-picked one, wire it as an intent-shortcut keyword rather than a fifth picker slot).
Prompt the user for a project name. It becomes the new directory name and is interpolated into the shell commands below, so it MUST be strictly validated before any command uses it — never pass a raw name through.
Allowlist, then reject-and-re-prompt. Accept only names matching ^[A-Za-z0-9][A-Za-z0-9_-]*$ — letters, digits, _, and -, starting with a letter or digit. Anything else (spaces, path separators like /, a leading . or .., or shell metacharacters such as ; | & $ > < ( ) \ " ') is invalid: explain why and ask again. A name like proj;rm -rf ~must never reach a command. As defense in depth, the commands below also quote"{name}"` — but validation is the real guard, not the quoting.
Verify before generating — do not run the command until you can check both:
{name} about to be interpolated is the exact value that passed the Step 2 allowlist (^[A-Za-z0-9][A-Za-z0-9_-]*$) — not a raw, re-edited, or user-echoed string. If it never passed validation, go back to Step 2.{template} is one of the CLI's advertised options from Step 1.{name}/ directory already exists in the current working directory — the generate would fail (or risk clobbering an existing project) if it does. Check with [ -e "{name}" ] first; if it exists, don't overwrite: tell the user and go back to Step 2 for a different name.Run in the current working directory:
sf template generate project -t {template} -n "{name}"This creates a new {name}/ directory under the current working directory. (sf project generate is the deprecated alias for this command — prefer template generate project.) No flatten step is needed — unlike a generate-into-an-existing-dir flow, this creates a fresh {name}/ whose sfdx-project.json is already at the root the session will relocate into.
UI-bundle templates carry npm dependencies — but do NOT install them for the user. A React/Angular starter isn't runnable (preview/build/lint fail) until its npm deps are present, and there are multiple package.json files — the project root and each UI bundle — each needing its own install. First-run install is the heavy step (multi-minute) and obvious through the latency, so it's a decision the developer should make explicitly — not something this skill runs unasked. Do not run npm install yourself. Instead, when {template} is a UI-bundle one (react*/angular*), tell the user in the closing message that deps aren't installed yet and hand them the commands to run when they're ready (see the UI-bundle pointer in the Closing Message).
Modern Claude Code (v2.1.169+) can move the current session into the new directory in place — no new terminal, no relaunch, conversation history preserved. Tell the user to run:
/cd {name}This relocates the session: the new directory's CLAUDE.md is loaded, project storage moves there (so --resume/--continue find it), and the cwd becomes the project root, so all remaining sf commands run as plain sf ... with no path prefix.
/cd is a client-side move: it fires no hook and gives you no turn, so the session goes quiet the instant they run it — expected, not a hang. But it also means the message in which you hand them /cd is your last word until they speak again, so that message MUST end with an affordance telling them how to resume. Close it with a line like:
Once you're in, just say "what's next" (or "connect an org") and I'll pick up from there.
Saying "what's next" re-engages this session and paints the journey nudge, which points at the next step (authenticating an org). Never imply the session will continue on its own after /cd — it won't.
When they re-engage, confirm the move in one short line (e.g. "You're in {name} now.") and continue to Step 5. Do not run sf-context detect or check-tools to "re-surface" the banner: detect invoked as a tool prints the raw hook JSON (not a rendered banner), and the plugin already surfaces the banner on its own — it shows the HEADLESS identity once per session (at the user's first Salesforce ask, at session start, or on their first orientation question), and paints the journey nudge whenever they ask "where am I" / "what's next". A dev-environment health check is available on demand via /salesforce-development:setup.
Fallback for older Claude Code (before v2.1.169): /cd reports Unknown command. In that case the user must relaunch in the new directory instead:
cd "{name}" && claudeThe salesforce-development plugin is installed globally (via the marketplace), so a fresh session in the new directory loads it automatically and fires SessionStart — the banner and health check appear on their own, no manual sf-context calls needed. The remaining steps below then run from inside the project.
Authenticate the org this project will deploy to:
sf org login web --alias {alias}--alias so later steps can reference the org by name.--instance-url https://test.salesforce.com.--instance-url (defaults to login.salesforce.com).If the user already has the org authenticated, skip the login and just collect the existing alias.
Set the freshly authenticated org as the project's default target:
sf config set target-org {alias}Check whether source tracking works against the org using a deploy preview (the lightest read-only source-tracking probe):
sf project deploy preview --target-org {alias} --jsonIf this fails with an error mentioning source tracking not supported or not enabled, offer to enable it:
sf org enable tracking --target-org {alias}Confirm with the user before running the enable command.
Once all steps are complete, tell the user:
Your project is ready! Here's what was set up:
✅ Project generated: {name}/
✅ Session relocated into {name}/ (via /cd)
✅ Default org: {alias}
✅ Source tracking: enabled (or status)
You're already working inside the new project — this same session moved
here with /cd, so just keep going. Run /salesforce-development:setup
anytime to re-check your dev environment.If the user took the older-version fallback (relaunched with cd {name} && claude instead of /cd), they're in a fresh session in the project and the SessionStart banner already walked them through the environment — point them to /salesforce-development:setup to re-check tools.
For a UI-bundle project, the scaffold is done but its npm dependencies are not installed — that's the developer's call, not something this skill runs (first-run install is a heavy, multi-minute step). Tell the user their app needs its deps before it can preview/build/lint, and hand them the commands to run from inside the project when they're ready:
npm install # project root
for b in force-app/main/default/uiBundles/*/; do # each UI bundle
[ -f "$b/package.json" ] && ( cd "$b" && npm install )
doneThen add a line pointing at the follow-on development skills. Make the pointer framework-specific, because the front-end build skill is React-only:
react* templates) → experience-ui-bundle-frontend-generate builds pages/components (it's React/TypeScript-specific — shadcn/ui, react-router, appLayout.tsx/routes.tsx), and experience-ui-bundle-deploy ships the app.angular* templates) → there is no Angular front-end skill, so do NOT point at experience-ui-bundle-frontend-generate: its precondition requires a React appLayout.tsx/routes.tsx/src/components/ui/ and will reject an Angular bundle. Build it out from the Angular starter's own README/toolchain; experience-ui-bundle-deploy still ships it (deploy is framework-agnostic).Either way, those skills live in the experience-react/experience-lwc plugins; if the user doesn't have them, that's for building the app, not scaffolding it — the project they now have is complete and deployable as-is.
.mcp.json into the new project (the plugin's config uses ${CLAUDE_PLUGIN_ROOT}, which does not resolve in a project-level file)./cd {name} to relocate the session in place (Claude Code v2.1.169+) — a skill can't relocate the session on the user's behalf, so instruct the user to run it. Only fall back to cd {name} && claude (relaunch) when /cd reports Unknown command on an older build./cd {name} is your last turn until they speak again (/cd fires no hook), so it MUST end with a resume affordance — e.g. 'once you're in, just say "what's next".' Never promise the session will connect an org or continue on its own after /cd; it stays silent until the user re-engages./cd, do NOT run sf-context detect or check-tools to "show" the banner — detect as a tool prints raw JSON, and the plugin surfaces the banner itself (once per session; the journey nudge on orientation questions). Just confirm the move in one line and continue. Health is available on demand via /salesforce-development:setup.--instance-url https://test.salesforce.com is REQUIRED (the CLI default points at production).^[A-Za-z0-9][A-Za-z0-9_-]*$ and reject-and-re-prompt on anything else BEFORE using it, and quote "{name}" in every command (including the cd {name} && claude fallback). A name like proj;rm -rf ~ must never be interpolated raw — validation is the guard, quoting is the backstop.platform-environment-validate (or /salesforce-development:setup); for org auth on an existing project, use /salesforce-development:login.npm install for the user; installing a UI bundle's deps is the developer's explicit call (hand them the commands in the closing message). Then point the user at the experience-ui-bundle-* skills to build and deploy the UI app. The one boundary: when the UI-bundle scaffold is just one composed step of building out a UI-bundle app (driven by experience-ui-bundle-app-coordinate, no full project setup wanted), that's experience-ui-bundle-project-generate's job, not ours — the two skills' descriptions carry the reciprocal DO NOT TRIGGER. Building/editing an existing UI-bundle app is always theirs; greenfield project creation is ours.© 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
Just SKILL.md in plugins/builder/salesforce-development/skills/dx-project-create of forcedotcom/sf-skills.
Open the folder on GitHubat commit 3c15867
Dx Project Create 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 |
|---|---|---|---|---|---|---|
| Dx Project Create this skillforcedotcom/sf-skills | 1.1k | — | ~4.5k | Automated safety check: Notes | 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
Scaffold a new Salesforce DX project of any template — standard, empty, analytics, agent, or a React/Angular UI-bundle app — and set it up end-to-end: relocate the session, connect an org, set the…. Dx Project Create is an agent skill from forcedotcom/sf-skills. Scaffold a new Salesforce DX project of any template — standard, empty, analytics, agent, or a React/Angular UI-bundle app — and set it up end-to-end: relocate the session, connect an org, set the default, enable source tracking.
Dx Project Create fits situations like: the user asks to create; scaffold a new Salesforce/SFDX project; start a new React/Angular Salesforce app; run sf template generate project.
Run `npx skills add forcedotcom/sf-skills --skill dx-project-create -a claude-code`. Or copy the skill folder (plugins/builder/salesforce-development/skills/dx-project-create in forcedotcom/sf-skills) into .claude/skills/dx-project-create in your project. Claude Code loads it when a task matches its description.
Run `npx skills add forcedotcom/sf-skills --skill dx-project-create -a codex`. Or copy the skill folder (plugins/builder/salesforce-development/skills/dx-project-create in forcedotcom/sf-skills) into .agents/skills/dx-project-create 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 dx-project-create -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dx-project-create, .gemini/skills/dx-project-create, .github/skills/dx-project-create and .opencode/skills/dx-project-create in your project.
Going by SKILL.md and its folder, Dx Project Create needs the command-line tools its instructions call (sf, claude and npm). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Bash, Read.
SKILL.md names 1 domain. In commands or code: test.salesforce.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Dx Project Create 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 4.5k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Dx Project Create: 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.