[truealpha-bt] Select Qlib for factor and backtest execution - #182
Conversation
3e552ba to
8f1fd12
Compare
|
Architecture review outcome: the high-level boundary in this PR is sound and should remain in The implementation obligations were underspecified in the issue graph, so I updated #26 and recast #181/S7 accordingly:
No additional |
There was a problem hiding this comment.
Pull request overview
This PR updates the repository’s authoritative architecture documentation to explicitly select Qlib as the factor-expression/backtest engine (while preserving TrueAlpha-owned PIT/provenance/confidence/Decimal/corporate-action boundaries), and mechanically rebinds the Gate 0 v4 aggregate candidate tree to a new base SHA without changing the candidate payload or external-attestation status.
Changes:
- Document Qlib as the selected factor-expression and backtest engine, constrained behind
libs/factorsadapters and TrueAlpha contracts (not a data/semantic authority). - Update the Gate 1 definition in
init.mdto explicitly require the pinned Qlib/adapter path for deterministic replay evidence. - Rebind
governance/gate0/manifest-v4.jsonto a newintegration_base_shaand correspondingcandidate_tree_sha256while keeping the candidate payload hash unchanged.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| init.md | Declares Qlib as the selected engine and tightens Gate 1 replay wording to require the pinned Qlib/adapter execution path under TrueAlpha-owned boundaries. |
| governance/gate0/manifest-v4.json | Updates Gate 0 candidate base/tree binding (integration_base_sha, candidate_tree_sha256) while preserving the candidate payload identity. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
8f1fd12 to
b26eb3f
Compare
b26eb3f to
71e5a0f
Compare
|
Rebased onto current |
|
Final exact-head verification passed at |
Summary
libs/factorsadaptersmainwithout changing its payload, status, or blockersWhy
The architecture defined deterministic replay semantics but had not selected the implementation engine. Qlib supplies serializable factor expressions and a research backtest path while the adapter boundary prevents it from becoming a second data, vintage, or computation authority.
PRs #194 and #195 provide accepted E0/E1 safe-expression evidence for pinned Qlib 0.9.7. They do not replace this authoritative architecture decision and do not implement or accept the complete #26 provider/executor replay.
Validation
Passed on rebased head
71e5a0fec60944d2d979908d9f8a6699016b585d:make gate0-candidate-checkmake issue-graph-checkThe previous
Delivery Governance / validatefailure was caused by the old workflow treating a structurally valid blocked Gate candidate as requiring acceptance. #199 corrected that merge-authorization defect; no bypass flag is used.Evidence ceiling
This PR records an architecture decision only. It does not implement replay, accept Gate 0 or Gate 1, approve a stable handoff, or claim Production readiness. Issue #26 remains open for the provider/executor, PIT replay, mart/report, holdout, and exact capture-to-decision evidence.
Gate manifest:
governance/gate0/manifest-v4.jsonManifest SHA-256:
3f7e6543c06dac72d8487cd24174f1d15b70b7aebdcd4da1bafce66cff1e9ff1Refs #26