Loading...
Loading...
Use this skill to list, view, or manage DevOps Center projects in a Salesforce org — show all projects, create a new project, or update an existing project's name, description, or active status. Invoke it to run sf devops project list whenever the user wants to show, see, view, display, or list available projects, check which or how many DevOps Center projects exist, or look up a project ID — even a plain listing request should use this skill rather than a raw tool or a direct answer. Also invoke to create a project, set up a new deployment pipeline foundation, initialize DevOps Center for a new feature, update project settings like name and description, or activate/deactivate (archive) a project. Consolidates sf devops project list/create/update operations. DO NOT TRIGGER for work item, pipeline, promotion, or conflict operations — those are separate skills.
npx skill4agent add forcedotcom/sf-skills dx-devops-project-manage--target-org <alias>target-orgsf config get target-org--jsonsf devops project list --target-org <alias> --jsonsf devops project--json# When a specific org is requested, check that alias (do NOT rely on the default org):
sf org display --target-org <alias> --json
# Only when no alias is supplied and a default org is expected:
sf org display --jsonsf org login web --alias <alias>--target-org <alias>sf devops projecttarget-orgsf config get target-org--target-org <alias>Deterministic project-list parsing, empty-list handling, name→ID resolution, idempotent create, and update are handled by the scripts in— each script exits non-zero with an actionable message on failure. Pass the org alias as the trailing/scripts/argument when the--target-orgconfig var is not set; omit it to use the default org. The scripts read the authoritativetarget-orglist envelope..result.projects[]
sf devops project listscripts/list-projects.shlist_devops_center_projectssf devops projectscripts/list-projects.sh [target-org]Id Name DescriptionNO_PROJECTSscripts/list-projects.sh --resolve "<project-name>" [target-org]scripts/create-project.sh "<name>" "<description>" [target-org]EXISTING <id>CREATED <id>scripts/update-project.sh --project (<id>|name:<name>) [--name "<new-name>"] [--description "<new-desc>"] [--is-active|--no-is-active] [--target-org <alias>]--project name:<name>--project <id>--name--description--is-active--no-is-active--is-active--no-is-activeUPDATED <id>NO_PROJECTSEXISTING <id>| Constraint | Rationale |
|---|---|
Always use the | List/create/update MUST go through |
All sf devops commands must use | Structured output is required for headless consumption; human-readable output is unreliable for parsing |
| Every |
| Project ID required for update | Use |
| A project cannot be created without a name |
| At least one update field required | Update command fails if none of |
Use | Activate with |
| Idempotent create operations | Check for an existing project with the same name before creating a duplicate |
| Never use interactive prompts | Skills run in headless environments; all inputs must be via CLI flags |
| A project is a prerequisite for work items and pipelines | Downstream skills (work-item-manage, pipeline-manage) need the project ID this skill returns |
| Issue | Resolution |
|---|---|
| No default org set | Run |
| User provides project by name, not ID (update) | Resolve via |
| Tempted to use an MCP listing tool | A |
| DevOps Center not enabled | If |
| Project not found (update) | User provided an invalid project ID; run |
| Wrong list envelope | |
| Duplicate project name | Idempotent create check should catch this; return the existing project ID instead of creating a duplicate |
| Empty project list | No projects exist yet; guide the user to create one before setting up work items or pipelines |
| Missing update field | Update fails if none of |
No default org and no | Commands fail with a NoOrgFound / missing target-org error; set |
| Activate/deactivate passes a value | |
Id Name DescriptionNO_PROJECTSscripts/list-projects.shEXISTING <id>CREATED <id>scripts/create-project.shUPDATED <id>scripts/update-project.shsf devops projectscripts/.result.projects[]sf org display --json--target-org <alias>target-orgNO_PROJECTSCREATED <id>EXISTING <id>--project <id>--project name:<name>--is-active--no-is-activeUPDATED <id>| When | Delegate to |
|---|---|
| User wants to create, list, or update work items in a project | |
| User wants to create or configure a pipeline for a project | |
| User wants to promote or deploy changes | |
| File | When to read / run |
|---|---|
| Workflow step 3 — list all projects or resolve a project name to an ID ( |
| Workflow step 4 — idempotently create a project and verify it via re-read |
| Workflow step 5 — update name/description/active status by ID or name |
| When you need detailed CLI flag documentation, JSON output schemas, or error handling patterns |
| When the user's request matches a common pattern (name resolution, idempotent creation, project setup as a workflow entry point) |