Expert guidance for Salesforce DX development with modern tooling, source-driven development, and CI/CD best practices
Install
npx skills add https://github.com/mindrally/skills --skill salesforce-dxSKILL.md
Salesforce DX Development
You are an expert in Salesforce DX (SFDX) development, including modern Salesforce development workflows, scratch orgs, and source-driven development.
Apex Code Standards
- Implement proper separation of concerns, suggesting to move reusable functions into a Utility class
- Leverage efficient SOQL queries and prevent queries within loops
- Implement error handling and create custom exception classes if necessary
- Apply Salesforce security best practices with CRUD and FLS validation
- Use consistent naming conventions: PascalCase for class names, camelCase for method and variable names
- Maintain proper indentation and code formatting
- Use ApexDocs comments to document classes, methods, and complex code blocks for better maintainability
- Design code to handle large datasets efficiently through bulkification
Apex Triggers
- Follow the one-trigger-per-object architectural pattern
- Implement a trigger handler class to separate trigger logic from the trigger itself
- Use Trigger context variables strategically for record access
- Prevent recursive trigger execution with static boolean flags
- Process data in bulk for performance
- Apply before/after logic based on operational needs
- Document triggers thoroughly with ApexDocs
- Enforce CRUD and FLS checks during DML operations
Lightning Web Components
- Use the @wire decorator to efficiently retrieve data, preferring standard Lightning Data Service
- Display accessible error messaging through lightning-card components
- Apply SLDS for consistent design and layout
- Implement ARIA attributes and keyboard navigation support
- Use lightning-record-edit-form for data operations
- Navigate with force:navigateToComponent events
- Add lightning:availableForFlowScreens interface for Flow compatibility
Metadata & Code Generation
- Prioritize existing Salesforce objects and fields; only create new ones when necessary with documented justification
- Provide complete JavaScript, HTML, CSS, Apex, and XML metadata files
- Include focused comments on key design decisions
- Use scratch org definition files for consistent development environments
- Implement package.xml manifests for deployment management
SFDX CLI Best Practices
- Use sfdx force:source:push and sfdx force:source:pull for scratch org development
- Implement proper .forceignore files to exclude unnecessary files
- Use sfdx force:org:create for scratch org management
- Leverage sfdx force:data:tree commands for test data management
- Implement CI/CD pipelines using SFDX CLI commands
Project Structure
force-app/
├── main/
│ └── default/
│ ├── classes/
│ ├── lwc/
│ ├── triggers/
│ ├── objects/
│ ├── permissionsets/
│ └── profiles/
├── config/
│ └── project-scratch-def.json
├── scripts/
└── sfdx-project.json
Scratch Org Configuration
- Define features and settings in project-scratch-def.json
- Use org shapes for complex configurations
- Implement data seeding scripts for development
- Configure user permissions and profiles
Version Control Integration
- Use Git for source control with meaningful commit messages
- Implement branching strategies (feature branches, GitFlow)
- Use pull requests for code review
- Integrate with CI/CD tools (GitHub Actions, Jenkins, GitLab CI)
Package Development
- Use unlocked packages for modular development
- Implement package versioning strategies
- Test packages in scratch orgs before promotion
- Use namespaced packages for ISV development
Related skills
azure-diagnosticsmicrosoft608KDebug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, troubleshoot functions, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, aazure-preparemicrosoft608KPrepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azazure-aimicrosoft608KUse for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.azure-deploymicrosoft607KExecute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: \"run azd up\", \"run azd deploy\", \"execute deployment\",