Choose a workflow
Choose a workflow based on the language and how you select source files. Every mutation run executes on Radforge infrastructure. CLI planning and dry-run inspection stay local.
| Goal | Use | Language support |
|---|---|---|
| Analyze one source file | rad file |
Go, TypeScript/JavaScript, Python |
| Save a one-file plan without submitting it | rad plan |
Go, TypeScript/JavaScript, Python |
| Analyze source selected from a Git diff | rad changed |
Go, TypeScript/JavaScript, Python |
| Analyze an explicit source-file list | rad scope |
Go, TypeScript/JavaScript, Python |
| Analyze a pull request | GitHub App | Go, TypeScript/JavaScript, Python |
| Submit or manage a saved plan | rad remote |
The language recorded in the plan |
See Language support for supported project shapes and runner differences. For Go versions, mutation operators, and exclusions, see Go support.
rad file versus rad plan
Section titled “rad file versus rad plan”Use rad file <path> to plan one file and submit the plan immediately. Use rad plan --target <path> when you need to inspect, store, or pass the plan to another tool before submission.
rad file <path> --dry-run --json and rad plan --target <path> --json both write a one-file plan without starting a run. Do not edit the generated JSON by hand.
Submit a saved plan
Section titled “Submit a saved plan”Both commands submit an existing plan through the hosted execution path:
rad file --artifact plan.jsonrad remote run --artifact plan.jsonUse rad remote run in scripts or workflows that explicitly separate planning from submission. Use rad file --artifact as the shorter equivalent when working with a one-file plan.
Narrow and broad test selection
Section titled “Narrow and broad test selection”Radforge normally selects tests related to the source being mutated. If it cannot select a narrow set, planning stops unless you pass --allow-broad-tests. That option can run more tests and increase run time, so inspect the plan before accepting the broader scope.
Run and attempt
Section titled “Run and attempt”A run keeps one submitted plan and source snapshot. An attempt is one execution of that immutable input. Retrying a run creates a new attempt with the original plan and snapshot. Submit a new run when the code or plan changes.