Skip to content

Feature flags

MO_* and MINI_ORK_* variables change runtime behaviour. Defaults shown are the in-code fallbacks — the behaviour you get when the variable is unset. Set flags in the process environment or in config/secrets.local.sh; never put a secret in a command-line argument.

Start with defaults

The defaults are chosen to keep the standard CLI path safe. The verification stack is ON by default; the self-improvement apply loop is OFF.

Execution and dispatch

Variable Default Effect
MINI_ORK_EXECUTE_GATE 1 Pre-dispatch gate on plans with unanswered questions (exit 6)
MO_LANE_HEALTH_GATE 1 Probes every lane the DAG will use before the run; a dead lane aborts with exit 75, blocked_reason=lane_unhealthy
MO_LANE_REQUIRE_VERIFICATION 0 Fail-closed switch for lanes the gate could not verify; 1 aborts with blocked_reason=lane_unverified
MO_LANE_PROBE env-derived 0 disables the live HTTP probe; MINI_ORK_DRY_RUN=1 forces it off
MO_APPLY_IMPL_OUTPUT 1 Parse implementer text for a diff when nothing was applied
MO_HEARTBEAT_TIMEOUT_S 300 Stale-heartbeat watchdog threshold
MO_DISPATCH_TIMEOUT 1500 Dispatch-level timeout
MO_MAX_TRANSCRIPT_BYTES 1048576 Transcript cap per node
MO_TRAJECTORY_TTL_DAYS 30 turn_jsonl retention; 0 disables the run-end prune
MO_FALLBACK_CODING minimax,glm,deepseek_flash Fallback lane chain for coding roles
MO_FALLBACK_REVIEW opus,glm,sonnet Fallback lane chain for review roles
MO_NODE_HEARTBEAT_SECONDS 60 How often a running node writes a heartbeat row

A lane that answers ok without a live probe is unverified, not healthy. With the default MO_LANE_REQUIRE_VERIFICATION=0 the run proceeds and records the lanes under unverified in <run_dir>/lane-preflight.json. A dead lane always blocks first.

Verification stack

On by default. Set a master switch to 0 to disable that term.

Variable Default Effect
MO_ASSAY_RELATIONS 1 Metamorphic-relations term; a broken relation vetoes a would-be PROVEN
MO_ASSAY_RELATIONS_RESCUE 1 Relations may PROVE the no-informative-invariant case
MO_ASSAY_RELATIONS_K 3 Relations per judgement (1–5)
MO_ASSAY_RELATIONS_VETO_MIN 1 Attributed violations needed to veto
MO_ASSAY_DIFFERENTIAL 1 Differential base-vs-patch term
MO_ASSAY_DIFFERENTIAL_N 6 Shared inputs per judgement (2–8)
MO_ASSAY_DIFFERENTIAL_VETO_MIN 2 Confirmed preserve divergences needed to veto
MO_SUITE_ADEQUACY 1 Mutation kill-rate audit of the code-fix suite
MO_SUITE_ADEQUACY_MAX_MUTANTS 12 Mutant cap (1–50)
MO_SUITE_ADEQUACY_MIN_SCORE 0.6 Kill-rate threshold for ADEQUATE
MO_SUITE_ADEQUACY_TIMEOUT_S 300 Per-run suite timeout
MO_LEVEL_VECTOR 1 Five-level verdict vector; publish only when every required level is PROVEN
MO_GATE_HACKABILITY_N 4 Proposer documents per gate in gate-fuzz --hackability
MO_GATE_HACKABILITY_MAX 0.25 Promotion refuses a gate measured above this
MO_PROMOTION_GATE_HACKABILITY 1 Promotion gate consumes hackability records
MO_BEHAV_EQUIVALENCE exact Behavioural comparison: exact, set, canonical, tolerant, or a JSON spec

Cautious-by-default gates

These are OFF or shadow because turning them on changes what gets approved.

Variable Default Effect
MO_PROBE_VALIDITY 0 0 off · 1 enforce · shadow record only. Refuses a run whose verify proved nothing, whose probes alias acceptance criteria, or whose probes already pass on the base tree
MO_EVIDENCE_LEDGER 0 0 off · 1 enforce · shadow record only. Refuses a run with no valid evidence row bound to the current tree
MO_KICKOFF_GUARD shadow A run must not rewrite its own kickoff. on restores the snapshot and refuses the publish
MO_REVIEW_ROUND_AWARE off Tells the reviewer which attempt it is judging and to block only on HIGH severity on the final attempt

