@salesforce/afv-skills 1.29.0 → 1.30.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 (205) hide show
  1. package/README.md +2 -0
  2. package/package.json +1 -1
  3. package/skills/agentforce-architecture-analyze/README.md +2 -8
  4. package/skills/agentforce-architecture-analyze/SKILL.md +2 -2
  5. package/skills/agentforce-architecture-analyze/references/contract.json +4 -4
  6. package/skills/agentforce-architecture-analyze/references/soql_fields.md +1 -1
  7. package/skills/data360-activate/README.md +0 -1
  8. package/skills/data360-activate/SKILL.md +0 -2
  9. package/skills/data360-connect/README.md +0 -2
  10. package/skills/data360-connect/SKILL.md +0 -2
  11. package/skills/data360-harmonize/SKILL.md +0 -1
  12. package/skills/data360-orchestrate/README.md +0 -7
  13. package/skills/data360-orchestrate/SKILL.md +0 -2
  14. package/skills/data360-prepare/README.md +0 -1
  15. package/skills/data360-prepare/SKILL.md +0 -1
  16. package/skills/data360-query/README.md +0 -1
  17. package/skills/data360-query/SKILL.md +0 -1
  18. package/skills/data360-segment/README.md +0 -1
  19. package/skills/data360-segment/SKILL.md +0 -2
  20. package/skills/experience-cms-brand-apply/SKILL.md +47 -16
  21. package/skills/experience-lwc-generate/README.md +3 -2
  22. package/skills/experience-lwc-generate/references/async-notification-patterns.md +1 -1
  23. package/skills/experience-lwc-generate/references/component-patterns.md +3 -3
  24. package/skills/experience-lwc-generate/references/flow-integration-guide.md +1 -1
  25. package/skills/experience-lwc-generate/references/lwc-best-practices.md +4 -4
  26. package/skills/experience-lwc-generate/references/scoring-and-testing.md +1 -1
  27. package/skills/experience-lwc-generate/references/state-management.md +2 -2
  28. package/skills/experience-lwc-generate/references/triangle-pattern.md +3 -3
  29. package/skills/experience-lwc-generate/scripts/post-tool-validate.py +2 -2
  30. package/skills/experience-lwc-generate/scripts/template_validator.py +1 -1
  31. package/skills/external-diagram-mermaid-generate/README.md +2 -2
  32. package/skills/external-diagram-mermaid-generate/SKILL.md +1 -3
  33. package/skills/external-diagram-mermaid-generate/assets/agentforce/agent-flow.md +4 -4
  34. package/skills/external-diagram-mermaid-generate/assets/architecture/system-landscape.md +1 -1
  35. package/skills/external-diagram-mermaid-generate/assets/datamodel/b2b-commerce-erd.md +3 -3
  36. package/skills/external-diagram-mermaid-generate/assets/datamodel/campaigns-erd.md +1 -1
  37. package/skills/external-diagram-mermaid-generate/assets/datamodel/consent-erd.md +2 -2
  38. package/skills/external-diagram-mermaid-generate/assets/datamodel/files-erd.md +2 -2
  39. package/skills/external-diagram-mermaid-generate/assets/datamodel/forecasting-erd.md +2 -2
  40. package/skills/external-diagram-mermaid-generate/assets/datamodel/fsl-erd.md +2 -2
  41. package/skills/external-diagram-mermaid-generate/assets/datamodel/party-model-erd.md +1 -1
  42. package/skills/external-diagram-mermaid-generate/assets/datamodel/quote-order-erd.md +3 -3
  43. package/skills/external-diagram-mermaid-generate/assets/datamodel/revenue-cloud-erd.md +2 -2
  44. package/skills/external-diagram-mermaid-generate/assets/datamodel/sales-cloud-erd.md +1 -1
  45. package/skills/external-diagram-mermaid-generate/assets/datamodel/salesforce-erd.md +1 -1
  46. package/skills/external-diagram-mermaid-generate/assets/datamodel/scheduler-erd.md +2 -2
  47. package/skills/external-diagram-mermaid-generate/assets/datamodel/service-cloud-erd.md +3 -3
  48. package/skills/external-diagram-mermaid-generate/assets/datamodel/territory-management-erd.md +1 -1
  49. package/skills/external-diagram-mermaid-generate/assets/integration/api-sequence.md +1 -1
  50. package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code-pkce.md +1 -1
  51. package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code.md +1 -1
  52. package/skills/external-diagram-mermaid-generate/assets/oauth/client-credentials.md +1 -1
  53. package/skills/external-diagram-mermaid-generate/assets/oauth/device-authorization.md +2 -2
  54. package/skills/external-diagram-mermaid-generate/assets/oauth/jwt-bearer.md +2 -2
  55. package/skills/external-diagram-mermaid-generate/assets/oauth/refresh-token.md +1 -1
  56. package/skills/external-diagram-mermaid-generate/assets/oauth/user-agent-social-sign-on.md +2 -2
  57. package/skills/external-diagram-mermaid-generate/assets/role-hierarchy/user-hierarchy.md +1 -1
  58. package/skills/external-diagram-mermaid-generate/references/color-palette.md +13 -13
  59. package/skills/external-diagram-mermaid-generate/references/diagram-conventions.md +5 -5
  60. package/skills/external-diagram-mermaid-generate/references/erd-conventions.md +1 -1
  61. package/skills/external-diagram-mermaid-generate/references/mermaid-styling.md +2 -2
  62. package/skills/external-diagram-mermaid-generate/references/preview-guide.md +1 -1
  63. package/skills/external-diagram-mermaid-generate/references/usage-examples.md +9 -9
  64. package/skills/external-diagram-mermaid-generate/scripts/README.md +1 -1
  65. package/skills/integration-connectivity-connected-app-configure/README.md +4 -5
  66. package/skills/integration-connectivity-connected-app-configure/SKILL.md +2 -2
  67. package/skills/integration-connectivity-connected-app-configure/references/example-usage.md +7 -7
  68. package/skills/integration-connectivity-connected-app-configure/references/migration-guide.md +1 -1
  69. package/skills/integration-connectivity-connected-app-configure/references/oauth-flows-reference.md +1 -1
  70. package/skills/integration-connectivity-connected-app-configure/references/testing-validation-guide.md +3 -3
  71. package/skills/integration-connectivity-generate/README.md +1 -1
  72. package/skills/integration-connectivity-generate/SKILL.md +6 -0
  73. package/skills/integration-connectivity-generate/assets/callouts/rest-queueable-callout.cls +1 -1
  74. package/skills/integration-connectivity-generate/assets/external-services/external-service-operations.md +1 -1
  75. package/skills/integration-connectivity-generate/assets/soap/wsdl2apex-guide.md +1 -1
  76. package/skills/integration-connectivity-generate/references/callout-patterns.md +4 -0
  77. package/skills/integration-connectivity-generate/references/cdc-guide.md +2 -2
  78. package/skills/integration-connectivity-generate/references/event-driven-architecture-guide.md +5 -5
  79. package/skills/integration-connectivity-generate/references/event-patterns.md +3 -2
  80. package/skills/integration-connectivity-generate/references/external-services-guide.md +4 -1
  81. package/skills/integration-connectivity-generate/references/messaging-api-v2.md +2 -2
  82. package/skills/integration-connectivity-generate/references/named-credentials-automation.md +1 -1
  83. package/skills/integration-connectivity-generate/references/named-credentials-guide.md +12 -2
  84. package/skills/integration-connectivity-generate/references/platform-events-guide.md +3 -3
  85. package/skills/integration-connectivity-generate/references/rest-callout-patterns.md +1 -1
  86. package/skills/integration-connectivity-generate/references/scoring-rubric.md +1 -1
  87. package/skills/integration-connectivity-generate/references/security-best-practices.md +5 -2
  88. package/skills/integration-connectivity-generate/scripts/configure-named-credential.sh +16 -5
  89. package/skills/integration-connectivity-generate/scripts/set-api-credential.sh +11 -2
  90. package/skills/integration-connectivity-generate/scripts/suggest_credential_setup.py +4 -3
  91. package/skills/integration-connectivity-generate/scripts/validate_integration.py +1 -1
  92. package/skills/omnistudio-callable-apex-generate/README.md +1 -5
  93. package/skills/omnistudio-callable-apex-generate/SKILL.md +14 -4
  94. package/skills/omnistudio-callable-apex-generate/assets/pattern_callable_vanilla.cls +8 -1
  95. package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +1 -1
  96. package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +1 -1
  97. package/skills/omnistudio-datamapper-generate/SKILL.md +1 -1
  98. package/skills/omnistudio-datamapper-generate/assets/completion-summary-template.md +2 -2
  99. package/skills/omnistudio-datamapper-generate/references/best-practices.md +9 -9
  100. package/skills/omnistudio-datamapper-generate/references/naming-conventions.md +6 -6
  101. package/skills/omnistudio-datapacks-deploy/README.md +1 -1
  102. package/skills/omnistudio-datapacks-deploy/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +1 -1
  103. package/skills/omnistudio-dependencies-analyze/SKILL.md +12 -5
  104. package/skills/omnistudio-dependencies-analyze/references/dependency-patterns.md +9 -9
  105. package/skills/omnistudio-dependencies-analyze/references/namespace-guide.md +1 -1
  106. package/skills/omnistudio-epc-catalog-generate/README.md +1 -1
  107. package/skills/omnistudio-flexcard-generate/SKILL.md +11 -4
  108. package/skills/omnistudio-flexcard-generate/references/best-practices.md +6 -6
  109. package/skills/omnistudio-flexcard-generate/references/data-binding-guide.md +9 -9
  110. package/skills/omnistudio-integration-procedure-generate/SKILL.md +9 -1
  111. package/skills/omnistudio-integration-procedure-generate/references/element-types.md +3 -3
  112. package/skills/omnistudio-omniscript-generate/SKILL.md +2 -2
  113. package/skills/omnistudio-omniscript-generate/references/best-practices.md +1 -1
  114. package/skills/omnistudio-omniscript-generate/scripts/check-duplicate-omniscript.sh +8 -0
  115. package/skills/omnistudio-omniscript-generate/scripts/deploy-omniscript.sh +8 -0
  116. package/skills/platform-apex-logs-debug/README.md +2 -2
  117. package/skills/platform-apex-logs-debug/references/cli-commands.md +2 -2
  118. package/skills/platform-apex-logs-debug/references/debug-log-reference.md +16 -16
  119. package/skills/platform-apex-logs-debug/references/log-analysis-tools.md +2 -2
  120. package/skills/platform-apex-test-run/README.md +1 -1
  121. package/skills/platform-apex-test-run/references/test-fix-loop.md +2 -2
  122. package/skills/platform-apex-test-run/references/testing-best-practices.md +3 -3
  123. package/skills/platform-data-manage/README.md +4 -4
  124. package/skills/platform-data-manage/references/bulk-testing-example.md +1 -1
  125. package/skills/platform-data-manage/references/crud-workflow-example.md +2 -2
  126. package/skills/platform-data-manage/references/orchestration.md +6 -6
  127. package/skills/platform-flexipage-generate/SKILL.md +281 -346
  128. package/skills/platform-flexipage-generate/references/cli_commands.md +39 -0
  129. package/skills/platform-flexipage-generate/references/flexipage_fieldSection.md +162 -0
  130. package/skills/platform-flexipage-generate/references/flexipage_richText.md +84 -0
  131. package/skills/platform-flexipage-generate/references/identifiers_and_regions.md +167 -0
  132. package/skills/platform-flexipage-generate/references/mcp_action_examples.md +104 -0
  133. package/skills/platform-flexipage-generate/references/record_flexipage_dynamicHighlights.md +119 -0
  134. package/skills/platform-flexipage-generate/references/xml_rules.md +335 -0
  135. package/skills/platform-flexipage-generate/scripts/resolve-component-instructions.sh +42 -0
  136. package/skills/platform-flexipage-generate/scripts/scan-lwc-components.sh +113 -0
  137. package/skills/platform-metadata-deploy/README.md +2 -2
  138. package/skills/platform-metadata-deploy/references/agent-deployment-guide.md +2 -2
  139. package/skills/platform-metadata-deploy/references/deployment-workflows.md +16 -16
  140. package/skills/platform-metadata-deploy/references/orchestration.md +3 -3
  141. package/skills/platform-metadata-deploy/references/trigger-deployment-safety.md +2 -2
  142. package/skills/platform-models-api-configure/SKILL.md +140 -0
  143. package/skills/platform-models-api-configure/scripts/get-orgjwt.sh +48 -0
  144. package/skills/platform-policy-rule-generate/SKILL.md +260 -0
  145. package/skills/platform-policy-rule-generate/references/deploy-errors.md +54 -0
  146. package/skills/platform-policy-rule-generate/references/fixtures-index.md +29 -0
  147. package/skills/platform-policy-rule-generate/references/policy-schema-full.md +250 -0
  148. package/skills/platform-policy-rule-generate/references/templates-access.md +132 -0
  149. package/skills/platform-policy-rule-generate/references/templates-advanced.md +58 -0
  150. package/skills/platform-policy-rule-generate/references/templates-record.md +75 -0
  151. package/skills/platform-policy-rule-generate/references/templates-transform.md +70 -0
  152. package/skills/platform-policy-rule-generate/references/templates.md +10 -0
  153. package/skills/platform-policy-rule-generate/references/ui-compatibility.md +142 -0
  154. package/skills/platform-soql-query/README.md +1 -1
  155. package/skills/platform-soql-query/SKILL.md +1 -1
  156. package/skills/platform-soql-query/references/anti-patterns.md +1 -1
  157. package/skills/platform-soql-query/references/field-coverage-rules.md +1 -1
  158. package/skills/platform-soql-query/references/query-optimization.md +1 -1
  159. package/skills/platform-soql-query/scripts/post-tool-validate.py +3 -3
  160. package/skills/data360-activate/CREDITS.md +0 -5
  161. package/skills/data360-connect/CREDITS.md +0 -5
  162. package/skills/data360-harmonize/CREDITS.md +0 -3
  163. package/skills/data360-orchestrate/CREDITS.md +0 -15
  164. package/skills/data360-orchestrate/UPSTREAM.md +0 -45
  165. package/skills/data360-prepare/CREDITS.md +0 -7
  166. package/skills/data360-query/CREDITS.md +0 -7
  167. package/skills/data360-segment/CREDITS.md +0 -3
  168. package/skills/experience-lwc-generate/CREDITS.md +0 -5
  169. package/skills/external-diagram-mermaid-generate/CREDITS.md +0 -46
  170. package/skills/external-diagram-visual-generate/CREDITS.md +0 -80
  171. package/skills/external-diagram-visual-generate/README.md +0 -83
  172. package/skills/external-diagram-visual-generate/SKILL.md +0 -207
  173. package/skills/external-diagram-visual-generate/assets/architecture/integration-flow.md +0 -55
  174. package/skills/external-diagram-visual-generate/assets/erd/core-objects.md +0 -131
  175. package/skills/external-diagram-visual-generate/assets/erd/custom-objects.md +0 -60
  176. package/skills/external-diagram-visual-generate/assets/lwc/dashboard-card.md +0 -45
  177. package/skills/external-diagram-visual-generate/assets/lwc/data-table.md +0 -57
  178. package/skills/external-diagram-visual-generate/assets/lwc/record-form.md +0 -60
  179. package/skills/external-diagram-visual-generate/assets/review/apex-review.md +0 -57
  180. package/skills/external-diagram-visual-generate/assets/review/lwc-review.md +0 -48
  181. package/skills/external-diagram-visual-generate/references/architect-aesthetic-guide.md +0 -257
  182. package/skills/external-diagram-visual-generate/references/examples-index.md +0 -35
  183. package/skills/external-diagram-visual-generate/references/gemini-cli-setup.md +0 -65
  184. package/skills/external-diagram-visual-generate/references/interview-questions.md +0 -529
  185. package/skills/external-diagram-visual-generate/references/iteration-workflow.md +0 -173
  186. package/skills/external-diagram-visual-generate/scripts/check-prerequisites.sh +0 -101
  187. package/skills/external-diagram-visual-generate/scripts/generate_image.py +0 -243
  188. package/skills/integration-connectivity-connected-app-configure/CREDITS.md +0 -3
  189. package/skills/integration-connectivity-generate/CREDITS.md +0 -5
  190. package/skills/omnistudio-callable-apex-generate/CREDITS.md +0 -9
  191. package/skills/omnistudio-datamapper-generate/CREDITS.md +0 -5
  192. package/skills/omnistudio-datapacks-deploy/CREDITS.md +0 -5
  193. package/skills/omnistudio-dependencies-analyze/CREDITS.md +0 -5
  194. package/skills/omnistudio-epc-catalog-generate/CREDITS.md +0 -14
  195. package/skills/omnistudio-flexcard-generate/CREDITS.md +0 -5
  196. package/skills/omnistudio-integration-procedure-generate/CREDITS.md +0 -5
  197. package/skills/omnistudio-omniscript-generate/CREDITS.md +0 -5
  198. package/skills/platform-apex-generate/CREDITS.md +0 -5
  199. package/skills/platform-apex-logs-debug/CREDITS.md +0 -22
  200. package/skills/platform-apex-test-generate/CREDITS.md +0 -5
  201. package/skills/platform-apex-test-run/CREDITS.md +0 -22
  202. package/skills/platform-data-manage/CREDITS.md +0 -5
  203. package/skills/platform-metadata-deploy/CREDITS.md +0 -25
  204. package/skills/platform-soql-query/CREDITS.md +0 -21
  205. /package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterfaceConversion/{MyCustomVlocityOpenInterface2.cls → MyCustomClass.cls} +0 -0
