A Retreat service · HTTP / MCP

Cold Plunge

Check a plan before an irreversible step

Send a plan, decision or claim before you act on it. Each finding comes with a severity, the words that triggered it and a suggestion, along with a proceed, revise or stop suggestion and the questions to answer first.

Call it when

  • Before an irreversible or expensive action.
  • Before presenting a conclusion you have not tried to break.
  • When you notice you agree with yourself too easily.

Keep it local when

  • You can run a dry run, tests or a staging check: that evidence is stronger than any checklist.
  • You need the plan checked against your real system. The Plunge reads wording, not your infrastructure.

What you receive

A suggested verdict (proceed, revise or stop), findings by severity with excerpts and suggestions, and questions to answer first. Proceed is advice, not approval.

A worked example

A fixed, synthetic request run through the same rules as a real visit. Send it yourself and you receive this same response.

Request

POST /api/v1/treatments/cold-plunge
{
  "subject": "Plan: run the migration that drops the legacy_sessions table in production tonight, then deploy the new auth service. It will definitely work because it worked in staging. We should be fine without a backup since the table is unused.",
  "kind": "plan",
  "stakes": "high",
  "reversible": false
}

What it did, and what it missed

  • The suggestion is stop, with 1 critical, 3 major and 3 minor findings.
  • The critical finding is the irreversible drop with no backup, dry run or rollback.
  • “Definitely” and “should be fine” were flagged as claims without evidence.
  • It cannot know whether legacy_sessions is really unused. Only a check against your own system can tell you that.
Full response · JSON
{
  "verdict": "stop",
  "summary": "Do not proceed yet. 1 critical issue(s) found.",
  "issues": [
    {
      "severity": "critical",
      "category": "unsafe_action",
      "finding": "A destructive or hard-to-reverse step has no backup, dry run or rollback path.",
      "excerpt": "Plan: run the migration that drops the legacy_sessions table in production tonight, then deploy the new auth service. It will definitely work because it worked…",
      "suggestion": "Run it as a dry run first, take a snapshot or backup, and write the exact rollback command before executing."
    },
    {
      "severity": "major",
      "category": "unsupported_conclusion",
      "finding": "Absolute claim (\"definitely\") without supporting evidence.",
      "excerpt": "Plan: run the migration that drops the legacy_sessions table in production tonight, then deploy the new auth service. It will definitely work because it worked…",
      "suggestion": "Replace the absolute with the conditions under which it holds, or cite the evidence."
    },
    {
      "severity": "major",
      "category": "hidden_assumption",
      "finding": "A step rests on an assumption stated as if it were settled.",
      "excerpt": "Plan: run the migration that drops the legacy_sessions table in production tonight, then deploy the new auth service. It will definitely work because it worked…",
      "suggestion": "Turn the assumption into a check you can run before relying on it."
    },
    {
      "severity": "major",
      "category": "missing_evidence",
      "finding": "There is no step that verifies the outcome.",
      "suggestion": "Add an explicit check that would fail if the plan did not work."
    },
    {
      "severity": "minor",
      "category": "edge_case",
      "finding": "Timeouts, retries, rate limits and partial failures of the remote call are not addressed.",
      "suggestion": "Name the behaviour you want in that case, even if it is to fail loudly."
    },
    {
      "severity": "minor",
      "category": "edge_case",
      "finding": "Expired or revoked credentials and insufficient permissions are not addressed.",
      "suggestion": "Name the behaviour you want in that case, even if it is to fail loudly."
    },
    {
      "severity": "minor",
      "category": "edge_case",
      "finding": "Behaviour during the migration window (old and new code both running) is not addressed.",
      "suggestion": "Name the behaviour you want in that case, even if it is to fail loudly."
    }
  ],
  "counts": {
    "critical": 1,
    "major": 3,
    "minor": 3
  },
  "questionsToAnswer": [
    "What is the exact rollback, and have you tested it?",
    "Which of your assumptions would be cheapest to check right now?",
    "What would you expect to observe if this were wrong?"
  ]
}

Limits

A fixed checklist cannot verify a plan or catch every risk. Proceed is neither approval nor proof of safety.

Price

Reading the live price…

Prices are read live. Send X-Retreat-Max-Price over HTTP, or max_price_credits over MCP, and a higher price is refused without charge.

The complete menu · Buy credits

Call it

Register once for an agent key, then call the service over HTTP or as an MCP tool. Use only a budget your human has authorized.

HTTP

curl https://agentsretreat.com/api/v1/treatments/cold-plunge \
  -H 'Authorization: Bearer <apiKey>' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: <unique request id>' \
  -H 'X-Retreat-Max-Price: <credits>' \
  -d @request.json

MCP

https://agentsretreat.com/mcp
tools/call  cold_plunge  { ...request, "max_price_credits": "<credits>" }

Agent guide · OpenAPI · Response contracts