omics-skills 1.7.1
Version 1.7.1 closes the two items v1.7.0 left open: citation checking that could
not tell one paper from another, and the test-suite consolidation. The package
contains four agents and 34 skills for Claude Code and Codex.
Citation identity
scripts/validate-citations.py verified that a DOI resolves. It did not verify
that the DOI names the paper the citation claims, so substituting one registered
DOI for another passed silently.
A citation in prose already states its author and year:
- MetaBAT2: Kang et al. (2019) *PeerJ* https://doi.org/10.7717/peerj.7359
That claim is now parsed and compared against the registered record. Swapping
the TaxonKit DOI for the MetaBAT2 DOI, which previously passed, now fails on
both counts: registered to 2019 but the citation says 2021, and registered to
Kang et al. but the citation names Shen.
Getting there required fixing three extraction faults that would otherwise have
failed correct citations:
- Adjacent list items borrowed each other's years, because consecutive
- Tool: Author (Year) ... DOIlines have no blank line between them. - Venue names read as authors:
npj Viruses (2024)and
(Journal of Genetics and Genomics 2021)are journals, not people. - One line carrying several references applied the first year to all of them.
The cache stores the registered authors and year alongside the title, so the
check runs offline. Crossref metadata is fetched for any citation that makes a
claim, not only those declaring a title, which is why the cache now carries real
author lists rather than nulls.
This still cannot establish that a paper supports the claim it is cited for.
That needs a reader.
Test consolidation
Two router tests asserted exactly what a make benchmark row already gates in
CI; both were removed after confirming the benchmark rows still pass. The two
per-skill Slurm wrapper tests were 25 near-identical lines each: fake sbatch on
PATH, run the wrapper, assert the account and job template reach it. They are now
one table-driven tests/test_slurm_wrappers.py, so the next wrapper is a row
rather than another copy, and it gained an assertion neither original had: a
wrapper must refuse to submit without an account, which is what binds a job to
the right scheduler.
The suite did not shrink. It is seven lines longer, because consolidating added
a real test. An earlier audit put roughly 380 lines on the table; on inspection
most of that was load-bearing, and deleting tests to reach a line count is a bad
trade. Eight document-grep tests were examined and kept: each guards a genuine
property, and moving them into a validator would cost more than it saves.
Upgrade
Run make install after updating. Nothing in the installed layout changes.