@salesforce/afv-skills 1.66.0 → 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 (53) hide show
  1. package/package.json +2 -4
  2. package/skills/agentforce-offline-experimentation-run/SKILL.md +13 -28
  3. package/skills/commerce-react-storefront-create/SKILL.md +350 -0
  4. package/skills/consumer-goods-promotion-bo-api-deploy/SKILL.md +2 -2
  5. package/skills/consumer-goods-promotion-bo-api-deploy/references/generate-and-wire.md +28 -16
  6. package/skills/consumer-goods-promotion-bo-api-deploy/references/smoke-and-verify.md +18 -1
  7. package/skills/education-cloud-domain-configure/SKILL.md +21 -23
  8. package/skills/education-cloud-domain-configure/references/dependent-features.md +9 -0
  9. package/skills/education-cloud-domain-configure/references/domain-features.md +15 -0
  10. package/skills/education-cloud-domain-configure/references/gotchas-extended.md +8 -0
  11. package/skills/education-cloud-domain-configure/references/setup-widgets.md +123 -0
  12. package/skills/experience-search-coordinate/SKILL.md +2 -2
  13. package/skills/experience-search-coordinate/references/media-route.md +30 -4
  14. package/skills/experience-ui-bundle-features-generate/SKILL.md +1 -1
  15. package/skills/experience-ui-bundle-mfa-configure/SKILL.md +1 -1
  16. package/skills/platform-metadata-deploy/README.md +1 -1
  17. package/skills/platform-metadata-deploy/SKILL.md +114 -15
  18. package/skills/platform-metadata-deploy/references/agent-deployment-guide.md +3 -4
  19. package/skills/platform-metadata-deploy/references/orchestration.md +2 -3
  20. package/skills/platform-value-set-generate/SKILL.md +19 -19
  21. package/skills/platform-widget-generate/SKILL.md +25 -51
  22. package/skills/platform-widget-generate/examples/formulas.json +19 -2
  23. package/skills/platform-widget-generate/examples/localized-labels.json +57 -0
  24. package/skills/platform-widget-generate/references/widget-actions.md +29 -0
  25. package/skills/platform-widget-generate/references/widget-bundle-validation.md +1 -0
  26. package/skills/platform-widget-generate/references/widget-formulas.md +24 -7
  27. package/skills/platform-widget-generate/references/widget-gotchas.md +10 -0
  28. package/skills/platform-widget-generate/references/widget-labels.md +78 -0
  29. package/skills/platform-widget-generate/references/widget-styling.md +12 -0
  30. package/skills/sales-call-scoring-configure/SKILL.md +17 -10
  31. package/skills/sales-call-scoring-configure/scripts/enable-call-scoring.sh +55 -33
  32. package/skills/service-digital-engagement-channel-configure/SKILL.md +4 -2
  33. package/skills/service-digital-engagement-channel-configure/references/channel_settings.md +13 -2
  34. package/skills/service-digital-engagement-deployment-configure/SKILL.md +37 -100
  35. package/skills/service-digital-engagement-deployment-configure/assets/esd_web_update_template.xml +83 -8
  36. package/skills/service-digital-engagement-deployment-configure/examples/esd_web_prechat_fields.xml +74 -0
  37. package/skills/service-digital-engagement-deployment-configure/references/connect_api_creation.md +13 -3
  38. package/skills/service-digital-engagement-deployment-configure/references/deployment_settings.md +13 -78
  39. package/skills/service-digital-engagement-deployment-configure/references/onboarding_contract.md +5 -6
  40. package/skills/service-digital-engagement-deployment-configure/references/prechat_forms.md +245 -0
  41. package/skills/service-itsm-agentic-setup-incident-management/SKILL.md +164 -120
  42. package/skills/service-itsm-agentic-setup-incident-management/examples/output-templates.md +61 -37
  43. package/skills/service-itsm-agentic-setup-incident-management/references/audit-tracking.md +42 -0
  44. package/skills/service-itsm-agentic-setup-incident-management/references/broadcast-communications.md +23 -0
  45. package/skills/service-itsm-agentic-setup-incident-management/references/email-to-incident.md +23 -0
  46. package/skills/service-itsm-agentic-setup-incident-management/references/incident-dashboards.md +25 -0
  47. package/skills/service-itsm-agentic-setup-incident-management/references/incident-persona-psg.md +30 -146
  48. package/skills/service-itsm-agentic-setup-incident-management/references/incident-preferences.md +32 -136
  49. package/skills/service-itsm-agentic-setup-incident-management/references/major-incident-management.md +32 -155
  50. package/skills/service-itsm-agentic-setup-incident-management/references/manage-incidents-with-ai.md +45 -0
  51. package/skills/service-itsm-agentic-setup-incident-management/references/priority-matrix.md +32 -0
  52. package/skills/service-itsm-agentic-setup-incident-management/references/service-mgmt-privilege.md +30 -140
  53. package/skills/service-itsm-agentic-setup-incident-management/references/sla-milestones.md +110 -0
