@salesforce/afv-skills 1.41.0 → 1.43.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 (288) hide show
  1. package/package.json +2 -6
  2. package/skills/automation-sandbox-post-copy-config-generate/SKILL.md +3 -0
  3. package/skills/automation-sandbox-post-copy-configure/SKILL.md +4 -0
  4. package/skills/design-systems-slds-validate/SKILL.md +2 -2
  5. package/skills/dx-app-analytics-query/SKILL.md +1 -3
  6. package/skills/dx-devops-conflict-resolve/SKILL.md +205 -0
  7. package/skills/dx-devops-conflict-resolve/examples/conflict-workflows.md +165 -0
  8. package/skills/dx-devops-conflict-resolve/references/deploy-failure-resolution.md +75 -0
  9. package/skills/dx-devops-conflict-resolve/references/git-conflict-resolution.md +124 -0
  10. package/skills/dx-devops-conflict-resolve/scripts/detect-conflicts.sh +91 -0
  11. package/skills/dx-devops-conflict-resolve/scripts/diagnose-deploy-failure.sh +156 -0
  12. package/skills/dx-devops-request-status/SKILL.md +160 -0
  13. package/skills/dx-devops-request-status/examples/polling-workflows.md +101 -0
  14. package/skills/dx-devops-request-status/references/cli-commands.md +176 -0
  15. package/skills/dx-devops-request-status/scripts/poll-status.sh +134 -0
  16. package/skills/dx-devops-test-failures-analyze/SKILL.md +6 -6
  17. package/skills/dx-devops-test-pipeline-configure/SKILL.md +7 -7
  18. package/skills/dx-devops-test-suite-assignments-configure/SKILL.md +6 -6
  19. package/skills/dx-devops-test-suite-run/SKILL.md +6 -6
  20. package/skills/dx-devops-work-item-manage/SKILL.md +2 -0
  21. package/skills/dx-org-manage/references/creating-scratch-org.md +5 -2
  22. package/skills/dx-org-manage/references/creating-snapshot.md +1 -0
  23. package/skills/dx-org-shape-manage/SKILL.md +152 -0
  24. package/skills/dx-org-shape-manage/examples/create_error_output.json +9 -0
  25. package/skills/dx-org-shape-manage/examples/create_success_output.json +9 -0
  26. package/skills/dx-org-shape-manage/examples/delete_output.json +11 -0
  27. package/skills/dx-org-shape-manage/examples/list_inactive_output.json +32 -0
  28. package/skills/dx-org-shape-manage/examples/list_output.json +24 -0
  29. package/skills/dx-org-shape-manage/references/cli_flags.md +135 -0
  30. package/skills/dx-org-switch/SKILL.md +2 -2
  31. package/skills/dx-org-trial-expiration-check/SKILL.md +2 -0
  32. package/skills/dx-pkg-post-install-configure/SKILL.md +3 -0
  33. package/skills/education-cloud-multi-campus-configure/SKILL.md +211 -0
  34. package/skills/education-cloud-multi-campus-configure/examples/hierarchy_visualization.md +174 -0
  35. package/skills/education-cloud-multi-campus-configure/examples/output_examples.md +54 -0
  36. package/skills/education-cloud-multi-campus-configure/examples/sample_hierarchy_input.csv +29 -0
  37. package/skills/education-cloud-multi-campus-configure/examples/sample_hierarchy_input_edgecases.csv +16 -0
  38. package/skills/education-cloud-multi-campus-configure/references/account_recordtype_prerequisite.md +44 -0
  39. package/skills/education-cloud-multi-campus-configure/references/delta_computation.md +33 -0
  40. package/skills/education-cloud-multi-campus-configure/references/error_handling.md +198 -0
  41. package/skills/education-cloud-multi-campus-configure/references/foundation_prerequisites.md +54 -0
  42. package/skills/education-cloud-multi-campus-configure/references/gotchas.md +16 -0
  43. package/skills/education-cloud-multi-campus-configure/references/hierarchy_parsing_rules.md +133 -0
  44. package/skills/education-cloud-multi-campus-configure/references/mcp-invocation.md +75 -0
  45. package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/SKILL.md +1 -1
  46. package/skills/experience-cms-brand-apply/SKILL.md +4 -1
  47. package/skills/experience-cms-brand-create/SKILL.md +197 -0
  48. package/skills/experience-cms-brand-create/assets/brand-template.json +329 -0
  49. package/skills/experience-cms-brand-create/references/brand-anatomy.md +120 -0
  50. package/skills/experience-cms-brand-create/references/disk-contract.md +84 -0
  51. package/skills/experience-cms-content-generate/SKILL.md +190 -0
  52. package/skills/experience-cms-content-generate/assets/display-formats.md +84 -0
  53. package/skills/experience-cms-content-generate/assets/payloads/create-content-bulk.json +11 -0
  54. package/skills/experience-cms-content-generate/assets/payloads/create-content-single.json +11 -0
  55. package/skills/experience-cms-content-generate/assets/payloads/publish-content.json +4 -0
  56. package/skills/experience-cms-content-generate/assets/payloads/update-content.json +9 -0
  57. package/skills/experience-cms-content-generate/assets/questions.md +241 -0
  58. package/skills/experience-cms-content-generate/examples/create-content-call.md +81 -0
  59. package/skills/experience-cms-content-generate/references/bulk-batching.md +56 -0
  60. package/skills/experience-cms-content-generate/references/content-type-classification.md +88 -0
  61. package/skills/experience-cms-content-generate/references/content-write-tool.md +95 -0
  62. package/skills/experience-cms-content-generate/references/delegation-protocol.md +37 -0
  63. package/skills/experience-cms-content-generate/references/edit-publish-workflow.md +63 -0
  64. package/skills/experience-cms-content-generate/references/error-recovery.md +72 -0
  65. package/skills/experience-cms-content-generate/references/identifier-resolution.md +26 -0
  66. package/skills/experience-cms-content-generate/references/intent-routing.md +45 -0
  67. package/skills/experience-cms-content-generate/references/principles.md +19 -0
  68. package/skills/experience-cms-content-generate/references/ux-rules.md +68 -0
  69. package/skills/experience-cms-content-generate/references/workspace-resolution.md +33 -0
  70. package/skills/experience-cms-content-type-generate/SKILL.md +449 -0
  71. package/skills/experience-cms-content-type-generate/assets/discovery-prompts.md +79 -0
  72. package/skills/experience-cms-content-type-generate/assets/schema-example.json +70 -0
  73. package/skills/experience-cms-content-type-generate/references/agent-checklist.md +50 -0
  74. package/skills/experience-cms-content-type-generate/references/anti-patterns.md +39 -0
  75. package/skills/experience-cms-content-type-generate/references/deployment-errors.md +27 -0
  76. package/skills/experience-cms-content-type-generate/references/discovery-details.md +106 -0
  77. package/skills/experience-cms-content-type-generate/references/discovery-query-rules.md +85 -0
  78. package/skills/experience-cms-content-type-generate/references/edit-fields-loop.md +48 -0
  79. package/skills/experience-cms-content-type-generate/references/pre-deploy-checklist.md +21 -0
  80. package/skills/experience-cms-content-type-generate/references/retrieve-and-reconcile.md +105 -0
  81. package/skills/experience-cms-content-type-generate/references/schema-rules.md +51 -0
  82. package/skills/experience-cms-content-type-generate/references/schema-summary-format.md +60 -0
  83. package/skills/experience-lds-graphql-generate/SKILL.md +4 -0
  84. package/skills/experience-lwc-accessibility-jest-run/SKILL.md +79 -0
  85. package/skills/experience-lwc-accessibility-jest-run/references/running-sa11y-jest-tests.md +205 -0
  86. package/skills/experience-lwc-design-generate/SKILL.md +5 -4
  87. package/skills/experience-lwc-generate/SKILL.md +10 -9
  88. package/skills/experience-ui-bundle-deploy/references/dev-preview.md +21 -0
  89. package/skills/experience-ui-bundle-deploy/references/social-login.md +1 -0
  90. package/skills/experience-ui-bundle-file-upload-generate/SKILL.md +6 -6
  91. package/skills/experience-ui-bundle-localize/SKILL.md +30 -37
  92. package/skills/experience-ui-bundle-localize/references/gotchas.md +23 -7
  93. package/skills/experience-ui-bundle-localize/references/i18n-setup.md +48 -4
  94. package/skills/experience-ui-bundle-localize/references/label-xml.md +22 -8
  95. package/skills/experience-ui-bundle-localize/references/verifying.md +39 -11
  96. package/skills/experience-ui-bundle-localize/scripts/detect-bundle-type.sh +118 -15
  97. package/skills/experience-ui-bundle-localize/scripts/tests/test-detect-bundle-type.sh +187 -0
  98. package/skills/experience-ui-bundle-mfa-configure/SKILL.md +13 -2
  99. package/skills/experience-ui-bundle-mfa-configure/references/social-login.md +1 -0
  100. package/skills/experience-ui-bundle-project-generate/SKILL.md +2 -2
  101. package/skills/integration-connectivity-generate/SKILL.md +11 -10
  102. package/skills/integration-eventing-cdc-configure/SKILL.md +6 -6
  103. package/skills/integration-eventing-subscription-configure/SKILL.md +6 -5
  104. package/skills/mobile-platform-native-capabilities-integrate/SKILL.md +2 -2
  105. package/skills/mobile-platform-offline-validate/scripts/package.json +1 -1
  106. package/skills/platform-agentexchange-partner-offers-configure/SKILL.md +8 -8
  107. package/skills/platform-custom-application-generate/SKILL.md +2 -0
  108. package/skills/platform-custom-field-generate/SKILL.md +8 -6
  109. package/skills/platform-custom-metadata-type-generate/SKILL.md +460 -0
  110. package/skills/platform-custom-metadata-type-generate/references/cmdt-records.md +251 -0
  111. package/skills/platform-custom-metadata-type-generate/scripts/sanitize-developer-name.sh +46 -0
  112. package/skills/platform-custom-setting-generate/SKILL.md +419 -0
  113. package/skills/platform-dataspace-access-configure/SKILL.md +3 -3
  114. package/skills/platform-sharing-owd-configure/SKILL.md +3 -0
  115. package/skills/platform-value-set-generate/SKILL.md +2 -0
  116. package/skills/service-agentforce-channel-configure/SKILL.md +29 -20
  117. package/skills/service-agentforce-channel-configure/assets/BotEmailDefinition.botEmailDefinition-meta.xml +36 -0
  118. package/skills/service-agentforce-channel-configure/assets/email/unfiled$public/AgentforceForServiceEmailTemplate.email +17 -0
  119. package/skills/service-agentforce-channel-configure/assets/email/unfiled$public/AgentforceForServiceEmailTemplate.email-meta.xml +29 -0
  120. package/skills/service-agentforce-channel-configure/assets/mdapi-package.xml +25 -0
  121. package/skills/service-agentforce-channel-configure/assets/settings-mdapi-package.xml +30 -0
  122. package/skills/service-agentforce-channel-configure/references/agent-wiring.md +20 -0
  123. package/skills/service-agentforce-channel-configure/references/botemaildefinition.md +107 -0
  124. package/skills/service-agentforce-channel-configure/references/channel-branch-email.md +203 -50
  125. package/skills/service-agentforce-channel-configure/references/channel-types.md +30 -3
  126. package/skills/service-agentforce-channel-configure/references/queue-resolution.md +17 -8
  127. package/skills/service-agentforce-channel-configure/references/routing-flow.md +14 -3
  128. package/skills/service-agentforce-channel-configure/scripts/validate-botemaildefinition.py +126 -0
  129. package/skills/service-agentforce-channel-configure/scripts/validate-emailtemplate.py +133 -0
  130. package/skills/service-de-channel-activate/SKILL.md +271 -0
  131. package/skills/service-de-channel-activate/references/gotchas.md +31 -0
  132. package/skills/service-de-channel-activate/references/phone-verification.md +96 -0
  133. package/skills/service-de-channel-activate/references/worked-examples.md +14 -0
  134. package/skills/service-de-channel-consent-configure/SKILL.md +230 -0
  135. package/skills/service-de-channel-consent-configure/references/gotchas.md +41 -0
  136. package/skills/service-de-channel-consent-configure/references/language-keywords.md +84 -0
  137. package/skills/service-de-channel-consent-configure/references/worked-examples.md +134 -0
  138. package/skills/service-de-channel-create/SKILL.md +369 -0
  139. package/skills/service-de-channel-create/references/apple.md +59 -0
  140. package/skills/service-de-channel-create/references/connect-insert.md +84 -0
  141. package/skills/service-de-channel-create/references/facebook.md +154 -0
  142. package/skills/service-de-channel-create/references/line.md +66 -0
  143. package/skills/service-de-channel-create/references/sms.md +98 -0
  144. package/skills/service-de-channel-create/references/whatsapp.md +98 -0
  145. package/skills/service-de-channel-create/references/worked-examples.md +70 -0
  146. package/skills/service-de-channel-routing-configure/SKILL.md +345 -0
  147. package/skills/service-de-channel-routing-configure/references/asa-routing.md +90 -0
  148. package/skills/service-de-channel-routing-configure/references/gotchas.md +27 -0
  149. package/skills/service-de-channel-routing-configure/references/queue-creation.md +123 -0
  150. package/skills/service-de-channel-routing-configure/references/target-locate.md +98 -0
  151. package/skills/service-de-channel-routing-configure/references/worked-examples.md +174 -0
  152. package/skills/service-de-headless-channel-configure/SKILL.md +305 -0
  153. package/skills/service-de-headless-channel-configure/references/gotchas.md +27 -0
  154. package/skills/service-de-headless-channel-configure/references/inputs.md +49 -0
  155. package/skills/service-de-headless-channel-configure/references/output-envelopes.md +53 -0
  156. package/skills/service-de-headless-channel-configure/references/partial-success.md +24 -0
  157. package/skills/service-de-headless-channel-configure/references/terms-and-conditions.md +54 -0
  158. package/skills/service-de-headless-channel-configure/references/worked-examples.md +108 -0
  159. package/skills/service-de-waba-integrate/SKILL.md +227 -0
  160. package/skills/service-digital-engagement-channel-configure/scripts/check-api-version.sh +29 -0
  161. package/skills/service-digital-engagement-messaging-site-integrate/SKILL.md +10 -9
  162. package/skills/service-digital-engagement-messaging-site-integrate/references/lwr_patch.md +39 -21
  163. package/skills/service-digital-engagement-messaging-site-integrate/scripts/patch_lwr_bundle.sh +157 -96
  164. package/skills/service-email-to-case-configure/SKILL.md +190 -0
  165. package/skills/service-email-to-case-configure/assets/CaseSettings.settings-meta.xml +45 -0
  166. package/skills/service-email-to-case-configure/examples/CaseSettings-two-addresses.settings-meta.xml +36 -0
  167. package/skills/service-email-to-case-configure/references/apply-mechanics.md +73 -0
  168. package/skills/service-email-to-case-configure/references/routing_address_reference.md +73 -0
  169. package/skills/service-email-to-case-configure/references/troubleshooting.md +25 -0
  170. package/skills/service-email-to-case-configure/scripts/apply-casesettings.py +1315 -0
  171. package/skills/service-email-to-case-configure/scripts/check-agent-email-capability.sh +26 -0
  172. package/skills/service-email-to-case-configure/scripts/tests/__init__.py +0 -0
  173. package/skills/service-email-to-case-configure/scripts/tests/_bootstrap.py +45 -0
  174. package/skills/service-email-to-case-configure/scripts/tests/_fakeorg.py +366 -0
  175. package/skills/service-email-to-case-configure/scripts/tests/_run.py +84 -0
  176. package/skills/service-email-to-case-configure/scripts/tests/test_apply_org_scenarios.py +655 -0
  177. package/skills/service-email-to-case-configure/scripts/tests/test_get_session.py +134 -0
  178. package/skills/service-email-to-case-configure/scripts/tests/test_new_capabilities.py +193 -0
  179. package/skills/service-email-to-case-configure/scripts/tests/test_validate_casesettings.py +170 -0
  180. package/skills/service-email-to-case-configure/scripts/validate-casesettings.py +229 -0
  181. package/skills/service-itsm-agentic-setup-agentforce-coordinate/SKILL.md +33 -15
  182. package/skills/service-itsm-agentic-setup-agentforce-coordinate/examples/output-templates.md +63 -47
  183. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/SKILL.md +17 -12
  184. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/references/cli-invocation.md +5 -3
  185. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/scripts/classify-enable-plan.mjs +11 -3
  186. package/skills/service-itsm-agentic-setup-agentforce-studio-validate/SKILL.md +8 -6
  187. package/skills/service-itsm-agentic-setup-agentforce-studio-validate/references/cli-invocation.md +3 -3
  188. package/skills/service-itsm-agentic-setup-agentforce-studio-validate/scripts/classify-readiness.mjs +11 -3
  189. package/skills/service-itsm-agentic-setup-configure/SKILL.md +5 -5
  190. package/skills/service-itsm-agentic-setup-configure/examples/output-templates.md +5 -5
  191. package/skills/service-itsm-agentic-setup-employee-agent-configure/SKILL.md +2 -2
  192. package/skills/service-itsm-agentic-setup-employee-agent-configure/references/report-format.md +11 -7
  193. package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/render-report.mjs +20 -7
  194. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/SKILL.md +10 -6
  195. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/action-availability.md +7 -7
  196. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/report-format.md +11 -7
  197. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/build-create-body.mjs +24 -17
  198. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/classify-action-availability.mjs +98 -58
  199. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/render-report.mjs +20 -7
  200. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/strip-release-management.mjs +176 -0
  201. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/SKILL.md +19 -19
  202. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/cli-invocation.md +3 -4
  203. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/helper-contracts.md +6 -6
  204. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/permset-topology.md +3 -10
  205. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/scripts/classify-permset-availability.mjs +7 -9
  206. package/skills/service-itsm-incident-mgmt-configure/SKILL.md +2 -0
  207. package/skills/service-itsm-incident-priority-configure/SKILL.md +15 -12
  208. package/skills/service-itsm-incident-priority-configure/examples/matrix-operations.md +27 -1
  209. package/skills/service-itsm-incident-priority-configure/references/sf-cli-invocation.md +37 -6
  210. package/skills/service-native-voice-recording-transcription-configure/SKILL.md +146 -0
  211. package/skills/service-native-voice-recording-transcription-configure/assets/confirmation-output.json +16 -0
  212. package/skills/service-native-voice-recording-transcription-configure/assets/package.xml +22 -0
  213. package/skills/service-native-voice-recording-transcription-configure/references/thunderbird-voice-settings.md +101 -0
  214. package/skills/service-native-voice-recording-transcription-configure/scripts/enable-recording-transcription.sh +181 -0
  215. package/skills/data360-activate/README.md +0 -38
  216. package/skills/data360-activate/SKILL.md +0 -127
  217. package/skills/data360-connect/README.md +0 -57
  218. package/skills/data360-connect/SKILL.md +0 -163
  219. package/skills/data360-connect/examples/connections/heroku-postgres.json +0 -15
  220. package/skills/data360-connect/examples/connections/ingest-api-connection.json +0 -5
  221. package/skills/data360-connect/examples/connections/ingest-api-schema.json +0 -31
  222. package/skills/data360-connect/examples/connections/redshift.json +0 -16
  223. package/skills/data360-connect/examples/connections/sharepoint-unstructured.json +0 -20
  224. package/skills/data360-connect/examples/connections/snowflake-connection.json +0 -42
  225. package/skills/data360-harmonize/README.md +0 -31
  226. package/skills/data360-harmonize/SKILL.md +0 -126
  227. package/skills/data360-orchestrate/README.md +0 -120
  228. package/skills/data360-orchestrate/SKILL.md +0 -263
  229. package/skills/data360-orchestrate/assets/definitions/activation-target.template.json +0 -5
  230. package/skills/data360-orchestrate/assets/definitions/activation.template.json +0 -7
  231. package/skills/data360-orchestrate/assets/definitions/calculated-insight.template.json +0 -7
  232. package/skills/data360-orchestrate/assets/definitions/data-action-target.template.json +0 -5
  233. package/skills/data360-orchestrate/assets/definitions/data-action.template.json +0 -5
  234. package/skills/data360-orchestrate/assets/definitions/data-graph.template.json +0 -21
  235. package/skills/data360-orchestrate/assets/definitions/data-stream.template.json +0 -55
  236. package/skills/data360-orchestrate/assets/definitions/dmo.template.json +0 -17
  237. package/skills/data360-orchestrate/assets/definitions/identity-resolution.template.json +0 -30
  238. package/skills/data360-orchestrate/assets/definitions/mapping.template.json +0 -14
  239. package/skills/data360-orchestrate/assets/definitions/relationship.template.json +0 -12
  240. package/skills/data360-orchestrate/assets/definitions/search-index.template.json +0 -9
  241. package/skills/data360-orchestrate/assets/definitions/segment.template.json +0 -16
  242. package/skills/data360-orchestrate/references/feature-readiness.md +0 -157
  243. package/skills/data360-orchestrate/references/plugin-setup.md +0 -138
  244. package/skills/data360-orchestrate/scripts/bootstrap-plugin.sh +0 -53
  245. package/skills/data360-orchestrate/scripts/diagnose-org.mjs +0 -511
  246. package/skills/data360-orchestrate/scripts/generate-manifest.mjs +0 -68
  247. package/skills/data360-orchestrate/scripts/verify-plugin.sh +0 -58
  248. package/skills/data360-prepare/README.md +0 -50
  249. package/skills/data360-prepare/SKILL.md +0 -203
  250. package/skills/data360-prepare/examples/ingestion-api/.env.example +0 -8
  251. package/skills/data360-prepare/examples/ingestion-api/README.md +0 -48
  252. package/skills/data360-prepare/examples/ingestion-api/send-data.py +0 -144
  253. package/skills/data360-query/README.md +0 -43
  254. package/skills/data360-query/SKILL.md +0 -128
  255. package/skills/data360-query/examples/search-indexes/hybrid-structured.json +0 -44
  256. package/skills/data360-query/examples/search-indexes/vector-knowledge.json +0 -43
  257. package/skills/data360-segment/README.md +0 -35
  258. package/skills/data360-segment/SKILL.md +0 -123
  259. package/skills/service-helpagent-coordinate/references/channel-help-portal.md +0 -22
  260. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-1-1-non-text-content.md +0 -0
  261. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-i-lists.md +0 -0
  262. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-ii-tables.md +0 -0
  263. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-iii-form-labels.md +0 -0
  264. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-iv-regions.md +0 -0
  265. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-v-groups.md +0 -0
  266. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-5-identify-input.md +0 -0
  267. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-4-3-contrast.md +0 -0
  268. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-1-1-keyboard.md +0 -0
  269. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-4-4-link-purpose.md +0 -0
  270. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-4-6-headings-labels.md +0 -0
  271. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-1-pointer-gestures.md +0 -0
  272. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-2-pointer-cancellation.md +0 -0
  273. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-3-label-in-name.md +0 -0
  274. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-7-dragging-movement.md +0 -0
  275. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-2-1-on-focus.md +0 -0
  276. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-2-2-on-input.md +0 -0
  277. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-3-1-error-identification.md +0 -0
  278. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-3-2-labels-instructions.md +0 -0
  279. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-3-3-error-suggestion.md +0 -0
  280. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-4-1-2-i-name.md +0 -0
  281. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-4-1-2-ii-role.md +0 -0
  282. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-4-1-2-iii-value.md +0 -0
  283. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-1-1-non-text-content.md +0 -0
  284. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-1-use-of-color.md +0 -0
  285. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-10-resize-reflow.md +0 -0
  286. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-11-non-text-contrast.md +0 -0
  287. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-3-contrast.md +0 -0
  288. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/scripts/contrast-ratio.py +0 -0
@@ -0,0 +1,51 @@
1
+ # Schema rules (validator truth)
2
+
3
+ The CMS deploy validator is the source of truth — not the per-type metaschemas.
4
+
5
+ ## Bundle root (`schema.json`)
6
+
7
+ - **MUST include**: `"title"`, `"description"`, `"lightning:type": "lightning__objectType"`, `"lightning:mixinTypes": { "sfdc_cms:metadataContent": {} }`, `"properties"`, `"required"`, `"unevaluatedProperties": false` (root only — do NOT set `unevaluatedProperties` on individual field entries inside `properties`).
8
+ - **MUST NOT include**: `"$schema"` at root.
9
+
10
+ ## Per-field rules
11
+
12
+ **Allowed top-level keys per field**: `title`, `description`, `lightning:type`, `lightning:uiOptions`, plus the type-specific keys in the table below. **Nothing else.**
13
+
14
+ **Forbidden top-level keys on any field** (validator rejects under `unevaluatedProperties: false`):
15
+ - `type` (the JSON Schema `"type": "string"` etc — never write it; `lightning:type` is the only type marker)
16
+ - `format` (e.g. `"format": "date"` on a date field)
17
+ - `default`
18
+ - Any other JSON Schema keyword not in this skill
19
+
20
+ **`lightning:uiOptions` rules (sharp edge — caused multi-attempt auto-fix loops):**
21
+ - If you write `lightning:uiOptions`, it **MUST** contain a non-empty `placeholderText` string. Empty `{}` fails validation with `placeholderText: is missing but it is required`.
22
+ - The default-minimal rule means: **omit `lightning:uiOptions` entirely** unless the user asked for placeholders. Do NOT write `"lightning:uiOptions": {}`.
23
+ - All-or-nothing: include `lightning:uiOptions` with a real `placeholderText`, or omit the key completely.
24
+
25
+ `lightning:uiOptions` (with a real `placeholderText`) is accepted on **every** type. The columns below are the *additional* type-specific keys allowed alongside `lightning:type`.
26
+
27
+ | `lightning:type` | Accepted keys |
28
+ |---|---|
29
+ | `lightning__textType` | `minLength`, `maxLength`, `lightning:textIndexed`, `lightning:localizable`, `enum`, `const` |
30
+ | `lightning__multilineTextType` | `minLength`, `maxLength`, `lightning:textIndexed`, `lightning:localizable` |
31
+ | `lightning__richTextType` | `minLength`, `maxLength`, `lightning:textIndexed`, `lightning:localizable` |
32
+ | `lightning__urlType` | `lightning:allowedUrlSchemes` (required), `lightning:localizable`, `readOnly` |
33
+ | `lightning__dateType` | `lightning:localizable` |
34
+ | `lightning__dateTimeType` | `lightning:localizable` |
35
+ | `lightning__booleanType` | (none) |
36
+ | `lightning__integerType` | `minimum`, `maximum`, `const` |
37
+ | `lightning__numberType` | `minimum`, `maximum`, `const` |
38
+ | `lightning__imageType` | (none — do NOT add `type`, `format`, or any other key) |
39
+
40
+ Default-minimal: only set type-specific keys when the user explicitly asks. The columns above are validator-accepted; they are not defaults to apply automatically.
41
+
42
+ ## Validator quirks
43
+
44
+ - `lightning:mixinTypes` accepts ONLY `sfdc_cms:metadataContent`. Any other mixin fails.
45
+ - `enum` is only valid for `lightning__textType`.
46
+ - `required` referencing a missing property is not deploy-enforced — but keep it consistent.
47
+ - No `default` values anywhere — validator rejects them.
48
+
49
+ ## Default-minimal rule (step 3a)
50
+
51
+ Do NOT add `lightning:textIndexed`, `lightning:localizable`, length/range bounds, `enum`, `const`, or `placeholderText` unless the user asked. Match the request, nothing more. The user can request additions in step 3b.
@@ -0,0 +1,60 @@
1
+ # Step 7.5 — schema summary format
2
+
3
+ Runs whenever `{fqn, schema}` has been resolved, regardless of source (local, grounding, retrieve, or new-and-deployed) or of `suppressCreateContentPrompt`. The user always sees what the type contains before the workflow ends or hands off. Callers that suppress the trailing prompt (step 8) still get the summary — the summary is informational, not a turn.
4
+
5
+ ## When to run
6
+
7
+ - Step 1e returned `{fqn, schema}` (existing type reconciled — from local, from grounding, or from `sf project retrieve`).
8
+ - Step 7e succeeded (new type created and deployed — the schema is the one just written).
9
+ - Step 1e's drift-prompt "Deploy local to org" branch reached 7e.
10
+ - **Step 1e's "local only" branch** — BEFORE the `Deploy it? Yes / Cancel` prompt, print the summary of the LOCAL schema so the user sees what they'd be deploying (a local-only bundle is the most likely case to be stale or hand-edited). Header: `Local schema for "<fqn>" (not yet in the org):`.
11
+
12
+ ## When NOT to run
13
+
14
+ - User picked `Cancel` at any point.
15
+ - Step 7b (user answered "No — I'll deploy later") — no resolved schema in the org, nothing to summarize.
16
+ - Any error path exited without a resolved `{fqn, schema}`.
17
+
18
+ ## Format — one line + one markdown table
19
+
20
+ Printed as chat text (NOT inside an `ask_user_tool`):
21
+
22
+ ```text
23
+ Content type "<fqn>" is ready. Schema:
24
+
25
+ | # | API name | Type | Required | Constraints | Title |
26
+ |---|---|---|---|---|---|
27
+ | 1 | `title` | `lightning__textType` | yes | maxLength: 200 | Title |
28
+ | 2 | `body` | `lightning__richTextType` | yes | — | Body |
29
+ | 3 | `publishDate` | `lightning__dateType` | no | — | Publish Date |
30
+ | 4 | `ctaUrl` | `lightning__urlType` | no | allowedUrlSchemes: ["https"] | Call to Action |
31
+ | 5 | `heroImage` | `lightning__imageType` | no | — | Hero Image |
32
+ ```
33
+
34
+ ## Column rules
35
+
36
+ - **`#`** — 1-indexed order from `schema.properties` (JSON key order).
37
+ - **`API name`** — the property key, backticked.
38
+ - **`Type`** — the `lightning:type` value, backticked.
39
+ - **`Required`** — `yes` if the key is in `schema.required`, else `no`.
40
+ - **`Constraints`** — a compact, comma-separated summary of the property's declared constraints:
41
+ - Include `minLength`, `maxLength`, `minimum`, `maximum`, `enum` (as `enum: [a, b, c]`, truncated to 3 with `…` if longer), `pattern` (as `pattern: <regex>`), `format`, `lightning:allowedUrlSchemes`, `readOnly`, `lightning:localizable`, `lightning:textIndexed`, `const`.
42
+ - If a field has no declared constraints, emit `—` (em-dash), NOT an empty cell.
43
+ - Do NOT include `lightning:type` here — it's already in the `Type` column.
44
+ - Do NOT include `lightning:uiOptions.placeholderText` — it's not a constraint.
45
+ - **`Title`** — the property's `title` value, or the API name humanized if `title` is missing.
46
+
47
+ ## Sort / truncation
48
+
49
+ - Preserve `schema.properties` insertion order.
50
+ - If the schema has more than 20 properties, print the first 20 and add a final row `| … | (N more properties) | | | | |` where N = total − 20.
51
+
52
+ ## Do NOT print
53
+
54
+ - The raw JSON schema.
55
+ - Root-level metadata (`title`, `description`, `lightning:type`, `lightning:mixinTypes`).
56
+ - `unevaluatedProperties`.
57
+
58
+ Those are agent-internal details — the user cares about the field list, not the JSON.
59
+
60
+ After printing the table, continue immediately to step 8 (no separate turn, no user prompt between 7.5 and 8).
@@ -2,6 +2,10 @@
2
2
  name: experience-lds-graphql-generate
