Skip to main content
skill CX Codex

experience-lwc-generate — Claude Code skill: Lightning Web Components

A skill for building Lightning Web Components: bundles, wire service patterns, SLDS 2 styling and Jest tests. Useful whenever you touch files under lwc/.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add forcedotcom/sf-skills --skill experience-lwc-generate -a claude-code
Open on GitHub

What experience-lwc-generate does

The skill works through the PICKLES mindset: prototype first, pick the right data source, define component boundaries, settle the interaction model, lean on platform libraries, then optimise and lock down security. Data access is mapped to concrete patterns — LDS getRecord for a single record, base record form components for simple CRUD, Apex with @AuraEnabled(cacheable=true) for heavy server queries, the GraphQL wire adapter for related graph data, Lightning Message Service for cross-DOM communication.

Ready-made assets cover basic bundles, datatables, modal patterns, Flow screen components, GraphQL components, LMS channels, Jest tests and TypeScript-enabled components. A local dev server ships with it: the commands in scripts/local-dev-preview.sh start a preview with hot reload, so edits to .js, .html and .css show up instantly. Dependencies install just-in-time on the first run, and an active org connection is required for data and Apex callouts.

Frontend quality is checked against a 165-point rubric across 8 categories, with separate guides for accessibility, performance and state management. The skill stays out of Apex classes, Aura components and Visualforce — controllers and metadata deploys are handed to other skills. It expects node 18.0.0 or newer, npm and npx 9.0.0 or newer, python3 3.9.0 or newer, and sf 2.0.0 or newer.

What it helps with

  • scaffold an LWC bundle from scratch
  • pick between LDS, Apex and GraphQL for reads
  • write a Jest test with async rendering helpers
  • move styling onto SLDS 2 hooks and dark mode
  • score a component against the 165-point rubric

Example prompts for the agent

  • Create an LWC component with a datatable wired to Apex
  • Rewrite this component's styles for SLDS 2 and dark mode
  • Write Jest tests for lwc/orderList/orderList.js

How to install experience-lwc-generate

1Skills CLI (Vercel)

npx skills add forcedotcom/sf-skills --skill experience-lwc-generate -a claude-code

2Manually: put the files in place

~/.claude/skills/experience-lwc-generate/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/experience-lwc-generate/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about experience-lwc-generate

How do I install experience-lwc-generate in Claude?

Run npx skills add forcedotcom/sf-skills --skill experience-lwc-generate -a claude-code. The skill lands in ~/.claude/skills/experience-lwc-generate/SKILL.md.

What does experience-lwc-generate do?

It helps you create and edit Lightning Web Components: bundles, wire service patterns, Apex and GraphQL integration, SLDS 2 styling, accessibility and Jest tests.

When does the skill not trigger?

It skips Apex classes, Aura components and Visualforce. Apex controllers belong to platform-apex-generate, metadata deploys to platform-metadata-deploy.

Source text

SKILL.md · Apache-2.0
---
name: experience-lwc-generate
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."
metadata:
  version: "1.1"
  domains: ["Experience"]
  minApiVersion: "66.0"
  relatedSkills:
    - "agentforce-generate"
    - "automation-flow-generate"
    - "integration-connectivity-generate"
    - "platform-apex-generate"
    - "platform-apex-test-run"
    - "platform-metadata-deploy"
  cliTools:
    - tool: ["node"]
      semver: ">=18.0.0"
    - tool: ["npm"]
      semver: ">=9.0.0"
    - tool: ["npx"]
      semver: ">=9.0.0"
    - tool: ["python3"]
      semver: ">=3.9.0"
    - tool: ["sf"]
      semver: ">=2.0.0"
---

# 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:
- writing Apex controllers or business logic first → [platform-apex-generate](../platform-apex-generate/SKILL.md)
- building Flow XML rather than an LWC screen component → [automation-flow-generate](../automation-flow-generate/SKILL.md)
- deploying metadata → [platform-metadata-deploy](../platform-metadata-deploy/SKILL.md)

---

## 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:
- [platform-apex-generate](../platform-apex-generate/SKILL.md) for controllers / services
- [platform-metadata-deploy](../platform-metadata-deploy/SKILL.md) for deployment
- [platform-apex-test-run](../platform-apex-test-run/SKILL.md) only for Apex-side test loops, not Jest

---

## 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:
1. **Component(s) created or updated**
2. **Data access pattern chosen**
3. **Files changed**
4. **Accessibility / styling / testing notes**
5. **Next implementation or deploy step**

Suggested shape:

```text
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

| Need | Delegate to | Reason |
|---|---|---|
| Apex controller or service | [platform-apex-generate](../platform-apex-generate/SKILL.md) | backend logic |
| embed in Flow screens | [automation-flow-generate](../automation-flow-generate/SKILL.md) | declarative orchestration |
| deploy component bundle | [platform-metadata-deploy](../platform-metadata-deploy/SKILL.md) | org rollout |
| create supporting metadata (message channels, objects) | [platform-metadata-deploy](../platform-metadata-deploy/SKILL.md) | metadata deployment |

---

## Reference File Index

### Start here
- [references/component-patterns.md](references/component-patterns.md) — component architecture patterns and bundle design
- [references/slds-design-guide.md](references/slds-design-guide.md) — SLDS 2 styling, dark mode, CSS hooks
- [references/lwc-best-practices.md](references/lwc-best-practices.md) — high-signal rules and anti-patterns
- [references/scoring-and-testing.md](references/scoring-and-testing.md) — 165-point scoring rubric across 8 categories
- [references/jest-testing.md](references/jest-testing.md) — Jest unit test patterns and async rendering helpers
- [references/slds-blueprints.json](references/slds-blueprints.json) — machine-readable SLDS component blueprints
- [references/cli-commands.md](references/cli-commands.md) — SF CLI commands for LWC development

### Accessibility / performance / state
- [references/accessibility-guide.md](references/accessibility-guide.md) — WCAG, ARIA, keyboard navigation patterns
- [references/performance-guide.md](references/performance-guide.md) — lazy loading, debouncing, rerender safety
- [references/state-management.md](references/state-management.md) — reactive state patterns and LMS
- [references/template-anti-patterns.md](references/template-anti-patterns.md) — common HTML template mistakes to avoid

### Integration / advanced features
- [references/lms-guide.md](references/lms-guide.md) — Lightning Message Service patterns
- [references/flow-integration-guide.md](references/flow-integration-guide.md) — Flow screen component design
- [references/advanced-features.md](references/advanced-features.md) — Spring '26 features: TypeScript, lwc:on, GraphQL mutations
- [references/async-notification-patterns.md](references/async-notification-patterns.md) — toast, notifications, async flows
- [references/triangle-pattern.md](references/triangle-pattern.md) — parent-child-sibling communication triangle

### Asset templates
- [assets/basic-component/basicComponent.js](assets/basic-component/basicComponent.js) — wire service, error/loading states, event dispatching
- [assets/datatable-component/datatableComponent.js](assets/datatable-component/datatableComponent.js) — datatable with inline editing
- [assets/flow-screen-component/flowScreenComponent.js](assets/flow-screen-component/flowScreenComponent.js) — Flow screen with input/output properties
- [assets/form-component/formComponent.js](assets/form-component/formComponent.js) — form validation and DML patterns
- [assets/graphql-component/graphqlComponent.js](assets/graphql-component/graphqlComponent.js) — GraphQL wire adapter with cursor-based pagination
- [assets/jest-test/componentName.test.js.example](assets/jest-test/componentName.test.js.example) — Jest test template (copy and rename, remove `.example` suffix)
- [assets/message-channel/lmsPublisher.js](assets/message-channel/lmsPublisher.js) — LMS publisher pattern
- [assets/message-channel/lmsSubscriber.js](assets/message-channel/lmsSubscriber.js) — LMS subscriber pattern
- [assets/modal-component/modalComponent.js](assets/modal-component/modalComponent.js) — modal with focus trap and ESC handling
- [assets/record-picker/recordPicker.js](assets/record-picker/recordPicker.js) — record picker with search
- [assets/state-store/store.js](assets/state-store/store.js) — reactive state store for cross-component state
- [assets/typescript-component/typescriptComponent.ts](assets/typescript-component/typescriptComponent.ts) — TypeScript-enabled component (Spring '26)
- [assets/workspace-api/workspaceComponent.js](assets/workspace-api/workspaceComponent.js) — workspace API for tab and focus management
- [assets/apex-controller/LwcController.cls](assets/apex-controller/LwcController.cls) — Apex controller with `@AuraEnabled(cacheable=true)` patterns

### Scripts
- [scripts/local-dev-preview.sh](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 |

© forcedotcom · Apache-2.0 · forcedotcom/sf-skills

Similar skills

Everything for Frontend and UI →

From the same set167

dx-code-analyzer-run Runs Salesforce Code Analyzer over your project and works through the results: engines, categories, severities, auto-fixes. Useful ahead of an AppExchange review. CX Codex +1 6,400installs automation-flow-generate Turns a plain-language request into Salesforce Flow metadata and returns the XML. Useful when describing an automation beats dragging elements in a builder. CX Codex +1 6,300installs platform-validation-rule-generate A skill for building and editing Salesforce validation rules: it assembles the metadata, the formula and the error message. Useful when bad records must not be saved. CX Codex +1 6,100installs platform-data-manage Salesforce data operations skill for sf CLI and anonymous Apex. It creates test datasets, runs bulk imports, and cleans up records across scratch orgs and sandboxes. CX Codex +1 6,100installs platform-sharing-rules-generate A skill for Salesforce record-level access: creates, edits and deletes Sharing Rules metadata through sf. Useful when sharing rules are managed from the editor, not the UI. CX Codex +1 6,000installs platform-flexipage-generate Builds and validates Salesforce Lightning FlexiPages using CLI scaffolding. It prevents XML structure errors when editing RecordPage, AppPage, and HomePage layouts. CX Codex +1 6,000installs design-systems-slds-apply A skill that teaches the agent to build Salesforce Lightning Design System interfaces: blueprints, styling hooks, utility classes and icons. CX Codex +1 6,000installs platform-metadata-api-context-get Hands the agent the exact schema for 604 Salesforce Metadata API types so generated -meta.xml files deploy cleanly. CX Codex +1 6,000installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor