Changes in version 0.1.0 (2026-07-02) - Initial release. - Adds [checktor()] as the top-level orchestrator, running five categories of diagnostics (code, DESCRIPTION, documentation, general, CRAN policy) against an R package directory. - Adds the [checkup()] boolean wrapper for CI use, [prescribe()] for treatment recommendations, and [health_report()] for Markdown / HTML / text reports. - All code-side diagnostics run XPath queries against the parsed AST via xmlparsedata + xml2. Documentation-side checks walk .Rd files via tools::parse_Rd(). DESCRIPTION is parsed with base::read.dcf(). - Added result accessors so you no longer navigate nested lists: issues() (per-issue table), tidy() (per-check table), summary() (per-category), plus passed(), is_healthy(), n_issues(), n_failed_checks(), and failed_checks(). as.data.frame() on a result is equivalent to tidy(). - Expanded the CRAN-submission diagnostics with additional heuristics: - General: flags a missing NEWS file (diagnose_news_file()) and README relative links whose target is missing or excluded by .Rbuildignore and so absent from the built tarball (diagnose_readme_relative_links()). diagnose_cran_comments_file() is also provided but, since a cran-comments.md is a workflow convention rather than a CRAN requirement, it is opt-in and not part of the default checktor() run. - DESCRIPTION: flags Title fields of 65 or more characters, single-quoted function names in Title/Description (quotes are for software names), and over-capitalized small words in the Title. - Documentation: flags exported functions whose .Rd lacks an \examples section (diagnose_missing_examples()) and examples that use a Suggested package without a requireNamespace() / @examplesIf guard (diagnose_suggested_in_examples()).