stop decision configuration
Generated from the typed agent gate registry. Edit the registry, then regenerate.
Reachability records its evidence; source wiring does not prove runtime efficacy.
| Name | Repo | Default | Readers | Headless reachability and evidence | Verdict | Reason / expiry |
|---|---|---|---|---|---|---|
| CompletionGateOptions.exhaustion | harn | allow soft failures after the cap; strict failures keep retrying | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (completion_gate_budget) | unknown: conformance/tests/mechanisms/completion_gate_budget.contract.harn drives the live completion gate through red exhaustion and a passing negative control. | KEEP-with-expiry | A host selects bounded unverified termination without changing the evidence required for success. / 2026-11-18 |
| CompletionGateOptions.classify_write | harn | absent; use the supplied write facts without a custom classifier | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_evaluate); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (completion_gate_verdict); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_validate_options) | unknown: completion_gate.__completion_gate_evaluate passes the optional classifier to the write-count reducer. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompletionGateOptions.escalation_target | harn | absent; no explicit escalation destination | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_validate_options); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_evaluate); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (completion_gate_verdict) | unknown: completion_gate.__completion_gate_evaluate forwards the optional destination to the gate ladder. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompletionGateOptions.escalation_threshold | harn | dynamic: observed local fallback 3; normalization may override | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_validate_options); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_evaluate); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (completion_gate_verdict) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompletionGateOptions.facts | harn | absent; no host fact provider; absent facts and verify_command produce facts_unavailable | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_evaluate); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_validate_options) | unknown: completion_gate.agent_completion_gate determines facts availability from these two inputs and does not claim a measured pass when both are absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompletionGateOptions.feedback_decorator | harn | absent; retain gate feedback | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_evaluate) | unknown: completion_gate.__completion_gate_decorate_feedback returns the original verdict when no decorator is supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompletionGateOptions.feedback_templates | harn | absent; built-in feedback templates | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_validate_options); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (completion_gate_verdict) | unknown: completion_gate.__completion_gate_evaluate supplies the optional templates to the gate ladder. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompletionGateOptions.judge | harn | absent; no additional model judge | unknown: completion_gate.agent_completion_gate installs a judge only when configured and truthy. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| CompletionGateOptions.judge_seam | harn | dynamic: observed local fallback "verify_completion_judge"; normalization may override | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_validate_options) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompletionGateOptions.max_vetoes | harn | dynamic: observed local fallback 3; normalization may override | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (completion_gate_budget); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_evaluate) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompletionGateOptions.require_source_write | harn | dynamic: observed local fallback true; normalization may override | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_evaluate); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (completion_gate_verdict) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompletionGateOptions.requires_write | harn | facts.requires_write, then require_source_write, then true | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_evaluate); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (completion_gate_verdict) | unknown: completion_gate.__completion_gate_evaluate resolves the explicit setting before the fact and legacy setting. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompletionGateOptions.verify_command | harn | absent; use raw.verify when supplied by facts, otherwise no verifier observation | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_evaluate); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (completion_gate_verdict) | unknown: completion_gate.__completion_gate_evaluate prioritizes fact-provided verification before the optional verifier callback. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompletionGateOptions.requirement_contract | harn | absent; no additional task requirements | crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_options); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_validate_options); crates/harn-stdlib/src/stdlib/agent/completion_gate.harn (__completion_gate_evaluate) | unknown: completion_gate normalizes the declared contract and evaluates the facts callback's assessments and evidence through completion_requirement_report. Canonical loop verification is tracked by conformance/tests/mechanisms/stop_decision_requirements.contract.harn; reachability remains unknown until the candidate is exercised. | KEEP-with-expiry | Typed domain requirements belong in the stop decision's data contract. This declares obligations, not an experiment switch; review during downstream adoption. / 2026-09-13 |
| JudgeConfig.cadence | harn | empty object; evaluate every turn when a turn-end condition exists | crates/harn-stdlib/src/stdlib/agent/turn_end.harn (__agent_turn_end_judge_stall_cadence) | unknown: turn_end.__turn_end_judge_cadence normalizes an absent cadence to an empty dictionary. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.deadline_reserve_ms | harn | 5000 for completion checkpoints; absent for other checkpoints | crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (__judge_run_checkpoint); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_completion_options) | unknown: judge_internals.__judge_run_checkpoint clamps the completion deadline reserve to at least zero. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.cadence.every | harn | absent; evaluate every turn | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_judge_cadence); crates/harn-stdlib/src/stdlib/agent/turn_end.harn (__turn_end_judge_every_due); crates/harn-stdlib/src/stdlib/agent/turn_end.harn (agent_stall_turn_end_judge_due) | unknown: turn_end.__turn_end_judge_every_due returns true when every is absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.feedback_fallback | harn | dynamic: observed local fallback ""; normalization may override | crates/harn-stdlib/src/stdlib/agent/judge.harn (__judge_invoke_structured) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.goal | harn | absent; use the configured system prompt | crates/harn-stdlib/src/stdlib/agent/judge.harn (__judge_stable_prefix) | unknown: goal_judge supplies the typed goal; __judge_stable_prefix projects it under recorded completion obligations before rendering. Source review establishes this behavior; downstream headless binding is not inferred. | KEEP-with-expiry | The goal judge needs the typed goal to apply accepted retargets without parsing frozen prompt text. / 2026-10-30 |
| JudgeConfig.max_invocations | harn | completion judge: catalog completion_review.max_judge_calls, then 5; turn-end judge: absent (unbounded); nonpositive disables the cap | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_completion_options); crates/harn-stdlib/src/stdlib/agent/turn_end.harn (agent_turn_end_judge_cap) | unknown: completion_review.__verify_completion_judge_cap and turn_end.agent_turn_end_judge_cap own the two caller defaults. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.cadence.min_iterations_before_first | harn | absent; no warmup delay | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_judge_cadence); crates/harn-stdlib/src/stdlib/agent/turn_end.harn (__turn_end_judge_past_warmup); crates/harn-stdlib/src/stdlib/agent/turn_end.harn (agent_stall_turn_end_judge_due) | unknown: turn_end.__turn_end_judge_past_warmup returns true when the minimum is absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.model | harn | provider catalog judge role; refuse if neither explicit nor catalog model resolves | crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (judge-model-key-domain) | unknown: judge_internals.__judge_resolve_model returns no model when both sources are absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.operation_timeout_ms | harn | 60000 for completion checkpoints; absent for other checkpoints | crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (__judge_run_checkpoint); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_completion_options) | unknown: judge_internals.__judge_run_checkpoint clamps the completion operation budget to at least 1 ms. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.provider | harn | runner provider, then provider inferred from the actor model; otherwise absent | crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (__judge_provider_family); crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (__judge_run_checkpoint) | unknown: judge_internals.__judge_provider_family resolves the provider family. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.requirement_contract | harn | absent; no requirement-specific contract | crates/harn-stdlib/src/stdlib/agent/completion_claim.harn (__completion_claim_requirement_ids); crates/harn-stdlib/src/stdlib/agent/judge.harn (__completion_boundary_requirements); crates/harn-stdlib/src/stdlib/agent/judge.harn (__judge_invoke_structured); crates/harn-stdlib/src/stdlib/agent/judge.harn (__judge_stable_prefix); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_completion_options) | unknown: completion_requirements.__completion_requirement_contract_checked returns nil for absent input or an empty requirements list. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.rubric | harn | inherit the agent rubric, otherwise empty | crates/harn-stdlib/src/stdlib/agent/judge.harn (__judge_stable_prefix) | unknown: judge.__judge_stable_prefix resolves judge_cfg.rubric then opts.rubric then an empty string. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.system | harn | dynamic: observed local fallback ""; normalization may override | crates/harn-stdlib/src/stdlib/agent/judge.harn (__judge_invoke_structured) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.timeout_ms | harn | inherit runner LLM timeout; completion checkpoints fall back to and cap at the operation budget | crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (__judge_run_checkpoint); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_completion_options) | unknown: judge_internals.__judge_run_checkpoint resolves provider timeout separately from the operation deadline. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.cadence.max_invocations | harn | absent; no cadence invocation cap | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_judge_cadence); crates/harn-stdlib/src/stdlib/agent/turn_end.harn (__turn_end_judge_under_cap); crates/harn-stdlib/src/stdlib/agent/turn_end.harn (agent_stall_turn_end_judge_due) | unknown: turn_end.__turn_end_judge_under_cap returns true when the cap is absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| JudgeConfig.cadence.when | harn | always | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_judge_cadence); crates/harn-stdlib/src/stdlib/agent/turn_end.harn (__turn_end_judge_when_due); crates/harn-stdlib/src/stdlib/agent/turn_end.harn (__agent_turn_end_judge_stall_cadence) | unknown: turn_end.__turn_end_judge_when_due supplies always when the condition is absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Explicit configuration consumed by the owning module; retain until the typed runner/stop/stall migration settles this seam. / 2026-09-13 |
| agent_done_contract.done_sentinel | harn | the configured done sentinel | crates/harn-stdlib/src/stdlib/agent/judge.harn (__done_contract_primary_prompt) | unknown: Read by __done_contract_primary_prompt when constructing the actor completion instructions. | DELETE | Replace the prose sentinel completion contract with a typed actor completion packet. / none |
| StepJudgeOptions.max_attempts | harn | 3 | crates/harn-stdlib/src/stdlib/agent/step_judge.harn (__should_skip) | unknown: __should_skip bounds configured per-turn critique attempts; no canonical headless activation trace collected. | KEEP-with-expiry | A caller-selected bound on model review attempts. / 2026-09-13 |
| StepJudgeOptions.skip_when_iterations_remaining | harn | 1 | crates/harn-stdlib/src/stdlib/agent/step_judge.harn (__should_skip) | unknown: __should_skip reserves the remaining runner iterations; no canonical headless activation trace collected. | KEEP-with-expiry | Must be reconciled with the single stop-decision budget during cutover. / 2026-09-13 |
| StepJudgeOptions.skip_when_empty | harn | true | crates/harn-stdlib/src/stdlib/agent/step_judge.harn (__should_skip) | unknown: __should_skip bypasses critique when neither text nor tools were returned. | PROMOTE-TO-DEFAULT | Empty-response recovery belongs to the runner; remove the duplicate model-review branch. / none |
| StepJudgeOptions.skip_when_stalled | harn | true | crates/harn-stdlib/src/stdlib/agent/step_judge.harn (__should_skip) | unknown: __should_skip bypasses critique when a stall warning is already present. | PROMOTE-TO-DEFAULT | The stall handler owns recovery from a detected stall; remove competing review control. / none |
| StepJudgeOptions.rubric | harn | default | crates/harn-stdlib/src/stdlib/agent/step_judge.harn (__invoke) | unknown: __invoke supplies rubric content to the review prompt. | KEEP-with-expiry | Rubric content is caller policy, distinct from the review mechanism. / 2026-09-13 |
| StepJudgeOptions.fail_open_on_error | harn | true | crates/harn-stdlib/src/stdlib/agent/step_judge.harn (__invoke) | unknown: __invoke distinguishes an unavailable reviewer from a passing review. | KEEP-with-expiry | Replace the boolean with the typed stop-decision policy after failure-path evidence. / 2026-09-13 |
| StepJudgeOptions.feedback_fallback | harn | The previous response should be revised. | crates/harn-stdlib/src/stdlib/agent/step_judge.harn (__invoke) | unknown: __invoke uses this feedback when the reviewer supplies no critique. | KEEP-with-expiry | Caller-owned feedback wording is policy content. / 2026-09-13 |
| StepJudgeOptions.on_veto | harn | replace | crates/harn-stdlib/src/stdlib/agent/step_judge.harn (agent_step_judge) | unknown: agent_step_judge selects the response to a negative review. | KEEP-with-expiry | Reconcile veto handling with the single typed stop decision during cutover. / 2026-09-13 |
| JudgeConfig.temperature | harn | absent; inherit llm_options.temperature, then provider default | crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (judge-override-key-domain) | unknown: __judge_apply_llm_overrides copies this non-null key from the independently scanned override domain onto the checkpoint request. | KEEP-with-expiry | Per-judge model request policy belongs in the typed stop-decision configuration. / 2026-09-13 |
| JudgeConfig.max_tokens | harn | absent; inherit llm_options.max_tokens, then provider default | crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (judge-override-key-domain) | unknown: __judge_apply_llm_overrides copies this non-null key from the independently scanned override domain onto the checkpoint request. | KEEP-with-expiry | Per-judge resource limits belong in the typed stop-decision configuration. / 2026-09-13 |
| JudgeConfig.top_p | harn | absent; inherit llm_options.top_p, then provider default | crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (judge-override-key-domain) | unknown: __judge_apply_llm_overrides copies this non-null key from the independently scanned override domain onto the checkpoint request. | KEEP-with-expiry | Per-judge model request policy belongs in the typed stop-decision configuration. / 2026-09-13 |
| JudgeConfig.tool_format | harn | absent; inherit llm_options.tool_format, then normal model request resolution | crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (judge-override-key-domain) | unknown: __judge_apply_llm_overrides copies this non-null key from the independently scanned override domain onto the checkpoint request. | KEEP-with-expiry | Preserve model format selection until the typed stop-decision request subsumes this override map. / 2026-09-13 |
| JudgeConfig.effort | harn | absent; inherit llm_options.effort, then model catalog resolution | crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (judge-override-key-domain) | unknown: __judge_apply_llm_overrides copies this non-null key from the independently scanned override domain onto the checkpoint request. | KEEP-with-expiry | Per-judge model request policy belongs in the typed stop-decision configuration. / 2026-09-13 |