The spec attribute is removed as soon as the tibble is subset in any way, including an empty subset, put a [] after your reading code if you are concerned about this.
x <- readr::read_csv("a,b,c\n1,2,3\n")
str(x)
#> tibble [1 × 3] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
#> $ a: num 1
#> $ b: num 2
#> $ c: num 3
#> - attr(*, "spec")=
#> .. cols(
#> .. a = col_double(),
#> .. b = col_double(),
#> .. c = col_double()
#> .. )
str(x[])
#> tibble [1 × 3] (S3: tbl_df/tbl/data.frame)
#> $ a: num 1
#> $ b: num 2
#> $ c: num 3
Created on 2020-04-10 by the reprex package (v0.3.0)