Claimstone

How it works

From a list of questions to an evidence profile.

Claimstone is six stages that talk through append-only files, and one person who signs at the end.

How it works

From your questions to an answer you can check, in six steps.

You provide the topics and the questions. Claimstone does the rest, one step at a time, and leaves a file at every step that you can open and check.

You provide the topics, a fixed list of numbered questions, and the kinds of source you accept. They are three plain files.

  1. 1discover

    Finds

    Searches for papers on your topics in two independent ways: by keywords and by following citations. You get the list of candidates, each marked with what kind of source it is, such as a peer-reviewed paper or a blog post.

    writes · candidates.jsonl
  2. 2acquire

    Obtains

    Gets the best legal copy of each paper, preferring open access, and never goes through pirate libraries. It records every attempt and why it failed, so you know how much it could really read.

    Papers behind a paywall can’t be fetched. You can add a copy you got yourself, from a library or by purchase. It goes through the same identity and full-text checks, and is reported on its own line, so it never quietly inflates how much was read.

    writes · acquisitions.jsonl · raw/
  3. 3normalize

    Prepares

    Turns PDFs and web pages into clean text and splits it into passages, so every quote can be traced back to an exact place.

    writes · documents.jsonl · chunks.jsonl
  4. 4extract

    Extracts

    A model proposes the claims it finds in each paper. The code then checks every claim against its quote. The ones that fail are rejected and listed.

    writes · claims.jsonl · rejections.jsonl
  5. 5review

    Rechecks

    A second, different model rereads each claim in its whole passage, to check it still holds in context.

    writes · reviews.jsonl
  6. 6synthesize

    Summarizes

    For each question it assembles an evidence profile from what was accepted: the results, how many sources point each way, what was rejected and how much was read. No model, no network, no statistics at this step: it only organizes and counts.

    writes · profiles.jsonl

You get an evidence profile for each question. A person reads it, decides, and signs.

The answers

Not just yes or no: five possible answers.

A question put to the studies doesn’t always have a yes or a no. Each verdict says what the evidence lets you claim, and no more. A person records it after reading the evidence profile.

The evidence points one way

SUPPORTED

The evidence says yes.

The profile is convincing, and whoever signs writes down why.

CONTRADICTED

The evidence says the opposite.

The profile is convincing in the other direction.

The evidence doesn’t decide, and that can happen in three ways

CONTESTED_IN_LITERATURE

The studies disagree.

The studies speak and contradict each other in a way that can’t be reconciled.

UNANSWERED_IN_LITERATURE

The studies don’t settle it.

They were read, and they aren’t enough to decide.

NEVER_ASKED

Nobody has studied it.

A person checked that it isn’t just a gap in the search.

These three look the same from outside, and they aren’t. Treating “the studies disagree” as “nothing found” is the mistake Claimstone exists to avoid.

The signature is tied to the evidence the person saw: if the evidence changes later, the verdict is marked out of date. Questions are numbered and frozen, and changing the list is a dated version change.

No verdict has been signed yet. These are the states the project recognises.

Rules the engine does not bend

  • No claim without a verified quote

    The quote must be an exact substring of its chunk, and every number and inequality in the claim must appear in it. Failures go to the rejection ledger.

  • Five verdict states

    None collapses into another. A question of kind operational receives no verdict at all rather than a sixth state.

  • The acquisition floor gates verdicts

    A round that obtained less than its floor of what it found is INSUFFICIENT_ACQUISITION. There is no override.

  • The engine holds no domain knowledge

    Topics, questions and source classes are input data under projects/.

  • A question change is a dated bump

    A digest of ids, texts and kinds makes a silent change refuse to run.

  • Source class travels with every item

    A blog post and a refereed paper never share a pool without it being recorded which is which.

  • Vote counting is not synthesis

    Stage 6 emits an evidence profile and no verdict. There is no pooling.

Read the full walkthrough