/experience-lwc-base-components-integrate
Pick the right Lightning Base Component (`lightning-*`) for a given UI task, retrieve its full API (props, methods, events, slots) from the bundled per-component reference, and wire it into an LWC (LWC `.html`, `.js`, and `.css` files) without breaking SLDS. Use this skill when
$ npx -y skills add forcedotcom/sf-skills --skill experience-lwc-base-components-integrate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/experience-lwc-base-components-integrate
Context preview
The summary Claude sees to decide when to auto-load this skill.
Pick the right Lightning Base Component (`lightning-*`) for a given UI task, retrieve its full API (props, methods, events, slots) from the bundled per-component reference, and wire it into an LWC (LWC `.html`, `.js`, and `.css` files) without breaking SLDS. Use this skill when
SKILL.md
experience-lwc-base-components-integrate.SKILL.mdname: experience-lwc-base-components-integrate
description: "Pick the right Lightning Base Component (`lightning-*`) for a given UI task, retrieve its full API (props, methods, events, slots) from the bundled per-component reference, and wire it into an LWC (LWC `.html`, `.js`, and `.css` files) without breaking SLDS. Use this skill when users say \"I need a Lightning modal / datatable / combobox / record form\", ask which `lightning-*` component fits a use case, want a shortlist of LBC candidates, are about to hand-roll a UI that a base component already provides, or are editing an LWC bundle's `.html` / `.js` / `.css` and need to select or wire a base component. Also triggers on \"Lightning base component\", \"LBC\", \"lightning-combobox\", \"lightning-datatable\", \"use `lightning-` tag\". DO NOT TRIGGER for applying SLDS design tokens, blueprints, or styling guidance in general — that is `design-systems-slds-apply`; this skill only selects and wires `lightning-*` base components."
metadata:
version: "1.0"
relatedSkills:
- design-systems-slds-apply<!-- adk-managed-skill -->
Using Lightning Base Components
Lightning Base Components (LBC) are the `lightning-*` web components shipped by Salesforce. This skill routes an agent through the right decision sequence so the final component choice is **as specific as possible** and backed by real API docs — not a hand-rolled reimplementation of something that already exists.
When to Use This Skill
- User describes a UI need ("searchable dropdown", "record edit form",
"modal with footer") and asks which `lightning-*` component fits.
- User is about to build a primitive (button group, combobox, toast) and
should be using LBC instead.
- User asks you to review LWC markup for LBC-related issues — specifically
overriding SLDS classes or restyling LBC internals.
- User needs the authoritative props/events/slots for a specific
`lightning-*` tag.
Prerequisites
- Knowledge of which LBC namespace your org uses (`lightning` is the default
public namespace; some platforms expose `lightning-community` or others — the user's meta files will clarify).
- The skill ships authoritative API docs for every Lightning Base Component
in [references/lightning-components.md](references/lightning-components.md). Each component is a `# Component API Structure` block; grep for `**Name:** <camelCaseName>` (e.g. `**Name:** datatable`) to jump to its Properties / Methods / Events / Slots. Read this rather than relying on cached knowledge — LBC evolves and the reference is the source of truth.
Workflow
Step 1 — Read the **entire** component index first
Open [lightning-component-index.md](references/lightning-component-index.md) and scan **all** entries before making any selection. This is non-negotiable: LBC's value comes from picking the most specialized component, and skipping the scan leads to reinventing compound widgets out of primitives.
As you scan, compile a **candidate list** — every component whose description touches any aspect of the use case. Do not filter or rank yet.
Step 2 — Narrow to the most specific fit per feature
Once the scan is complete:
- For each feature in the use case, select the **most specific** component
that covers it. Prefer a specialized compound (`lightning-record-form`, `lightning-tabset`, `lightning-datatable`) over a generic primitive (`lightning-input`, `lightning-button`) when the specialized one covers the scenario end-to-end.
- Avoid duplication: if `lightning-record-form` already renders fields for a
record, do not pair it with `lightning-input-field` unless you're explicitly overriding behavior.
Step 3 — Share the shortlist and confirm
Present the final shortlist to the developer with a one-line rationale per component. Wait for explicit confirmation before pulling full API docs. This prevents the agent from burning context on components the developer has already mentally ruled out.
Step 4 — Retrieve full API docs
Once confirmed, use the bundled helper to pull the exact API blocks — this avoids ad-hoc grepping across a large reference:
scripts/extract-component-docs.sh <camelCaseName> [<camelCaseName>...]
Convert `lightning-<foo>` tags to camelCase (no `lightning-` prefix):
- `lightning-datatable` → `datatable`
- `lightning-record-edit-form` → `recordEditForm`
- `lightning-button-icon` → `buttonIcon`
Each returned block has the same shape: **Basic Information** (tag, namespace, type), **Properties** (name, type, default, description), **Methods**, **Events**, **Slots**, and (where applicable) usage notes. This skill is about **picking** the components; the bundled reference is about **wiring** them.
Step 5 — Produce integration guidance
Using the per-component reference, walk the developer through:
- The exact `<lightning-...>` tag and required attributes.
- Which events to bind (`onchange`, `oncommit`, `onsuccess`, …) and what
the event payload contains.
- Any slots to fill (headers, footers, custom content).
- Known constraints from the component docs (e.g. `lightning-record-form`
requires `object-api-name` and `record-id` for edit/view modes).
Step 6 — Respect LBC styling rules
Do not override SLDS classes on LBC internals. See [lbc-expert-guidance.md](references/lbc-expert-guidance.md) for specifics. Common issues:
- Targeting `.slds-button` or `.slds-input` in the host component's CSS to
restyle an LBC — LBC ships inside a shadow root, so these selectors either leak into sibling components or get stripped entirely. Use the component's documented styling hooks (`--sds-c-button-*`, etc.) instead.
- Wrapping an LBC just to mutate its internal markup. You can't — the
markup is hidden behind the shadow root. If the component doesn't expose the slot/prop you need, that's a platform-level gap, not a restyling job.
Examples
Example — "I need a multi-select combobox with typeahead"
1. Scan
Read more
name: experience-lwc-base-components-integrate
description: "Pick the right Lightning Base Component (`lightning-*`) for a given UI task, retrieve its full API (props, methods, events, slots) from the bundled per-component reference, and wire it into an LWC (LWC `.html`, `.js`, and `.css` files) without breaking SLDS. Use this skill when users say \"I need a Lightning modal / datatable / combobox / record form\", ask which `lightning-*` component fits a use case, want a shortlist of LBC candidates, are about to hand-roll a UI that a base component already provides, or are editing an LWC bundle's `.html` / `.js` / `.css` and need to select or wire a base component. Also triggers on \"Lightning base component\", \"LBC\", \"lightning-combobox\", \"lightning-datatable\", \"use `lightning-` tag\". DO NOT TRIGGER for applying SLDS design tokens, blueprints, or styling guidance in general — that is `design-systems-slds-apply`; this skill only selects and wires `lightning-*` base components."
metadata:
version: "1.0"
relatedSkills:
- design-systems-slds-apply<!-- adk-managed-skill -->
Using Lightning Base Components
Lightning Base Components (LBC) are the `lightning-*` web components shipped by Salesforce. This skill routes an agent through the right decision sequence so the final component choice is **as specific as possible** and backed by real API docs — not a hand-rolled reimplementation of something that already exists.
When to Use This Skill
- User describes a UI need ("searchable dropdown", "record edit form",
"modal with footer") and asks which `lightning-*` component fits.
- User is about to build a primitive (button group, combobox, toast) and
should be using LBC instead.
- User asks you to review LWC markup for LBC-related issues — specifically
overriding SLDS classes or restyling LBC internals.
- User needs the authoritative props/events/slots for a specific
`lightning-*` tag.
Prerequisites
- Knowledge of which LBC namespace your org uses (`lightning` is the default
public namespace; some platforms expose `lightning-community` or others — the user's meta files will clarify).
- The skill ships authoritative API docs for every Lightning Base Component
in [references/lightning-components.md](references/lightning-components.md). Each component is a `# Component API Structure` block; grep for `**Name:** <camelCaseName>` (e.g. `**Name:** datatable`) to jump to its Properties / Methods / Events / Slots. Read this rather than relying on cached knowledge — LBC evolves and the reference is the source of truth.
Workflow
Step 1 — Read the **entire** component index first
Open [lightning-component-index.md](references/lightning-component-index.md) and scan **all** entries before making any selection. This is non-negotiable: LBC's value comes from picking the most specialized component, and skipping the scan leads to reinventing compound widgets out of primitives.
As you scan, compile a **candidate list** — every component whose description touches any aspect of the use case. Do not filter or rank yet.
Step 2 — Narrow to the most specific fit per feature
Once the scan is complete:
- For each feature in the use case, select the **most specific** component
that covers it. Prefer a specialized compound (`lightning-record-form`, `lightning-tabset`, `lightning-datatable`) over a generic primitive (`lightning-input`, `lightning-button`) when the specialized one covers the scenario end-to-end.
- Avoid duplication: if `lightning-record-form` already renders fields for a
record, do not pair it with `lightning-input-field` unless you're explicitly overriding behavior.
Step 3 — Share the shortlist and confirm
Present the final shortlist to the developer with a one-line rationale per component. Wait for explicit confirmation before pulling full API docs. This prevents the agent from burning context on components the developer has already mentally ruled out.
Step 4 — Retrieve full API docs
Once confirmed, use the bundled helper to pull the exact API blocks — this avoids ad-hoc grepping across a large reference:
scripts/extract-component-docs.sh <camelCaseName> [<camelCaseName>...]
Convert `lightning-<foo>` tags to camelCase (no `lightning-` prefix):
- `lightning-datatable` → `datatable`
- `lightning-record-edit-form` → `recordEditForm`
- `lightning-button-icon` → `buttonIcon`
Each returned block has the same shape: **Basic Information** (tag, namespace, type), **Properties** (name, type, default, description), **Methods**, **Events**, **Slots**, and (where applicable) usage notes. This skill is about **picking** the components; the bundled reference is about **wiring** them.
Step 5 — Produce integration guidance
Using the per-component reference, walk the developer through:
- The exact `<lightning-...>` tag and required attributes.
- Which events to bind (`onchange`, `oncommit`, `onsuccess`, …) and what
the event payload contains.
- Any slots to fill (headers, footers, custom content).
- Known constraints from the component docs (e.g. `lightning-record-form`
requires `object-api-name` and `record-id` for edit/view modes).
Step 6 — Respect LBC styling rules
Do not override SLDS classes on LBC internals. See [lbc-expert-guidance.md](references/lbc-expert-guidance.md) for specifics. Common issues:
- Targeting `.slds-button` or `.slds-input` in the host component's CSS to
restyle an LBC — LBC ships inside a shadow root, so these selectors either leak into sibling components or get stripped entirely. Use the component's documented styling hooks (`--sds-c-button-*`, etc.) instead.
- Wrapping an LBC just to mutate its internal markup. You can't — the
markup is hidden behind the shadow root. If the component doesn't expose the slot/prop you need, that's a platform-level gap, not a restyling job.
Examples
Example — "I need a multi-select combobox with typeahead"
1. Scan
This repository provides a curated collection of Salesforce agent skills for building applications.
Repo: forcedotcom/sf-skills
Other skills on sf-skills.
- /agentforce-generate
Build, modify, optimize, debug, and deploy agents with Agentforce Agent Script. TRIGGER when: user creates, modifies, optimizes, or asks about .agent files or aiAuthoringBundle metadata; changes agent behavior, responses, or conversation logic; designs agent actions, tools,
Open skill - /agentforce-observe
Analyze production Agentforce agent behavior using session traces and Data Cloud. TRIGGER when: user queries STDM session data or Data Cloud trace records; investigates production agent failures, regressions, or performance issues; asks about session traces, conversation logs,
Open skill - /agentforce-test
Write, run, and analyze structured test suites for Agentforce agents — functional AND security. TRIGGER when: user writes or modifies test spec YAML (AiEvaluationDefinition); runs sf agent test create, run, run-eval, or results commands; asks about test coverage strategy, metric
Open skill - /automation-flow-generate
Generate Salesforce Flows using the MCP tool execute_metadata_action. Use when the user asks to create, build, or generate a flow — including Screen, Autolaunched, Record-Triggered (before/after-save), Scheduled. Also trigger for flow-like requests such as \"when a record is
Open skill - /dx-code-analyzer-configure
Set up, configure, and troubleshoot Salesforce Code Analyzer for any project. Handles installation, prerequisite checks, diagnosing broken setups, creating and editing code-analyzer.yml overrides, engine-specific settings, ignore patterns, severity overrides, and CI/CD pipeline
Open skill - /dx-code-analyzer-custom-rule-create
Create custom Code Analyzer rules for Regex (pattern matching), PMD (XPath/AST for Apex and metadata XML), and ESLint (LWC/JavaScript/TypeScript). Use when users want to enforce coding standards, ban patterns, detect hardcoded values, govern metadata, or add rules not in the
Open skill