3
3
  description: "Use ALWAYS when a prompt mentions GraphQL, lightning/uiGraphQLApi, @wire(graphql, ...), or gql template tags in an LWC context — even if the surface ask is \"build an LWC\". Owns the ENTIRE flow: introspect the org's LDS GraphQL schema, identify entities/fields, construct the schema-validated gql query or mutation, wire it into the LWC via lightning/uiGraphQLApi, verify against a connected org. REQUIRED whenever a prompt asks to render, list, or edit Salesforce records (Account, Contact, Case, custom objects) via GraphQL — the .html and .js scaffolding IS in scope. DO NOT delegate to experience-lwc-generate: that skill has NO GraphQL schema introspection, NO create_lds_graphql_read_query binding, and defaults to getRecord/getRelatedListRecords wire adapters which will not satisfy a GraphQL prompt. DO NOT TRIGGER only if the prompt forbids GraphQL, chooses UIAPI/Apex (use experience-lds-best-practices-apply), or asks for data requirements (use experience-lds-data-requirements-generate)."
4
4
  metadata:
5
+ relatedSkills:
6
+ - "experience-lds-best-practices-apply"
7
+ - "experience-lds-data-requirements-generate"
8
+ - "experience-lwc-generate"
5
9
  version: "1.0"
6
10
  domains: ["Experience", "Platform"]
