@salesforce/afv-skills 1.65.1 → 1.67.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 (71) hide show
  1. package/package.json +2 -4
  2. package/skills/agentforce-offline-experimentation-run/SKILL.md +29 -43
  3. package/skills/agentforce-offline-experimentation-run/scripts/sfap_replay.py +3 -245
  4. package/skills/commerce-react-storefront-create/SKILL.md +350 -0
  5. package/skills/consumer-goods-promotion-bo-api-deploy/SKILL.md +2 -2
  6. package/skills/consumer-goods-promotion-bo-api-deploy/references/generate-and-wire.md +28 -16
  7. package/skills/consumer-goods-promotion-bo-api-deploy/references/smoke-and-verify.md +18 -1
  8. package/skills/dx-devops-work-item-manage/SKILL.md +34 -17
  9. package/skills/dx-devops-work-item-manage/examples/common-workflows.md +49 -0
  10. package/skills/dx-devops-work-item-manage/references/commit-api.md +116 -0
  11. package/skills/education-cloud-domain-configure/SKILL.md +21 -23
  12. package/skills/education-cloud-domain-configure/references/dependent-features.md +9 -0
  13. package/skills/education-cloud-domain-configure/references/domain-features.md +15 -0
  14. package/skills/education-cloud-domain-configure/references/gotchas-extended.md +8 -0
  15. package/skills/education-cloud-domain-configure/references/setup-widgets.md +123 -0
  16. package/skills/experience-lwc-widget-assess/SKILL.md +79 -0
  17. package/skills/experience-lwc-widget-migrate/SKILL.md +50 -0
  18. package/skills/experience-search-coordinate/SKILL.md +2 -2
  19. package/skills/experience-search-coordinate/references/media-route.md +30 -4
  20. package/skills/experience-ui-bundle-features-generate/SKILL.md +1 -1
  21. package/skills/experience-ui-bundle-mfa-configure/SKILL.md +1 -1
  22. package/skills/platform-metadata-deploy/README.md +1 -1
  23. package/skills/platform-metadata-deploy/SKILL.md +114 -15
  24. package/skills/platform-metadata-deploy/references/agent-deployment-guide.md +3 -4
  25. package/skills/platform-metadata-deploy/references/orchestration.md +2 -3
  26. package/skills/platform-role-hierarchy-apply/SKILL.md +177 -0
  27. package/skills/platform-value-set-generate/SKILL.md +19 -19
  28. package/skills/platform-widget-generate/SKILL.md +59 -68
  29. package/skills/platform-widget-generate/examples/formulas.json +19 -2
  30. package/skills/platform-widget-generate/examples/localized-labels.json +57 -0
  31. package/skills/platform-widget-generate/references/widget-actions.md +29 -0
  32. package/skills/platform-widget-generate/references/widget-bundle-validation.md +15 -0
  33. package/skills/platform-widget-generate/references/widget-formulas.md +24 -7
  34. package/skills/platform-widget-generate/references/widget-gotchas.md +10 -0
  35. package/skills/platform-widget-generate/references/widget-labels.md +78 -0
  36. package/skills/platform-widget-generate/references/widget-styling.md +12 -0
  37. package/skills/sales-call-scoring-configure/SKILL.md +17 -10
  38. package/skills/sales-call-scoring-configure/scripts/enable-call-scoring.sh +55 -33
  39. package/skills/service-agentforce-contact-center-coordinate/SKILL.md +1 -1
  40. package/skills/service-agentforce-contact-center-coordinate/references/number_management_api.md +11 -1
  41. package/skills/service-agentforce-contact-center-coordinate/scripts/fetch-numbers.sh +12 -6
  42. package/skills/service-agentforce-contact-center-coordinate/scripts/lib.sh +16 -0
  43. package/skills/service-agentforce-contact-center-coordinate/scripts/procure-number.sh +2 -1
  44. package/skills/service-concierge-portal-generate/references/portal-deploy-runbook.md +24 -11
  45. package/skills/service-digital-engagement-channel-configure/SKILL.md +29 -16
  46. package/skills/service-digital-engagement-channel-configure/references/channel_settings.md +13 -2
  47. package/skills/service-digital-engagement-channel-configure/references/onboarding_contract.md +143 -0
  48. package/skills/service-digital-engagement-deployment-configure/SKILL.md +65 -79
  49. package/skills/service-digital-engagement-deployment-configure/assets/esd_web_update_template.xml +83 -8
  50. package/skills/service-digital-engagement-deployment-configure/examples/esd_web_prechat_fields.xml +74 -0
  51. package/skills/service-digital-engagement-deployment-configure/references/connect_api_creation.md +26 -7
  52. package/skills/service-digital-engagement-deployment-configure/references/deployment_settings.md +13 -78
  53. package/skills/service-digital-engagement-deployment-configure/references/onboarding_contract.md +145 -0
  54. package/skills/service-digital-engagement-deployment-configure/references/prechat_forms.md +245 -0
  55. package/skills/service-itsm-agentic-setup-incident-management/SKILL.md +166 -112
  56. package/skills/service-itsm-agentic-setup-incident-management/examples/output-templates.md +61 -37
  57. package/skills/service-itsm-agentic-setup-incident-management/references/audit-tracking.md +42 -0
  58. package/skills/service-itsm-agentic-setup-incident-management/references/broadcast-communications.md +23 -0
  59. package/skills/service-itsm-agentic-setup-incident-management/references/email-to-incident.md +23 -0
  60. package/skills/service-itsm-agentic-setup-incident-management/references/incident-dashboards.md +25 -0
  61. package/skills/service-itsm-agentic-setup-incident-management/references/incident-persona-psg.md +30 -145
  62. package/skills/service-itsm-agentic-setup-incident-management/references/incident-preferences.md +32 -137
  63. package/skills/service-itsm-agentic-setup-incident-management/references/major-incident-management.md +32 -155
  64. package/skills/service-itsm-agentic-setup-incident-management/references/manage-incidents-with-ai.md +45 -0
  65. package/skills/service-itsm-agentic-setup-incident-management/references/priority-matrix.md +32 -0
  66. package/skills/service-itsm-agentic-setup-incident-management/references/service-mgmt-privilege.md +30 -140
  67. package/skills/service-itsm-agentic-setup-incident-management/references/sla-milestones.md +110 -0
  68. package/skills/service-itsm-agentic-setup-incident-sla-configure/SKILL.md +34 -25
  69. package/skills/service-itsm-agentic-setup-incident-sla-configure/examples/milestone-patterns.md +1 -1
  70. package/skills/service-itsm-agentic-setup-incident-sla-configure/references/mcp-invocation.md +90 -86
  71. package/skills/service-itsm-agentic-setup-incident-sla-configure/references/workflow.md +63 -38
