The test
An ordinary pytest file, ready to review and commit. It runs without Alluvia.
Alluvia Protect · Python + pytest
Your agent writes the test. Alluvia checks that the same test fails on the old code and passes on the fix. You keep an ordinary pytest test and the evidence.
Free and open source. Uses your existing Claude Code account and Python test environment.
Captured from Alluvia 0.10.0
A silent walkthrough of real command output, with edited pacing. The correction is a supplied example instruction. This shows the verifier; your coding agent writes the test in the plugin workflow.
A worked example
“Smaller than 8 MiB. Exactly 8 MiB must be rejected.”
def test_upload_limit_is_exclusive():
limit = 8 * 1024 * 1024
assert accepts_upload(limit - 1)
assert not accepts_upload(limit)The check catches this boundary mistake. The example is reproducible in a small local repository.
Yours to keep
An ordinary pytest file, ready to review and commit. It runs without Alluvia.
The correction that motivated it, attributed to your instruction or an existing history record.
The code revisions, identical test hash, recorded failure and passing result in a readable bundle.
One supported workflow, start to finish
You need Git, Python 3.12 or later for Alluvia, and a Python project with a committed fix and an existing pytest environment. Install the CLI and plugin, then open Claude Code in that project.
uv tool install alluviaclaude plugin marketplace add dylanp12/alluviaclaude plugin install alluvia@alluviaAlready installed? Run uv tool upgrade alluvia and claude plugin update alluvia@alluvia, then restart Claude Code.
In Claude Code, describe the correction:
/alluvia:protect Uploads must be smaller than 8 MiB. Exactly 8 MiB must be rejected.Your agent finds the revisions, writes one test and runs the verification. No Alluvia sign-in, history import or extra model key is required.