Obvious/Help Center

config.yml Reference

Published May 22, 2026 · Last updated May 22, 2026 · 3 min read

Minimal Example

The smallest useful configuration:

branches:
  defaultBase: main

pr:
  merge:
    method: squash

Full Schema

Branching Strategy

Controls which branch agents target for new PRs and whether release branch workflows are enabled.

branches:
  defaultBase: main
  release:
    enabled: false
    base: main
FieldDefaultWhat it does
branches.defaultBasemainDefault base branch for PRs
branches.release.enabledfalseEnables release branch workflows
branches.release.basemainBase branch for release branches

PR & Merge Behavior

Controls how agents merge pull requests.

pr:
  merge:
    method: squash
FieldDefaultWhat it does
pr.merge.methodsquashHow PRs are merged: squash, merge, or rebase

Continuous Integration

Defines commands that regenerate files (snapshots, compiled schemas, auto-generated code) when specific file patterns are modified. Agents run these commands before committing whenever matching files change.

ci:
  generatedFileCommands:
    - name: prompt-snapshots
      filePatterns:
        - "apps/api/src/agents/**"
      command: "cd apps/api && UPDATE_SNAPSHOTS=true bun test ..."
FieldDefaultWhat it does
ci.generatedFileCommandsCommands to regenerate files (snapshots, codegen) before committing

See Generated File Commands for a detailed breakdown of this field.

Preview Environments

Configures preview environment URLs so agents can construct and reference deployment links.

preview:
  primaryEnvironment: staging
  environments:
    staging:
      urlTemplate: "https://pr-{prNumber}-staging.example.com"
      backendBaseUrl: "https://api.stage.example.com"
FieldDefaultWhat it does
preview.primaryEnvironmentWhich environment key to use for preview deploys
preview.environments.<key>.urlTemplateURL pattern for preview environments ({prNumber} is substituted)
preview.environments.<key>.backendBaseUrlBackend API URL for the preview environment

Quality Assurance

Points agents to QA documentation and automation scripts.

qa:
  guidePaths:
    - dashboard/QA.md
  automationPaths:
    - .github/staging-automations/
FieldDefaultWhat it does
qa.guidePathsPaths to QA documentation agents should reference
qa.automationPathsPaths to QA automation scripts agents can execute

Triage & Tracking

Routes automated PR reviews to a specific Obvious project.

triageProjects:
  reviewProjectId: prj_abc123
FieldDefaultWhat it does
triageProjects.reviewProjectIdObvious project ID where automated PR reviews are routed

Complete Field Reference

FieldDefaultWhat it does
branches.defaultBasemainDefault base branch for PRs
branches.release.enabledfalseEnables release branch workflows
branches.release.basemainBase branch for release branches
pr.merge.methodsquashHow PRs are merged: squash, merge, or rebase
ci.generatedFileCommandsCommands to regenerate files (snapshots, codegen) before committing
preview.primaryEnvironmentWhich environment key to use for preview deploys
preview.environments.<key>.urlTemplateURL pattern for preview environments ({prNumber} is substituted)
preview.environments.<key>.backendBaseUrlBackend API URL for the preview environment
qa.guidePathsPaths to QA documentation agents should reference
qa.automationPathsPaths to QA automation scripts agents can execute
triageProjects.reviewProjectIdObvious project ID where automated PR reviews are routed

How Agents Consume config.yml

Agents receive your configuration through two channels.

Preamble Summary

Orchestrators see a compact one-liner summarizing key policy values:

defaultBase=main · release=disabled · merge=squash

Workers see a full table listing every field, its resolved value, and whether the value came from your config or a built-in default.

Shell Environment Variables

Key policy values are injected as environment variables into every shell command agents execute:

VariableSource field
REPO_POLICY_BRANCH_DEFAULT_BASEbranches.defaultBase
REPO_POLICY_MERGE_METHODpr.merge.method
REPO_POLICY_RELEASE_ENABLEDbranches.release.enabled
REPO_POLICY_RELEASE_BASEbranches.release.base
REPO_POLICY_PREVIEW_URLpreview.environments.<primary>.urlTemplate
REPO_POLICY_PREVIEW_BACKEND_URLpreview.environments.<primary>.backendBaseUrl
REPO_POLICY_PREVIEW_TIMEOUT_MINUTESpreview.deploy.timeoutMinutes
REPO_POLICY_SNAPSHOT_COMMANDci.generatedFileCommands[*].command

Generated File Commands

The ci.generatedFileCommands field is designed for repositories with generated artifacts — test snapshots, compiled GraphQL schemas, auto-generated type definitions, or any file that must be kept in sync with source changes.

When an agent modifies files matching the filePatterns globs, it automatically runs the corresponding command to regenerate dependent files before committing.

Field Breakdown

Each entry under ci.generatedFileCommands supports three fields:

FieldRequiredDescription
nameNoHuman-readable label for this command
filePatternsNoGlob patterns that trigger the command when matched files change
commandYesThe shell command to run

Examples

Prompt snapshots — regenerate test snapshots when agent prompt files change:

ci:
  generatedFileCommands:
    - name: prompt-snapshots
      filePatterns:
        - "apps/api/src/agents/modes/prompts/**"
        - "apps/api/src/services/sandbox/skills/**"
      command: "cd apps/api && UPDATE_SNAPSHOTS=true bun test src/agents/modes/prompts/prompts.snapshot.test.ts"

GraphQL codegen — regenerate typed queries when schema files change:

ci:
  generatedFileCommands:
    - name: graphql-codegen
      filePatterns:
        - "**/*.graphql"
      command: "npm run codegen"

Multiple entries are supported — each runs independently based on its own filePatterns.

Config Validation

Agents can validate your config.yml using the built-in CLI:

autobuild-config validate

The validator checks for unknown fields and diagnoses them with suggestions for the correct path. For example, if merge is placed at the top level instead of under pr, the validator identifies the misplacement and points to the correct location.

Run validation after making changes to catch structural errors before agents pick up the file.

Was this helpful?