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 |
Related¶
- Environment variables — the path and identity contract.
- Verification stack — what the flags enable.
- Cost governance — the budget gate.