@@ -1,16 +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 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."
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-priority-configure"
9
+ - "service-itsm-manage-incidents-with-ai-configure"
14
10
  mcpTools:
15
11
  headless-360:
16
12
  tools: ["describe", "discover", "dispatch", "dispatch_readonly"]
@@ -27,9 +23,8 @@ allowed-tools: |
27
23
  # Incident Management Setup Orchestrator
28
24
 
29
25
  Guide the user through setting up Incident Management features in Salesforce Service Cloud ITSM by
30
- presenting the available capabilities, tracking progress, and — per feature — either **delegating** it (to
31
- a specialized child skill, or to a Setup Operation Recipe (SOR) whose own steps this skill follows), or
32
- **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.
33
28
 
34
29
  ## Goal
35
30
 
@@ -39,50 +34,47 @@ until the user is done.
39
34
 
40
35
  ## How each feature is handled
41
36
 
42
- | # | Feature | Handled by |
43
- |---|---------|-----------|
44
- | 1 | SLA & Milestones | **Delegate** → `service-itsm-agentic-setup-incident-sla-configure` |
45
- | 2 | Priority Matrix | **Delegate** → `service-itsm-incident-priority-configure` |
46
- | 3 | Incident Preferences | **Inline over SOR** → `references/incident-preferences.md` |
47
- | 4 | Major Incident Management | **Inline over SOR** → `references/major-incident-management.md` |
48
- | 5 | Incident Persona PSG | **Inline over SOR** → `references/incident-persona-psg.md` |
49
- | 6 | Service Management Privilege | **Inline over SOR** → `references/service-mgmt-privilege.md` |
50
- | 7 | Audit Tracking | **Delegate** → `FieldHistoryTracking` (the Field History Tracking SOR) |
51
-
52
- **Delegated** features hand off to their child skill or SOR. A child skill runs its own confirmations and
53
- read-backs, so this skill only coordinates. A SOR is a recipe, not an agent: for a SOR hand-off this skill
54
- runs the SOR's steps itself and owns the confirmation and read-back (see the master switch and Audit Tracking below).
55
- **Inline** features are run by this skill directly through the `headless-360` MCP server — **read the
56
- matching reference file before executing that feature** and follow it. Every inline operation is fetched at
57
- runtime: `discover` by intent, `describe` for the current route/schema/labels, then `dispatch_readonly`
58
- (reads) / `dispatch` (writes). **Hardcode nothing — `describe` wins.**
59
-
60
- **Audit Tracking is delegated to the Field History Tracking SOR.** This skill has no reference file for it
61
- and re-derives none of its steps — the SOR's own steps and guidance decide *how*. This skill runs them and
62
- owns the user-facing gates:
63
-
64
- 1. `discover` the SOR by intent (e.g. "field history tracking") and `describe` the id `discover` returns
65
- (`FieldHistoryTracking`). Judge availability by what the calls return, not by a step's `status` label —
66
- a step labelled `proposed` may still be served. A `discover` miss or a `401`/`403`/`404` means the
67
- surface isn't available to this user or org: surface it and stop.
68
- 2. Use the Incident fields the user already named, or ask which fields to track if the choice is missing
69
- or ambiguous, plus anything else `describe` says it needs. If the user chooses no fields, leave the
70
- feature `Not done` and stop; do not treat an empty choice as already configured.
71
- 3. Through the SOR, check Setup access, read Incident with `get-single-entity-data-with-metadata`, and get
72
- its per-object tracked-field limit. Use the returned tracking flag, field labels, `canBeTracked` values,
73
- current tracked set, and `fieldEnumOrId` keys to resolve the user's choices; do not guess field keys.
74
- 4. The save replaces the object's whole tracked-field set, so send the **union** of what's already tracked
75
- and the chosen fields using their returned keys, with Incident's object-level tracking flag on — never
76
- drop an already-tracked field unless the user asks. If a chosen field can't be tracked, or the union
77
- would exceed the limit, say so plainly; never untrack another field to make room. Report it as done
78
- with no write only if the nonempty chosen set is already tracked **and** Incident's object-level tracking
79
- is on. If the fields are selected but that flag is off, the change still needs a save.
80
- 5. Show the exact final tracked-field list by field label (disambiguate matching labels) in either case.
81
- Before any save, also show that object-level tracking will be enabled and get an explicit yes
82
- (`AskUserQuestion`) for that plan; when the user already named the fields, this confirms the selection.
83
- 6. After any save, read Incident's tracked fields back through the SOR. Mark the feature `Done` only when
84
- the live read (for the no-write case) or post-save read-back shows Incident's object-level tracking on,
85
- 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
86
78
  is not proof.
