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.
v0.1v0.2v0.3v0.4v0.5v0.6v0.7v0.8v0.9v0.10 10 earlier cuts -
v0.11LSP + DSL polish ShippedThe alint lsp language server with in-editor diagnostics and quick-fixes, scope generalisation, the commit-validation family, and env interpolation.
-
v0.12Real-world coverage expansion (100+ repos) + gap rule kinds ShippedNew 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.
-
v0.13Engineering foundations: spec-driven development Latest releaseA drift-elimination program on main: schema, facts, and architecture generated and gated, plus a Kani-verified path-confinement proof.
-
v0.14WASM plugins PlannedA wasm plugin kind on a wasmtime host with a stable WIT interface, a filesystem sandbox, and a signed plugin registry.
-
v1.0Stability PlannedA committed DSL and plugin ABI, a frozen alint-core public API, and a versioned documentation site.
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 do | Use 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
- Design first, code second. Major work lands as a
design doc under
docs/design/v<MAJOR>/before implementation. v0.7, v0.9, and v0.10 all shipped this way. - Demand-driven rule kinds. New rule kinds need ≥3 distinct source repos showing the same need (saturation signal). The candidate catalogue in launch-evidence.md aggregates demand from the 30 OSS case studies; each candidate carries a per-source citation.
- Public discussion. GitHub Discussions is the low-friction support + feature-request channel. GitHub Issues is the bug channel. Both feed the candidate table.
- No private prioritisation. Every roadmap-affecting
decision lands in a public commit (typically to
docs/design/ordocs/development/launch-evidence.md) before it's encoded in a release. There is no off-list backlog.
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.