7
11
  cliTools:
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: experience-lwc-accessibility-jest-run
3
+ description: "Use ALWAYS when running Sa11y accessibility Jest tests for a Lightning Web Component — locally before pushing, producing the exact command(s), running one file vs a whole suite, selecting tests by naming convention, saving Sa11y-rendered HTML, or reproducing a Sa11y / A11yBug failure. Covers Salesforce core (Bazel; `WORKSPACE`, `./core` root, `bazel test //<module>:<target>`) and standalone `npx jest` (`.accessibility.test.js`, `@sa11y/jest`). REQUIRED when a prompt asks for a `run-plan.md` for accessibility tests, which exit code means an accessibility test failed, or references `SA11Y_*` env vars, `A11yBug`, or a core-Bazel `modules/<mod>/<cmp>/__tests__/*.test.js` path. Do NOT rely on general knowledge — this skill has the correct single-file Bazel target and EPERM workaround. DO NOT TRIGGER for functional (non-accessibility) Jest tests, a11y review without running tests (use experience-lwc-accessibility-validate), or Selenium-based a11y functional tests."
4
+ metadata:
5
+ version: "1.0"
6
+ domains: ["Experience"]
7
+ cliTools:
8
+ - tool: ["npm"]
9
+ semver: ">=8.0"
10
+ ---
11
+ <!-- adk-managed-skill -->
12
+
13
+ # Running LWC Accessibility Jest Tests
14
+
15
+ Run Sa11y accessibility unit tests on Lightning Web Components in either:
16
+
17
+ - **Core (Bazel)** — when a `WORKSPACE` file is present.
18
+ - **Standalone (Jest)** — when there's no `WORKSPACE`.
19
+
20
+ Selenium-level reproductions, GUS A11yBug ingestion, and other internal
21
+ Salesforce-only flows are out of scope for this skill. For source-code-level
22
+ WCAG review without running tests, see `experience-lwc-accessibility-validate`.
23
+
24
+ ## When to Use This Skill
25
+
26
+ - User wants to run accessibility unit tests (Sa11y Jest) locally before
27
+ pushing a fix.
28
+ - User has a known failing test file path (e.g. from an A11yBug's
29
+ `Test_Names__c`) and wants to target it directly.
30
+ - User is iterating on an accessibility fix and needs the fastest
31
+ pass/fail signal.
32
+
33
+ ## Prerequisites
34
+
35
+ - For Bazel Jest tests: a Salesforce core build environment (a `WORKSPACE`
36
+ file is present).
37
+ - For standalone Jest tests: `@sa11y/jest` installed and configured.
38
+
39
+
40
+ ## Workflow
41
+
42
+ Follow [running-sa11y-jest-tests.md](references/running-sa11y-jest-tests.md).
43
+ Pick the correct mode:
44
+
45
+ - **Core (Bazel)** — use when `WORKSPACE` is present. Prefer single-file
46
+ targets (`//{moduleName}:{relativePath}`) over module targets when the
47
+ failing test file path is already known (`.test.js` extension dropped).
48
+ Bazel commands must pass `--test_env=SA11Y_AUTO=1
49
+ --test_env=SA11Y_ENABLE_DOM_MUTATION_OBSERVER=1`; when debugging, add
50
+ `SA11Y_ENABLE_RENDERED_DOM_SAVE=1` with the documented save path to avoid
51
+ EPERM issues.
52
+ - **Standalone (Jest)** — use when there's no `WORKSPACE`. Run
53
+ `npm test -- --testMatch="**/*.accessibility.test.js"` for the whole suite,
54
+ or `npm test -- <file>` targeting the file by the name/path given in the
55
+ prompt (a **bare filename** when it is "in this directory"). Do **not**
56
+ prepend `SA11Y_*` env vars in standalone mode — Sa11y runs automatically
57
+ because `@sa11y/jest` is wired into the project's Jest setup; no extra
58
+ environment variables are needed.
59
+
60
+ **Answer only what is asked.** Emit just the command(s) the prompt requests plus
61
+ the exit-code meaning. Do not pad the plan with unrequested variants (watch,
62
+ coverage, verbose), snapshot-update steps, or HTML-save sections unless the user
63
+ explicitly asks for them.
64
+
65
+
66
+ ## Verification Checklist
67
+
68
+ - [ ] Sa11y Jest run completed with a clear pass/fail signal (exit 0 or 3
69
+ for Bazel; exit 0 or 1 for Jest).
70
+ - [ ] If snapshots were intentionally updated, the new snapshots are
71
+ committed alongside the fix.
72
+
73
+
74
+ ## Troubleshooting
75
+
76
+ - **Bazel test "not found"** — the target path is off. Remember to drop the
77
+ `.test.js` extension in `{relativePath}`.
78
+ - **HTML saving fails with EPERM** — use the prescribed save path
79
+ `sfdc-test/unit/javascript/htdocs/sa11y/jest`.
@@ -0,0 +1,205 @@
1
+ # Sa11y Accessibility Test Instructions
2
+
3
+ ## Environment Detection
4
+
5
+ Choose the approach based on your environment:
6
+
7
+ - **Core Build Environment** — contains a `WORKSPACE` file, uses Bazel build system.
8
+ - **Standalone Environment** — no `WORKSPACE` file, uses npm/yarn scripts.
9
+
10
+ If this is not a Salesforce core build environment, do not mention anything about the core build environment.
11
+
12
+ ---
13
+
14
+ ## Core Build Environment (Bazel)
15
+
16
+ When working within a Salesforce core build environment, use Bazel commands.
17
+
18
+ ### Base Command Structure
19
+
20
+ ```bash
21
+ {coreRootPath}/tools/bazel test [TARGET] --test_output=streamed --test_env=SA11Y_AUTO=1 --test_env=SA11Y_ENABLE_DOM_MUTATION_OBSERVER=1
22
+ ```
23
+
24
+ **Replacements:**
25
+
26
+ - `{coreRootPath}` — your actual core root directory path
27
+ - `{moduleName}` — module name (e.g. `ui-content-authoring-components`)
28
+ - `{relativePath}` — test file path **without** `.test.js` extension
29
+
30
+ ### Testing Approaches
31
+
32
+ #### 1. Single File Testing
33
+
34
+ ```bash
35
+ {coreRootPath}/tools/bazel test //{moduleName}:{relativePath} --test_output=streamed --test_env=SA11Y_AUTO=1 --test_env=SA11Y_ENABLE_DOM_MUTATION_OBSERVER=1
36
+ ```
37
+
38
+ Example:
39
+
40
+ ```bash
41
+ ./core/tools/bazel test //ui-content-authoring-components:modules/es_block_builder/blockBuilder/__tests__/blockBuilder --test_output=streamed --test_env=SA11Y_AUTO=1 --test_env=SA11Y_ENABLE_DOM_MUTATION_OBSERVER=1
42
+ ```
43
+
44
+ **Use when:** testing a specific component with a known test file path.
45
+
46
+ #### 2. Module Testing
47
+
48
+ ```bash
49
+ {coreRootPath}/tools/bazel test //{moduleName}:sa11y_jest_test --test_output=streamed --test_env=SA11Y_AUTO=1 --test_env=SA11Y_ENABLE_DOM_MUTATION_OBSERVER=1
50
+ ```
51
+
52
+ Example:
53
+
54
+ ```bash
55
+ ./core/tools/bazel test //ui-content-authoring-components:sa11y_jest_test --test_output=streamed --test_env=SA11Y_AUTO=1 --test_env=SA11Y_ENABLE_DOM_MUTATION_OBSERVER=1
56
+ ```
57
+
58
+ **Use when:** testing an entire module or when unsure which specific component to target.
59
+
60
+ #### 3. Multiple Modules
61
+
62
+ ```bash
63
+ {coreRootPath}/tools/bazel test //{module1}:sa11y_jest_test //{module2}:sa11y_jest_test --test_output=streamed --test_env=SA11Y_AUTO=1 --test_env=SA11Y_ENABLE_DOM_MUTATION_OBSERVER=1
64
+ ```
65
+
66
+ **Use when:** integration testing across module boundaries.
67
+
68
+ #### 4. Wildcard Testing
69
+
70
+ ```bash
71
+ {coreRootPath}/tools/bazel test //{moduleName}:sa11y_jest_test --test_arg=--testMatch="**/{modulePath}/**" --test_output=streamed --test_env=SA11Y_AUTO=1 --test_env=SA11Y_ENABLE_DOM_MUTATION_OBSERVER=1
72
+ ```
73
+
74
+ **Use when:** filtering multiple components within a module by pattern.
75
+
76
+ ---
77
+
78
+ ## Standalone Environment (Direct Jest)
79
+
80
+ No `SA11Y_*` environment variables are needed here — `@sa11y/jest` is wired into
81
+ the project's Jest setup, so the accessibility assertions run automatically.
82
+
83
+ ```bash
84
+ # Run all accessibility tests (match by the *.accessibility.test.js convention)
85
+ npm test -- --testMatch="**/*.accessibility.test.js"
86
+
87
+ # Re-run a single test file — use the filename/path as given in the prompt
88
+ # (a bare filename when the file is "in this directory")
89
+ npm test -- myComponent.accessibility.test.js
90
+ ```
91
+
92
+ ### Jest Configuration
93
+
94
+ Ensure Jest includes Sa11y setup:
95
+
96
+ ```javascript
97
+ // jest.config.js
98
+ module.exports = {
99
+ setupFilesAfterEnv: ['<rootDir>/test/setup/sa11y-setup.js'],
100
+ testEnvironment: 'jsdom',
101
+ };
102
+ ```
103
+
104
+ ### Sa11y Setup File
105
+
106
+ ```javascript
107
+ // test/setup/sa11y-setup.js
108
+ import { configure } from '@sa11y/jest';
109
+
110
+ configure({
111
+ rules: ['wcag2a', 'wcag2aa', 'wcag2aaa'],
112
+ });
113
+ ```
114
+
115
+ ---
116
+
117
+ ## Path Discovery (Core Build Environment)
118
+
119
+ ```bash
120
+ # Find all test files in a module
121
+ find {coreRootPath}/ui-content-authoring-components -name "*.test.js" -type f
122
+
123
+ # Explore module structure
124
+ ls {coreRootPath}/ui-content-authoring-components/modules/
125
+
126
+ # Use Bazel to list test targets
127
+ {coreRootPath}/tools/bazel query "tests(//ui-content-authoring-components:*)"
128
+ ```
129
+
130
+ ### Path Construction
131
+
132
+ - **Module Name** — use directly (e.g. `ui-content-authoring-components`)
133
+ - **Component Path** — `modules/{componentDir}/{componentName}/__tests__/`
134
+ - **Test File** — remove `.test.js` extension
135
+
136
+ ---
137
+
138
+ ## Optional Arguments
139
+
140
+ ### Bazel Options
141
+
142
+ | Option | Command | Purpose |
143
+ | ---------------- | --------------------------------------------------------------------------------------------------------------------------------- | -------------------------- |
144
+ | Update Snapshots | `--test_arg="--updateSnapshot"` | Update test snapshots |
145
+ | Disable Cache | `--cache_test_results=no` | Disable Bazel test caching |
146
+ | Save HTML Files | `--test_env=SA11Y_ENABLE_RENDERED_DOM_SAVE=1 --test_env=SA11Y_RENDERED_DOM_SAVE_PATH=sfdc-test/unit/javascript/htdocs/sa11y/jest` | Save HTML for analysis |
147
+
148
+ **Note:** Use `sfdc-test/unit/javascript/htdocs/sa11y/jest` as the save path to avoid EPERM permission issues.
149
+
150
+ **Complete example with HTML saving:**
151
+
152
+ ```bash
153
+ ./core/tools/bazel test //ui-content-authoring-components:modules/es_block_builder/blockBuilder/__tests__/blockBuilder \
154
+ --test_output=streamed \
155
+ --test_env=SA11Y_AUTO=1 \
156
+ --test_env=SA11Y_ENABLE_DOM_MUTATION_OBSERVER=1 \
157
+ --test_env=SA11Y_ENABLE_RENDERED_DOM_SAVE=1 \
158
+ --test_env=SA11Y_RENDERED_DOM_SAVE_PATH=sfdc-test/unit/javascript/htdocs/sa11y/jest
159
+ ```
160
+
161
+ ### Jest Options
162
+
163
+ ```bash
164
+ # Update snapshots
165
+ npm test -- --testMatch="**/*.accessibility.test.js" --updateSnapshot
166
+
167
+ # Run in watch mode
168
+ npm test -- --testMatch="**/*.accessibility.test.js" --watch
169
+
170
+ # Run with verbose output
171
+ npm test -- --testMatch="**/*.accessibility.test.js" --verbose
172
+ ```
173
+
174
+ ---
175
+
176
+ ## Expected Exit Codes
177
+
178
+ ### Bazel
179
+
180
+ - **0** — all tests passed
181
+ - **3** — build succeeded, some tests failed
182
+ - **1** — build or command failed
183
+
184
+ ### Jest
185
+
186
+ - **0** — all tests passed
187
+ - **1** — some tests failed or error occurred
188
+
189
+ ---
190
+
191
+ ## Troubleshooting
192
+
193
+ ### Bazel
194
+
195
+ - Verify `WORKSPACE` file exists
196
+ - Check Bazel version compatibility
197
+ - Ensure test targets are properly defined
198
+ - Verify repository-specific Bazel binary path
199
+
200
+ ### Jest
201
+
202
+ - Verify Jest configuration
203
+ - Check test file naming conventions
204
+ - Ensure Sa11y dependencies are installed
205
+ - Verify jsdom environment setup
@@ -15,7 +15,8 @@ metadata:
15
15
  - design-systems-slds-apply