The shadow mode evaluates and records (would_block plus a note) without blocking. It is the right way to measure a gate before enforcing it.

Planning

Variable Default Effect
MINI_ORK_PLAN_CONFIDENCE_FLOOR 0.7 Below this plan confidence the run is refused
MO_PLAN_DETERMINISTIC_FALLBACK 0 Force the deterministic recipe fallback plan
MO_FORCE_RECIPE_FALLBACK_PLAN 0 Skip the LLM; use the recipe fallback plan
MO_PLAN_MAX_REPAIRS 2 Plan-repair attempts before failing
MO_GIVEN_PLAN "" Supply a plan directly, skipping planning
MO_INJECT_LEARNINGS 1 Inject learned failure modes into planner prompts
MINI_ORK_PROFILE_STRICT 0 Block planning when the profile has open questions

Routing and the learning loop

Variable Default Effect
MO_LANE_ROUTER 1 Learning-governed lane routing
MO_ROUTER_CONTEXTUAL 0 Slice-aware bandit routing
MO_ROUTER_PER_NODE_CREDIT 0 Per-node credit assignment
MO_LEARNING_WRITEBACK 1 GRPO advantage writeback after runs
MO_PRM_SCORE 1 Process-reward scoring on traces
MO_REWARD_STAMP 1 Stamp reward on execution traces
MO_REFLECTION_EXTRACT_GRADIENTS 1 Gradient extraction during reflect
MO_PATTERN_MINER 1 Pattern mining in reflect
MO_EMERGENT_INJECT 1 Inject emergent patterns into context packs
MO_EMERGENT_VERIFY 1 Judge-verify emergent patterns before promotion
MO_BUG_REPORT_SWEEP 1 Bug-report sweep in reflect
MO_BUG_REPORT_AUTO_PROMOTE 0 Auto-promote swept bug reports

Apply loop

Variable Default Effect
MO_APPLY_ENABLED (unset) Master gate for mini-ork apply
MO_APPLY_DRY_RUN (unset) Default --dry-run for apply
MO_ACCEPT_PREMIUM (unset) Allows premium features (own multiplier > 1.5×)

Orchestration and scheduling

Variable Default Effect
MINI_ORK_RECURSIVE_MAX_DEPTH 2 Recursive spawn depth cap
MINI_ORK_RECURSIVE_MAX_CHILDREN 4 Children per recursive node
MINI_ORK_RECURSIVE_MAX_DESCENDANTS 16 Total recursive descendants
MO_SCHED_MAX_PARALLEL 3 Scheduler epic parallelism
MO_ORCH_WATCH 1 0 stops run spawning the interval watcher
MO_ORCH_WATCH_INTERVAL_S 20 Seconds between watcher ticks
MO_ORCH_WATCH_AUTONOMY steer steer · notify · off
MO_ORCH_WATCH_MAX_STEERS 2 Nudges per run
MO_ORCH_WATCH_MAX_HOURS 12 Watcher lifetime cap
MO_REVIEW_PANEL codex kimi glm Pre-push review panel lanes
MO_ORACLE_GATES_AUTO 1 Auto oracle-gate run before publish

Recipe-declared recursion caps

MO_RECURSION_MAX_ITERATIONS, MO_RECURSION_CONVERGENCE_CHECK, MO_RECURSION_BUDGET_CAP_PER_ITER_USD, MO_RECURSION_BUDGET_CAP_TOTAL_USD and MO_RECURSION_DIVERGENCE_KILL are derived from a recipe's recursion: block in workflow.yaml. Do not set them by hand; edit the YAML. A partial block fails mini-ork validate.

Context

Variable Default Effect
MO_CONTEXT_V2 shadow off · shadow build and record only · on inject v2 context
MO_CONTEXT_V2_HOLDOUT 0.2 Share of runs kept on v1 for comparison
MO_CONTEXT_V2_MIN_SEVERITY medium Lowest recurring-finding severity injected
MINI_ORK_CTX_BUDGET_TOKENS 64000 Context-pack token budget