
Generating List View
Generate and validate Salesforce ListView XML metadata so filtered, column-based record views deploy cleanly on custom or standard objects.
Overview
Generating List View is an agent skill for the Build phase that creates, generates, and validates Salesforce List View metadata for filtered, column-based record listings.
Install
npx skills add https://github.com/forcedotcom/afv-library --skill generating-list-viewWhat is this skill?
- Creates ListView-meta.xml under force-app/main/default/objects/<ObjectName>/listViews/
- Documents label, columns, filters, and visibility/sharing for role-specific record subsets
- Covers inline object-meta embedding only when explicitly requested
- Troubleshoots List View deployment and XML validation errors
- Standardizes team filters and visible fields on object tabs
Adoption & trust: 1.4k installs on skills.sh; 512 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need a Salesforce list view with specific filters and columns but aren’t sure of the correct metadata paths, XML shape, or why deployment fails.
Who is it for?
Indie teams extending Salesforce objects who want agent-guided ListView XML instead of trial-and-error in Setup or broken deploys.
Skip if: Builders not on Salesforce, or admins who only need one-click views in the UI with no metadata or CI/CD involvement.
When should I use this skill?
Users need to create, generate, or validate Salesforce List View metadata; mention list views, filters, columns, visibility, ListView XML, or “I need a view that shows…”.
What do I get? / Deliverables
You get valid ListView metadata with clear labels, filters, columns, and visibility settings ready to deploy under your object’s force-app tree.
- ListView-meta.xml under objects/<ObjectName>/listViews/
- Validated filter, column, and visibility configuration notes
Recommended Skills
Journey fit
List views are Salesforce platform metadata created while shaping the product’s data model and admin UX during implementation. Placement under integrations reflects CRM metadata files, object paths, and deployment validation rather than generic UI code.
How it compares
Use for declarative ListView metadata generation—not for LWC page layout, Apex triggers, or generic SQL reporting.
Common Questions / FAQ
Who is generating-list-view for?
Solo and small-team Salesforce developers and admins who manage metadata in source control and need list views as deployable XML.
When should I use generating-list-view?
During Build integrations work when creating views, setting columns and filters, configuring sharing, validating ListView files, or fixing list-view deploy errors.
Is generating-list-view safe to install?
Review the Security Audits panel on this Prism page and your org’s deployment policies before letting an agent write or modify metadata in your repo.
SKILL.md
READMESKILL.md - Generating List View
## When to Use This Skill Use this skill when you need to: - Create list views for objects - Generate filtered, column-based record listings - Configure list view visibility and sharing - Troubleshoot deployment errors related to List Views ## Specification # Salesforce List View Metadata Knowledge ## 📋 Overview Salesforce List Views define filtered, column-based record listings on an object's tab. ## 🎯 Purpose - Provide curated, role- or task-specific subsets of records - Standardize commonly used filters and visible fields across teams ## 🔧 Configuration Unless specifically requested to be generated inline, List Views are stored at: - force-app/main/default/objects/<ObjectName>/listViews/<fullName>.listView-meta.xml Only if the user requests are they to be included in the object's metadata file: - fore-app/main/default/objects/<ObjectName>/<ObjectName>.object-meta.xml Key elements: - label: Human-friendly name shown in UI (must be under 40 characters in length) - fullName (fullName): API identifier used in metadata and file name - filterScope: Everything | Mine | Queue - filters: field/operation/value triples - booleanFilterLogic: Combine multiple filters logically with AND/OR (e.g., "1 AND (2 OR 3)") - columns: Ordered list of field API names to display References: - listViews appear on the entity's tab - listViews can be referenced by flexipages using the "filterListCard" component ### Critical Decision: Visibility Strategy Choose how broadly the view should appear in the org. **Choose "Visible to all users" when:** - The view is useful across profiles/roles - It's a governed, shared artifact to be managed via source control - Data contained is appropriate for broad visibility **Choose "Owner-only/Restricted" when:** - It is experimental or niche during iteration - It is specifically requested to be limited to Users, Groups or Roles - There are governance/security reviews pending **When in doubt:** Default to "Visible to all users". ### Critical Decision: Columns Density **Choose minimal, high-signal columns when:** - Users need at-a-glance scanning - Mobile/responsive performance matters **Choose richer column sets when:** - Desktop heavy workflows need more context without opening records - It serves as a work queue and extra fields reduce clicks **When in doubt:** Start with 4–6 columns that directly support the primary task. ## Critical Rules (Read First) ### Rule 1: Custom Field API Names For custom fields, use exact API names (e.g., Status__c), not labels. Wrong: - Status (label) Right: - Status__c (API name) ### Rule 2: Standard Field Names For standard fields on Custom Objects, use already defined names: Wrong: - Name (API Name) Right: - NAME The standard fields on Custom Objects are: - NAME - RECORDTYPE - OWNER.ALIAS - OWNER.FIRST_NAME - OWNER.LAST_NAME - CREATEDBY_USER.ALIAS - CREATEDBY_USER - CREATED_DATE - UPDATEDBY_USER.ALIAS - UPDATEDBY_USER - LAST_UPDATE - LAST_ACTIVITY ### Rule 3: Operations Must Match Field Types Picklists require equals/notEqual; date fields require date operators; boolean values are 0 and 1; do not mix text-only operators with non-text fields. Wrong: - operation="contains" on a picklist - value=True on a boolean Right: - operation="equals" with a valid picklist value - value=1 on a boolean ### Rule 4: Name and Path Alignment File name, fullName (also sometimes referred to as DeveloperName), and uniqueness must