Skip to content

feat(measurement): add dichotomous instrument policy contract - #902

Draft
seonghobae wants to merge 23 commits into
fix/contextual-orchestrator-owner-boundaryfrom
feat/dichotomous-measurement-policy
Draft

feat(measurement): add dichotomous instrument policy contract#902
seonghobae wants to merge 23 commits into
fix/contextual-orchestrator-owner-boundaryfrom
feat/dichotomous-measurement-policy

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Scope

Adds the LineageWeave-owned dichotomous measurement-policy contract on top of #899. LineageWeave owns rubric/version/lifecycle/activation and observation-policy semantics only. Numerical IRT kernels remain in fast-mlsirm, temporal/event/multilevel measurement semantics remain in TEPP, and provider/judge execution remains in contextual-orchestrator.

The governed production family identifiers are exactly rasch, irt_2plm, irt_3plm, and irt_4plm; Rasch is not exposed as a generic 1PL alias. Missing/not-observable/abstain/invalid/adjudication-required states remain outside the 0/1 response channel. Published instruments require an explicit governed family plus activation-evidence reference; LineageWeave does not auto-select a family from domain labels or hand-authored mechanism flags.

TDD repairs

  • enum-boundary RED 97a39d365e673fe1c2833ccd076db6eb68d42c1d → GREEN cca6d838e8c377070bec1c71b7aaec8f2762424f;
  • string-field RED 636a8dfbe070a612a703e570a1a3342ac3fcea4b → GREEN b9ab660f3a5c371265401f4e3b6db1534a2d03f9;
  • numeric transport-type RED 49a82aa18be438311c0c1f3abc7eaf151f073b93 → GREEN ec2ab254b85a9ed4bef50c1de8214bbc56e201bc, with bde68937a4f8b30a5a2b9f57475737ef568d489d aligning invalid-integer versus boolean transport assertions;
  • canonical-text RED df0655750a9e66974d94ba8add6784f421977f2e → GREEN b6efdf9ee3ba2690c37e931e2c127cc8c221e491, rejecting surrounding whitespace in owned canonical identifiers/evidence references without normalizing opaque identity.

Adapters may parse external values, but unparsed or non-canonical transport values cannot silently become governed measurement policy.

Current stack / exact evidence

Parent #899 moved non-force to e5711282c48cc20d0a88fb56a9e382d500989c72 while adopting protected main@83eba56149eb802cd63642c507c324c9976ec78e Draft-admission workflow contracts. Review 5118120889 verified this PR's seven measurement-policy files are disjoint from those parent repairs. Two-parent convergence c316bfbde8644feda7e49579d43cc162e99b0bad preserves the measurement-policy tree, adopts the exact protected workflow/contract blobs, and joins the moved parent without force rewrite.

  • exact parent/base: #899@e5711282c48cc20d0a88fb56a9e382d500989c72;
  • exact current head: c316bfbde8644feda7e49579d43cc162e99b0bad;
  • GitHub remains Draft/open/mechanically mergeable;
  • exact-head Tests 33923071658 completed skipped under Draft admission; this is not product GREEN;
  • predecessor checks/reviews do not transfer and no qualifying independent approval is claimed.

Keep Draft until the unchanged current head is eligible for its full repository/security/governance evidence and a qualifying independent review applies. No self-approval, bypass, force push, destructive rewrite, or invented owner contract.

@coderabbitai

coderabbitai Bot commented Sep 1, 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.

Signed-off-by: Codex <codex@localhost>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head audit found the original domain/boolean selector was a hand-authored model-selection heuristic. Commit 824425146 removes that selector and requires explicit intended-use evidence plus the owning psychometric runtime recovery contract.

Verified locally:

  • pytest measurement + DDD fitness: 15 passed
  • measurement module statement/branch coverage: 100% (70/70 statements, 24/24 branches)
  • public docstrings: 2 passed
  • Ruff 0.12.11: clean

This remains a draft stacked on #899; no protected-main or runtime-scoring claim.

Merge the current #899 ownership-boundary head into the dichotomous measurement-policy stack without rewriting child history. The parent delta is the code-current Vision runtime note; the measurement policy delta remains unchanged.
Merge the current #899 root after it incorporated protected main@3f61c824. The only new parent delta is docs/index.md; the dichotomous measurement-policy semantic delta is unchanged.
@seonghobae seonghobae added the enhancement New feature or request label Sep 2, 2026 — with ChatGPT Codex Connector

Copy link
Copy Markdown
Contributor Author

A bounded child provenance implementation is now stacked on this exact measurement-policy head: #915 (feat/dynamic-evaluation-lineage-20260902). It projects immutable dynamic item/run snapshots, generation/rater/adjudication/calibration/promotion/supersession references, zero-anchor cold-start limitations, and evidence-gated linked comparability without importing provider configuration, psychometric arithmetic, hosted adjudication, or foreign databases. ADR 0352 was selected because ADR 0302 is already owned by the active leftover-map stack. Keep #915 Draft until #899/#902 and compatible released owner contracts are available; then restack without force-push and regenerate exact-head tests/security/review.

Adopt #899668e053 after its non-force convergence to protected main@0f1d4472. Preserve the measurement-policy delta and current Tests workflow without rewriting branch history.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #9028a8b269 after its protected-main convergence. Preserve the dynamic-evaluation lineage/evidence delta and the current Tests workflow without rewriting branch history.
Adopt #89947ebcee after protected main #924 while preserving the dichotomous measurement-policy delta without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #9022dd6258 after protected main #924 while preserving the dynamic-evaluation lineage/evidence delta without force rewrite.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parent #899 has moved non-force to e5711282… after adopting protected-main Draft-admission workflow contracts. This child’s seven measurement-policy files do not overlap those parent repairs, so retaining the old parent ancestry is now a wrong-base finding. Preserve the measurement-policy delta exactly, adopt the four parent workflow/contract blobs, and advance this branch with a two-parent non-force convergence commit. Do not transfer predecessor checks or approval.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant