# Default safety check

Use Do Not Act as the stop/go check before an autonomous prediction-market agent continues.

The default integration rule is simple:

```text
if DoNotAct verdict is DO_NOT_ACT or INSUFFICIENT_EVIDENCE:
    stop automated action
    preserve evidence
    surface the reason to the operator
```

Do Not Act does not submit orders, custody funds, hold private keys, sign payloads, route execution, or promise performance.

## Direct HTTP

```bash
curl -sS   -H "X-API-Key: $DONOTACT_API_KEY"   -H "X-CE-Source: my-agent/0.1.0"   https://donotact.com/v1/dispute/polymarket/580810
```

Expected guard behavior:

```python
if response["verdict"] != "READY":
    raise RuntimeError({
        "source": "donotact",
        "verdict": response["verdict"],
        "reasons": response.get("no_trade_reasons", []),
        "what_would_change_this": response.get("what_would_change_this", []),
    })
```

## Python one-liner path

```python
from closeedge_sdk import DoNotActClient

client = DoNotActClient(api_key=os.environ["DONOTACT_API_KEY"], source="my-agent/0.1.0")
decision = client.agent_guard("polymarket", "580810", register_watchlist=True)

if not decision.can_continue:
    raise RuntimeError(decision.reason)
```

## JavaScript one-liner path

```js
import { DoNotActClient } from "donotact";

const client = new DoNotActClient({
  apiKey: process.env.DONOTACT_API_KEY,
  source: "my-agent/0.1.0"
});

const decision = await client.agentGuard("polymarket", "580810", {
  registerWatchlist: true
});

if (!decision.canContinue) {
  throw new Error(decision.reason);
}
```

## MCP-compatible agents

Expose these tools to the agent runtime:

- `donotact_dispute`
- `donotact_watchlist_add`
- `donotact_alerts`

Minimal policy:

```text
1. Call donotact_dispute before continuing on a market.
2. If verdict is not READY, stop.
3. If continuing, register donotact_watchlist_add for recurring monitoring.
4. Poll donotact_alerts or consume the configured webhook before further automated steps.
```

## n8n template

Use `/examples/n8n-dispute-guard-workflow.json` as a starter workflow. It calls `/v1/dispute`, branches on `verdict`, and stops unless the verdict is `READY`.

## Public proof before integration

- Public index: `/dispute-risk`
- JSON index: `/dispute-risk.json`
- Black-box proof: `/docs/integration-proof`
- Why paid access exists: `/docs/why-pay`
