Yesterday, u/sutnip pushed SutniPrompt v0.1.0-alpha to GitHub. It’s a system prompt framework that strips the performance layer out of Claude, GPT, and Gemini. No “As an AI” disclaimers, no empathy theater, no padding. But rule four is the part actually worth paying attention to.
What’s New
SutniPrompt bakes four hard rules into whatever model you’re running:
- Stealth mode, executes silently, zero tone justification, zero faked warmth. The model skips the “Great question!” opener, skips the “I’d be happy to help with that” wind-up, and just starts. If you’ve ever counted the words before an LLM actually answers the question, this one hits differently.
- Structured output, clean Markdown, mental models over confident-sounding guesses. When the model doesn’t know something with high confidence, it says so and frames it as a working hypothesis rather than presenting a guess as fact with a period at the end.
- Fact anchor, every response ends with exactly one relevant Wikipedia link. Not a list of sources. Not five footnotes you’ll never click. One link, chosen for relevance. It keeps the model accountable to something external and gives you a fast verification path when the answer matters.
- Mandatory Halt, we’ll get to this one
The Twist
Most system prompts try to make LLM output better. Rule four does something different: it stops the output entirely.
When a prompt is too vague or asks for a plan based on info the model doesn’t have, the Mandatory Halt kicks in. Instead of generating a confident wall of hallucinated text, the model outputs only 2-3 clarifying questions. Nothing else. Done.
That’s a fundamentally different design philosophy. You’re not prompting for better answers. You’re prompting the model to recognize the cases where no good answer exists yet.
Think about how often you’ve asked an LLM to “help with a marketing strategy” and gotten back a 600-word essay that sounds useful until you realize it’s generic enough to apply to literally any company on earth. The model filled the gap with confident noise because nothing in its default behavior told it to stop. SutniPrompt makes stopping the default behavior when the input isn’t good enough. That’s a rare design inversion. Most frameworks are about getting more output. This one is about knowing when to get none.
The practical upside is that it forces better prompts on your end too. When you know the model will ask instead of guess, you start front-loading more context. The quality improvement isn’t just on the output side.
How to Deploy It
- 📋 Open the repo (link below) and copy the full system prompt. Read through the four rules before you paste anything. Understanding what each rule does changes how you test it.
- 🤖 Claude: paste directly into System Prompt settings. Gemini: use the modular copy-paste method documented in the repo. ChatGPT: use as an initialization prompt at the start of a new chat (Custom Instructions support is coming next release). If you’re using an API directly, drop the full prompt into the system role and it works the same way across all three.
- 🎯 Test it with a deliberately vague prompt first, watch the Mandatory Halt fire instead of getting a hallucinated essay. Something like “help me grow my business” or “write a plan for my project” works well here. If the halt triggers correctly, you’ll get questions instead of a wall of text. If it doesn’t, you’ve found a gap worth reporting.
- 🔧 Optional layer: add a rule about proactive behavior. “Explain your mistake” should produce an explanation, not an apology followed by an auto-fix. You can also layer on domain-specific rules after the core four. The author designed the framework to be modular, so additional constraints don’t break the base behavior.
Pro Tip
The Mandatory Halt gating logic is the part worth stress-testing. The author is actively looking for people to break it. If you find yourself deleting the first three paragraphs of every LLM response, this is worth 10 minutes of your time.
Specific cases to try: prompts with no clear deliverable, prompts that assume context the model can’t have, and prompts that mix multiple conflicting goals in one sentence. Those are the three failure modes where most LLMs freestyle a plausible-sounding answer instead of asking what you actually want. Submit your results in the GitHub issues tab. The framework is only as good as the edge cases people throw at it, and v0.1.0-alpha is explicitly asking for that input.
Fair warning: this is v0.1.0-alpha. A minified ChatGPT Custom Instructions version is in progress for the next release.
Try It 🚀
Full repo and docs: github.com/sutnip/sutniprompt
Frequently Asked Questions
Q: Can I combine SutniPrompt with my existing Custom Instructions?
Yes. SutniPrompt handles structure and rigor (format, citations, preventing hallucinations), while Custom Instructions manage voice and style. If they conflict, like Custom Instructions asking for warmth while SutniPrompt forbids pleasantries, test them in Claude first to see how they interact. Most users keep SutniPrompt in the System Prompt and let Custom Instructions handle personality.
Q: How do I stop the AI from over-helping or suggesting fixes I didn’t ask for?
Frame inputs as demands or statements, not questions. Instead of “Why did this fail?”, say “Explain the failure. Don’t suggest fixes.” SutniPrompt’s stealth mode disables proactive helpfulness, and the Mandatory Halt forces the AI to acknowledge gaps instead of inventing solutions.
Q: Does the Wikipedia citation requirement slow things down?
Minimal impact. One citation per response is lightweight. The speed actually improves from cutting fluff, shorter, sharper outputs process faster. Users report 10, 20% quicker responses just from reduced padding.
Q: Does the “Mandatory Halt” actually stop hallucinations?
Not entirely, but it’s a strong friction point. Instead of confidently inventing answers to vague prompts, the AI stops and asks 2, 3 clarifying questions. That creates explicit awareness of information gaps, making it much harder for false answers to slip through unnoticed.
I got sick of LLM pleasantries and disclaimers, so I built a system prompt to fix it (SutniPrompt v0.1.0-alpha)
by u/sutnip in PromptEngineering