---
title: "Continue over Series Bible coverage scored under the bar (the writer's acknowledged override)."
method: POST
path: "/story-projects/{projectId}/series-bible/coverage/acknowledge"
tags: ["Projects"]
---

# Continue over Series Bible coverage scored under the bar (the writer's acknowledged override).

`POST /story-projects/{projectId}/series-bible/coverage/acknowledge`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/story-projects/{projectId}/series-bible/coverage/acknowledge`
- Auth: HTTP bearer

Only on the writer's explicit choice, after they have seen the scores and the reasons, with their own reason: continue over Series Bible coverage that scored under the bar. Acknowledging premise coverage opens season planning and casting at project level; acknowledging full coverage (or a product project's product coverage) opens episode starts and paid work on every episode. It acknowledges the judge's verdict only (a complete, current report at the stage the gate is waiting on), never a missing field or episode map, and never a missing, running, failed or out-of-date report. It holds for that Bible version: an edit to canon the report scored locks the gate again, and appending episodes or characters never does. It is recorded on the project (who, when, which report and Bible version). Free. Send `phase`, the `reportId` the writer read (`coverage.reportId`) and their `reason` (3–500 characters). Read `gateOverride` on GET .../series-bible/coverage first: it says whether the report can be acknowledged and why not. Refused with 409 `project_precondition_failed` (`details.overridable: false`) otherwise, or when `reportId` is not the latest report (`details.latestReportId`). Answers with the record, the line to show, the coverage and the workspace gate it left. Scope: `story:write`.

## Request body

- SeriesBibleCoverageAcknowledgeRequest
  - `phase` 'premise' | 'full' | 'product', required: The coverage the gate is waiting on: `premise`, `full` or `product`.
  - `reportId` string, required: The report the writer read (`coverage.reportId`): a newer report is never acknowledged blindly.
  - `reason` string, required: Why the writer continues anyway, in their own words.

## Response `200`

The acknowledgement, and the coverage and gate it left.

- SeriesBibleCoverageAcknowledgeResult
  - `acknowledgement` SeriesBibleCoverageAcknowledgement, required: The writer continued over a Series Bible report scored under the bar. Kept on the report (it lasts while the report is current) and in the project's `metadata.seriesBibleCoverageAcknowledgements`.
    - `phase` 'premise' | 'full' | 'product', required: The coverage that was acknowledged: `premise`, `full` or `product`.
    - `reportId` string, required
    - `scoredVersion` integer, required: The Bible version the report scored.
    - `bibleVersion` integer, required: The Bible version when the writer acknowledged it.
    - `overallScore` number, nullable, required
    - `gateThreshold` number, required
    - `reasons` string[], required: What the report said, as the writer was shown it: the diagnosis, the weakest scores, the top fixes.
    - `reason` string, required: The writer's own reason.
    - `at` string, date-time, required
    - `by` object, required
      - `userId` string, required
      - `surface` 'app' | 'slug' | 'api', required
      - `keyId` string, nullable, required
  - `notice` string, required: The one line every surface shows for it.
  - `coverage` SeriesBibleCoverageStatus, required
    - `status` 'missing' | 'generating' | 'complete' | 'failed', required
    - `current` boolean, required: True while every field this report scored reads the same in the Bible now. Premise reports score the story fields and each principal character's want, wound and arc; full reports also score style, world, timeline, notes, the episode map and each principal's name, role, voice and relationships. Visual canon and characters added after the report never make it out of date.
    - `stale` boolean, required: The inverse of current: a field this report scored has changed since.
    - `gatePassed` boolean, required
    - `acknowledged` boolean, required: The writer continued over this report (POST .../series-bible/coverage/acknowledge) and it still speaks for the Bible (complete and current): the gate treats it as passed. False once the report is out of date.
    - `acknowledgement` SeriesBibleCoverageAcknowledgement, required: The writer continued over a Series Bible report scored under the bar. Kept on the report (it lasts while the report is current) and in the project's `metadata.seriesBibleCoverageAcknowledgements`.
      - `phase` 'premise' | 'full' | 'product', required: The coverage that was acknowledged: `premise`, `full` or `product`.
      - `reportId` string, required
      - `scoredVersion` integer, required: The Bible version the report scored.
      - `bibleVersion` integer, required: The Bible version when the writer acknowledged it.
      - `overallScore` number, nullable, required
      - `gateThreshold` number, required
      - `reasons` string[], required: What the report said, as the writer was shown it: the diagnosis, the weakest scores, the top fixes.
      - `reason` string, required: The writer's own reason.
      - `at` string, date-time, required
      - `by` object, required
        - `userId` string, required
        - `surface` 'app' | 'slug' | 'api', required
        - `keyId` string, nullable, required
    - `gateThreshold` number, required
    - `reportId` string, nullable, required
    - `documentVersion` integer, required: The Bible version on screen now (the document's current version), whatever the report scored.
    - `reportVersion` integer, nullable, required
    - `scoredBibleVersion` integer, nullable, required: The Bible version the score came from — the documentVersion of the report row that scored it (the latest complete row). Null when there is no score (missing, or still generating). Older than `documentVersion` on an out-of-date score.
    - `inFlightBibleVersion` integer, nullable, required: The Bible version the shown run is scoring, when that run is generating. Null when no run is in flight. May equal or be older than `documentVersion` (the deferred-rerun window: the run that was already scoring when the Bible moved).
    - `rescoreQueued` boolean, required: True while a rescore of the CURRENT Bible is queued or in flight: the shown run is itself generating, the shown run carries a live premise rerun mark (it scored an earlier version and will queue the current one when it lands), or a newer run for the current version is already generating. The card reads it as "scoring it next".
    - `overallScore` number, nullable, required
    - `progressDetail` string, nullable, required
    - `failureMessage` string, nullable, required: Why the run stopped, as one plain sentence for the writer — never a provider's or the database's raw wording. Populated when `status: failed`.
    - `report` union, required: The scored report: the story report on a story project, the product report on a `kind: product` project. Null while none has ever been written.
      - SeriesBibleCoverageReport
        - `overallScore` number, required
        - `verdict` 'pass' | 'revise' | 'rebuild', required
        - `oneLineDiagnosis` string, required
        - `audiencePromise` string, required
        - `thematicDifferentiator` string, required
        - `showingStrategy` string, required
        - `dimensions` object, required
          - `premiseAndHook` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `thematicEngine` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `serialEngine` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `episodeArchitecture` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `characterAndAccess` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `evidenceAndEthics` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `showingNotTelling` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `audioGrammar` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `audienceAndMarket` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
        - `audioBlueprint` object, required
          - `narration` string, required
          - `scenes` string, required
          - `archive` string, required
          - `atmosphere` string, required
          - `music` string, required
          - `sfx` string, required
          - `transitions` string, required
        - `strengths` string[], required
        - `risks` string[], required
        - `priorityFixes` object[], required
          - `priority` integer, required
          - `fix` string, required
          - `why` string, required
          - `acceptanceTest` string, required
        - `exemplarComparisons` object[], required
          - `exemplarTitle` string, required
          - `craftLesson` string, required
          - `application` string, required
      - ProductBibleCoverageReport: A scored product Bible coverage report (a `kind: product` project): the product headlines and the seven product dimensions.
        - `overallScore` number, required
        - `verdict` 'pass' | 'revise' | 'rebuild', required
        - `oneLineDiagnosis` string, required
        - `valuePromise` string, required
        - `positioningStatement` string, required
        - `showabilityStrategy` string, required
        - `dimensions` object, required
          - `valuePromise` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `personas` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `positioning` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `featureMap` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `truthAndEvidence` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `showability` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
          - `voiceAndCta` SeriesBibleCoverageDimension, required
            - `score` number, required
            - `finding` string, required
            - `evidence` string[], required
            - `nextMove` string, required
        - `strengths` string[], required
        - `risks` string[], required
        - `priorityFixes` object[], required
          - `priority` integer, required
          - `fix` string, required
          - `why` string, required
          - `acceptanceTest` string, required
    - `exemplarIds` string[], required
    - `createdAt` string, date-time, nullable, required
    - `updatedAt` string, date-time, nullable, required
  - `workspaceGate` ProjectWorkspaceGate, required: Where the project stands in development — the readiness preflight. Read-only: reading it never queues or recovers coverage. A gated call refuses with 409 `project_precondition_failed` carrying the same `stage`, `missingFields`, `canPlan` and `canStartEpisode`, so this predicts it exactly. When `ready` is false, finish `stage` before planning, drafting, casting or creating jobs.
    - `ready` boolean, required: Every development stage is finished.
    - `stage` 'premise' | 'premise_coverage' | 'planning' | 'full_coverage' | 'ready', required: The project development stage, in order: develop the premise, pass premise coverage, plan the episode map, pass full Series Bible coverage, then `ready`. The mood board is not a stage: it opens after premise coverage and blocks nothing.
    - `reason` string, nullable, required: How to finish `stage`; null once `ready`.
    - `missingFields` string[], required: What the stage still lacks, when the gate can name it. Often empty: a coverage stage is finished by an act, not a field.
    - `canPlan` boolean, required: Plans, casting and the episode map are allowed now.
    - `canStartEpisode` boolean, required: Episode drafting, story jobs for project media, and publishing are allowed now.
    - `fullCoverage` 'required' | 'advisory', required: `required`: full Series Bible coverage must pass before episodes, project media and publishing. `advisory`: the project is a recurring show (a live publishing series that runs a recurring cadence or holds a standing approval), so premise coverage alone opens it and full coverage is shown but blocks nothing.
    - `fullCoverageNotice` string, nullable, required: For a recurring show: "Full coverage advisory (recurring show): …" plus where full coverage stands. Null for every other project.
    - `acknowledgedCoverage` string[]: Present only when the gate is past a coverage stage because the writer acknowledged a report under the bar (POST .../series-bible/coverage/acknowledge): which ones (`premise`, `full` or `product`).

## Other responses

- `400`: Request payload failed validation. The error message names the offending field.
- `401`: Missing, malformed, revoked, or expired API key.
- `403`: API key is valid but lacks the scope, is blocked by IP allowlist, or the account is disabled.
- `404`: The named project or source does not exist or is owned by another account.
- `409`: The project has not reached the development stage this call needs (`project_precondition_failed`), and nothing was created, queued or charged. `details` is ProjectPreconditionDetails: `stage` names the stage to finish, `missingFields` what it still lacks, `canPlan` / `canStartEpisode` what the project can do now. Finish the named stage — do not retry; the identical call refuses the same way until it is done.
- `429`: Rate limit for this API key + IP + route family was exceeded.
- `500`: The API failed unexpectedly. Safe to retry with the same Idempotency-Key.

---

[API](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api.md) · [All operations](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/revisions/4534f5d25540?raw)
