> ## Documentation Index
> Fetch the complete documentation index at: https://gump.build/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Gate Reference

> Complete reference for all gate types.

# Gate Reference

Complete reference for all gate types, their behavior, and resolution.

## Shell alias gates

Resolution cascade: heuristic (project markers) → config (`gump.toml`) → inline (`bash:` gate).

### compile

| Marker         | Command          |
| -------------- | ---------------- |
| `go.mod`       | `go build ./...` |
| `package.json` | `npm run build`  |
| `Cargo.toml`   | `cargo build`    |

Behavior: **required**. Fails with an error if no command can be resolved.

### test

| Marker         | Command         |
| -------------- | --------------- |
| `go.mod`       | `go test ./...` |
| `package.json` | `npm test`      |
| `Cargo.toml`   | `cargo test`    |

Behavior: **required**.

### lint

| Marker         | Command             |
| -------------- | ------------------- |
| `go.mod`       | `golangci-lint run` |
| `package.json` | `npm run lint`      |
| `Cargo.toml`   | `cargo clippy`      |

Behavior: **optional**. Skipped with warning if tool not available.

### coverage: N

Runs tests with coverage and checks against threshold N. Behavior: **optional**. Skipped if tooling not available.

## Structural gates

### schema

Validates split output: JSON array, each item has `name` (string) and `description` (string), `files` optional array of strings.

### touched: "glob"

At least one file matching the glob was modified. Glob matches on basename. Uses Go's `filepath.Match`.

### untouched: "glob"

No file matching the glob was modified. The inverse of `touched`.

### tests\_found

The test runner finds and recognizes tests. Different from `test` — doesn't care if tests pass, only that they exist.

## Custom gates

### bash: "command"

Exit 0 = pass. Stderr captured as error context.

## Workflow validator gates

### validate: path/to/workflow

Invokes a workflow with `type: validate`. The workflow executes its own GET → RUN → GATE cycle and returns a bool. Inputs are provided inline:

```yaml theme={null}
gate:
  - validate: validators/arch-review
      diff: "{diff}"
      spec: "{spec}"
      agent: claude-opus
```

Comments from the validator are accessible via `{gate.review.comments}` on retry.

## Gate execution

All gates execute even if one fails (no short-circuit). The complete error context is available to the agent on retry.
