How research gets published here
The publishing protocol behind this site: a citation gate that makes an invented reference impossible, a confidence tier that is computed rather than claimed, and an honest account of what is written by a human and what is not.
- [A]
In short
Every reference on this site is machine-resolved against Crossref or PubMed and copied in by a script — none is typed by hand, so none can be invented, by a person or by a model. Every post carries a tier it inherits rather than asserts. This post documents that machinery, the tools it is built from, and the division of labour between the author and the assistant.
How this site publishes. The rule that generates the others: a reader must be able to check everything here, and an error must not survive a commit.
How this is written
Questions, claims and verdicts are the author’s. What gets built, what would count as killing a claim, and what rung a claim sits on are human decisions. The protocol forbids an AI from promoting a claim or calling one falsified — that needs a measurement and a person.
Drafting and analysis are AI-assisted. Prose, analysis code and measurement pipelines are produced with an AI assistant working inside those protocols, then read and edited. Research assistance runs on a local, zero-retention model on hardware the author controls.
Citations are neither hand-written nor model-generated. Every reference is resolved against Crossref or PubMed by a separate tool and copied in mechanically. A validator rejects any citation typed by hand, any bare DOI, and any key not already in the ledger. A reference here cannot be invented, by a person or a model.
Tiers are copied, not argued. A post may not claim more confidence than the weakest claim it rests on, and that is checked before it publishes.
The gate
Publishing is blocked by a script, not by intentions.
- Cite by key only. A citation is a key and nothing else. A bare DOI fails the build; so
does an inline
Author et al. 2021. If a name cannot be typed by hand it cannot be invented. That rule exists because an audit once found a paper cited for months under an author who does not exist. - Both directions must agree. Every declared key is cited in the body; every cited key is declared. A listed-but-unused source is dead weight; a used-but-unlisted one has no verified provenance.
- Every key resolves in the ledger, machine-copied from the research repo. Not there means it does not exist for publication.
- No tier laundering. A post may not assert a tier stronger than its weakest claim.
- Nothing from retracted or archived directories, and no self-asserted
[VERIFIED]— that is a check that passes upstream, not a label anyone applies.
CI re-runs the gate against the committed data, without access to the private research repo. What this site claims must be checkable from the public repository alone.
What the gate cannot do
It proves the citation plumbing is sound. It cannot prove the prose is honest. A correctly cited paper can still be misrepresented, and only reading catches that.
So there is a manual pass every time, looking for the specific ways a claim outruns its source: correlation written as causation, animal results as human results, in-vitro as in-vivo, a single study as consensus, an effect without an effect size.
And the standing rule: an abstract is not a paper. If the full text has not been read, the post may say the work exists but not what it found. Whether a paper has been read is an assertion by a person, so no script writes that field.
The tools
| Site | Jekyll on GitHub Pages, no custom plugins — the build is reproducible by anyone with the repository |
| Gates | Python, standard library only. No dependencies to install means no excuse not to run them |
| Registries | Crossref and PubMed, queried directly. Every author, year, title and identifier here came out of one of those responses |
| Signal analysis | Welch’s method for spectral estimation, FOOOF for separating periodic from aperiodic, MNE for reference implementations to check against |
| Public data | OpenNeuro and PhysioNet, for validating apparatus against recordings made on better instruments |
| Design | A shared design system, self-hosted OFL typefaces, MIT-licensed icons. Nothing is fetched from a CDN |
The confidence badges carry a glyph and a word, not only a colour: the palette fails a colour-blindness check past three categories, and a reader who cannot see the difference should not lose information.
How posts stay in sync with the research
One direction only.
- A claim lives in the research repo with its sources, its computed tier, and the conditions that would prove it false.
- A sync script copies only what published posts reference — bibliography and claim tiers, nothing else. It refuses a key that never resolved against a registry, a claim with no tier, or anything from a retracted directory.
- The gate validates posts against that copy, and a separate check fails if the copy is stale.
A tier shown here is the tier the corpus computed at the commit the data was copied. If a claim weakens upstream, the post cannot keep the stronger badge past the next sync.
Corrections are amended, never erased. A factual error gets a dated correction appended to the post that made it. A claim retracted upstream is retracted here in the same change that updates the data.
What this site is not
Not a results feed. Most of what gets established here is a fact about an instrument — that a given piece of hardware cannot reach a given question — which is a different statement from the question being answered.
If something here overreaches its source, that is a defect. The point of citing by key is that you can go and check.
Note — 2026-08-31
This replaced a placeholder of the same date that existed to give the machinery something to
validate. The original made no claims and cited two sources only to exercise the citation
renderer; both were removed with it. Retiered C to A, and refiled under method.
Version history 5 revisions
Generated from this site's git history. with Claude means the commit carries a co-author line for an Anthropic model: an LLM took part in that change, not necessarily in every word of it, and git cannot say which. The same history on GitHub →
-
v5 2026-09-12 07:54 posts: inline source cards, and every post cut to the point
---This site is the public face of a private research corpus. The corpus already refuses to let bad citations in. This post is about the second gate — the one that makes sure nothing gets *weaker* on the way out the door.How this site publishes. The rule that generatesallthe others:**a reader must be able to check everything here, and an error must notbe able tosurvive a commit.**## How this is written**The questionsQuestions,theclaims,andevery verdictverdicts are the author's.** What gets built, what would count as killing a claim, and what rung a claim sits on are human decisions. The protocolgoverning this workforbids an AI from promoting a claim or calling one falsified — thatrequiresneeds a measurement and a person.**Drafting and analysis are AI-assisted.** Prose, analysis code and measurement pipelines are produced with an AI assistant working inside those protocols, then read and editedby the author. Research assistance runs on a local, zero-retention model on hardware the author controls.**Citations are neither hand-written nor model-generated.** Every reference is resolved against Crossref or PubMed by a separate tool and copied in mechanically. A validator rejects any citation typed by hand, any bare DOI, and any key not already in the ledger.— so aA reference here cannot be invented, by a person orbya model.Where a source is cited without its full text having been read, the article says so rather than describing what it found.**Confidence tiersTiers are copied, not argued.**AnAarticlepost may not claim more confidence than the weakest claim it rests on, and that is checked before itcan publishpublishes.That disclosure used to live in a collapsed drawer in the footer of every page. It belongs in an article instead, where it can be read rather than dismissed.## The gatePublishing is blocked by a script,rather thannot bygoodintentions.It enforces, among other things:- **Cite by key only.** A citationin the bodyis`a key="levin2018"`and nothing else. A bare DOIin prosefails the build.;Soso does an inline `Author et al. 2021`.— because ifIf a name cannot be typed by hand,it cannot be invented. That rule exists because an audit once found a paper cited for months under an author who does not exist.- **Both directions must agree.** Everykeydeclaredin a post's front matterkey is cited in the body, and; everykeycitedin the bodykey is declared. A listed-but-unused sourcethat is listed but never usedis dead weight;onea used-but-unlistedbut not listedone has no verified provenance.- **Every key resolves in the ledger**,which ismachine-copied from the research repo.If a key is notNot there,means it does not exist for publicationpurposes.- **No tier laundering.** A post may not assert aconfidencetier stronger thantheits weakest claimit rests on.- **Nothing fromaretracted or archiveddirectorydirectories**, and no self-asserted `[VERIFIED]`badges— that is a check that passes upstream, not a label anyone applies.TheCI re-runs the gateruns again in CIagainst the *committed* data, without access to the private research repo.That is deliberate: whatWhat this site claims must be checkable from the public repository alone.## What the gate cannot doIt proves the citation plumbing is sound. It cannot prove the prose is honest. A correctly-cited paper can still be misrepresented, and only reading catches that.So there is a manual pass every time, looking for the specific ways a claim outruns its source: correlation written as causation, animal resultswrittenas human results, in-vitrowrittenas in-vivo, a single studywrittenas consensus, an effectreportedwithout an effect size.And the standing rule that an abstract is not a paper — if the full text has not been read, the post may say the work exists but not what it found.And the standing rule: **an abstract is not a paper.** If the full text has not been read, the post may say the work exists but not what it found. Whether a paper has been read is an assertion by a person, so no script writes that field.## The toolsEverything here is built from open, inspectable pieces, which is the point:| | ||---|---|| **Site** | Jekyll on GitHub Pages, no custom plugins —sothe build is reproducible by anyone with the repository || **Gates** | Python, standard library only. No dependencies to install means no excuse not to run them || **Registries** | Crossref and PubMed, queried directly. Every author, year, title, journaland identifieron this sitehere came out of one of those responses || **Signal analysis** | Welch's method for spectral estimation, FOOOF for separating periodic from aperiodiccomponents, MNE for reference implementations to check against || **Public data** | OpenNeuro and PhysioNet, for validating apparatus against recordings madeby people withon better instruments || **Design** | A shared design systemwith, self-hosted OFL typefacesand, MIT-licensed icons. Nothingon this siteis fetched from a CDN |The confidence badgesare worth one note. The five tiers are distinguishable by colour, but colour never carries the meaning alone — each badge also shipscarry a glyph and a word,becausenot only a colour: the palette fails a colour-blindness check past three categories, and a reader who cannot see the difference should notbe the one who loseslose information.## How posts stay in sync with the researchA post is not a snapshot that drifts. The chain runs one way:One direction only.1. A claim lives in the research repo with its sources, its computed tier, and the conditions that would prove it false.2. A sync script copies **only** what published postsactuallyreferenceinto this repository—thebibliography andtheclaim tiers, nothing else. It refusesto copya key that never resolved against a registry,ora claim with no tier, or anything from a retracted directory.3. The gatethenvalidatestheposts against thatcopied datacopy, and a separate check fails if the copy is stalerelative to the research repo.So aA tierdisplayedshownon this sitehere is the tier the corpus computed,at the commit the data was copied. If a claim weakens upstream, the post cannot keep the stronger badge past the next sync.**Corrections are amended, never erased.** A factual error gets a dated correction appended to the post that made it,.and if aA claimisretracted upstreamitis retracted here in the same change that updates the data.Nothing is quietly edited away.## What this site is notIt is notNot a results feed. Most of what gets established here is a fact about an instrument — that a given piece of hardware cannot reach a given question —and thatwhich is a different statement from the question being answered.The distinction is load-bearing and it gets its own post.If something here overreaches its source, that is a defect. Thewholepoint of citing by key is that you can go and check.## Note — 2026-08-31Thispostreplaced a placeholder of the same date that existed to give thepublishingmachinery something to validate. The original made no claims and cited two sourcespurelyonly to exercise the citation renderer; bothhave beenwere removedalongwith it. Retiered `C` to `A`, andthe post is now tiered `A` as a description of settled process rather than `C`. It is filedrefiled under **method**rather than audio-evoked potentials, which is what it was always about. -
v4 2026-09-03 15:17 site: images on every post, bigger thumbnails, CTA moves into the sidebar
citations:image: /assets/posts/card-catalog.jpgimage_alt: >-An open library card catalog drawer, index cards standing upright in a long wooden tray.image_credit: Michael Holleyimage_license: Public domainimage_license_url: https://en.wikipedia.org/wiki/Public_domainimage_source_url: https://commons.wikimedia.org/wiki/File:Copyright_Card_Catalog_Drawer.jpgsummary: >- -
v3 2026-08-31 16:42 site: sidebar layout, topic pages, pagination; hello-world becomes a real article
---title: "Hello World — howHow research gets published here"description: >-A placeholder first post that doubles as a working example of the format:The publishing protocol behind this site: a citation gate that makes ankeyedinventedcitationsreference impossible, acomputedconfidence tier, and a claimthatstatesishowcomputeditrather thancould be proven wrong.claimed, and an honest account of what is written by a human and what is not.date: 2026-07-24 09:00:00 -0600project:audio-evoked-potentialsmethodstatus: publishedtier:CAclaims:- BIO-0001citations:- levin2014- levin2018citation_notes:- levin2014 >> Cited only as work that exists. Its full text has not been read here, so nothing on this page says what it found.- levin2018 >> Same standing — the badge on the entry, not this line, is the record of that.summary: >-Every reference on this site is machine-resolved against Crossref or PubMedand copied in by a script — none is typed by hand, so none can be invented,by a person or by a model. Every post carries a tier it inherits rather thanasserts. This post documents that machinery, the tools it is built from, andthe division of labour between the author and the assistant.---This is a placeholder. It exists so the machinery has something to chew on — but it is written under the same rules every real post will be, because a protocol you exempt the first post from is not a protocol.This site is the public face of a private research corpus. The corpus already refuses to let bad citations in. This post is about the second gate — the one that makes sure nothing gets *weaker* on the way out the door.The rule that generates all the others: **a reader must be able to check everything here, and an error must not be able to survive a commit.**##The rulesHow thispageisobeyswrittenNothing here is cited from memory. Every source is referenced by a **ledger key**, and that key resolves to an entry in a machine-generated citation ledger that was built by querying Crossref and PubMed directly. No author name, year, or DOI on this page was typed by a human or a model — they are copied out of the registry response. That is the whole point: an error then gets fixed in one place instead of eleven.The claim below is tiered `[C]` — our own inference, stated as such. Bioelectric state is argued to be an *instructive* control layer for morphogenesis rather than a downstream readout of genetic signaling{% include cite.html key="levin2018" %}, building on the earlier account of endogenous voltage potentials controlling cell behaviour in vivo{% include cite.html key="levin2014" %}. Neither of those sources has been read in full text yet, which is recorded rather than glossed over — and which is exactly why this sits at `[C]` and not `[A]`.**The questions, the claims, and every verdict are the author's.** What gets built, what would count as killing a claim, and what rung a claim sits on are human decisions. The protocol governing this work forbids an AI from promoting a claim or calling one falsified — that requires a measurement and a person.**Drafting and analysis are AI-assisted.** Prose, analysis code and measurement pipelines are produced with an AI assistant working inside those protocols, then read and edited by the author. Research assistance runs on a local, zero-retention model on hardware the author controls.**Citations are neither hand-written nor model-generated.** Every reference is resolved against Crossref or PubMed by a separate tool and copied in mechanically. A validator rejects any citation typed by hand, any bare DOI, and any key not already in the ledger — so a reference here cannot be invented, by a person or by a model. Where a source is cited without its full text having been read, the article says so rather than describing what it found.**Confidence tiers are copied, not argued.** An article may not claim more confidence than the weakest claim it rests on, and that is checked before it can publish.That disclosure used to live in a collapsed drawer in the footer of every page. It belongs in an article instead, where it can be read rather than dismissed.## The gatePublishing is blocked by a script rather than by good intentions. It enforces, among other things:- **Cite by key only.** A citation in the body is `key="levin2018"` and nothing else. A bare DOI in prose fails the build. So does an inline `Author et al. 2021` — because if a name cannot be typed by hand, it cannot be invented. That rule exists because an audit once found a paper cited for months under an author who does not exist.- **Both directions must agree.** Every key declared in a post's front matter is cited in the body, and every key cited in the body is declared. A source that is listed but never used is dead weight; one used but not listed has no verified provenance.- **Every key resolves in the ledger**, which is machine-copied from the research repo. If a key is not there, it does not exist for publication purposes.- **No tier laundering.** A post may not assert a confidence tier stronger than the weakest claim it rests on.- **Nothing from a retracted or archived directory**, and no self-asserted `[VERIFIED]` badges — that is a check that passes upstream, not a label anyone applies.The gate runs again in CI against the *committed* data, without access to the private research repo. That is deliberate: what this site claims must be checkable from the public repository alone.## What"couldthebegatewrong"cannotmeansdoEvery claim published here is maintained in a separate research repository with recorded **disproof conditions** and a section for **disconfirming evidence**. A confidence tier is computed from those records; it is never asserted by whoever happens to be writing. If a source is retracted, or a disproof condition is met, the claim is amended in writing under a dated retraction notice — never quietly deleted.It proves the citation plumbing is sound. It cannot prove the prose is honest. A correctly-cited paper can still be misrepresented, and only reading catches that.So there is a manual pass every time, looking for the specific ways a claim outruns its source: correlation written as causation, animal results written as human results, in-vitro written as in-vivo, a single study written as consensus, an effect reported without an effect size. And the standing rule that an abstract is not a paper — if the full text has not been read, the post may say the work exists but not what it found.##WhatThecomes nexttoolsReal posts on audio-evoked potentials, the bioelectric substrate they act on, and the neuroscience in between. Each will look structurally like this one: a lede, a tier, the claims it rests on, and a bibliography you can check.If you find an error in one of these, that is the system working. Say so.Everything here is built from open, inspectable pieces, which is the point:| | ||---|---|| **Site** | Jekyll on GitHub Pages, no custom plugins — so the build is reproducible by anyone with the repository || **Gates** | Python, standard library only. No dependencies to install means no excuse not to run them || **Registries** | Crossref and PubMed, queried directly. Every author, year, title, journal and identifier on this site came out of one of those responses || **Signal analysis** | Welch's method for spectral estimation, FOOOF for separating periodic from aperiodic components, MNE for reference implementations to check against || **Public data** | OpenNeuro and PhysioNet, for validating apparatus against recordings made by people with better instruments || **Design** | A shared design system with self-hosted OFL typefaces and MIT-licensed icons. Nothing on this site is fetched from a CDN |The confidence badges are worth one note. The five tiers are distinguishable by colour, but colour never carries the meaning alone — each badge also ships a glyph and a word, because the palette fails a colour-blindness check past three categories and a reader who cannot see the difference should not be the one who loses information.## How posts stay in sync with the researchA post is not a snapshot that drifts. The chain runs one way:1. A claim lives in the research repo with its sources, its computed tier, and the conditions that would prove it false.2. A sync script copies **only** what published posts actually reference into this repository — the bibliography and the claim tiers, nothing else. It refuses to copy a key that never resolved against a registry, or a claim with no tier, or anything from a retracted directory.3. The gate then validates the posts against that copied data, and a separate check fails if the copy is stale relative to the research repo.So a tier displayed on this site is the tier the corpus computed, at the commit the data was copied. If a claim weakens upstream, the post cannot keep the stronger badge past the next sync.**Corrections are amended, never erased.** A factual error gets a dated correction appended to the post that made it, and if a claim is retracted upstream it is retracted here in the same change that updates the data. Nothing is quietly edited away.## What this site is notIt is not a results feed. Most of what gets established here is a fact about an instrument — that a given piece of hardware cannot reach a given question — and that is a different statement from the question being answered. The distinction is load-bearing and it gets its own post.If something here overreaches its source, that is a defect. The whole point of citing by key is that you can go and check.## Note — 2026-08-31This post replaced a placeholder of the same date that existed to give the publishing machinery something to validate. The original made no claims and cited two sources purely to exercise the citation renderer; both have been removed along with it, and the post is now tiered `A` as a description of settled process rather than `C`. It is filed under **method** rather than audio-evoked potentials, which is what it was always about. -
v2 2026-08-31 15:57 site: adopt the monorepo design system, add two posts, publish the AI disclosure
- levin2018citation_notes:- levin2014 >> Cited only as work that exists. Its full text has not been read here, so nothing on this page says what it found.- levin2018 >> Same standing — the badge on the entry, not this line, is the record of that.--- -
v1 2026-07-24 13:17 Add Jekyll research blog with a citation-gated publishing protocol
v1: the original version, as first committed. Read it on GitHub →