Skip to content

[truealpha-factors] Freeze safe Qlib expression corpus - #191

Merged
wangzitian0 merged 1 commit into
mainfrom
batch/s8-qlib-expression-prep
Jul 14, 2026
Merged

[truealpha-factors] Freeze safe Qlib expression corpus#191
wangzitian0 merged 1 commit into
mainfrom
batch/s8-qlib-expression-prep

Conversation

@wangzitian0

Copy link
Copy Markdown
Owner

Scope

Freeze the preparation-only S8 corpus for #189. This PR contains no contract or compiler implementation and earns no evidence rung.

The corpus pins:

  • the isolated pyqlib==0.9.7 runtime and lock identities;
  • a builtin-only six-operator registry with exact argument, null, and lookback semantics;
  • three typed expressions over two synthetic instruments and five sessions;
  • malicious-input, identity-drift, Decimal-context, and root-lock negative controls.

During preparation, direct Qlib execution confirmed that Mean(..., N) uses min_periods=1; the frozen contract therefore declares null behavior per operator instead of claiming global null propagation. The #189 design body was corrected accordingly.

Verification

  • make issue-graph-check
  • frozen runtime pyqlib==0.9.7 parsed and executed all three compiled fields; every value and null position matched the independent fixture oracle at 1e-12 tolerance
  • fixture/runtime/spec SHA-256 identities verified
  • git diff --check

Issue: #189

Copilot AI review requested due to automatic review settings July 14, 2026 13:06
@wangzitian0

Copy link
Copy Markdown
Owner Author

@copilot review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Freezes the preparation-only S8 “safe Qlib factor-expression” corpus for issue #189 by pinning the corpus bytes and updating governance metadata to mark the batch as prepared, without advancing any evidence rung or introducing contract/compiler implementation.

Changes:

  • Adds a pinned JSON corpus fixture (qlib_expression.v1.json) defining the operator registry, feature bindings, typed expression cases, expected compiled fields, and negative controls.
  • Advances the S8 batch manifest from queuedprepared (revision 2) and pins activation.base_sha plus the corpus manifest path and SHA-256.
  • Updates the Vision issue graph entry for S8 to reflect the prepared status and new manifest hash.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
libs/contracts/tests/fixtures/qlib_expression.v1.json Introduces the frozen S8 typed-expression corpus fixture (operators, expressions, expected outputs, negative cases).
governance/vision-issue-graph.json Marks S8 as prepared and updates the manifest SHA-256 pointer in the Vision graph.
governance/batches/S8-qlib-factor-expression.v1.json Updates S8 manifest to revision 2 / prepared, pinning base SHA and corpus path+hash for the preparation freeze.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@wangzitian0
wangzitian0 merged commit 160668e into main Jul 14, 2026
12 checks passed
@wangzitian0
wangzitian0 deleted the batch/s8-qlib-expression-prep branch July 14, 2026 13:09
@wangzitian0 wangzitian0 changed the title [truealpha-data] [S8:prep] Freeze safe Qlib expression corpus [truealpha-factors] Freeze safe Qlib expression corpus Jul 15, 2026
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.

2 participants