Skip to content

Document guess tspec#296

Merged
jonthegeek merged 8 commits into
mainfrom
fix-249-document-guess_tspec
Apr 22, 2026
Merged

Document guess tspec#296
jonthegeek merged 8 commits into
mainfrom
fix-249-document-guess_tspec

Conversation

@jonthegeek
Copy link
Copy Markdown
Collaborator

@jonthegeek jonthegeek commented Apr 17, 2026

Plan

Rename spec-guessing files to match function names:

  • spec_guess.R -> guess_tspec.R
  • spec_guess_object_list.R -> guess_tspec_object_list.R
  • spec_guess_df.R -> guess_tspec_df.R
  • spec_guess_object.R -> guess_tspec_object.R
  • guess_utils.R -> R/guess_tspec_utils.R

For the files that relate to spec guessing, do the following:

  • Dot-prefix internal functions defined in or called by functions defined in the file.
  • Ensure 100% test coverage.
  • Revise wording and details in documentation.
  • Refactor/reorganize file for understandability/readability/maintainability.
  • Briefly document unexported functions.

Test coverage

  • guess_tspec.R
  • guess_tspec_utils.R
  • guess_tspec_list.R
  • guess_tspec_object.R
  • guess_tspec_object_list.R
  • guess_tspec_df.R
  • should_inform_unspecified.R
  • shape_utils.R

Refactor for maintainability

Encompasses both "Dot-prefix internal functions defined in or called by functions defined in the file" and "Refactor/reorganize file for understandability/readability/maintainability", and likely "Briefly document unexported functions"

  • guess_tspec.R
  • guess_tspec_utils.R
  • guess_tspec_list.R
  • guess_tspec_object.R
  • guess_tspec_object_list.R
  • guess_tspec_df.R
  • should_inform_unspecified.R
  • shape_utils.R

Confirm user-facing documentation

For a lot of these, I just need to confirm that there AREN'T any user-facing functions in the file.

  • guess_tspec.R
  • guess_tspec_utils.R
  • guess_tspec_list.R
  • guess_tspec_object.R
  • guess_tspec_object_list.R
  • guess_tspec_df.R
  • should_inform_unspecified.R
  • shape_utils.R

Other changes

Removed setup.R and teardown.R from tests/testthat/ to ensure that tests run the same as individual files vs full test suite.

I also removed the unused R/aaa-conditions.R and the stbl dependency (for now, at least).

Issue connections

Rename spec-guessing files to match function names:

- `spec_guess.R` -> `guess_tspec.R`
- `spec_guess_object_list.R` -> `guess_tspec_object_list.R`
- `spec_guess_df.R` -> `guess_tspec_df.R`
- `spec_guess_object.R` -> `guess_tspec_object.R`
- `guess_utils.R` -> `R/guess_tspec_utils.R`

For the files that relate to spec guessing, do the following:

