1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
[]
# Durable-by-default backend for write commands.
= "postgres"
= "execute"
[]
# Replace with your deployment DSN, or set DATABASE_URL in the runtime environment.
# For Kubernetes, mount credentials as a file and set this instead:
# database_url_file = "/run/secrets/yarli-postgres-url"
= "postgres://postgres:postgres@localhost:5432/yarli"
[]
# Optional backend alias (codex | claude | gemini | custom).
# backend = "codex"
# arg | stdin
= "arg"
= "codex"
= ["exec", "--json"]
# Unset selected variables before launching the CLI command.
# env_unset = ["CLAUDECODE"]
[]
# Parallel execution is enabled by default.
= true
# Use git worktrees instead of full directory copies for parallel workspaces.
# Falls back to copy mode when git worktrees are unavailable.
# parallel_worktree = true
[]
= 4
= 60
= 5
= 10
= 15
= 8
= 4
= 2
= 2
= 2
[]
# native | overwatch
= "native"
# `~` and `$ENV_VAR` tokens are expanded for execution paths.
= "."
# Required when [features].parallel = true.
# Leave unset to force an explicit per-project choice before `yarli run`.
# Task workspaces are created under this root and auto-merged on RunCompleted.
# worktree_root = ".yarl/workspaces"
# Directory names or paths to exclude from per-task workspace copies.
# Helps avoid copying large/generated trees in parallel mode.
= [".yarl/workspaces", ".yarli", "target", "node_modules", ".venv", "venv", "__pycache__"]
= 900
= 200
[]
# Used only when execution.runner = "overwatch"
= "http://127.0.0.1:8089"
# profile = "default"
# soft_timeout_seconds = 900
# silent_timeout_seconds = 300
# max_log_bytes = 131072
[]
# Optional default prompt file for `yarli run`.
# Resolution precedence: --prompt-file > run.prompt_file > PROMPT.md fallback.
# prompt_file = "PROMPT.md"
# Optional default objective when no prompt override is present.
# objective = "verify workspace"
= 0
# Legacy compatibility toggle; prefer run.auto_advance_policy.
= false
# improving-only | stable-ok | always
= "stable-ok"
# Optional task-health actions by trend (checkpoint-now|force-pivot|stop-and-summarize|continue)
# improve/stable/deteriorating actions.
[]
= "continue"
= "continue"
= "continue"
# Soft cap ratio of [budgets].max_run_total_tokens that triggers checkpoint-now.
# Set to 0 to disable.
= 0.9
# 0 = unlimited auto-advance tranches in one invocation.
= 0
# Group adjacent open plan entries with matching `tranche_group=<name>` metadata.
= false
# 0 = unlimited tasks per grouped tranche.
= 0
# Surface `allowed_paths=...` plan metadata as explicit per-tranche scope constraints.
= false
# Merge strategy for parallel workspace patch conflicts: fail | manual | auto-repair
# merge_conflict_resolution = "fail"
# Auto-commit YARLI state files after every N tranches (0 = disabled).
# auto_commit_interval = 1
# Template for auto-commit messages.
# auto_commit_message = "chore(state): checkpoint runtime state"
# Optional run-spec task catalog (project-level verification/work commands).
# [[run.tasks]]
# key = "lint"
# cmd = "cargo clippy --workspace -- -D warnings"
# class = "cpu"
#
# [[run.tasks]]
# key = "test"
# cmd = "cargo test --workspace"
# class = "io"
#
# Optional explicit tranche ordering for run-spec execution.
# [[run.tranches]]
# key = "verify"
# objective = "verification tranche"
# task_keys = ["lint", "test"]
#
# Optional plan guard for run-spec execution.
# [run.plan_guard]
# target = "CARD-R8-01"
# mode = "implement"
[]
# Optional hard limits; unset values are unlimited.
# Values are per-task unless prefixed with max_run_.
# Token accounting currently uses deterministic char-count estimates.
= 25000
= 250000
= 1073741824 # 1 GiB
= 2147483648 # 2 GiB
[]
= true
= true
[]
# Enable memory integrations and choose a named provider from [memory.providers.<name>].
# enabled = true
# project_id = "my-project"
# provider = "default"
# Generic provider registry (adapter pattern).
# Configure one or more providers and select with [memory].provider.
[]
= "cli"
= false
= "memory-backend"
# project_dir = "."
= 8
= true
= true
# Example alternative plugin provider:
# [memory.providers.kafka]
# type = "cli"
# enabled = false
# command = "memory-kafka-adapter"
# query_limit = 8
# inject_on_run_start = true
# inject_on_failure = true
# Legacy fallback (still supported):
# [memory.backend]
# enabled = true
# command = "memory-backend"
# query_limit = 8
[]
= ".yarl/audit.jsonl"
[]
# auto | stream | tui
= "auto"
# Stream command output to terminal scrollback when true.
= false
# Attach additional diagnostic context to cancellation provenance when true.
= false
# Explicit ephemeral override for local throwaway usage only.
# Uncomment to allow write commands with core.backend = "in-memory".
#
# [core]
# allow_in_memory_writes = true