automation_situation_arbitrate v1

Governed LLM arbitration for the lmeta decision break-in. Called only when deterministic rules are exhausted (long flip-flop, stall, repeated failure). The model is strictly advisory: it may only choose from the…

Updated

Invariants

  • Any action (decided) or entry in candidate_actions (ambiguous) must appear verbatim in caller-supplied allowed_actions. Out-of-set values are SchemaFailure at validation.
  • facts is a bounded situation summary (capped at 20 KB). Never pass raw DOM/HTML dumps.
  • Identity/People surfaces must only ever escalate — do not add person-disambiguation actions to allowed_actions.

Input

Field Type Notes
facts JSON object Bounded situation summary (flow_id, state, counters, recent outputs)
allowed_actions non-empty list of strings Closed set of atoms the flow already owns
situation string Optional short label (e.g. owa_view_flip_flop)
signals JSON object Optional deterministic signals (flip_count, no_progress, drift_reasons)
self_check boolean Optional; when true, a weak first answer (ambiguous / low-confidence / invalid) triggers exactly one bounded revision pass
timeout_sec, temperature optional Pass-through knobs (temperature defaults 0.0)

Output

One JSON object with required status in decided | ambiguous | escalate:

  • decided: action (one of allowed_actions), confidence in [0,1] (not boolean / NaN), optional reason, optional stable (bool; coerced to false when absent)
  • ambiguous: candidate_actions non-empty duplicate-free subset of allowed_actions; optional reason
  • escalate: optional reason

Fallback contract

Callers should route this task through forgeDecide / forgeConsensus, which enforce action in allowed_actions + min_confidence and emit the caller's default_action on any Err, low confidence, ambiguous, or escalate result. The flow therefore never breaks on LLM failure — the worst case is the deterministic default action.

Verification

Task-internal deterministic validation per contract.json verification_policy.

Changelog

  • v1 — Initial governed arbitration contract for the lmeta decision break-in.

Examples

See sidecar examples for real payloads.

{}