> For the complete documentation index, see [llms.txt](https://nytshift.gitbook.io/nytshift-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nytshift.gitbook.io/nytshift-docs/market-data-and-providers/provider-canary.md).

# Provider canary classification and response

The `provider-canary` workflow is scheduled every six hours and can be dispatched manually. It always starts the production build with `RHC_DATA_MODE=live`; it does not use provider mocks and cannot submit orders, request signatures or move capital.

## Fixed outcomes

| Classification       | Reason code                     | Meaning                                                                               | First response                                                                                                  |
| -------------------- | ------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `provider-drift`     | `PROVIDER_CONTRACT_DRIFT`       | A live response no longer satisfies a reviewed schema, enum or exact contract header. | Freeze capability promotion, retain the artifact and compare the provider response with the versioned contract. |
| `provider-outage`    | `PROVIDER_AVAILABILITY_FAILURE` | A provider is unreachable, rate-limited or returning an availability-class failure.   | Keep deterministic PR checks green, verify provider status independently and leave execution fail-closed.       |
| `product-regression` | `PRODUCT_CANARY_REGRESSION`     | The live harness failed after drift and outage signatures were excluded.              | Reproduce against the exact release and treat it as a product incident.                                         |
| `passed`             | `PROVIDER_CANARY_PASSED`        | Every public-provider and local product assertion passed.                             | Retain the 14-day evidence artifact.                                                                            |

Every failure writes `provider-canary-result.json`, the exact `provider-canary.log` and a redacted incident summary. The workflow opens a fixed-reason GitHub issue or appends the newest release evidence to the existing open issue. Provider failure never changes deterministic pull-request correctness.

## Required branch protection

Require `ci / typescript`, `ci / execution-python` and `ci / browser-e2e`. Do not require the scheduled provider canary on pull requests. Protect `main`, require the branch to be current, require review for dependency updates and prevent administrators from bypassing capital-safety checks.

## Fixture rehearsal

Run `node --test scripts/provider-canary-classify.test.mjs` to prove the three failure categories and fixed reason codes without reaching a provider. An intentionally failed workflow dispatch must retain the exact three-file artifact and open or update an issue before this runbook is signed off.

This runbook authorizes no incident closure, provider credential change, signer activation or venue action.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://nytshift.gitbook.io/nytshift-docs/market-data-and-providers/provider-canary.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
