Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,18 @@ schema and every handoff are unchanged.
`item_evidence$scale` names. A test holds the sort, rating, and congruence
workflows to it, and checks that each refuses an item with two targets.

## The joint walkthrough lives here

* `vignette("one-item-set-both-stages")` is the joint walkthrough for
contentvalidR and nomologR, as the maintainer decided for the joint 1.0.
It now says so, passes the handoff itself to `nomo_screen()` and
`nomo_run()` rather than `h$items`, and links to the section of the
nomologR guided workflow that continues from content review. Two stale
sentences are corrected. The handoff reader in nomologR, which the vignette
called future work, has shipped. And nomologR starts from the same handoff
but simulates its own responses, so its screening numbers differ from
these.

# contentvalidR 0.9.0

Ninth public release. v0.9.0 is about how the package presents itself before
Expand Down
10 changes: 5 additions & 5 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -830,11 +830,11 @@ reads no handoffs and takes no part in the joint 1.0.
candidate, so neither README describes a 1.x before one exists.
- [ ] one handoff example shown in both READMEs, regenerated from
contentvalidR's release candidate.
- [ ] the joint walkthrough lives in one package, and the other links to
it. Recommended, and acceptable to nomologR: this package's
`vignette("one-item-set-both-stages")`, linking to nomologR's
guided-workflow article for the empirical side. The maintainer
decides.
- [x] the joint walkthrough lives in one package, and the other links to
it. Decided by the maintainer on 2026-09-27: it lives here, as
`vignette("one-item-set-both-stages")`, which links to nomologR's
guided-workflow article for the empirical stage. nomologR has agreed
to link its article back to it.
- [ ] the release notes link each other.
- Three handoff clarifications nomologR asked for before schema 1 becomes a
1.0 promise, approved on 2026-09-27. None changes the schema:
Expand Down
36 changes: 25 additions & 11 deletions vignettes/one-item-set-both-stages.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ Nothing here is a real instrument or a real sample. The advantage of simulated
data is that the right answer is known in advance, so you can check whether
each stage found what was actually put there.

This is the joint walkthrough for `contentvalidR` and its partner package
`nomologR`, which handles the empirical stage. The empirical steps below use
base R, so the whole vignette runs with `contentvalidR` alone. Where the
handoff leaves this package, the walkthrough shows the `nomologR` calls that
pick it up.

## The construct and the items

The construct is *Study Persistence*: the tendency to keep working on academic
Expand Down Expand Up @@ -281,20 +287,26 @@ about the item's wording predicts that, and no panel could have. Whether the
difference matters is a measurement-invariance question, which belongs to the
empirical stage.

The handoff is what carries the decision into that stage. Its `items` are the
item names to screen and its `scales` are the subscales to form, both in the
shape a downstream package needs. `nomologR` is one such package; it is not a
dependency of this one, so the call below is shown rather than run:
The handoff is what carries the decision into that stage. Pass the handoff
itself rather than `h$items`, so that the held-back items, their reasons, the
keying, and the response scale travel with the names. `nomologR`, the partner
package for the empirical stage, reads it that way. It is not a dependency of
this package, so the calls below are shown rather than run:

```{r nomologr, eval=FALSE}
library(nomologR)

nomo_screen(responses, items = h$items)
# Screen the carried items, using the keying declared at content review.
screened <- nomo_screen(responses, items = h)

# Form the subscales content review defined, and run the empirical stage.
run <- nomo_run(responses, scales = h)
```

Reading the handoff object directly, rather than taking `h$items` out of it, is
tracked on
[nomologR#46](https://github.com/JUhalt/nomologR/issues/46).
`nomologR`'s guided workflow continues from here, in its section
[Starting from content review](https://juhalt.github.io/nomologR/articles/guided-workflow.html#starting-from-content-review):
screening, the measurement model, and a report that opens with the content
review.

## The moral, stated plainly

Expand Down Expand Up @@ -322,9 +334,11 @@ carries the evidence forward rather than just the surviving names.
Every file used here is generated by `data-raw/build-walkthrough-data.R` in the
package sources, which uses only base R and is deterministic. It states the
full generating model: the two-factor structure, every loading, the factor
correlation, the response thresholds, and the single cohort shift. `nomologR`
mirrors the response file from the same script, so both packages show the same
numbers.
correlation, the response thresholds, and the single cohort shift.
`nomologR`'s guided workflow starts from the same handoff, which it ships as a
file, so the items, decisions, and keying match between the two packages. Its
responses are simulated separately, so its screening numbers are not the ones
shown here.

## References

Expand Down
Loading