- [ ] Dot-prefix internal functions defined in or called by functions defined in the file.
- [ ] Ensure 100% test coverage.
- [ ] Revise wording and details in documentation.
- [ ] Refactor/reorganize file for understandability/readability/maintainability.
- [ ] Briefly document unexported functions (makes it easier to determine where they're from + helps future me).

I also removed the unused `R/aaa-conditions.R` and the stbl dependency (for now, at least).
Test coverage:

- [x] guess_tspec.R
- [x] guess_tspec_utils.R
- [x] guess_tspec_list.R
- [x] guess_tspec_object.R
- [x] guess_tspec_object_list.R
- [x] guess_tspec_df.R
- [x] should_inform_unspecified.R
- [x] shape_utils.R

Removed `setup.R` and `teardown.R` from `tests/testthat/` to ensure that tests run the same as individual files vs full test suite.

Create a draft PR once that's done to more easily follow changes (and so you see it and finish!)
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 17, 2026

🌐 PR pkgdown deployed

This report was generated by this GitHub Actions run.

Last updated: 2026-04-22 13:57:52 UTC

Session Info ─ Session info ───────────────────────────────────────────────────────────────

setting value

version R version 4.5.3 (2026-03-11)

os Ubuntu 24.04.4 LTS

system x86_64, linux-gnu

ui X11

language (EN)

collate en_US.UTF-8

ctype en_US.UTF-8

tz UTC

date 2026-04-22

pandoc 3.1.3 @ /usr/bin/pandoc

quarto NA

─ Packages ───────────────────────────────────────────────────────────────────

package * version date (UTC) lib source

askpass 1.2.1 2024-10-04 [1] RSPM

astgrepr 0.1.1 2025-06-07 [1] RSPM

backports 1.5.1 2026-04-03 [1] RSPM

base * 4.5.3 2026-03-28 [2] local

base64enc 0.1-6 2026-02-02 [1] RSPM

boot 1.3-32 2025-08-29 [2] CRAN (R 4.5.3)

brew 1.0-10 2023-12-16 [1] RSPM

brio 1.1.5 2024-04-24 [1] RSPM

bslib 0.10.0 2026-01-26 [1] RSPM

cachem 1.1.0 2024-05-16 [1] RSPM

callr 3.7.6 2024-03-25 [1] RSPM

checkmate 2.3.4 2026-02-03 [1] RSPM

class 7.3-23 2025-01-01 [2] CRAN (R 4.5.3)

cli 3.6.6 2026-04-09 [1] RSPM

clipr 0.8.0 2022-02-22 [1] RSPM

cluster 2.1.8.2 2026-02-05 [2] CRAN (R 4.5.3)

codetools 0.2-20 2024-03-31 [2] CRAN (R 4.5.3)

commonmark 2.0.0 2025-07-07 [1] RSPM

compiler 4.5.3 2026-03-28 [2] local

covr 3.6.5 2025-11-09 [1] RSPM

crayon 1.5.3 2024-06-20 [1] RSPM

credentials 2.0.3 2025-09-12 [1] RSPM

curl 7.0.0 2025-08-19 [1] RSPM

datasets * 4.5.3 2026-03-28 [2] local

desc 1.4.3 2023-12-10 [1] RSPM

devtools 2.5.1 2026-04-16 [1] RSPM

diffobj 0.3.6 2025-04-21 [1] RSPM

digest 0.6.39 2025-11-19 [1] RSPM

docopt 0.7.2 2025-03-25 [1] RSPM (R 4.5.3)

downlit 0.4.5 2025-11-14 [1] RSPM

dplyr 1.2.1 2026-04-03 [1] RSPM

ellipsis 0.3.3 2026-04-04 [1] RSPM

emoji 16.0.0 2024-10-28 [1] RSPM

evaluate 1.0.5 2025-08-27 [1] RSPM

fansi 1.0.7 2025-11-19 [1] RSPM

fastmap 1.2.0 2024-05-15 [1] RSPM

fontawesome 0.5.3 2024-11-16 [1] RSPM

foreign 0.8-91 2026-01-29 [2] CRAN (R 4.5.3)

fs 2.1.0 2026-04-18 [1] RSPM

generics 0.1.4 2025-05-09 [1] RSPM

gert 2.3.1 2026-01-11 [1] RSPM

gh 1.5.0 2025-05-26 [1] RSPM

git2r 0.36.2 2025-03-29 [1] RSPM

gitcreds 0.1.2 2022-09-08 [1] RSPM

glue 1.8.1 2026-04-17 [1] RSPM

graphics * 4.5.3 2026-03-28 [2] local

grDevices * 4.5.3 2026-03-28 [2] local

grid 4.5.3 2026-03-28 [2] local

highr 0.12 2026-03-06 [1] RSPM

htmltools 0.5.9 2025-12-04 [1] RSPM

htmlwidgets 1.6.4 2023-12-06 [1] RSPM

httpuv 1.6.17 2026-03-18 [1] RSPM

httr 1.4.8 2026-02-13 [1] RSPM

httr2 1.2.2 2025-12-08 [1] RSPM

hunspell 3.0.6 2025-03-22 [1] RSPM

ini 0.3.1 2018-05-20 [1] RSPM

jquerylib 0.1.4 2021-04-26 [1] RSPM

jsonlite 2.0.0 2025-03-27 [1] RSPM

KernSmooth 2.23-26 2025-01-01 [2] CRAN (R 4.5.3)

knitr 1.51 2025-12-20 [1] RSPM

later 1.4.8 2026-03-05 [1] RSPM

lattice 0.22-9 2026-02-09 [2] CRAN (R 4.5.3)

lifecycle 1.0.5 2026-01-08 [1] RSPM

littler 0.3.22 2026-02-04 [1] RSPM (R 4.5.3)

magick 2.9.1 2026-02-28 [1] RSPM

magrittr 2.0.5 2026-04-04 [1] RSPM

MASS 7.3-65 2025-02-28 [2] CRAN (R 4.5.3)

Matrix 1.7-4 2025-08-28 [2] CRAN (R 4.5.3)

memoise 2.0.1 2021-11-26 [1] RSPM

methods * 4.5.3 2026-03-28 [2] local

mgcv 1.9-4 2025-11-07 [2] CRAN (R 4.5.3)

mime 0.13 2025-03-17 [1] RSPM

miniUI 0.1.2 2025-04-17 [1] RSPM

nlme 3.1-168 2025-03-31 [2] CRAN (R 4.5.3)

nnet 7.3-20 2025-01-01 [2] CRAN (R 4.5.3)

openssl 2.4.0 2026-04-15 [1] RSPM

otel 0.2.0 2025-08-29 [1] RSPM

pak 0.9.4 2026-04-17 [1] RSPM (R 4.5.0)

parallel 4.5.3 2026-03-28 [2] local

pillar 1.11.1 2025-09-17 [1] RSPM

pkgbuild 1.4.8 2025-05-26 [1] RSPM

pkgconfig 2.0.3 2019-09-22 [1] RSPM

pkgdown 2.2.0 2025-11-06 [1] RSPM

pkgload 1.5.1 2026-04-01 [1] RSPM

praise 1.0.0 2015-08-11 [1] RSPM

prettyunits 1.2.0 2023-09-24 [1] RSPM

processx 3.8.7 2026-04-01 [1] RSPM

profvis 0.4.0 2024-09-20 [1] RSPM

promises 1.5.0 2025-11-01 [1] RSPM

ps 1.9.3 2026-04-20 [1] RSPM

purrr 1.2.2 2026-04-10 [1] RSPM

qcthat 1.1.2.9000 2026-04-22 [1] Github (Gilead-BioStats/qcthat@eec991d)

quarto 1.5.1 2025-09-04 [1] RSPM

R6 2.6.1 2025-02-15 [1] RSPM

ragg 1.5.2 2026-03-23 [1] RSPM

rappdirs 0.3.4 2026-01-17 [1] RSPM

rcmdcheck 1.4.0 2021-09-27 [1] RSPM

Rcpp 1.1.1-1 2026-04-16 [1] RSPM

rex 1.2.2 2026-03-28 [1] RSPM

rlang 1.2.0.9000 2026-04-22 [1] Github (r-lib/rlang@3799dea)

rmarkdown 2.31 2026-03-26 [1] RSPM

roxygen2 7.3.3 2025-09-03 [1] RSPM

rpart 4.1.24 2025-01-07 [2] CRAN (R 4.5.3)

rprojroot 2.1.1 2025-08-26 [1] RSPM

rrapply 1.2.8 2025-11-25 [1] RSPM

rstudioapi 0.18.0 2026-01-16 [1] RSPM

rversions 3.0.0 2025-10-09 [1] RSPM

sass 0.4.10 2025-04-11 [1] RSPM

sessioninfo 1.2.3 2025-02-05 [1] RSPM

shiny 1.13.0 2026-02-20 [1] RSPM

sourcetools 0.1.7-2 2026-03-28 [1] RSPM

spatial 7.3-18 2025-01-01 [2] CRAN (R 4.5.3)

spelling 2.3.2 2025-08-18 [1] RSPM

splines 4.5.3 2026-03-28 [2] local

stats * 4.5.3 2026-03-28 [2] local

stats4 4.5.3 2026-03-28 [2] local

stbl 0.3.0 2026-04-04 [1] RSPM

stringi 1.8.7 2025-03-27 [1] RSPM

stringr 1.6.0 2025-11-04 [1] RSPM

survival 3.8-6 2026-01-16 [2] CRAN (R 4.5.3)

sys 3.4.3 2024-10-04 [1] RSPM

systemfonts 1.3.2 2026-03-05 [1] RSPM

tcltk 4.5.3 2026-03-28 [2] local

testthat 3.3.2 2026-01-11 [1] RSPM

textshaping 1.0.5 2026-03-06 [1] RSPM

tibble 3.3.1 2026-01-11 [1] RSPM

tibblify 0.3.1.9002 2026-04-22 [1] local

tidyr 1.3.2 2025-12-19 [1] RSPM

tidyselect 1.2.1 2024-03-11 [1] RSPM

tinytex 0.59 2026-03-28 [1] RSPM

tools 4.5.3 2026-03-28 [2] local

urlchecker 1.0.1 2021-11-30 [1] RSPM

usethis 3.2.1 2025-09-06 [1] RSPM

utf8 1.2.6 2025-06-08 [1] RSPM

utils * 4.5.3 2026-03-28 [2] local

vctrs 0.7.3 2026-04-11 [1] RSPM

waldo 0.6.2 2025-07-11 [1] RSPM

whisker 0.4.1 2022-12-05 [1] RSPM

withr 3.0.2 2024-10-28 [1] RSPM

xfun 0.57 2026-03-20 [1] RSPM

xml2 1.5.2 2026-01-17 [1] RSPM

xopen 1.0.1 2024-04-25 [1] RSPM

xtable 1.8-8 2026-02-22 [1] RSPM

yaml 2.3.12 2025-12-10 [1] RSPM

zip 2.3.3 2025-05-13 [1] RSPM

[1] /usr/local/lib/R/site-library

[2] /usr/local/lib/R/library

[3] /__w/_temp/Library

  • ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 17, 2026

{qcthat} Report: User Acceptance

No issues are awaiting UAT.

This report was generated by this GitHub Actions run.

Last updated: 2026-04-22 13:57:41 UTC

Session Info ─ Session info ───────────────────────────────────────────────────────────────

setting value

version R version 4.5.3 (2026-03-11)

os Ubuntu 24.04.4 LTS

system x86_64, linux-gnu

ui X11

language (EN)

collate en_US.UTF-8

ctype en_US.UTF-8

tz UTC

date 2026-04-22

pandoc 3.1.3 @ /usr/bin/pandoc

quarto NA

─ Packages ───────────────────────────────────────────────────────────────────

package * version date (UTC) lib source

askpass 1.2.1 2024-10-04 [1] RSPM

astgrepr 0.1.1 2025-06-07 [1] RSPM

backports 1.5.1 2026-04-03 [1] RSPM

base * 4.5.3 2026-03-28 [2] local

base64enc 0.1-6 2026-02-02 [1] RSPM

boot 1.3-32 2025-08-29 [2] CRAN (R 4.5.3)

brew 1.0-10 2023-12-16 [1] RSPM

brio 1.1.5 2024-04-24 [1] RSPM

bslib 0.10.0 2026-01-26 [1] RSPM

cachem 1.1.0 2024-05-16 [1] RSPM

callr 3.7.6 2024-03-25 [1] RSPM

checkmate 2.3.4 2026-02-03 [1] RSPM

class 7.3-23 2025-01-01 [2] CRAN (R 4.5.3)

cli 3.6.6 2026-04-09 [1] RSPM

clipr 0.8.0 2022-02-22 [1] RSPM

cluster 2.1.8.2 2026-02-05 [2] CRAN (R 4.5.3)

codetools 0.2-20 2024-03-31 [2] CRAN (R 4.5.3)

commonmark 2.0.0 2025-07-07 [1] RSPM

compiler 4.5.3 2026-03-28 [2] local

covr 3.6.5 2025-11-09 [1] RSPM

crayon 1.5.3 2024-06-20 [1] RSPM

credentials 2.0.3 2025-09-12 [1] RSPM

curl 7.0.0 2025-08-19 [1] RSPM

datasets * 4.5.3 2026-03-28 [2] local

desc 1.4.3 2023-12-10 [1] RSPM

devtools 2.5.1 2026-04-16 [1] RSPM

diffobj 0.3.6 2025-04-21 [1] RSPM

digest 0.6.39 2025-11-19 [1] RSPM

docopt 0.7.2 2025-03-25 [1] RSPM (R 4.5.3)

downlit 0.4.5 2025-11-14 [1] RSPM

dplyr 1.2.1 2026-04-03 [1] RSPM

ellipsis 0.3.3 2026-04-04 [1] RSPM

emoji 16.0.0 2024-10-28 [1] RSPM

evaluate 1.0.5 2025-08-27 [1] RSPM

fansi 1.0.7 2025-11-19 [1] RSPM

fastmap 1.2.0 2024-05-15 [1] RSPM

fontawesome 0.5.3 2024-11-16 [1] RSPM

foreign 0.8-91 2026-01-29 [2] CRAN (R 4.5.3)

fs 2.1.0 2026-04-18 [1] RSPM

generics 0.1.4 2025-05-09 [1] RSPM

gert 2.3.1 2026-01-11 [1] RSPM

gh 1.5.0 2025-05-26 [1] RSPM

git2r 0.36.2 2025-03-29 [1] RSPM

gitcreds 0.1.2 2022-09-08 [1] RSPM

glue 1.8.1 2026-04-17 [1] RSPM

graphics * 4.5.3 2026-03-28 [2] local

grDevices * 4.5.3 2026-03-28 [2] local

grid 4.5.3 2026-03-28 [2] local

highr 0.12 2026-03-06 [1] RSPM

htmltools 0.5.9 2025-12-04 [1] RSPM

htmlwidgets 1.6.4 2023-12-06 [1] RSPM

httpuv 1.6.17 2026-03-18 [1] RSPM

httr 1.4.8 2026-02-13 [1] RSPM

httr2 1.2.2 2025-12-08 [1] RSPM

hunspell 3.0.6 2025-03-22 [1] RSPM

ini 0.3.1 2018-05-20 [1] RSPM

jquerylib 0.1.4 2021-04-26 [1] RSPM

jsonlite 2.0.0 2025-03-27 [1] RSPM

KernSmooth 2.23-26 2025-01-01 [2] CRAN (R 4.5.3)

knitr 1.51 2025-12-20 [1] RSPM

later 1.4.8 2026-03-05 [1] RSPM

lattice 0.22-9 2026-02-09 [2] CRAN (R 4.5.3)

lifecycle 1.0.5 2026-01-08 [1] RSPM

littler 0.3.22 2026-02-04 [1] RSPM (R 4.5.3)

magick 2.9.1 2026-02-28 [1] RSPM

magrittr 2.0.5 2026-04-04 [1] RSPM

MASS 7.3-65 2025-02-28 [2] CRAN (R 4.5.3)

Matrix 1.7-4 2025-08-28 [2] CRAN (R 4.5.3)

memoise 2.0.1 2021-11-26 [1] RSPM

methods * 4.5.3 2026-03-28 [2] local

mgcv 1.9-4 2025-11-07 [2] CRAN (R 4.5.3)

mime 0.13 2025-03-17 [1] RSPM

miniUI 0.1.2 2025-04-17 [1] RSPM

nlme 3.1-168 2025-03-31 [2] CRAN (R 4.5.3)

nnet 7.3-20 2025-01-01 [2] CRAN (R 4.5.3)

openssl 2.4.0 2026-04-15 [1] RSPM

otel 0.2.0 2025-08-29 [1] RSPM

pak 0.9.4 2026-04-17 [1] RSPM (R 4.5.0)

parallel 4.5.3 2026-03-28 [2] local

pillar 1.11.1 2025-09-17 [1] RSPM

pkgbuild 1.4.8 2025-05-26 [1] RSPM

pkgconfig 2.0.3 2019-09-22 [1] RSPM

pkgdown 2.2.0 2025-11-06 [1] RSPM

pkgload 1.5.1 2026-04-01 [1] RSPM

praise 1.0.0 2015-08-11 [1] RSPM

prettyunits 1.2.0 2023-09-24 [1] RSPM

processx 3.8.7 2026-04-01 [1] RSPM

profvis 0.4.0 2024-09-20 [1] RSPM

promises 1.5.0 2025-11-01 [1] RSPM

ps 1.9.3 2026-04-20 [1] RSPM

purrr 1.2.2 2026-04-10 [1] RSPM

qcthat 1.1.2 2026-04-22 [1] Github (Gilead-BioStats/qcthat@d0958dc)

R6 2.6.1 2025-02-15 [1] RSPM

ragg 1.5.2 2026-03-23 [1] RSPM

rappdirs 0.3.4 2026-01-17 [1] RSPM

rcmdcheck 1.4.0 2021-09-27 [1] RSPM

Rcpp 1.1.1-1 2026-04-16 [1] RSPM

rex 1.2.2 2026-03-28 [1] RSPM

rlang 1.2.0.9000 2026-04-22 [1] Github (r-lib/rlang@3799dea)

rmarkdown 2.31 2026-03-26 [1] RSPM

roxygen2 7.3.3 2025-09-03 [1] RSPM

rpart 4.1.24 2025-01-07 [2] CRAN (R 4.5.3)

rprojroot 2.1.1 2025-08-26 [1] RSPM

rrapply 1.2.8 2025-11-25 [1] RSPM

rstudioapi 0.18.0 2026-01-16 [1] RSPM

rversions 3.0.0 2025-10-09 [1] RSPM

sass 0.4.10 2025-04-11 [1] RSPM

sessioninfo 1.2.3 2025-02-05 [1] RSPM

shiny 1.13.0 2026-02-20 [1] RSPM

sourcetools 0.1.7-2 2026-03-28 [1] RSPM

spatial 7.3-18 2025-01-01 [2] CRAN (R 4.5.3)

spelling 2.3.2 2025-08-18 [1] RSPM

splines 4.5.3 2026-03-28 [2] local

stats * 4.5.3 2026-03-28 [2] local

stats4 4.5.3 2026-03-28 [2] local

stbl 0.3.0 2026-04-04 [1] RSPM

stringi 1.8.7 2025-03-27 [1] RSPM

stringr 1.6.0 2025-11-04 [1] RSPM

survival 3.8-6 2026-01-16 [2] CRAN (R 4.5.3)

sys 3.4.3 2024-10-04 [1] RSPM

systemfonts 1.3.2 2026-03-05 [1] RSPM

tcltk 4.5.3 2026-03-28 [2] local

testthat 3.3.2 2026-01-11 [1] RSPM

textshaping 1.0.5 2026-03-06 [1] RSPM

tibble 3.3.1 2026-01-11 [1] RSPM

tibblify 0.3.1.9002 2026-04-22 [1] local

tidyr 1.3.2 2025-12-19 [1] RSPM

tidyselect 1.2.1 2024-03-11 [1] RSPM

tinytex 0.59 2026-03-28 [1] RSPM

tools 4.5.3 2026-03-28 [2] local

urlchecker 1.0.1 2021-11-30 [1] RSPM

usethis 3.2.1 2025-09-06 [1] RSPM

utf8 1.2.6 2025-06-08 [1] RSPM

utils * 4.5.3 2026-03-28 [2] local

vctrs 0.7.3 2026-04-11 [1] RSPM

waldo 0.6.2 2025-07-11 [1] RSPM

whisker 0.4.1 2022-12-05 [1] RSPM

withr 3.0.2 2024-10-28 [1] RSPM

xfun 0.57 2026-03-20 [1] RSPM

xml2 1.5.2 2026-01-17 [1] RSPM

xopen 1.0.1 2024-04-25 [1] RSPM

xtable 1.8-8 2026-02-22 [1] RSPM

yaml 2.3.12 2025-12-10 [1] RSPM

zip 2.3.3 2025-05-13 [1] RSPM

[1] /usr/local/lib/R/site-library

[2] /usr/local/lib/R/library

[3] /__w/_temp/Library

  • ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 17, 2026

{qcthat} Reports

PR-Associated Issues

█ A qcthat issue test matrix with 0 milestones, 0 issues, and 0 tests
# Issue state: 📥 = open, ☑️ = closed (completed), ⛔ = closed (won't fix)
# Test disposition: ✅ = passed, ❌ = failed, 🚫 = skipped
🙈 1 issue with label "qcthat-nocov" was ignored

Completed Issues

✅ A qcthat issue test matrix with 5 milestones, 83 issues, and 55 tests
├─█─Milestone: 0.1 (5 issues, 0 tests)
│ ├─☑️─Issue 57: Add tags for versions
│ │ └─(no tests)
│ ├─☑️─Issue 14: Which license to use?
│ │ └─(no tests)
│ ├─☑️─Issue 7: Tests for custom `lcol_vec()` specification
│ │ └─(no tests)
│ ├─☑️─Issue 6: Formatting improvements
│ │ └─(no tests)
│ └─☑️─Issue 5: Improve readme/vignette
│   └─(no tests)
├─█─Milestone: 0.2 (55 issues, 45 tests)
│ ├─☑️─Issue 146: Release tibblify 0.2.0
│ │ └─(no tests)
│ ├─☑️─Issue 94: `spec_guess()` should recognize scalar lists and set `input_form` accordingly
│ │ ├─✅─can guess vector input form (#94)
│ │ ├─✅─guess_tspec_object can guess tib_vector for a scalar list (#94)
│ │ ├─✅─guess_tspec_object can guess tib_vector for input form = object (#94)
│ │ └─✅─guess_tspec_object can guess tib_row with a scalar list (#94)
│ ├─☑️─Issue 84: Spec for non-vector elements
│ │ ├─✅─can handle non-vector elements (#76, #84)
│ │ ├─✅─guess_tspec_object can handle non-vector elements (#76, #84)
│ │ └─✅─guess_tspec_object can handle non-vector elements in list (#76, #84)
│ ├─☑️─Issue 83: Add argument so that empty lists are treated as unspecified
│ │ ├─✅─respect empty_list_unspecified for scalar elements (#83, #95)
│ │ ├─✅─guess_tspec_object respects empty_list_unspecified for list of object elements (#83)
│ │ └─✅─guess_tspec_object can guess tib_unspecified for an object (#83)
│ ├─☑️─Issue 82: `tibblify()` does not work correctly for `list(x = tibble(...))`
│ │ └─(no tests)
│ ├─☑️─Issue 81: Incorrectly guessed spec for `list(x = tibble(...))`
│ │ └─✅─guess_tspec_object can guess df element (#81)
│ ├─☑️─Issue 80: Test `spec_guess_df()` with 0 row tibbles
│ │ └─✅─can guess 0 row tibbles (#79, #80)
│ ├─☑️─Issue 79: Add fast path for `list_of` in guessing API
│ │ └─✅─can guess 0 row tibbles (#79, #80)
│ ├─☑️─Issue 78: How to handle empty elements in guessing API?
│ │ └─(no tests)
│ ├─☑️─Issue 77: Handle POSIXlt consistently in guessing API
│ │ └─(no tests)
│ ├─☑️─Issue 76: `spec_guess_object()` does not work for non-vector elements
│ │ ├─✅─can handle non-vector elements (#76, #84)
│ │ ├─✅─guess_tspec_object can handle non-vector elements (#76, #84)
│ │ └─✅─guess_tspec_object can handle non-vector elements in list (#76, #84)
│ ├─☑️─Issue 119: Overview parseable structures
│ │ └─(no tests)
│ ├─☑️─Issue 70: `guess_spec()` does not calculate `.required` correctly for tibbles with list of tibble columns
│ │ └─(no tests)
│ ├─☑️─Issue 68: Turn a nested vector into a one-column tibble?
│ │ └─(no tests)
│ ├─☑️─Issue 66: tib_col()
│ │ └─(no tests)
│ ├─☑️─Issue 65: Combine two or more specs?
│ │ ├─✅─nice error when combining non-specs (#65)
│ │ ├─✅─nice error for unknown spec type (#65)
│ │ ├─✅─cannot combine different types of spec (#65)
│ │ ├─✅─can combine simple spec with itself (#65)
│ │ ├─✅─can combine if fields are in different order (#65)
│ │ ├─✅─can combine empty spec (#65)
│ │ ├─✅─can combine required (#65)
│ │ ├─✅─nice error for unknown tib type (#65)
│ │ ├─✅─can combine type (#65)
│ │ ├─✅─can combine ptype (#65)
│ │ ├─✅─can't combine different defaults (#65)
│ │ └─✅─can't combine different transforms (#65)
│ ├─☑️─Issue 56: tib_bind(): Can't guess_spec() for gh_repos
│ │ └─(no tests)
│ ├─☑️─Issue 49: Inverse to tibblify()?
│ │ ├─✅─can untibblify a scalar column (#49)
│ │ ├─✅─can untibblify a vector column (#49)
│ │ ├─✅─can untibblify a list column (#49)
│ │ ├─✅─can untibblify a tibble column (#49)
│ │ ├─✅─can untibblify a list of tibble column (#49)
│ │ ├─✅─can rename according to tspec_df (#49)
│ │ ├─✅─can untibblify object (#49)
│ │ ├─✅─can rename according to spec (#49)
│ │ └─✅─checks input (#49)
│ ├─☑️─Issue 48: Support intermediate type and vectorised transform?
│ │ └─(no tests)
│ ├─☑️─Issue 47: Support `date` and `datetime` better
│ │ └─✅─format for tib_chr_date works (#47)
│ ├─☑️─Issue 45: Document JSON parser compatibility switches
│ │ └─(no tests)
│ ├─☑️─Issue 44: Should "homogeneous" JSON objects get a better support?
│ │ └─(no tests)
│ ├─☑️─Issue 103: Error if names are `NULL` for `input_form = "object"`
│ │ └─(no tests)
│ ├─☑️─Issue 43: Cannot `tibblify()` a tibble with list columns
│ │ └─✅─tibble with list columns tibblify (#43)
│ ├─☑️─Issue 41: Should `tib_vector()` replace empty elements by `NULL`
│ │ └─(no tests)
│ ├─☑️─Issue 38: How to handle fields whose specification cannot be guessed?
│ │ ├─✅─informing about unspecified looks good (#38)
│ │ └─✅─.spec_inform_unspecified is silent when nothing unspecified (#38)
│ ├─☑️─Issue 37: Improve error messages for `stop_required()` and `stop_scalar()`
│ │ └─(no tests)
│ ├─☑️─Issue 36: Add path to error message in `vec_cast()`
│ │ └─(no tests)
│ ├─☑️─Issue 35: Should the default for `tib_vector()` be `NULL` or ``vec_init(ptype, 0)`?
│ │ └─(no tests)
│ ├─☑️─Issue 34: Check names of object
│ │ └─(no tests)
│ ├─☑️─Issue 33: Support `.default` in `tib_df()` and `tib_row()`?
│ │ └─(no tests)
│ ├─☑️─Issue 29: Explicitly vs implicitly missing elements
│ │ └─(no tests)
│ ├─☑️─Issue 25: Support parsing plain row
│ │ └─(no tests)
│ ├─☑️─Issue 102: Should `tib_vector(names_to)` also support `input_form = "vector"`?
│ │ └─(no tests)
│ ├─☑️─Issue 24: Segmentation faults due to invalid tibbles
│ │ └─(no tests)
│ ├─☑️─Issue 22: Fix workflows to use Ubuntu 18.04 or 20.04
│ │ └─(no tests)
│ ├─☑️─Issue 19: Incomplete get_spec() for packed tibbles
│ │ └─(no tests)
│ ├─☑️─Issue 18: quicker specification for guessing columns
│ │ └─(no tests)
│ ├─☑️─Issue 17: add parameter `names_to` to `tibblify()`
│ │ └─(no tests)
│ ├─☑️─Issue 16: simplify code
│ │ └─(no tests)
│ ├─☑️─Issue 15: better way to specify `.default` in `lcols()`?
│ │ └─(no tests)
│ ├─☑️─Issue 12: check vctrs::list_flatten
│ │ └─(no tests)
│ ├─☑️─Issue 11: reminder: `pluck()` converts empty elements to `NULL`
│ │ └─(no tests)
│ ├─☑️─Issue 10: easier way to use same specification for multiple paths
│ │ └─(no tests)
│ ├─☑️─Issue 100: Protection issues
│ │ └─(no tests)
│ ├─☑️─Issue 9: skip multiple paths at once?
│ │ └─(no tests)
│ ├─☑️─Issue 8: Speed up?
│ │ └─(no tests)
│ ├─☑️─Issue 4: Better error messages in `check_default()`
│ │ └─(no tests)
│ ├─☑️─Issue 3: Improve error message for missing or absent element in `extract_index()`
│ │ └─(no tests)
│ ├─☑️─Issue 2: Format spec: only print names if provided explicitly?
│ │ └─(no tests)
│ ├─☑️─Issue 1: Ask for permission to use got_chars dataset
│ │ └─(no tests)
│ ├─☑️─Issue 99: Revisit naming scheme
│ │ └─(no tests)
│ ├─☑️─Issue 98: Auto-naming in specs
│ │ └─✅─can force to print canonical names (#98)
│ ├─☑️─Issue 96: Losing data with complex spec
│ │ └─✅─tibblify does not confuse key order due to case (#96)
│ └─☑️─Issue 95: Add `allow_empty_list` argument to `spec_*()`
│   ├─✅─prints arguments of spec_* (#95)
│   ├─✅─respect empty_list_unspecified for vector columns (#95)
│   ├─✅─respect empty_list_unspecified in tibble columns (#95)
│   ├─✅─respect empty_list_unspecified for list of tibble columns (#95)
│   ├─✅─respect empty_list_unspecified for object elements (#95)
│   ├─✅─respect empty_list_unspecified for scalar elements (#83, #95)
│   └─✅─respect empty_list_unspecified for vector elements (#95)
├─█─Milestone: 0.3 (5 issues, 2 tests)
│ ├─☑️─Issue 164: Release tibblify 0.3.0
│ │ └─(no tests)
│ ├─☑️─Issue 158: tibblify got archived on CRAN?
│ │ └─(no tests)
│ ├─☑️─Issue 155: Support recursive fields
│ │ ├─✅─format for tib_recursive works (#155)
│ │ └─✅─prints arguments of tspec_recursive (#155)
│ ├─☑️─Issue 153: Add `elt_transform` to `tib_variant()` and `tib_vector()`
│ │ └─(no tests)
│ └─☑️─Issue 149: Might want to remove these two slider references 😬 
│   └─(no tests)
├─█─Milestone: 0.3.1 (3 issues, 6 tests)
│ ├─☑️─Issue 171: Error in `guess_tspec()` with implicitly missing values
│ │ └─(no tests)
│ ├─☑️─Issue 166: Add helper to clean names
│ │ └─✅─names are cleaned (#165, #166)
│ └─☑️─Issue 165: Add `unpack_tspec()`
│   ├─✅─can unpack spec (#165)
│   ├─✅─can use names_sep (#165)
│   ├─✅─can recursively unpack (#165)
│   ├─✅─only unpack field in `fields` (#165)
│   ├─✅─names are repaired (#165)
│   └─✅─names are cleaned (#165, #166)
└─█─Milestone: 0.4 (15 issues, 2 tests)
  ├─☑️─Task 269: Document R/tibblify.R
  │ └─(no tests)
  ├─☑️─Issue 203: Non-API calls
  │ └─(no tests)
  ├─☑️─Issue 200: OpenAPI Specs: ~1 in refs
  │ └─(no tests)
  ├─☑️─Issue 190: Fully parse Open API spec
  │ └─(no tests)
  ├─☑️─Issue 188: Upkeep for tibblify (2023)
  │ └─(no tests)
  ├─☑️─Issue 186: parse_openapi_spec vs Asana
  │ └─(no tests)
  ├─☑️─Issue 170: Create spec from Open API swagger file
  │ └─(no tests)
  ├─☑️─Task 264: Document (etc) tibblify helpers
  │ └─(no tests)
  ├─☑️─Documentation 259: Document spec manipulation functions
  │ └─(no tests)
  ├─☑️─Documentation 246: Document spec construction (the contract)
  │ └─(no tests)
  ├─☑️─Documentation 245: Update over-arching help docs
  │ └─(no tests)
  ├─☑️─Feature 235: Use `spec` attribute in `untibblify()` 
  │ └─✅─uses tib_spec attribute when no spec provided (#235)
  ├─☑️─Feature 228: Standardize `.` arguments
  │ └─(no tests)
  ├─☑️─Task 222: Use vctrs more properly
  │ └─(no tests)
  └─☑️─Issue 204: Segmentation fault with tibblifying empty data frame
    └─✅─can tibblify empty objects (#204)
# Issue state: 📥 = open, ☑️ = closed (completed), ⛔ = closed (won't fix)
# Test disposition: ✅ = passed, ❌ = failed, 🚫 = skipped
✅ All tests passed

⭕ 63 issues lack tests

🙈 13 issues with label "qcthat-nocov" were ignored


This report was generated by this GitHub Actions run.

Last updated: 2026-04-22 13:57:43 UTC

Session Info ─ Session info ───────────────────────────────────────────────────────────────

setting value

version R version 4.5.3 (2026-03-11)

os Ubuntu 24.04.4 LTS

system x86_64, linux-gnu

ui X11

language (EN)

collate en_US.UTF-8

ctype en_US.UTF-8

tz UTC

date 2026-04-22

pandoc 3.1.3 @ /usr/bin/pandoc

quarto NA

─ Packages ───────────────────────────────────────────────────────────────────

package * version date (UTC) lib source

askpass 1.2.1 2024-10-04 [1] RSPM

astgrepr 0.1.1 2025-06-07 [1] RSPM

backports 1.5.1 2026-04-03 [1] RSPM

base * 4.5.3 2026-03-28 [2] local

base64enc 0.1-6 2026-02-02 [1] RSPM

boot 1.3-32 2025-08-29 [2] CRAN (R 4.5.3)

brew 1.0-10 2023-12-16 [1] RSPM

brio 1.1.5 2024-04-24 [1] RSPM

bslib 0.10.0 2026-01-26 [1] RSPM

cachem 1.1.0 2024-05-16 [1] RSPM

callr 3.7.6 2024-03-25 [1] RSPM

checkmate 2.3.4 2026-02-03 [1] RSPM

class 7.3-23 2025-01-01 [2] CRAN (R 4.5.3)

cli 3.6.6 2026-04-09 [1] RSPM

clipr 0.8.0 2022-02-22 [1] RSPM

cluster 2.1.8.2 2026-02-05 [2] CRAN (R 4.5.3)

codetools 0.2-20 2024-03-31 [2] CRAN (R 4.5.3)

commonmark 2.0.0 2025-07-07 [1] RSPM

compiler 4.5.3 2026-03-28 [2] local

covr 3.6.5 2025-11-09 [1] RSPM

crayon 1.5.3 2024-06-20 [1] RSPM

credentials 2.0.3 2025-09-12 [1] RSPM

curl 7.0.0 2025-08-19 [1] RSPM

datasets * 4.5.3 2026-03-28 [2] local

desc 1.4.3 2023-12-10 [1] RSPM

devtools 2.5.1 2026-04-16 [1] RSPM

diffobj 0.3.6 2025-04-21 [1] RSPM

digest 0.6.39 2025-11-19 [1] RSPM

docopt 0.7.2 2025-03-25 [1] RSPM (R 4.5.3)

downlit 0.4.5 2025-11-14 [1] RSPM

dplyr 1.2.1 2026-04-03 [1] RSPM

ellipsis 0.3.3 2026-04-04 [1] RSPM

emoji 16.0.0 2024-10-28 [1] RSPM

evaluate 1.0.5 2025-08-27 [1] RSPM

fansi 1.0.7 2025-11-19 [1] RSPM

fastmap 1.2.0 2024-05-15 [1] RSPM

fontawesome 0.5.3 2024-11-16 [1] RSPM

foreign 0.8-91 2026-01-29 [2] CRAN (R 4.5.3)

fs 2.1.0 2026-04-18 [1] RSPM

generics 0.1.4 2025-05-09 [1] RSPM

gert 2.3.1 2026-01-11 [1] RSPM

gh 1.5.0 2025-05-26 [1] RSPM

git2r 0.36.2 2025-03-29 [1] RSPM

gitcreds 0.1.2 2022-09-08 [1] RSPM

glue 1.8.1 2026-04-17 [1] RSPM

graphics * 4.5.3 2026-03-28 [2] local

grDevices * 4.5.3 2026-03-28 [2] local

grid 4.5.3 2026-03-28 [2] local

highr 0.12 2026-03-06 [1] RSPM

htmltools 0.5.9 2025-12-04 [1] RSPM

htmlwidgets 1.6.4 2023-12-06 [1] RSPM

httpuv 1.6.17 2026-03-18 [1] RSPM

httr 1.4.8 2026-02-13 [1] RSPM

httr2 1.2.2 2025-12-08 [1] RSPM

hunspell 3.0.6 2025-03-22 [1] RSPM

ini 0.3.1 2018-05-20 [1] RSPM

jquerylib 0.1.4 2021-04-26 [1] RSPM

jsonlite 2.0.0 2025-03-27 [1] RSPM

KernSmooth 2.23-26 2025-01-01 [2] CRAN (R 4.5.3)

knitr 1.51 2025-12-20 [1] RSPM

later 1.4.8 2026-03-05 [1] RSPM

lattice 0.22-9 2026-02-09 [2] CRAN (R 4.5.3)

lifecycle 1.0.5 2026-01-08 [1] RSPM

littler 0.3.22 2026-02-04 [1] RSPM (R 4.5.3)

magick 2.9.1 2026-02-28 [1] RSPM

magrittr 2.0.5 2026-04-04 [1] RSPM

MASS 7.3-65 2025-02-28 [2] CRAN (R 4.5.3)

Matrix 1.7-4 2025-08-28 [2] CRAN (R 4.5.3)

memoise 2.0.1 2021-11-26 [1] RSPM

methods * 4.5.3 2026-03-28 [2] local

mgcv 1.9-4 2025-11-07 [2] CRAN (R 4.5.3)

mime 0.13 2025-03-17 [1] RSPM

miniUI 0.1.2 2025-04-17 [1] RSPM

nlme 3.1-168 2025-03-31 [2] CRAN (R 4.5.3)

nnet 7.3-20 2025-01-01 [2] CRAN (R 4.5.3)

openssl 2.4.0 2026-04-15 [1] RSPM

otel 0.2.0 2025-08-29 [1] RSPM

pak 0.9.4 2026-04-17 [1] RSPM (R 4.5.0)

parallel 4.5.3 2026-03-28 [2] local

pillar 1.11.1 2025-09-17 [1] RSPM

pkgbuild 1.4.8 2025-05-26 [1] RSPM

pkgconfig 2.0.3 2019-09-22 [1] RSPM

pkgdown 2.2.0 2025-11-06 [1] RSPM

pkgload 1.5.1 2026-04-01 [1] RSPM

praise 1.0.0 2015-08-11 [1] RSPM

prettyunits 1.2.0 2023-09-24 [1] RSPM

processx 3.8.7 2026-04-01 [1] RSPM

profvis 0.4.0 2024-09-20 [1] RSPM

promises 1.5.0 2025-11-01 [1] RSPM

ps 1.9.3 2026-04-20 [1] RSPM

purrr 1.2.2 2026-04-10 [1] RSPM

qcthat 1.1.2 2026-04-22 [1] Github (Gilead-BioStats/qcthat@d0958dc)

R6 2.6.1 2025-02-15 [1] RSPM

ragg 1.5.2 2026-03-23 [1] RSPM

rappdirs 0.3.4 2026-01-17 [1] RSPM

rcmdcheck 1.4.0 2021-09-27 [1] RSPM

Rcpp 1.1.1-1 2026-04-16 [1] RSPM

rex 1.2.2 2026-03-28 [1] RSPM

rlang 1.2.0.9000 2026-04-22 [1] Github (r-lib/rlang@3799dea)

rmarkdown 2.31 2026-03-26 [1] RSPM

roxygen2 7.3.3 2025-09-03 [1] RSPM

rpart 4.1.24 2025-01-07 [2] CRAN (R 4.5.3)

rprojroot 2.1.1 2025-08-26 [1] RSPM

rrapply 1.2.8 2025-11-25 [1] RSPM

rstudioapi 0.18.0 2026-01-16 [1] RSPM

rversions 3.0.0 2025-10-09 [1] RSPM

sass 0.4.10 2025-04-11 [1] RSPM

sessioninfo 1.2.3 2025-02-05 [1] RSPM

shiny 1.13.0 2026-02-20 [1] RSPM

sourcetools 0.1.7-2 2026-03-28 [1] RSPM

spatial 7.3-18 2025-01-01 [2] CRAN (R 4.5.3)

spelling 2.3.2 2025-08-18 [1] RSPM

splines 4.5.3 2026-03-28 [2] local

stats * 4.5.3 2026-03-28 [2] local

stats4 4.5.3 2026-03-28 [2] local

stbl 0.3.0 2026-04-04 [1] RSPM

stringi 1.8.7 2025-03-27 [1] RSPM

stringr 1.6.0 2025-11-04 [1] RSPM

survival 3.8-6 2026-01-16 [2] CRAN (R 4.5.3)

sys 3.4.3 2024-10-04 [1] RSPM

systemfonts 1.3.2 2026-03-05 [1] RSPM

tcltk 4.5.3 2026-03-28 [2] local

testthat 3.3.2 2026-01-11 [1] RSPM

textshaping 1.0.5 2026-03-06 [1] RSPM

tibble 3.3.1 2026-01-11 [1] RSPM

tibblify 0.3.1.9002 2026-04-22 [1] local

tidyr 1.3.2 2025-12-19 [1] RSPM

tidyselect 1.2.1 2024-03-11 [1] RSPM

tinytex 0.59 2026-03-28 [1] RSPM

tools 4.5.3 2026-03-28 [2] local

urlchecker 1.0.1 2021-11-30 [1] RSPM

usethis 3.2.1 2025-09-06 [1] RSPM

utf8 1.2.6 2025-06-08 [1] RSPM

utils * 4.5.3 2026-03-28 [2] local

vctrs 0.7.3 2026-04-11 [1] RSPM

waldo 0.6.2 2025-07-11 [1] RSPM

whisker 0.4.1 2022-12-05 [1] RSPM

withr 3.0.2 2024-10-28 [1] RSPM

xfun 0.57 2026-03-20 [1] RSPM

xml2 1.5.2 2026-01-17 [1] RSPM

xopen 1.0.1 2024-04-25 [1] RSPM

xtable 1.8-8 2026-02-22 [1] RSPM

yaml 2.3.12 2025-12-10 [1] RSPM

zip 2.3.3 2025-05-13 [1] RSPM

[1] /usr/local/lib/R/site-library

[2] /usr/local/lib/R/library

[3] /__w/_temp/Library

  • ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────

Dot-prefix

- [x] guess_tspec.R
- [x] guess_tspec_utils.R
- [x] guess_tspec_list.R
- [x] guess_tspec_object.R
- [x] guess_tspec_object_list.R
- [x] guess_tspec_df.R
- [x] should_inform_unspecified.R
- [x] shape_utils.R
- [x] spec_inform_unspecified.R

Additional refactoring

- [x] should_inform_unspecified.R
- [x] guess_tspec.R
- [x] guess_tspec_df.R
- [x] guess_tspec_list.R
- [x] guess_tspec_object.R
- [x] guess_tspec_object_utils.R (new split, also 100% tests)
- [x] guess_tspec_object_list.R
- [x] guess_tspec_utils.R
- [x] shape_utils.R
- [x] spec_inform_unspecified.R

Document

- [x] should_inform_unspecified.R
- [x] guess_tspec.R
- [x] guess_tspec_df.R
- [x] guess_tspec_list.R
- [x] guess_tspec_object.R
- [x] guess_tspec_object_utils.R
- [x] guess_tspec_object_list.R
- [x] guess_tspec_utils.R
- [x] shape_utils.R
- [x] spec_inform_unspecified.R

I also made tweaks to the document AI skill as I went.
@jonthegeek jonthegeek marked this pull request as ready for review April 22, 2026 13:27
@jonthegeek jonthegeek requested a review from Copilot April 22, 2026 13:28
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors and documents the guess_tspec() family (spec guessing / “automated contract”) by splitting the previous spec_guess* implementation into clearer guess_tspec_* modules, adding extensive internal helper documentation, and reorganizing tests to improve coverage and consistency.

Changes:

  • Renamed/restructured spec-guessing implementation into guess_tspec.R, guess_tspec_df.R, guess_tspec_list.R, guess_tspec_object.R, guess_tspec_object_list.R, plus shared utility modules.
  • Added/updated roxygen + generated Rd docs for many internal helpers and updated the public guess_tspec documentation topics.
  • Reworked and expanded the test suite (including snapshots), and removed tests/testthat/setup.R/teardown.R to avoid suite-vs-file execution differences.

Reviewed changes

Copilot reviewed 112 out of 113 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
.github/workflows/copilot-setup-steps.yml Updates Copilot setup dependencies (package install list).
.github/skills/document/SKILL.md Updates documentation skill guidelines for roxygen/shared params.
DESCRIPTION Moves stbl to Suggests; bumps rlang minimum version.
NAMESPACE Exports guess_tspec_list() and guess_tspec_object_list(); adjusts imports.
NEWS.md Adds release notes about refactor and new exported guessers.
R/aaa-conditions.R Removes package-scoped abort wrapper (.pkg_abort).
R/aaa-shared_params.R Expands shared parameter documentation (incl. arg, local_env, etc.).
R/guess_tspec.R New top-level guess_tspec() dispatcher + updated docs.
R/guess_tspec_df.R New df/object-list guessing implementation + internal helpers.
R/guess_tspec_list.R New list-shape dispatcher for guessing.
R/guess_tspec_object.R New object guessing implementation + internal helpers.
R/guess_tspec_object_list.R New object-list guessing implementation.
R/guess_tspec_object_utils.R New shared helpers for object/object-list guessing.
R/guess_tspec_utils.R New shared helpers for ptype detection, empty-list tracking, etc.
R/guess_utils.R Removes previous guess utilities (replaced by guess_tspec_utils.R).
R/parse_open_api.R Uses rlang::is_installed() for memoise detection.
R/shape_utils.R Renames internal shape helpers with dot-prefix; improves abort formatting/classes.
R/should_inform_unspecified.R New simplified exported should_inform_unspecified() implementation.
R/spec_guess.R Removes old monolithic spec guessing implementation.
R/spec_guess_df.R Removes old df guessing implementation (replaced by guess_tspec_df.R).
R/spec_guess_object.R Removes old object guessing implementation (replaced by guess_tspec_object.R).
R/spec_guess_object_list.R Removes old object-list guessing implementation (replaced by guess_tspec_object_list.R).
R/spec_inform_unspecified.R Adds .maybe_inform_unspecified() helper.
R/tib_spec_basics.R Qualifies check_dots_empty() calls via rlang::check_dots_empty().
R/tib_spec_class.R Qualifies check_dots_empty() calls via rlang::check_dots_empty().
R/tib_spec_other.R Qualifies check_dots_empty() calls via rlang::check_dots_empty().
R/tibblify-package.R Adjusts import comments/import list (rlang import note).
R/untibblify.R Uses vctrs::obj_is_list() for list detection.
R/utils.R Renames check_list() to .check_list() and updates list detection.
R/zzz.R Qualifies ns_env() call via rlang::ns_env().
man/dot-abort_not_tibblifiable.Rd Generated docs for .abort_not_tibblifiable().
man/dot-cast_posixlt_ptype.Rd Generated docs for .cast_posixlt_ptype().
man/dot-check_named.Rd Generated docs for .check_named().
man/dot-check_names_not_duplicated.Rd Generated docs for .check_names_not_duplicated().
man/dot-check_not_df.Rd Generated docs for .check_not_df().
man/dot-check_object_names.Rd Generated docs for .check_object_names().
man/dot-col_guess_required.Rd Generated docs for .col_guess_required().
man/dot-col_to_spec.Rd Generated docs for .col_to_spec().
man/dot-col_to_spec_df.Rd Generated docs for .col_to_spec_df().
man/dot-drop_empty_lists.Rd Generated docs for .drop_empty_lists().
man/dot-df_col_to_spec.Rd Generated docs for .df_col_to_spec().
man/dot-df_guess_required.Rd Generated docs for .df_guess_required().
man/dot-get_ptype_common.Rd Generated docs for .get_ptype_common().
man/dot-get_required.Rd Generated docs for .get_required().
man/dot-guess_object_field_spec.Rd Generated docs for .guess_object_field_spec().
man/dot-guess_object_field_spec_df.Rd Generated docs for .guess_object_field_spec_df().
man/dot-guess_object_field_spec_expand_fields.Rd Generated docs for .guess_object_field_spec_expand_fields().
man/dot-guess_object_field_spec_expand_fields_df.Rd Generated docs for .guess_object_field_spec_expand_fields_df().
man/dot-guess_object_field_spec_object.Rd Generated docs for .guess_object_field_spec_object().
man/dot-guess_object_field_spec_object_list.Rd Generated docs for .guess_object_field_spec_object_list().
man/dot-guess_object_field_spec_vector.Rd Generated docs for .guess_object_field_spec_vector().
man/dot-guess_object_list_field_spec.Rd Generated docs for .guess_object_list_field_spec().
man/dot-guess_object_list_field_spec_dont_simplify.Rd Generated docs for .guess_object_list_field_spec_dont_simplify().
man/dot-guess_object_list_field_spec_flat_to_vector.Rd Generated docs for .guess_object_list_field_spec_flat_to_vector().
man/dot-guess_object_list_field_spec_object_list_row.Rd Generated docs for .guess_object_list_field_spec_object_list_row().
man/dot-guess_object_list_field_spec_vector.Rd Generated docs for .guess_object_list_field_spec_vector().
man/dot-guess_object_list_spec.Rd Generated docs for .guess_object_list_spec().
man/dot-guess_vector_input_form.Rd Generated docs for .guess_vector_input_form().
man/dot-guess_vector_input_form_field_scalar.Rd Generated docs for .guess_vector_input_form_field_scalar().
man/dot-guess_vector_input_form_null.Rd Generated docs for .guess_vector_input_form_null().
man/dot-imap_col_to_spec.Rd Generated docs for .imap_col_to_spec().
man/dot-imap_guess_object_field_spec.Rd Generated docs for .imap_guess_object_field_spec().
man/dot-is_field_scalar.Rd Generated docs for .is_field_scalar().
man/dot-is_list_of_null.Rd Generated docs for .is_list_of_null().
man/dot-is_list_of_object_lists.Rd Generated docs for .is_list_of_object_lists().
man/dot-is_object.Rd Generated docs for .is_object().
man/dot-is_object_list.Rd Generated docs for .is_object_list().
man/dot-is_unspecified.Rd Generated docs for .is_unspecified().
man/dot-is_vec.Rd Generated docs for .is_vec().
man/dot-lgl_to_bullet.Rd Generated docs for .lgl_to_bullet().
man/dot-list_col_to_spec.Rd Generated docs for .list_col_to_spec().
man/dot-list_is_list_of_null.Rd Generated docs for .list_is_list_of_null().
man/dot-list_of_col_to_spec_df.Rd Generated docs for .list_of_col_to_spec_df().
man/dot-mark_empty_list_argument.Rd Generated docs for .mark_empty_list_argument().
man/dot-maybe_inform_unspecified.Rd Generated docs for .maybe_inform_unspecified().
man/dot-non_list_of_col_to_spec_df.Rd Generated docs for .non_list_of_col_to_spec_df().
man/dot-read_empty_list_argument.Rd Generated docs for .read_empty_list_argument().
man/dot-shared-params.Rd Generated docs for .shared-params updates.
man/dot-tib_ptype.Rd Generated docs for .tib_ptype().
man/dot-tib_scalar_or_vector_spec.Rd Generated docs for .tib_scalar_or_vector_spec().
man/dot-tib_type_of.Rd Generated docs for .tib_type_of().
man/dot-tib_vector_input_form.Rd Generated docs for .tib_vector_input_form().
man/dot-update_required_fields.Rd Generated docs for .update_required_fields().
man/dot-vector_col_to_spec.Rd Generated docs for .vector_col_to_spec().
man/dot-pkg_abort.Rd Removes docs for deleted .pkg_abort().
man/guess_tspec.Rd Updates main guessing docs and adds aliases for new exports.
man/should_inform_unspecified.Rd Updates docs to match new should_inform_unspecified() logic.
src/.gitignore Ignores gcov coverage artifacts.
tests/testthat/_snaps/guess_tspec.md New snapshots for guess_tspec() dispatcher errors.
tests/testthat/_snaps/guess_tspec_df.md New snapshots for df guesser errors/messages.
tests/testthat/_snaps/guess_tspec_list.md New snapshots for list guesser errors.
tests/testthat/_snaps/guess_tspec_object.md Updates snapshots for object guesser output/messages.
tests/testthat/_snaps/guess_tspec_object_list.md New snapshots for object-list guessing output.
tests/testthat/_snaps/shape_utils.md New snapshots for .abort_not_tibblifiable() errors.
tests/testthat/_snaps/spec_guess_object.md Removes old snapshots for deleted spec_guess_* code.
tests/testthat/_snaps/tibblify.md Updates snapshots to use rlang::set_names() in examples.
tests/testthat/helper-guess.R Updates helper to call .guess_object_list_field_spec() and pass local_env.
tests/testthat/setup.R Removes global option setup for tests.
tests/testthat/teardown.R Removes global option teardown for tests.
tests/testthat/test-guess_tspec.R New tests for guess_tspec() dispatch.
tests/testthat/test-guess_tspec_df.R Updates df guessing tests (helper renames + new cases).
tests/testthat/test-guess_tspec_list.R New tests for list dispatch behavior and errors.
tests/testthat/test-guess_tspec_object.R Expands object guessing tests and adds snapshots for messages.
tests/testthat/test-guess_tspec_object_list.R New tests for object-list guessing behavior and snapshots.
tests/testthat/test-guess_tspec_object_utils.R New targeted tests for object-list utilities/branches.
tests/testthat/test-guess_tspec_utils.R New tests for shared guessing utilities.
tests/testthat/test-shape_utils.R Updates tests for dot-prefixed shape utils + new error snapshot coverage.
tests/testthat/test-should_inform_unspecified.R New tests for option-based informing behavior.
tests/testthat/test-spec_guess.R Removes old spec guessing tests (replaced by new suite).
tests/testthat/test-spec_guess_object_list.R Removes old object-list guessing tests (moved to new files).
tests/testthat/test-spec_inform_unspecified.R Refactors tests and adds coverage for .maybe_inform_unspecified().
tests/testthat/test-tibblify.R Qualifies set_names() usage with rlang::set_names().
tests/testthat/test-utils.R Updates tests for renamed .check_list().

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread R/guess_tspec.R Outdated
Comment thread R/guess_tspec_list.R
Comment thread R/guess_tspec_object_list.R Outdated
Comment thread R/guess_tspec_df.R
Comment thread NEWS.md Outdated
Comment thread tests/testthat/test-guess_tspec_list.R Outdated
Comment thread R/guess_tspec.R Outdated
Comment thread R/guess_tspec.R
@jonthegeek jonthegeek enabled auto-merge (squash) April 22, 2026 13:58
@jonthegeek jonthegeek merged commit dc3cd83 into main Apr 22, 2026
11 checks passed
@jonthegeek jonthegeek deleted the fix-249-document-guess_tspec branch April 22, 2026 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document spec guessing (the automated contract)

2 participants