Skip to contents

rllmdoc 0.2.0

New features

  • Quarto book project support: chapters, parts, and appendices are mapped to llms.txt H2 groups automatically from book.chapters and book.appendices in _quarto.yml.
  • Companion generation from source: when Quarto does not produce .llms.md companions (e.g., book projects), build_llms_docs() generates them from source .qmd files using frontmatter and body content.

Improvements

  • quarto::quarto_inspect() is now the primary project resolution mechanism, replacing manual _quarto.yml parsing for input files and output directories.
  • Simplified detection cascade using rprojroot::find_root() directly; removed data.frame-based candidate sorting.
  • use_llm_docs() now uses yaml::read_yaml() for state checks and targeted line edits for writes, preserving YAML comments.
  • llms_document() inlines auto-configure and type dispatch; removed .auto_configure(), .llms_document_quarto(), .llms_document_rpkg() wrapper functions.
  • Adopted fs for all filesystem operations and stringr for all string operations throughout the package for cross-platform consistency.
  • pkgdown moved from Suggests to Imports.
  • Removed dead parameters: validate from .build_llms_docs(), out_path from .build_llms_txt(), content_dir/out_path from .build_llms_full_txt(), proj_root from config parsers.
  • Deleted legacy aliases detect_project() and use_llms_txt().

Internal

  • Test modernization: copy_fixture() uses fs::dir_copy() with per-test temp dirs; removed custom test helper functions; removed all rllmdoc::: calls from tests.
  • Reduced internal function count by ~10 through wrapper elimination.
  • skip_if_no_quarto() retained for tests requiring the Quarto CLI binary.

rllmdoc 0.1.0

Historical note

Breaking changes

  • Removed _llms.yml support and llms-group/llms-order frontmatter fields. Grouping is now derived from existing project config (_quarto.yml navbar for Quarto, _pkgdown.yml reference sections for R packages).
  • Removed inst/schemas/llms-config-schema.json.
  • Renamed legacy helpers:
  • Consolidated generation behind the final public build entrypoint build_llms_docs(). Mid-cycle names build_llms_txt() and build_llms_full_txt() were superseded before the final 0.1.0 surface.

New features

  • llms_document() is the main orchestration entrypoint: auto-detects project type, auto-configures Quarto llms-txt: true when needed, ensures native companion markdown exists, and generates spec-compliant llms.txt + llms-full.txt.
  • as_project() resolves project type, subtype, title, description, and llms readiness for Quarto and R package projects.
  • use_llm_docs() configures project readiness for documentation pipelines. For Quarto it enables llms-txt: true; for R packages no config mutation is currently required.
  • build_llms_docs() is the build entrypoint for already configured projects: it writes the final curated llms.txt and llms-full.txt, replaces native site llms.txt, and mirrors llms-only artifacts into root _llms/.

Architecture

  • rllmdoc uses native Quarto/pkgdown generation for supporting markdown (.llms.md and .md files), but does not treat native llms.txt output as canonical.
  • The final tracked llms.txt is generated by rllmdoc so it can enforce curated grouping, per-entry descriptions, and strict spec validation.
  • For both Quarto and R package sites, native llms.txt is treated as intermediate output and replaced with rllmdoc’s spec-valid version.
  • _llms/ is a first-class generated mirror that contains only llms-relevant artifacts for local-agent consumption.

Improvements

  • Strict validation: fails fast on missing title/description frontmatter, invalid project structure, or spec violations.
  • For R packages: auto-detects existing pkgdown site and only runs pkgdown::build_llm_docs() when site already exists.
  • Removed unused dependencies: fs, withr, lifecycle, rdstools, arthelpers.
  • Added dependencies: rprojroot (project root detection), quarto and pkgdown (Suggests).
  • 53 tests across 6 test files with isolated temp-dir fixtures.
  • Two vignettes: “rllmdoc” and “Spec Contracts and Failures”.

rllmdoc 0.0.1

New features

  • generate_llms_txt() discovers .qmd files with llms-group frontmatter and writes an ordered llms.txt index from _llms.yml.
  • generate_llms_full_txt() assembles llms-full.txt by combining metadata and rendered markdown body content.
  • parse_frontmatter() parses YAML frontmatter blocks from .qmd/.md files.
  • read_doc_body() returns content with frontmatter stripped for downstream generation.
  • validate_frontmatter() validates document metadata against a JSON schema.
  • validate_llms_config() validates _llms.yml against a JSON schema.
  • md_to_qmd() migrates markdown files to QMD by prepending frontmatter defaults.

Package assets

  • Added inst/schemas/frontmatter-schema.json for document metadata validation.
  • Added inst/schemas/llms-config-schema.json for _llms.yml validation.