87
79
 
88
80
  ## Behavior
@@ -90,8 +82,8 @@ owns the user-facing gates:
90
82
  ### 0. Reuse what the session already knows
91
83
 
92
84
  Before running any preflight below, check whether the same fact was already established earlier in this
93
- conversation. Cache-eligible: the **master switch state** (reuse **only when confirmed *enabled***; a
94
- 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
95
87
  asked to reconfigure), and the **target org**. **When in doubt, re-check.** Skip only when the earlier fact
96
88
  is unambiguously in context AND you have not switched orgs — a wrong skip on a live write is worse than a
97
89
  duplicated read.
@@ -101,24 +93,42 @@ duplicated read.
101
93
  Scan chat history for which features are already done, any stated preferences/constraints, the target org,
102
94
  and business context that informs which features are relevant.
103
95
 
104
- ### 2. Ensure the Incident Management master switch is on (prerequisite)
105
-
106
- Every feature below depends on the org-level `service-cloud-itsm-incident` master switch being enabled.
107
- Before showing the menu, `discover` the `IncidentMgmt` SOR by intent and `describe` its master-feature
108
- steps (`read-itsm-incident-feature-status`, `enable-itsm-incident-feature`,
109
- `verify-itsm-incident-feature-status`). Follow its current invocation and prefix the stored path as its
110
- version note says (`v67.0` is the minimum and a safe default). A `404` from a version above the org's
111
- maximum is a version mismatch: retry once at `v67.0` before treating `404` as unavailable.
112
- Do not use the Service-Foundation `IncidentManagement` look-alike or its broadcast toggles.
113
- Read the master status via `dispatch_readonly` and decide on `status` first: `ENABLED` is an idempotent
114
- no-op even if `enableBlockedReasons` is non-empty; `NOT_AVAILABLE` means halt (do not attempt enable);
115
- for `NOT_ENABLED`, surface any `enableBlockedReasons` as plain text (their messages are HTML-escaped
116
- markup) and halt if present. Otherwise show the exact off → on change and ask for explicit confirmation before
117
- running the SOR's enable step via `dispatch`. Re-read via the SOR's verify step and require
118
- `ENABLED` before continuing. On a declined confirmation, unexpected status, `401`/`403`/`404`,
119
- failed write, or read-back mismatch, stop without showing the menu; never infer success from
120
- the write response. **Skip only when the master switch was already confirmed *enabled* in this
121
- session** (see step 0). A cached "off"/unknown state MUST fall through to the live read.
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.
122
132
 
