{
  "format": "siebly-conformance-pack/v1",
  "id": "historical-live-data",
  "title": "Historical Backfill + Live Stream Conformance Pack",
  "lastReviewed": "2026-05-12",
  "canonicalArtifacts": {
    "guide": "https://siebly.io/ai/historical-live-data-pipeline",
    "recipe": "https://siebly.io/.well-known/recipes/historical-live-data-pipeline-core.json",
    "schema": "https://siebly.io/.well-known/conformance/historical-live-data/v1/schema.json",
    "fixtures": "https://siebly.io/.well-known/conformance/historical-live-data/v1/fixtures.json",
    "runner": "https://siebly.io/.well-known/conformance/historical-live-data/v1/runner.ts",
    "implementations": [
      "https://siebly.io/ai/candle-pipeline/binance",
      "https://siebly.io/ai/candle-pipeline/bybit"
    ]
  },
  "lifecycleChain": [
    "config scope",
    "product/symbol/stream identity",
    "SDK REST/read method",
    "SDK WebSocket subscription",
    "exchange acknowledgement",
    "buffered live event",
    "historical REST/read row",
    "normalized store key",
    "dedupe or replay decision",
    "readiness state",
    "downstream side effect",
    "reconnect/resync boundary"
  ],
  "completionGate": "Do not mark the pipeline complete until three consecutive full data-lifecycle review passes produce no code, tests, fixtures, or documentation changes.",
  "runnerContract": {
    "language": "typescript",
    "version": "historical-live-data.workflow.v1",
    "fixtureSource": "JSON fixture set with a TypeScript runner contract for local lifecycle replay tests",
    "entrypoint": "https://siebly.io/.well-known/conformance/historical-live-data/v1/runner.ts",
    "exportedTypes": [
      "HistoricalLiveDataFixture",
      "HistoricalLiveDataFixtureStep",
      "HistoricalLiveDataFixtureExpectation",
      "HistoricalLiveDataHarness",
      "HistoricalLiveDataFixtureReport",
      "runHistoricalLiveDataFixtures"
    ],
    "requiredFixtureFields": [
      "name",
      "intent",
      "dataFamily",
      "scope",
      "initial",
      "steps",
      "expect",
      "forbid"
    ],
    "harnessMethods": [
      "reset(initial, fixture)",
      "applyStep(step, fixture)",
      "snapshot(fixture)"
    ],
    "expectationSemantics": [
      "Object expectations are partial matches.",
      "Array expectations are containment matches that consume one observed item per expected item; an empty expected array requires an empty observed array.",
      "Primitive expectations are exact matches after stable JSON normalization.",
      "Forbidden actions are read from observed.forbiddenObserved and matched against fixture.forbid."
    ],
    "requiredObservedState": "readiness, store, bufferedEvents, downstreamEffects, resyncState, logs, and forbiddenObserved markers."
  },
  "trustBoundaries": [
    "Transport open is telemetry, not application readiness.",
    "A subscribe call or subscription return value is local intent, not exchange acknowledgement.",
    "Buffered live events become authoritative only after acknowledgement, REST/read hydration, deterministic replay, and readiness enablement.",
    "Downstream side effects require finality or sequence-continuity evidence for the selected data family.",
    "Reconnect pauses correctness-sensitive workflow until scoped resync and replay complete."
  ],
  "requiredChecks": [
    "startup_requires_ack_backfill_replay_before_live_processing",
    "subscribe_return_or_socket_open_does_not_enable_workflow",
    "buffered_live_event_replays_after_backfill_once",
    "duplicate_historical_and_live_record_is_deduped",
    "out_of_order_live_events_are_replayed_deterministically",
    "finality_required_before_downstream_side_effect",
    "reconnect_pauses_workflow_until_scoped_resync_completes",
    "sample_symbol_interval_or_category_is_not_a_hidden_runtime_default",
    "orderbook_sequence_gap_blocks_downstream_until_snapshot_resync",
    "private_read_plus_stream_requires_read_only_credentials_and_hydration_gate"
  ],
  "candleOverlayChecks": [
    "candle_startup_requires_subscription_ack_backfill_replay_before_downstream_workflows",
    "open_candle_updates_store_without_downstream_signal",
    "final_candle_runs_downstream_once_after_replay",
    "duplicate_final_candle_after_reconnect_is_ignored",
    "out_of_order_candle_buffer_replays_by_candle_time_then_receive_time",
    "malformed_or_wrong_symbol_candle_is_logged_and_skipped",
    "reconnect_resync_blocks_candle_close_workflow_until_complete",
    "public_only_pipeline_has_no_private_clients_or_order_endpoints"
  ],
  "liveGate": [
    "No downstream workflow runs before subscription acknowledgement, backfill or hydration completion, buffered replay completion, and readiness enablement.",
    "Every claimed data-lifecycle behavior maps to a fixture, replay case, or documented non-claim.",
    "Public-only pipelines contain no private clients, account reads, order placement, cancel, or amend endpoints.",
    "Do not mark the pipeline complete until three consecutive full data-lifecycle review passes produce no code, tests, fixtures, or documentation changes."
  ]
}
