Language support
Go, TypeScript/JavaScript, and Python support the same Radforge product workflows. Their mutation operators, test selectors, and native runner options differ.
| Capability | Go | TypeScript/JavaScript | Python |
|---|---|---|---|
rad file and rad plan |
Yes | Yes | Yes |
rad changed and rad scope |
Yes | Yes | Yes |
rad verify |
Yes | Yes | Yes |
| Hosted execution | go test |
Vitest | pytest |
| GitHub pull-request analysis | Yes | Yes | Yes |
| Setup detection and doctor | Yes | Yes | Yes |
Supported project shapes
Section titled “Supported project shapes”- Go uses a root
go.modorgo.workand a supported Go toolchain. See Go support. - TypeScript/JavaScript uses Vitest,
package.json, and exactly one supported npm, pnpm, or Bun lockfile at the repository root. - Python uses pytest,
pyproject.toml, anduv.lock. Hosted dependency setup creates the.venv/bin/pythonenvironment recorded in the plan.
Test selection differences
Section titled “Test selection differences”Go selects packages and anchored test patterns. TypeScript/JavaScript selects
related Vitest files and the owning configuration. Python selects pytest files
or explicit node IDs. --allow-broad-tests is required when CLI planning can
only use a test set beyond the broad-fallback safety limit.
One language per run
Section titled “One language per run”One plan and run target one language. Radforge rejects mixed-language Git diffs, scope files, explicit source paths, and pull requests instead of silently selecting one language. Split mixed work into one run or pull request per language.