Set project-specific behaviour in args.json. The workflow also has matching
top-of-file defaults, but the sidecar args.json is the normal retuning point
for ODW launches.
Common arguments:
base: integration branch. Defaults tomain.roadmap: roadmap path. Defaults todocs/roadmap.md.designDocs: design document and ADR locations cited in planner prompts.researchNote: optional external-library research pointer, such as a vendored source path.projectRoot: target-project checkout tochdirinto before the workflow creates worktrees. Use this when launching a copied workflow from a sidecar.searchBackend: canonical code-search backend for prompt guidance. Supported values aregrepaiandmemtrace. Defaults togrepai, or tomemtracewhenmemtraceRepoIdis set.grepaiWorkspace: GrepAI workspace name. Defaults toProjects.grepaiProject: canonical main-branch GrepAI project name. Set this when the ODW source path or worker worktree path would make$(get-project)resolve to the wrong project.memtraceRepoId: canonical Memtrace repository id. Set this, or setsearchBackendtomemtrace, when GrepAI is unavailable on the host.coderabbitReviewCommand: CodeRabbit command used in implementation prompts. Defaults tocoderabbit review --agent.maxParallel: task worker-pool width. Defaults to8unlesstaskIdis set.maxPlanningParallel: concurrent planning-stage agents. Defaults to4.maxBuildParallel: concurrent build-stage agents. Defaults to4.maxTasks: maximum roadmap tasks for one run.maxDesignRounds: planning and design-review exchange cap. Defaults to4.maxReviewRounds: implementation review/fix exchange cap. Defaults to3.commitGates: ordered list of deterministic gate commands every task, addendum, fix, and remediation agent must run before declaring work green. Defaults to["make all"]. The run result echoes the effective list so operators can audit reported gate greenness against it; agents are told never to assumemake allaggregates the gates a project names inAGENTS.md.hostCommitGates: whentrue(the default), the workflow host re-runs thecommitGatescommands itself against each branch's committed HEAD before review and integration, so agatesGreenclaim is verified rather than trusted. Setfalseto restore the trust-the-agent flow.commitGateTimeoutSeconds: per-command timeout for host-run gates. Defaults to3600; a gate that exceeds it is killed and reported as a failure with the timeout named in the evidence.stageAttempts: total attempts per stage agent when the previous attempt died on an infrastructure fault (an ODW adapter timeout or crash, or schema-retry exhaustion). Defaults to2. Product failures are never retried, and the host never re-dispatches a faulted integration stage: a crash between the squash push and the agent's return can leave a hidden success already landed onorigin/<base>, which the host cannot detect, so repeating the stage risks a double merge. (The integration agent still redoes its own squash idempotently on a non-fast-forward push rejection within a single turn — see the recovery model.)perWorkItemBuild: whentrue(the default), the workflow host reads the approved ExecPlan's## Progresschecklist and dispatches one builder turn per unticked work item, verifying committed progress after every turn. Plans without a Progress checklist fall back to the single-turn build automatically; setfalseto force the single-turn build for every task.maxWorkItemRounds: builder turns per task before the work-item loop fails closed. Defaults to16.coderabbitHostReview: whentrue(the default), the workflow host runscoderabbit review --agentagainst each task's committed work instead of asking agents to babysit CodeRabbit. Rate-limit backoff is absorbed as host wall-clock (zero agent tokens), and blocking findings feed the fix rounds. Setfalseto restore the legacy agent-run flow.hostGatesBetweenWorkItems: whentrue(the default), and when bothhostCommitGatesandperWorkItemBuildare on, the host re-runs the commit gates after each committed work item — before the between-item CodeRabbit review — so a committed work item whose gates are actually red is caught at the item boundary instead of only at the dual-review stage. A red gate drives a bounded fix loop; if it cannot be made green the work item fails. Setfalseto verify gates only at the dual-review boundary (cheaper: one gate run per review round rather than one per work item).csCheck: whentrue(the default), the host runs a CodeScene code-health check on the committed changed files as a deterministic gate AFTER the commit gates and BEFORE CodeRabbit (both free checks precede the quota-limited CodeRabbit and the token-spending reviewer agents). A regression drives a bounded fix round; the build agent clears it by refactoring or, only where refactoring would be deleterious, suppresses the specific smell with a justified@codescene(disable:"...")comment. The check skips gracefully when its binary is absent, likemake verify-moduleswithout Dafny. Setfalseto disable it.csCheckCommand: the command the CodeScene check runs in the worktree. Defaults tocs-check-changed(an operator-provided wrapper); override it with the exact invocation, e.g.cs check --changed --base main.coderabbitBetweenWorkItems: whentrue(the default), and when bothcoderabbitHostReviewandperWorkItemBuildare on, the host runs a CodeRabbit review after each committed work item — a deterministic gate between build turns, after the host gates — rather than only once after the whole implementation stage. Blocking findings drive a bounded fix loop; if they cannot be cleared the work item fails, and if CodeRabbit stays rate-limited or errors after its retries the task halts for assessment instead of continuing unreviewed. Setfalseto review only once at the end of the implementation stage.coderabbitAttempts: total host review attempts when CodeRabbit rate limits. Defaults to3.coderabbitBackoffMinutes:[low, high]range for the deterministic backoff wait between rate-limited attempts. Defaults to[45, 90].coderabbitFindingsFile: optional absolute path to an append-only JSONL file recording every CodeRabbit finding (timestamp, task, severity, file, comment). Point it at a sidecar file to accumulate findings across runs and tune deterministic lint rules from the recurring classes.writeProbeEffort: reasoning effort for the once-per-run write-preflight probe (write an exact token to an exact path — no reasoning). Defaults tominimal. The probe keeps the plan/build ADAPTER but never inheritsplanModel/buildModel.writeProbeModelByAdapter: optional{ "<adapter>": "<model>" }map to run the probe on a cheaper model per adapter (adapter name lowercased). Defaults to Claude Haiku (claude-haiku-4-5) and GPT-5.6 Luna (gpt-5.6-luna) for the default planning and build adapters respectively.assessmentModel: model for the report-only partial-branch assessment. Defaults to a medium model (claude-sonnet-5) rather than inheriting the Opus-class review model, because a deterministic fast-classifier already handles the clear cases (empty branch, evidence-collection failure) with zero tokens and only genuinely ambiguous branches reach the model.assessmentEscalationModel: the stronger model used for a strong adopt-complete candidate (a branch that committed an ExecPlan). Defaults to the review model.triageModel: model for remediation triage. Defaults to a medium model (gpt-5.6-sol); a deterministic pre-pass collapses exact-duplicate proposals before the agent runs.triageEffort: reasoning effort for remediation triage. Defaults tomedium.triageEscalationModel: the stronger model used when the deduped proposals span more than one audit/review source (potential cross-phase or conflicting routing). Defaults to the samegpt-5.6-solmodel.taskId: run exactly one roadmap task.dryRun: whentrue, a fresh task stops before worktree creation — and so before planning, review, implementation, integration, or document writes — making it a read-only validation path that mutates no git state. (Recovery and continue-mode resume keep their own dry-run handling over pre-existing worktrees.)autoMerge: whenfalse, leave reviewed task branches for manual integration.documentAudit: whenfalse, return audit findings without writing audit files.assessPartialBranches: whenfalse, skip the report-only assessment of failed or halted task branches. Defaults to enabled.resumePartialBranches: whentrue, discover survivingroadmap-*branches on launch and assess them before normal roadmap selection. Defaults tofalse; the default workflow behaviour is unchanged unless an operator opts in.resumeMode: the maximum recovery action for discovered branches.assess(the default) reports only.reviewmay additionally route clean, committed, task-scopedadopt-completebranches with validation evidence into the ordinary review and integration path.continuedispatches each surviving branch deterministically from its committed ExecPlan status, with no judgement agent. Any other value fails fast at launch.resumeTaskId: limit recovery discovery to one roadmap id. This is separate fromtaskId, which selects normal roadmap work.resumeMaxCandidates: bound on recovery candidates per run. Defaults to4; excess candidates are reported as skipped with reasoncandidate-cap.worktreeWritePreflight: whenfalse, skip the once-per-run probe that proves the planning and build adapters can write into sibling task worktrees. Defaults to enabled; a failed probe fails the task at stageworktree-writeas an environment fault.buildAdapterandbuildModel: adapter and model for worktree creation, implementation, integration, and remediation agents.planAdapterandplanModel: adapter and model for planning agents.reviewAdapterandreviewModel: adapter and model for design review, code review, expert review, and addendum fallback review agents.auditAdapter,auditModel, andauditEffort: adapter, model, and effort for post-merge audits. Defaults to Claude Code,claude-sonnet-5, andmedium.triageAdapterandtriageModel: adapter and model for remediation triage (routing review and audit proposals onto roadmap lanes). Defaults arecodexandgpt-5.6-sol.assessmentAdapterandassessmentModel: adapter and model for partial branch assessment.assessmentAdapterdefaults to the review adapter, whileassessmentModelindependently defaults toclaude-sonnet-5.
Current defaults deliberately split execution and judgement. Build,
implementation, and integration use GPT-5.6 Terra through the medium-effort
Codex adapter; triage uses GPT-5.6 Sol at medium effort. Planning and review
judgement default to Claude Code with claude-opus-4-8. That means the plan
stage, design review, code review, expert review, and addendum fallback review
use the reviewAdapter or planAdapter Claude routing unless args.json
overrides them. Post-merge audit uses Claude Sonnet 5 at medium effort. Set
assessmentAdapter explicitly when partial-branch assessment should stay on
Codex instead of inheriting the review adapter.
Example args.json:
{
"base": "main",
"roadmap": "docs/roadmap.md",
"projectRoot": "/home/example/Projects/example-project",
"designDocs": "docs/architecture.md, docs/adr-001-adopt-odw-sidecar-launches.md, docs/users-guide.md, docs/developers-guide.md",
"searchBackend": "grepai",
"grepaiWorkspace": "Projects",
"grepaiProject": "example-project",
"maxParallel": 8,
"maxPlanningParallel": 4,
"maxBuildParallel": 4,
"maxTasks": 12,
"coderabbitFindingsFile": "/home/example/Projects/example-project.workshop/df12-build-run/coderabbit-findings.jsonl",
"buildAdapter": "codex-medium",
"buildModel": "gpt-5.6-terra",
"planAdapter": "claude",
"planModel": "claude-opus-4-8",
"assessmentAdapter": "codex-high",
"assessmentModel": "gpt-5.5",
"triageAdapter": "codex",
"triageModel": "gpt-5.6-sol",
"triageEffort": "medium",
"reviewAdapter": "claude",
"reviewModel": "claude-opus-4-8",
"auditAdapter": "claude",
"auditModel": "claude-sonnet-5",
"auditEffort": "medium"
}