Skip to content

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:

bash
curl -fsSL https://glade.sh/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
glade version
glade doctor

glade doctor must print status rows and end with Ready.:

text
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:

bash
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:

bash
glade check --project .
glade test --project . --json

If a tester uses VS Code, install the bundled extension after the binary works:

bash
glade editor doctor vscode
glade editor install vscode --force

Open 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

JobCommand
Check source after a pullglade check --project .
Run one test classglade test --project . --class RefinementServiceTest --json
Run one test methodglade test --project . --class RefinementServiceTest --method testRefinesFileRow --json
Run tests affected by a branchglade test changed --project . --since origin/main --json --no-progress
Rerun last failuresglade test failed --project .
Let Glade pick the next loopglade test --project . --wizard
Keep repeated CLI runs warmglade test serve --project .
Keep one watch loop warmglade test --project . --daemon --watch
Execute a quick Apex probeglade exec --project . "System.debug('local');"
Serve Visualforce preview pages locallyglade dev vf --project . --addr 127.0.0.1:8080
Serve the LWC preview shell locallyglade dev lwc --project . --open
Open the local playgroundglade 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:

bash
glade test clear-cache --project .
glade test --project . --no-cache --class RefinementServiceTest --json

AI-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:

text
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:

bash
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.json

The 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:

yaml
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:

bash
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.html

Useful opportunities

Create reports/ before running commands that write report files.

OpportunityCommand
Explain a saved Salesforce debug log against local sourceglade debug explain --log apex.log --project .
Generate a starter local repro test from a logglade debug repro --log apex.log --project . > ReproTest.cls
Render local Visualforce preview pagesglade dev vf --project . --addr 127.0.0.1:8080
Render local LWC preview routesglade dev lwc --project . --context accountRecord --open
Run local Salesforce API routesglade server --project . --addr 127.0.0.1:8080
Seed or inspect a local SQLite org stateglade db seed --db .glade/org.sqlite --project . fixtures/dev.json
Map a large Apex projectglade inspect graph --project . --json
Create an assessment reportglade report assess --project . --format html --out reports/glade-assessment.html
Review conservative dead-code candidatesglade report cruft --project . --format html --out reports/glade-cruft.html
Compare managed-package artifactsglade 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:

bash
glade plugins available
glade plugins install @glade/performance
glade performance scan --project . --json > reports/glade-performance.json

What to send back

Useful first-run feedback includes:

  • glade version
  • full glade doctor output
  • the exact command that failed
  • JSON output from glade check or glade 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

Next docs

Glade is local-first Apex tooling.