agentforce-architectur…
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA…
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
Claude Code
$ npx -y skills add forcedotcom/sf-skills --skill dx-project-create --agent claude-code
Codex
$ npx skills add forcedotcom/sf-skills --skill dx-project-create -a codex -y
Cursor
$ npx skills add forcedotcom/sf-skills --skill dx-project-create -a cursor -y
Gemini CLI
$ npx skills add forcedotcom/sf-skills --skill dx-project-create -a gemini-cli -y
GitHub Copilot
$ npx skills add forcedotcom/sf-skills --skill dx-project-create -a github-copilot -y
OpenCode
$ npx skills add forcedotcom/sf-skills --skill dx-project-create -a opencode -y
Windsurf
$ npx skills add forcedotcom/sf-skills --skill dx-project-create -a windsurf -y
name: dx-project-create
description: "Scaffold a Salesforce DX project from any template (standard, agent, analytics, React/Angular/Vue app), move the session in, connect an org, enable source tracking. Use to create a Salesforce/SFDX project. DO NOT TRIGGER for: existing UI-bundle apps (experience-ui-bundle-frontend-generate); UI-bundle scaffold in a larger build (experience-ui-bundle-project-generate, experience-ui-bundle-app-coordinate); tool checks (platform-environment-validate); org login (login); scratch orgs (dx-org-manage)."
metadata:
domains: ["Developer Experience"]
relatedSkills:
- "experience-ui-bundle-project-generate"
- "experience-ui-bundle-frontend-generate"
- "experience-ui-bundle-deploy"
- "platform-environment-validate"
- "dx-org-manage"
cliTools:
- tool: ["npm"]
semver: ">=8.0.0"
- tool: ["sf"]
semver: ">=2.0.0"
allowed-tools:
- Bash
- ReadWalk 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 plugin's MCP servers come from the **installed plugin**, not the project, so they stay available after the session relocates. There is no per-project `.mcp.json` to copy.
This skill scaffolds **every** template the CLI offers, including UI-bundle web apps (React, Angular, Vue), so creating a project never requires installing another plugin. Once the project exists, the `experience-ui-bundle-*` skills own *building it out* (pages, components, deploy).
Read the template set **live from the CLI**, never from a baked-in list, because Salesforce adds templates over time:
sf template generate project --help
Parse the `-t, --template=<option>` line's `<options: a|b|c|…>` list; those names are the authoritative set. Fallback, only if the live list cannot be read: `standard`, `empty`, `analytics`, `agent`, `reactinternalapp`, `reactexternalapp`, `angularinternalapp`, `angularexternalapp`. Vue (`vueinternalapp`) is left out of the fallback because stable CLI builds reject it; newer builds list it in the live parse. If the parse failed and the user wants Vue, say the template list could not be read and ask them to update the Salesforce CLI. UI-bundle templates are named `<framework><audience>app`; internal = employee-facing, already authenticated; external = customer/partner-facing with login, registration, and profile.
**Intent shortcut first.** Take it **only when the request resolves to exactly one template in the live list.** Otherwise use the picker; never guess. Resolve `{template}` directly when:
**A description of the app is NOT a template name.** "A personal todo app", "an inventory tracker", "a CRM for my team" say *what* to build, not *which* template, so they do not qualify for the shortcut. Do not infer `standard` (or any template) from the app's purpose; `standard` being the picker's default does not license skipping the picker.
Everything else goes to the picker, including:
**Otherwise ask one `AskUserQuestion` — "What kind of project?"** (single-select, four options). `AskUserQuestion` caps at four choices, so the picker shows the four most-requested kinds; **`empty` is deliberately omitted** and reached only via the shortcut.
The resolved template is `{template}`, which feeds Step 3. When the live CLI adds a template, it surfaces through the live parse; only add a keyword to the intent shortcut if it is a rarely-picked non-UI template.
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.
**Validate, then reject-and-re-prompt.** Run this check on the candidate before it is used anywhere. Pass the candidate inside single quotes, exactly as typed. The regexes live in the command, so the check is deterministic:
node -e 'const [kind, value] = process.argv.slice(1); const re = {name: /^[A-Za-z0-9][A-Za-z0-9_-]*$/, namespace: /^(?=.{1,15}$)[A-Za-z][A-Za-z0-9]*(_[A-Za-z0-9]+)*$/, package: /^[A-Za-z0-9_][A-Za-z0-9_-]*(\/[A-Za-z0-9_][A-Za-z0-9_-]*)*$/, apiversion: /^[0-9]+\.0$/}[kind]; process.exit(re.test(value) ? 0 : 1)' name '{candidate}' && echo valid || echo invalidUse `name` as the kind for the project name. Ste
This repository provides Salesforce agent skills, plugins, and sample apps for building applications.
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA…
Use this skill to Upgrade Einstein Bots into Agentforce agents end-to-end in a single pass, orchestrating per-bot Agent Spec…
Data Cloud 360° view of a single Agentforce session. TRIGGER when user asks to trace, inspect, summarize, or describe a specific…
Build, modify, audit, repair, optimize, debug, and deploy agents with Agentforce Agent Script. TRIGGER when: user creates,…
Analyze production Agentforce agent behavior using session traces and Data Cloud, and manage Agent Health Monitoring (AHM)…
Use to design an AI agent persona — identity, voice, tone, behavioral style, guardrails — and encode it into Agent Script (.agent…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.