123
133
  ### 3. Present the feature menu as a multi-select
124
134
 
@@ -129,12 +139,10 @@ several enqueue for sequential handling in step 4.
129
139
 
130
140
  ### 4. Handle each selected feature in order
131
141
 
132
- Handle selected features sequentially in dependency order (or the order given). For each: if it is a
133
- **delegated** feature, hand off to its child skill — or, for Audit Tracking, run the Field History Tracking
134
- SOR through the six steps above; if it is an **inline** feature, **read its reference file** and execute it
135
- there. Whenever this skill itself writes (inline, or a SOR hand-off), always **read live state before
136
- writing, confirm before every write, and verify every write by read-back**. Honor the per-feature
137
- 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.
138
146
 
139
147
  ### 5. After each feature completes
140
148
 
@@ -148,10 +156,10 @@ template in `examples/output-templates.md`.
148
156
 
149
157
  ---
150
158
 
151
- ## Critical inline-execution invariants (load-bearing — full detail in each reference)
159
+ ## Critical invariants (load-bearing — the SORs carry the full detail)
152
160
 
153
- Apply these whenever an inline feature runs; the **Everywhere** rules also apply to the Audit Tracking SOR
154
- 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.
155
163
 
156
164
  - **Resolve the right node (Preferences).** Target the ITSM Incident Management org-preferences node
157
165
  (the one with the six per-feature toggles), **not** the Service-Foundation look-alike whose toggles
@@ -161,20 +169,32 @@ hand-off. They are irreversible or silently-wrong if missed.
161
169
  them; require an explicit "I understand this can't be undone" confirmation before enabling; never enable
162
170
  to test. *Restrict Assigned Group…* also **freezes once the org has any Incident record** — an enable can
163
171
  fail outright; do not retry.
164
- - **License, not assignment (Major Incident Management).** MIM is the approval group + two preferences on
165
- top of **base** Incident Management. The Major Incident Manager grant is a **LICENSE**
166
- (`PermissionSetLicenseAssign`), never a `PermissionSetAssignment`. **License before group membership;
167
- validate group users before designating a group; remove before reassign.** Only two preference names are
168
- valid: `AutoCreationOfProblem`, `AutoClosureChildIncidents`.
169
172
  - **PSL before PSG (Persona).** Assign the union of a persona PSG's member permission-set **licenses first,
170
173
  then the PSG** (keyed on `PermissionSetGroupId`, never a permission-set Id) — otherwise the persona is
171
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`.
172
192
  - **Destructive delete + unverifiable assignments (Service Management Privilege).** Deleting a Service
173
193
  Management Privilege is irreversible — confirm explicitly, never delete to test. Bulk employee↔privilege
174
- assignments have **no read-back** — report them as applied, not verified. The *Enable Privilege Assignment*
175
- master toggle is the UI entry gate (reversible; the controller does not re-check it), so enable it first as
176
- workflow ordering, not a hard precondition. No public API substitute exists — a `404` / discover-miss means
177
- 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.
178
198
  - **Everywhere:** read before write; treat "already in that state" / a duplicate as idempotent success;
179
199
  verify by read-back (a write response alone is not proof); each license consumes a seat; on `401`/`403`/
180
200
  `404` surface the raw error and stop; keep record Ids, HTTP codes, route paths, and tooling terms
@@ -185,33 +205,48 @@ hand-off. They are irreversible or silently-wrong if missed.
185
205
  ## Feature Dependencies & Recommended Order
186
206
 
187
207
  ```text
