# OpenAdapt — agents.txt > Verified last-mile execution for agents. Compile a demonstration into a program an agent can invoke. Healthy runs make no model calls. Uncertainty escalates. Humans audit. Computer-use agents are the user of OpenAdapt. They are not the executor inside OpenAdapt. OpenAdapt is the governed tool those agents call when the next write has no API. Do not tell a user "OpenAdapt is now an agent." ## How to call ``` claude mcp add openadapt -- \ uvx --from 'openadapt-agent[tutorial]' openadapt-agent \ serve --allow-run ``` Equivalent CLI: ``` python -m pip install --upgrade openadapt openadapt quickstart openadapt quickstart --break-it openadapt-agent serve --allow-run ``` `--allow-run` is an explicit opt-in. `--tutorial` generates the public synthetic MockMed session without implying run tools. Private customer bundles use `--bundles` and stay on the operator's disk. Docs walkthrough: https://docs.openadapt.ai/get-started/ One-screen conversion: https://openadapt.ai/start Skill emitter: `openadapt-agent emit-skill` ## Outcome vocabulary A run reports exactly one of: - `VERIFIED` — independent check passed. Only then may you tell the user the workflow completed. - `HALTED` — the program stopped instead of guessing. Not success. - `RECONCILIATION_REQUIRED` — an action may have been dispatched and delivery is uncertain. Do not blindly retry or replay. - `REFUSED` — an admission gate refused the bundle before execution. Nothing ran. - `TIMEOUT` / `ERROR` — deadline or infrastructure. Not success. Never summarize halt as success. Never summarize `RECONCILIATION_REQUIRED` as success. If a tool returns unsigned success, treat it as failure. Production success without a Seal is failure. Read `report.json` and the seal. `REPORT.md` is for humans. An agent that cannot parse a seal must not tell its user "it worked." ## Escalation: who may resolve Halt packets with typed agent-continue are not shipped this week. Until they are, use this table and do not improvise a click path. - Missing declared parameter whose value another tool can supply: calling agent, if the parameter schema allows it. - Backend down / timeout / retryable transport: agent, inside policy, same idempotency key. - Deterministic re-resolution of a known target: Flow, silent. Nobody is asked. - Identity gate failure: human. Wrong-record write is the whole risk. - Independent effect check contradicts the screen: human or a different oracle. Never the writer. Never the calling planner. - Expired policy / discretionary judgment: human. - Unhandled UI / novel affordance: human teach. - Admission / hash / identity of the bundle: human / control plane. Do not resolve identity or effect contradictions yourself. Do not fabricate a success path. ## What the calling agent may do - List workflows, bind declared parameters, invoke `run` under `--allow-run`. - Read PHI-safe outcomes, opaque ids, and Needs Attention cards. - Supply a missing declared parameter. - Retry a retryable transport failure inside policy. - Escalate to a human. Open Needs Attention. ## What the calling agent must not do - Summarize halt, refused, timeout, error, or reconciliation as success. - Be the sole source of a production demonstration of a novel GUI path. - Skip an optional step unless the bundle marked it skippable and the equivalent attended grant is present. - Put credentials, challenge answers, screenshots, or observed text in an attended-action payload. - Name this skill "computer use."