> For the complete documentation index, see [llms.txt](https://docs.aviator.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aviator.co/verify/reference/configuration-reference.md).

# Configuration reference

### Repository settings

Configure in **Verify → Repositories → \[repo] → Settings** or via `.aviator/verify.yaml`.

| Setting                 | Type      | Default | Description                         |
| ----------------------- | --------- | ------- | ----------------------------------- |
| `require_specs`         | boolean   | `false` | PRs must have a linked spec         |
| `exempt_paths`          | string\[] | `[]`    | File patterns that don’t need specs |
| `auto_link_specs`       | boolean   | `true`  | Auto-link specs based on branch/PR  |
| `block_on_failure`      | boolean   | `true`  | Failed verification blocks merge    |
| `draft_pr_verification` | boolean   | `false` | Run verification on draft PRs       |

#### Configuration file

Create `.aviator/verify.yaml` in your repository’s default branch:

```yaml
require_specs:true
exempt_paths:
-"docs/**"
-"*.md"
-".github/**"
-"**/*.test.ts"
auto_link_specs:true
block_on_failure:true
draft_pr_verification:false
```

Dashboard settings override the config file.

#### Exempt paths

Patterns use glob syntax:

| Pattern      | Matches                    |
| ------------ | -------------------------- |
| `docs/**`    | Anything in docs directory |
| `*.md`       | Markdown files in root     |
| `**/*.md`    | Markdown files anywhere    |
| `.github/**` | GitHub config files        |

PRs that only modify exempt paths don’t require specs.

### Organization settings

Configure in **Verify → Settings**.

#### General

| Setting                 | Type    | Default | Description                         |
| ----------------------- | ------- | ------- | ----------------------------------- |
| `default_require_specs` | boolean | `false` | Default for new repositories        |
| `allow_self_approval`   | boolean | `false` | Authors can approve their own specs |
| `approval_count`        | integer | `1`     | Required approvals per spec         |

#### Notifications

| Setting            | Type    | Default | Description                             |
| ------------------ | ------- | ------- | --------------------------------------- |
| `slack_channel`    | string  | none    | Default Slack channel for notifications |
| `email_on_failure` | boolean | `true`  | Email authors on verification failure   |
| `post_pr_comment`  | boolean | `true`  | Post failure details as PR comment      |

#### Timeouts

| Setting                 | Type    | Default | Description                           |
| ----------------------- | ------- | ------- | ------------------------------------- |
| `verification_timeout`  | integer | `300`   | Max seconds for verification          |
| `spec_approval_timeout` | integer | `0`     | Hours before spec expires (0 = never) |

### Org invariants

Configure in **Verify → Settings → Org Invariants**.

#### Invariant structure

```yaml
name: security-baseline
description: Core security requirements
enabled:true
applies_to:"**/*"  # or specific paths
rules:|
  # Security Baseline

  ## Rules
  - All HTTP handlers must use AuthMiddleware
  - No hardcoded credentials
  - SQL queries must use parameterized statements

  ## Exceptions
  - Health check endpoints (/health, /ready)
```

#### Invariant options

| Field         | Type    | Required | Description                       |
| ------------- | ------- | -------- | --------------------------------- |
| `name`        | string  | Yes      | Unique identifier                 |
| `description` | string  | No       | Human-readable description        |
| `enabled`     | boolean | Yes      | Whether invariant is active       |
| `applies_to`  | string  | No       | Glob pattern (default: all files) |
| `rules`       | string  | Yes      | Markdown-formatted rules          |

### Spec settings

#### Spec lifecycle

| State             | Editable | Can verify |
| ----------------- | -------- | ---------- |
| Draft             | Yes      | No         |
| In Review         | No       | No         |
| Changes Requested | Yes      | No         |
| Approved          | No       | Yes        |

#### Spec expiration

If `spec_approval_timeout` is set, approved specs expire after that many hours without verification. Expired specs must be re-approved.

### API configuration

#### Authentication

```bash
export AVIATOR_API_KEY="av_live_..."
```

Generate keys in **Settings → API Keys**.

#### Base URL

```
<https://api.aviator.co/v1/verify>
```

#### Rate limits

| Tier       | Requests/hour |
| ---------- | ------------- |
| Free       | 100           |
| Team       | 1000          |
| Enterprise | 10000         |

### Environment variables

For CI/CD integration:

| Variable                 | Description                              |
| ------------------------ | ---------------------------------------- |
| `AVIATOR_API_KEY`        | API authentication                       |
| `AVIATOR_ORG`            | Organization slug                        |
| `AVIATOR_VERIFY_ENABLED` | Enable/disable verification (true/false) |

### See also

* [How to connect a repository](/verify/how-to-guides/connect-a-repository.md)
* [Tutorial: Setting up org invariants](#org-invariants)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aviator.co/verify/reference/configuration-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
