---
coverage_status: PASS      # PASS | FAIL  (machine-key — читает check_coverage_gate)
work_item: ORCH-NNN
measured_coverage: 0.0      # измеренное line coverage src/ (%, float)
baseline: 0.0              # базовая линия main на момент измерения (%, или пусто при bootstrap)
floor: 0.0                 # абсолютный порог coverage_min_percent (%)
policy: both               # absolute | baseline | both
epsilon: 0.5               # допуск на шум измерения (%)
delta: 0.0                 # measured − max(baseline, floor) (%, знаковая дельта)
---

# Coverage Report — ORCH-NNN

> Детерминированный гейт покрытия (ORCH-027) — под-гейт ребра `deploy-staging→deploy` (врезка в
> `advance_stage`, ПОСЛЕ merge-gate, ДО image-freshness; не строка `STAGE_TRANSITIONS`). Машинный
> вердикт читается ТОЛЬКО из `coverage_status:`. `PASS` → дальше; `FAIL` → откат на `development`.
> Измерение — `pytest --cov=src --cov-report=json` в изолированном worktree. Source of truth
> измеренного значения для ratchet базовой линии (`_handle_merge_verify`, ребро `deploy→done`).

## Verdict
<PASS / FAIL: measured X% vs floor F% / baseline B% (policy=…, epsilon=…), delta=±D%.>

## Measurement
<Инструмент (pytest-cov/coverage.py), команда, line coverage src/ = X%; либо fail-open WARNING
при ошибке инструмента (coverage_tool_fail_closed=False).>

## Policy
<Режим (absolute|baseline|both), порог floor, базовая линия main, epsilon, какое условие
нарушено при FAIL.>