@@ -1,17 +1,12 @@
1
1
  ---
2
2
  name: service-itsm-agentic-setup-incident-management
3
- description: "Orchestrator for Incident Management setup in Service Cloud ITSM: presents the features, tracks progress, and configures each — SLA & Milestones, Priority Matrix, Incident preferences, Major Incident Management, Incident persona PSG assignment, Service Management Privilege, and Incident audit tracking. Use for: set up or configure incident management, incident management walkthrough, what incident features can I configure; the incident preference toggles (default field validations, auto-close child incidents, auto-triage, assign with Einstein, restrict assigned group, rich text descriptions); Major Incident Management (approval group + MIM preferences); assigning the Incident Fulfiller or Incident Manager persona PSG; Service Management Privilege / privilege escalation setup. DO NOT TRIGGER for: the master on/off switch (service-itsm-incident-mgmt-configure), the Priority Matrix, SLA, or field history tracking alone, the Major Incident Manager PSG, creating/editing PSGs, or Problem/Change/Case Management."
3
+ description: "Orchestrator for Incident Management setup in Service Cloud ITSM: presents the features, tracks progress, and configures each — Incident preferences, Incident persona PSG assignment, Priority Matrix, SLA & Milestones, Incident dashboards, Email-to-Incident, Major Incident Management (approval group + MIM preferences), Broadcast Communications, Manage Incidents with AI, Service Management Privilege (privilege escalation), and audit tracking. Use for: set up or configure incident management, a walkthrough, what incident features can I configure; the incident preference toggles (default field validations, auto-close child incidents, auto-triage, assign with Einstein, restrict assigned group, rich text descriptions); assigning the Incident Fulfiller or Incident Manager persona PSG. DO NOT TRIGGER for: the master on/off switch alone (use the IncidentMgmt SOR), the Priority Matrix, SLA, or field history tracking alone, the Major Incident Manager PSG, creating/editing PSGs, or Problem/Change/Case Management."
4
4
  metadata:
5
- version: "2.1"
5
+ version: "3.0"
6
6
  domains: ["Service"]
7
7
  minApiVersion: "67.0"
8
8
  relatedSkills:
9
- - "dx-org-permission-set-assign"
10
- - "service-itsm-agentic-setup-cmdb-access-assign"
11
- - "service-itsm-agentic-setup-incident-sla-configure"
12
- - "service-itsm-agentic-setup-itsm-agentforce-permset-assign"
13
- - "service-itsm-incident-mgmt-configure"
14
- - "service-itsm-incident-priority-configure"
9
+ - "service-itsm-manage-incidents-with-ai-configure"
15
10
  mcpTools:
16
11
  headless-360:
17
12
  tools: ["describe", "discover", "dispatch", "dispatch_readonly"]
@@ -28,9 +23,8 @@ allowed-tools: |
28
23
  # Incident Management Setup Orchestrator
29
24
 
30
25
  Guide the user through setting up Incident Management features in Salesforce Service Cloud ITSM by
31
- presenting the available capabilities, tracking progress, and — per feature — either **delegating** it (to
32
- a specialized child skill, or to a Setup Operation Recipe (SOR) whose own steps this skill follows), or
33
- **executing it inline** from this skill's reference file over its SOR.
26
+ presenting the available capabilities, tracking progress, and **delegating** each feature to the Setup
27
+ Operation Recipes (SORs) whose own steps this skill runs.
34
28
 
35
29
  ## Goal
36
30
 
@@ -40,50 +34,47 @@ until the user is done.
40
34
 
41
35
  ## How each feature is handled
42
36
 
