@salesforce/afv-skills 1.30.0 → 1.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/agentforce-bot-upgrade/SKILL.md +217 -0
- package/skills/agentforce-bot-upgrade/references/extraction-blueprint.md +242 -0
- package/skills/agentforce-bot-upgrade/references/generate-agent-spec.md +128 -0
- package/skills/agentforce-bot-upgrade/references/handoff-output-format.md +208 -0
- package/skills/agentforce-bot-upgrade/references/input-contract.md +101 -0
- package/skills/agentforce-bot-upgrade/references/mapping-rules.md +113 -0
- package/skills/agentforce-bot-upgrade/references/planner-workflow-reference.md +78 -0
- package/skills/agentforce-bot-upgrade/references/post-conversion-enhancements-reference.md +67 -0
- package/skills/agentforce-bot-upgrade/references/quality-checklist.md +33 -0
- package/skills/agentforce-bot-upgrade/references/sf-cli-bot-reference.md +116 -0
- package/skills/data360-code-extension-generate/SKILL.md +15 -2
- package/skills/dx-devops-work-item-manage/SKILL.md +270 -0
- package/skills/dx-devops-work-item-manage/examples/common-workflows.md +479 -0
- package/skills/dx-devops-work-item-manage/references/cli-commands.md +476 -0
- package/skills/dx-org-manage/SKILL.md +8 -5
- package/skills/dx-org-trial-expiration-check/SKILL.md +239 -0
- package/skills/dx-org-trial-expiration-check/scripts/check_expiration.sh +588 -0
- package/skills/dx-pkg-post-install-configure/SKILL.md +184 -0
- package/skills/experience-ui-bundle-app-coordinate/SKILL.md +202 -35
- package/skills/experience-ui-bundle-app-coordinate/scripts/check-hosting-target.sh +26 -0
- package/skills/experience-ui-bundle-app-coordinate/scripts/check-sfdx-project.sh +15 -0
- package/skills/experience-ui-bundle-custom-app-generate/SKILL.md +29 -5
- package/skills/experience-ui-bundle-custom-app-generate/references/configure-metadata-custom-application.md +1 -1
- package/skills/experience-ui-bundle-custom-app-generate/scripts/resolve-uibundle-path.sh +30 -0
- package/skills/experience-ui-bundle-features-generate/SKILL.md +86 -11
- package/skills/experience-ui-bundle-features-generate/references/conflict-resolution-schema.json +20 -0
- package/skills/experience-ui-bundle-features-generate/scripts/verify-react-bundle.sh +14 -0
- package/skills/experience-ui-bundle-frontend-generate/SKILL.md +6 -1
- package/skills/experience-ui-bundle-frontend-generate/references/component.md +34 -1
- package/skills/experience-ui-bundle-frontend-generate/references/page.md +1 -1
- package/skills/experience-ui-bundle-metadata-generate/SKILL.md +19 -8
- package/skills/experience-ui-bundle-metadata-generate/references/csp-metadata-format.md +2 -2
- package/skills/experience-ui-bundle-metadata-generate/scripts/check-api-version.sh +30 -0
- package/skills/experience-ui-bundle-project-generate/SKILL.md +111 -0
- package/skills/experience-ui-bundle-project-generate/scripts/flatten-project.mjs +33 -0
- package/skills/platform-custom-field-generate/SKILL.md +12 -11
- package/skills/platform-custom-field-generate/references/advanced-picklists.md +17 -17
- package/skills/platform-custom-lightning-type-generate/SKILL.md +9 -14
- package/skills/platform-custom-lightning-type-generate/references/widget-rendition.md +27 -111
- package/skills/platform-custom-report-type-generate/SKILL.md +259 -0
- package/skills/platform-custom-report-type-generate/examples/AccountProjectsWithTasks.reportType-meta.xml +51 -0
- package/skills/platform-custom-report-type-generate/examples/AccountsWithIndustry.reportType-meta.xml +27 -0
- package/skills/platform-custom-report-type-generate/examples/AccountsWithProjects.reportType-meta.xml +44 -0
- package/skills/platform-custom-report-type-generate/references/category-values.md +32 -0
- package/skills/platform-custom-report-type-generate/references/errors-and-troubleshooting.md +24 -0
- package/skills/platform-dataspace-access-configure/SKILL.md +318 -0
- package/skills/platform-docs-get/SKILL.md +4 -0
- package/skills/platform-docs-get/scripts/extract_salesforce_doc.py +78 -13
- package/skills/platform-encryption-configure/SKILL.md +122 -0
- package/skills/platform-encryption-configure/assets/EncryptionKey.settings-meta.xml +17 -0
- package/skills/platform-encryption-configure/assets/PlatformEncryption.settings-meta.xml +15 -0
- package/skills/platform-encryption-configure/assets/encrypted-field.field-meta.xml +22 -0
- package/skills/platform-encryption-configure/examples/cache-only-keys.settings-meta.xml +11 -0
- package/skills/platform-encryption-configure/references/encryption-schemes.md +34 -0
- package/skills/platform-encryption-configure/references/key-models.md +34 -0
- package/skills/platform-encryption-configure/references/tenant-secret-lifecycle.md +23 -0
- package/skills/platform-encryption-configure/scripts/validate-encryption-metadata.sh +54 -0
- package/skills/platform-lightning-type-widget-coordinate/SKILL.md +214 -0
- package/skills/platform-lightning-type-widget-coordinate/examples/existing-lightning-type-with-widget-prompt.md +80 -0
- package/skills/platform-lightning-type-widget-coordinate/examples/new-lightning-type-with-widget-prompt.md +75 -0
- package/skills/platform-lightning-type-widget-coordinate/references/build-plan-format.md +67 -0
- package/skills/platform-lightning-type-widget-coordinate/references/lightning-type-discovery.md +124 -0
- package/skills/platform-lightning-type-widget-coordinate/references/validation-gates.md +130 -0
- package/skills/platform-metadata-api-context-get/SKILL.md +13 -10
- package/skills/platform-sharing-owd-configure/SKILL.md +142 -0
- package/skills/platform-sharing-owd-configure/examples/get_owd_output.md +38 -0
- package/skills/platform-sharing-owd-configure/examples/update_owd_output.md +44 -0
- package/skills/platform-sharing-owd-configure/references/access_levels.md +49 -0
- package/skills/platform-sharing-owd-configure/references/metadata_api_approach.md +69 -0
- package/skills/platform-sharing-rules-generate/SKILL.md +89 -19
- package/skills/platform-sharing-rules-generate/examples/test-cases.md +381 -0
- package/skills/platform-widget-generate/SKILL.md +241 -0
- package/skills/platform-widget-generate/examples/conditional.json +73 -0
- package/skills/platform-widget-generate/examples/list-with-foreach.json +66 -0
- package/skills/platform-widget-generate/examples/single-object.json +64 -0
- package/skills/platform-widget-generate/references/schema-from-lightning-type.md +76 -0
- package/skills/platform-widget-generate/references/widget-bundle-layout.md +116 -0
- package/skills/platform-widget-generate/references/widget-meta-directives.md +130 -0
- package/skills/sales-agentforce-pipeline-management-configure/SKILL.md +268 -0
- package/skills/sales-agentforce-pipeline-management-configure/assets/field-completion-template.genAiPromptTemplate-meta.xml +141 -0
- package/skills/sales-agentforce-pipeline-management-configure/assets/pipeline_management_flow.flow-meta.xml +548 -0
- package/skills/sales-agentforce-pipeline-management-configure/assets/sales_management_agent.agent +2938 -0
- package/skills/sales-agentforce-pipeline-management-configure/assets/sales_management_agent.bundle-meta.xml +4 -0
- package/skills/sales-agentforce-pipeline-management-configure/assets/sfdx-project.json +12 -0
- package/skills/sales-agentforce-pipeline-management-configure/assets/stage-descriptions/bant.txt +11 -0
- package/skills/sales-agentforce-pipeline-management-configure/assets/stage-descriptions/meddic.txt +11 -0
- package/skills/sales-agentforce-pipeline-management-configure/assets/stage-descriptions/spiced.txt +11 -0
- package/skills/sales-agentforce-pipeline-management-configure/examples/custom-prompt-instructions.md +317 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/admin-communication.md +355 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/agent-creation.md +383 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/auth-and-cli.md +146 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/automation-matrix.md +23 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/autonomous-updates.md +215 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/canonical-agent-path.md +75 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/data-sources.md +155 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/field-completion-prompt-template.md +120 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/field-completion-prompts.md +149 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/flags.md +13 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/flow-clone-from-template.md +447 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/metadata-inventory.md +330 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/opportunity-stages.md +246 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/repair-diagnostics.md +265 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/setup-order.md +263 -0
- package/skills/sales-agentforce-pipeline-management-configure/references/soap-api-enablement.md +528 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/CHANGES.md +180 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/README.md +56 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/add-field-suggestion.sh +679 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/create-agent.sh +302 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/create-flow.sh +250 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/define-agent-access.sh +430 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/deploy-settings.sh +77 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/enable-deal-agent.sh +241 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/enable-prerequisites.sh +538 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/flow-debug-and-verify.sh +385 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/retrieve-settings.sh +131 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/setup-all.sh +2791 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/agent-bundle-publish.sh +189 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/agent-detection.sh +239 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/flow-builder.sh +238 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/psg.sh +48 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/soap.sh +140 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/stage-descriptions.sh +448 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/test-opp.sh +166 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/verify-all.sh +636 -0
- package/skills/sales-agentforce-pipeline-management-configure/scripts/verify-prompt-generation.sh +346 -0
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
# DevOps Center Work Item CLI Commands Reference
|
|
2
|
+
|
|
3
|
+
Complete reference for `sf devops work-item` CLI commands with JSON output schemas and common patterns.
|
|
4
|
+
|
|
5
|
+
## Command Summary
|
|
6
|
+
|
|
7
|
+
| Command | Purpose | Required Flags | Optional Flags |
|
|
8
|
+
|---------|---------|---------------|----------------|
|
|
9
|
+
| `sf devops work-item list` | List all work items in a project | `--project-id` | `--api-version` |
|
|
10
|
+
| `sf devops work-item create` | Create new work item | `--project-id`, `--subject` | `--description`, `--api-version` |
|
|
11
|
+
| `sf devops work-item update` | Update work item fields or status | `--work-item-name` OR `--work-item-id`, plus at least one of: `--subject`, `--description`, `--status` | `--api-version` |
|
|
12
|
+
| `sf devops review create` | Create pull request for work item | `--work-item-name` OR `--work-item-id` | `--api-version` |
|
|
13
|
+
|
|
14
|
+
All commands support `--json` for structured output and `--target-org <alias>` for multi-org scenarios.
|
|
15
|
+
|
|
16
|
+
**Org Authentication:**
|
|
17
|
+
Before running any DevOps Center commands, verify org authentication:
|
|
18
|
+
```bash
|
|
19
|
+
sf org display --json
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
If no default org is set or the user wants to target a specific org, add `--target-org <alias>` to all commands.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## List Work Items
|
|
27
|
+
|
|
28
|
+
### Basic Usage
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
sf devops work-item list --project-id <project-id> --json
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Example
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# List all work items for project 1Qg000000000001
|
|
38
|
+
sf devops work-item list --target-org my-devops-org --project-id 1Qg000000000001 --json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### JSON Output Schema
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"status": 0,
|
|
46
|
+
"result": [
|
|
47
|
+
{
|
|
48
|
+
"id": "0Wx000000000001AAA",
|
|
49
|
+
"name": "WI-000001",
|
|
50
|
+
"subject": "Fix login bug",
|
|
51
|
+
"description": "Users can't log in on mobile devices",
|
|
52
|
+
"branch": "feature/fix-login",
|
|
53
|
+
"environment": "dev-scratch-1",
|
|
54
|
+
"repositoryUrl": "https://github.com/org/repo",
|
|
55
|
+
"status": "In Progress",
|
|
56
|
+
"lastModifiedDate": "2026-07-22T10:30:00.000Z",
|
|
57
|
+
"createdDate": "2026-07-20T08:15:00.000Z"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "0Wx000000000002AAA",
|
|
61
|
+
"name": "WI-000002",
|
|
62
|
+
"subject": "Add dark mode",
|
|
63
|
+
"description": "",
|
|
64
|
+
"branch": "feature/dark-mode",
|
|
65
|
+
"environment": "dev-scratch-2",
|
|
66
|
+
"repositoryUrl": "https://github.com/org/repo",
|
|
67
|
+
"status": "Ready to Promote",
|
|
68
|
+
"lastModifiedDate": "2026-07-21T15:45:00.000Z",
|
|
69
|
+
"createdDate": "2026-07-19T09:00:00.000Z"
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Key Fields
|
|
76
|
+
|
|
77
|
+
- `id`: Salesforce record ID (use with `--work-item-id`)
|
|
78
|
+
- `name`: Human-readable work item name like WI-000001 (use with `--work-item-name`)
|
|
79
|
+
- `subject`: Title of the work item
|
|
80
|
+
- `description`: Detailed description (may be empty string)
|
|
81
|
+
- `branch`: Git branch associated with this work item
|
|
82
|
+
- `environment`: Development environment name
|
|
83
|
+
- `status`: Current work item status
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Create Work Item
|
|
88
|
+
|
|
89
|
+
### Required Fields
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
sf devops work-item create \
|
|
93
|
+
--project-id <project-id> \
|
|
94
|
+
--subject "<subject>" \
|
|
95
|
+
--json
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### With Optional Description
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
sf devops work-item create \
|
|
102
|
+
--project-id 1Qg000000000001 \
|
|
103
|
+
--subject "Fix login bug" \
|
|
104
|
+
--description "Users can't log in on mobile devices" \
|
|
105
|
+
--json
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### JSON Output Schema
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"status": 0,
|
|
113
|
+
"result": {
|
|
114
|
+
"id": "0Wx000000000003AAA",
|
|
115
|
+
"name": "WI-000003",
|
|
116
|
+
"subject": "Fix login bug",
|
|
117
|
+
"description": "Users can't log in on mobile devices",
|
|
118
|
+
"branch": "feature/fix-login-bug",
|
|
119
|
+
"environment": "dev-scratch-3",
|
|
120
|
+
"repositoryUrl": "https://github.com/org/repo",
|
|
121
|
+
"status": "New",
|
|
122
|
+
"createdDate": "2026-07-22T11:00:00.000Z"
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Update Work Item
|
|
130
|
+
|
|
131
|
+
### Update Subject
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
sf devops work-item update \
|
|
135
|
+
--work-item-name WI-000001 \
|
|
136
|
+
--subject "Fix critical login bug" \
|
|
137
|
+
--json
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Update Description
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
sf devops work-item update \
|
|
144
|
+
--work-item-name WI-000001 \
|
|
145
|
+
--description "Updated description with repro steps: 1. Open app on iOS 2. Tap login..." \
|
|
146
|
+
--json
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Update Status
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
sf devops work-item update \
|
|
153
|
+
--work-item-name WI-000001 \
|
|
154
|
+
--status "In Progress" \
|
|
155
|
+
--json
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Valid status values (exact strings):
|
|
159
|
+
- `"In Progress"` (with space and proper capitalization)
|
|
160
|
+
- `"Ready to Promote"` (with space and proper capitalization)
|
|
161
|
+
|
|
162
|
+
### Update Multiple Fields
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
sf devops work-item update \
|
|
166
|
+
--work-item-name WI-000001 \
|
|
167
|
+
--subject "Fix critical login bug [P0]" \
|
|
168
|
+
--description "Updated with repro steps" \
|
|
169
|
+
--status "In Progress" \
|
|
170
|
+
--json
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Using Work Item ID Instead of Name
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
sf devops work-item update \
|
|
177
|
+
--work-item-id 0Wx000000000001AAA \
|
|
178
|
+
--status "Ready to Promote" \
|
|
179
|
+
--json
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
> **Note:** Prefer `--work-item-name` (WI-000001) over `--work-item-id` when available — names are human-readable and easier to reference.
|
|
183
|
+
|
|
184
|
+
### JSON Output Schema
|
|
185
|
+
|
|
186
|
+
```json
|
|
187
|
+
{
|
|
188
|
+
"status": 0,
|
|
189
|
+
"result": {
|
|
190
|
+
"id": "0Wx000000000001AAA",
|
|
191
|
+
"name": "WI-000001",
|
|
192
|
+
"subject": "Fix critical login bug [P0]",
|
|
193
|
+
"description": "Updated with repro steps",
|
|
194
|
+
"status": "In Progress",
|
|
195
|
+
"lastModifiedDate": "2026-07-22T11:15:00.000Z"
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Error Handling
|
|
203
|
+
|
|
204
|
+
### Common Error Scenarios
|
|
205
|
+
|
|
206
|
+
**Work item not found:**
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"status": 1,
|
|
210
|
+
"name": "NOT_FOUND",
|
|
211
|
+
"message": "The requested resource does not exist",
|
|
212
|
+
"exitCode": 1
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Invalid status value:**
|
|
217
|
+
```json
|
|
218
|
+
{
|
|
219
|
+
"status": 1,
|
|
220
|
+
"name": "INVALID_STATUS",
|
|
221
|
+
"message": "Invalid status value. Allowed values: 'In Progress', 'Ready to Promote'",
|
|
222
|
+
"exitCode": 1
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**Missing required field (create):**
|
|
227
|
+
```json
|
|
228
|
+
{
|
|
229
|
+
"status": 1,
|
|
230
|
+
"name": "RequiredFlagsError",
|
|
231
|
+
"message": "Missing required flag --subject",
|
|
232
|
+
"exitCode": 1
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
**Missing update field:**
|
|
237
|
+
```json
|
|
238
|
+
{
|
|
239
|
+
"status": 1,
|
|
240
|
+
"name": "RequiredFlagsError",
|
|
241
|
+
"message": "At least one of --subject, --description, or --status must be provided",
|
|
242
|
+
"exitCode": 1
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**Project not found:**
|
|
247
|
+
```json
|
|
248
|
+
{
|
|
249
|
+
"status": 1,
|
|
250
|
+
"name": "NOT_FOUND",
|
|
251
|
+
"message": "Project with ID 1Qg000000000999 does not exist or is not accessible",
|
|
252
|
+
"exitCode": 1
|
|
253
|
+
}
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
**Authentication failure:**
|
|
257
|
+
```json
|
|
258
|
+
{
|
|
259
|
+
"status": 1,
|
|
260
|
+
"name": "NoOrgFound",
|
|
261
|
+
"message": "No org configuration found for target-org. Run 'sf org login web' to authenticate.",
|
|
262
|
+
"exitCode": 1
|
|
263
|
+
}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Parsing JSON Output
|
|
269
|
+
|
|
270
|
+
### Extract Work Item Name (create operation)
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
# Store work item name in a variable
|
|
274
|
+
WORK_ITEM_NAME=$(sf devops work-item create \
|
|
275
|
+
--project-id 1Qg000000000001 \
|
|
276
|
+
--subject "Test WI" \
|
|
277
|
+
--json | jq -r '.result.name')
|
|
278
|
+
|
|
279
|
+
echo "Created work item: $WORK_ITEM_NAME"
|
|
280
|
+
# Output: Created work item: WI-000004
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Check for Empty List
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
# Count returned work items
|
|
287
|
+
COUNT=$(sf devops work-item list --project-id 1Qg000000000001 --json | jq '.result | length')
|
|
288
|
+
|
|
289
|
+
if [ "$COUNT" -eq 0 ]; then
|
|
290
|
+
echo "No work items found for this project"
|
|
291
|
+
else
|
|
292
|
+
echo "Found $COUNT work items"
|
|
293
|
+
fi
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### Extract Specific Fields
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
# List work item names and subjects
|
|
300
|
+
sf devops work-item list --project-id 1Qg000000000001 --json | \
|
|
301
|
+
jq -r '.result[] | "\(.name): \(.subject)"'
|
|
302
|
+
|
|
303
|
+
# Output:
|
|
304
|
+
# WI-000001: Fix login bug
|
|
305
|
+
# WI-000002: Add dark mode
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### Filter by Status
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
# Find all work items with "Ready to Promote" status
|
|
312
|
+
sf devops work-item list --project-id 1Qg000000000001 --json | \
|
|
313
|
+
jq -r '.result[] | select(.status == "Ready to Promote") | "\(.name): \(.subject)"'
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## Idempotent Create Pattern
|
|
319
|
+
|
|
320
|
+
To avoid duplicate work items, check for existing work items with the same subject before creating:
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
PROJECT_ID="1Qg000000000001"
|
|
324
|
+
SUBJECT="Fix login bug"
|
|
325
|
+
|
|
326
|
+
# Check if work item with subject exists
|
|
327
|
+
EXISTING_NAME=$(sf devops work-item list \
|
|
328
|
+
--project-id "$PROJECT_ID" \
|
|
329
|
+
--json | \
|
|
330
|
+
jq -r ".result[] | select(.subject == \"$SUBJECT\") | .name" | head -n1)
|
|
331
|
+
|
|
332
|
+
if [ -n "$EXISTING_NAME" ]; then
|
|
333
|
+
echo "Work item already exists: $EXISTING_NAME"
|
|
334
|
+
else
|
|
335
|
+
# Create new work item
|
|
336
|
+
NEW_NAME=$(sf devops work-item create \
|
|
337
|
+
--project-id "$PROJECT_ID" \
|
|
338
|
+
--subject "$SUBJECT" \
|
|
339
|
+
--json | jq -r '.result.name')
|
|
340
|
+
echo "Created new work item: $NEW_NAME"
|
|
341
|
+
fi
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Authentication Requirements
|
|
347
|
+
|
|
348
|
+
All `sf devops work-item` commands require:
|
|
349
|
+
|
|
350
|
+
1. **Authenticated org**: `sf org login web` or JWT auth
|
|
351
|
+
2. **DevOps Center enabled**: Org must have DOCe provisioned
|
|
352
|
+
3. **Appropriate permissions**: User must have access to the project
|
|
353
|
+
|
|
354
|
+
Verify authentication before running commands:
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
sf org display --target-org <alias> --json
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
If authentication fails, the user must run:
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
sf org login web --set-default --alias <alias>
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## Create Pull Request
|
|
369
|
+
|
|
370
|
+
### Basic Usage
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
sf devops review create \
|
|
374
|
+
--work-item-name <WI-name> \
|
|
375
|
+
--json
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### Example with Work Item Name
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
sf devops review create \
|
|
382
|
+
--work-item-name WI-000001 \
|
|
383
|
+
--json
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### Example with Work Item ID
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
sf devops review create \
|
|
390
|
+
--work-item-id 0Wx000000000001AAA \
|
|
391
|
+
--json
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
> **Note:** Prefer `--work-item-name` (WI-000001) over `--work-item-id` when available — names are human-readable and easier to reference.
|
|
395
|
+
|
|
396
|
+
### JSON Output Schema
|
|
397
|
+
|
|
398
|
+
```json
|
|
399
|
+
{
|
|
400
|
+
"status": 0,
|
|
401
|
+
"result": {
|
|
402
|
+
"id": "0PR000000000001AAA",
|
|
403
|
+
"workItemId": "0Wx000000000001AAA",
|
|
404
|
+
"workItemName": "WI-000001",
|
|
405
|
+
"pullRequestUrl": "https://github.com/org/repo/pull/42",
|
|
406
|
+
"pullRequestNumber": 42,
|
|
407
|
+
"pullRequestStatus": "open",
|
|
408
|
+
"createdDate": "2026-07-23T10:00:00.000Z"
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### Key Fields
|
|
414
|
+
|
|
415
|
+
- `pullRequestUrl`: Direct link to the PR in VCS (GitHub or Bitbucket)
|
|
416
|
+
- `pullRequestNumber`: PR number in the VCS system
|
|
417
|
+
- `pullRequestStatus`: Current status (typically "open" at creation)
|
|
418
|
+
- `workItemName`: Work item the PR was created for
|
|
419
|
+
- `id`: Salesforce record ID for the review record
|
|
420
|
+
|
|
421
|
+
### How It Works
|
|
422
|
+
|
|
423
|
+
- Uses VCS credentials stored in DevOps Center org (not local git auth)
|
|
424
|
+
- Creates PR from work item's branch to the pipeline's base branch
|
|
425
|
+
- Works with GitHub and Bitbucket
|
|
426
|
+
- Requires VCS connection configured in DevOps Center UI first
|
|
427
|
+
|
|
428
|
+
### Error Scenarios
|
|
429
|
+
|
|
430
|
+
**VCS credentials not configured:**
|
|
431
|
+
```json
|
|
432
|
+
{
|
|
433
|
+
"status": 1,
|
|
434
|
+
"name": "VCS_NOT_CONFIGURED",
|
|
435
|
+
"message": "VCS connection not configured for this project. Configure in DevOps Center UI first.",
|
|
436
|
+
"exitCode": 1
|
|
437
|
+
}
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
**Work item not found:**
|
|
441
|
+
```json
|
|
442
|
+
{
|
|
443
|
+
"status": 1,
|
|
444
|
+
"name": "NOT_FOUND",
|
|
445
|
+
"message": "Work item WI-000999 does not exist or is not accessible",
|
|
446
|
+
"exitCode": 1
|
|
447
|
+
}
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
**PR already exists:**
|
|
451
|
+
```json
|
|
452
|
+
{
|
|
453
|
+
"status": 1,
|
|
454
|
+
"name": "PR_ALREADY_EXISTS",
|
|
455
|
+
"message": "A pull request already exists for work item WI-000001",
|
|
456
|
+
"exitCode": 1
|
|
457
|
+
}
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
## Getting Project ID
|
|
463
|
+
|
|
464
|
+
If the user doesn't provide a project ID, list available projects first:
|
|
465
|
+
|
|
466
|
+
```bash
|
|
467
|
+
sf devops project list --json | jq -r '.result[] | "\(.id): \(.name)"'
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
Output:
|
|
471
|
+
```text
|
|
472
|
+
1Qg000000000001: Project Alpha
|
|
473
|
+
1Qg000000000002: Project Beta
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
Then use the ID in subsequent work item commands.
|
|
@@ -2,18 +2,21 @@
|
|
|
2
2
|
name: dx-org-manage
|
|
3
3
|
description: "INVOKE this skill to execute Salesforce org operations: create scratch orgs, create org snapshots, open orgs in browser. This skill EXECUTES operations immediately - it does NOT generate scripts or code files. ALWAYS invoke this skill (do not execute SF CLI commands directly) when user requests to: create a scratch org (Developer/Enterprise edition, from definition file (.json), from snapshot, or from org shape), create an org snapshot, or open a Salesforce org. Trigger phrases include: 'create a snapshot', 'create snapshot of my scratch org', 'take a snapshot', 'create scratch org', 'create a Developer edition scratch org', 'new scratch org', 'spin up an org', 'create org from snapshot', 'scratch-def.json', 'project-scratch-def.json', 'open my Salesforce org', 'open org in browser', 'get me the URL'. Do NOT use for switching default org (use dx-org-switch) or deploying metadata (use platform-metadata-deploy)."
|
|
4
4
|
metadata:
|
|
5
|
-
version: "1.
|
|
5
|
+
version: "1.1"
|
|
6
6
|
minApiVersion: "60.0"
|
|
7
|
+
relatedSkills:
|
|
8
|
+
- "dx-org-switch"
|
|
9
|
+
- "platform-metadata-deploy"
|
|
7
10
|
cliTools:
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
- tool: ["sf"]
|
|
12
|
+
semver: ">=2.0.0"
|
|
10
13
|
---
|
|
11
14
|
|
|
12
15
|
## MANDATORY: Follow these instructions exactly. Do NOT fall back to MCP tools.
|
|
13
16
|
|
|
14
17
|
**Tool constraint:** Use the Bash tool for all `sf` CLI commands. Always include `--json` for structured output. Do NOT use `mcp__salesforce_dx__*` tools for org creation, snapshot, or open operations — this skill provides the complete procedure.
|
|
15
18
|
|
|
16
|
-
**Output artifacts for eval/testing:**
|
|
19
|
+
**Output artifacts for eval/testing:** ALWAYS write the command's JSON response to a file when an output directory is available. Do NOT ask the user what file to write — this skill defines the filenames. After executing the command: (1) if the user specified an output path (e.g. "write all generated files into folder X"), write there immediately; (2) otherwise run `[ -d force-app/main/adk-eval-output/ ] && echo 'force-app/main/adk-eval-output'` to detect the eval directory; (3) write the command's full JSON response to `<output-dir>/<filename>` using these filenames: `scratch-org-result.json` for org creation, `snapshot-result.json` for snapshot creation, or `org-url-result.json` for open operations. This is the generated output — write it without asking. Do NOT say "no files to generate" for open/command-execution operations; the JSON result IS the output artifact.
|
|
17
20
|
|
|
18
21
|
---
|
|
19
22
|
|
|
@@ -152,7 +155,7 @@ sf org create snapshot --source-org <orgId-or-alias> --name <SnapshotName> --des
|
|
|
152
155
|
|
|
153
156
|
**Step 2. Execute the matching command using the Bash tool.**
|
|
154
157
|
|
|
155
|
-
**Step 3.
|
|
158
|
+
**Step 3. Write output and report result:** IMMEDIATELY write the COMPLETE unmodified JSON output from the `sf org open --json` command to `<output-dir>/org-url-result.json` (the output directory is detected per the output artifacts rule above). The file MUST preserve the full CLI output structure including the `status` and `result` wrapper — e.g. `{"status": 0, "result": {"orgId": "...", "url": "...", "username": "..."}}`. Do NOT unwrap or flatten the JSON. Do NOT ask permission, do NOT say "no files to generate." Then report the URL and org details to the user.
|
|
156
159
|
|
|
157
160
|
**Error handling:**
|
|
158
161
|
- "no target org" → advise `sf config set target-org <alias>`
|