What I built
No Bull stress-tests your decisions instead of validating them. It's a reaction to AI sycophancy, chatbots telling you you're right even when you're not (one study found AI agrees with users 49% more than a human would).
Input goes through seven stages: a clarifying check, a reframe that strips out your stated opinion, a structured stress test, a forced "how could this be wrong" pass, a devil's advocate, and a fact-check with live web search. The split is deliberate, Anthropic handles the reframe and stress tests, OpenAI handles the devil's advocate and fact-check, because a model checking its own work is a weak check.
The fact-checker never sees the original reasoning, only the extracted claims, so it can't be swayed by the framing it's meant to be checking. If a claim turns out false, that part of the analysis gets rewritten. No memory between sessions, on purpose — the research says persisted context makes sycophancy worse.
Who it's for
I wanted this for myself. Beyond that: founders and product leaders making calls on pricing, roadmap, hiring, that kind of thing, who want someone to push back before they take an idea to their team, board or investors. Think of it as the part of consulting that's supposed to challenge you, minus the bit where the consultant's paid not to challenge you.
Tools used
Claude Code for the build, working plan-first against a spec doc I kept updating. Claude reviewing every plan before letting it ship. Next.js, TypeScript, Tailwind, Vercel. Anthropic and OpenAI APIs, Vercel KV for the job queue, Novus.ai for analytics.
What I learned
Keeping a spec doc up to date saved me but more than once things drifted when I wasn’t paying attention. I also burned $20 in API costs almost immediately by leaving every call on the most expensive model by default. Which I fixed it by routing each stage to whichever model actually suited the job. And I underestimated how long polish takes. I only heard about this hackathon Tuesday at #mtpLondon, so the real build happened over two evenings plus a later-than-planned final push.
Next steps
I'm going to keep using this myself, so a few things are already on the list: Mainly, making the output easier to actually consume without quietly reintroducing the bias problem (a generic AI summary would just smooth over the disagreement the whole tool exists to surface). I’m thinking text-to-audio, or a narrowly tuned model just for an evidence-based summary.
Key articles used as inspiration
- Sycophantic AI decreases prosocial intentions and promotes dependence (https://www.science.org/doi/10.1126/science.aec8352)
- Botsitting, botshitting, and the hidden human labor of AI at work (https://www.glean.com/work-ai-institute/reports/work-ai-index-report)
- Ask Don't Tell: Reducing Sycophancy in Large Language Models (https://www.aisi.gov.uk/blog/ask-dont-tell-reducing-sycophancy-in-large-language-models-2)
Built With
- anthropic-api
- app-router
- claude-code
- claude-sonnet-4.6
- github
- gpt-5.4
- gpt-5.4-mini
- gpt-5.4-nano
- next.js
- novus.ai
- openai-api
- tailwind-css
- typescript
- upstash-redis
- vercel
- vercel-kv
Log in or sign up for Devpost to join the conversation.