alint roadmap

Scope-based; dates are deliberately omitted. Each version is a closed cut: work that does not fit moves to a later version. This page is generated from the canonical engineering roadmap, so it stays in step with the tool.

Where alint stands today

Latest release: v0.13.0. 89 rule kinds across 13 families, 22 bundled ecosystem rulesets, 12 auto-fix ops, and 8 output formats including agent-aware. 30 production OSS case studies under examples/, spanning single-language and polyglot monorepos. Sub-second on 100K-file repos (around 1.1 s on a 100K-file workspace bundle, around 12 s at 1M files).

Full release history →  ·  Full benchmarks history →  ·  All 30 case studies →

Version timeline

Every scope-based cut from the first release to v1.0. Status tracks the released version: shipped cuts are what you can install today, planned cuts are what comes next.

Shipped v0.1v0.2v0.3v0.4v0.5v0.6v0.7v0.8v0.9v0.10 10 earlier cuts
  1. v0.11 LSP + DSL polish Shipped

    The alint lsp language server with in-editor diagnostics and quick-fixes, scope generalisation, the commit-validation family, and env interpolation.

  2. v0.12 Real-world coverage expansion (100+ repos) + gap rule kinds Shipped

    New kinds file_graph, for_each_match, cross_file, and pair_changed_together, generated_file_fresh mutating mode, a path-confinement security cut, and the php ruleset.

  3. v0.13 Engineering foundations: spec-driven development Latest release

    A drift-elimination program on main: schema, facts, and architecture generated and gated, plus a Kani-verified path-confinement proof.

  4. v0.14 WASM plugins Planned

    A wasm plugin kind on a wasmtime host with a stable WIT interface, a filesystem sandbox, and a signed plugin registry.

  5. v1.0 Stability Planned

    A committed DSL and plugin ABI, a frozen alint-core public API, and a versioned documentation site.

Full roadmap with per-version detail →

Won't do (deliberate non-goals)

alint's scope is the filesystem shape and contents of a repository, not the semantics of the code inside it. The following are explicit non-goals; the "use X instead" pointers exist so a misguided contribution can be redirected before it's written.

Won't doUse instead
AST-aware code linting (variable names, unused imports, type checks) ESLint, Clippy, ruff, golangci-lint, mypy. Every language has one.
SAST (security-focused code analysis: tainted-data flow, injection, dangerous APIs) Semgrep, CodeQL
IaC scanning (Terraform / Kubernetes / Docker security policies) Checkov, Conftest, tfsec
Secret scanning (find API keys / tokens in tracked files) gitleaks, trufflehog
Commit-message linting (Conventional Commits etc.) commitlint, committed
Build-system orchestration (running 70+ language linters in containers) Megalinter, pre-commit, lintrunner, bazel build //...
Codegen / generator running ("regenerate the file and assert it matches") The opt-in generated_file_fresh primitive is the explicit exception, but the default non-goal stays: alint does not run your generators by default
Dependency-graph problems (import cycles, unused deps, version conflicts) cargo deny, bazel mod, buildifier, knip, madge

If your need is on this list, it's not that alint is incapable. It's that alint is deliberately the wrong shape for that need, and the listed tool is the right shape. See also how alint compares to other repo-level linters.

How decisions get made

When does X ship?

We do not put dates on the roadmap. Two reasons: slipping a public date is worse than not having one (users plan around dates; missed dates erode trust), and scope-based cuts ship better software (filling-time-to-meet-a-date is how feature creep enters). Watch GitHub Releases for the actual ship signal. Every release ships with a CHANGELOG entry, a refreshed bench-history row, and a tagged commit.

Next up: v0.14 WASM plugins. Install today; new versions land on top of the engine you already have configured.