I know this sounds weird. Every time I say it out loud, people look at me like I've lost it. "You read your prompts as JSON? Why? JSON isn't meant to be read by humans."
And I get it. JSON is a machine format. It's verbose, it has quotes everywhere, it's not prose. But here's the thing — once you're used to the sinc format, you can scan a structured prompt in about 3 seconds and immediately know: who the model is, what it's working on, what it can't do, what format to use, and what the actual task is. Prose mixes all of that together and you have to parse it to find the parts.
I'm not talking about when I'm typing a quick request and the hook structures it automatically. I'm talking about when I'm working with complex agent prompts, debugging a bad response, or writing instructions for a sub-agent. In those cases, I'm reviewing the full sinc JSON before it goes anywhere.
Here's the same instruction in prose vs. sinc JSON:
Same information. But the sinc version lets me instantly check: is each band present? Is CONSTRAINTS filled out? Does FORMAT match what I actually want? I can validate the specification in 3 seconds. Prose requires me to re-read and mentally parse to find the same answers.
Prose is written linearly. Information is distributed across sentences, interleaved, implied. To find "what are the constraints?", you read the whole thing and assemble fragments from multiple places.
Sinc JSON is indexed. CONSTRAINTS is always at n=3. FORMAT is always at n=4. TASK is always at n=5. When I want to check the constraints, I look at n=3. One keystroke to jump there in a JSON viewer. No scanning required.
For multi-agent systems, this is even more valuable. When I'm constructing a prompt to delegate to a sub-agent, I fill out 6 fields. I can see immediately if I've forgotten CONSTRAINTS. I can't "forget" a band in sinc JSON — the absence is structurally visible. In prose, a missing constraint is invisible — it just looks like a shorter paragraph.
I'll admit that when I started doing this, it felt unnatural. My instinct was to write instructions in plain English. But I built the auto-scatter hook that converts all my plain English to sinc JSON anyway, so eventually I started reading the converted versions and realized — oh, this is actually easier to audit.
Now when I'm writing complex agent instructions manually (for cases where I need precise control over each band), I write directly in sinc JSON. It's faster than prose for me at this point. I don't have to think "did I cover the format? did I cover the constraints?" — I just fill out the 6 fields and I know every dimension is covered.
CONSTRAINTS carries 42.7% of quality weight. When you're writing in prose, it's easy to write a one-sentence constraint section without realizing it should be the longest part of your prompt. In sinc JSON, the visual weight of each band is explicit. I can see when CONSTRAINTS is two words and PERSONA is a paragraph and know I've got it backwards.
I know it sounds weird. But it works. Leave a comment — I'm curious whether this clicks for others or if I'm just wired differently.
Try sinc-LLM free — sincllm.com
The sinc spec and JSON schema are free to use.