Skip to contents

Overview

Start here. The package-level help topic summarises what checktor checks and how the pieces fit together.

checktor-package
checktor: Extra CRAN Submission Checks

Top-level orchestrator

Functions you call directly to diagnose a package.

checktor()
Diagnose Package for CRAN Submission Issues
checkup()
Quick Health Check
prescribe()
Treatment Recommendations
health_report()
Comprehensive Health Report
configure_doctor()
Configure Package Doctor Defaults

Code-pattern diagnostics

Per-check entry points for R source patterns. Each operates on the parsed AST and can be called independently of checktor().

diagnose_code_issues()
Diagnose Code Health Issues
diagnose_tf_usage()
Diagnose T/F Usage in R Code
diagnose_seed_setting()
Diagnose Hardcoded Seed Setting
diagnose_print_cat_usage()
Diagnose Print/Cat Usage in Functions
diagnose_detect_cores_robustness()
Diagnose Unguarded detectCores()
diagnose_option_changes()
Diagnose Unrestored Option Changes
diagnose_home_writing()
Diagnose Writes to the User's Home Directory
diagnose_temp_cleanup()
Diagnose Missing Temp-File Cleanup
diagnose_globalenv_modification()
Diagnose Writes to the Global Environment
diagnose_installed_packages_usage()
Diagnose installed.packages() Usage
diagnose_warn_option()
Diagnose Changes to options(warn=)
diagnose_software_installation()
Diagnose Package Installation From Package Code
diagnose_core_usage()
Diagnose Parallel Core Usage
diagnose_library_in_pkg_code()
Diagnose library() in Package Code
diagnose_sys_setenv_no_reset()
Diagnose Unrestored Environment Variables
diagnose_hardcoded_credentials()
Diagnose Hardcoded Credentials in Package Code

DESCRIPTION-field diagnostics

Checks against the DESCRIPTION file, parsed via base::read.dcf().

diagnose_description_issues()
Diagnose DESCRIPTION File Issues
diagnose_software_names_formatting()
Diagnose Unquoted Software Names in DESCRIPTION
diagnose_language_names()
Diagnose Programming-Language Names in DESCRIPTION
diagnose_acronym_explanation()
Diagnose Unexplained Acronyms in DESCRIPTION
diagnose_license_formatting()
Diagnose the License Field
diagnose_license_year()
Diagnose an Unfilled LICENSE Template
diagnose_title_case()
Diagnose Title Case in DESCRIPTION
diagnose_title_length()
Diagnose Title Length
diagnose_title_starts_with_article()
Diagnose Title Starting With an Article
diagnose_title_redundant_phrases()
Diagnose Redundant Phrases in Title
diagnose_description_function_quotes()
Diagnose Single-Quoted Function Names
diagnose_authors_field()
Diagnose the Authors@R Field
diagnose_identifier_format()
Diagnose Author Identifier Formatting
diagnose_cph_role()
Diagnose a Missing Copyright-Holder Role
diagnose_references_formatting()
Diagnose Reference Formatting in DESCRIPTION
diagnose_date_format()
Diagnose the DESCRIPTION Date Field
diagnose_encoding_utf8()
Diagnose a Non-Portable DESCRIPTION Encoding
diagnose_version_format()
Diagnose the DESCRIPTION Version Field
diagnose_spelling()
Diagnose Possibly Misspelled Words in DESCRIPTION
diagnose_description_length()
Diagnose Description Length
diagnose_description_starts_with()
Diagnose the Description Opening
diagnose_description_quoted_quotes()
Diagnose Double-Quoted Software Names

Documentation diagnostics

Checks against .Rd files, walked via tools::parse_Rd().

diagnose_documentation_issues()
Diagnose Documentation Issues
diagnose_value_tags()
Diagnose Missing Value Tags in Documentation
diagnose_missing_examples()
Diagnose Exported Functions Missing Examples
diagnose_roxygen_usage()
Diagnose Stale Generated Documentation
diagnose_example_structure()
Diagnose Example Structure
diagnose_unexported_example_namespace()
Diagnose Bare Calls to Unexported Functions in Examples
diagnose_commented_examples()
Diagnose Examples That Run Nothing
diagnose_donttest_vs_dontrun()
Diagnose dontrun Where donttest Belongs
diagnose_suggested_in_examples()
Diagnose Suggested Packages Used in Examples Without a Guard

General-purpose diagnostics

Package-level checks (size, URLs, NEWS, README links) that don’t fit other categories.

diagnose_general_issues()
Diagnose General Package Issues
diagnose_package_size()
Diagnose Package Size
diagnose_urls()
Diagnose URL Issues in Package Files
diagnose_url_liveness()
Diagnose Broken and Redirecting URLs (Opt-In, Network)
diagnose_news_file()
Diagnose a Missing NEWS File
diagnose_readme_relative_links()
Diagnose Relative Links in the README
diagnose_cran_comments_file()
Diagnose a Missing cran-comments.md File

CRAN policy diagnostics

Checks targeting common CRAN policy violations (debugging leftovers, raw shell calls, file/network access).

diagnose_policy_violations()
Check for Common CRAN Policy Violations
diagnose_browser_calls()
Diagnose Leftover browser() Calls
diagnose_system_calls()
Diagnose System Calls
diagnose_file_operations()
Diagnose Writes to the User's Filespace
diagnose_network_operations()
Diagnose Unguarded Network Access

Result classes

S3 constructors and print methods for diagnostic result objects. You typically don’t construct these by hand - use the diagnostic functions instead.

checktor_check_result()
Create a Standard Diagnostic Check Result Object
checktor_category_result()
Create a Multi-Category Diagnostic Result Object
print(<checktor_check_result>)
Print Method for checktor_check_result Objects
print(<checktor_category_result>)
Print Method for checktor_category_result Objects
print(<checktor_results>)
Print Method for checktor_results Objects

Result accessors

Plain accessors over diagnostic results so you never navigate nested sublists. Work on a full checktor() result, a single category, or a single check.

issues()
Extract issues, checks, or a per-category summary from checktor results
tidy(<checktor_results>) tidy(<checktor_category_result>) as.data.frame(<checktor_results>) as.data.frame(<checktor_category_result>)
Tidy a checktor result into a per-check data frame
summary(<checktor_category_result>) summary(<checktor_results>)
Per-category summary of checktor results
passed() is_healthy() n_issues() n_failed_checks() failed_checks()
Status predicates for checktor results
reexports tidy
Objects exported from other packages

Example scenarios

Helpers for building temporary packages with canned bad-pattern code, used in the @examples of individual diagnostics.

example_diagnose_scenario()
Create Example Diagnostic Scenario
show_example_files()
Show Available Example Files

Extending checktor

Register a custom check with checktor(), plus the AST toolkit the built-in checks use to inspect parsed sources and .Rd files.

register_check()
Register a Custom Check with checktor()
unregister_check()
Remove Registered Checks
registered_checks()
List Registered Checks
read_r_xml()
Parse a Package's R Sources into Queryable XML
xpath_lints()
Collect XPath Matches as file:line Strings
xpath_per_file()
Summarise XPath Matches per File
undesirable_function_check()
Flag Every Call to a Named Function
not_under_fn_with_call_xpath()
XPath Predicate: Not Guarded by a Sibling Call
extract_rd_section()
Extract One Section from a Parsed .Rd File
collect_rd_text()
Flatten a Parsed .Rd Node to Text