# Configuration reference

Every repository, timing, model, gate, and operational-policy setting.

## Complete example

```
{
  "repos": [{
    "url": "https://github.com/acme/checkout",
    "startingRef": "main",
    "packages": ["stripe"],
    "setupCommand": "auto",
    "testCommand": "npm test",
    "testGate": "checks",
    "requiredChecks": ["lint", "test"]
  }],
  "pollIntervalMinutes": 60,
  "model": "composer-2.5",
  "checkTimeoutMinutes": 15,
  "checkPollIntervalSeconds": 20,
  "policies": {
    "allowedUpdateTypes": ["patch", "minor", "major"],
    "packageAllowlist": [],
    "packageDenylist": [],
    "maxConcurrentMigrations": 1,
    "maxRunsPerCycle": 10,
    "cooldownMinutes": 30,
    "draftPullRequests": true,
    "maxRetries": 1
  }
}
```

## Repository fields

| Field | Default | Notes |
| --- | --- | --- |
| startingRef | main | Agent base branch |
| setupCommand | auto | auto, none, or a shell command |
| testCommand | npm test | Runs only after setup succeeds |
| testGate | auto | auto, checks, or local |
| requiredChecks | [] | Exact GitHub Check names |

## Policy limits

| Field | Range/default |
| --- | --- |
| maxConcurrentMigrations | 1–10; default 1 |
| maxRunsPerCycle | 1–100; default 10 |
| cooldownMinutes | 0 or greater; default 0 |
| maxRetries | 0–3; default 1 |
| draftPullRequests | default true |
