Tester field guide
Use this guide for a first project evaluation with Salesforce engineers. It starts from an existing SFDX project and keeps the first loop local. No org login, scratch org, source push, or metadata deploy is required for the core commands.
Glade does not replace Salesforce. It gives a fast local loop before Salesforce enters the path. Check what Glade runs locally before treating any platform service, live auth flow, exact hosted Visualforce behavior, or API outside the checked local baseline as supported.
First project setup
Install and prove the parser:
curl -fsSL https://glade.sh/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
glade version
glade doctorglade doctor must print status rows and end with Ready.:
Glade doctor
Project ✓ SFDX project found
Parser ✓ ok (tree-sitter)
Toolchain ✓ <glade data dir> (ok (global))
Config ✓ glade.yml
Runtime ✓ glade <version> · go<version> · <os>/<arch>
Ready.Open an SFDX project:
cd path/to/sfdx-project
test -f sfdx-project.json
glade init --project . --yes
glade config validate --project .
glade config show --project .Run the first local checks:
glade check --project .
glade test --project . --jsonIf a tester uses VS Code, install the bundled extension after the binary works:
glade editor doctor vscode
glade editor install vscode --forceOpen the SFDX project root in VS Code. The extension adds Glade Home, the Glade Activity Bar, local Apex tests in Test Explorer, local CodeLens actions, DAP debug launches, named SQLite-backed data environments, Exec & SOQL scratch buffers, and plugin actions.
Daily local loop
| Job | Command |
|---|---|
| Check source after a pull | glade check --project . |
| Run one test class | glade test --project . --class RefinementServiceTest --json |
| Run one test method | glade test --project . --class RefinementServiceTest --method testRefinesFileRow --json |
| Run tests affected by a branch | glade test changed --project . --since origin/main --json --no-progress |
| Rerun last failures | glade test failed --project . |
| Let Glade pick the next loop | glade test --project . --wizard |
| Keep repeated CLI runs warm | glade test serve --project . |
| Keep one watch loop warm | glade test --project . --daemon --watch |
| Execute a quick Apex probe | glade exec --project . "System.debug('local');" |
| Serve Visualforce preview pages locally | glade dev vf --project . --addr 127.0.0.1:8080 |
| Serve the LWC preview shell locally | glade dev lwc --project . --open |
| Open the local playground | glade playground --project . --open |
Start with one focused class or method when bringing up a large project. Move to glade test changed after the first known-good run. Use the whole suite before trusting a release branch.
Clear the startup cache after branch switches, Glade upgrades, or stale-looking results:
glade test clear-cache --project .
glade test --project . --no-cache --class RefinementServiceTest --jsonAI-assisted work
Glade gives AI tools small, checked work packets instead of open-ended guesses. The useful pattern is: inspect the project, run a local gate, fix the smallest thing, then rerun the same gate.
For the reusable global skill prompt, use AI-assisted Apex.
Give an AI coding agent this contract from the SFDX project root:
Use Glade for local Salesforce checks.
Do not connect to a Salesforce org for the first pass.
Run:
glade doctor
glade config validate --project .
glade check --project . --format json --output reports/glade-check.json --no-progress
glade test changed --project . --since origin/main --json --no-progress > reports/glade-test-changed.json
If a command fails, quote the exact diagnostic, fix only the relevant source,
and rerun the same command before claiming success.
Check what Glade runs locally before treating unsupported platform services as bugs.For a review or refactor prompt, ask the agent to produce a proof artifact:
mkdir -p reports
glade report refactor-proof --project . --since origin/main --format html --out reports/glade-refactor-proof.html
glade report refactor-proof --project . --since origin/main --fail-on-api-break --format json > reports/glade-refactor-proof.jsonThe proof report records the git diff, parse and semantic status, graph impact, affected-test selection, optional trace summary, and public or global API warnings.
CI pattern
Use a full git fetch when CI needs origin/main for affected-test selection:
name: glade
on: [pull_request]
jobs:
glade:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: curl -fsSL https://glade.sh/install.sh | sh
- run: echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- run: glade doctor
- run: mkdir -p reports
- run: glade check --project . --format sarif --output reports/glade-check.sarif
- run: glade test changed --project . --since origin/main --json --no-progress > reports/glade-test-changed.json
- run: glade test --project . --junit reports/glade-junit.xml
- uses: actions/upload-artifact@v4
if: always()
with:
name: glade-results
path: |
reports/For richer saved run artifacts:
glade dev test --project . --all --out .glade/runs
glade report github latest --runs-dir .glade/runs
glade report export latest --runs-dir .glade/runs --format html --output reports/glade-report.htmlUseful opportunities
Create reports/ before running commands that write report files.
| Opportunity | Command |
|---|---|
| Explain a saved Salesforce debug log against local source | glade debug explain --log apex.log --project . |
| Generate a starter local repro test from a log | glade debug repro --log apex.log --project . > ReproTest.cls |
| Render local Visualforce preview pages | glade dev vf --project . --addr 127.0.0.1:8080 |
| Render local LWC preview routes | glade dev lwc --project . --context accountRecord --open |
| Run local Salesforce API routes | glade server --project . --addr 127.0.0.1:8080 |
| Seed or inspect a local SQLite org state | glade db seed --db .glade/org.sqlite --project . fixtures/dev.json |
| Map a large Apex project | glade inspect graph --project . --json |
| Create an assessment report | glade report assess --project . --format html --out reports/glade-assessment.html |
| Review conservative dead-code candidates | glade report cruft --project . --format html --out reports/glade-cruft.html |
| Compare managed-package artifacts | glade package diff old.glade.json new.glade.json --json |
Advisory performance scans and compatibility reports are plugin commands. The default public plugin registry is preview. Use them only when you have a live registry, a direct archive, or a locally linked first-party plugin:
glade plugins available
glade plugins install @glade/performance
glade performance scan --project . --json > reports/glade-performance.jsonWhat to send back
Useful first-run feedback includes:
glade version- full
glade doctoroutput - the exact command that failed
- JSON output from
glade checkorglade test, when available - the smallest Apex class, trigger, metadata file, fixture, or debug log that shows the problem
- whether Salesforce accepts or rejects the same code, when known
- which workflow the tester was trying: local loop, VS Code, AI, CI, report, or plugin