feat: add explicit retrospective v2 computation contracts (#20)
CI / lite (push) Successful in 19s

This commit was merged in pull request #20.
This commit is contained in:
2026-09-09 01:31:46 +08:00
parent 68dd68392a
commit 861c1e97a8
19 changed files with 7688 additions and 4 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,175 @@
{
"contract_name": "researchhub.data-foundation",
"schema_version": "2.0.0",
"dataset_snapshot_id": "rhdsv2:sha256:fff0c2f4721407dd8264dacaaec389047fe5533258e940611bd61fb9c8a90905",
"observation_cutoff": "2026-09-08T01:01:00Z",
"usage": "retrospective_research",
"historical_availability": "not_established",
"published_at": "2026-09-08T01:05:00Z",
"instrument_routes": [
{
"observation_sequence": 1,
"observed_by": "2026-09-08T01:00:00Z",
"earliest_external_knowledge": {
"status": "unknown"
},
"history_completeness": "not_established",
"instrument_id": "rhinstrument:11111111111111111111111111111111",
"symbol": "SIM0",
"mic": "XSHG",
"currency": "CNY",
"asset_class": "equity",
"instrument_type": "stock",
"calendar_id": "rhcalendar:33333333333333333333333333333333",
"effective_from": "2018-01-01T00:00:00Z",
"evidence_digest": "sha256:ca276a7c5cc35f580fad6a98e20dc36fde35762e9579456fd427d6457ee1b2eb",
"route_revision_id": "rhroutev2:sha256:026558e7edbd96e437a9a6526601fdb746f42c598f7e76502906239365b9c9d9"
},
{
"observation_sequence": 1,
"observed_by": "2026-09-08T01:00:00Z",
"earliest_external_knowledge": {
"status": "unknown"
},
"history_completeness": "not_established",
"instrument_id": "rhinstrument:22222222222222222222222222222222",
"symbol": "SIM1",
"mic": "XSHG",
"currency": "CNY",
"asset_class": "equity",
"instrument_type": "stock",
"calendar_id": "rhcalendar:33333333333333333333333333333333",
"effective_from": "2018-01-01T00:00:00Z",
"evidence_digest": "sha256:ee1434f987443cfc3d097b54be8cb6b39d924ec6f161da86e15042b48d75b799",
"route_revision_id": "rhroutev2:sha256:fab06ff6642fd9ed1206b75e4c0341195d29e308b9842eeba44df5c67ee5bd92"
}
],
"trading_calendar_revisions": [
{
"observation_sequence": 1,
"observed_by": "2026-09-08T01:00:00Z",
"earliest_external_knowledge": {
"status": "unknown"
},
"history_completeness": "not_established",
"calendar_id": "rhcalendar:33333333333333333333333333333333",
"session_date": "2018-01-02",
"status": "open",
"sessions": [
{
"opens_at": "2018-01-02T01:30:00Z",
"closes_at": "2018-01-02T07:00:00Z"
}
],
"evidence_digest": "sha256:10f007ef0c12b2f444230dffdeb5bf185325419bfb0fe2df338730998de7e28a",
"calendar_revision_id": "rhcalv2:sha256:aba57b52bf328c6455e1a9f51037953646e811aaf0e466032092b310db030e25"
}
],
"corporate_action_revisions": [],
"standardized_views": [
{
"view_id": "rhview:66666666666666666666666666666666",
"view_version": "2.0.0",
"dataset_snapshot_id": "rhdsv2:sha256:fff0c2f4721407dd8264dacaaec389047fe5533258e940611bd61fb9c8a90905",
"observation_cutoff": "2026-09-08T01:01:00Z",
"schema_digest": "sha256:bb660b16a5dfccb771e6a263b56aedfebc18a2ea9e13d6b934a6873810f4bd9d",
"content_digest": "sha256:b1c0e47b94ffd57e1d34394138d966803c049afc75e1dc0a1a80fea82de5c54a",
"transformation_digest": "sha256:b2376dbe4424b38e5b27874c998f082aecc086179f611896ebaa0fdeb5362c68",
"instrument_route_revision_ids": [
"rhroutev2:sha256:026558e7edbd96e437a9a6526601fdb746f42c598f7e76502906239365b9c9d9",
"rhroutev2:sha256:fab06ff6642fd9ed1206b75e4c0341195d29e308b9842eeba44df5c67ee5bd92"
],
"trading_calendar_revision_ids": [
"rhcalv2:sha256:aba57b52bf328c6455e1a9f51037953646e811aaf0e466032092b310db030e25"
],
"corporate_action_revision_ids": [],
"usage": "retrospective_research",
"historical_availability": "not_established",
"available_at": "2026-09-08T01:04:00Z",
"view_ref_id": "rhviewrefv2:sha256:3ce598c8db700ee409e82671b3c8b7689a281ba211ee691082b3bc4f6168e309"
}
],
"observation_lineage": [
{
"revision_kind": "instrument_route",
"revision_id": "rhroutev2:sha256:026558e7edbd96e437a9a6526601fdb746f42c598f7e76502906239365b9c9d9",
"observation_sequence": 1,
"observed_by": "2026-09-08T01:00:00Z",
"earliest_external_knowledge": {
"status": "unknown"
},
"history_completeness": "not_established",
"evidence_digest": "sha256:ca276a7c5cc35f580fad6a98e20dc36fde35762e9579456fd427d6457ee1b2eb"
},
{
"revision_kind": "instrument_route",
"revision_id": "rhroutev2:sha256:fab06ff6642fd9ed1206b75e4c0341195d29e308b9842eeba44df5c67ee5bd92",
"observation_sequence": 1,
"observed_by": "2026-09-08T01:00:00Z",
"earliest_external_knowledge": {
"status": "unknown"
},
"history_completeness": "not_established",
"evidence_digest": "sha256:ee1434f987443cfc3d097b54be8cb6b39d924ec6f161da86e15042b48d75b799"
},
{
"revision_kind": "trading_calendar",
"revision_id": "rhcalv2:sha256:aba57b52bf328c6455e1a9f51037953646e811aaf0e466032092b310db030e25",
"observation_sequence": 1,
"observed_by": "2026-09-08T01:00:00Z",
"earliest_external_knowledge": {
"status": "unknown"
},
"history_completeness": "not_established",
"evidence_digest": "sha256:10f007ef0c12b2f444230dffdeb5bf185325419bfb0fe2df338730998de7e28a"
}
],
"corporate_action_coverage": [
{
"instrument_id": "rhinstrument:11111111111111111111111111111111",
"effective_time": {
"start_inclusive": "2018-01-02T07:00:00Z",
"end_inclusive": "2018-01-02T07:00:00Z"
},
"observed_by": "2026-09-08T01:00:00Z",
"status": "validated",
"evidence_digests": [
"sha256:233cc2968985e953e59e408b6619a837a792ae17f8afba32261f861de8fe9c7c"
]
},
{
"instrument_id": "rhinstrument:22222222222222222222222222222222",
"effective_time": {
"start_inclusive": "2018-01-02T07:00:00Z",
"end_inclusive": "2018-01-02T07:00:00Z"
},
"observed_by": "2026-09-08T01:00:00Z",
"status": "validated",
"evidence_digests": [
"sha256:21f2594fc42e46168a65d7cac7e9b52aeabf24ecc5fb409530c07ad56ed3986c"
]
}
],
"readiness": {
"evidence_scope": "synthetic_fixture",
"contract_validation": {
"status": "validated",
"evidence_digests": [
"sha256:62f2abbbb79f4ff9164e10cc4b21df37f0964224a4c546f978b97794241ff5b3"
]
},
"real_data_validation": {
"status": "not_validated",
"evidence_digests": []
},
"production_validation": {
"status": "not_validated",
"evidence_digests": []
},
"live_validation": {
"status": "not_validated",
"evidence_digests": []
}
},
"foundation_id": "rhdfv2:sha256:656d8fa2a9e81c87dd8c748bca092a96fb45d3ad9798b5cb2f68c7d4158c8260"
}
@@ -0,0 +1,120 @@
{
"contract_name": "researchhub.dataset-snapshot",
"schema_version": "2.0.0",
"evidence_scope": "synthetic_fixture",
"descriptor": {
"dataset": {
"dataset_id": "rhdataset:market:44444444444444444444444444444444",
"dataset_kind": "market",
"record_schema_version": "2.0.0",
"dimensions": [
"instrument_id",
"effective_time"
]
},
"published_at": "2026-09-08T01:03:00Z",
"time_semantics": {
"effective_time": {
"start_inclusive": "2018-01-02T07:00:00Z",
"end_inclusive": "2018-01-02T07:00:00Z"
},
"observation_cutoff": "2026-09-08T01:01:00Z",
"earliest_external_knowledge": {
"status": "unknown"
},
"historical_availability": "not_established"
},
"content": {
"digest_algorithm": "sha256",
"canonicalization": "RFC8785",
"record_order": "canonical-record-byte-order",
"content_digest": "sha256:b1c0e47b94ffd57e1d34394138d966803c049afc75e1dc0a1a80fea82de5c54a",
"logical_manifest": {
"record_count": 2,
"chunks": [
{
"chunk_index": 0,
"content_digest": "sha256:b1c0e47b94ffd57e1d34394138d966803c049afc75e1dc0a1a80fea82de5c54a",
"record_count": 2
}
]
},
"manifest_digest": "sha256:1c847123277f7973f117b21e597eefdadc93a401e2bec99c94dbb1fb2e3d31c7",
"record_count": 2
},
"observation_manifest": {
"batches": [
{
"chunk_index": 0,
"content_digest": "sha256:b1c0e47b94ffd57e1d34394138d966803c049afc75e1dc0a1a80fea82de5c54a",
"record_count": 2,
"observation_kind": "observed_by",
"observed_by": "2026-09-08T01:00:00Z",
"evidence_digest": "sha256:6f35f19a2ede0610d461b458a0f2cbc96f40cee6e90fa6592fd66daf617d3ec0"
}
]
},
"lineage": {
"publisher": {
"id": "researchhub.data",
"version": "2.0.0"
},
"transformation": {
"id": "rhtransform:55555555555555555555555555555555",
"version": "2.0.0"
},
"upstream_snapshot_ids": [],
"upstream_content_digests": []
},
"quality": {
"status": "passed",
"checks": [
{
"check_id": "completeness",
"status": "passed",
"severity": "blocking",
"evidence_digest": "sha256:519b01c60ad85c2b03d6c4f29027fe9b3672a8f6ae3ca8a2d831b281a61c5095"
},
{
"check_id": "duplicate_identity",
"status": "passed",
"severity": "blocking",
"evidence_digest": "sha256:7c585c7471ab45886fce037061b5ab0d5f981aede5d5190021963676b0ec0fcc"
},
{
"check_id": "observation_coverage",
"status": "passed",
"severity": "blocking",
"evidence_digest": "sha256:dde5693c3ad79a01a162f9fc5a40c69d3c284965e283c91c5cd456904e0ef737"
},
{
"check_id": "historical_claim_policy",
"status": "passed",
"severity": "blocking",
"evidence_digest": "sha256:f4cf8da48f92e03d75bb28b2569061e649f382ba360d879fef8e41e35169c228"
},
{
"check_id": "range_validity",
"status": "passed",
"severity": "blocking",
"evidence_digest": "sha256:6af08355c5e29d846e1c48783dccde791e8a3f48f8416149413217b7c2cbb52a"
},
{
"check_id": "schema_conformance",
"status": "passed",
"severity": "blocking",
"evidence_digest": "sha256:fefdc5b81eba128af92f15a60feb7bb6f40b2e7277bf2beb48c1bb9399ee564b"
}
]
},
"qualification": {
"status": "qualified",
"usage": "retrospective_research",
"policy_id": "researchhub.dataset-snapshot.retrospective",
"policy_version": "2.0.0",
"evaluated_at": "2026-09-08T01:02:00Z",
"evidence_digest": "sha256:70c3ddcadf095877f17a1365c8d75a2e5a7078a27722fb8b698e61d350c6bb2d"
}
},
"snapshot_id": "rhdsv2:sha256:fff0c2f4721407dd8264dacaaec389047fe5533258e940611bd61fb9c8a90905"
}