Workflow arguments

Updated Jul 27, 2026

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 to main.
  • roadmap: roadmap path. Defaults to docs/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 to chdir into 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 are grepai and memtrace. Defaults to grepai, or to memtrace when memtraceRepoId is set.
  • grepaiWorkspace: GrepAI workspace name. Defaults to Projects.
  • 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 set searchBackend to memtrace, when GrepAI is unavailable on the host.
  • coderabbitReviewCommand: CodeRabbit command used in implementation prompts. Defaults to coderabbit review --agent.
  • maxParallel: task worker-pool width. Defaults to 8 unless taskId is set.
  • maxPlanningParallel: concurrent planning-stage agents. Defaults to 4.
  • maxBuildParallel: concurrent build-stage agents. Defaults to 4.
  • maxTasks: maximum roadmap tasks for one run.
  • maxDesignRounds: planning and design-review exchange cap. Defaults to 4.
  • maxReviewRounds: implementation review/fix exchange cap. Defaults to 3.
  • 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 assume make all aggregates the gates a project names in AGENTS.md.
  • hostCommitGates: when true (the default), the workflow host re-runs the commitGates commands itself against each branch's committed HEAD before review and integration, so a gatesGreen claim is verified rather than trusted. Set false to restore the trust-the-agent flow.
  • commitGateTimeoutSeconds: per-command timeout for host-run gates. Defaults to 3600; 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 to 2. 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 on origin/<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: when true (the default), the workflow host reads the approved ExecPlan's ## Progress checklist 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; set false to force the single-turn build for every task.
  • maxWorkItemRounds: builder turns per task before the work-item loop fails closed. Defaults to 16.
  • coderabbitHostReview: when true (the default), the workflow host runs coderabbit review --agent against 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. Set false to restore the legacy agent-run flow.
  • hostGatesBetweenWorkItems: when true (the default), and when both hostCommitGates and perWorkItemBuild are 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. Set false to verify gates only at the dual-review boundary (cheaper: one gate run per review round rather than one per work item).
  • csCheck: when true (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, like make verify-modules without Dafny. Set false to disable it.
  • csCheckCommand: the command the CodeScene check runs in the worktree. Defaults to cs-check-changed (an operator-provided wrapper); override it with the exact invocation, e.g. cs check --changed --base main.
  • coderabbitBetweenWorkItems: when true (the default), and when both coderabbitHostReview and perWorkItemBuild are 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. Set false to review only once at the end of the implementation stage.
  • coderabbitAttempts: total host review attempts when CodeRabbit rate limits. Defaults to 3.
  • 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 to minimal. The probe keeps the plan/build ADAPTER but never inherits planModel/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 to medium.
  • 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 same gpt-5.6-sol model.
  • taskId: run exactly one roadmap task.
  • dryRun: when true, 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: when false, leave reviewed task branches for manual integration.
  • documentAudit: when false, return audit findings without writing audit files.
  • assessPartialBranches: when false, skip the report-only assessment of failed or halted task branches. Defaults to enabled.
  • resumePartialBranches: when true, discover surviving roadmap-* branches on launch and assess them before normal roadmap selection. Defaults to false; the default workflow behaviour is unchanged unless an operator opts in.
  • resumeMode: the maximum recovery action for discovered branches. assess (the default) reports only. review may additionally route clean, committed, task-scoped adopt-complete branches with validation evidence into the ordinary review and integration path. continue dispatches 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 from taskId, which selects normal roadmap work.
  • resumeMaxCandidates: bound on recovery candidates per run. Defaults to 4; excess candidates are reported as skipped with reason candidate-cap.
  • worktreeWritePreflight: when false, 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 stage worktree-write as an environment fault.
  • buildAdapter and buildModel: adapter and model for worktree creation, implementation, integration, and remediation agents.
  • planAdapter and planModel: adapter and model for planning agents.
  • reviewAdapter and reviewModel: adapter and model for design review, code review, expert review, and addendum fallback review agents.
  • auditAdapter, auditModel, and auditEffort: adapter, model, and effort for post-merge audits. Defaults to Claude Code, claude-sonnet-5, and medium.
  • triageAdapter and triageModel: adapter and model for remediation triage (routing review and audit proposals onto roadmap lanes). Defaults are codex and gpt-5.6-sol.
  • assessmentAdapter and assessmentModel: adapter and model for partial branch assessment. assessmentAdapter defaults to the review adapter, while assessmentModel independently defaults to claude-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"
}