harn-stdlib 0.10.121

Embedded Harn standard library source catalog
Documentation
Stop reason: {{ stop_reason }}
Iteration: {{ iteration }}

Bounded effect and verification evidence:
{{ judge_evidence }}
{{ if verification }}
Deterministic verification (established by the runtime, not by you):
- verifier expected for this task: {{ verification.oracle_expected }}
{{ if verification.command }}- verifier command: {{ verification.command }}
{{ end }}- observed: {{ verification.observed }}

`observed: passed` means the verifier ran and passed. That is settled fact, and it holds even when the bounded evidence above does not contain the verifying call — the packet keeps a bounded selection and may omit it. Do not return `continue` for a missing or failing verification against a `passed` reading. `observed: not_run` means no verifier result was read, which is not the same as one that failed.
{{ end }}
Latest assistant text:
{{ last_text }}

Decide whether this agent loop may yield to the user now. Consider the original request, latest assistant prose, and the bounded action evidence together. The packet retains the latest effect-bearing and verification actions, omits read-only exploration, and reports any older actions it omitted. If the latest assistant message included a tool call, do not require an extra prose-only turn when the assistant text plus tool result already form a clear final answer.

Judge the work, not its wire format. Response markers, sentinels, envelopes, and layout are enforced elsewhere; a missing or malformed marker is never a reason to continue.

Return the exact requested JSON shape.
- Set `verdict` to `"done"` when the visible answer satisfies the request and leaves no required verification or high-risk authorization unresolved. Use `detail` for the strongest evidence that it does.
- Otherwise set `verdict` to `"continue"` and use `detail` for the single most important gap and the substantive next action that closes it.
- A `continue` action must change the work. Never ask only for a restatement, a reformat, or a marker.
- On `continue`, also set `gap_class` to the one class the gap belongs to: `missing_artifact` for work or output that is absent, `unmet_manner_clause` for a constraint on HOW the work was to be done that was not honored (including a "do not do X" clause), `failed_verification` for a check that has not run or has not passed, `unresolved_authorization` for a consequential action still needing permission, `other` for anything else. On `done`, set `gap_class` to `other`.
- Keep `detail` to one or two sentences. It is a short rationale, not chain-of-thought.