43
- | # | Feature | Handled by |
44
- |---|---------|-----------|
45
- | 1 | SLA & Milestones | **Delegate** → `service-itsm-agentic-setup-incident-sla-configure` |
46
- | 2 | Priority Matrix | **Delegate** → `service-itsm-incident-priority-configure` |
47
- | 3 | Incident Preferences | **Inline over SOR** → `references/incident-preferences.md` |
48
- | 4 | Major Incident Management | **Inline over SOR** → `references/major-incident-management.md` |
49
- | 5 | Incident Persona PSG | **Inline over SOR** → `references/incident-persona-psg.md` |
50
- | 6 | Service Management Privilege | **Inline over SOR** → `references/service-mgmt-privilege.md` |
51
- | 7 | Audit Tracking | **Delegate** → `FieldHistoryTracking` (the Field History Tracking SOR) |
52
-
53
- **Delegated** features hand off to their child skill or SOR. A child skill runs its own confirmations and
54
- read-backs, so this skill only coordinates. A SOR is a recipe, not an agent: for a SOR hand-off this skill
55
- runs the SOR's steps itself and owns the confirmation and read-back (see Audit Tracking below).
56
- **Inline** features are run by this skill directly through the `headless-360` MCP server — **read the
57
- matching reference file before executing that feature** and follow it. Every inline operation is fetched at
58
- runtime: `discover` by intent, `describe` for the current route/schema/labels, then `dispatch_readonly`
59
- (reads) / `dispatch` (writes). **Hardcode nothing — `describe` wins.**
60
-
61
- **Audit Tracking is delegated to the Field History Tracking SOR.** This skill has no reference file for it
62
- and re-derives none of its steps — the SOR's own steps and guidance decide *how*. This skill runs them and
63
- owns the user-facing gates:
64
-
65
- 1. `discover` the SOR by intent (e.g. "field history tracking") and `describe` the id `discover` returns
66
- (`FieldHistoryTracking`). Judge availability by what the calls return, not by a step's `status` label —
67
- a step labelled `proposed` may still be served. A `discover` miss or a `401`/`403`/`404` means the
68
- surface isn't available to this user or org: surface it and stop.
69
- 2. Use the Incident fields the user already named, or ask which fields to track if the choice is missing
70
- or ambiguous, plus anything else `describe` says it needs. If the user chooses no fields, leave the
71
- feature `Not done` and stop; do not treat an empty choice as already configured.
72
- 3. Through the SOR, check Setup access, read Incident with `get-single-entity-data-with-metadata`, and get
73
- its per-object tracked-field limit. Use the returned tracking flag, field labels, `canBeTracked` values,
74
- current tracked set, and `fieldEnumOrId` keys to resolve the user's choices; do not guess field keys.
75
- 4. The save replaces the object's whole tracked-field set, so send the **union** of what's already tracked
76
- and the chosen fields using their returned keys, with Incident's object-level tracking flag on — never
77
- drop an already-tracked field unless the user asks. If a chosen field can't be tracked, or the union
78
- would exceed the limit, say so plainly; never untrack another field to make room. Report it as done
79
- with no write only if the nonempty chosen set is already tracked **and** Incident's object-level tracking
80
- is on. If the fields are selected but that flag is off, the change still needs a save.
81
- 5. Show the exact final tracked-field list by field label (disambiguate matching labels) in either case.
82
- Before any save, also show that object-level tracking will be enabled and get an explicit yes
83
- (`AskUserQuestion`) for that plan; when the user already named the fields, this confirms the selection.
84
- 6. After any save, read Incident's tracked fields back through the SOR. Mark the feature `Done` only when
85
- the live read (for the no-write case) or post-save read-back shows Incident's object-level tracking on,
86
- the chosen fields tracked, and no field dropped that the user didn't ask to drop — a save response alone
37
+ | # | Feature | Handled by | Reference |
38
+ |---|---------|-----------|-----------|
39
+ | P | Incident Preferences | **Delegate** → `IncidentMgmt` (its preference steps) | `references/incident-preferences.md` |
40
+ | 1 | Incident Persona PSG | **Delegate** → `service-itsm-incident-persona-assign` | `references/incident-persona-psg.md` |
41
+ | 2 | Priority Matrix | **Delegate** → `IncidentPriorityMatrix` | `references/priority-matrix.md` |
42
+ | 3 | SLA & Milestones | **Delegate** → `SLASettings`, then `sla-management-setup` (custom policy) | `references/sla-milestones.md` |
43
+ | 4 | Incident Dashboards | **Delegate** → `itsm-incident-dashboard-enablement` (Manager) and `itsm-incident-fulfiller-dashboard-enablement` (Fulfiller) | `references/incident-dashboards.md` |
44
+ | 5 | Email-to-Incident | **Delegate** → `EmailToIncident` | `references/email-to-incident.md` |
45
+ | 6 | Major Incident Management | **Delegate** → `MIM` | `references/major-incident-management.md` |
46
+ | 7 | Broadcast Communications | **Delegate** → `service-itsm-broadcast-communications-setup` | `references/broadcast-communications.md` |
47
+ | 8 | Manage Incidents with AI | **Delegate** → `service-itsm-manage-incidents-with-ai-configure` | `references/manage-incidents-with-ai.md` |
48
+ | 9 | Service Management Privilege | **Delegate** → `ServiceMgmtPrivilegeSetup` | `references/service-mgmt-privilege.md` |
49
+ | 10 | Audit Tracking | **Delegate** → `FieldHistoryTracking` | `references/audit-tracking.md` |
50
+
51
+ Every feature runs on SORs; this skill hands no feature off to another skill. A SOR is a recipe, not an
52
+ agent: this skill runs the SOR's steps itself under the **SOR hand-off protocol** below and owns every
53
+ user-facing gate — the questions, the confirmation before each write, and the read-back. The SOR's own steps
54
+ and guidance decide *how*. **Read a feature's reference file before running that feature**: it adds only
55
+ what is specific to this skill. Every operation is fetched at runtime through the `headless-360` MCP server:
56
+ `discover` by intent, `describe` for the current route/schema/labels, then `dispatch_readonly` (reads) /
57
+ `dispatch` (writes).
58
+ **Hardcode nothing — `describe` wins.** If a described path repeats the `/services/data/v{version}` prefix,
59
+ send the prefix once.
60
+
61
+ ### SOR hand-off protocol (every feature)
62
+
63
+ 1. **Find it.** `discover` the SOR by intent and `describe` the id `discover` returns. Judge availability by
64
+ what the calls return, not by a step's `status` label — a step labelled `proposed` may still be served.
65
+ A `discover` miss or a `401`/`403`/`404` means the surface isn't available to this user or org: surface
66
+ it and stop.
67
+ 2. **This skill owns both prerequisite gates.** Behavior step 2 already confirmed IT Service Enablement and
68
+ the master switch on. If a SOR's own check reads either as anything but `ENABLED`, go back to step 2 —
69
+ never run a SOR's own enable or delegate step for them, and never follow a hand-off a SOR names for
70
+ either gate or for another feature on this menu.
71
+ 3. **Read before write.** Read the current state through the SOR's read steps. If it already matches what
72
+ the user wants, that read is the verification: mark the feature `Done` with no write.
73
+ 4. **Confirm the exact change.** State the current value and the exact change, and get an explicit yes
74
+ (`AskUserQuestion`) before any write. The user's initial request is not that confirmation; one yes can
75
+ cover several writes if you listed them all.
76
+ 5. **Write, then read back.** Write only through the SOR's write steps, then read back through its verify
77
+ steps. Mark the feature `Done` only when the read-back shows the chosen state — a write response alone
87
78
  is not proof.
88
79
 
89
80
  ## Behavior
@@ -91,8 +82,8 @@ owns the user-facing gates:
91
82
  ### 0. Reuse what the session already knows
92
83
 
93
84
  Before running any preflight below, check whether the same fact was already established earlier in this
