Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Aperivue/medsci-skills --skill manage-refsgit clone --depth 1 https://github.com/Aperivue/medsci-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/aperivue/medsci-skills/manage-refs)<a href="https://agentmods.dev/skills/aperivue/medsci-skills/manage-refs"><img src="https://agentmods.dev/badge/skills/aperivue/medsci-skills/manage-refs/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/aperivue/medsci-skills/manage-refs"><img src="https://agentmods.dev/badge/skills/aperivue/medsci-skills/manage-refs.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Agent Snooping · line 23 Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.Fix: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00067 | $0.04629 |
| Opus 5.5 | $0.00027 | $0.01852 |
| Sonnet 5.5 | $0.00013 | $0.00926 |
| Haiku 4.5 | $0.00007 | $0.00463 |
Grade A, and why
manage-refs scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 254 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Manage-Refs Skill
Pick the tool from the Decision Tree; do not invent a parallel pipeline. References are never
hand-typed: the list is always rendered by pandoc citeproc + journal CSL or by the Zotero Word
plugin (CWYW). This skill writes (renders, injects, converts); bibliographic correctness against
PubMed/CrossRef stays in /verify-refs — one read-only audit, one writer.
Decision Tree
| Situation | Tool | Why |
|---|---|---|
Validate [@bibkey] ↔ refs.bib (UNDEFINED / UNUSED keys) |
scripts/check_citation_keys.py |
Hard build gate, runs in seconds |
| Single-author submission lockdown, frozen output | scripts/render_pandoc.sh -j <journal> |
Reproducible, CI-friendly |
| Cascade rejection (e.g., ER → JVIR → CVIR) | render_pandoc.sh with new -j |
CSL swap reformats references in seconds |
| Verify a journal CSL renders the in-text format / DOI / journal-name style the author guide actually requires | scripts/check_csl_render.py --csl <x>.csl --bib refs.bib --journal <key> --md manuscript.md |
A stub/"dependent" CSL inherits its parent's format, which may differ from the guide (parenthetical vs superscript, DOI kept, full journal names). --md judges only the keys pandoc reads as cited (nocite: '@*' = whole bib); a preprint server named as the journal (journal = {arXiv}) is exempt from the abbreviation check; with no --journal/--expect-* the run is NOT_ASSESSED (exit 2), never PASS. Spec keys and what is not checked: references/REFERENCE_STYLE_SPECS.md. Run BEFORE submission, not after the proof PDF |
| Reference list prints FULL journal names but the journal wants NLM abbreviations | scripts/fill_journal_abbrev.py --bib refs.bib --out refs_abbrev.bib |
Writes shortjournal from PubMed (PMID, else DOI → PMID), then CrossRef short-container-title, named per entry (often ISO 4 with periods, not NLM: check those). Inserts after the journal field in the entry's own indentation, never overwrites, re-parses before writing; exit 1 = some lookups failed. In a Better BibTeX-managed bib, fill Zotero's "Journal Abbr" instead |
| Reviewer revision: add 1–2 refs to a Word doc with co-authors live | Zotero Word plugin (user GUI) | Minimal disruption to track-changes flow |
| Reviewer revision: bulk reference change | Edit markdown SSOT, re-run render_pandoc.sh |
Consistency, no cherry-pick risk |
Migrate [N] numeric markers → [@key] for pandoc |
scripts/md_marker_convert.py --to-keys |
Mapping-driven, partial conversion safe |
Convert [@key] → [N] for round-trip / debug |
scripts/md_marker_convert.py --to-numbers |
Same map, opposite direction |
| Wire native Zotero CWYW field codes into a .docx (live Refresh in Word) | scripts/inject_zotero_cwyw.py |
Co-author Word workflow, post-circulation editability |
| Manuscript ↔ rendered DOCX cross-reference QC | scripts/check_xref.py --strict |
Submission gate (P0 blocker on mismatch) |
| Figures/tables submitted as separate attachments (radiology, most medical journals) | check_xref.py --strict --allow-separate-attachments |
Downgrades MISSING_DOCX to WARN; MISSING_BODY/MISMATCH remain P0 |
| v_(N+1) docx build-time regeneration check | check_xref.py --vN-docx-md5 <prev>.docx [--vN-md <prev>.md] |
Identity = unmodified seed copy; missing diff lines = body not regenerated |
| Duplicate bibliography in the built artifact | scripts/check_reference_duplication.py --docx <built>.docx (or --text <rendered>.md) |
DUP_REF_HEADING / REF_NUMBER_RESTART / REF_SIGNATURE_DUP (Major). Catches a hand-typed ## References list plus the pandoc --citeproc auto-bibliography, which renders two lists (the second often after the legends). Run after any citeproc build |
Publisher markup in a .bib title (renders as garbage) |
scripts/check_bib_title_markup.py --bib refs.bib --strict |
CrossRef titles carry <scp>WHO</scp> / <i>IDH</i>; BBT escapes them ({$<$}scp{$>$}) or strips them without restoring the space (andTERTPromoter). verify_refs proves the reference is true; this proves it will print. TITLE_MARKUP / TITLE_FUSION (Major) |
| Master pre-submission gate (recommended before any submission) | scripts/pre_submission_gate.sh |
Chains check_citation_keys → check_bib_title_markup → verify_refs --strict → render_pandoc (optional) → check_xref --strict; single artifact qc/pre_submission_gate.json |
| Direct render with a built-in reference audit | scripts/render_pandoc.sh (audits the .bib via /verify-refs first; blocks on FABRICATED/MISMATCH/duplicates; reports UNVERIFIED rows as not clean, without blocking; after the render, warns about cited journal entries without shortjournal, which the style prints in full) |
Best-effort (skips with a warning if /verify-refs is not alongside); opt out with -S. The master gate passes -S because it runs verify_refs in its stage 3 |
| Bibliographic audit against PubMed / CrossRef | delegate to /verify-refs |
Audit-only — keep writer/auditor separation |
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- citation_styles/american-association-for-cancer-research.csl 7.8 KB
- citation_styles/american-journal-of-roentgenology.csl 6.8 KB
- citation_styles/american-medical-association.csl 11 KB
- citation_styles/annals-of-oncology.csl 10 KB
- citation_styles/breast-cancer-research-and-treatment.csl 1.2 KB
- citation_styles/cardiovascular-and-interventional-radiology.csl 1.3 KB
- citation_styles/clinical-breast-cancer.csl 832 B
- citation_styles/clinical-cancer-research.csl 1.0 KB
- citation_styles/elsevier-vancouver.csl 5.7 KB
- citation_styles/european-radiology.csl 1.2 KB
- citation_styles/journal-of-breast-cancer.csl 7.9 KB
- citation_styles/journal-of-cachexia-sarcopenia-and-muscle.csl 5.3 KB
- citation_styles/journal-of-clinical-oncology.csl 4.7 KB
- citation_styles/journal-of-korean-medical-science-strict.csl 18 KB
- citation_styles/journal-of-korean-medical-science.csl 891 B
- citation_styles/journal-of-medical-internet-research.csl 8.2 KB
- citation_styles/korean-journal-of-radiology.csl 5.7 KB
- citation_styles/liver-international.csl 18 KB
- citation_styles/methods-of-information-in-medicine.csl 6.6 KB
- citation_styles/nature.csl 6.3 KB
- citation_styles/nlm-citation-sequence.csl 18 KB
- citation_styles/radiology.csl 7.1 KB
- citation_styles/README.md 9.1 KB
- citation_styles/springer-basic-brackets.csl 8.1 KB
- citation_styles/springer-vancouver-brackets.csl 9.0 KB
- citation_styles/the-breast.csl 786 B
- citation_styles/the-lancet-oncology.csl 882 B
- citation_styles/the-lancet.csl 6.3 KB
- citation_styles/vancouver-superscript.csl 18 KB
- citation_styles/vancouver.csl 18 KB
- LICENSE.zotero-mcp 1.0 KB
- NOTICE.md 1.6 KB
- references/check_xref_symptoms.md 4.7 KB
- references/REFERENCE_STYLE_SPECS.md 5.5 KB
- scripts/_vendor_citation_writer.py 19 KB runs code
- scripts/check_bib_title_markup.py 6.6 KB runs code
- scripts/check_citation_keys_challenge/fixture/manuscript.md 127 B
- scripts/check_citation_keys_challenge/fixture/refs_clean.bib 210 B
- scripts/check_citation_keys_challenge/fixture/refs_undefined.bib 103 B
- scripts/check_citation_keys_challenge/verify.sh 1.8 KB runs code
- scripts/check_citation_keys.py 6.8 KB runs code
- scripts/check_csl_render.py 29 KB runs code
- scripts/check_reference_duplication.py 11 KB runs code
- scripts/check_xref.py 35 KB runs code
- scripts/fill_journal_abbrev.py 24 KB runs code
- scripts/inject_zotero_cwyw.py 5.2 KB runs code
- scripts/md_marker_convert.py 11 KB runs code
- scripts/pre_submission_gate.sh 9.1 KB runs code
- scripts/render_pandoc.sh 7.5 KB runs code
- scripts/strip_source_metadata.lua 237 B
- skill.yml 3.0 KB
- tests/fixtures/csl_render_sample.bib 496 B
- tests/fixtures/pre_submission_gate/manuscript.md 553 B
- tests/fixtures/pre_submission_gate/README.md 1.7 KB
- tests/fixtures/pre_submission_gate/refs.bib 1.4 KB
- tests/fixtures/pre_submission_gate/run.sh 5.0 KB runs code
- tests/fixtures/refclean_text.md 423 B
- tests/fixtures/refcount_particles.md 445 B
- tests/fixtures/refdup_particles.md 871 B
- tests/fixtures/refdup_text.md 890 B
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed 9facce47514f
- 24d ago Changed · +13 lines 0ed36281bee8
- 26d ago Changed · -97 lines · -77 tokens per session 644f8394385a
- 27d ago Changed 16a16ca23833
- 1mo ago First seen · 338 lines · 144 tokens per session scan A 16a7ddf44125
manage-refs is a skill published in the GitHub repository Aperivue/medsci-skills (352 stars, last pushed today), licensed MIT. It adds 67 tokens to every session and 4,629 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
lit-pdf-zotero
A research workflow for finding academic papers, downloading their PDFs, adding them to Zotero, and creating visual summaries. Zotero is a tool for organising references and research papers.
treatment-plans
Formats and structurally validates local treatment-plan documentation after clinical decisions have already been supplied and verified by authorized licensed professionals. Use for source traceability, clinician-authored intervention records, goals and checkpoints, shared-decision records, reconciliation handoffs, and…
venue-templates
Prepares journal manuscripts, conference papers, research posters, and grant documents using venue-specific formatting guidance and bundled LaTeX scaffolds. Supports selecting an official template, checking current page or anonymity rules, adapting academic writing to a venue, or inspecting a submission PDF.
feishu-doc
Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.
pdf-processing
Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
ifc-to-excel
Convert IFC files (2x3, 4x1, 4x3) to Excel databases using IfcExporter CLI. Extract BIM data, properties, and geometry without proprietary software.