---
title: "Get Preparation"
method: GET
path: "/internal/evals/requirement-applicability/preparation"
tags: ["internal"]
---

# Get Preparation

`GET /internal/evals/requirement-applicability/preparation`

Whether this collateral's guidelines have libraries yet, before a comparison is started.

Read-only: libraries are built by an agentic reading of a guideline set, which a reviewer starts
and approves on the customer surface, so this bench cannot conjure one for a standard that has
none. A guideline reported `never_run` here is one to go and read there, not a button.

## Query parameters

- `company_id` string, uuid, required
- `file_id` string, uuid, required

## Response `200`

Successful Response

- CollateralPreparation — What a comparison for this collateral would gather from, and what is missing. Answers the question the run itself cannot: a run against an undecomposed library succeeds and reports "0 of 0 survived", which is indistinguishable from a library that genuinely excludes everything. This says which guidelines have no library *before* anything is judged.
  - `company_id` string, uuid, required
  - `file_id` string, uuid, required
  - `collateral_filename` string, nullable, required
  - `preset_ids` string[], required
  - `unresolved_preset_ids` string[], required
  - `guidelines` GuidelineReadiness[], required
    - `file_id` string, uuid, required
    - `filename` string, nullable, required
    - `status` 'queued' | 'running' | 'succeeded' | 'failed', required — Lifecycle of one decomposition run.
    - `stage` 'queued' | 'downloading' | 'extracting' | 'grounding' | 'storing' | 'done', required — Where a running decomposition has got to. Only the stages a watching human can perceive. Resolving the model's channel names to `MarketingCollateralType` and writing the rows are both sub-second, so they are not stages — a step that never renders is a step that misleads. `EXTRACTING` is the one that takes the minute.
    - `requirements` integer, required
    - `has_library` boolean, required
    - `error` string, nullable, required
  - `ready` integer, required
  - `in_flight` integer, required
  - `failed` integer, required
  - `never_run` integer, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-02** `425d5b8a3c17` — 1 warning
  - removed the optional property `skipped` from the response with the `200` status

[Change history](https://skmtc.dev/kobaltlabs/apis/fastapi/changes/internal/evals/requirement-applicability/preparation/get.md)

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) · [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kobaltlabs/fastapi/revisions/425d5b8a3c17/schema)
