| name | joss-audit |
| description | Evaluate R package and paper.md against the full JOSS reviewer checklist. Covers software requirements, paper format, and community standards. Gap report with Critical, Warnings, and Passed sections, plus fix recommendations. |
JOSS Submission Audit
Evaluate an R package against the complete JOSS reviewer checklist and produce a structured gap report. This covers software quality, documentation, development history, and paper.md format compliance.
Workflow
1. Locate the Package and Paper
Identify the R package root (look for DESCRIPTION). Then search for paper.md — check root, paper/, joss/, and inst/paper/. If no paper.md exists, note this as a critical gap.
1b. Load User Config
Read .claude/pub-pipeline.local.md if it exists (Read tool). Extract author metadata (ORCID, affiliation) and package context from YAML frontmatter. If the file is missing, inform the user and offer to create one from the template at ${CLAUDE_PLUGIN_ROOT}/docs/user-config-template.md.
2. Check Software Requirements
License (Read tool):
- Verify a plain-text
LICENSE or LICENSE.md file exists
- Confirm it's an OSI-approved license (MIT, GPL-2, GPL-3, Apache-2.0, BSD, etc.)
Repository quality (Bash tool):
git log --oneline --since="6 months ago" | wc -l
git shortlog -sn --all | head -10
gh issue list --state all --limit 5
gh pr list --state all --limit 5
git tag -l | tail -5
Documentation (Glob/Read tools):
README.md exists with installation instructions
- Usage examples present (in README, vignettes, or both)
- API documentation exists (
man/ directory with .Rd files)
- Contributing guidelines (
CONTRIBUTING.md or in README)
- Issue reporting instructions
Testing (Bash/Glob tools):
- Test directory exists (
tests/testthat/ or tests/)
- Tests actually run:
Rscript -e 'devtools::test()'
- Coverage check:
Rscript -e 'covr::package_coverage()'
Installation (Bash tool):
- Verify package installs cleanly:
Rscript -e 'devtools::install()'
3. Check Paper Format
If paper.md exists, validate against JOSS format requirements.
YAML frontmatter (Read tool — check first 50 lines):
| Field | Required | Check |
|---|
title | Yes | Present, descriptive, includes package name |
tags | Yes | Array of relevant keywords, includes "R" |
authors | Yes | Each has name, orcid, affiliation |
affiliations | Yes | Each has index and name |
date | Yes | Format: %e %B %Y (e.g., "9 October 2024") |
bibliography | Yes | Points to existing .bib file |
Required sections (Grep tool):
# Summary — high-level for non-specialists
# Statement of Need or # Statement of need — research purpose, target audience
# State of the Field or # State of the field — comparison to existing packages
# Software Design or # Software design — architecture, trade-offs
# Research Impact or similar — evidence of impact
# AI Usage Disclosure or similar — generative AI transparency
# References
Bibliography (Read/Grep tools):
paper.bib exists at expected path
- All
@citation_key references in paper.md have matching BibTeX entries
- No orphaned BibTeX entries (optional, informational)
Citation cross-reference (Bash tool):
grep -oP '(?<=@)[\w:.-]+' paper.md | sort -u > /tmp/paper_keys.txt
grep -oP '^\s*@\w+\{\K[\w:.-]+' paper.bib | sort -u > /tmp/bib_keys.txt
comm -23 /tmp/paper_keys.txt /tmp/bib_keys.txt
All citation keys in paper.md must have matching BibTeX entries. Report any missing.
Word count (Bash tool):
awk '/^---$/{n++; next} n>=2 && !/^# References/{print}' paper.md | wc -w
Target: 750-1750 words.
Figures and math:
- Figures are captioned and referenced image files exist
- Math uses
$...$ (inline) and $$...$$ (display) syntax
4. Check AI Disclosure
If the package or paper used generative AI tools, verify the disclosure includes:
- Specific tools/models used (with versions)
- Where AI was applied (code, paper, documentation)
- Nature and scope of assistance
- Confirmation that humans reviewed and made core design decisions
5. Produce Gap Report
Format the report following this structure:
# JOSS Audit Report: {package name}
## Summary
- **Status**: READY / NEEDS WORK / NOT READY
- **Paper exists**: Yes/No
- **Reviewer checklist**: X/Y items pass
## Critical Gaps (Blockers)
1. [Missing item] — [what to do]
## Warnings
1. [Issue] — [recommendation]
## Reviewer Checklist Results
### General Checks
- [ ] or [x] Source code at repository URL
- [ ] or [x] OSI-approved LICENSE file
- [ ] or [x] Submitting author is major contributor
- [ ] or [x] Demonstrates research impact
### Development History
- [ ] or [x] 6+ months public development
- (info) Multiple contributors: encouraged by JOSS but not required; note it, do not fail solo-maintainer packages on it
- [ ] or [x] Issues/PRs activity
- [ ] or [x] Tagged releases
### Functionality
- [ ] or [x] Installation works as documented
- [ ] or [x] Functional claims confirmed
### Documentation
- [ ] or [x] Statement of need in README or paper
- [ ] or [x] Installation instructions
- [ ] or [x] Usage examples
- [ ] or [x] API documentation
- [ ] or [x] Automated tests
- [ ] or [x] Contribution guidelines
### Paper Quality
- [ ] or [x] Summary section
- [ ] or [x] Statement of Need
- [ ] or [x] State of the Field
- [ ] or [x] Software Design
- [ ] or [x] Research Impact Statement
- [ ] or [x] AI Usage Disclosure
- [ ] or [x] References complete
- [ ] or [x] Word count 750-1750
## Recommended Next Steps
1. [Ordered actions]
6. Offer to Fix
After presenting the report, offer to address gaps:
- Create
paper.md and paper.bib via the pub-pipeline:joss-writer agent (or /joss-draft skill)
- Add
CONTRIBUTING.md
- Add
CODE_OF_CONDUCT.md
- Add missing ORCID fields
- Fix YAML frontmatter formatting
- Create AI usage disclosure section
For a deeper multi-agent audit, launch the pub-pipeline:joss-reviewer agent which spawns software-auditor, community-auditor, and field-scout specialists in parallel.
Reference Files
For the complete JOSS requirements and reviewer checklist, consult:
${CLAUDE_PLUGIN_ROOT}/docs/joss-reference.md — Full JOSS submission requirements, reviewer checklist, paper format spec, and post-acceptance workflow
${CLAUDE_PLUGIN_ROOT}/docs/joss-exemplars.md — Real JOSS R package paper examples with structural analysis and patterns
Important Notes
- JOSS has no submission or publication fees.
- JOSS does not outright reject — they request revisions. But scope mismatches can lead to desk rejection.
- The 6-month development history requirement is checked by reviewers examining git history.
- "State of the Field" must name specific competing packages and explain why building a new package was justified over contributing to existing ones.
- Post-acceptance requires: tagged release, Zenodo/figshare deposit, archive DOI.