@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.
Files changed (126) hide show
  1. package/package.json +1 -1
  2. package/skills/agentforce-bot-upgrade/SKILL.md +217 -0
  3. package/skills/agentforce-bot-upgrade/references/extraction-blueprint.md +242 -0
  4. package/skills/agentforce-bot-upgrade/references/generate-agent-spec.md +128 -0
  5. package/skills/agentforce-bot-upgrade/references/handoff-output-format.md +208 -0
  6. package/skills/agentforce-bot-upgrade/references/input-contract.md +101 -0
  7. package/skills/agentforce-bot-upgrade/references/mapping-rules.md +113 -0
  8. package/skills/agentforce-bot-upgrade/references/planner-workflow-reference.md +78 -0
  9. package/skills/agentforce-bot-upgrade/references/post-conversion-enhancements-reference.md +67 -0
  10. package/skills/agentforce-bot-upgrade/references/quality-checklist.md +33 -0
  11. package/skills/agentforce-bot-upgrade/references/sf-cli-bot-reference.md +116 -0
  12. package/skills/data360-code-extension-generate/SKILL.md +15 -2
  13. package/skills/dx-devops-work-item-manage/SKILL.md +270 -0
  14. package/skills/dx-devops-work-item-manage/examples/common-workflows.md +479 -0
  15. package/skills/dx-devops-work-item-manage/references/cli-commands.md +476 -0
  16. package/skills/dx-org-manage/SKILL.md +8 -5
  17. package/skills/dx-org-trial-expiration-check/SKILL.md +239 -0
  18. package/skills/dx-org-trial-expiration-check/scripts/check_expiration.sh +588 -0
  19. package/skills/dx-pkg-post-install-configure/SKILL.md +184 -0
  20. package/skills/experience-ui-bundle-app-coordinate/SKILL.md +202 -35
  21. package/skills/experience-ui-bundle-app-coordinate/scripts/check-hosting-target.sh +26 -0
  22. package/skills/experience-ui-bundle-app-coordinate/scripts/check-sfdx-project.sh +15 -0
  23. package/skills/experience-ui-bundle-custom-app-generate/SKILL.md +29 -5
  24. package/skills/experience-ui-bundle-custom-app-generate/references/configure-metadata-custom-application.md +1 -1
  25. package/skills/experience-ui-bundle-custom-app-generate/scripts/resolve-uibundle-path.sh +30 -0
  26. package/skills/experience-ui-bundle-features-generate/SKILL.md +86 -11
  27. package/skills/experience-ui-bundle-features-generate/references/conflict-resolution-schema.json +20 -0
  28. package/skills/experience-ui-bundle-features-generate/scripts/verify-react-bundle.sh +14 -0
  29. package/skills/experience-ui-bundle-frontend-generate/SKILL.md +6 -1
  30. package/skills/experience-ui-bundle-frontend-generate/references/component.md +34 -1
  31. package/skills/experience-ui-bundle-frontend-generate/references/page.md +1 -1
  32. package/skills/experience-ui-bundle-metadata-generate/SKILL.md +19 -8
  33. package/skills/experience-ui-bundle-metadata-generate/references/csp-metadata-format.md +2 -2
  34. package/skills/experience-ui-bundle-metadata-generate/scripts/check-api-version.sh +30 -0
  35. package/skills/experience-ui-bundle-project-generate/SKILL.md +111 -0
  36. package/skills/experience-ui-bundle-project-generate/scripts/flatten-project.mjs +33 -0
  37. package/skills/platform-custom-field-generate/SKILL.md +12 -11
  38. package/skills/platform-custom-field-generate/references/advanced-picklists.md +17 -17
  39. package/skills/platform-custom-lightning-type-generate/SKILL.md +9 -14
  40. package/skills/platform-custom-lightning-type-generate/references/widget-rendition.md +27 -111
  41. package/skills/platform-custom-report-type-generate/SKILL.md +259 -0
  42. package/skills/platform-custom-report-type-generate/examples/AccountProjectsWithTasks.reportType-meta.xml +51 -0
  43. package/skills/platform-custom-report-type-generate/examples/AccountsWithIndustry.reportType-meta.xml +27 -0
  44. package/skills/platform-custom-report-type-generate/examples/AccountsWithProjects.reportType-meta.xml +44 -0
  45. package/skills/platform-custom-report-type-generate/references/category-values.md +32 -0
  46. package/skills/platform-custom-report-type-generate/references/errors-and-troubleshooting.md +24 -0
  47. package/skills/platform-dataspace-access-configure/SKILL.md +318 -0
  48. package/skills/platform-docs-get/SKILL.md +4 -0
  49. package/skills/platform-docs-get/scripts/extract_salesforce_doc.py +78 -13
  50. package/skills/platform-encryption-configure/SKILL.md +122 -0
  51. package/skills/platform-encryption-configure/assets/EncryptionKey.settings-meta.xml +17 -0
  52. package/skills/platform-encryption-configure/assets/PlatformEncryption.settings-meta.xml +15 -0
  53. package/skills/platform-encryption-configure/assets/encrypted-field.field-meta.xml +22 -0
  54. package/skills/platform-encryption-configure/examples/cache-only-keys.settings-meta.xml +11 -0
  55. package/skills/platform-encryption-configure/references/encryption-schemes.md +34 -0
  56. package/skills/platform-encryption-configure/references/key-models.md +34 -0
  57. package/skills/platform-encryption-configure/references/tenant-secret-lifecycle.md +23 -0
  58. package/skills/platform-encryption-configure/scripts/validate-encryption-metadata.sh +54 -0
  59. package/skills/platform-lightning-type-widget-coordinate/SKILL.md +214 -0
  60. package/skills/platform-lightning-type-widget-coordinate/examples/existing-lightning-type-with-widget-prompt.md +80 -0
  61. package/skills/platform-lightning-type-widget-coordinate/examples/new-lightning-type-with-widget-prompt.md +75 -0
  62. package/skills/platform-lightning-type-widget-coordinate/references/build-plan-format.md +67 -0
  63. package/skills/platform-lightning-type-widget-coordinate/references/lightning-type-discovery.md +124 -0
  64. package/skills/platform-lightning-type-widget-coordinate/references/validation-gates.md +130 -0
  65. package/skills/platform-metadata-api-context-get/SKILL.md +13 -10
  66. package/skills/platform-sharing-owd-configure/SKILL.md +142 -0
  67. package/skills/platform-sharing-owd-configure/examples/get_owd_output.md +38 -0
  68. package/skills/platform-sharing-owd-configure/examples/update_owd_output.md +44 -0
  69. package/skills/platform-sharing-owd-configure/references/access_levels.md +49 -0
  70. package/skills/platform-sharing-owd-configure/references/metadata_api_approach.md +69 -0
  71. package/skills/platform-sharing-rules-generate/SKILL.md +89 -19
  72. package/skills/platform-sharing-rules-generate/examples/test-cases.md +381 -0
  73. package/skills/platform-widget-generate/SKILL.md +241 -0
  74. package/skills/platform-widget-generate/examples/conditional.json +73 -0
  75. package/skills/platform-widget-generate/examples/list-with-foreach.json +66 -0
  76. package/skills/platform-widget-generate/examples/single-object.json +64 -0
  77. package/skills/platform-widget-generate/references/schema-from-lightning-type.md +76 -0
  78. package/skills/platform-widget-generate/references/widget-bundle-layout.md +116 -0
  79. package/skills/platform-widget-generate/references/widget-meta-directives.md +130 -0
  80. package/skills/sales-agentforce-pipeline-management-configure/SKILL.md +268 -0
  81. package/skills/sales-agentforce-pipeline-management-configure/assets/field-completion-template.genAiPromptTemplate-meta.xml +141 -0
  82. package/skills/sales-agentforce-pipeline-management-configure/assets/pipeline_management_flow.flow-meta.xml +548 -0
  83. package/skills/sales-agentforce-pipeline-management-configure/assets/sales_management_agent.agent +2938 -0
  84. package/skills/sales-agentforce-pipeline-management-configure/assets/sales_management_agent.bundle-meta.xml +4 -0
  85. package/skills/sales-agentforce-pipeline-management-configure/assets/sfdx-project.json +12 -0
  86. package/skills/sales-agentforce-pipeline-management-configure/assets/stage-descriptions/bant.txt +11 -0
  87. package/skills/sales-agentforce-pipeline-management-configure/assets/stage-descriptions/meddic.txt +11 -0
  88. package/skills/sales-agentforce-pipeline-management-configure/assets/stage-descriptions/spiced.txt +11 -0
  89. package/skills/sales-agentforce-pipeline-management-configure/examples/custom-prompt-instructions.md +317 -0
  90. package/skills/sales-agentforce-pipeline-management-configure/references/admin-communication.md +355 -0
  91. package/skills/sales-agentforce-pipeline-management-configure/references/agent-creation.md +383 -0
  92. package/skills/sales-agentforce-pipeline-management-configure/references/auth-and-cli.md +146 -0
  93. package/skills/sales-agentforce-pipeline-management-configure/references/automation-matrix.md +23 -0
  94. package/skills/sales-agentforce-pipeline-management-configure/references/autonomous-updates.md +215 -0
  95. package/skills/sales-agentforce-pipeline-management-configure/references/canonical-agent-path.md +75 -0
  96. package/skills/sales-agentforce-pipeline-management-configure/references/data-sources.md +155 -0
  97. package/skills/sales-agentforce-pipeline-management-configure/references/field-completion-prompt-template.md +120 -0
  98. package/skills/sales-agentforce-pipeline-management-configure/references/field-completion-prompts.md +149 -0
  99. package/skills/sales-agentforce-pipeline-management-configure/references/flags.md +13 -0
  100. package/skills/sales-agentforce-pipeline-management-configure/references/flow-clone-from-template.md +447 -0
  101. package/skills/sales-agentforce-pipeline-management-configure/references/metadata-inventory.md +330 -0
  102. package/skills/sales-agentforce-pipeline-management-configure/references/opportunity-stages.md +246 -0
  103. package/skills/sales-agentforce-pipeline-management-configure/references/repair-diagnostics.md +265 -0
  104. package/skills/sales-agentforce-pipeline-management-configure/references/setup-order.md +263 -0
  105. package/skills/sales-agentforce-pipeline-management-configure/references/soap-api-enablement.md +528 -0
  106. package/skills/sales-agentforce-pipeline-management-configure/scripts/CHANGES.md +180 -0
  107. package/skills/sales-agentforce-pipeline-management-configure/scripts/README.md +56 -0
  108. package/skills/sales-agentforce-pipeline-management-configure/scripts/add-field-suggestion.sh +679 -0
  109. package/skills/sales-agentforce-pipeline-management-configure/scripts/create-agent.sh +302 -0
  110. package/skills/sales-agentforce-pipeline-management-configure/scripts/create-flow.sh +250 -0
  111. package/skills/sales-agentforce-pipeline-management-configure/scripts/define-agent-access.sh +430 -0
  112. package/skills/sales-agentforce-pipeline-management-configure/scripts/deploy-settings.sh +77 -0
  113. package/skills/sales-agentforce-pipeline-management-configure/scripts/enable-deal-agent.sh +241 -0
  114. package/skills/sales-agentforce-pipeline-management-configure/scripts/enable-prerequisites.sh +538 -0
  115. package/skills/sales-agentforce-pipeline-management-configure/scripts/flow-debug-and-verify.sh +385 -0
  116. package/skills/sales-agentforce-pipeline-management-configure/scripts/retrieve-settings.sh +131 -0
  117. package/skills/sales-agentforce-pipeline-management-configure/scripts/setup-all.sh +2791 -0
  118. package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/agent-bundle-publish.sh +189 -0
  119. package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/agent-detection.sh +239 -0
  120. package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/flow-builder.sh +238 -0
  121. package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/psg.sh +48 -0
  122. package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/soap.sh +140 -0
  123. package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/stage-descriptions.sh +448 -0
  124. package/skills/sales-agentforce-pipeline-management-configure/scripts/shared/test-opp.sh +166 -0
  125. package/skills/sales-agentforce-pipeline-management-configure/scripts/verify-all.sh +636 -0
  126. 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.0"
5
+ version: "1.1"
6
6
  minApiVersion: "60.0"
7
+ relatedSkills:
8
+ - "dx-org-switch"
9
+ - "platform-metadata-deploy"
7
10
  cliTools:
8
- - tool: ["sf"]
9
- semver: ">=2.0.0"
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:** Write command output to JSON only when an output directory is available. After executing the command: (1) if the user specified an output path, write there; (2) otherwise run `[ -d force-app/main/adk-eval-output/ ] && echo 'force-app/main/adk-eval-output'` to detect the eval directory; (3) if the command printed a path, write the command's JSON response to `<printed-path>/<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. The eval framework needs the real command output to verify success.
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. Report result:** Returns URL or opens browser. If an output directory is available (per the output artifacts rule above), write the JSON response to `<output-dir>/org-url-result.json`.
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>`