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