
experience-lds-data-requirements-generate
Use when a Lightning Web Component data need is described in ambiguous natural language — turn "get contact info" or "show account data" into a clear, PRD-ready data-requirements spec. TRIGGER when the user says "define data requirements for this LWC", "turn this PRD data section into validated object/field names", "recommend GraphQL vs UIAPI for this data need", "validate these Salesforce API names", or "spec out the LDS adapter for this component", or references LWC bundle files (.js, .js-meta.xml) whose data layer is not yet specified. DO NOT TRIGGER when the data layer is already fully specified, when authoring the actual query or adapter code from a known spec, or when implementing an LWC end-to-end (use experience-lwc-generate).
- Installs
- 2.6K
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/forcedotcom/sf-skills --skill experience-lds-data-requirements-generate- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads experience-lds-data-requirements-generate automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Generating LDS Data Requirements
Run a three-stage analyst workflow — requirements clarification, API name validation, API recommendation — so a downstream developer can implement a Lightning Data Service (LDS) solution without guessing.
When to Use
- A PRD, Figma comment, or user ask mentions Salesforce data but objects/fields/operations are vague ("show customer info", "update the record", "list upcoming gigs").
- Before writing any
@wire/Apex code for a new data need, or before handing the recommendation to a downstream implementation workflow. - You inherited TODOs like
// TODO: fetch related recordsand need to turn them into precise specs.
Do NOT use this skill when:
- The data need is already fully specified (object API name, field API names, operation type, scope).
- The component does not touch Salesforce data at all (UI-only, external REST, local state).
Prerequisites
- The natural-language requirement (PRD snippet, user ask, or TODO comment).
- Access to the target org's Setup → Object Manager for confirming custom object/field API names.
- Awareness of the current GraphQL / UI API / Apex priority order (top-of-funnel is GraphQL when it can serve the read).
Knowledge Bases
- references/requirements-analysis.md — Requirements Analysis Mode framework.
- references/api-name-validation.md — Precision Mode for object/field API names.
- references/api-recommendation.md — GraphQL → UI API → Apex decision framework.
- references/lds-expert.md — overall LDS patterns and pitfalls.
- references/lds-data-consistency.md — cache and consistency guarantees.
- references/lds-referential-integrity.md — parent/child and related-record rules.
Workflow
Run the three steps strictly in order. Do not skip a step unless the caller has already confirmed its output.
Step 1 — Parse data requirement (Requirements Analysis Mode)
Goal: extract everything you know and surface every uncertainty before moving on.
Open every conversation with:
"I've analyzed your data requirement: '<REQ>'. Here's what I understand and what I need clarification on…"
Apply the four actions from references/requirements-analysis.md:
- Operation type — Is it read, create, update, or delete? Ambiguous verbs trigger an immediate clarifying question. Confirm with: "I've identified this as a <OP> operation. Is this correct?"
- Data entity identification — Standard object (high confidence, proceed), suspected custom object (ask: "Is this a custom object
<Term>__c? What's the exact API name?"), or unknown (ask for the API name from Object Manager). - Field specification — Map generic references (
phone,address,name,status) to specific API names. If multiple candidates exist, enumerate them and ask. - Scope and context — One record vs. many; user-triggered vs. auto; expected volume; real-time vs. on-demand.
End-of-step gate. Consolidate into:
Clear Requirements: [confirmed facts]
Need Clarification: [numbered questions from 1.1–1.4]
Proceed only when every question is answered with ≥90% confidence.
Step 2 — Validate Salesforce API names (Precision Mode)
Goal: 100% accuracy on every object and field API name before code is written.
Apply the validation framework from references/api-name-validation.md:
- Standard objects —
Account,Contact,Lead,Opportunity,Case,User,Task,Event,Product2,Pricebook2,Order,OrderItem,Asset,Contract,Campaignpass immediately. Anything else triggers verification. - Custom objects — Never assume
__csuffixes. Ask: "Is this<Term>__cor a different custom object API name?" Point users to Setup → Object Manager → <Object> → Details → API Name. - Standard fields — Map ambiguous references using the tables in the reference file.
- Custom fields — Require
__csuffix confirmation; case-sensitive.
Confirmation template:
Object API Name: <OBJECT>
Field API Names: <FIELD_LIST>
Confidence Level: 100% validated
If any uncertainty remains, stop. Emit the outstanding verification requests and the Setup navigation instructions. Do not advance to Step 3 or generate code.
Skip this step only when the caller has explicitly stated that API names are already validated upstream, or the requirement does not involve records at all. Record the skip reason in the Step 4 output.
Step 3 — Recommend the API (Solution Architecture Mode)
Goal: pick the right data access API using the decision framework in references/api-recommendation.md.
Priority order (non-negotiable):
- GraphQL wire adapter (
lightning/graphql) — top choice for reads it can serve. - UI API / LDS — CRUD writes, metadata, layouts, picklists, simple reads.
- Apex — fallback only.
Walk the six decision sub-steps:
- Operation type (read / write / mixed).
- Object & field support in UI API.
- Relationship complexity (single vs. multi-object, parent/child).
- Query complexity (filtering, sorting, pagination, aggregation).
- Performance & scalability (round trips, payload size).
- Specialized needs (metadata, atomic transactions, business logic, elevated permissions).
Recommendation rules:
- GraphQL when read-only on supported objects; multi-object joins; pagination/sort/filter; aggregation; minimizing round trips.
- UI API when CRUD writes, metadata (picklists, layouts, object info),
getRecordCreateDefaults+createRecord, list views. - Apex when UI API doesn't support the object/field; multi-record atomic transactions; custom business logic; system-context permissions.
Present with the "Show Your Work" template — explicitly explain why not GraphQL / why not UI API / why not Apex.
Hand-off:
- GraphQL recommended → document the query shape (root object, requested fields, filters) in the Step 4 output; downstream authoring of the actual
lightning/graphqlwire adapter is the caller's next step. - UI API recommended → document the specific UI API adapter (
getRecord,getRelatedListRecords,createRecord,updateRecord,getRecordCreateDefaults, etc.) and any layout/picklist prerequisites. - Apex recommended → document the reason in the Step 4 output and hand off to the project's Apex workflow of record.
Step 4 — Emit the PRD-ready specification
Produce a single block the caller can paste into a PRD or component file header:
## Data Requirement: <CLEAR_TITLE>
### Technical Specification
- Primary Object: <OBJECT_API_NAME>
- Required Fields: <FIELD_API_NAMES>
- Relationships: <RELATED_OBJECTS_OR_LOOKUPS_OR_NONE>
- Data Scope: <SINGLE_RECORD | MULTIPLE_RECORDS | QUERY_BASED>
- Access Pattern: <READ_ONLY | READ_WRITE | WRITE_ONLY>
- Trigger: <USER_ACTION | AUTO_ON_LOAD | REACTIVE>
### Implementation Details
- Recommended LDS API: <GRAPHQL | UI_API | APEX>
- Implementation Pattern: <WIRE | IMPERATIVE>
- Rationale: <WHY THIS API, NOT THE OTHERS>
- Next step: <author the GraphQL wire adapter | author the UI API adapter call | project's Apex workflow>
Few-Shot Patterns
| Vague ask | Clarifying question |
|---|---|
| "get contact info" | "Which Contact fields specifically? (Email, Phone, MailingAddress, Department, …)" |
| "show account data" | "Which Account fields do you need? And are we showing one record or a list?" |
| "custom gym records" | "Is this a custom object Gym__c? What specific fields are you looking for?" |
| "update the record" | "Which object? Which fields? Which record (ID at runtime)?" |
| "all customer information" | "Account or Contact? Which fields? Single record or query?" |
Verification Checklist
- Every ambiguous term from the original requirement resolved to a confirmed API name.
- Operation type confirmed (R / C / U / D).
- Scope (single vs. many) and trigger (user vs. auto) documented.
- API recommendation justified against all three options (GraphQL / UI API / Apex).
- Concrete next action named — either the specific downstream adapter to wire (
lightning/graphql,getRecord,createRecord, etc.) or the project's Apex workflow of record. - If Step 2 was skipped, the reason is recorded in the output.
- Specification block copy-pasteable into the PRD.
Cross-References
- Skills:
- Output is consumed by
experience-lwc-generatewhen wiring@wireadapters into a component.
- Output is consumed by
- Downstream authoring steps (not skill-bound today):
- GraphQL path — the caller writes the
lightning/graphqlwire adapter using the schema pulled from the target org. - UI API path — the caller wires the recommended UI API adapter (
getRecord,createRecord, etc.).
- GraphQL path — the caller writes the
FAQ
What does the experience-lds-data-requirements-generate skill do?
Use when a Lightning Web Component data need is described in ambiguous natural language — turn "get contact info" or "show account data" into a clear, PRD-ready data-requirements spec. TRIGGER when the user says "define data requirements for this LWC", "turn this PRD data section into validated object/field names", "recommend GraphQL vs UIAPI for this data need", "validate these Salesforce API names", or "spec out the LDS adapter for this component", or references LWC bundle files (.js, .js-meta.xml) whose data layer is not yet specified. DO NOT TRIGGER when the data layer is already fully specified, when authoring the actual query or adapter code from a known spec, or when implementing an LWC end-to-end (use experience-lwc-generate).
How do I install experience-lds-data-requirements-generate?
Run npx skills add https://github.com/forcedotcom/sf-skills --skill experience-lds-data-requirements-generate in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/experience-lds-data-requirements-generate/ (personal) or .claude/skills/experience-lds-data-requirements-generate/ (project).
Which AI agents can use experience-lds-data-requirements-generate?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is experience-lds-data-requirements-generate safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains experience-lds-data-requirements-generate?
It is published by forcedotcom in forcedotcom/sf-skills. It has 2,639 recorded installs.
More from forcedotcom/sf-skills
platform-apex-generate
forcedotcom/sf-skills
Primary Apex authoring skill for class generation, refactoring, and review. ALWAYS ACTIVATE when the user mentions Apex, .cls, triggers, or asks to create/refactor a class (service, selector, domain, batch, queueable, schedulable, invocable, DTO, utility, interface, abstract, exception, REST resource). Use this skill for requests involving SObject CRUD, mapping collections, fetching related records, scheduled jobs, batch jobs, trigger design, @AuraEnabled controllers, @RestResource endpoints, custom REST APIs, or code review of existing Apex.
platform-apex-test-generate
forcedotcom/sf-skills
Use to generate and validate Apex test classes with TestDataFactory patterns, bulk testing (251+ records), mocking, assertions, and disciplined test-fix loops. Use when creating Apex test classes (for triggers, services, controllers, batch jobs, queueables, and callouts), improving coverage, debugging or fixing failing Apex tests, or running test/coverage analysis. Triggers on Test.cls files, sf apex run test, coverage reports. Do NOT trigger for production Apex (use platform-apex-generate) or Jest/LWC tests.
platform-apex-test-run
forcedotcom/sf-skills
Apex test execution, coverage analysis, and test-fix loops with 120-point scoring. Use when the user runs Apex tests, checks code coverage, fixes failing tests, or touches Test.cls / Test.cls files. DO NOT TRIGGER when writing Apex production code (use platform-apex-generate), Agentforce agent testing (use agentforce-test), or Jest/LWC tests (use experience-lwc-generate).
platform-apex-logs-debug
forcedotcom/sf-skills
Salesforce debug log analysis and troubleshooting with 100-point scoring. TRIGGER when: user analyzes debug logs, hits governor limits, reads stack traces, or touches .log files from Salesforce orgs. DO NOT TRIGGER when: running Apex tests (use platform-apex-test-run), generating or fixing Apex code (use platform-apex-generate), or Agentforce session tracing (use agentforce-observe).
platform-soql-query
forcedotcom/sf-skills
Use when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan/selectivity analysis, and performance or safety improvements. TRIGGER when the user writes, optimizes, or debugs SOQL/SOSL, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER for bulk data operations (use platform-data-manage), Apex DML logic (use platform-apex-generate), or report/dashboard queries.
platform-metadata-deploy
forcedotcom/sf-skills
Salesforce DevOps automation using sf CLI v2. TRIGGER when: user deploys metadata, validates a deploy or does a dry-run, deploys to a Production org, quick-deploys a validated job ID, ships/promotes to prod, creates/manages scratch orgs or sandboxes, sets up CI/CD pipelines, or troubleshoots deployment errors with sf project deploy. DO NOT TRIGGER when: writing Apex code, building LWC components (use experience-lwc-generate), creating metadata definitions (use platform-custom-object-generate), deleting metadata from an org (use platform-destructive-deploy), or querying org data (use platform-data-manage).
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.