Generic R Package Developer Checklist
Pre-Implementation
- Classify change scope: API, behavior, docs, tests, release metadata, or governance.
- Identify impacted public interfaces and compatibility risk.
- Decide whether change is additive, behavioral, or breaking.
Implementation
- Keep behavior changes explicit in code and tests.
- Preserve existing interfaces unless breaking change is intentional.
- Keep naming consistent across code, docs, and examples.
Documentation Sync
- Update
README.md for user-facing behavior changes.
- Update changelog (
NEWS.md and any additional release notes files).
- Update design/architecture docs when architecture or conventions change.
- Update relevant vignettes.
- Regenerate reference docs (
devtools::document()) when roxygen/signatures/imports change.
AI Docs Sync
- Verify user-doc readability is preserved (no machine-oriented schema/contract
dumps in narrative-first sections).
- (If using AI-doc artifacts) Verify machine-oriented artifacts are updated
when API/contracts/output schema/folder contracts changed.
- (If using AI-doc artifacts) Verify links/index references to machine
artifacts are valid.
- (If using AI-doc artifacts) Verify dedicated machine pages exist and are
indexed (for example: API contracts page and quick function index page).
- (If using pkgdown) Verify wrapper vignettes use includes from
inst/skills/*/SKILL.md and inst/skills/*/references/*.md (single source,
no copied skill/reference text).
- (If using pkgdown) Verify one-wrapper-per-skill convention:
- each skill has one
vignettes/skills-<skill>.qmd,
- references are embedded in that wrapper,
- no orphan
skills-*-ref-*.qmd files remain unless explicitly intended.
- (If using pkgdown) Verify
_pkgdown.yml keeps a compact skills menu (one
entry per skill) and that all skill wrappers are listed under articles.
- (If using pkgdown) If skill wrapper pages are pkgdown-only (not package
vignettes), ensure they are excluded via
.Rbuildignore (for example
^vignettes/skills-.*\\.qmd$) to avoid vignette-engine check notes.
Validation
- Run targeted tests for touched modules.
- Run package checks appropriate to change risk.
- Ensure baseline CI check workflow is present:
- initialize/refresh with
usethis::use_github_action("check-standard").
- Run a local package check with
devtools::check() and record outcome.
- Confirm no stale references to removed/renamed APIs in docs/tests.
- Confirm touched R files conform to
air formatting rules (ensure air is
installed before proceeding).
- Pre-commit AI gate:
- if code changed, AI-readable artifacts were checked and updated where
needed.
- Reproducibility gate:
- record exact validation commands and outcomes in commit/PR notes.
- (If using AI-doc artifacts) Run AI-doc consistency checks (script or
equivalent CI gate) and confirm pass.
- (If using pkgdown) Run
pkgdown::build_site() and confirm skills pages
render without article index or navbar errors.
Release/Merge
- Ensure branch policy and branch protections are respected.
- If solo-maintainer bypass is configured, confirm it is scoped to PR merges
only and does not allow direct pushes to
main.
- Ensure detailed commit message is used.
- Ensure PR description reflects behavior, docs, tests, and breaking changes.
- Generated-artifact gate:
- commit
NAMESPACE and man/*.Rd when regenerated,
- do not commit build artifacts (for example
_site/, check/temp outputs).