16
16
  - experience-lds-best-practices-apply
17
17
  - experience-lds-data-requirements-generate
18
- - experience-lwc-accessibility-validate
18
+ - experience-lwc-accessibility-jest-run
19
+ - experience-accessibility-validate
19
20
  - experience-lwc-base-components-integrate
20
21
  - experience-lwc-generate
21
22
  - experience-lwc-rtl-validate
@@ -101,7 +102,7 @@ Do NOT use this skill for:
101
102
  - Audit event handlers and lifecycle hook usage (`renderedCallback` guards).
102
103
  - Consider lazy loading for heavy children.
103
104
  2. Hand off to `experience-lwc-generate` for the LWC best-practices review pass (anti-patterns, reactivity, composition).
104
- 3. Hand off to the compliance suite for the pre-ship review — `experience-lwc-accessibility-validate` (a11y), `experience-lwc-security-validate` (LWS + Product Security), and `experience-lwc-rtl-validate` (RTL i18n). Run them together for the full quality pass.
105
+ 3. Hand off to the compliance suite for the pre-ship review — `experience-accessibility-validate` (a11y), `experience-lwc-security-validate` (LWS + Product Security), and `experience-lwc-rtl-validate` (RTL i18n). Run them together for the full quality pass.
105
106
  4. If the component touches data, hand off to `experience-lds-best-practices-apply` for cache/consistency and referential-integrity checks.
