inspiration
yesterday i realized i keep repeating things an AI told me , stuff i never actually checked. and the scary part is a wrong answer looks exactly the same as a right one in a chat window :)) so i built the thing i needed: not an answer to trust, but an argument i can argue with.
what it does
you paste one claim, cairn reads three source families live (wikipedia, news, research), and gives you a dossier , Supported, Contradicted, Mixed, or honestly "not enough evidence". every source carries the exact sentence that decided its stance, every answer sentence has a [n] you can click to jump to the evidence. no key, no account. in simple terms, it's a receipt for a fact.
how i built it
node and express backend, react and vite frontend, one process. the pipeline is understand → retrieve → read → weigh → compose, all deterministic , an optional LLM may rewrite the prose but it can't touch the verdict. 55 tests, an SSRF guard, rate limits. the fun part was the stance classifier: it has to require the claim's own predicate in the same sentence, or pest control text about a carrot fly votes "support" :))
challenges
the engine kept agreeing with myths using quotes that refuted them , it affirmed einstein-failed math with a passage saying he excelled at it. of course, one fix wasn't enough: reporting frames ("conspiracy theories claim...") had to go neutral, adversative clauses ("failed X, but excelled at Y") had to flip to refute. took a while, but now Mixed and "not enough evidence" are the features i'm proudest of, not fallbacks.
Built With
- agent
- ai
- demo
Log in or sign up for Devpost to join the conversation.