@@ -0,0 +1,142 @@
1
+ # UI Compatibility — Data Governance Policy Builder
2
+
3
+ The Data Governance Policy Builder edits a **strict subset** of the MDAPI. Anything outside that subset must be maintained via MDAPI/Tooling for the policy's lifetime — admins cannot open it in the builder without silent data loss or a hard crash.
4
+
5
+ > **Default goal**: produce UI-compatible policies. Only fall back to API-only after asking the operator and getting explicit confirmation.
6
+
7
+ ---
8
+
9
+ ## What the UI Can Render
10
+
11
+ **Categories** : `GOVERNANCE_POLICY_RULE_DEFINITION`, `RECORD_POLICY_RULE_DEFINITION`, `TRANSFORM_POLICY_RULE_DEFINITION`
12
+ **Categories NOT handled** : `ACCESS_POLICY_RULE_DEFINITION` (UI forces to GOVERNANCE on save), `IDENTIFIED_RECORD_POLICY_RULE_DEFINITION`
13
+
14
+ **Effects** : `Permit`, `Forbid` (UI label "Deny"), `Transform`
15
+
16
+ **Actions** : `Read`, `TupleRead` — two real choices for OLS/FLS rules.
17
+ - `Read`: evaluates conditions against the resource itself
18
+ - `TupleRead`: cascade rewriter — expands object-level condition to also cover `resource.object.*` for fields. Use when the intent is "objects matching X AND all their fields"
19
+ - Multiple `<action>` entries: only the first is kept on save
20
+
21
+ **`<ruleConsumer>`** : only `DATACLOUD` (hardcoded on save)
22
+ **`<principalScopeType>`** : only `ANY` (hardcoded on save)
23
+ **`<resourceScopeType>`** : `ANY`, `RECORD`, `FIELD`, `DATASPACE`, `SPAN`
24
+ **`<principalAuthenticationLevel>`** : `INTERNAL`, `AUTHENTICATED`, `UNIDENTIFIED`. `IDENTIFIED` not exposed.
25
+ **`<replicated>`** : read but NOT editable. Once `true`, UI forces read-only mode.
26
+ **`<transformPrecedence>`** : not exposed; non-zero values dropped.
27
+
28
+ ---
29
+
30
+ ## Conditions — Supported Shapes
31
+
32
+ **Top-level conjunction**: only `<whenPolicyRuleDefinitionClauseConjunction>`. The UI forces `<unlessPolicyRuleDefinitionClauseConjunction>` to `null` on save.
33
+
34
+ **Conjunction expression**: the UI builds `(AND …)` of up to four sections dispatched by path type. A pure flat `(OR 1 2)` at the top level triggers `// ERROR: Unsupported rule!` — rule silently dropped. `OR` only round-trips inside a single section's group.
35
+
36
+ **Path types per UI section:**
37
+
38
+ | UI Section | Recognized path |
39
+ |------------|-----------------|
40
+ | Users (Permission) | `principalPath = ASSIGNED_PERMISSIONS_PATH` |
41
+ | Resource entity-type | `resourcePath = ENTITYTYPE` with `IS` operator |
42
+ | Data space | `resourcePath = DATASPACE` or `contextPath = SESSION_DATASPACE` |
43
+ | Tag / Classification | `resourcePath = TAG` or `CLASSIFICATION` |
44
+ | RLS rule criteria | `resourcePath = RECORDFIELD` or `EXPRESSION` |
45
+
46
+ Any other path type → condition silently ignored when UI rebuilds the rule.
47
+
48
+ **Operators per path**:
49
+ - Tag/Classification: `CONTAINS_ANY`, `CONTAINS_NONE`. (`CONTAINS_ALL` exists in schema but not offered in dropdowns)
50
+ - Permission: `CONTAINS_ANY` (Permit) / `CONTAINS_NONE` (Forbid/Transform)
51
+ - RLS `RECORDFIELD`: `EQUALS`, `NOT_EQUALS`, `LIKE`, `LESS_THAN(_OR_EQUALS)`, `GREATER_THAN(_OR_EQUAL)`, `HIERARCHICALLY_ABOVE` (DLO/DMO only). **Not editable**: `HIERARCHICALLY_BELOW`, `IN`, `CONTAINS_ALL`
52
+ - RLS join (`EXPRESSION`): `EXISTS` only
53
+
54
+ **`<policyRuleValueSet>` reference types** : `CUSTOM_TAG`, `STANDARD_TAG`, `CUSTOM_CLASSIFICATION`, `STANDARD_CLASSIFICATION`, `CUSTOM_PERMISSION`. **Not editable**: `HIERARCHY`, `DATASPACE`.
55
+
56
+ ---
57
+
58
+ ## Implicit Defaults Injected by the UI on Save
59
+
60
+ When the UI saves, it auto-injects these — if your hand-authored XML omits them or uses different values, the first UI save rewrites them:
61
+
62
+ | Field | UI default |
63
+ |-------|-----------|
64
+ | `principalAuthenticationLevel` | `INTERNAL` |
65
+ | `principalScopeType` | `ANY` |
66
+ | `ruleConsumer` | `DATACLOUD` |
67
+ | `unlessPolicyRuleDefinitionClauseConjunction` | `null` (always) |
68
+ | `actions` | only first action kept |
69
+ | `policyRuleResourceDomains` | only first `<resourceDomain>` kept |
70
+
71
+ ---
72
+
73
+ ## The Non-Round-Trip Checklist
74
+
75
+ The policy will **not** round-trip through the UI without data loss or silent failure if **any** of the following is true:
76
+
77
+ - [ ] `category` is `ACCESS_POLICY_RULE_DEFINITION` or `IDENTIFIED_RECORD_POLICY_RULE_DEFINITION`
78
+ - [ ] `ruleConsumer` ≠ `DATACLOUD`
79
+ - [ ] More than one `<action>`, or action is not `Read` / `TupleRead`
80
+ - [ ] **No top-level `resourcePath=ENTITYTYPE` discriminator group** for ACCESS/GOVERNANCE rules — this causes a **hard crash** (`Cannot use 'in' operator to search for 'Permit' in undefined`), not a graceful degradation. A `TupleRead` rule without the OR-of-ENTITYTYPE clause still deploys and works at runtime — the crash is UI-only.
81
+ - [ ] **Bare top-level condition index** in `<conjunctionExpression>` (e.g. `3` instead of `(AND 3)`) — causes crash in `buildCriteria` (`param.params.map(...)` = `undefined.map()`)
82
+ - [ ] More than one `<resourceDomain>`
83
+ - [ ] An `<unlessPolicyRuleDefinitionClauseConjunction>` block present
84
+ - [ ] Any `<conditions>` uses `<clause>UNLESS</clause>`
85
+ - [ ] `<conjunctionExpression>` uses top-level `OR` (e.g. `(OR 1 2)`)
86
+ - [ ] `<principalPath>` other than `ASSIGNED_PERMISSIONS_PATH` (user ID etc. may appear only inside SOQL `${User.X}` substitutions)
87
+ - [ ] `<resourcePath>` other than `TAG`, `CLASSIFICATION`, `DATASPACE`, `RECORDFIELD`, `EXPRESSION`, `ENTITYTYPE`
88
+ - [ ] `<valuePrincipalPath>` is not one of `USER_ID`, `USER_ROLE_ID`, `ORGANIZATION_ID`, `SCALAR_ATTRIBUTE`, `PLURAL_ATTRIBUTE` (with `${User.X}` expression)
89
+ - [ ] `<contextPath>` other than `SESSION_DATASPACE`
90
+ - [ ] Operator is `HIERARCHICALLY_BELOW`, `IN`, or `CONTAINS_ALL`
91
+ - [ ] `<valueReferenceType>` is `HIERARCHY` or `DATASPACE`
92
+ - [ ] `<valueString>` is typed JSON other than `{"t":"Text","v":"FIELD"|"RECORD"|"OBJECT"}` or `{"t":"Boolean","v":…}` with a UI-recognized boolean field
93
+ - [ ] `<resourceTransform>` not in the masking-category mapped set
94
+ - [ ] `<resourceExpression>` ARGLIST has multiple arguments
95
+ - [ ] `<replicated>true</replicated>` in an org with replication frozen
96
+
97
+ If **none** of the above is true, the policy is **UI-compatible**.
98
+
99
+ > **Important**: The UI shows NO banner when it drops unsupported pieces on save (`// ERROR: Unsupported rule!` comment, no surfaced message). Operator-confirmation is the only line of defense.
100
+
101
+ ---
102
+
103
+ ## Operator-Confirmation Protocol
104
+
105
+ Whenever a request would produce a UI-incompatible policy:
106
+
107
+ 1. **Try to make it UI-compatible first.** Mechanical rewrites:
108
+ - `unless` → `when` with negated operator:
109
+ | Intent | UI-compatible rewrite |
110
+ |--------|----------------------|
111
+ | `unless principal has permission X` | `WHEN ASSIGNED_PERMISSIONS_PATH CONTAINS_NONE X` |
112
+ | `unless resource has tag X` | `WHEN TAG CONTAINS_NONE X` |
113
+ | `unless record field = value` | `WHEN RECORDFIELD NOT_EQUALS value` |
114
+ - Top-level `OR` between two tags → nest inside a tag/classification section group
115
+ - Multiple `<action>` → split into multiple rules
116
+
117
+ 2. **If a UI-compatible rewrite is not possible**, tell the operator:
118
+ - Which traits make it incompatible (cite items from the checklist above)
119
+ - That the Data Governance Policy Builder will silently drop unsupported pieces on save with no warning
120
+ - That maintenance must happen through MDAPI/Tooling for the policy's lifetime
121
+
122
+ 3. **Wait for explicit confirmation.** Do not write the file until confirmed.
123
+
124
+ 4. **On confirmation**, add an in-source marker to `<description>` (or a comment above the rule): `# API-only: not editable in Data Governance Policy Builder. Reasons: <bullets>`. Also set `<builderCompatible>false</builderCompatible>` on the parent set.
125
+
126
+ ---
127
+
128
+ ## UI-Compatibility Matrix for Templates
129
+
130
+ | Template | UI-compatible? | Notes |
131
+ |----------|----------------|-------|
132
+ | Bare permit, no conditions | Partial | Single `<action>Read</action>` only; `ruleConsumer=DATACLOUD`. UI maps ACCESS → Governance on load. |
133
+ | Tag / Classification / Permission gate | Yes | `CONTAINS_ANY` / `CONTAINS_NONE` only. Tag refs must resolve in org. |
134
+ | Basic RLS (RECORDFIELD = user attribute) | Yes | `USER_ID` / `ORGANIZATION_ID` / `USER_ROLE_ID` round-trips. |
135
+ | TupleRead with OR-of-ENTITYTYPE | Yes | The canonical UI-compatible OLS/FLS shape. |
136
+ | IDENTIFIED_RECORD | Not MDAPI-authorable | Must be a runtime RuleProvider. |
137
+ | RLS via PROJECTION join | Yes | Single PROJECTION editable. |
138
+ | Scalar/plural SOQL principal | Out of MDAPI contract | `SCALAR_ATTRIBUTE`/`PLURAL_ATTRIBUTE` not in `RulePrincipalPathType`. Fixture-only. |
139
+ | TRANSFORM with permission + classification | Yes | Use masking-category-mapped transforms only. |
140
+ | `(AND 1 2)` multi-condition | Yes (if each section is one of the four UI buckets) | |
141
+ | Top-level `(OR 1 2)` | No | Triggers unsupported-rule path; silently dropped. |
142
+ | Hierarchy traversal | No | `HIERARCHICALLY_BELOW` and `HIERARCHY` not in UI dropdowns. Always API-only. |
@@ -14,7 +14,7 @@ Salesforce SOQL query generation, optimization, and analysis skill with 100-poin
14
14
 
