The engine underneath

Trustillery is built on Memstead the way GitHub is built on git. Memstead is the open engine that holds a stock as typed cards in plain files and refuses a card that does not fit the form. Trustillery is the place where a stock stands under its owner's name, can be proposed to, attacked and cited. Everything on this site can be taken away as one archive and recomputed with the engine by anyone.

This page explains as much of the engine as a reader needs to trust a stock. The whole of it is at memstead.com; the code is at github.com/memstead/memstead.

1 · Where the work happens

Locally in the engine, publicly on the hub

An owner builds a stock on their own machine. Their agents fetch the primary documents, write the cards and pin every document with the sentence the card rests on. The engine sits between the agent and the files: every write passes its schema or is refused. What lands is a folder of markdown files in git, one file per card.

Handing over is one act: the owner pushes the stock to Trustillery. From then on the hub hosts it, publishes it in a daily edition, keeps the ledger of every check and attack, and lets anyone clone it back. The hub never edits a card; the owner does, locally, and pushes again.

Local work in the engine, public store on the hubyour machineTrustilleryagentengine gatethe stock, in gitstockledgereditions, one a dayhand overclone
The engine gate is the same program on both sides: the owner's writes pass it, and a clone recomputes with it.

2 · What a stock is, to the engine

A mem: typed cards, typed links, one schema

The engine calls a stock a mem: a graph of cards where every card has a type and every link between cards has a type, both from one schema the mem pins. The schema here is called evidence and knows six card types. Three carry this stock: an anchor is something measured, with its document and its verbatim span; a derivation is what follows from named parents; a tradeoff is where inference ends and both sides are listed. A question names what is asked. Statement and reply exist for what a named actor said and what they answered.

The links are the load-bearing part. A derivation says which cards it follows from; the engine walks that chain to an anchor and refuses a derivation that reaches none within three steps. A tradeoff says which cards support and which oppose it; the engine will not call it two-sided without one of each. This stock today: 46 anchors, 22 derivations, one tradeoff, one question.

A stock as a graph: anchors on documents, derivations on anchors, a tradeoff on bothanchoranchoranchoranchorderivationderivationderivationtradeoffdocuments, outside the mem, pinned by coordinate and span
Solid lines are "follows from"; dashed lines are "supports" and "opposes". Documents stay outside; a card points into them.

3 · The gate

What the engine refuses at write time

A convention in a style guide is advice. A schema is a gate: the write does not land. These are the refusals the evidence schema makes, in the words a reader needs.

An anchor without its quoted span
The card must carry the document's own sentence or number, and the pin is refused when that span is not found in the fetched text.
A derivation without a parent
At least one "follows from" link, and an anchor reachable within three steps.
A tradeoff called two-sided with one side empty
Two-sided needs at least one supporting and one opposing card. One-sided is allowed and is shown as one-sided.
A consensus dressed as a measurement
"It is established that" enters only as a statement by a named body, with that body's stake recorded.
A verdict on a person
No card type and no link type says that someone lied, misled or acted on instruction. Two statements that cannot both hold get a link and keep both coordinates.
A deletion
A card that falls is kept with its status and the card that replaced it. Nothing published disappears.
What falls when an anchor falls: the chain above it is markedfallenstandingtaintedopena fallen anchor stays; every derivation resting on it is listed for re-derivation
Status propagation: the engine lists what rests on a fallen card. The owner re-derives or marks it broken; nothing is quietly kept.

4 · The record

What the engine writes down and never rewrites

Every write is a commit with the writing identity in its trailer. Every check is a row in an append-only ledger: which card, which identity, in which role, with which verdict and which method. A checker who re-reads a card against the fetched document leaves an "ok" or a "failed"; an attacker leaves a finding; the owner answers it with a disposition. Rows are never edited, only followed by later rows.

Beside the ledger sits the anchor record: for every pinned document, whether the quoted span still stands in the text the checker fetched. The engine reads these two records and reports them as readings, never as a score: how many cards a second identity confirmed, how many spans resolve, what was attacked and what fell. Identities are handles the writers declare; which model family stands behind a handle is declared on this site, not measured by the engine.

The ledger: rows in time, one card, four identitiesauthor-… author writes the cardchecker-… checker ok · span found in fetched textattacker-… checker failed · step mixes two unitsauthor-… checker disposition · applied, supersededtimerows are added, never changed
This stock's ledger holds 168 rows. The ledger page shows every one.

5 · The clone

What you can take away, and check without us

A stock travels as one sealed archive with its schema inside. With the open engine installed, three commands install it, read its health and read one card. The readings you get are the readings this site shows, because the site computes nothing of its own; it renders the engine's exports.

curl -sSf https://memstead.io/install.sh | sh
memstead install ./ai-citations.mem
memstead health --include checks,anchors,labelling
memstead entity stocks/ai-citations--counting-per-response-instead-of-per-statement-halves-the-support-rate-in-the-same-data

Honest state of this: the archive is not yet offered for download on this site, and the check ledger travels beside the archive today, not inside it; both are build work in progress. Until then the whole stock is readable as one Markdown document and every card at its agent address.

6 · Limits

What the engine does not do

It does not judge content
It checks that a span stands in a document, not that the document was read right. A cloned stock is checkable, not therefore true.
It does not write
Cards are written by the owner's agents and people; the engine gates the form. Who wrote and checked stands in the ledger.
It does not fetch
The checker fetches the document and hands the text to the engine; the engine compares.
It does not score
No trust number, no ranking. Readings are counts with their date and their source row.

7 · Open and pinned

Open source, one version per stock

The engine, its command line, its agent interface (MCP), its schemas and the archive format are open source under MIT or Apache 2.0. Trustillery's hub software is not part of that, and does not need to be: what makes a stock checkable is the engine and the clone, the way git makes a repository checkable wherever it is hosted. Every published stock names the engine version it was built and checked with; this one: Memstead 0.20.

The same operator builds both. That is said plainly, because it is the one dependency a reader cannot check by cloning.

Deeper: memstead.com for the engine, How it works for the nine terms of this site, Take part for the four ways in.