94
- conversation. Cache-eligible: the **master switch state** (reuse **only when confirmed *enabled***; a
95
- cached "off" MUST NOT let step 2 skip), **already-completed features** (stay "Done"; don't re-run unless
85
+ conversation. Cache-eligible: the **IT Service Enablement and master switch states** (reuse each **only
86
+ when confirmed *enabled***; a cached "off" MUST NOT let step 2 skip), **already-completed features** (stay "Done"; don't re-run unless
96
87
  asked to reconfigure), and the **target org**. **When in doubt, re-check.** Skip only when the earlier fact
97
88
  is unambiguously in context AND you have not switched orgs — a wrong skip on a live write is worse than a
98
89
  duplicated read.
@@ -102,13 +93,42 @@ duplicated read.
102
93
  Scan chat history for which features are already done, any stated preferences/constraints, the target org,
103
94
  and business context that informs which features are relevant.
104
95
 
105
- ### 2. Ensure the Incident Management master switch is on (prerequisite)
106
-
107
- Every feature below depends on the org-level `service-cloud-itsm-incident` master switch being enabled.
108
- Before showing the menu, delegate to `service-itsm-incident-mgmt-configure` to read current state; if on,
109
- it is a no-op — otherwise it confirms with the user before flipping it. **Skip only when the master switch
110
- was already confirmed *enabled* in this session** (see step 0). A cached "off"/unknown state MUST fall
111
- through to the delegation.
96
+ ### 2. Verify IT Service Enablement, then ensure the Incident Management master switch is on
97
+
98
+ Every feature below depends on IT Service Enablement (`service-cloud-itsm-setup`) and uses the recommended
99
+ ITSM Incident Management check (`service-cloud-itsm-incident`). Before showing the menu—or before a direct
100
+ single-feature handoff—`discover` the `IncidentMgmt` SOR by intent and `describe` its steps, then check the
101
+ two gates in this order, using that SOR for every read, enable, and verify
102
+ (`read-/enable-/verify-itsm-setup-feature-status`, `read-/enable-/verify-itsm-incident-feature-status`).
103
+ Follow its current invocation and prefix each stored path as its version note says: use the org's full API
104
+ version with its minor, such as `v68.0`, never a bare major. If a feature read fails, stop and do not retry
105
+ other version strings. Never read or toggle `service-cloud-incident-management`, and do
106
+ not use the Service-Foundation `IncidentManagement` look-alike or its broadcast toggles.
107
+
108
+ Decide on `status` first: `ENABLED` is an idempotent no-op even if `enableBlockedReasons` is non-empty;
109
+ `NOT_AVAILABLE` means halt (do not attempt enable). Show any `enableBlockedReasons` as plain text (their
110
+ messages are HTML-escaped markup) and halt if present. Never infer success from a write response.
111
+
112
+ 1. **IT Service Enablement** — only exact `ENABLED` continues. Exact `NOT_ENABLED` with no blocked reasons:
113
+ ask **“IT Service Enablement is off — enable it now?”** with `AskUserQuestion` (single-select, exactly
114
+ two options: Yes and No) — every time, never as plain text, and do not preview the menu before it is
115
+ answered. Yes → delegate to the `IncidentMgmt` SOR (read → enable → verify), stating the user already
116
+ confirmed this exact change so it does not ask again; continue only when verify reads exact `ENABLED`.
117
+ Delegating means the MCP tools, not a Claude Code skill: `describe` the `IncidentMgmt` SOR, read
118
+ its steps by `id`, and `dispatch` each step exactly as the SOR defines it. Never call `Skill` for
119
+ it and never invent an enable URL.
120
+ No → stop and point to Setup. Missing entry, blocked reasons, error, or any other status → stop and explain
121
+ plainly; no question.
122
+ 2. **Incident Management** — same pattern, second: exact `NOT_ENABLED` with no blocked reasons →
123
+ `AskUserQuestion` **“Incident Management is off — enable it now?”** (Yes/No); Yes → delegate to the
124
+ `IncidentMgmt` SOR with the same already-confirmed statement and continue only on verify exact
125
+ `ENABLED`; No → stop and point to Setup. `NOT_AVAILABLE`, blocked reasons, error, or anything else → stop
126
+ and explain; no question.
127
+
128
+ Never offer to bypass either gate.
129
+
130
+ **Skip only when both gates were already confirmed *enabled* in this session** (see step 0). A cached
131
+ "off" or unknown state MUST fall through to the checks above.
112
132
 
113
133
  ### 3. Present the feature menu as a multi-select
114
134
 
@@ -119,12 +139,10 @@ several enqueue for sequential handling in step 4.
119
139
 
120
140
  ### 4. Handle each selected feature in order
121
141
 
122
- Handle selected features sequentially in dependency order (or the order given). For each: if it is a
123
- **delegated** feature, hand off to its child skill — or, for Audit Tracking, run the Field History Tracking
124
- SOR through the six steps above; if it is an **inline** feature, **read its reference file** and execute it
125
- there. Whenever this skill itself writes (inline, or a SOR hand-off), always **read live state before
126
- writing, confirm before every write, and verify every write by read-back**. Honor the per-feature
127
- invariants below.
142
+ Handle selected features sequentially in dependency order (or the order given). For each, **read its
143
+ reference file**, then run its SORs under the hand-off protocol. This skill does the writing, so always
144
+ **read live state before writing, confirm before every write, and verify every write by read-back**. Honor
145
+ the per-feature invariants below.
128
146
 
129
147
  ### 5. After each feature completes
130
148
 
@@ -138,33 +156,45 @@ template in `examples/output-templates.md`.
138
156
 
139
157
  ---
140
158
 
141
- ## Critical inline-execution invariants (load-bearing — full detail in each reference)
159
+ ## Critical invariants (load-bearing — the SORs carry the full detail)
142
160
 
143
- Apply these whenever an inline feature runs; the **Everywhere** rules also apply to the Audit Tracking SOR
144
- hand-off. They are irreversible or silently-wrong if missed.
161
+ The **Everywhere** rules apply to every feature; the rest apply to the named feature. They are irreversible
162
+ or silently wrong if missed.
145
163
 
146
164
  - **Resolve the right node (Preferences).** Target the ITSM Incident Management org-preferences node
147
- (controller `IPCManagementSetupController`), **not** the Service-Foundation look-alike
148
- (`IncidentMgmtSetupController`, broadcast channels + a master switch).
165
+ (the one with the six per-feature toggles), **not** the Service-Foundation look-alike whose toggles
166
+ are broadcast channels plus its own master switch.
149
167
  - **Two preferences are one-way / enable-only (Preferences).** *Restrict Assigned Group to Regular Groups*
150
168
  and *Enable Rich Text for Incident Descriptions* cannot be turned off once on. Never offer to disable
151
169
  them; require an explicit "I understand this can't be undone" confirmation before enabling; never enable
152
170
  to test. *Restrict Assigned Group…* also **freezes once the org has any Incident record** — an enable can
153
171
  fail outright; do not retry.
154
- - **License, not assignment (Major Incident Management).** MIM is the approval group + two preferences on
155
- top of **base** Incident Management. The Major Incident Manager grant is a **LICENSE**
156
- (`PermissionSetLicenseAssign`), never a `PermissionSetAssignment`. **License before group membership;
157
- validate group users before designating a group; remove before reassign.** Only two preference names are
158
- valid: `AutoCreationOfProblem`, `AutoClosureChildIncidents`.
159
172
  - **PSL before PSG (Persona).** Assign the union of a persona PSG's member permission-set **licenses first,
160
173
  then the PSG** (keyed on `PermissionSetGroupId`, never a permission-set Id) — otherwise the persona is
161
174
  silently half-provisioned. Query the persona PSGs by `DeveloperName` with **no** `NamespacePrefix` filter.
175
+ - **The Priority Matrix save is a full replacement (Priority Matrix).** Any cell left out of the save is
176
+ deleted — always send the complete matrix, using only active Priority values.
177
+ - **SLA Versioning is permanent; the predefined seed is not idempotent (SLA & Milestones).** Turn on SLA
178
+ Versioning only after the explicit **Enable** answer, and never offer to turn it off. Detect the
179
+ predefined *Standard Support for Incidents* policy before seeding and never re-seed it. Never deactivate,
180
+ reorder, or broaden another SLA policy; halt on the first failed milestone create; never ask for an
181
+ Account.
182
+ - **One-way features (Email-to-Incident, Broadcast Communications).** Turning on Email-to-Incident or the
183
+ Broadcast Communications feature can't be undone — say so before asking, and never offer or attempt to
184
+ turn either off.
185
+ - **License, not assignment (Major Incident Management).** MIM is the approval group + two preferences on
186
+ top of **base** Incident Management, and MIM itself must already be active — Salesforce provisions it, so
187
+ never try to turn it on. The Major Incident Manager grant is a **LICENSE**
188
+ (`PermissionSetLicenseAssign`), never a `PermissionSetAssignment`. **License before group membership;
189
+ the approval group is a public Group, never a User, and its users must validate true before you designate
190
+ it; to reassign, validate the new group, then remove, then create.** Only two preference names are
191
+ valid: `AutoCreationOfProblem`, `AutoClosureChildIncidents`.
162
192
  - **Destructive delete + unverifiable assignments (Service Management Privilege).** Deleting a Service
163
193
  Management Privilege is irreversible — confirm explicitly, never delete to test. Bulk employee↔privilege
164
- assignments have **no read-back** — report them as applied, not verified. The *Enable Privilege Assignment*
165
- master toggle is the UI entry gate (reversible; the controller does not re-check it), so enable it first as
166
- workflow ordering, not a hard precondition. No public API substitute exists — a `404` / discover-miss means
167
- the surface isn't served on this org yet; surface it and stop.
194
+ assignments have **no read-back** — report them as applied, not verified. Turn on the reversible *Enable
195
+ Privilege Assignment* toggle before any escalation-level or privilege step, as the SOR orders it; if the
196
+ user declines, stop. No public API substitute exists — a `404` / discover-miss means the surface isn't
197
+ served on this org; surface it and stop.
168
198
  - **Everywhere:** read before write; treat "already in that state" / a duplicate as idempotent success;
169
199
  verify by read-back (a write response alone is not proof); each license consumes a seat; on `401`/`403`/
170
200
  `404` surface the raw error and stop; keep record Ids, HTTP codes, route paths, and tooling terms
@@ -175,33 +205,48 @@ hand-off. They are irreversible or silently-wrong if missed.
175
205
  ## Feature Dependencies & Recommended Order
176
206
 
177
207
  ```text
178
- 1. SLA & Milestones (time-based commitments on incidents) [delegated]
179
- 2. Priority Matrix (Impact × Urgency → Incident.Priority) [delegated]
180
- 3. Incident Preferences (the six per-feature setup toggles) [inline]
181
- 4. Major Incident Management (approval group + two MIM preferences) [inline]
182
- 5. Incident Persona PSG (Fulfiller / Manager persona for a user) [inline]
183
- 6. Service Management Privilege (escalation level + privilege assignments) [inline]
184
- 7. Audit Tracking (field history on chosen Incident fields) [delegated]
208
+ P. Incident Preferences (the six per-feature setup toggles)
209
+ Set Up the Basics
210
+ 1. Incident Persona PSG (Fulfiller / Manager persona for a user)
211
+ 2. Priority Matrix (Impact × Urgency → Incident.Priority)
212
+ 3. SLA & Milestones (time-based commitments on incidents)
213
+ Unlock Advanced Functionality
214
+ 4. Incident Dashboards (Manager / Fulfiller dashboards + Home pages)
215
+ 5. Email-to-Incident (incoming email → Incidents, routing addresses)
216
+ 6. Major Incident Management (approval group + two MIM preferences)
217
+ 7. Broadcast Communications (turn on, then sender access, channels, objects)
218
+ 8. Manage Incidents with AI (AI triage, Einstein assignment, chat/voice drafts)
219
+ 9. Service Management Privilege (escalation level + privilege assignments)
220
+ 10. Audit Tracking (field history on chosen Incident fields)
185
221
  ```
186
222
 
223
+ Features 1–8 follow Salesforce Go's IT Service Incident Management page; Service Management Privilege and
224
+ Audit Tracking aren't on that page.
225
+
226
+ A priority-tiered SLA needs the Priority Matrix on: with it off, every Incident gets the default priority,
227
+ so only that tier's milestones fire.
228
+
187
229
  ---
188
230
 
189
231
  ## Rules
190
232
 
191
233
  - ALWAYS show "(via service-itsm-agentic-setup-incident-management)" in the setup header
192
- - ALWAYS run the master-switch prerequisite (Behavior step 2) before showing the menu, unless the user
193
- already confirmed the switch is on earlier in this conversation
234
+ - ALWAYS check the IT Service Enablement and master-switch prerequisites (Behavior step 2) through
235
+ the `IncidentMgmt` SOR before showing the menu or handing off a named feature, unless both were
236
+ confirmed enabled earlier in this conversation
237
+ - ALWAYS ask each off gate with `AskUserQuestion` (single-select Yes/No), every time, never as plain text,
238
+ before delegating the enable; No stops and points to Setup
239
+ - ALWAYS require exact `ENABLED` verification for `service-cloud-itsm-setup` before the Incident switch;
240
+ anything else stops. Never read or toggle `service-cloud-incident-management`
194
241
  - ALWAYS present the feature menu before configuring any selected feature (the master-switch prerequisite
195
242
  is the only permitted action before the menu) — do not assume which feature the user wants, **except**
196
243
  when the user named a specific feature, in which case go straight to it (single-select is fine)
197
244
  - ALWAYS pair the rendered feature-menu table with an `AskUserQuestion` (`multiSelect: true`) in the same
198
245
  response — the table is the visual view; the tool call is the selection channel
199
- - For an **inline** feature, ALWAYS read its reference file first and follow the SOR at runtime — never
200
- hardcode a route, body, or preference name
201
- - For **Audit Tracking**, ALWAYS keep every already-tracked Incident field in the save unless the user asked
202
- to stop tracking it, confirm the exact final field list before the save, and verify by read-back before
203
- marking it `Done` (or verify the already-configured state by live read with no write) — the SOR asks the
204
- user nothing itself
246
+ - ALWAYS read a feature's reference file before executing it, follow its rules, and follow the SOR at
247
+ runtime — never hardcode a route, body, or preference name
248
+ - ALWAYS run a feature's SORs under the hand-off protocol; NEVER hand a feature off to another skill, and
249
+ never follow a SOR's hand-off for either prerequisite gate or for another feature on this menu
205
250
  - NEVER set up a feature the user did not select; for "set up everything", walk each feature sequentially
206
251
  in recommended order, confirming between each step
207
252
  - Track progress across the conversation — do not re-present completed features as "Not done"
@@ -214,30 +259,39 @@ hand-off. They are irreversible or silently-wrong if missed.
214
259
  Before emitting any menu or summary, confirm each; adjust the output before sending if any is unchecked.
215
260
 
216
261
  - [ ] The header line ends with `(via service-itsm-agentic-setup-incident-management)`
217
- - [ ] The master switch was confirmed on (via `service-itsm-incident-mgmt-configure`) before the menu,
218
- unless already confirmed earlier in this conversation
262
+ - [ ] The `IncidentMgmt` SOR confirmed both prerequisite gates before the menu or direct feature
263
+ handoff, unless both were already confirmed enabled earlier in this conversation; each off gate was
264
+ asked with `AskUserQuestion` (Yes/No), not plain text, before the enable was delegated
265
+ - [ ] The exact `service-cloud-itsm-setup` entry verified exact `ENABLED` before the Incident-switch
266
+ sequence; any other result stopped
219
267
  - [ ] The feature menu emitted BOTH the ASCII table AND an `AskUserQuestion` (`multiSelect: true`) in the
220
268
  same response (single-select only if the user already named a specific feature)
221
269
  - [ ] Each feature row's `Status` reflects the actual tracked state (`Not done`, `In progress`, `Done`)
222
270
  - [ ] A feature is being handled only because the user explicitly selected it (or is being walked through
223
271
  sequentially with confirmation under an "all" / "everything" request)
224
- - [ ] For an inline feature: its reference file was read; live state was read before any write; each write
225
- was confirmed and verified by read-back; one-way / license-ordering invariants were honored
226
- - [ ] For a delegated feature: the child skill (or, for Audit Tracking, the Field History Tracking SOR) was
227
- used, not configured inline
228
- - [ ] For Audit Tracking: a live metadata read resolved the fields and complete labeled set; any save kept
229
- every already-tracked field the user didn't ask to drop, was confirmed before it ran, and was verified
230
- by read-back; a no-write `Done` also had Incident's object-level tracking confirmed on
272
+ - [ ] For each feature: its reference file was read and its checks passed; its SORs ran under the
273
+ hand-off protocol and no other skill was used; live state was read before any write; each
274
+ write was confirmed and verified by read-back, and a no-write `Done` came from a live read; one-way /
275
+ license-ordering invariants were honored
231
276
  - [ ] No Salesforce record IDs appear in the output — human-readable names only
232
277
 
233
278
  ---
234
279
 
235
280
  ## Reference File Index
236
281
 
282
+ Read each `references/` file before executing its feature.
283
+
237
284
  | File | When to read |
238
285
  |------|--------------|
239
286
  | `examples/output-templates.md` | Behavior steps 3, 5, 6 — feature menu (multi-select), post-feature progress, completion summary |
240
- | `references/incident-preferences.md` | Before executing the **Incident Preferences** feature — the six preferences, the one-way rules, the SOR delegation map, invariants, and failure taxonomy |
241
- | `references/major-incident-management.md` | Before executing the **Major Incident Management** feature — the two surfaces (approval group + preferences), licensing preconditions, ordering, invariants |
242
- | `references/incident-persona-psg.md` | Before executing the **Incident Persona PSG** feature — the two persona PSGs, PSL-before-PSG ordering, resolution rules, invariants |
243
- | `references/service-mgmt-privilege.md` | Before executing the **Service Management Privilege** feature — the Enable Privilege Assignment toggle, escalation level, privilege CRUD (destructive delete), bulk assignments (no read-back), and the SOR step map |
287
+ | `references/incident-preferences.md` | **Incident Preferences** — where to start in the `IncidentMgmt` SOR, the steps never to run, the one-way confirmations, and the licensed toggles |
288
+ | `references/incident-persona-psg.md` | **Incident Persona PSG** — the not-provisioned stop, the persona menu, one pass per PSG, and the settling status |
289
+ | `references/priority-matrix.md` | **Priority Matrix** — the reads, the full-replacement save, the read-back, and the Salesforce Go step |
290
+ | `references/sla-milestones.md` | **SLA & Milestones** — the one gate question, the lowercase seed, predefined vs custom, the milestone strategy, and milestone actions |
291
+ | `references/incident-dashboards.md` | **Incident Dashboards** — the persona choice, the two preferences each, and the dashboard check |
292
+ | `references/email-to-incident.md` | **Email-to-Incident** — the one-way enable, the full-map settings save, and routing addresses |
293
+ | `references/major-incident-management.md` | **Major Incident Management** — MIM must be active, the questions, reusing the approvers group, and validating before designating |
294
+ | `references/broadcast-communications.md` | **Broadcast Communications** — the one-way enable, then sender access, channels, and objects |
295
+ | `references/manage-incidents-with-ai.md` | **Manage Incidents with AI** — the three switches, which ones a request covers, the licensed ones, transcripts, and the smoke test |
296
+ | `references/service-mgmt-privilege.md` | **Service Management Privilege** — the toggle first, Tag-first, the irreversible delete, and the unverifiable assignments |
297
+ | `references/audit-tracking.md` | **Audit Tracking** — the field choice, the additive save, object-level tracking, and the read-back |
@@ -11,26 +11,42 @@ Incident Management Setup (via service-itsm-agentic-setup-incident-management)
11
11
 
12
12
  Here are the features available for Incident Management. Select one or more to configure:
13
13
 
14
- ┌───┬───────────────────────────────┬──────────────────────────────────────────────────┬──────────┐
15
- │ # │ Feature │ Description │ Status │
16
- ├───┼───────────────────────────────┼──────────────────────────────────────────────────┼──────────┤
17
- │ 1 │ SLA & Milestones │ Create a MilestoneType, SLA Policy, and │ Not done │
18
- │ │ │ Entitlement so Incidents inherit SLA milestones │ │
19
- │ 2 │ Priority Matrix │ Enable and shape the Impact × Urgency grid that │ Not done │
20
- │ │ │ derives Priority on Incident records │ │
21
- │ 3 │ Incident Preferences │ The six per-feature setup toggles (validations, │ Not done │
22
- │ │ │ auto-close, triage, Einstein assign, rich text) │ │
23
- │ 4 │ Major Incident Management │ Approval group + the two MIM preferences │ Not done │
24
- │ │ │ (auto-create problem, auto-close child) │ │
25
- │ 5 │ Incident Persona PSG │ Assign the Incident Fulfiller / Incident Manager │ Not done │
26
- │ │ │ persona to a user (bundle + backing licenses) │ │
27
- │ 6 │ Service Management Privilege │ Escalation level, privilege records + employee │ Not done │
28
- │ │ │ assignments, behind Enable Privilege Assignment │ │
29
- │ 7 │ Audit Tracking │ Turn on field history tracking for the Incident │ Not done │
30
- │ │ │ fields you choose (who changed what, and when) │ │
31
- └───┴───────────────────────────────┴──────────────────────────────────────────────────┴──────────┘
32
-
33
- Reply with the numbers of the features you want to set up (one or more, e.g. `1,3`).
14
+ ┌────┬───────────────────────────────┬──────────────────────────────────────────────────┬──────────┐
15
+ │ # │ Feature │ Description │ Status │
16
+ ├────┼───────────────────────────────┼──────────────────────────────────────────────────┼──────────┤
17
+ │ P │ Incident Preferences │ The six setup toggles (validations, auto-close, │ Not done │
18
+ │ │ │ triage, Einstein, group restriction, rich text) │ │
19
+ ├────┴───────────────────────────────┴──────────────────────────────────────────────────┴──────────┤
20
+ │ Set Up the Basics │
21
+ ├────┬───────────────────────────────┬──────────────────────────────────────────────────┬──────────┤
22
+ │ 1 │ Incident Persona PSG │ Manage User Access: give a user the Incident │ Not done │
23
+ │ │ │ Fulfiller or Manager persona (bundle + licenses) │ │
24
+ │ 2 │ Priority Matrix │ Configure Rules for Automatic Incident Priority: │ Not done │
25
+ │ │ │ the Impact × Urgency grid that sets Priority │ │
26
+ │ 3 │ SLA & Milestones │ Define SLAs to Prioritize Incidents: turn on SLA │ Not done │
27
+ │ │ │ Management, then a predefined or custom policy │ │
28
+ ├────┴───────────────────────────────┴──────────────────────────────────────────────────┴──────────┤
29
+ │ Unlock Advanced Functionality │
30
+ ├────┬───────────────────────────────┬──────────────────────────────────────────────────┬──────────┤
31
+ │ 4 │ Incident Dashboards │ Deploy the Incident Manager and/or Fulfiller │ Not done │
32
+ │ │ │ dashboards, and dashboards on the Home page │ │
33
+ │ 5 │ Email-to-Incident │ Report Incidents from Emails: email settings + │ Not done │
34
+ │ │ │ routing addresses │ │
35
+ │ 6 │ Major Incident Management │ Review and Manage Major Incident Configuration: │ Not done │
36
+ │ │ │ approval group + the two MIM preferences │ │
37
+ │ │ │ (auto-create problem, auto-close child) │ │
38
+ │ 7 │ Broadcast Communications │ Set Up Broadcast Communication for Major │ Not done │
39
+ │ │ │ Incidents: turn on, then sender access, channels │ │
40
+ │ │ │ (Email/In-app/Slack/Teams), objects │ │
41
+ │ 8 │ Manage Incidents with AI │ Auto-triage, Einstein assignment, and AI-drafted │ Not done │
42
+ │ │ │ incidents from chat or voice transcripts │ │
43
+ │ 9 │ Service Management Privilege │ Escalation level, privilege records + employee │ Not done │
44
+ │ │ │ assignments, behind Enable Privilege Assignment │ │
45
+ │ 10 │ Audit Tracking │ Turn on field history tracking for the Incident │ Not done │
46
+ │ │ │ fields you choose (who changed what, and when) │ │
47
+ └────┴───────────────────────────────┴──────────────────────────────────────────────────┴──────────┘
48
+
49
+ Reply with the numbers of the features you want to set up (one or more, e.g. `1,3`; `P` for Incident Preferences).
34
50
  ```
35
51
 
36
52
  ## Post-feature progress (Behavior step 5)
@@ -41,19 +57,23 @@ Example after the Incident Preferences feature completes (others still `Not done
41
57
  Incident Preferences — configured successfully
42
58
  (via service-itsm-agentic-setup-incident-management)
43
59
 
44
- ┌───┬───────────────────────────────┬──────────┐
45
- │ # │ Feature │ Status │
46
- ├───┼───────────────────────────────┼──────────┤
47
- │ 1 │ SLA & Milestones │ Not done │
48
- │ 2 │ Priority Matrix │ Not done │
49
- │ 3 │ Incident Preferences │ Done │
50
- │ 4 │ Major Incident Management │ Not done │
51
- │ 5 │ Incident Persona PSG │ Not done │
52
- │ 6 │ Service Management Privilege │ Not done │
53
- │ 7 │ Audit Tracking │ Not done │
54
- └───┴───────────────────────────────┴──────────┘
55
-
56
- Say a number to configure the next feature, or `done` to finish.
60
+ ┌────┬───────────────────────────────┬──────────┐
61
+ │ # │ Feature │ Status │
62
+ ├────┼───────────────────────────────┼──────────┤
63
+ │ P │ Incident Preferences │ Done │
64
+ │ 1 │ Incident Persona PSG │ Not done │
65
+ │ 2 │ Priority Matrix │ Not done │
66
+ │ 3 │ SLA & Milestones │ Not done │
67
+ │ 4 │ Incident Dashboards │ Not done │
68
+ │ 5 │ Email-to-Incident │ Not done │
69
+ │ 6 │ Major Incident Management │ Not done │
70
+ │ 7 │ Broadcast Communications │ Not done │
71
+ │ 8 │ Manage Incidents with AI │ Not done │
72
+ │ 9 │ Service Management Privilege │ Not done │
73
+ │ 10 │ Audit Tracking │ Not done │
74
+ └────┴───────────────────────────────┴──────────┘
75
+
76
+ Say a number (or `P`) to configure the next feature, or `done` to finish.
57
77
  ```
58
78
 
59
79
  ## Completion summary (Behavior step 6)
@@ -69,7 +89,7 @@ finished — even if some features are still `Not done`. When rendering:
69
89
  - All `Done` → `Your Incident Management features are configured.`
70
90
  - Otherwise → `You have finished the features you selected. The remaining features can be resumed later by re-invoking this orchestrator.`
71
91
 
72
- Example — user finished with three features configured, four left:
92
+ Example — user finished after configuring three features:
73
93
 
74
94
  ```text
75
95
  Incident Management Setup — Finished
@@ -78,11 +98,15 @@ Incident Management Setup — Finished
78
98
  ┌───────────────────────────────┬──────────┐
79
99
  │ Feature │ Status │
80
100
  ├───────────────────────────────┼──────────┤
81
- │ SLA & Milestones │ Done │
82
- │ Priority Matrix │ Not done │
83
101
  │ Incident Preferences │ Done │
84
- │ Major Incident Management │ Done │
85
102
  │ Incident Persona PSG │ Not done │
103
+ │ Priority Matrix │ Not done │
104
+ │ SLA & Milestones │ Done │
105
+ │ Incident Dashboards │ Not done │
106
+ │ Email-to-Incident │ Not done │
107
+ │ Major Incident Management │ Done │
108
+ │ Broadcast Communications │ Not done │
109
+ │ Manage Incidents with AI │ Not done │
86
110
  │ Service Management Privilege │ Not done │
87
111
  │ Audit Tracking │ Not done │
88
112
  └───────────────────────────────┴──────────┘
@@ -0,0 +1,42 @@
1
+ # Feature: Audit Tracking (delegated to the `FieldHistoryTracking` SOR)
2
+
3
+ How the orchestrator runs the **Audit Tracking** feature — field history on the Incident fields the user
4
+ chooses — over Salesforce's **Field History Tracking SOR**. This file re-derives none of the SOR's steps —
5
+ the SOR's own steps and guidance decide *how*. The orchestrator runs them under its **SOR hand-off
6
+ protocol** and owns the user-facing gates:
7
+
8
+ 1. `discover` the SOR by intent (e.g. "field history tracking") and `describe` the id `discover` returns
9
+ (`FieldHistoryTracking`). Judge availability by what the calls return, not by a step's `status` label —
10
+ a step labelled `proposed` may still be served. A `discover` miss or a `401`/`403`/`404` means the
11
+ surface isn't available to this user or org: surface it and stop.
12
+ 2. Use the Incident fields the user already named, or ask which fields to track if the choice is missing
13
+ or ambiguous, plus anything else `describe` says it needs. If the user chooses no fields, leave the
14
+ feature `Not done` and stop; do not treat an empty choice as already configured.
15
+ 3. Through the SOR, check Setup access, read Incident with `get-single-entity-data-with-metadata`, and get
16
+ its per-object tracked-field limit. Use the returned tracking flag, field labels, `canBeTracked` values,
17
+ current tracked set, and `fieldEnumOrId` keys to resolve the user's choices; do not guess field keys.
18
+ 4. The save replaces the object's whole tracked-field set, so send the **union** of what's already tracked
19
+ and the chosen fields using their returned keys, with Incident's object-level tracking flag on — never
20
+ drop an already-tracked field unless the user asks. If a chosen field can't be tracked, or the union
21
+ would exceed the limit, say so plainly; never untrack another field to make room. Report it as done
22
+ with no write only if the nonempty chosen set is already tracked **and** Incident's object-level tracking
23
+ is on. If the fields are selected but that flag is off, the change still needs a save.
24
+ 5. Show the exact final tracked-field list by field label (disambiguate matching labels) in either case.
25
+ Before any save, also show that object-level tracking will be enabled and get an explicit yes
26
+ (`AskUserQuestion`) for that plan; when the user already named the fields, this confirms the selection.
27
+ 6. After any save, read Incident's tracked fields back through the SOR. Mark the feature `Done` only when
28
+ the live read (for the no-write case) or post-save read-back shows Incident's object-level tracking on,
29
+ the chosen fields tracked, and no field dropped that the user didn't ask to drop — a save response alone
30
+ is not proof.
31
+
32
+ ## Rules
33
+
34
+ - ALWAYS keep every already-tracked Incident field in the save unless the user asked to stop tracking it,
35
+ confirm the exact final field list before the save, and verify by read-back before marking it `Done` (or
36
+ verify the already-configured state by live read with no write) — the SOR asks the user nothing itself
37
+
38
+ ## Before marking it `Done`
39
+
40
+ - [ ] A live metadata read resolved the fields and complete labeled set; any save kept every
41
+ already-tracked field the user didn't ask to drop, was confirmed before it ran, and was verified by
42
+ read-back; a no-write `Done` also had Incident's object-level tracking confirmed on