Metadata-Version: 2.4
Name: readystack-cran-policy-submission-lint
Version: 1.0.8
Summary: Catch the CRAN Repository Policy violations before the volunteer team does (bundled Node.js runtime)
Author-email: ReadyStack <support@getreadystack.com>
License: Proprietary - see LICENSE.txt
Project-URL: Homepage, https://getreadystack.com/tools/cran-policy-submission-lint?ref=pypi
Project-URL: Documentation, https://getreadystack.com/tools/cran-policy-submission-lint?ref=pypi
Project-URL: Support, https://getreadystack.com/support
Keywords: cran,r,rstats,package,submission,policy,lint,devtools,roxygen,description
Classifier: Programming Language :: Python :: 3
Classifier: Environment :: Console
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: nodejs-wheel-binaries>=20
Dynamic: license-file

# CRAN Policy Submission Lint

> Runs the same checker as the npm package `@readystack/cran-policy-submission-lint` on a Node.js runtime that pip installs for you (`nodejs-wheel-binaries`) - no system Node.js needed. Your files are checked locally.

![CRAN Submission Lint - R package policy check (DESCRIPTION, NAMESPACE, tests) — finds the line](https://getreadystack.com/img/promo/cran-policy-submission-lint_demo.gif)

Catch the CRAN Repository Policy violations before the volunteer team does

## Install

```
cran-policy-submission-lint file
```

Node 18+. The same 25 rules as the VS Code extension, from a terminal or CI.

## Free

- Check the R file, DESCRIPTION or NAMESPACE open in your editor against all 25 CRAN policy rules, with the line number and the fix.
- `--rules` lists every rule

## With a licence ($29 once)

- Sweep the whole package - every R/ file, DESCRIPTION and NAMESPACE together - and write a dated pre-submission report you keep and can paste into your submission comments.

```
@readystack/cran-policy-submission-lint --dir ./templates --report html --out report.html
```

A freelance R developer in North America bills $50-$100 an hour (Upwork, 2026); one rejected submission is a round trip of rework plus a wait in the queue.

## Use from an AI agent (MCP)

Claude Code · Cursor · Windsurf · any MCP client - add to your MCP config:

```json
{ "mcpServers": { "cran-policy-submission-lint": { "command": "npx", "args": ["-y", "@readystack/cran-policy-submission-lint", "--mcp"] } } }
```

Tools: `check_text` and `check_file` (free) · `check_dir` (licence). The agent gets every finding with the line number.

## Use in CI

```yaml
- name: CRAN Policy Submission Lint
  run: npx -y @readystack/cran-policy-submission-lint --dir . --ci
```

(container: `docker run --rm -v "$PWD:/work" getreadystack/cran-policy-submission-lint --dir /work --ci`)

The folder sweep, reports and CI mode need one licence — one payment, no subscription. Set `READYSTACK_LICENSE=<key>` or run `--license <key>` once.

[Get a licence](https://getreadystack.com/api/buy/cl/polar_cl_3p5QJlCGs0PUdsfxchdv4o2Jyr2C8Op4waTgt0xQNDs)


<!-- cran policy submission lint -->


## Install (PyPI)

```
pip install readystack-cran-policy-submission-lint
cran-policy-submission-lint --help
```
