Behavioral merge gate for AI code: mutation-tests your diff before merge.
266
mancube/mergestro-gate)A behavioral merge gate for AI-generated code — it mutation-tests your diff and blocks merges whose new code isn't actually covered by tests.
LLM-written code compiles, looks plausible, and ships with tests that assert nothing. Mergestro Gate runs differential mutation testing on the changed lines: it mutates your diff, reruns the suite, and any mutant that survives is a line your tests don't really check. It also runs static slop, security, and convention lanes over the same diff. One verdict, gate-able in CI.
mancube/mergestro-gate — slop-gate CLI on Alpine (rust:1-alpine), with the Rust toolchain + cargo-mutants baked in, so the mutation gate runs fully in-container (no toolchain to wire up).linux/amd64 (arm64 buildable on demand — see Multi-arch below) · Runs as: nonroot (uid 65532)/usr/local/bin/slop-gate (entrypoint) · Workdir / mount point: /work| Tag | Notes |
|---|---|
latest | newest release |
0.5.0 | pinned version (= current latest) |
0.5 | latest 0.5.x |
Pin a version in CI: mancube/mergestro-gate:0.5.0.
slop-gate — the gate CLI (entrypoint).cargo + rustc + cargo-mutants — the Rust mutation engine compiles
and tests each mutant, so it needs a toolchain at run time. Baked in.git — merge-base / diff against the base ref.The non-Rust engines (Python / JS / Go / JVM) are advisory PoCs and are not bundled — add their toolchains yourself if you need them.
The container's workdir is /work — mount your repo there. It must be a git
checkout with the base ref fetched (e.g. git fetch origin main).
# Behavioral gate over the working tree's diff vs origin/main:
docker run --rm -v "$PWD:/work" mancube/mergestro-gate:0.5.0 \
--repo /work --base origin/main
# Predict the mutant workload first, without building/testing (fast):
docker run --rm -v "$PWD:/work" mancube/mergestro-gate:0.5.0 \
estimate --repo /work --base origin/main
# Summarise telemetry from prior runs (--metrics-file output):
docker run --rm -v "$PWD:/work" mancube/mergestro-gate:0.5.0 \
analyze --metrics-file /work/slop-gate-metrics.jsonl
# Help / version:
docker run --rm mancube/mergestro-gate:0.5.0 --help
The gate compiles + tests every mutant in your diff, so wall-clock scales with diff size × suite time. Use
estimateto size a run before committing to it.
Prefer your own toolchained image? Copy the binary in and bring your own
cargo-mutants:
FROM rust:1-bookworm
COPY --from=mancube/mergestro-gate:0.5.0 /usr/local/bin/slop-gate /usr/local/bin/slop-gate
RUN cargo install cargo-mutants
ENTRYPOINT ["slop-gate"]
Published images are linux/amd64. An arm64 build exists but is opt-in — the
arm64 leg compiles cargo-mutants under QEMU emulation (slow), so it's run on
demand via the repo's Publish Docker image workflow rather than every release.
For GitHub Actions, the Mergestro Gate Action is simpler than wiring this image into a job (it runs on a toolchained runner). Use this image for local runs, non-GitHub CI, and as a self-contained gate environment.
Content type
Image
Digest
sha256:8f1f1087b…
Size
348.2 MB
Last updated
3 months ago
docker pull mancube/mergestro-gate