ENFR
Method

How we build with Claude

The working discipline behind every page and analysis on this site — with the receipts from this site's own build.

What happened before this release went public

Before the pages in this release went live, four PMIDs, fourteen DOIs and one trial registration were re-verified at source. The copy came back corrected in three places where it had drifted from the abstracts it cited, and one claim that could not be confirmed was deleted. Twenty-one built pages then sat unpublished until a physician had ruled on every block of text — sixteen recorded rulings, one of them a flat rejection. The page you are reading is the rejected one, rewritten.

That is the method, seen once, on its own output. The rest of this page describes it in general, because a reader who appraises evidence for a living deserves to know how ours is assembled: by a physician working with an AI model — Claude, made by Anthropic — under a written discipline that decides what the model may do, what it may never do, and who rules on every word before it becomes public.

The receipts

  • 4PMIDs re-verified
  • 14DOIs re-verified
  • 1trial registration re-verified
  • 21pages held unpublished
  • 16rulings recorded
  • 1flat rejection

The pipeline

The build pipeline, six stages in order Six connected stage nodes on one line: specification, build, one adversarial pass, verification, physician rules on cards, public. A teal marker sits on the stage selected in the row of buttons below. 1 2 3 4 5 6

Select a stage.

STAGE 1 A specification before any build

Nothing substantial is drafted before the decisions are made and written down.

STAGE 2 Stable before better

The same input must return the same answer before “better” means anything.

STAGE 3 One adversarial pass, then a verdict

Every substantial deliverable takes one structured adversarial critique before it ships: an independent second pass whose brief is to argue the strongest case against the work.

STAGE 4 Citations are real or absent

Every PMID, DOI and trial registration is verified against PubMed, ClinicalTrials.gov or the source itself before it appears in anything. Never fabricate; if unverifiable, say so and leave it out.

STAGE 5 The physician rules on cards

Machine proposals reach the physician as cards: the source quote above, the proposed text below, and four possible rulings — accept, reject, accept with an edit, or hold.

STAGE 6 What this costs, and why we pay it

…a page that might be wrong is more expensive than a page that is late.

What the model never does here

Claude sees no patient data.

The humans choose; the software remembers what they chose.

Read the method page

Nothing you select here is stored or sent — it stays in this browser tab.

We name the tool plainly, the way we name Leaflet, which draws our maps, or Cloudflare, which serves these pages. Vagueness about how work is done is a poor foundation for a site whose entire argument is that sources should be checkable.

A specification before any build

Nothing substantial is drafted before the decisions are made and written down. A deliverable of consequence starts with a specification: what it is for, whom it serves and whom it does not, what success looks like, and — for every build step — the decision embedded in it, the default that will be taken, and the single word that reverses that default later. The pages you are reading were built from such a document; so was the evidence corpus; so was this paragraph's own rewrite.

The reason is economic. A wrong decision caught in a specification costs one reading; the same decision caught after the build costs the build. Twenty years of stroke-unit protocols teach the same arithmetic — the time to argue about the pathway is before the patient is in it.

One adversarial pass, then a verdict

Every substantial deliverable takes one structured adversarial critique before it ships: an independent second pass whose brief is to argue the strongest case against the work. The critique is then adjudicated line by line — adopted where it names a real defect, held where the original reasoning survives — and the adjudication is recorded with reasons. The specification behind this release came back marked "fix first" and was corrected in three named ways before a single page was built.

The pass runs once. We do not loop a model against its own output, because we have watched iterated self-critique make work worse, and we wrote the observation down. Critique here is a verdict, judged once.

Citations are real or absent

The standing rule, quoted as it is written: "Every PMID, DOI and trial registration is verified against PubMed, ClinicalTrials.gov or the source itself before it appears in anything. Never fabricate; if unverifiable, say so and leave it out." In practice this means every identifier on this site has been fetched at its source, every external link opened live with its title and destination recorded, and every claim that failed the check removed rather than softened into "data suggest".

There is a museum in Paris, the Arts et Métiers, full of nineteenth-century machines that almost worked; we have written before about its real lesson — that knowledge advances as much by learning to inhibit wrong connections as by forming new ones. A reference check is exactly that: an inhibition mechanism. Language models form connections fluently; the discipline is in what gets stopped.

The physician rules on cards

Machine proposals reach the physician as cards: the source quote above, the proposed text below, and four possible rulings — accept, reject, accept with an edit, or hold. The rulings go into decision files with dates. Nothing on this site published itself; every public word passed an explicit ruling, and where a proposal was accepted with an edit, the edit is the physician's hand and the record says so.

