# Control the rules

Docs for TrueQuery 0.1.6. Switch rules on or off, ignore a single line with a reason, and read the checker's exit codes.

Every rule can be switched on or off, moved between the per-edit and
end-of-turn checks, or given a different severity: per project in
`DATA.md`, or for yourself in `~/.config/truequery/config.yaml`.

```bash
truequery rules                             # what's on, and where each setting came from
truequery rules sql/accidental-cross-join   # one rule: what it means, with a proof
truequery rules set sql/between-date-on-timestamp --enabled off
```

Agents never change rule settings: the skill forbids it, and if settings
change during a session, the agent is told to check with you. An agent may
only ignore a single line, and must give a reason
(`truequery ignore add <rule> <path:line> --reason "..."`). Every rule
earns its place on precision: one that misfires gets fixed or switched off
by default.

## Exit codes

| Code | Meaning |
|---|---|
| `0` | Clean |
| `1` | Findings at or above `--fail-on` (default `error`) |
| `2` | A usage or config error |
| `3` | Some files couldn't be checked. `--allow-unverified` turns this into `0` |
