본문으로 건너뛰기
cccskills
무료GitHub에 공개

r-package-check

Run the full R package release gate — regenerate docs, run the test suite, run R CMD check --as-cran, and triage every ERROR / WARNING / NOTE against CRAN policy before a release or submission. Use when the user says "check my R package", "R CMD check", "is this package CRAN-ready", "run devtools::check", "prepare for CRAN submission", or points at a directory containing a DESCRIPTION file. Produces a check report + CRAN-submission checklist in `quality_reports/`.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md6.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

/r-package-check — R Package Release Gate

Run the document → test → check → triage pipeline that decides whether an R package is releasable, then review the source for the issues R CMD check cannot see.

Input: $ARGUMENTS — the package root (a directory containing DESCRIPTION). If blank, autodetect by searching upward/within the working directory for DESCRIPTION.


Constraints

  • Follow .claude/rules/r-package-conventions.md — the CRAN-readiness bar (0 errors, 0 warnings, explained notes) is the gate.
  • Treat man/ and NAMESPACE as generated — regenerate with devtools::document(); never hand-edit them.
  • Run the r-package-reviewer agent on the source before declaring the package releasable.
  • Do not bump the version or write to CRAN. This skill checks; the human decides when to submit.

Workflow Phases

Phase 0: Pre-Flight Report

## Pre-Flight Report — R Package Check

**Package:** [name + version from DESCRIPTION]
**Root:** [path]
**Exported functions:** [from NAMESPACE / `@export` count]
**Dependencies:** Imports [list] · Suggests [list] · Depends [list]
**Toolchain available:** devtools [✓/✗], roxygen2 [✓/✗], testthat [✓/✗], R CMD [✓/✗], covr [✓/✗]
**Plan:** document → test → check --as-cran → triage → review

Detect the toolchain with a quick probe; if devtools/R CMD is missing, stop and tell the user what to install.

Rscript -e 'cat("devtools:", requireNamespace("devtools", quietly=TRUE),
               "roxygen2:", requireNamespace("roxygen2", quietly=TRUE),
               "testthat:", requireNamespace("testthat", quietly=TRUE),
               "covr:", requireNamespace("covr", quietly=TRUE), "\n")'

Phase 1: Document

Regenerate man/ + NAMESPACE and detect drift (generated docs that were not committed):

Rscript -e 'devtools::document("[pkg]")'
git -C "[pkg]" status --short man/ NAMESPACE   # any diff = generated docs were stale

If git status shows changes, flag: the committed man//NAMESPACE were out of sync with the roxygen blocks.

Phase 2: Test

Rscript -e 'devtools::test("[pkg]")'

Report failures and (if covr is available, Phase 4) coverage of exported functions.

Phase 3: Check (--as-cran)

Run the full check. This is slow (minutes) — background-launch and stream with the Monitor tool rather than blocking:

Rscript -e 'devtools::check("[pkg]", args = "--as-cran")'
# or: R CMD build [pkg] && R CMD check --as-cran [pkg]_*.tar.gz

Then triage every result into a table:

ResultTierCRAN-policy meaningAction
…ERROR / WARNING / NOTE…fix / justify
  • ERROR / WARNING → must fix before submission.
  • NOTE → fix if cheap; otherwise write the justification you'd put in cran-comments.md (e.g., "New submission", "Found the following (possibly) invalid URLs … the URL is correct and reachable").

Phase 4: Coverage (optional)

Rscript -e 'covr::package_coverage("[pkg]")'

Report per-function coverage; flag exported functions with 0% coverage.

Phase 5: Source Review

Delegate to the r-package-reviewer agent:
"Review the package source at [pkg]"

The agent is read-only and returns its report; save it to quality_reports/[pkg]_package_review.md. Address Critical (CRAN-policy violations) and High (check WARNINGs) findings.

Phase 6: Release Gate + Report

Save a report to quality_reports/[package]_package_check.md and present a verdict:

## Release Gate — [package] [version]
- R CMD check --as-cran: E errors, W warnings, N notes
- Tests: P passed, F failed
- Coverage: X% of exported functions
- r-package-reviewer: C critical, H high
- **Verdict:** RELEASABLE / FIX-FIRST / POLICY-VIOLATION

### CRAN-submission checklist
[ ] 0 errors, 0 warnings; each note justified in cran-comments.md
[ ] Version bumped + NEWS.md updated
[ ] devtools::check_win_devel() / R-hub on other platforms (note: run separately)
[ ] Reverse-dependency check if this is an update (revdepcheck)