15
15
  ### 1. Invoke the skill
16
16
 
17
- ```
17
+ ```yaml
18
18
  Skill: platform-soql-query
19
19
  Request: "Find Accounts with open Opportunities created this quarter"
20
20
  ```
@@ -90,7 +90,7 @@ When finishing, report in this order:
90
90
 
91
91
  Suggested shape — use `references/soql-syntax-reference.md` for exact syntax:
92
92
 
93
- ```
93
+ ```text
94
94
  Query goal: <summary>
95
95
  Query: <soql or sosl>
96
96
  Design: <relationship / aggregate / filter choices>
@@ -308,7 +308,7 @@ WHERE Days_Open__c > 30
308
308
 
309
309
  ## Quick Reference: Selectivity Rules
310
310
 
311
- ```
311
+ ```text
312
312
  A filter is SELECTIVE when:
313
313
  ├── Uses an indexed field, AND
314
314
  ├── Returns < 10% of first million records, OR
@@ -21,7 +21,7 @@ This guide documents field coverage validation rules for SOQL queries — ensuri
21
21
 
22
22
  When you query an sObject, only the fields in the SELECT clause are populated. Accessing any other field results in a runtime error:
23
23
 
24
- ```
24
+ ```text
25
25
  System.SObjectException: SObject row was retrieved via SOQL without querying the requested field: Account.Industry
26
26
  ```
