experience-lwc-generate: Lightning Web Components Development
Use this skill when the user needs Lightning Web Components: LWC bundles, wire patterns, Apex/GraphQL integration, SLDS 2 styling, accessibility, performance work, or Jest unit tests.
When This Skill Owns the Task
Use experience-lwc-generate when the work involves:
lwc/**/*.js, .html, .css, .js-meta.xml
- component scaffolding and bundle design
- wire service, Apex integration, GraphQL integration
- SLDS 2, dark mode, and accessibility work
- Jest unit tests for LWC
Delegate elsewhere when the user is:
Required Context to Gather First
Ask for or infer:
- component purpose and target surface
- data source: LDS, Apex, GraphQL, LMS, or external system via Apex
- whether the user needs tests
- whether the component must run in Flow, App Builder, Experience Cloud, or dashboard contexts
- accessibility and styling expectations
Recommended Workflow
1. Choose the right architecture
Use the PICKLES mindset:
- prototype
- integrate the right data source
- compose component boundaries
- define interaction model
- use platform libraries
- optimize execution
- enforce security
2. Choose the right data access pattern
| Need |
Default pattern |
| single-record UI |
LDS / getRecord |
| simple CRUD form |
base record form components |
| complex server query |
Apex @AuraEnabled(cacheable=true) |
| related graph data |
GraphQL wire adapter |
| cross-DOM communication |
Lightning Message Service |
3. Start from an asset when useful
Use provided assets for:
- basic component bundles
- datatables
- modal patterns
- Flow screen components
- GraphQL components
- LMS message channels
- Jest tests
- TypeScript-enabled components
4. Validate for frontend quality
Check:
- accessibility
- SLDS 2 / dark mode compliance
- event contracts
- performance / rerender safety
- Jest coverage when required
5. Hand off supporting backend or deploy work
Use:
High-Signal Rules
- prefer platform base components over reinventing controls
- use
@wire for reactive read-only use cases; imperative calls for explicit actions and DML paths
- do not introduce inaccessible custom UI
- avoid hardcoded colors; use SLDS 2-compatible styling hooks / variables
- avoid rerender loops in
renderedCallback()
- keep component communication patterns explicit and minimal
Output Format
When finishing, report in this order:
- Component(s) created or updated
- Data access pattern chosen
- Files changed
- Accessibility / styling / testing notes
- Next implementation or deploy step
Suggested shape:
LWC work: <summary>
Pattern: <wire / apex / graphql / lms / flow-screen>
Files: <paths>
Quality: <a11y, SLDS2, dark mode, Jest>
Next step: <deploy, add controller, or run tests>
Local Development Server
Preview LWC components locally with hot reload — no deployment needed. Run the commands in scripts/local-dev-preview.sh to start a local dev session for a component, app, or Experience Cloud site.
Local Dev commands install just-in-time on first run. They are long-running processes that open a browser with live preview. Changes to .js, .html, and .css files auto-reload instantly. Requires an active org connection for data and Apex callouts.
Cross-Skill Integration
Reference File Index
Start here
- references/component-patterns.md — component architecture patterns and bundle design
- references/slds-design-guide.md — SLDS 2 styling, dark mode, CSS hooks
- references/lwc-best-practices.md — high-signal rules and anti-patterns
- references/scoring-and-testing.md — 165-point scoring rubric across 8 categories
- references/jest-testing.md — Jest unit test patterns and async rendering helpers
- references/slds-blueprints.json — machine-readable SLDS component blueprints
- references/cli-commands.md — SF CLI commands for LWC development
Accessibility / performance / state
- references/accessibility-guide.md — WCAG, ARIA, keyboard navigation patterns
- references/performance-guide.md — lazy loading, debouncing, rerender safety
- references/state-management.md — reactive state patterns and LMS
- references/template-anti-patterns.md — common HTML template mistakes to avoid
Integration / advanced features
- references/lms-guide.md — Lightning Message Service patterns
- references/flow-integration-guide.md — Flow screen component design
- references/advanced-features.md — Spring '26 features: TypeScript, lwc:on, GraphQL mutations
- references/async-notification-patterns.md — toast, notifications, async flows
- references/triangle-pattern.md — parent-child-sibling communication triangle
Asset templates
- assets/basic-component/basicComponent.js — wire service, error/loading states, event dispatching
- assets/datatable-component/datatableComponent.js — datatable with inline editing
- assets/flow-screen-component/flowScreenComponent.js — Flow screen with input/output properties
- assets/form-component/formComponent.js — form validation and DML patterns
- assets/graphql-component/graphqlComponent.js — GraphQL wire adapter with cursor-based pagination
- assets/jest-test/componentName.test.js.example — Jest test template (copy and rename, remove
.example suffix)
- assets/message-channel/lmsPublisher.js — LMS publisher pattern
- assets/message-channel/lmsSubscriber.js — LMS subscriber pattern
- assets/modal-component/modalComponent.js — modal with focus trap and ESC handling
- assets/record-picker/recordPicker.js — record picker with search
- assets/state-store/store.js — reactive state store for cross-component state
- assets/typescript-component/typescriptComponent.ts — TypeScript-enabled component (Spring '26)
- assets/workspace-api/workspaceComponent.js — workspace API for tab and focus management
- assets/apex-controller/LwcController.cls — Apex controller with
@AuraEnabled(cacheable=true) patterns
Scripts
- scripts/local-dev-preview.sh — local dev server commands for component, app, and site preview
Score Guide
| Score |
Meaning |
| 150+ |
production-ready LWC bundle |
| 125–149 |
strong component with minor polish left |
| 100–124 |
functional but review recommended |
| < 100 |
needs significant improvement |
1---2name: experience-lwc-generate3description: 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---5
6# experience-lwc-generate: Lightning Web Components Development
7
8Use this skill when the user needs **Lightning Web Components**: LWC bundles, wire patterns, Apex/GraphQL integration, SLDS 2 styling, accessibility, performance work, or Jest unit tests.
9
10## When This Skill Owns the Task
11
12Use `experience-lwc-generate` when the work involves:
13- `lwc/**/*.js`, `.html`, `.css`, `.js-meta.xml`
14- component scaffolding and bundle design
15- wire service, Apex integration, GraphQL integration
16- SLDS 2, dark mode, and accessibility work
17- Jest unit tests for LWC
18
19Delegate elsewhere when the user is:
20- writing Apex controllers or business logic first → [platform-apex-generate](../platform-apex-generate/SKILL.md)
21- building Flow XML rather than an LWC screen component → [automation-flow-generate](../automation-flow-generate/SKILL.md)
22- deploying metadata → [platform-metadata-deploy](../platform-metadata-deploy/SKILL.md)
23
24---
25
26## Required Context to Gather First
27
28Ask for or infer:
29- component purpose and target surface
30- data source: LDS, Apex, GraphQL, LMS, or external system via Apex
31- whether the user needs tests
32- whether the component must run in Flow, App Builder, Experience Cloud, or dashboard contexts
33- accessibility and styling expectations
34
35---
36
37## Recommended Workflow
38
39### 1. Choose the right architecture
40Use the **PICKLES** mindset:
41- prototype
42- integrate the right data source
43- compose component boundaries
44- define interaction model
45- use platform libraries
46- optimize execution
47- enforce security
48
49### 2. Choose the right data access pattern
50| Need | Default pattern |
51|---|---|
52| single-record UI | LDS / `getRecord` |
53| simple CRUD form | base record form components |
54| complex server query | Apex `@AuraEnabled(cacheable=true)` |
55| related graph data | GraphQL wire adapter |
56| cross-DOM communication | Lightning Message Service |
57
58### 3. Start from an asset when useful
59Use provided assets for:
60- basic component bundles
61- datatables
62- modal patterns
63- Flow screen components
64- GraphQL components
65- LMS message channels
66- Jest tests
67- TypeScript-enabled components
68
69### 4. Validate for frontend quality
70Check:
71- accessibility
72- SLDS 2 / dark mode compliance
73- event contracts
74- performance / rerender safety
75- Jest coverage when required
76
77### 5. Hand off supporting backend or deploy work
78Use:
79- [platform-apex-generate](../platform-apex-generate/SKILL.md) for controllers / services
80- [platform-metadata-deploy](../platform-metadata-deploy/SKILL.md) for deployment
81- [platform-apex-test-run](../platform-apex-test-run/SKILL.md) only for Apex-side test loops, not Jest
82
83---
84
85## High-Signal Rules
86
87- prefer platform base components over reinventing controls
88- use `@wire` for reactive read-only use cases; imperative calls for explicit actions and DML paths
89- do not introduce inaccessible custom UI
90- avoid hardcoded colors; use SLDS 2-compatible styling hooks / variables
91- avoid rerender loops in `renderedCallback()`
92- keep component communication patterns explicit and minimal
93
94---
95
96## Output Format
97
98When finishing, report in this order:
991. **Component(s) created or updated**
1002. **Data access pattern chosen**
1013. **Files changed**
1024. **Accessibility / styling / testing notes**
1035. **Next implementation or deploy step**
104
105Suggested shape:
106
107```text
108LWC work: <summary>
109Pattern: <wire / apex / graphql / lms / flow-screen>
110Files: <paths>
111Quality: <a11y, SLDS2, dark mode, Jest>
112Next step: <deploy, add controller, or run tests>
113```
114
115---
116
117## Local Development Server
118
119Preview LWC components locally with hot reload — no deployment needed. Run the commands in `scripts/local-dev-preview.sh` to start a local dev session for a component, app, or Experience Cloud site.
120
121Local Dev commands install just-in-time on first run. They are long-running processes that open a browser with live preview. Changes to `.js`, `.html`, and `.css` files auto-reload instantly. Requires an active org connection for data and Apex callouts.
122
123---
124
125## Cross-Skill Integration
126
127| Need | Delegate to | Reason |
128|---|---|---|
129| Apex controller or service | [platform-apex-generate](../platform-apex-generate/SKILL.md) | backend logic |
130| embed in Flow screens | [automation-flow-generate](../automation-flow-generate/SKILL.md) | declarative orchestration |
131| deploy component bundle | [platform-metadata-deploy](../platform-metadata-deploy/SKILL.md) | org rollout |
132| create supporting metadata (message channels, objects) | [platform-metadata-deploy](../platform-metadata-deploy/SKILL.md) | metadata deployment |
133
134---
135
136## Reference File Index
137
138### Start here
139- [references/component-patterns.md](references/component-patterns.md) — component architecture patterns and bundle design
140- [references/slds-design-guide.md](references/slds-design-guide.md) — SLDS 2 styling, dark mode, CSS hooks
141- [references/lwc-best-practices.md](references/lwc-best-practices.md) — high-signal rules and anti-patterns
142- [references/scoring-and-testing.md](references/scoring-and-testing.md) — 165-point scoring rubric across 8 categories
143- [references/jest-testing.md](references/jest-testing.md) — Jest unit test patterns and async rendering helpers
144- [references/slds-blueprints.json](references/slds-blueprints.json) — machine-readable SLDS component blueprints
145- [references/cli-commands.md](references/cli-commands.md) — SF CLI commands for LWC development
146
147### Accessibility / performance / state
148- [references/accessibility-guide.md](references/accessibility-guide.md) — WCAG, ARIA, keyboard navigation patterns
149- [references/performance-guide.md](references/performance-guide.md) — lazy loading, debouncing, rerender safety
150- [references/state-management.md](references/state-management.md) — reactive state patterns and LMS
151- [references/template-anti-patterns.md](references/template-anti-patterns.md) — common HTML template mistakes to avoid
152
153### Integration / advanced features
154- [references/lms-guide.md](references/lms-guide.md) — Lightning Message Service patterns
155- [references/flow-integration-guide.md](references/flow-integration-guide.md) — Flow screen component design
156- [references/advanced-features.md](references/advanced-features.md) — Spring '26 features: TypeScript, lwc:on, GraphQL mutations
157- [references/async-notification-patterns.md](references/async-notification-patterns.md) — toast, notifications, async flows
158- [references/triangle-pattern.md](references/triangle-pattern.md) — parent-child-sibling communication triangle
159
160### Asset templates
161- [assets/basic-component/basicComponent.js](assets/basic-component/basicComponent.js) — wire service, error/loading states, event dispatching
162- [assets/datatable-component/datatableComponent.js](assets/datatable-component/datatableComponent.js) — datatable with inline editing
163- [assets/flow-screen-component/flowScreenComponent.js](assets/flow-screen-component/flowScreenComponent.js) — Flow screen with input/output properties
164- [assets/form-component/formComponent.js](assets/form-component/formComponent.js) — form validation and DML patterns
165- [assets/graphql-component/graphqlComponent.js](assets/graphql-component/graphqlComponent.js) — GraphQL wire adapter with cursor-based pagination
166- [assets/jest-test/componentName.test.js.example](assets/jest-test/componentName.test.js.example) — Jest test template (copy and rename, remove `.example` suffix)
167- [assets/message-channel/lmsPublisher.js](assets/message-channel/lmsPublisher.js) — LMS publisher pattern
168- [assets/message-channel/lmsSubscriber.js](assets/message-channel/lmsSubscriber.js) — LMS subscriber pattern
169- [assets/modal-component/modalComponent.js](assets/modal-component/modalComponent.js) — modal with focus trap and ESC handling
170- [assets/record-picker/recordPicker.js](assets/record-picker/recordPicker.js) — record picker with search
171- [assets/state-store/store.js](assets/state-store/store.js) — reactive state store for cross-component state
172- [assets/typescript-component/typescriptComponent.ts](assets/typescript-component/typescriptComponent.ts) — TypeScript-enabled component (Spring '26)
173- [assets/workspace-api/workspaceComponent.js](assets/workspace-api/workspaceComponent.js) — workspace API for tab and focus management
174- [assets/apex-controller/LwcController.cls](assets/apex-controller/LwcController.cls) — Apex controller with `@AuraEnabled(cacheable=true)` patterns
175
176### Scripts
177- [scripts/local-dev-preview.sh](scripts/local-dev-preview.sh) — local dev server commands for component, app, and site preview
178
179---
180
181## Score Guide
182
183| Score | Meaning |
184|---|---|
185| 150+ | production-ready LWC bundle |
186| 125–149 | strong component with minor polish left |
187| 100–124 | functional but review recommended |
188| < 100 | needs significant improvement |