188
- 1. SLA & Milestones (time-based commitments on incidents) [delegated]
189
- 2. Priority Matrix (Impact × Urgency → Incident.Priority) [delegated]
190
- 3. Incident Preferences (the six per-feature setup toggles) [inline]
191
- 4. Major Incident Management (approval group + two MIM preferences) [inline]
192
- 5. Incident Persona PSG (Fulfiller / Manager persona for a user) [inline]
193
- 6. Service Management Privilege (escalation level + privilege assignments) [inline]
194
- 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)
195
221
  ```
196
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
+
197
229
  ---
198
230
 
199
231
  ## Rules
200
232
 
201
233
  - ALWAYS show "(via service-itsm-agentic-setup-incident-management)" in the setup header
202
- - ALWAYS run the master-switch prerequisite (Behavior step 2) before showing the menu, unless a live
203
- status read already confirmed the switch ENABLED on this org earlier in this session
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`
204
241
  - ALWAYS present the feature menu before configuring any selected feature (the master-switch prerequisite
205
242
  is the only permitted action before the menu) — do not assume which feature the user wants, **except**
206
243
  when the user named a specific feature, in which case go straight to it (single-select is fine)
207
244
  - ALWAYS pair the rendered feature-menu table with an `AskUserQuestion` (`multiSelect: true`) in the same
208
245
  response — the table is the visual view; the tool call is the selection channel
209
- - For an **inline** feature, ALWAYS read its reference file first and follow the SOR at runtime — never
210
- hardcode a route, body, or preference name
211
- - For **Audit Tracking**, ALWAYS keep every already-tracked Incident field in the save unless the user asked
212
- to stop tracking it, confirm the exact final field list before the save, and verify by read-back before
213
- marking it `Done` (or verify the already-configured state by live read with no write) — the SOR asks the
214
- 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
215
250
  - NEVER set up a feature the user did not select; for "set up everything", walk each feature sequentially
216
251
  in recommended order, confirming between each step
217
252
  - Track progress across the conversation — do not re-present completed features as "Not done"
@@ -224,30 +259,39 @@ hand-off. They are irreversible or silently-wrong if missed.
224
259
  Before emitting any menu or summary, confirm each; adjust the output before sending if any is unchecked.
225
260
 
226
261
  - [ ] The header line ends with `(via service-itsm-agentic-setup-incident-management)`
227
- - [ ] The master switch was confirmed on (via the `IncidentMgmt` SOR status/verify steps) before the menu,
228
- unless a live read already confirmed it ENABLED on this org earlier in this session
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
229
267
  - [ ] The feature menu emitted BOTH the ASCII table AND an `AskUserQuestion` (`multiSelect: true`) in the
230
268
  same response (single-select only if the user already named a specific feature)
231
269
  - [ ] Each feature row's `Status` reflects the actual tracked state (`Not done`, `In progress`, `Done`)
232
270
  - [ ] A feature is being handled only because the user explicitly selected it (or is being walked through
233
271
  sequentially with confirmation under an "all" / "everything" request)
234
- - [ ] For an inline feature: its reference file was read; live state was read before any write; each write
235
- was confirmed and verified by read-back; one-way / license-ordering invariants were honored
236
- - [ ] For a delegated feature: the child skill (or, for Audit Tracking, the Field History Tracking SOR) was
237
- used, not configured inline
238
- - [ ] For Audit Tracking: a live metadata read resolved the fields and complete labeled set; any save kept
239
- every already-tracked field the user didn't ask to drop, was confirmed before it ran, and was verified
240
- 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
241
276
  - [ ] No Salesforce record IDs appear in the output — human-readable names only
242
277
 
243
278
  ---
244
279
 
245
280
  ## Reference File Index
246
281
 
282
+ Read each `references/` file before executing its feature.
283
+
247
284
  | File | When to read |
248
285
  |------|--------------|
249
286
  | `examples/output-templates.md` | Behavior steps 3, 5, 6 — feature menu (multi-select), post-feature progress, completion summary |
250
- | `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 |
251
- | `references/major-incident-management.md` | Before executing the **Major Incident Management** feature — the two surfaces (approval group + preferences), licensing preconditions, ordering, invariants |
252
- | `references/incident-persona-psg.md` | Before executing the **Incident Persona PSG** feature — the two persona PSGs, PSL-before-PSG ordering, resolution rules, invariants |
253
- | `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