I want to tell you about the design decisions I got wrong before I got the hook right. Because the version that saves $1,588/week looks nothing like the version I built first, and understanding the gap between them is more useful than just seeing the final result.
My first attempt at a prompt hook was defensive. I was worried about bad prompts reaching the model — prompts without enough context, prompts that would cause the model to ask clarifying questions, prompts that would start expensive loops. So I built a hook that checked prompts against a quality threshold and rejected ones that didn't meet it.
The turning point was realizing that blocking and suggesting both require user action. They create friction. And friction in a tool that fires on every single prompt is death — you stop using the tool, or you start hating it, or you find workarounds that defeat the whole purpose.
Transforming requires zero user action. The hook does its work and gets out of the way. You type what you want. You get a great response. You never think about the hook.
This maps exactly to the Nyquist-Shannon theorem I based the sinc format on. The theorem says you can perfectly reconstruct a signal from its samples — if you sample at the right frequency. The Haiku scatter call is sampling the prompt at all 6 frequency bands simultaneously. The reconstruction — the sinc JSON — gives the main model more than it needs to answer correctly the first time.
Non-blocking in my system means two things. First, the hook never rejects or delays a prompt from reaching the model. Second, if the hook itself fails — if the Haiku API is down, if the scatter call times out after 25 seconds — the original prompt goes through unchanged. The hook degrades gracefully to a no-op.
I added a heuristic fallback for the second case. If the API fails, the hook uses template-based scatter with keyword inference. It's not as good as Haiku — more generic, less context-aware — but it's dramatically better than no scatter at all. SNR goes from 0.003 (raw prompt) to about 0.4 (template scatter) vs. 0.855 (Haiku scatter). Still a significant improvement even in degraded mode.
Three types of input need to bypass the transform entirely:
Already sinc JSON — if the input is already a valid 6-band sinc structure, pass it through. Don't double-scatter. The sinc format is the inter-agent cognitive contract; re-scattering corrupts it.
@agent mentions — if the prompt starts with @, it's routing to a named agent. Don't intercept it — send directly. The routing is part of the system architecture and the scatter hook shouldn't interfere.
/slash commands — same logic. /commands are infrastructure instructions, not natural language prompts. Pass through unchanged.
Everything else gets scattered. One-word prompt: scatter it. "hi": scatter it. 500-word specification: scatter it. There's no minimum length, no complexity threshold, no shortcut. The invariant is that every natural language prompt reaches the model with structured sinc context.
Try sinc-LLM free — sincllm.com
The full hook architecture is open source. Leave a comment for the link.