4.2 KiB
4.2 KiB
Copilot Instructions for AgentForceTest
Project Overview
This is a Salesforce DX project (Agentforce) integrating Jira for project management. The codebase contains:
- Apex classes for backend logic (e.g., JiraIntegration.cls)
- Lightning Web Components (LWC) for UI (e.g., accountQuickCreate)
- Custom Salesforce objects (Project__c with Budget, Start Date fields)
- SFDX tooling for deployment and testing
Architecture & Key Components
Project Structure
force-app/main/default/- Core SFDX package directoryclasses/- Apex backend logiclwc/- Lightning Web Components (LWC)objects/- Custom Salesforce objects with metadatatabs/,layouts/,flexipages/- UI configuration
scripts/- SOQL queries and Apex scripts for developmentconfig/project-scratch-def.json- Scratch org configurationmdapiOut/- Metadata API deployment artifacts
Data Integration
- JiraIntegration.cls bridges Salesforce with Jira via REST API
- Project__c custom object stores Salesforce-side project data (Budget, Start Date)
- Integration pattern: Account Quick Create → Project creation → Jira sync
Development Workflows
Code Quality & Linting
npm run lint # Run ESLint on Aura/LWC JS files
eslint force-app/main/default/lwc/**/*.js --fix # Auto-fix with flat config
npm run prettier # Format all supported file types
npm run prettier:verify # Check formatting without changes
Testing
npm run test # Run all LWC unit tests
npm run test:unit:watch # Watch mode for TDD
npm run test:unit:debug # Debug mode
npm run test:unit:coverage # Coverage report
Key detail: Jest config uses sfdx-lwc-jest with mock modules. Test files use .test.js suffix.
Pre-commit Hooks
Configured via lint-staged and Husky:
- Automatically runs Prettier on staged files
- Runs ESLint on LWC/Aura JS
- Runs Jest tests on LWC components before commit
Code Conventions
Apex Classes
- Use
public with sharingfor security - Document public methods with JSDoc-style comments
- Follow:
public String processAccount(String accountId)pattern - Placeholder implementations include return statements with descriptive messages
LWC Components
- Import from
'lwc'core:LightningElement,track,wire, etc. - Use
@trackfor reactive properties - Show toasts via
ShowToastEventfor user feedback - Validation: Last Name required (per standard contact requirements), email optional
- Component files:
<name>.js(logic),<name>.html(template),<name>.js-meta.xml(metadata)
Metadata XML Files
- Custom objects stored as
.object-meta.xmlwith field definitions - Tab definitions in
tabs/<ObjectName>.tab-meta.xml - All metadata follows Salesforce v65.0 API schema
- Important: Remove compactLayoutAssignment to avoid deployment errors
External Integrations
Jira REST API
- Endpoint:
https://shaikmosina.atlassian.net/rest/api/2/ - Auth: Basic auth (email:API_token Base64 encoded)
- Usage: JiraIntegration.cls handles transitions, issue updates
- Common operations: Transition status (e.g., move to "To Do" via transition ID 11)
Salesforce CLI (SFDX)
- Project uses
sfdx-project.json(v65.0 API) - Namespace: empty (unmanaged package)
- Default package path:
force-app/
Important Patterns & Gotchas
- ESLint Config: Uses modern flat config (
eslint/config), not legacy.eslintrc.json - Test Isolation: LWC test rules differ from regular LWC rules (wire adapter warnings disabled)
- Aura + LWC: Both supported; Aura uses its own ESLint config via
@salesforce/eslint-plugin-aura - Metadata Deployment: Verify all XML files are valid; bad metadata blocks SFDX deployments
- Git Hooks: Husky requires
npm install; runnpm run prepareif hooks don't trigger
Quick References
- Salesforce Docs: https://developer.salesforce.com/tools/vscode/
- Salesforce CLI: https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/
- LWC Best Practices: Review
accountQuickCreate.jsfor input handling and validation patterns - API Version: 65.0 (see sfdx-project.json)