106
107
  5. Apply every accepted finding. Keep the PRD as the source of truth — do not add scope under the guise of optimization.
107
108
 
@@ -153,7 +154,7 @@ A new component built from this workflow is "done" only when **every** item belo
153
154
 
154
155
  5. `.js-meta.xml` AI metadata passes the audit in `experience-lwc-generate` (component-wide `<ai><description>` set, plus an `<ai><property name="…" aiDescription="…"/></ai>` entry for every `@api` member exposed through `<targetConfig>`; no marketing language).
155
156
  6. SLDS styling passes `design-systems-slds-apply` verification — no raw hex / px values, only styling hooks and SLDS utility classes.
156
- 7. Accessibility pass complete: `experience-lwc-accessibility-validate` for source review + `experience-lwc-accessibility-jest-run` for automated tests, both green.
157
+ 7. Accessibility pass complete: `experience-accessibility-validate` for source review + `experience-lwc-accessibility-jest-run` for automated tests, both green.
157
158
  8. Security + RTL pass complete: `experience-lwc-security-validate` + `experience-lwc-rtl-validate`, both green.
158
159
 
159
160
  **Data + tests:**
@@ -169,7 +170,7 @@ A new component built from this workflow is "done" only when **every** item belo
169
170
  - `design-systems-slds-apply`, `experience-lwc-base-components-integrate` — Phase 2 styling decisions.
