# 03-Acceptance Criteria — ORCH-080

Work Item ID: ORCH-080

Каждый критерий имеет явное условие PASS/FAIL.

## AC-1 — `disable_web_page_preview` в payload `sendMessage`

- **PASS:** JSON-payload вызова `httpx.post(.../sendMessage)` в `send_telegram()` содержит
  ключ `"disable_web_page_preview"` со значением `True`.
- **FAIL:** ключ отсутствует или `False`.
- **Проверка:** unit-тест (мок `httpx`) инспектирует `httpx.post.call_args.kwargs["json"]`.

## AC-2 — `disable_web_page_preview` в payload `editMessageText`

- **PASS:** JSON-payload вызова `httpx.post(.../editMessageText)` в `edit_telegram()` содержит
  ключ `"disable_web_page_preview"` со значением `True`.
- **FAIL:** ключ отсутствует или `False`.
- **Проверка:** unit-тест (мок `httpx`) инспектирует `httpx.post.call_args.kwargs["json"]`.

## AC-3 — баннер link-preview Plane исчез в карточке трекера

- **PASS:** в реальном чате Telegram карточка трекера задачи (режимы `bump` и `edit`)
  больше не показывает баннер «Plane — Modern project management».
- **FAIL:** баннер всё ещё разворачивается.
- **Проверка:** ручная верификация на staging (8501) после деплоя — наблюдение карточки в
  Telegram. Автоматически косвенно покрыто AC-1/AC-2 (payload содержит флаг).

## AC-4 — ссылка на задачу остаётся кликабельной

- **PASS:** в карточке/уведомлениях номер задачи `ORCH-NNN` остаётся кликабельной ссылкой
  `<a href=...>` на issue в Plane; `parse_mode: "HTML"` сохранён в обоих payload.
- **FAIL:** `parse_mode` изменён/удалён, либо ссылка перестала рендериться как `<a href>`.
- **Проверка:** unit-тест проверяет, что `"parse_mode": "HTML"` присутствует в обоих payload;
  существующие тесты ссылок (`test_notify_issue_links.py`) остаются зелёными.

## AC-5 — сохранены существующие поля payload

- **PASS:** `send_telegram` payload по-прежнему содержит `chat_id`, `text`, `parse_mode`,
  `disable_notification`; `edit_telegram` payload — `chat_id`, `message_id`, `text`,
  `parse_mode`. Возвращаемые значения функций не изменились
  (`send_telegram → message_id|None`, `edit_telegram → EDIT_*`).
- **FAIL:** любое из перечисленных полей удалено/переименовано, либо изменился контракт
  возврата.
- **Проверка:** unit-тесты payload + существующие тесты трекера/классификации исходов.

## AC-6 — never-raise сохранён, pytest зелёный

- **PASS:** при сетевой/HTTP-ошибке `send_telegram`/`edit_telegram` не бросают исключение
  (возврат `None`/`EDIT_FAILED`); вся сюита `pytest tests/ -q` зелёная.
- **FAIL:** любое исключение наружу или красный pytest.
- **Проверка:** существующие тесты never-raise (`test_resilience.py`,
  `test_telegram_tracker.py`) + полный прогон.

## AC-7 — документация обновлена в том же PR

- **PASS:** `CHANGELOG.md` содержит запись об ORCH-080; при необходимости — короткая ремарка
  в `CLAUDE.md`/`docs/architecture/README.md` о подавлении link-preview.
- **FAIL:** функционал изменён, документация не обновлена (Reviewer → REQUEST_CHANGES).
