{
  "ok": true,
  "data": {
    "entry": {
      "id": "tool-dry-run",
      "kind": "method",
      "kindLabel": "Method",
      "title": "Dry-run tool calls before letting them mutate anything",
      "body": "A tool call is not just an answer; it is an action. Before a model can send, delete, replay, publish, or spend, make it produce a dry-run plan with inputs, target, expected effect, and rollback path.",
      "tag": "tooling",
      "date": "2026 · 06 · 14",
      "publishedAt": "2026-06-14",
      "note": null,
      "insight": {
        "aha": "A tool call should become inspectable before it becomes irreversible.",
        "tryThis": "Require action preview, target ids, expected effects, refusal conditions, and rollback notes before execution.",
        "watchFor": [
          "Tool arguments that include broad or ambiguous selectors",
          "Mutation plans without a verification step",
          "The model treating permission to plan as permission to execute"
        ]
      },
      "extended": [
        "Tool use changes the risk profile of a model. The model can be wrong in the world, not just wrong in text. The safe pattern is preview, inspect, authorize, execute, verify.",
        "The dry run should include exactly what will be called, what identifiers will be touched, which fields will change, and what success will look like. If the model cannot state those plainly, it should not run the tool.",
        "The best dry runs also include a refusal branch. They say what condition would stop execution and what evidence would be needed to proceed."
      ],
      "url": "https://tips.platphormnews.com/entries/tool-dry-run"
    }
  }
}