Ollama since 0.34.4 lets Gemma 4 skip the requested JSON schema, returning bare text with HTTP 200 in 8 of 24 test calls. Until the open fix ships in a release, structured output on local thinking models needs a shape check in the client.
Reality
- Evidence62
- Adoption
- Insufficient
- Hype gap+10
- Incentives20
- Confidence58
Three of the four layers in a dev.to testing pyramid for MCP servers are plain pytest checks on schemas, error envelopes and session expiry. Only the fourth puts a model in the loop, and the available text breaks off before describing it.
Reality
- Evidence50
- Adoption
- Insufficient
- Hype gap+25
- Incentives
- Insufficient
- Confidence50
Every 10 minutes an unattended job summarizes Claude Code and Codex logs into an Obsidian vault and pushes the commit, so the pipeline treats the summarizer's own JSON as text that may carry pasted keys or injected instructions.
Reality
- Evidence58
- Adoption6
- Hype gap+10
- Incentives20
- Confidence55
In a 30-call test suite for a home services intake agent, guardrail G4 told the model to stop collecting fields the moment it heard a gas smell and never told it when to resume. The dispatcher got the result.
Reality
- Evidence60
- Adoption8
- Hype gap−10
- Incentives35
- Confidence50
Kafka cannot take a record back, so trying a Streams predicate on the team's cluster writes output that real consumers may already read. A dev.to post seeds a disposable stack from two folders of your own schemas and records.
Reality
- Evidence33
- Adoption
- Insufficient
- Hype gap+22
- Incentives85
- Confidence46
Remote config edits skip CI entirely, so the case for validating values where they are saved is easy. The check worth copying refuses a new JSON schema while any environment still holds a value it would reject.
Reality
- Evidence37
- Adoption
- Insufficient
- Hype gap+18
- Incentives86
- Confidence44
A one-person dev shop wired Gmail into Claude and out to Slack, scoring each support message 0 to 100 and leaving the assignee to a plain Python lookup table. Nothing sends until a person clicks approve.
Reality
- Evidence45
- Adoption12
- Hype gap+30
- Incentives50
- Confidence55
Two models read the same tool description and disagreed about one field name. The fix moved the shape into the JSON Schema for the nine pattern kinds that account for 85 percent of emissions, and left the rest loose.
Reality
- Evidence45
- Adoption20
- Hype gap−10
- Incentives25
- Confidence55
A reconstructed postmortem on dev.to has a merge bot posting eval=pass from a markdown summary, and its proposed replacement scores git diff only, with a contract test that keys on four directory names.
Reality
- Evidence47
- Adoption
- Insufficient
- Hype gap+28
- Incentives30
- Confidence55
The Go port of Gemma's chat template filters schema keywords at all four call sites where the Jinja macro filters at one, so the parameter name reaches the model with no definition and stays on the required list.
Reality
- Evidence78
- Adoption20
- Hype gap−10
- Incentives25
- Confidence70
A dev.to walkthrough for e-commerce zone moves puts enumeration, a saved raw snapshot and a diff ahead of the first write. The Python runner it ships retries HTTP 429 five times and treats every other error as fatal.
Reality
- Evidence42
- Adoption
- Insufficient
- Hype gap+10
- Incentives45
- Confidence35
More than half the traffic to one developer's API documentation now comes from AI agents. The changes that followed landed in the summary and description fields, where an agent does operation selection and error recovery.
Reality
- Evidence34
- Adoption15
- Hype gap+10
- Incentives45
- Confidence45
A planning step asked for entities and got a bare array that JSON.parse waved straight through. The repair needed both a schema in the prompt and a wrapper in the parser, because two of the three backends behind the interface can only ask.
Reality
- Evidence45
- Adoption12
- Hype gap+12
- Incentives30
- Confidence52
The poisoned field is inputSchema, which the framework parses and executes against while the model's safety training never evaluates it, so the only gate that holds is a hash recomputed at every call.
Reality
- Evidence32
- Adoption35
- Hype gap+30
- Incentives38
- Confidence45
Structured output guarantees the shape of each element and never the count, so a batch call that quietly returns one item still parses clean. Reconciling ids and asserting on content is what catches it.
Reality
- Evidence45
- Adoption14
- Hype gap−12
- Incentives20
- Confidence44
According to a dev.to writeup measured on gemini-3-flash-preview, the required array governs emission order whenever propertyOrdering is unset, so a derived field placed early gets decided before the evidence for it has been written.
Reality
- Evidence48
- Adoption17
- Hype gap+14
- Incentives26
- Confidence44
Constrained decoding, a repair parser, validation and feedback retries do four different jobs. A dev.to walkthrough shows where each one stops working, and where a 30-second retry budget runs out.
Reality
- Evidence41
- Adoption
- Insufficient
- Hype gap+14
- Incentives32
- Confidence54
A dev.to walkthrough on sandboxing LLM tool calls names old web-app failure modes and old web-app controls. The delta is when you apply them: at registration, not after the first exfiltration.
Reality
- Evidence58
- Adoption
- Insufficient
- Hype gap+28
- Incentives35
- Confidence46
When a client shows no tools, the handshake usually worked and tools/list returned a valid answer. Four of the six causes in one field writeup sit in what the server declared.
Reality
- Evidence34
- Adoption
- Insufficient
- Hype gap+12
- Incentives26
- Confidence46
YAML 1.2 killed the Norway problem in 2009. A dev.to post makes the operator's point: if half your parsers never moved, the file is read two correct and incompatible ways, silently.
Reality
- Evidence54
- Adoption
- Insufficient
- Hype gap+12
- Incentives66
- Confidence52