The project tool auto-detects your toolchain from config files and runs the correct commands β no setup, no guessing.
Actions
Parameters
detectProfile(cwd) scans for config files and lockfiles:
JS/TS linter detection
Priority order:
biome.json / biome.jsonc -> biome check .
oxlintrc.json / .oxlintrc.json -> oxlint .
eslint.config.js / .eslintrc* -> eslint .
Python type checker detection
pyrightconfig.json exists -> pyright
- Otherwise ->
mypy .
Full ecosystem support
Pre-commit checks
When the agent runs git commit via the shell tool, SoulForge auto-runs detectNativeChecks(cwd) before allowing the commit:
- JS/TS:
biome check . && tsc --noEmit
- Rust:
cargo clippy && cargo check
- Go:
golangci-lint run && go build ./...
- Python:
ruff check && pyright
If checks fail, the commit is blocked and errors are returned to the agent. This is code-enforced β no prompt instruction needed.
To skip pre-commit checks, commit directly via shell outside SoulForge.
The pre-commit check uses detectNativeChecks() which identifies tools from config files directly, never from package.json scripts. This ensures only known, safe tools are run.
Monorepo discovery
project(action: "list") discovers workspace packages:
- pnpm:
pnpm-workspace.yaml
- npm/yarn:
workspaces field in package.json
- Cargo:
[workspace] members in Cargo.toml
- Go:
use directives in go.work
Example output
Each package gets its own detectProfile() call, so capabilities are accurate per-package.
System prompt integration
The detected toolchain is injected into the system prompt:
The agent sees available actions without guessing.
Shell redirect hints
When the agent runs bun run lint, cargo clippy, etc. via shell instead of the project tool, the result includes a hint:
This educates the agent to prefer the project tool without blocking the command.