From research-papers
Audits paper directories for required files like notes.md and PDF, YAML frontmatter validity, tags, wikilinks usage, cross-references section, and index consistency. Run on single paper or --all.
How this skill is triggered — by the user, by Claude, or both
Slash command
/research-papers:lint-paperThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Audit paper directories for completeness and format compliance. No AI needed — just file checks and grep.
Audit paper directories for completeness and format compliance. No AI needed — just file checks and grep.
Use papers/db.yaml as the schema contract for collection-level format expectations.
if [[ "$ARGUMENTS" == "--all" ]]; then
ls -d papers/*/ | grep -v "papers/tagged" | sort
else
paper_dir="$ARGUMENTS"
fi
For each paper directory, run all checks and collect results.
| File | Status |
|---|---|
notes.md | REQUIRED — run paper-reader if missing |
description.md | REQUIRED — run paper-reader if missing |
abstract.md | recommended |
citations.md | recommended |
paper.pdf or pngs/ | REQUIRED — at least one source artifact must exist. Notes without a verifiable source are untrustworthy. |
Notes metadata: Does notes.md have YAML frontmatter with at least title: and year:?
head -8 "$paper_dir/notes.md" | grep -E "^title:|^year:"
Missing → report as NOTES_METADATA_MISSING
Tags: Does description.md have YAML frontmatter with a tags: field?
head -5 "$paper_dir/description.md" | grep "tags:"
Missing → report as UNTAGGED
Wikilinks: Are cross-references in notes.md using [[wikilinks]]?
# Check for old-style bold refs in cross-reference sections
grep -c '\*\*[A-Z][A-Za-z0-9_]*_[0-9]\{4\}' "$paper_dir/notes.md"
Found → report as LEGACY_BOLD_REFS
Frontmatter validity:
notes.md has --- delimiters, is the YAML valid?description.md has --- delimiters, is the YAML valid?--- appears on lines 1 and 3+ (not empty frontmatter)title: is present in notes.mdtags: value is a list, not empty in description.mdCross-references section: Does notes.md have ## Collection Cross-References?
grep -c "## Collection Cross-References" "$paper_dir/notes.md"
Missing → report as NOT_RECONCILED
In index: Is the paper listed in papers/index.md?
grep -c "## $(basename $paper_dir)" papers/index.md
Missing → report as NOT_INDEXED
Index description matches: Does the description in index.md match description.md?
Only check if both exist — flag INDEX_STALE if they differ.
Source artifact: Does the paper have a PDF or page images?
ls "$paper_dir/paper.pdf" "$paper_dir"/pngs/page-*.png 2>/dev/null | wc -l
Zero → report as NO_SOURCE_ARTIFACT (notes without a verifiable source are untrustworthy — retrieve the PDF)
Orphan PDF: Is there a PDF in papers/ root with a name matching this paper?
ls papers/*.pdf 2>/dev/null
Any root-level PDFs → report as ORPHAN_PDF (should have been moved by paper-reader)
Page citations in notes: Do findings in notes.md include page references?
grep -c '(p\.[0-9]' "$paper_dir/notes.md"
Zero → report as NO_PAGE_CITATIONS (re-read paper with updated paper-reader to add page provenance)
Lint: papers/Author_Year_Title/
✓ notes.md
✓ description.md
✓ abstract.md
✗ citations.md — MISSING
✓ paper.pdf
✗ notes metadata — NOTES_METADATA_MISSING
✗ tags — UNTAGGED
✓ wikilinks
✗ cross-references — NOT_RECONCILED
✓ indexed
Group by status:
Lint: N papers checked
Complete (M papers):
- Paper1, Paper2, ...
Issues found:
MISSING notes.md (need paper-reader):
- Paper3
MISSING description.md (need paper-reader):
- Paper4
NOTES_METADATA_MISSING (need migrate_notes_frontmatter.py or re-run paper-reader):
- Paper4a
UNTAGGED (need tag-papers):
- Paper5, Paper6, Paper7, ...
NOT_RECONCILED (need reconcile):
- Paper8, Paper9
LEGACY_BOLD_REFS (need migrate-format.py):
- Paper10
NOT_INDEXED (need generate-paper-index.py):
- Paper11
ORPHAN_PDF (unprocessed PDFs in papers/ root):
- somefile.pdf
Then a summary line:
Summary: M complete, N issues across K papers
npx claudepluginhub ctoth/research-papers-plugin --plugin research-papersAudits a research wiki directory for seven issue classes: orphan sources, missing hubs, broken wikilinks, stale claims, contradictions, open questions, and missing comparisons. User-triggered read-mostly linting.
Audits markdown knowledge bases for missing frontmatter, broken links, tag inconsistencies, orphaned files, draft staleness, content gaps, and coverage issues. For KB quality checks.
Audits manuscript references against PubMed/CrossRef to detect fabricated or mismatched citations. Useful before journal submission or after AI-assisted drafting.