170
171
  - `experience-lwc-generate` — Phase 2 authoring baseline + Phase 3 best-practices review + Phase 5 AI-metadata audit.
171
172
  - `experience-lds-best-practices-apply` — Phase 2/3 data-layer adapter selection and consistency review.
172
- - `experience-lwc-accessibility-validate`, `experience-lwc-security-validate`, `experience-lwc-rtl-validate` — Phase 3 a11y/security/RTL review.
173
+ - `experience-accessibility-validate`, `experience-lwc-security-validate`, `experience-lwc-rtl-validate` — Phase 3 a11y/security/RTL review.
173
174
  - `experience-lwc-accessibility-jest-run` — Phase 5 automated a11y test generation.
174
175
  - Optional: add o11y instrumentation as a separate pass once the component stabilizes.
175
176
  - `experience-lwc-typescript-migrate` — optional once JS is green.
@@ -2,6 +2,16 @@
2
2
  name: experience-lwc-generate
3
3
  description: "Lightning Web Components with PICKLES methodology and 165-point scoring. Use this skill when the user creates or edits LWC components, builds wire service patterns, or writes Jest tests for LWC. TRIGGER when: user creates/edits LWC components, touches lwc/**/*.js, .html, .css, .js-meta.xml files, or asks about wire service, SLDS, or Jest LWC tests. DO NOT TRIGGER when: Apex classes (use platform-apex-generate), Aura components, or Visualforce."
