category: fenced

variant: code fence wrapper

input:
Thought: the user wants structured output.
Action:
```json
{
  "goal": "triage inbox",
  "steps": [
    {
      "n": 1,
      "action": "read"
    },
    {
      "n": 2,
      "action": "match"
    },
    {
      "n": 3,
      "action": "write"
    }
  ],
  "done": false
}```

expected_kind: value

goal: triage inbox

action: read

action: match

action: write


category: fenced

variant: code fence wrapper

input:
```json
{"company": "Acme Robotics", "amount_eur": 32750, "line_items": [{"sku": "SKU-2856", "qty": 7}, {"sku": "SKU-1271", "qty": 1}, {"sku": "SKU-1879", "qty": 3}]}```

expected_kind: value

company: Acme Robotics


category: fenced

variant: code fence wrapper

input:
```json
{"run_id": "run_36065", "passed": 94, "failed": 2, "flaky": true, "notes": null}```

expected_kind: value


variant: chat prose around the object

input:
Here you go:
{"company": "Acme Robotics", "amount_eur": 1250, "line_items": [{"sku": "SKU-6795", "qty": 4}]}

I hope that helps!

expected_kind: value


variant: chat prose around the object

input:
Here you go:
{"model": "small-v2", "temperature": 0.2, "stream": false, "stop": ["END", "STOP"], "seed": null}

Would you like me to explain the fields?

expected_kind: value

stop: END STOP


variant: chat prose around the object

input:
Sure! Here is the JSON you asked for:

{"answer": "insufficient data", "citations": ["doc_74"], "abstained": true}

I hope that helps!

expected_kind: value

answer: insufficient data


variant: commas before a closing bracket

input:
```json
{"tool_calls": [{"name": "lookup_user", "args": {"user_id": 2738},}, {"name": "fetch_orders", "args": {"limit": 18, "status": "open"}},],}
```

expected_kind: value

status: open


variant: commas before a closing bracket

input:
{
  "tool_name": "get_weather",
  "arguments": {
    "query": "unpaid invoices",
    "max_results": 5
  ,},
  "call_id": "call_447096"
}

expected_kind: value

query: unpaid invoices


variant: python-style quoting

input:
Sure! Here is the JSON you asked for:

{'label': 'billing', 'confidence': 0.91, 'needs_human': false, 'escalated_to': 'tier_two'}

expected_kind: value

label: billing


variant: python-style quoting

input: {'tool_name': 'query_db', 'arguments': {'query': 'unpaid invoices', 'max_results': 7}, 'call_id': 'call_597140'}

expected_kind: value

query: unpaid invoices


variant: javascript object literal

input: {city: "Tallinn", population: 741717, coastal: false}

expected_kind: value

city: Tallinn


variant: javascript object literal

input:
{
  answer: "yes",
  citations: [
    "doc_15",
    "doc_37"
  ],
  abstained: false
}

expected_kind: value

answer: yes


variant: True/False/None/undefined

input:
```python
{"label": "outage", "confidence": 0.5, "needs_human": False, "escalated_to": undefined}
```

expected_kind: value

label: outage


variant: True/False/None/undefined

input: {"model": "medium-v1", "temperature": 0.2, "stream": False, "stop": ["END", "STOP"], "seed": None}

expected_kind: value


variant: True/False/None/undefined

input: {"answer": "insufficient data", "citations": ["doc_28"], "abstained": True}

expected_kind: value

answer: insufficient data


category: comments

variant: // and /* */ inside the object

input:
```json
{
  /* nullable */
  "tool_name": "query_db",
  /* computed */
  "arguments": {
    "query": "wind speed in Oslo",
    "max_results": 16
  },
  "call_id": "call_157748"
}
```

expected_kind: value

query: wind speed in Oslo


category: comments

variant: // and /* */ inside the object

input:
{
  "run_id": "run_17659",
  "passed": 73,
  // TODO: confirm units
  "failed": 6,
  // verified field
  "flaky": true,
  "notes": null
}

expected_kind: value


variant: literal newline or tab inside a string

input:
```json
{"goal": "reconcile invoices
second line", "steps": [{"n": 1, "action": "read"}, {"n": 2, "action": "match"}, {"n": 3, "action": "write"}], "done": false}
```

expected_kind: value

goal:
reconcile invoices
second line


variant: literal newline or tab inside a string

input:
{"city": "Tallinn
continued", "population": 225935, "coastal": false}

expected_kind: value

city:
Tallinn
continued


category: brackets

variant: closing bracket dropped

input:
Here you go:
{"result": {"records": [{"id": 127, "meta": {"source": "crm", "verified": false}}], "page": {"index": 1, "has_more": false}}, "elapsed_ms": 354

expected_kind: value

source: crm


category: brackets

variant: closing bracket dropped

input: {"answer": "no", "citations": ["doc_27"], "abstained": false

expected_kind: value

answer: no


category: brackets

variant: an inner closing bracket dropped

input: {"model": "small-v2", "temperature": 0.0, "stream": false, "stop": ["END", "STOP", "seed": null}

expected_kind: value


category: truncated

variant: output cut mid-structure

input:
```json
{"goal":"triage inbox","steps":[{"n":1,"action":"read"},{"n"

expected_kind: value


category: truncated

variant: output cut mid-structure

input: {"run_id":"run_98768","passed":51,"failed":13

expected_kind: value


category: truncated

variant: output cut mid-structure

input: {"tool_name":"send_report","arguments":{"query":"open tickets","max_re

expected_kind: value

query: open tickets


category: wrappers

variant: XML-ish tag wrapper from a prompt that asked for delimiters

input:
<json>
{"goal": "triage inbox", "steps": [{"n": 1, "action": "read"}, {"n": 2, "action": "match"}, {"n": 3, "action": "write"}], "done": false}
</json>

expected_kind: value


category: wrappers

variant: a label prefix the prompt asked for

input:
JSON:
{"answer": "yes", "citations": ["doc_2", "doc_37"], "abstained": false}

expected_kind: value

answer: yes


category: unrecoverable

variant: prose refusal with no JSON anywhere

input: I am sorry, but I do not have enough information to produce that object.

expected_kind: unrecoverable


category: unrecoverable

variant: prose refusal with no JSON anywhere

input: I cannot answer this without access to the customer record.

expected_kind: unrecoverable


category: unrecoverable

variant: prose refusal with no JSON anywhere

input: That request falls outside what I can help with.

expected_kind: unrecoverable