# pre-public-qc-contract

Python contract models for the Pre Publish QC API boundary.

The OpenAPI document in `../../openapi/openapi.yaml` is the source of truth. This package exposes Pydantic v2 models for backend request/response boundaries and must be consumed as a package rather than copied into application code.

## Scope

This package describes Pre Publish QC business API models only. Shared task queue paths, schemas, and generated models remain in the shared task queue contract package; do not copy them into this package. If a unified OpenAPI document is needed for publication, build it by composing or referencing the Pre Publish QC contract and the shared task queue contract at build time.

API-facing file and artifact references are opaque ids or URLs. Response models must not expose local filesystem fields such as `stored_path`, absolute paths, or root-relative artifact paths.

Pre Publish QC owns business task submission APIs, business validation, task type semantics, and result persistence. Shared runtime tracking, cancellation, retry, events, and artifacts stay in the shared task queue contract and implementation packages; clients should not submit Pre Publish QC business work directly to the shared task queue API.

## Release Track

Local backend development may install this package from the sibling repository in editable mode. CI, release verification, and deployment should install a fixed published version of `pre-public-qc-contract` from the private Python package index.
