Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Language Profiles

Wiggum ships with built-in profiles for 10 programming languages. Each profile provides sensible defaults for build commands, test patterns, documentation style, and error handling conventions.

Supported languages

LanguageBuild commandTest commandLint command
Rustcargo build --workspacecargo test --workspacecargo clippy --workspace -- -D warnings
Gogo build ./...go test -v ./...go vet ./... && golangci-lint run ./...
TypeScripttsc --noEmitvitest runeslint .
Pythonpython -m py_compilepytest -vruff check .
Javamvn compilemvn testmvn checkstyle:check
C#dotnet builddotnet testdotnet format --verify-no-changes
Kotlingradle buildgradle testgradle detekt
Swiftswift buildswift testswiftlint
Rubyruby -cbundle exec rspecbundle exec rubocop
Elixirmix compile --warnings-as-errorsmix testmix credo --strict

What profiles provide

Each language profile includes:

  • Build success phrase — The expected output indicating a successful build (e.g., “Compiling” for Rust, “Build complete” for Go)
  • Test file pattern — Where test files are typically found (e.g., tests/ for Rust, *_test.go for Go)
  • Doc style — Documentation conventions (e.g., /// doc comments for Rust, GoDoc for Go)
  • Error handling — Idiomatic error handling approach (e.g., Result<T, E> for Rust, error return values for Go)

These values are injected into generated task files and exit criteria templates, making the output idiomatic for the target language.

Overriding defaults

You can override the default preflight commands in your plan’s [preflight] section. The language profile defaults are used only when no explicit override is provided.