INTEGRITY
INTEGRITY is a forensic scanner for life-science manuscripts.
Core trick
Reads raw spreadsheet cell types, not exported CSV, then validates gene symbols and antibody IDs against HGNC, Cellosaurus, and SciCrunch.
Description
INTEGRITY is a forensic scanner for life-science manuscripts. It validates every
biological entity a paper names - gene symbols, cell lines, antibody RRIDs -
against authoritative registries (HGNC, Cellosaurus, SciCrunch) and reports only
what those registries actually say. It never reasons about biology and never
accuses an author: every finding is labeled REVIEW, never ERROR.
The core insight: when Excel silently converts a gene symbol like SEPT2 into a
date, it does not store the text "2-Sep" - it stores a typed date cell
(data_type='d'). That evidence is destroyed the moment the sheet is exported to
CSV and was never in the manuscript PDF, so no model reading the paper can
recover it. INTEGRITY reads the raw spreadsheet bytes instead.
Run on the real 2016 Ziemann supplementary file - the paper that first documented
this corruption - it finds exactly 1213 corrupted cells across 128 distinct
registry lookups, and refuses to flag registry-vindicated symbols (Oct-4 resolves
to POU5F1 and SEPT2 to SEPTIN2, both PASS). Only genuine corruption is flagged.
When a registry is unreachable it fails safe with a distinct exit code rather
than reporting a false clean.
It ships as three surfaces: a CLI, a live web app with streaming results
(https://integrity-lemon.vercel.app), and a Claude Code Stop hook that blocks an
agent from ending its turn if a registry disagrees with a biological claim it
just made.
Why it matters: 30.9% of papers carrying supplementary Excel gene lists were
corrupted by 2021 (up from 19.6% in 2016), the errors are silent and cheap to
catch, and today nobody catches them.
README excerpt
# INTEGRITY Validates the biological entities a manuscript names against external authoritative registries, and reports what those registries do and do not know. It does not reason about biology. It asks HGNC, Cellosaurus and SciCrunch, and quotes their answers. Every finding is a flag for human review. Nothing here calls a scientist wrong. ## The user A postdoc assembling the supplementary tables for a genomics paper, the week before submission. Nobody checks whether the gene column of `Table_S1.xlsx` still says what it said before Excel touched it, and nobody checks whether the cell line in the Methods is secretly HeLa. Both errors are silent, both are cheap to catch, and neither is caught today. ## The thing worth knowing When Excel decides `SEPT2` is a date, it does not store the text `2-Sep`. It stores a **typed date cell**. ``` A3: value=datetime(2026, 9, 2) data_type='d' is_date=True A5: value=23100000000000 data_type='n' ``` That type is the evidence, and it exists nowhere else. Export the sheet to CSV and it is gone. Read the manuscript PDF and it was never there, because the corruption lives in the supplement, not the prose. This is why INTEGRITY ingests spreadsheets for gene symbols rather than asking a model to read a paper. Corruption is only ever *reported*, never *inferred*. A date cell is suspicious. It becomes a finding when HGNC confirms the recovered symbol names a real gene: ``` TableS1!A3 holds '2026-09-02', which cannot be a gene sy