Milestone: v1.3.0 (attach once the milestone exists). Depends on #37. Conditional: only start if v1.1/v1.2 experience shows post-review drift in published packages (data updates silently breaking floor guarantees). Part of the v1.1 roadmap: docs/roadmap-v1.1.md.
Tasks
Acceptance criteria
A simulated data update (new rows, new category value) passes the template tests unchanged; a removed or renamed column fails them.
Milestone: v1.3.0 (attach once the milestone exists). Depends on #37. Conditional: only start if v1.1/v1.2 experience shows post-review drift in published packages (data updates silently breaking floor guarantees). Part of the v1.1 roadmap: docs/roadmap-v1.1.md.
Tasks
tests/testthat/test-data.Rasserting only stable contracts: data loads, non-empty, every column present indata-raw/dictionary.csvand vice versa. The tests read the dictionary at runtime, never interpolate literals.skip()): nodim()literals, no frozen date ceilings, no level-set equality.Acceptance criteria
A simulated data update (new rows, new category value) passes the template tests unchanged; a removed or renamed column fails them.