4
4
  metadata:
5
+ version: "1.1"
6
+ domains: ["Experience"]
7
+ minApiVersion: "66.0"
8
+ relatedSkills:
9
+ - "agentforce-generate"
10
+ - "automation-flow-generate"
11
+ - "integration-connectivity-generate"
12
+ - "platform-apex-generate"
13
+ - "platform-apex-test-run"
14
+ - "platform-metadata-deploy"
5
15
  cliTools:
6
16
  - tool: ["node"]
7
17
  semver: ">=18.0.0"
@@ -13,15 +23,6 @@ metadata:
13
23
  semver: ">=3.9.0"
14
24
  - tool: ["sf"]
15
25
  semver: ">=2.0.0"
16
- relatedSkills:
17
- - "agentforce-generate"
18
- - "automation-flow-generate"
19
- - "integration-connectivity-generate"
20
- - "platform-apex-generate"
21
- - "platform-apex-test-run"
22
- - "platform-metadata-deploy"
23
- version: "1.1"
24
- domains: ["Experience"]
25
26
  ---
26
27
 
27
28
  # experience-lwc-generate: Lightning Web Components Development
@@ -34,6 +34,27 @@ Run it from the **project root** (the `npm` script `cd`s into the bundle itself)
34
34
  6. `npm run dev` — launch the Vite dev server. **Blocking** — it runs until the
35
35
  user stops it with Ctrl+C.
36
36
 
37
+ ## Local preview limitations
38
+
39
+ `npm run dev:preview` runs the app in the Vite dev server with `sdk.fetch` proxied
40
+ to the org **outside the Experience site's guest/community context**. Some auth
41
+ surfaces therefore **cannot be exercised locally** — this is expected, not a
42
+ misconfiguration:
43
+
44
+ - **Social Login buttons do not render.** The built-in Social Login component calls
45
+ `/auth/social-login-config`, which returns no providers because `Site.getBaseUrl()`
46
+ is blank outside the site context — even when providers are correctly linked
47
+ (SKILL.md step 6b). The Social Login section simply renders nothing.
48
+ - **Password / MFA login does not complete.** `Site.login()` cannot establish the
49
+ site session, so login returns *"Your login attempt has failed…"* and any MFA
50
+ challenge never renders.
51
+
52
+ Test social login and MFA on the **published** site login page
53
+ (`https://<domain>.site.com/<site-path>/login`), not on `localhost`.
54
+
55
+ `npm run dev:preview` prints this same warning to the CLI just before it launches
56
+ the dev server, so the limitation is visible even without reading this reference.
57
+
37
58
  ## When to use it vs. the setup GraphQL step
38
59
 
39
60
  - **Setup step 8** (`references/graphql.md`) refreshes schema/types and then
@@ -177,3 +177,4 @@ sf data create record --target-org <org> --sobject PermissionSetAssignment \
177
177
  | SSO user: `NO_ACCESS: User was not authorized for the community` | `communityMemberProfile` not in `NetworkMemberGroup` | Ensure sub-step 3 ran (profile added to member groups) |
178
178
  | SSO user insert fails with `FIELD_INTEGRITY_EXCEPTION` | "Allow standard external profiles" org setting off | Ensure sub-step 1 ran (`enableExternalProfiles`) |
179
179
  | `getCurrentUser()` / `/chatter/users/me` fails for SSO users | Community profile lacks `ApiEnabled` | Set `communityUserPermset` so sub-step 4 assigns API access |
180
+ | No social-login buttons in local dev preview (`npm run dev:preview`) even when providers are correctly linked | Local preview runs outside the Experience site guest context, so `/auth/social-login-config` returns no providers (`Site.getBaseUrl()` is blank) | Expected — not a misconfig. Verify on the **published** site login page, not `localhost`. |
@@ -396,9 +396,9 @@ The package includes a reference implementation in `src/features/fileupload/` wi
396
396
 
397
397
  ## DO NOT do these things
398
398
 
399
- - ❌ Build XHR/fetch upload logic from scratch — use the `upload()` API
400
- - ❌ Try to import `<FileUpload />` component — it's not exported
401
- - ❌ Try to import `useFileUpload` hook — it's not exported
402
- - ❌ Use third-party file upload libraries when this feature exists
403
- - ❌ Skip progress tracking — always provide user feedback
404
- - ❌ Ignore errors — always handle and display error messages
399
+ - Build XHR/fetch upload logic from scratch — use the `upload()` API
400
+ - Try to import `<FileUpload />` component — it's not exported
401
+ - Try to import `useFileUpload` hook — it's not exported
402
+ - Use third-party file upload libraries when this feature exists
403
+ - Skip progress tracking — always provide user feedback
404
+ - Ignore errors — always handle and display error messages