How flighttosalesforce/batch-framework works
The repository’s primary product is a Salesforce Apex batch framework: administrators configure scheduled jobs, the hourly scheduler queues due work, and an orchestrator runs jobs serially while recording outcomes. A separate metadata-health agent collects Salesforce metadata, checks it deterministically and with AI, and emits reports and optional pull-request feedback. The README documents the batch lifecycle; agent relationships below are limited to the shown entry-point calls and imports. UI automation and delivery tooling are excluded.
Main entry points: index.mjs Agent entry point · BatchQueueService.cls Queue service · BatchOrchestrator.cls Job orchestrator · BatchFrameworkScheduler.cls Hourly scheduler
Components 23
Batch execution
- Hourly scheduler
force-app/main/default/classes/BatchFrameworkScheduler.cls - Schedule sync
force-app/main/default/classes/BatchHandlerSyncService.cls - Queue service
force-app/main/default/classes/BatchQueueService.cls - Job orchestrator
force-app/main/default/classes/BatchOrchestrator.cls - Job contract
force-app/main/default/classes/IBatchJob.cls - Batch base class
force-app/main/default/classes/BaseBatch.cls - Custom batch job
force-app/main/default/classes/BatchFrameworkSmokeJob.cls
Schedules and tracking
- Job schedules
force-app/main/default/objects/BatchFramework__c/BatchFramework__c.object-meta.xml - Deployable schedules
force-app/main/default/objects/BatchHandler__mdt/BatchHandler__mdt.object-meta.xml - Run records
force-app/main/default/objects/BatchQueue__c/BatchQueue__c.object-meta.xml - Failure records
force-app/main/default/objects/BatchFailure__c/BatchFailure__c.object-meta.xml
Metadata health agent
- Agent entry point
metadata-agent/src/index.mjs - Metadata collection
metadata-agent/src/collect.mjs - Static checks
metadata-agent/src/static-checks.mjs - AI review
metadata-agent/src/analyze.mjs - Salesforce integration
metadata-agent/src/salesforce.mjs - Report generation
metadata-agent/src/report.mjs - PR feedback
metadata-agent/src/github.mjs
External services
- Salesforce org
- Anthropic / Claude
- GitHub
- Report files
Other components
- Org administrator
Connections 25
- Org administrator → Hourly scheduler: schedules
README.md - Hourly scheduler → Schedule sync: syncs schedules
README.md - Hourly scheduler → Queue service: queues due jobs
README.md - Schedule sync → Deployable schedules: reads schedules
README.md - Schedule sync → Job schedules: copies schedules
README.md - Queue service → Job schedules: selects due jobs
README.md - Queue service → Run records: creates run records
README.md - Queue service → Job schedules: advances next run
README.md - Queue service → Job orchestrator: starts chain
README.md - Job orchestrator → Run records: selects oldest queued
README.md - Job orchestrator → Job contract: dispatches job
README.md - Custom batch job → Batch base class: extends
- Batch base class → Queue service: records outcome
README.md - Batch base class → Job orchestrator: starts next job
README.md - Agent entry point → Metadata collection: collects files
metadata-agent/src/index.mjs - Agent entry point → Static checks: runs checks
metadata-agent/src/index.mjs - Agent entry point → AI review: requests review
metadata-agent/src/index.mjs - Agent entry point → Salesforce integration: retrieves org data
metadata-agent/src/index.mjs - Agent entry point → Report generation: writes report
metadata-agent/src/index.mjs - Agent entry point → PR feedback: posts PR feedback
metadata-agent/src/index.mjs - AI review → Static checks: uses check IDs
metadata-agent/src/analyze.mjs - Salesforce integration → Salesforce org: retrieves metadata
metadata-agent/src/salesforce.mjs - AI review → Anthropic / Claude: requests analysis
- PR feedback → GitHub: posts comments
metadata-agent/src/github.mjs - Report generation → Report files: writes reports
metadata-agent/src/report.mjs