Configuration
Radforge builds plans from files in your repository and CLI options. There is no separate hosted configuration for mutation planning.
Project detection
Section titled “Project detection”rad init and rad doctor detect supported Go, TypeScript, and Python
workspaces. Each independently runnable root is a profile, so a monorepo can
contain multiple profiles with the same language. Go detection recognizes
go.mod modules and go.work workspaces. TypeScript detection uses package,
configuration, lockfile, and Vitest signals. Python detection uses project,
uv.lock, and pytest metadata.
Use --repo-root to point to another Git working tree. Use --language to
choose auto, mixed, go, typescript, or python during setup and
diagnosis. During noninteractive initialization, repeat
--profile-root <repo-relative-path> to select exact roots when detection finds
more than one profile. Language selection filters profiles; it does not replace
profile selection in an ambiguous repository.
Ignore rules
Section titled “Ignore rules”rad changed --exclude <pattern> removes matching source files from mutation analysis. Repeat the option to add more patterns. Radforge also reads the repo-local .muttignore file. The filename is retained for compatibility with existing installations.
Write one exact repository-relative path or glob pattern per line. Blank lines and lines beginning with # are ignored. Ignored files are not mutated, but tests can still import them as dependencies.
# Generated mutation targetsgenerated/schema.tsgenerated/client/**Bounds and fallbacks
Section titled “Bounds and fallbacks”--budget <count>limits total candidates in the generated plan.--dry-runprints a plan instead of submitting it.--allow-broad-testsallows a broad test set when Radforge cannot select a smaller one.--jsonselects machine-readable output where the command supports it.
Accepted-mutant waivers
Section titled “Accepted-mutant waivers”radforge-waivers.json records reviewed survivors that matching future plans
should not execute. The file belongs at the repository root and can be committed
when the decisions should be shared. Each entry records the exact candidate,
source location, reason, optional note, source run and finding, and acceptance
time.
Use rad remote accept to add an entry. Notes are recommended but not required.
Use rad waivers list to inspect the active manifest and plan-scoped
rad waivers prune with an unbudgeted file or scope plan to remove stale
entries. The CLI rejects budgeted and changed-line plans for pruning because
they omit live candidates. Radforge does not expire a waiver solely because time
passed while the exact candidate remains in the code. See
Accept a reviewed survivor for the complete
workflow and retention behavior.
Multi-language repositories and test selection
Section titled “Multi-language repositories and test selection”One mutation run uses one language profile. Use rad verify --language go,
rad verify --language typescript, or rad verify --language python to choose the language. If the repository
contains multiple runnable roots for that language, add
--profile-root <repo-relative-path>. Repeat verification for every profile
you want to check.
Radforge normally selects tests from the target source and the repository’s
native runner configuration. For an explicit TypeScript canary, repeat
--test-file <repo-relative-test> and optionally provide
--test-config <repo-relative-vitest-config>. For Go, repeat
--build-tag <tag> or --test-flag <flag> when the package requires them.
For Python, repeat --test-file <repo-relative-test-or-node-id> when you need
an explicit pytest selection.
Radforge does not accept an arbitrary hosted shell test command; the generated
plan records structured runner inputs so hosted execution can validate and
reproduce them.
Scope files and plan artifacts
Section titled “Scope files and plan artifacts”A scope file lists source paths relative to the repository root, one path per line. A plan is generated JSON. Do not edit it by hand. Before submission, the CLI checks its format against the current server version.
The CLI reference is generated from rad --help and lists the options available in this source revision.