Skip to content

Configuration

goga reads project configuration from .goga/config.yml in the project root. This file is created by goga init and can be edited manually.

File location

.goga/config.yml

The config loader looks for this file relative to the current working directory.

Example configuration

language: python
build:
  image: qarium/goga-python-3.14:1.0

  task_executor:
    agent: claude
    env:
      ANTHROPIC_API_KEY: sk-ant-...

  worktree: false
  skip_finalize: false
  session_timeout: 30m
  idle_timeout: 10m
  max_iterations: 10

codemanifest:
  usages:
    conventions: .goga/usages/conventions.md

  annotations: |
    Follow the project `conventions` for all code generation.

Fields reference

Top-level

Field Type Required Description
language string Yes Project language. One of: python, golang, kotlin, swift, javascript
build mapping Yes Build pipeline settings
commands mapping No Reserved for future prompt customization. Defaults to {}
codemanifest mapping No Global codemanifest configuration

build

Field Type Required Description
task_executor mapping Yes AI agent configuration
image string No Docker image for build execution (e.g. qarium/goga-python-3.14:1.0)
worktree bool No Use isolated git worktree for builds
skip_finalize bool No Skip the ralphex finalization step
session_timeout string No Session timeout in Go duration format (e.g. 30m, 1h)
idle_timeout string No Idle timeout in Go duration format
wait string No Wait time on rate limit in Go duration format
max_iterations int No Maximum task iterations
review_patience int No Stop review after N unchanged rounds
prompts_dir string No Path to custom ralphex prompts
agents_dir string No Path to custom ralphex agents
codex_review bool No Enable external codex review

build.task_executor

Field Type Required Description
agent string Yes AI executor. Supported values: claude, codex, copilot, gemini, or custom:/path/to/script
env mapping No Environment variables passed to the agent. Keys and values must be strings. Defaults to {}

codemanifest

Field Type Required Description
usages mapping No Named practices available in CODEMANIFEST files. Format: {name: path/to/file.md}. Defaults to {}
annotations string No Free-text instructions for AI agents. Defaults to None

Pre-built Docker images

goga provides prebuilt language images for build execution:

Language Images
Python qarium/goga-python-3.10:1.0 through qarium/goga-python-3.14:1.0
Go qarium/goga-golang-1.23:1.0 through qarium/goga-golang-1.26:1.0
JavaScript qarium/goga-node-22:1.0, qarium/goga-node-24:1.0
Kotlin qarium/goga-kotlin-2.0:1.0 through qarium/goga-kotlin-2.3:1.0
Swift qarium/goga-swift-6.0:1.0 through qarium/goga-swift-6.2:1.0

Validation errors

The config loader raises specific exceptions for invalid configuration:

Error Cause
FileNotFoundError .goga/config.yml does not exist or is empty
KeyError Missing required field (language, build, or build.task_executor)
ValueError Invalid field value (wrong type, empty string, non-mapping where mapping expected)

Implementation details

Configuration is loaded as immutable frozen dataclasses (frozen=True, kw_only=True). Once loaded, the Config object cannot be modified. This ensures consistent behavior across the build pipeline.