27
27
 
@@ -17,7 +17,7 @@
17
17
 
18
18
  ## Selectivity Rules
19
19
 
20
- ```
20
+ ```text
21
21
  A filter is selective when it returns:
22
22
  - < 10% of total records for first 1 million
23
23
  - < 5% of total records for additional records
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
  """
3
- Post-Tool Validation Hook for querying-soql skill.
3
+ Post-Tool Validation Hook for platform-soql-query skill.
4
4
 
5
5
  This hook runs AFTER Write or Edit tool completes and provides validation
6
6
  feedback for SOQL files (*.soql).
@@ -23,8 +23,8 @@ import json
23
23
  SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
24
24
  sys.path.insert(0, SCRIPT_DIR)
25
25
 
26
- # Find shared modules (../../shared relative to querying-soql)
27
- PLUGIN_ROOT = os.path.dirname(os.path.dirname(SCRIPT_DIR)) # querying-soql/
26
+ # Find shared modules (../../shared relative to platform-soql-query)
27
+ PLUGIN_ROOT = os.path.dirname(os.path.dirname(SCRIPT_DIR)) # platform-soql-query/
28
28
  SKILLS_ROOT = os.path.dirname(PLUGIN_ROOT) # sf-skills/
29
29
  SHARED_DIR = os.path.join(SKILLS_ROOT, "shared")
30
30
  sys.path.insert(0, SHARED_DIR)
@@ -1,5 +0,0 @@
1
- # Credits & Acknowledgments
2
-
3
- This skill is part of the `*-datacloud` family. Shared attribution, upstream source mapping, and maintenance notes live in:
4
- - [../data360-orchestrate/CREDITS.md](../data360-orchestrate/CREDITS.md)
5
- - [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
@@ -1,5 +0,0 @@
1
- # Credits & Acknowledgments
2
-
3
- This skill is part of the `*-datacloud` family of skills covering the full Data Cloud workflow lifecycle. Shared upstream source mapping and maintenance notes live in:
4
- - [../data360-orchestrate/CREDITS.md](../data360-orchestrate/CREDITS.md)
5
- - [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
@@ -1,3 +0,0 @@
1
- # Credits & Acknowledgments
2
-
3
- This skill is part of the `*-datacloud` family of skills covering the Data Cloud lifecycle: ingestion, harmonization, segmentation, and retrieval.
@@ -1,15 +0,0 @@
1
- # Credits & Acknowledgments
2
-
3
- This skill family distills publicly shared Data Cloud implementation knowledge into sf-skills house style. Attribution is intentionally explicit because contributor credit is a core sf-skills principle.
4
-
5
- ---
6
-
7
- This family intentionally:
8
- - keeps sf-skills naming consistency (`*-datacloud`)
9
- - keeps the external CLI plugin outside this repo
10
- - favors deterministic helper scripts and reusable JSON templates
11
- - rewrites examples into generic sf-skills-style guidance rather than copying workshop-specific payloads
12
-
13
- See [UPSTREAM.md](UPSTREAM.md) for the maintenance contract.
14
-
15
- ---
@@ -1,45 +0,0 @@
1
- # Upstream Distillation Map for data360-orchestrate
2
-
3
- This file exists to make downstream maintenance easy without sacrificing sf-skills consistency.
4
-
5
- ## Maintenance contract
6
-
7
- When upstream changes, do **not** copy blindly.
8
-
9
- Instead:
10
- 1. review new upstream commits
11
- 2. identify changed command behaviors, install patterns, or gotchas
12
- 3. update sf-skills prompts and templates in a distilled form
13
- 4. keep naming, attribution, and cross-skill boundaries consistent with sf-skills
14
- 5. update this file with the new reviewed commit SHAs
15
-
16
- ## High-priority upstream areas to re-check
17
-
18
- - installation / linking workflow for the community plugin
19
- - command counts and topic coverage
20
- - API-version guidance
21
- - known issues and bug-fix notes
22
- - live-tested command set
23
- - any new commands affecting Connect / Prepare / Harmonize / Segment / Act / Retrieve boundaries
24
- - connector-specific payload examples worth distilling into generic repo-safe examples
25
- - search-index / hybrid-search guidance and any command-surface changes around hybrid scoring or prefilter behavior
26
- - Ingestion API schema-upload flow, send-data examples, and problem-record guidance
27
- - unstructured-source setup differences between connection-level reruns, stream refreshes, and initial UI seeding
28
- - UI-only gaps where upstream introduces browser automation; validate before importing
29
-
30
- ## Cross-skill boundary reminders
31
-
32
- Keep Data Cloud product work in `*-datacloud`, but do not blur into:
33
- - `agentforce-observe` for STDM/session tracing/parquet workflows
34
- - `platform-soql-query` for CRM SOQL-only tasks
35
- - `platform-data-manage` for CRM record seeding/cleanup
36
- - `platform-*-generate` skills for CRM schema creation (custom objects, fields, validation rules, etc.)
37
-
38
- ## Local helper files in this family
39
-
40
- - `references/plugin-setup.md`
41
- - `scripts/bootstrap-plugin.sh`
42
- - `scripts/verify-plugin.sh`
43
- - `assets/definitions/`
44
-
45
- These are sf-skills-owned conveniences and should evolve independently from upstream when that improves user experience.
@@ -1,7 +0,0 @@
1
- # Credits & Acknowledgments
2
-
3
- Primary contributor: **Gnanasekaran Thoppae**
4
-
5
- This skill is part of the `*-datacloud` family. Shared attribution, upstream source mapping, and maintenance notes live in:
6
- - [../data360-orchestrate/CREDITS.md](../data360-orchestrate/CREDITS.md)
7
- - [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
@@ -1,7 +0,0 @@
1
- # Credits & Acknowledgments
2
-
3
- Primary contributor: **Gnanasekaran Thoppae**
4
-
5
- This skill is part of the `*-datacloud` family. Shared attribution, upstream source mapping, and maintenance notes live in:
6
- - [../data360-orchestrate/CREDITS.md](../data360-orchestrate/CREDITS.md)
7
- - [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
@@ -1,3 +0,0 @@
1
- # Credits & Acknowledgments
2
-
3
- This skill is part of the `*-datacloud` family of skills covering the Salesforce Data Cloud workflow phases. Shared definitions, templates, and readiness scripts for this family live in the `data360-orchestrate` skill directory.
@@ -1,5 +0,0 @@
1
- # Credits & Acknowledgments
2
-
3
- This skill is built on official Salesforce LWC platform patterns and established component development practices.
4
-
5
- ---
@@ -1,46 +0,0 @@
1
- # Credits & Acknowledgments
2
-
3
- This skill was built upon established patterns in technical diagramming and Salesforce data modeling. The following concepts and conventions shaped its design.
4
-
5
- ---
6
-
7
- ## Diagramming Concepts
8
-
9
- ### Text-Based Diagramming
10
- The skill uses Mermaid as its primary diagramming syntax, covering Entity Relationship Diagrams, sequence diagrams, and flowcharts. Key capabilities include:
11
-
12
- - Entity Relationship Diagram syntax
13
- - Sequence diagram patterns
14
- - Flowchart and state diagram support
15
- - Live rendering through Mermaid-capable renderers
16
-
17
- An alternative syntax, PlantUML, informed the UML diagram patterns used in sequence and class diagrams.
18
-
19
- ---
20
-
21
- ## Salesforce Domain Patterns
22
-
23
- ### Data Modeling Conventions
24
- The ERD conventions follow standard Salesforce object relationship patterns, including Master-Detail, Lookup, and External relationships as documented in the Salesforce platform's object model.
25
-
26
- ### Integration Architecture
27
- Integration sequence diagrams draw on widely-adopted API documentation patterns adapted for Salesforce's authentication and integration architecture.
28
-
29
- ### Schema Reference
30
- Object and field relationship information reflects standard Salesforce object reference conventions and relationship type definitions.
31
-
32
- ---
33
-
34
- ## Key Concepts
35
-
36
- ### ERD Notation
37
- The Entity Relationship Diagram conventions follow standard database modeling patterns adapted for Salesforce relationships (Master-Detail, Lookup, External).
38
-
39
- ### Sequence Diagram Patterns
40
- OAuth flow and integration sequence diagrams follow UML 2.0 standards with Salesforce-specific adaptations.
41
-
42
- ### Mermaid in Documentation
43
- The approach of using Mermaid for inline diagrams in Markdown documentation is a widely-adopted pattern in technical documentation that enables version-controlled diagrams alongside code.
44
-
45
- ### Color Accessibility
46
- The color palette follows accessibility guidelines for color-blind-friendly design, using a pastel fill with high-contrast stroke approach.
@@ -1,80 +0,0 @@
1
- # Credits & Acknowledgments
2
-
3
- This skill leverages cutting-edge AI technologies and tools to enable visual content generation in Salesforce development workflows.
4
-
5
- ---
6
-
7
- ## Technologies & Tools
8
-
9
- ### Google Gemini
10
-
11
- Key capabilities:
12
- - Gemini 3 Pro multimodal AI model
13
- - Image generation via Nano Banana Pro extension
14
- - Code review and analysis capabilities
15
- - Documentation research and summarization
16
-
17
- ### Gemini CLI
18
-
19
- Key features:
20
- - Command-line access to Gemini models
21
- - Extension support (Nano Banana)
22
- - Non-interactive mode with --yolo flag
23
- - JSON output for programmatic use
24
-
25
- ### Nano Banana Pro
26
-
27
- Gemini image generation extension.
28
-
29
- Key features:
30
- - High-quality image generation
31
- - ERD and diagram creation
32
- - UI/UX mockup generation
33
- - Architecture visualization
34
-
35
- ---
36
-
37
- ## Display Technologies
38
-
39
- ### timg
40
-
41
- Terminal image viewer.
42
-
43
- Key features:
44
- - Kitty graphics protocol support
45
- - Multiple format support (PNG, JPG, GIF)
46
- - Inline terminal display
47
-
48
- ### Kitty Graphics Protocol
49
-
50
- High-fidelity image rendering protocol for modern terminals.
51
-
52
- Key features:
53
- - High-fidelity image display in terminals
54
- - Supported by Ghostty, Kitty, WezTerm
55
- - Enables visual content in CLI workflows
56
-
57
- ### Ghostty Terminal
58
-
59
- Modern GPU-accelerated terminal emulator.
60
-
61
- Key features:
62
- - Kitty graphics protocol support
63
- - Cross-platform (macOS, Linux)
64
- - High performance rendering
65
-
66
- ---
67
-
68
- ## Salesforce Resources
69
-
70
- ### Salesforce Lightning Design System (SLDS)
71
-
72
- - Design patterns for LWC mockups
73
- - Color palettes and typography
74
- - Component specifications
75
-
76
- ### Salesforce Developers Platform
77
-
78
- - API documentation
79
- - Best practices guides
80
- - Platform architecture references
@@ -1,83 +0,0 @@
1
- # external-diagram-visual-generate
2
-
3
- AI-powered visual content generation for Salesforce development. Generate ERD diagrams, LWC mockups, and architecture visuals using Gemini 3 Pro Image (Nano Banana Pro).
4
-
5
- ## Features
6
-
7
- - **Visual ERD Generation**: Create actual rendered ERD diagrams (not just Mermaid code)
8
- - **LWC/UI Mockups**: Generate wireframes and component mockups following SLDS
9
- - **Gemini Code Review**: Parallel code review while Claude continues working
10
- - **Documentation Research**: Parallel Salesforce documentation research via Gemini
11
-
12
- ## Prerequisites
13
-
14
- **IMPORTANT**: Run the prerequisites check before using this skill:
15
-
16
- ```bash
17
- scripts/check-prerequisites.sh
18
- ```
19
-
20
- | Requirement | Description | How to Install |
21
- |-------------|-------------|----------------|
22
- | **Ghostty Terminal** | Required for Kitty graphics protocol | Download from the Ghostty website |
23
- | **GEMINI_API_KEY** | Personal API key for Nano Banana Pro | Generate via Google AI Studio |
24
- | **Gemini CLI** | Command-line interface for Gemini | `npm install -g @google/gemini-cli` |
25
- | **Nano Banana Extension** | Image generation extension | `gemini extensions install nanobanana` |
26
- | **timg** | Terminal image viewer with Kitty support | `brew install timg` |
27
-
28
- ## Quick Start
29
-
30
- ### 1. Set up your API key
31
-
32
- Add to `~/.zshrc`:
33
- ```bash
34
- export GEMINI_API_KEY="your-personal-api-key"
35
- export NANOBANANA_MODEL=gemini-3-pro-image-preview
36
- ```
37
-
38
- ### 2. Invoke the skill
39
-
40
- ```
41
- Skill: external-diagram-visual-generate
42
- Request: "Generate an ERD diagram showing Account, Contact, and Opportunity relationships"
43
- ```
44
-
45
- ### 3. View the result
46
-
47
- Images are displayed inline using Kitty graphics protocol (Ghostty) or via Claude's multimodal vision using the Read tool.
48
-
49
- ## Use Cases
50
-
51
- | Use Case | Example Request |
52
- |----------|-----------------|
53
- | ERD Diagrams | "Generate a visual ERD for Account, Contact, Opportunity" |
54
- | LWC Mockups | "Create a mockup for an Account list datatable component" |
55
- | Code Review | "Get Gemini's review of this Apex trigger" |
56
- | Doc Research | "Research the Flow best practices in Salesforce docs" |
57
-
58
- ## Cross-Skill Integration
59
-
60
- | Related Skill | When to Use |
61
- |---------------|-------------|
62
- | external-diagram-mermaid-generate | Convert Mermaid to visual rendering |
63
- | platform-custom-object-generate | Query object/field data before generating ERDs |
64
- | experience-lwc-generate | Generate mockups for LWC components |
65
- | platform-apex-generate | Review Apex code via Gemini sub-agent |
66
-
67
- ## Documentation
68
-
69
- - [Gemini CLI Setup](references/gemini-cli-setup.md)
70
-
71
- ## Security Notes
72
-
73
- **NEVER commit your GEMINI_API_KEY to version control**
74
-
75
- - Store API key in `~/.zshrc` only (not in project files)
76
- - The key is personal and tied to your Google account billing
77
-
78
- ## Requirements
79
-
80
- - Ghostty terminal (for Kitty graphics)
81
- - Gemini CLI with Nano Banana extension
82
- - GEMINI_API_KEY environment variable
83
- - timg (for terminal image display)