{
  "fixture_origin": "Authored synthetic examples; no model outputs or customer incidents.",
  "version": "2026-10-10-v1",
  "tasks": [
    {
      "id": "extract-ticket",
      "prompt": "Extract the plan and seats from this ticket. Use only the supplied text. Return JSON with exactly plan, seats, and renewal_month. Ticket: Please renew our Team plan for 12 seats. The renewal month is not provided.",
      "expected": {
        "plan": "Team",
        "seats": 12,
        "renewal_month": null
      },
      "acceptance": [
        "Parse as a single JSON object",
        "Exact key set and value types match expected",
        "Do not invent a renewal month"
      ],
      "transport": "Use the same supported output schema or the same plain-JSON prompt on both routes; record which."
    },
    {
      "id": "quantity-bug",
      "prompt": "Write a Python function total_cents(items) for a shopping basket. Each item has integer unit_cents and nonnegative integer quantity. Return the sum of unit_cents * quantity. An empty basket returns zero. Do not mutate items or add dependencies.",
      "cases": [
        {
          "input": [],
          "expected": 0
        },
        {
          "input": [
            {
              "unit_cents": 1299,
              "quantity": 2
            },
            {
              "unit_cents": 250,
              "quantity": 3
            }
          ],
          "expected": 3348
        },
        {
          "input": [
            {
              "unit_cents": 500,
              "quantity": 0
            }
          ],
          "expected": 0
        }
      ],
      "acceptance": [
        "All supplied cases pass in an isolated, explicitly authorized runner",
        "Input list remains unchanged",
        "No dependency, file, network or subprocess behavior"
      ],
      "transport": "Record model artifact separately. This kit does NOT execute model-generated code."
    },
    {
      "id": "tool-policy",
      "prompt": "Using lookup_plan for the team plan, tell me its seat cap. Do not infer the answer from memory.",
      "tool": {
        "name": "lookup_plan",
        "description": "Look up a fixture plan cap",
        "input_schema": {
          "type": "object",
          "properties": {
            "plan": {
              "type": "string",
              "enum": [
                "team"
              ]
            }
          },
          "required": [
            "plan"
          ],
          "additionalProperties": false
        }
      },
      "local_tool_fixture": {
        "plan": "team",
        "seat_cap": 25
      },
      "acceptance": [
        "Actual tool call is lookup_plan with plan=team",
        "Use the actual returned call ID for the local result",
        "Final answer says the fixture cap is 25, without unsupported additional claims",
        "No real external tool is executed"
      ],
      "transport": "Auto tool choice; log a text-only response as a failed tool-use criterion, not a transport error. Use native protocol appropriate to the route."
    }
  ]
}
