Skip to content

feat(psychometric): recover Driver p.16 T0VARstd after positive T0VAR - #205

Draft
seonghobae wants to merge 2 commits into
agent/psychometric-standardised-initial-tdpred-stdfrom
agent/psychometric-standardised-initial-latent-variance
Draft

feat(psychometric): recover Driver p.16 T0VARstd after positive T0VAR#205
seonghobae wants to merge 2 commits into
agent/psychometric-standardised-initial-tdpred-stdfrom
agent/psychometric-standardised-initial-latent-variance

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Stacked on #204 (b8b266d) / #202 (a7ce1a0) / #200 (8f42947) / #199 (7a476ed) / #198 (52a9b4c) / #196 (1cb91b4) / #194 (471b115) / #192 (1690c7b) / #190 (adb0bc6) / #189 (0836c35) / #188 (444304d) / #187 (6afd048) / #185 (69ffec6) / #184 (6b93147) / #183 (c10097be) / #182 (2d4d6bf) / #181 (542806b) / #49 (6f95142). ADR 0005 executable slice stays inside psychometric_core. This is not a second invariance crate and does not recreate #78 or #80.

psychometric_core recovers the Driver, Oud, and Voelkle (2017, Table 2, p. 12 T0VAR; p. 16 T0VARstd; footnote 4; 2017-era ctsem summary.ctsemFit.R; JSS PDF re-opened 2026-08-23T22:06Z from https://www.jstatsoft.org/index.php/jss/article/download/v077i05/1104) scalar standardised first-occasion latent variance. Table 2 names T0VAR the latent process initial variance/covariance. Page 16 prints standardised matrices with the suffix std when appropriate. The 2017-era summary.ctsemFit.R forms T0VARstd as solve(sqrt(diag(T0VAR))) %&% T0VAR when verbose = TRUE. OpenMx %&% is the quadratic form t(A) %*% B %*% A. The default ridging = FALSE adds 0, not 0.0001; that ridge is a numerical hack and is not this exact map. The scalar correlation is p_0 / p_0 = 1 after strictly positive free T0VAR. Form strictly positive p_0 first, then 1 / √p_0, then (1 / √p_0) p_0 (1 / √p_0).

  • Unstandardised T0VAR is defined for a zero first-occasion variance; standardised T0VAR is not.
  • Zero p_0 has no positive SD and fails closed.
  • T0 is an event-time occasion, so a non-event clock fails closed. Free T0VAR does not require stable a < 0.
  • Distinct positive p_0 recover the same 1.
  • T0TDPREDEFFECTstd t0_m · √v / √p_0 depends on p_0 and is not this correlation.
  • addedT0TIPREDVAR t0_b² v is extra TI variance, not this correlation.
  • TRAITVAR is not the standardisation variance.

Still not a Kalman filter, not a matrix expm, not ESEM estimation, not DSEM, and not ctsem estimation. Meredith (1993) remains unread (Unpaywall 2026-08-24T06:36Z: is_oa: false; title Measurement Invariance, Factor Analysis and Factorial Invariance). Mislevy (1991, Psychometrika, 56, 177–196) remains unread (Unpaywall 2026-08-24T06:36Z: is_oa: false; title Randomization-Based Inference about Latent Variables from Complex Samples).

Do not merge, self-approve, or request Copilot.

Map free first-occasion T0VAR through 2017-era summary.ctsemFit.R as
solve(sqrt(diag(T0VAR))) %&% T0VAR after strictly positive p_0. OpenMx
%&% is t(A)%*%B%*%A; the default ridge is 0. The scalar correlation is
p_0/p_0 = 1. Refuse unstandardised T0VAR, T0TDPREDEFFECTstd, and
addedT0TIPREDVAR. Free T0VAR does not require a<0.
@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

seonghobae added a commit that referenced this pull request Aug 24, 2026
Eight new draft PRs opened in the Driver-recovery psychometric series
since the last snapshot. Protected-main SHA and non-draft count (70)
are unchanged -- no new mergeable work landed, this is a pure register
refresh.
seonghobae added a commit that referenced this pull request Aug 24, 2026
* docs: add live product technical gap baseline

* docs: refresh live delivery baseline

* docs: record psychometric draft state

* docs: refresh temporal and image delivery queue

* docs: record Unicode identity PR in gap baseline

* docs: refresh buyer gap baseline for psychometric PR

* docs: refresh baseline for branch coverage repair

* docs: refresh baseline with current PR heads

* docs: record validation claim promotion head

* docs: refresh live PR baseline

* docs: bind baseline to refresh head

* docs: refresh gap baseline current heads

* docs: refresh live pull request evidence

* docs: expand TEPP completion gaps and issue roadmap

* docs: add product and technical gap baseline

* docs: normalize buyer gap maturity

* docs: remove duplicate gap baseline index entry

* docs(gap): refresh live queue snapshot

* docs(gap): split executable product capabilities

* docs(gap): align queue snapshot timestamp

* docs(gap): normalize maturity and authority fields

* docs: refresh live pull request gap evidence

* docs: record hot partition readiness gap

* docs: refresh live product gap snapshot

* docs: route Strix gap evidence to canonical owner

* docs: link exact Strix failure records

* docs: bound Strix evidence to public records

* docs(gaps): refresh live PR snapshot

* docs(gaps): bind snapshot to refreshed head

* docs: refresh live buyer-gap baseline

* docs: refresh live PR head register

* docs: require dated exact-head gap baseline

Refresh the live 2026-08-23 GitHub inventory, add a structure validator
that rejects queued-Checks-as-shipped claims, and cover it with quality
tests. PR #164 remains the single gap-baseline authority.

* docs: drop closed duplicate #179 from live register

Refresh the exact-head inventory to 93 open PRs after closing the
duplicate gap-baseline snapshot. PR #164 remains the single authority.

* docs: bind gap heads to the live 95-PR register

Refresh the exact-head inventory to 2026-08-23T13:31:34Z and set each
buyer-gap current head SHA to that snapshot, including #164, #48, #50,
#63, and #157. Queued Checks remain not implemented-main.

* fix(docs): honor negated queued-Checks wording in the gap validator

The promotion guard treated any same-line 'queued Checks'...'implemented-main'
window as a shipped claim, so correct negation failed and a wrapped
affirmative claim could evade. Require an un-negated match, including
across a line break.

* docs: refresh 96-PR exact-head gap register

Bind the live 2026-08-23T13:57:34Z inventory, including #49 extra-lag
underflow coverage and hourly #180/#164 repairs. Buyer-gap current
heads match that snapshot. Queued Checks are not implemented-main.

* docs: replace Buyer language in the live gap register

TEPP is not a purchase catalog. The gap baseline, validator, and
CHANGELOG now name operator-visible gaps and operator-gap closure
evidence.

* docs: refresh 96-PR exact-head gap register after #49 90b08bb

Bind GAP current-head SHA prefixes to the 2026-08-23T14:08:41Z live
inventory, including #49 extra-process lag underflow and #164 8b78797.
Queued Checks remain not implemented-main.

* docs: refresh 98-PR exact-head operator-gap register

Snapshot 2026-08-23T14:52:16Z. GAP-015 records this register's prior
exact head 33bf824. TEPP remains an operator-gap register, not a
purchase catalog.

* docs: refresh 97-PR exact-head gap register after stacked #191

Drop closed stacked #191, bind GAP current-head SHAs to the
2026-08-23T15:07:33Z REST inventory, and keep queued Checks off
implemented-main.

* docs: refresh 97-PR exact-head gap register after #49 1e3e2eb

Bind GAP current-head SHAs to the 2026-08-23T15:57:48Z REST inventory,
including #49 exp/expm1 overflow rewrites. Queued Checks remain off
implemented-main.

* docs: refresh 99-PR exact-head gap register after stacked #193/#194

Bind GAP current-head SHAs to the 2026-08-23T16:52:27Z REST inventory.
#49 nightly 1701/1702 on 1e3e2eb is logged, not treated as
implemented-main. Queued Checks remain off protected-main.

* docs: refresh 101-PR exact-head gap register after #49 dd6cf43

Bind GAP current-head SHAs to the 2026-08-23T17:59:26Z REST inventory,
including unique-fold coverage on #49 and stacked drafts #195/#196.
Queued Checks remain off implemented-main.

* fix(docs): require promotion-denial wording for queued-Checks guard

An unrelated `not` in `queued Checks are not required; this PR is
implemented-main` was treated as negation. Only never/do not/does not/
cannot/must not plus promote/treat/make/mean licenses the span.

* docs: refresh 103-PR exact-head gap register after stacked #197/#198

Bind GAP current-head SHAs to the 2026-08-23T18:48:36Z REST inventory.
#49 unique-fold nightly is green on dd6cf43 and is not implemented-main.
Queued Checks remain off protected-main.

* docs: refresh 105-PR exact-head gap register after stacked #199/#200

Bind GAP current-head SHAs to the 2026-08-23T19:48:22Z REST inventory.
#49 unique-fold nightly remains green on dd6cf43 and is not
implemented-main. Queued Checks remain off protected-main.

* docs: refresh 106-PR exact-head gap register after #201 span units

Bind GAP-005 to #201 5344729 as a first span-unit slice only, not
concept alignment and not implemented-main. Queued Checks remain off
protected-main.

* docs: refresh 109-PR exact-head gap register after #201 6afd650

Bind GAP-005 to the RFC 5646-once citation head and include stacked
drafts #202#204. Queued Checks remain off implemented-main.

* fix(docs): deny queued-Checks promotion by governed negation

Replace the fixed-window denial regex with sentence-scoped negation
governance: a claim passes only when a negation cue directly governs a
promotion verb inside the same sentence and no adversative conjunction
separates that pair from the maturity assertion. Honest wordings whose
negation precedes the phrase are accepted, while unrelated negated
clauses joined by 'but' can no longer license an implemented-main claim.

* docs: refresh 117-PR exact-head gap register after #205-#212

Eight new draft PRs opened in the Driver-recovery psychometric series
since the last snapshot. Protected-main SHA and non-draft count (70)
are unchanged -- no new mergeable work landed, this is a pure register
refresh.

* docs: refresh live product gap evidence

* docs(changelog): align gap-baseline snapshot entry with committed register

The Changed entry still described the predecessor 2026-08-23T21:46:37Z
snapshot (109 open / 39 drafts) while the committed baseline document
records the refreshed 2026-08-24T05:41:54Z snapshot (118 open / 48
drafts). Align the changelog narrative with the register the validator
enforces so the exact-head evidence stays internally consistent.

---------

Co-authored-by: seonghobae <seonghobae@users.noreply.github.com>
Co-authored-by: opencode-agent <agent@contextualwisdomlab.dev>
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.

1 participant