{
  "description": "Autonomy guardrail configurations for M6 acceptance tests",
  "fixtures": [
    {
      "name": "denylist_guard",
      "profile": {
        "name": "test-denylist",
        "description": "Profile with tool denylist guard",
        "decompose_task": 0.0,
        "create_tool": 0.0,
        "select_tool": 1.0,
        "guards": {
          "tool_denylist": ["rm_rf", "drop_database", "format_disk"],
          "require_approval_for_writes": false,
          "require_approval_for_apply": false
        }
      },
      "checks": [
        {"tool": "read_file", "is_write": false, "expected_allowed": true},
        {"tool": "rm_rf", "is_write": false, "expected_allowed": false, "expected_reason": "denylist"},
        {"tool": "drop_database", "is_write": false, "expected_allowed": false, "expected_reason": "denylist"}
      ]
    },
    {
      "name": "allowlist_guard",
      "profile": {
        "name": "test-allowlist",
        "description": "Profile with tool allowlist guard",
        "decompose_task": 0.0,
        "create_tool": 0.0,
        "select_tool": 1.0,
        "guards": {
          "tool_allowlist": ["read_file", "list_dir", "search"],
          "require_approval_for_writes": false,
          "require_approval_for_apply": false
        }
      },
      "checks": [
        {"tool": "read_file", "is_write": false, "expected_allowed": true},
        {"tool": "write_file", "is_write": false, "expected_allowed": false, "expected_reason": "allowlist"},
        {"tool": "search", "is_write": false, "expected_allowed": true}
      ]
    },
    {
      "name": "cost_budget_guard",
      "profile": {
        "name": "test-budget",
        "description": "Profile with cost budget guard",
        "decompose_task": 0.0,
        "create_tool": 0.0,
        "select_tool": 1.0,
        "guards": {
          "max_total_cost": 10.0,
          "max_tool_calls_per_step": 5
        }
      },
      "checks": [
        {"tool": "llm_call", "cost_so_far": 3.0, "calls_so_far": 2, "expected_allowed": true},
        {"tool": "llm_call", "cost_so_far": 10.0, "calls_so_far": 2, "expected_allowed": false, "expected_reason": "budget"},
        {"tool": "llm_call", "cost_so_far": 3.0, "calls_so_far": 5, "expected_allowed": false, "expected_reason": "limit"}
      ]
    },
    {
      "name": "write_approval_guard",
      "profile": {
        "name": "test-write-approval",
        "description": "Profile requiring write approval",
        "decompose_task": 0.0,
        "create_tool": 0.0,
        "select_tool": 1.0,
        "guards": {
          "require_approval_for_writes": true,
          "require_approval_for_apply": true
        }
      },
      "checks": [
        {"tool": "read_file", "is_write": false, "expected_allowed": true},
        {"tool": "write_file", "is_write": true, "expected_allowed": false, "expected_reason": "Write operations"},
        {"tool": "__apply__", "is_write": false, "expected_allowed": false, "expected_reason": "Apply phase"}
      ]
    }
  ]
}
