Standards

Per-language tooling standards for Python, Bash, Terraform, Ansible, Ruby, and universal security tools.

DevRail defines opinionated tooling standards for each supported language ecosystem. Every tool is pre-installed in the dev-toolchain container and invoked through consistent Makefile targets.

Language Support Matrix

The following table shows the default tool for each concern per language. These tools are pre-installed in the dev-toolchain container.

ConcernPythonBashTerraformAnsibleRuby
Linterruffshellchecktflintansible-lintrubocop, reek
Formatterruff formatshfmtterraform fmtrubocop
Securitybandit, semgreptfsec, checkovbrakeman, bundler-audit
Testspytestbatsterratestmoleculerspec
Type Checkmypysorbet
Docsterraform-docs
Universaltrivy, gitleakstrivy, gitleakstrivy, gitleakstrivy, gitleakstrivy, gitleaks

A -- entry means the concern does not apply to that language. Universal tools run for all projects regardless of declared languages.

Makefile Target Mapping

Each Makefile target runs the relevant tools for all languages declared in .devrail.yml:

TargetWhat It Runs
make lintruff check, shellcheck, tflint, ansible-lint, mypy, rubocop, reek
make formatruff format, shfmt, terraform fmt, rubocop
make testpytest, bats, terratest, molecule, rspec
make securitybandit, semgrep, tfsec, checkov, brakeman, bundler-audit
make scantrivy, gitleaks (universal – all projects)
make docsterraform-docs
make checkAll of the above in sequence

Per-Language Pages

Consistent Page Structure

Each per-language page follows a consistent structure:

  1. Tools – table of tools with category, name, and purpose
  2. Configuration – configuration examples with inline comments
  3. Makefile Targets – which targets invoke which tools
  4. Pre-Commit Hooks – which hooks run locally vs. CI-only
  5. Notes – important conventions and gotchas

Python Standards

Python tooling standards: ruff, bandit, semgrep, pytest, and mypy.

Bash Standards

Bash tooling standards: shellcheck, shfmt, and bats.

Ruby

Ruby and Rails tooling standards: rubocop, brakeman, bundler-audit, rspec, reek, and sorbet.

Terraform Standards

Terraform tooling standards: tflint, terraform fmt, tfsec, checkov, terratest, and terraform-docs.

Ansible Standards

Ansible tooling standards: ansible-lint and molecule.

Universal Security

Universal security tools that run for every project: trivy and gitleaks.