Important

  • --as-cran or it doesn't count. A plain R CMD check misses the policy checks that actually gate submission.
  • Generated files are generated. If docs drift, the fix is devtools::document(), not editing .Rd.
  • The gate is 0/0/explained. 0 errors, 0 warnings, every remaining note justified — nothing less is "CRAN-ready."
  • This skill does not submit. Cross-platform checks (win-devel, R-hub) and the actual devtools::release() are the maintainer's call.

Long-running checks: use the Monitor tool

R CMD check --as-cran and covr can run for several minutes. Don't block on them, and don't poll with sleep: start the Monitor tool with a command that runs the check itself, tees the full output to a log, and prints only the lines you would act on, e.g. Rscript -e 'devtools::check("[pkg]", args = "--as-cran")' 2>&1 | tee quality_reports/r-package-check.log | grep --line-buffered -E 'ERROR|WARNING|NOTE|Status:|[Ee]rror'. The watch ends when the check exits; set timeout_ms above the default 5 minutes (max 3600000). The filter must match failure as well as success, because silence looks the same as "still running". If you only need one notice when the check finishes, run it with Bash run_in_background: true instead and read the log when the job reports its exit. Monitor has no job-id parameter, so it cannot attach to a job already running in the background; see data-analysis/SKILL.md for the log-and-tail variant.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Turn an incoming set of findings — from an AI reviewer, a referee report, a code review, a linter, or a second model — into verified fixes, without letting a confident misread damage correct work. Every finding is a CANDIDATE until checked against the actual source. Use whenever you receive review comments, audit findings, or a critique you did not write yourself, especially when the reviewer is a model or when the volume is too large to check by feel.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pedrohcgs/claude-code-my-workflow1.7천2026년 9월 28일 업데이트

Enforce the replication-protocol.md rule by cross-checking numeric claims in a manuscript against the actual R / Stata / Python outputs. Report PASS/FAIL per claim against tolerance thresholds. Use before submission and before releasing a replication package.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pedrohcgs/claude-code-my-workflow1.7천2026년 9월 28일 업데이트

Before and after changing anything shared — a function's return value, a signature, a schema, a label set, a config default, a constant, a file format — find every consumer and actually run them. Catches the change that looks purely additive but silently breaks a contract in a file you never opened. Use when editing shared code, adding a field/column/return element, renaming, changing units or defaults, or touching a pipeline that produces reported numbers.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pedrohcgs/claude-code-my-workflow1.7천2026년 9월 28일 업데이트

Snapshot the computational environment for a replication package — detects the analysis stack (R / Stata / Python) and emits the right lockfiles (renv.lock + sessionInfo.txt, requirements.txt / environment.yml / uv.lock, Stata version + ado package list), records seeds and RNG kind, optionally writes a pinning Dockerfile, and produces a paste-ready "Computational requirements" block. Use when user says "capture the environment", "snapshot my dependencies", "pin the versions", "make a renv.lock / requirements.txt", "make this byte-reproducible", or before releasing a replication package to openICPSR / the AEA Data Editor.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pedrohcgs/claude-code-my-workflow1.7천2026년 9월 28일 업데이트

challenge

무료

Stress-test a finding against the choices you did not make. Enumerates the discrete forks a competent analyst could have taken (measure definition, sample filter, control set, clustering level, weighting, functional form), runs the specification grid, and reports the distribution rather than a point estimate — then attacks the identifying assumption with named, computable sensitivity statistics. Use when the user says "is this robust", "challenge this result", "specification curve", "multiverse", "how sensitive is this", "what if I'd used a different measure", "stress-test my estimate", or before a result becomes a headline claim. NOT a reviewer of prose or code — it challenges the CLAIM.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pedrohcgs/claude-code-my-workflow1.7천2026년 9월 28일 업데이트

Save a structured state snapshot before stopping or handing off. Captures the active plan, recent decisions, file pointers (with line numbers), open questions, and the next 1–3 actions into a checkpoint file under `quality_reports/checkpoints/`. Optionally proposes `[LEARN]` entries to add to MEMORY.md. Use when user says "checkpoint", "save state", "snapshot before I stop", "where am I", "wrap up the session for handoff", or before a long break / model switch / collaborator handoff. Companion to (NOT replacement for) the narrative session-log workflow.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pedrohcgs/claude-code-my-workflow1.7천2026년 9월 28일 업데이트

pedrohcgs의 스킬 모두 보기

이 스킬의 문제 신고