Claude Code skills · updated 2026-10-03
CRAN submission skill for Claude Code — DESCRIPTION and R code policy
Finds what CRAN will reject in your R package before you submit it
On a 3-file sample package it printed 28 findings (18 errors, 10 warnings) from 25 rules, each with file:line and what CRAN expects.
Get it on Whop - $12 onceGet it on Gumroad
Who it's for
For R package authors about to submit to CRAN, or answering a rejection email and resubmitting.
What breaks, and when
CRAN mails the submission confirmation to the maintainer address, so a placeholder address ends the submission; a Date over 31 days old draws a NOTE.
What it printed on the bundled example
== CRAN Submission Lint — 28 findings (18 errors, 10 warnings) in 3 files · 25 rules
ERROR DESCRIPTION:3 [desc-title-period]
DESCRIPTION Title must not end in a period. CRAN's Writing R Extensions: the Title is a short phrase in title case, no trailing full stop. [Title: this package provides tools for weighted survey analysis.]
ERROR DESCRIPTION:3 [desc-title-case]
DESCRIPTION Title must be in title case. Capitalise every word except articles, conjunctions and short prepositions. [lower-case: this, package, provides, tools, weighted, survey, analysis]
ERROR DESCRIPTION:4 [desc-version-dev]
DESCRIPTION Version looks like a development version. CRAN refuses four-component and .9000 versions; submit a released three-part version. [Version: 0.3.1.9000]
WARN DESCRIPTION:5 [desc-date-field]
DESCRIPTION Date field is in the future or more than 31 days old; R CMD check --as-cran raises a NOTE for both. Drop the Date field or set it on the day you submit. [Date is 53 day(s) in the future (today 2026-10-08)]
What you get
- A scanner Claude runs over DESCRIPTION, NAMESPACE and every .R file - not a guess from memory
- 25 rules: Title, Description, License, cre, .9000 Version, Date, Depends, library(), setwd(), :::, <<-
- For each finding: file:line, the offending text and what CRAN expects instead
- Claude proposes the edits and applies them only after you say yes; exit 1 in CI on any error
Install
Unzip into ~/.claude/skills/ (all projects) or your-repo/.claude/skills/ (one repo), then ask Claude Code: "I'm about to submit my R package to CRAN for the first time. Can you go through DESCRIPTION, NAMESPACE and the R code and tell me what CRAN is likely to reject? Don't edit anything yet.". Needs Node 16+.
unzip cran-submission-check.zip -d ~/.claude/skills/
Ask Claude
“I'm about to submit my R package to CRAN for the first time. Can you go through DESCRIPTION, NAMESPACE and the R code and tell me what CRAN is likely to reject? Don't edit anything yet.”
What it does not do
Reads package files only; it does not run R, R CMD check or the CRAN incoming checks.
FAQ
What is a Claude Code skill?
A folder with a SKILL.md and scripts that Claude Code loads when your request matches it. You ask in plain words and Claude runs the scanner the skill carries.
How is this different from asking Claude without the skill?
The skill carries a dated rule table and a scanner that reads every file, so Claude quotes the exact date and line instead of answering from memory.
Does it send my code anywhere?
Reads package files only; it does not run R, R CMD check or the CRAN incoming checks.
How do I install it?
Unzip into ~/.claude/skills/ (all projects) or your-repo/.claude/skills/ (one repo), then ask Claude Code: "I'm about to submit my R package to CRAN for the first time. Can you go through DESCRIPTION, NAMESPACE and the R code and tell me what CRAN is likely to reject? Don't edit anything yet.". Needs Node 16+.
What do I get when I buy?
The zip. On Whop it is in your library as a download lesson with the zip attached; on Gumroad it is the product file.