Skip to content

Stop showing readers the record's workflow status - #86

Merged
fosterwei merged 1 commit into
mainfrom
fix/status-leak
Sep 30, 2026
Merged

fosterwei merged 1 commit into
mainfrom
fix/status-leak

Conversation

@fosterwei

Copy link
Copy Markdown
Owner

Reported as the compounds page tagging everything "draft". It was: all 34 of them, in a monospace <code> element beside the evidence tier, on pages that are written, reviewed by a named pharmacist and indexed.

Why

status is internal workflow state and nothing updates it. Every record has said draft since the day it was drafted. This looked like a bug about one directory; it is the same stale field that had the homepage set to noindex and seven empty pages set to index.

Where it leaked

Place Count
Compounds directory 34 labels
Compare table, repeated on every compound page per row, every page
The no-reviewer notice, which named the status in its sentence 1
Changelog entries ending "Status researched -> draft." 86 entries, 34 records

226 visible occurrences across 35 pages.

What readers see now

The directory and the compare table report when the record was reviewed, or "not yet" where nobody has signed it, which is the question that column was standing in for.

Before:  Epitalon    Human clinical trial · draft
After:   Epitalon    Human clinical trial · reviewed 2026-09-29
Before:  Compound | Tier | Publications | RCTs | Record
         TB-500   | ...  | 1,257        | 7    | draft
After:   Compound | Tier | Publications | RCTs | Reviewed
         TB-500   | ...  | 1,257        | 7    | 2026-09-25

The changelog entries keep what changed and drop the state transition, which described the pipeline rather than the page. The about page computed a count of records at status published, always zero, and never rendered it; removed.

Four compounds correctly show "not yet reviewed": sermorelin, semaglutide, tirzepatide and bremelanotide. Those are the ones still unwritten.

A rule so it cannot come back

check_links.py gains a sixth rule: no page may print any of the seven status values inside a <code> element. Deliberately narrow, so a paper titled "a draft genome" cannot trip it. Verified by injecting a leak, which exits 1.

Before After
Visible "draft" on the built site 226 across 35 pages 0

Gates

Content validation (59 records), registry check, 36 drafter tests, 17 calculator tests, loop gate 47/47, all six link rules.

🤖 Generated with Claude Code

Reported as the compounds page tagging everything "draft". It was: all
34 of them, in a monospace code element beside the evidence tier, on
pages that are written, reviewed by a named pharmacist and indexed.

`status` is internal state and nothing updates it. Every record has said
'draft' since it was drafted, which is why this looked like a bug about
one directory and was actually the same stale field that had the
homepage set to noindex and seven empty pages set to index.

It leaked in four places, 226 times across 35 pages:

  the compounds directory, 34 labels
  the compare table on every compound page, which repeats it per row
  the no-reviewer notice, which named the status in the sentence
  86 changelog entries ending "Status researched -> draft."

All four now report something a reader can use. The directory and the
compare table say when the record was reviewed, or "not yet" where no
reviewer has signed it, which is the question the column was standing in
for. The notice says the same thing in words. The changelog entries keep
what changed and drop the state transition, which described the pipeline
rather than the page.

The about page computed a count of records at status 'published', always
zero, and never rendered it. Removed.

check_links.py gains a rule: no page may print any of the seven status
values in a code element. That is narrow on purpose, so a paper titled
"a draft genome" cannot trip it. Verified by injecting a leak, which
exits 1.

Visible occurrences of the word across the built site: 226 before, 0
after.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
research-reference Ready Ready Preview Sep 30, 2026 7:25am UTC

@fosterwei
fosterwei merged commit d5fac46 into main Sep 30, 2026
5 checks passed
@fosterwei
fosterwei deleted the fix/status-leak branch September 30, 2026 07:28

This branch was successfully deployed

1 active deployment
Preview — b5759e9d Deployed Sep 30, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant