backcheck can only verify a "tests pass" claim if it recognises the command that ran. Every
runner it does not know is a session where an honest claim looks unsupported, or a fabricated
one slips through.
This is the best first contribution to the project: self-contained, immediately useful, and the
same three steps every time.
Already supported
pytest, unittest, tox, nox, cargo test, cargo nextest, go test, jest, vitest, mocha, ava,
bun test, npm/yarn/pnpm test, rspec, phpunit, dotnet test, maven, gradle, ctest, make test —
plus mypy, pyright, tsc, ruff, eslint, clippy, flake8, pylint, golangci-lint, biome.
Wanted
Pick any one and open a PR — no need to claim it first, and one runner per PR is ideal.
How
All of it lives in src/runners.rs. See
CONTRIBUTING.md for the full walkthrough.
- Recognise the command in
classify() — return the CheckKind and a short runner name.
- Read its outcome in
parse_outcome() — pull pass/fail out of the summary line.
- Add a test with real passing and failing output, copied from an actual run.
The one rule
Return Outcome::Unknown when the output does not clearly say. A wrong "verified" is far more
damaging than an honest "could not tell" — backcheck is only worth installing if its
"supported" verdicts mean something.
backcheckcan only verify a "tests pass" claim if it recognises the command that ran. Everyrunner it does not know is a session where an honest claim looks unsupported, or a fabricated
one slips through.
This is the best first contribution to the project: self-contained, immediately useful, and the
same three steps every time.
Already supported
pytest, unittest, tox, nox, cargo test, cargo nextest, go test, jest, vitest, mocha, ava,
bun test, npm/yarn/pnpm test, rspec, phpunit, dotnet test, maven, gradle, ctest, make test —
plus mypy, pyright, tsc, ruff, eslint, clippy, flake8, pylint, golangci-lint, biome.
Wanted
Pick any one and open a PR — no need to claim it first, and one runner per PR is ideal.
deno testswift testxcodebuild test/xctestelixir—mix testscala—sbt testhaskell—stack test,cabal testzig build testjulia—Pkg.test()R—testthat,devtools::test()perl—provebats(bash)catch2/gtestbinariesk6/playwright test/cypress runterraform validate,tflintshellcheck,hadolint,yamllintrubocop,standardrbdetekt,ktlint,spotlessHow
All of it lives in
src/runners.rs. SeeCONTRIBUTING.md for the full walkthrough.
classify()— return theCheckKindand a short runner name.parse_outcome()— pull pass/fail out of the summary line.The one rule
Return
Outcome::Unknownwhen the output does not clearly say. A wrong "verified" is far moredamaging than an honest "could not tell" —
backcheckis only worth installing if its"supported" verdicts mean something.