Gate Reference
Complete reference for all gate types, their behavior, and resolution.Shell alias gates
These gates resolve to shell commands via a three-level cascade:- Heuristic — Gump scans the worktree for project markers
- Config —
gump.tomloverrides (project-specific) - Workflow —
bash:gate overrides (step-specific)
compile
Runs the project’s build command.| Marker | Command |
|---|---|
go.mod | go build ./... |
package.json | npm run build |
Cargo.toml | cargo build |
requirements.txt | python -m py_compile |
test
Runs the project’s test command.| Marker | Command |
|---|---|
go.mod | go test ./... |
package.json | npm test |
Cargo.toml | cargo test |
lint
Runs the project’s linter.| Marker | Command |
|---|---|
go.mod | golangci-lint run |
package.json | npm run lint |
coverage: N
Runs tests with coverage and checks the result against a threshold.Structural gates
schema
Validates that a plan step’s output is well-formed JSON matching the expected format.name (string, non-empty) and a description (string, non-empty), files is optional but if present must be an array of non-empty strings.
The gate reads from the state bag (not directly from .gump/out/plan.json).
touched: “glob”
Verifies that at least one file matching the glob was modified in the step’s diff."*_test.*" matches pkg/auth/middleware_test.go because the basename is middleware_test.go.
Uses Go’s filepath.Match (no recursive ** globbing).
untouched: “glob”
Verifies that no file matching the glob was modified.touched. If any file matching the glob appears in the diff, the gate fails. Used to enforce blast radius boundaries (e.g., the implementation step shouldn’t modify test files).
tests_found
Verifies that the test runner finds and recognizes tests to execute.test — tests_found doesn’t care if tests pass, only that they exist.