community-skills v0.2.0: a queryable CRAN graph, an assisted package publisher, and a skills hub

R
CRAN
packages
tooling
AI
Tools for the R ecosystem: a queryable graph of CRAN dependencies, an assisted package-submission pipeline, and a hub that wraps CRAN packages as typed, agent-callable skills.
Author

Pedro Carvalho Brom

Published

May 16, 2026

Code repositorypcbrom/community-skills

The R ecosystem runs on CRAN: more than twenty thousand packages, decades of accumulated work. A few things, though, are hard to see from inside it. There is no single queryable graph of how those packages depend on each other. There is no quick way to ask which ones are effectively abandoned. And maintaining a package, the update, the R CMD check, the submission, is still manual friction that every maintainer recognizes.

community-skills v0.2.0 is a set of tools built around that gap, in three parts.

cran-graph: the dependency network, queryable

cran-graph builds the CRAN dependency network as a graph you can query: more than twenty four thousand packages as nodes and roughly two hundred and forty thousand dependency edges. On top of it sit two things. A deprecation classifier sorts packages into four states, so “is this package still alive” becomes a query instead of a guess. And an install-set optimizer answers a practical question: the smallest set of packages that satisfies a goal, dependencies included.

The point is to make the ecosystem legible. “What depends on this package”, “what would break if it left CRAN”, “what is the minimal install for this task”, these stop being archaeology and become lookups.

cran-publisher: the submission cycle, assisted

Publishing to CRAN is a loop: update the package, run R CMD check, read the output, fix what it flags, repeat, submit. cran-publisher automates the mechanical part of that loop. It runs the check, parses the output, and categorizes each error. A fix loop then proposes corrections, using a local language model with five distinct prompt strategies across attempts, and re-runs the check.

One thing it does not automate: the submission itself. Every submit passes through a human approval gate. The tool reduces the friction of getting a package check-clean; the decision to send it to CRAN stays with the maintainer. The dogfooding target is bgumbel, a CRAN package.

community-skills: the hub

The two tools above live inside community-skills, a hub of ninety five skills: five core and ninety wrapping packages from the CRAN top one hundred. Each skill follows one pattern: a SKILL.md describing a typed JSON contract, plus a bridge that runs R in a subprocess and exchanges JSON.

The reason for the pattern is specific. When an AI agent uses an R package by generating R code, it loads verbose documentation, writes code, and retries after errors. A typed contract changes that: the agent decides what to call, the bridge executes it, and an error comes back structured instead of as a stack trace. Fewer retries, an auditable trail.

Honest state

This is v0.2.0, not a finished product. cran-graph and cran-publisher are built, and the suite has 280 passing tests. The submit step of cran-publisher is deliberately gated and fires only for substantive releases. Many of the ninety R skills currently carry structural smoke tests; semantic review per skill is ongoing, incremental work. The repository is open about what is solid and what is still in progress.

Where it is

community-skills is open source under the MIT license: github.com/pcbrom/community-skills. Issues and contributions are welcome; a new skill is a SKILL.md plus a bridge.

I write about this kind of work, scientific method, statistics, and AI applied with rigor, on LinkedIn: linkedin.com/in/pcbrom.