Researchers annotating an evolving bibliographic corpus with a faceted vocabulary re-tag the same items as the vocabulary stabilises, and probabilistic annotation makes each pass drift in ways the analyst cannot reconstruct. Here, we present a deterministic, rule-based protocol that publishes the annotation function itself, f(item) → tags, as editable CSV tables that detect cues in the title-and-abstract surrogate, map them to controlled tags, and derive further tags from those already placed. A linter certifies the tables before each write, a triage routes every departure to a repair or an inscribed analyst verdict, and versioning keeps every change revertible as a single line. Applied to a 402-item mutual-aid and crisis bibliography across fourteen dimensions and 155 controlled values, the function returns a SHA-256-attested identical tag set on every pass under frozen tables, so re-passes differ only where the analyst intervened. A coverage diagnostic, scored against a single LLM reference reading, characterises the surrogate scope, and construct validity remains a separate argument. Dictionary content analysis dissolves design judgment into the lexicon and probabilistic annotation migrates it into learned weights, whereas this protocol keeps that judgment a first-class, versioned object of the published record. For evolving corpora in the digital humanities, inscribing the annotation function keeps the deltas between passes readable as deliberate analytical decisions.
Raphael Stevens (Sun,) studied this question.