The record is a file, not a memory. A decision that lives only in a conversation has a way of un-happening; a decision in a dated file can be audited by anyone who later needs to know why a page says what it says.

Stable before better

The same input must return the same answer before "better" means anything. A system whose output changes between two runs of the same question cannot be evaluated, and an unevaluable system cannot be improved — whatever it is doing, it is not progress. So reproducibility is checked mechanically here: the site's guard scripts are tested by planting deliberate mutations and proving the guards still fail loudly, and the sections of the site that must not change are compared byte for byte after every build. A guard that cannot be made to bite is decoration. What this stage means for an evidence corpus — and a live demonstration of the property — is its own page: reproducibility.

What the model never does here

Claude sees no patient data. The teaching cases on this site were written as fiction from the start, and no identifiable patient reaches the model in any workflow behind this site. Claude publishes nothing on its own; every public word passed a physician's ruling, including these. And Claude makes no clinical recommendation: the systems we build organise evidence around a decision and leave the decision where it already sits — with the physician who signs, and who carries the consequence. The humans choose; the software remembers what they chose.

What this costs, and why we pay it

The discipline is slow and the slowness shows. Pages sit dark for days waiting for a ruling; claims die in verification that would have survived on a faster site; a finished page can be rejected whole and rewritten, as this one was. We pay these costs for a simple reason: in this field a reader's next step after reading may touch a treatment decision, and a page that might be wrong is more expensive than a page that is late.

When an improvement has actually taken effect

Correcting an evidence system is harder than it looks, because a correction that is merely written down has a way of not happening. The corpus behind this site runs a written improvement protocol whose core is a five-part test. An improvement has taken effect only if it fires — deterministically, on exactly the cases it should; is retrieved — with a guarantee, not a similarity coin-flip; outranks the base — a correction that cannot beat the text it corrects is cosmetic; is locked — a regression test fails the build if it ever stops firing; and survives the version bump — it lives in an append-only layer, not in a file that gets replaced.

The five were not invented in the abstract; each answers a failure mode observed in this system's own earlier versions: corrections that evaporated when a file was replaced; rules stated as prose that a model skims instead of executing; retrieval that dropped the right content for a differently framed question; new rules funded by silently evicting old ones; and fixes that worked once and quietly broke later — because hand-picked test cases select for the defects you already suspect. The one-line test of the whole protocol: can you point to the regression case that would go red if this improvement stopped working? If not, it has only been written down.

Source: the corpus's own improvement protocol, 2026.

Provenance recorded is not provenance enforced

When we assessed a research workbench that saves every analysis with a provenance record — the conversation, the code, an execution log, the environment — its documentation contained one sentence worth the whole read: if the code tab and the execution log disagree, trust the log. Read as an engineer, that is a sensible disambiguation rule. Read as a doctor who has had to justify a number, it is an admission: the record labelled "the code that produced this figure" can diverge from the code that actually ran, and nothing re-runs the code to check that the figure regenerates from it. Provenance there is recorded, not enforced — a real achievement, and one leg short of a guarantee. A record you cannot re-execute is a better-formatted claim.

We have paid for the difference ourselves, twice. The document making exactly that argument nearly shipped as three silently corrupt renders — page one perfect in each, everything beyond a certain point turned by the converter into a one-character-per-line table 935 pages long — caught by no log but by an execution check: a word-count diff against the source. And a confirmatory analysis run on a session workbench was lost when the session's unsaved files were cleared, which earned the standing rule this work now runs under: the workbench is the workbench, the file system is the record, and nothing that is not exported exists.

Source: the working record's own assessment briefs and build logs, 2026.

The guard that bites

This site has its own external oracle: a dependency-free, read-only checker that enforces the site's hard invariants mechanically and exits non-zero on a broken one — "the referee is the exit code, not a model's opinion," as its own header puts it. It exists because memory does not scale: nobody re-reads sixty pages by eye after a fifteen-minute edit between patients.

On an early run it caught a real defect: a rebuilt page had silently lost its draft banner — while the site was still an unindexed draft, exactly the class of drift that would have let a work-in-progress become publicly findable. A human re-reading the tree would not reliably have caught it; the script caught it in under a second. The checker has since grown with the site. Since launch it proves the inverse law — public pages must be indexable, the dark zones must never be — plus the absence of forms, of third-party requests, and of storage or network calls outside the map pages, and it was re-run, passing, on the very build that shipped this paragraph.

Its honesty condition is the one this page keeps returning to: a guard is only real if it can be made to fail. Every new check is proven by planting the defect it exists to catch and watching the build go red — because a guard that cannot be made to bite is decoration.

Source: the site's own preflight checker and its build record, 2026.