test: literature-grounded FIPC regression/robustness suite - #189
test: literature-grounded FIPC regression/robustness suite#189seonghobae wants to merge 6 commits into
Conversation
Add four testthat (edition 3) test files that pin FIPC/IRT calibration behavior against the psychometric literature, plus an in-repo APA-7 reference list. No algorithm changes: R/aFIPC.R and R/surveyFA.R are untouched; this is additive test/fixture and documentation work only. - test-kim2006-fixed-anchor-invariant.R: fixed-item-parameter linking invariant (Kim, 2006) — anchors keep old-form values and stay fixed while non-anchors are estimated onto the base scale. - test-se-hessian-vcov-preservation.R: SE=TRUE observed-information / vcov positive-definiteness and extract.mirt(fit,"secondordertest") are preserved across the old, new, and linked models (Bock & Aitkin, 1981; Cai, 2010). - test-concurrent-missing-robustness.R: planned-missing / non-overlapping booklet designs calibrate under ignorable missingness with anchors fixed (Mislevy & Wu, 1996; Bock & Aitkin, 1981). - test-degenerate-response-robustness.R: zero-score, perfect-score, and skewed items yield finite parameters, MAP abilities, and expected scores rather than crashing. - docs/references.md: verified APA-7 citations and per-test grounding (Zotero local API unreachable from the sandbox; the version-controlled list is the achievable substitute). All new fixtures use fixed seeds, skip_on_cran()/skip_if_not_installed(), and mirror the invocation pattern of test-fixed-parameter-calibration.R. Verification: R 4.3.3 is available and all four files pass parse() syntax checks and use only valid autoFIPC() formals; the suite could NOT be executed locally because the sandbox egress policy blocks every CRAN mirror (403 CONNECT), so mirt cannot be installed here. CI installs mirt and runs the suite. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AzUnTqFnQqhRbaopvDdag7
|
Warning Review limit reached
Next review available in: 95 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
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. Comment |
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head8b122e01bcdb1f990fac84b39e543e459545bdf4. -
Head SHA:
8b122e01bcdb1f990fac84b39e543e459545bdf4 -
Workflow run: 30497395945
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 1
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Docs: references.md"]
S1 --> I1["operator or user guidance"]
I1 --> R1["Review risk: Docs: references.md"]
R1 --> V1["docs review"]
Evidence --> S2["Test (4 files)"]
S2 --> I2["regression suite"]
I2 --> R2["Review risk: Test (4 files)"]
R2 --> V2["targeted test run"]
OpenCode Review Overview
Pull request overviewOpenCode cannot approve yet because required coverage evidence did not pass. Review outcome1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
Coverage evidenceCoverage Decision
Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Docs: REFERENCES.md"]
S1 --> I1["operator or user guidance"]
I1 --> R1["Review risk: Docs: REFERENCES.md"]
R1 --> V1["docs review"]
Evidence --> S2["Test (4 files)"]
S2 --> I2["regression suite"]
I2 --> R2["Review risk: Test (4 files)"]
R2 --> V2["targeted test run"]
|
CI diagnosis:
|
The check job aborted during setup-r-dependencies, before any aFIPC test ran:
stringfish.so: undefined symbol:
_ZN3tbb8internal25concurrent_vector_base_v316internal_grow_byEmmPFvPvPKvmES4_
ERROR: lazy loading failed for package 'SimDesign'
Root cause (log-confirmed): the runner is Ubuntu 24.04 (noble) and Posit P3M
has no precompiled binary for the mirt -> SimDesign -> qs -> stringfish chain on
noble for R 4.6.1, so pak source-builds stringfish, whose .so then fails to load
against noble's oneTBB runtime (an old tbb::internal ABI symbol was removed in
oneTBB). This is a toolchain/binary-availability issue, not a package defect, and
it prevents R CMD check from ever running the test suite.
Pinning runs-on to ubuntu-22.04 (jammy) makes use-public-rspm resolve
__linux__/jammy/latest, where P3M ships the precompiled binaries, so the source
compile — and the ABI mismatch — is avoided. Revisit once P3M publishes noble
binaries for these packages.
Verified locally: yamllint (.yamllint.yml) passes on the edited workflow.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AzUnTqFnQqhRbaopvDdag7
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current headd53a877164151c81b42272072ae294336849769a. -
Head SHA:
d53a877164151c81b42272072ae294336849769a -
Workflow run: 30505299347
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 1
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow: r.yml"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow: r.yml"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Docs: references.md"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs: references.md"]
R2 --> V2["docs review"]
Evidence --> S3["Test (4 files)"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test (4 files)"]
R3 --> V3["targeted test run"]
The
|
All required checks pass on this head (R CMD `check` and `quality` green, plus opencode-review/strix/noema and every security gate), and the four literature- grounded testthat files run in CI now that the TBB/P3M install path is fixed. The only blocker is a stale REQUEST_CHANGES: the central `coverage-evidence` job intermittently reported `failure` in one run while succeeding in a sibling run on this same head, so the reviewer could not prove test evidence. This no-op commit re-triggers a fresh coverage-evidence + review cycle so approval can be established from a passing run; no test or source content changes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AzUnTqFnQqhRbaopvDdag7
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head9e59aaae13bee172dd51deb65d3cc0ea9fbbb36c. -
Head SHA:
9e59aaae13bee172dd51deb65d3cc0ea9fbbb36c -
Workflow run: 30833287603
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 1
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow: r.yml"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow: r.yml"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Docs: references.md"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs: references.md"]
R2 --> V2["docs review"]
Evidence --> S3["Test (4 files)"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test (4 files)"]
R3 --> V3["targeted test run"]
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current headfb15cf47fa9bd1c6887a1fec070bf6046317e243. -
Head SHA:
fb15cf47fa9bd1c6887a1fec070bf6046317e243 -
Workflow run: 31839905805
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 1
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Docs: REFERENCES.md"]
S1 --> I1["operator or user guidance"]
I1 --> R1["Review risk: Docs: REFERENCES.md"]
R1 --> V1["docs review"]
Evidence --> S2["Test (4 files)"]
S2 --> I2["regression suite"]
I2 --> R2["Review risk: Test (4 files)"]
R2 --> V2["targeted test run"]
Scope
Add literature-grounded psychometric regression tests and APA 7th references without changing production arithmetic.
Test evidence
a1/dvalues and remain fixed while unique new-form parameters remain estimable.SE = TRUEinformation evidence: old, new, and linked models retain finite symmetric covariance matrices and a passing second-order test.The prior exact head completed R CMD check successfully with these test bodies. The current head only removes the unrelated Ubuntu pin and moves the bibliography into
docs/doctoring/REFERENCES.md, so #212 remains the single ABI-repair path and APA 7th evidence follows the repository doctoring convention.Merge contract
Merge only after the new exact head passes R CMD check, repository quality/security checks, central coverage evidence, all review threads, and independent approval. No production-code behavior change is claimed.